highcharts 9.3.1 → 9.3.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 (752) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +1 -1
  3. package/css/highcharts.css +2 -2
  4. package/css/highcharts.scss +1 -1
  5. package/css/stocktools/gui.css +1 -1
  6. package/css/themes/dark-unica.css +2 -2
  7. package/css/themes/grid-light.css +2 -2
  8. package/css/themes/sand-signika.css +2 -2
  9. package/es-modules/Accessibility/A11yI18n.js +1 -5
  10. package/es-modules/Accessibility/Accessibility.js +11 -5
  11. package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
  12. package/es-modules/Accessibility/Components/AnnotationsA11y.js +9 -5
  13. package/es-modules/Accessibility/Components/ContainerComponent.js +1 -1
  14. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +8 -19
  15. package/es-modules/Accessibility/Components/LegendComponent.js +176 -86
  16. package/es-modules/Accessibility/Components/MenuComponent.js +1 -10
  17. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +10 -13
  18. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +15 -6
  19. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +8 -4
  20. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
  21. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +16 -41
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +20 -31
  23. package/es-modules/Accessibility/Components/ZoomComponent.js +135 -57
  24. package/es-modules/Accessibility/FocusBorder.js +0 -5
  25. package/es-modules/Accessibility/HighContrastMode.js +2 -1
  26. package/es-modules/Accessibility/KeyboardNavigation.js +5 -4
  27. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -5
  28. package/es-modules/Accessibility/Options/LangOptions.js +3 -3
  29. package/es-modules/Accessibility/ProxyElement.js +12 -6
  30. package/es-modules/Accessibility/ProxyProvider.js +0 -3
  31. package/es-modules/Accessibility/Utils/Announcer.js +2 -2
  32. package/es-modules/Accessibility/Utils/ChartUtilities.js +17 -32
  33. package/es-modules/Accessibility/Utils/HTMLUtilities.js +0 -12
  34. package/es-modules/Core/Animation/Fx.js +5 -14
  35. package/es-modules/Core/Axis/Axis.js +42 -68
  36. package/es-modules/Core/Axis/Axis3D.js +10 -4
  37. package/es-modules/Core/Axis/BrokenAxis.js +17 -11
  38. package/es-modules/Core/Axis/Color/ColorAxis.js +7 -4
  39. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -3
  40. package/es-modules/Core/Axis/DateTimeAxis.js +3 -14
  41. package/es-modules/Core/Axis/GridAxis.js +26 -16
  42. package/es-modules/Core/Axis/NavigatorAxis.js +0 -5
  43. package/es-modules/Core/Axis/OrdinalAxis.js +83 -79
  44. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +0 -5
  45. package/es-modules/Core/Axis/RadialAxis.js +7 -28
  46. package/es-modules/Core/Axis/ScrollbarAxis.js +18 -10
  47. package/es-modules/Core/Axis/StackingAxis.js +2 -1
  48. package/es-modules/Core/Axis/Tick.js +2 -4
  49. package/es-modules/Core/Axis/TreeGridAxis.js +26 -17
  50. package/es-modules/Core/Axis/TreeGridTick.js +4 -1
  51. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  52. package/es-modules/Core/Axis/ZAxis.js +1 -1
  53. package/es-modules/Core/Chart/Chart.js +42 -44
  54. package/es-modules/Core/Chart/Chart3D.js +23 -10
  55. package/es-modules/Core/Chart/GanttChart.js +4 -4
  56. package/es-modules/Core/Chart/MapChart.js +3 -3
  57. package/es-modules/Core/Chart/StockChart.js +10 -23
  58. package/es-modules/Core/DefaultOptions.js +3 -2
  59. package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
  60. package/es-modules/Core/Globals.js +1 -1
  61. package/es-modules/Core/HttpUtilities.js +5 -4
  62. package/es-modules/Core/Legend/Legend.js +12 -13
  63. package/es-modules/Core/Navigator.js +34 -22
  64. package/es-modules/Core/Pointer.js +13 -9
  65. package/es-modules/Core/Renderer/HTML/AST.js +27 -14
  66. package/es-modules/Core/Renderer/HTML/HTMLElement.js +4 -2
  67. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +8 -6
  68. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  69. package/es-modules/Core/Renderer/SVG/SVGElement.js +8 -16
  70. package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
  71. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -12
  72. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
  73. package/es-modules/Core/Renderer/SVG/TextBuilder.js +16 -10
  74. package/es-modules/Core/Responsive.js +2 -3
  75. package/es-modules/Core/Scrollbar.js +14 -12
  76. package/es-modules/Core/Series/DataLabel.js +17 -12
  77. package/es-modules/Core/Series/Point.js +17 -16
  78. package/es-modules/Core/Series/Series.js +44 -73
  79. package/es-modules/Core/Series/SeriesDefaults.js +5 -4
  80. package/es-modules/Core/Time.js +14 -11
  81. package/es-modules/Core/Tooltip.js +19 -36
  82. package/es-modules/Core/Utilities.js +5 -17
  83. package/es-modules/Data/DataConverter.js +0 -6
  84. package/es-modules/Data/DataSeriesConverter.js +9 -5
  85. package/es-modules/Data/DataTable.js +2 -1
  86. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  87. package/es-modules/Data/Parsers/CSVParser.js +3 -2
  88. package/es-modules/Data/Parsers/GoogleSheetsParser.js +5 -2
  89. package/es-modules/Data/Stores/CSVStore.js +2 -2
  90. package/es-modules/Data/Stores/DataStore.js +1 -1
  91. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  92. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  93. package/es-modules/Extensions/Annotations/Annotations.js +11 -10
  94. package/es-modules/Extensions/Annotations/ControlPoint.js +0 -2
  95. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
  96. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +1 -1
  97. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +1 -1
  98. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +3 -6
  99. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -2
  100. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +1 -1
  101. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +6 -3
  102. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +0 -1
  103. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +5 -4
  104. package/es-modules/Extensions/Annotations/NavigationBindings.js +34 -29
  105. package/es-modules/Extensions/Annotations/Popup.js +40 -32
  106. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
  107. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
  108. package/es-modules/Extensions/Annotations/Types/Measure.js +15 -11
  109. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +2 -1
  110. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +8 -4
  111. package/es-modules/Extensions/Annotations/Types/Tunnel.js +10 -5
  112. package/es-modules/Extensions/Boost/BoostOverrides.js +3 -9
  113. package/es-modules/Extensions/Boost/BoostUtils.js +0 -6
  114. package/es-modules/Extensions/Boost/WGLRenderer.js +16 -12
  115. package/es-modules/Extensions/Boost/WGLShader.js +9 -8
  116. package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
  117. package/es-modules/Extensions/Data.js +4 -48
  118. package/es-modules/Extensions/DataGrouping.js +22 -15
  119. package/es-modules/Extensions/DraggablePoints.js +7 -8
  120. package/es-modules/Extensions/Drilldown.js +9 -4
  121. package/es-modules/Extensions/ExportData.js +6 -5
  122. package/es-modules/Extensions/Exporting/Exporting.js +23 -37
  123. package/es-modules/Extensions/FullScreen.js +4 -3
  124. package/es-modules/Extensions/GeoJSON.js +3 -3
  125. package/es-modules/Extensions/MarkerClusters.js +3 -1
  126. package/es-modules/Extensions/Math3D.js +4 -4
  127. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +23 -24
  128. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  129. package/es-modules/Extensions/Oldie/Oldie.js +13 -77
  130. package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
  131. package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
  132. package/es-modules/Extensions/Pane.js +6 -6
  133. package/es-modules/Extensions/ParallelCoordinates.js +5 -3
  134. package/es-modules/Extensions/PatternFill.js +17 -11
  135. package/es-modules/Extensions/Polar.js +6 -3
  136. package/es-modules/Extensions/PriceIndication.js +2 -1
  137. package/es-modules/Extensions/RangeSelector.js +19 -55
  138. package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
  139. package/es-modules/Extensions/SeriesLabel.js +1 -1
  140. package/es-modules/Extensions/Sonification/ChartSonify.js +32 -26
  141. package/es-modules/Extensions/Sonification/Instrument.js +12 -15
  142. package/es-modules/Extensions/Sonification/PointSonify.js +12 -8
  143. package/es-modules/Extensions/Sonification/SeriesSonify.js +33 -18
  144. package/es-modules/Extensions/Sonification/SignalHandler.js +4 -6
  145. package/es-modules/Extensions/Sonification/Sonification.js +1 -1
  146. package/es-modules/Extensions/Sonification/SonificationUtilities.js +11 -7
  147. package/es-modules/Extensions/Sonification/Timeline.js +2 -7
  148. package/es-modules/Extensions/Sonification/TimelineEvent.js +0 -1
  149. package/es-modules/Extensions/Sonification/TimelinePath.js +8 -8
  150. package/es-modules/Extensions/Stacking.js +5 -23
  151. package/es-modules/Extensions/Themes/BrandDark.js +293 -0
  152. package/es-modules/Extensions/Themes/BrandLight.js +259 -0
  153. package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
  154. package/es-modules/Extensions/Themes/Grid.js +4 -2
  155. package/es-modules/Extensions/Themes/GridLight.js +4 -2
  156. package/es-modules/Gantt/Connection.js +2 -2
  157. package/es-modules/Gantt/Pathfinder.js +6 -5
  158. package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
  159. package/es-modules/Maps/MapNavigation.js +6 -7
  160. package/es-modules/Maps/MapPointer.js +2 -1
  161. package/es-modules/Maps/MapSymbols.js +23 -3
  162. package/es-modules/Maps/MapViewOptionsDefault.js +1 -1
  163. package/es-modules/Series/Area/AreaSeries.js +13 -13
  164. package/es-modules/Series/Area3DSeries.js +4 -2
  165. package/es-modules/Series/AreaRange/AreaRangeSeries.js +24 -12
  166. package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -1
  167. package/es-modules/Series/Bubble/BubbleLegendItem.js +2 -12
  168. package/es-modules/Series/Candlestick/CandlestickSeries.js +0 -1
  169. package/es-modules/Series/ColorMapMixin.js +84 -0
  170. package/es-modules/Series/Column/ColumnSeries.js +16 -14
  171. package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
  172. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +5 -2
  173. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  174. package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
  175. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
  176. package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
  177. package/es-modules/Series/Dumbbell/DumbbellSeries.js +0 -3
  178. package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
  179. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
  180. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
  181. package/es-modules/Series/Gantt/GanttPoint.js +1 -1
  182. package/es-modules/Series/Gantt/GanttSeries.js +3 -1
  183. package/es-modules/Series/HLC/HLCSeries.js +1 -6
  184. package/es-modules/Series/Heatmap/HeatmapPoint.js +10 -10
  185. package/es-modules/Series/Heatmap/HeatmapSeries.js +9 -10
  186. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +8 -6
  187. package/es-modules/Series/Histogram/HistogramSeries.js +4 -4
  188. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
  189. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +19 -20
  190. package/es-modules/Series/Item/ItemSeries.js +4 -5
  191. package/es-modules/Series/Map/MapPoint.js +6 -0
  192. package/es-modules/Series/Map/MapSeries.js +24 -25
  193. package/es-modules/Series/MapLine/MapLineSeries.js +0 -4
  194. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
  195. package/es-modules/Series/Networkgraph/Integrations.js +8 -22
  196. package/es-modules/Series/Networkgraph/Networkgraph.js +1 -5
  197. package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
  198. package/es-modules/Series/NodesComposition.js +2 -1
  199. package/es-modules/Series/OHLC/OHLCPoint.js +0 -1
  200. package/es-modules/Series/OHLC/OHLCSeries.js +1 -1
  201. package/es-modules/Series/Organization/OrganizationSeries.js +4 -2
  202. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
  203. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  204. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +2 -4
  205. package/es-modules/Series/Pie/PiePoint.js +2 -2
  206. package/es-modules/Series/Pie/PieSeries.js +1 -1
  207. package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
  208. package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
  209. package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  210. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
  211. package/es-modules/Series/Sankey/SankeySeries.js +3 -2
  212. package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
  213. package/es-modules/Series/Spline/SplineSeries.js +0 -8
  214. package/es-modules/Series/Sunburst/SunburstSeries.js +2 -2
  215. package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
  216. package/es-modules/Series/Tilemap/TilemapPoint.js +0 -2
  217. package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
  218. package/es-modules/Series/TreeUtilities.js +2 -2
  219. package/es-modules/Series/Treemap/TreemapSeries.js +18 -21
  220. package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
  221. package/es-modules/Series/Venn/VennSeries.js +6 -9
  222. package/es-modules/Series/Venn/VennUtils.js +8 -7
  223. package/es-modules/Series/Waterfall/WaterfallSeries.js +6 -3
  224. package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
  225. package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -10
  226. package/es-modules/Series/XRange/XRangePoint.js +6 -12
  227. package/es-modules/Series/XRange/XRangeSeries.js +4 -20
  228. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +12 -0
  229. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -0
  230. package/es-modules/Stock/Indicators/BB/BBIndicator.js +12 -0
  231. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
  232. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +9 -5
  233. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +2 -1
  234. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
  235. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +12 -0
  236. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -3
  237. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +30 -12
  238. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
  239. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +70 -6
  240. package/es-modules/Stock/Indicators/PC/PCIndicator.js +11 -0
  241. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
  242. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
  243. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -3
  244. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
  245. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -3
  246. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
  247. package/es-modules/Stock/StockToolsBindings.js +13 -6
  248. package/es-modules/Stock/StockToolsGui.js +34 -23
  249. package/es-modules/masters/highcharts-3d.src.js +1 -1
  250. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  251. package/es-modules/masters/highcharts-more.src.js +1 -1
  252. package/es-modules/masters/highcharts.src.js +1 -1
  253. package/es-modules/masters/highmaps.src.js +1 -1
  254. package/es-modules/masters/highstock.src.js +1 -1
  255. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  256. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  257. package/es-modules/masters/indicators/ao.src.js +1 -1
  258. package/es-modules/masters/indicators/apo.src.js +1 -1
  259. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  260. package/es-modules/masters/indicators/aroon.src.js +1 -1
  261. package/es-modules/masters/indicators/atr.src.js +1 -1
  262. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  263. package/es-modules/masters/indicators/cci.src.js +1 -1
  264. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  265. package/es-modules/masters/indicators/cmf.src.js +1 -1
  266. package/es-modules/masters/indicators/cmo.src.js +1 -1
  267. package/es-modules/masters/indicators/dema.src.js +1 -1
  268. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  269. package/es-modules/masters/indicators/dmi.src.js +1 -1
  270. package/es-modules/masters/indicators/dpo.src.js +1 -1
  271. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  272. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  273. package/es-modules/masters/indicators/indicators.src.js +1 -1
  274. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  275. package/es-modules/masters/indicators/klinger.src.js +1 -1
  276. package/es-modules/masters/indicators/macd.src.js +1 -1
  277. package/es-modules/masters/indicators/mfi.src.js +1 -1
  278. package/es-modules/masters/indicators/momentum.src.js +1 -1
  279. package/es-modules/masters/indicators/natr.src.js +1 -1
  280. package/es-modules/masters/indicators/obv.src.js +1 -1
  281. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  282. package/es-modules/masters/indicators/ppo.src.js +1 -1
  283. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  284. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  285. package/es-modules/masters/indicators/psar.src.js +1 -1
  286. package/es-modules/masters/indicators/regressions.src.js +1 -1
  287. package/es-modules/masters/indicators/roc.src.js +1 -1
  288. package/es-modules/masters/indicators/rsi.src.js +1 -1
  289. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  290. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  291. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  292. package/es-modules/masters/indicators/tema.src.js +1 -1
  293. package/es-modules/masters/indicators/trendline.src.js +1 -1
  294. package/es-modules/masters/indicators/trix.src.js +1 -1
  295. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  296. package/es-modules/masters/indicators/vwap.src.js +1 -1
  297. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  298. package/es-modules/masters/indicators/wma.src.js +1 -1
  299. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  300. package/es-modules/masters/modules/accessibility.src.js +2 -2
  301. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  302. package/es-modules/masters/modules/annotations.src.js +1 -1
  303. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  304. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  305. package/es-modules/masters/modules/boost.src.js +1 -1
  306. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  307. package/es-modules/masters/modules/bullet.src.js +1 -1
  308. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  309. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  310. package/es-modules/masters/modules/cylinder.src.js +1 -1
  311. package/es-modules/masters/modules/data.src.js +1 -1
  312. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  313. package/es-modules/masters/modules/debugger.src.js +1 -1
  314. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  315. package/es-modules/masters/modules/dotplot.src.js +1 -1
  316. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  317. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  318. package/es-modules/masters/modules/drilldown.src.js +1 -1
  319. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  320. package/es-modules/masters/modules/export-data.src.js +1 -1
  321. package/es-modules/masters/modules/exporting.src.js +1 -1
  322. package/es-modules/masters/modules/full-screen.src.js +1 -1
  323. package/es-modules/masters/modules/funnel.src.js +1 -1
  324. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  325. package/es-modules/masters/modules/gantt.src.js +1 -1
  326. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  327. package/es-modules/masters/modules/heatmap.src.js +1 -1
  328. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  329. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  330. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  331. package/es-modules/masters/modules/item-series.src.js +1 -1
  332. package/es-modules/masters/modules/lollipop.src.js +1 -1
  333. package/es-modules/masters/modules/map.src.js +1 -1
  334. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  335. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  336. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  337. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  338. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  339. package/es-modules/masters/modules/oldie.src.js +1 -1
  340. package/es-modules/masters/modules/organization.src.js +1 -1
  341. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  342. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  343. package/es-modules/masters/modules/pareto.src.js +1 -1
  344. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  345. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  346. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  347. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  348. package/es-modules/masters/modules/sankey.src.js +1 -1
  349. package/es-modules/masters/modules/series-label.src.js +1 -1
  350. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  351. package/es-modules/masters/modules/sonification.src.js +1 -1
  352. package/es-modules/masters/modules/static-scale.src.js +1 -1
  353. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  354. package/es-modules/masters/modules/stock.src.js +1 -1
  355. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  356. package/es-modules/masters/modules/sunburst.src.js +1 -1
  357. package/es-modules/masters/modules/tilemap.src.js +1 -1
  358. package/es-modules/masters/modules/timeline.src.js +1 -1
  359. package/es-modules/masters/modules/treegrid.src.js +1 -1
  360. package/es-modules/masters/modules/treemap.src.js +1 -1
  361. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  362. package/es-modules/masters/modules/variwide.src.js +1 -1
  363. package/es-modules/masters/modules/vector.src.js +1 -1
  364. package/es-modules/masters/modules/venn.src.js +1 -1
  365. package/es-modules/masters/modules/windbarb.src.js +1 -1
  366. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  367. package/es-modules/masters/modules/xrange.src.js +1 -1
  368. package/es-modules/masters/themes/avocado.src.js +1 -1
  369. package/es-modules/masters/themes/brand-dark.src.js +14 -0
  370. package/es-modules/masters/themes/brand-light.src.js +14 -0
  371. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  372. package/es-modules/masters/themes/dark-green.src.js +1 -1
  373. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  374. package/es-modules/masters/themes/gray.src.js +1 -1
  375. package/es-modules/masters/themes/grid-light.src.js +1 -1
  376. package/es-modules/masters/themes/grid.src.js +1 -1
  377. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  378. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  379. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  380. package/es-modules/masters/themes/skies.src.js +1 -1
  381. package/es-modules/masters/themes/sunset.src.js +1 -1
  382. package/highcharts-3d.js +1 -1
  383. package/highcharts-3d.js.map +1 -1
  384. package/highcharts-3d.src.js +65 -35
  385. package/highcharts-gantt.js +799 -799
  386. package/highcharts-gantt.js.map +1 -1
  387. package/highcharts-gantt.src.js +589 -698
  388. package/highcharts-more.js +1 -1
  389. package/highcharts-more.js.map +1 -1
  390. package/highcharts-more.src.js +73 -103
  391. package/highcharts.d.ts +5586 -1709
  392. package/highcharts.js +577 -577
  393. package/highcharts.js.map +1 -1
  394. package/highcharts.src.d.ts +5586 -1709
  395. package/highcharts.src.js +391 -486
  396. package/highmaps.js +723 -723
  397. package/highmaps.js.map +1 -1
  398. package/highmaps.src.js +552 -656
  399. package/highstock.js +782 -782
  400. package/highstock.js.map +1 -1
  401. package/highstock.src.js +612 -731
  402. package/indicators/acceleration-bands.d.ts +17 -1
  403. package/indicators/acceleration-bands.js +11 -10
  404. package/indicators/acceleration-bands.js.map +1 -1
  405. package/indicators/acceleration-bands.src.d.ts +17 -1
  406. package/indicators/acceleration-bands.src.js +88 -6
  407. package/indicators/accumulation-distribution.js +1 -1
  408. package/indicators/accumulation-distribution.src.js +1 -1
  409. package/indicators/ao.js +1 -1
  410. package/indicators/ao.src.js +1 -1
  411. package/indicators/apo.js +1 -1
  412. package/indicators/apo.src.js +1 -1
  413. package/indicators/aroon-oscillator.d.ts +17 -1
  414. package/indicators/aroon-oscillator.js +10 -9
  415. package/indicators/aroon-oscillator.js.map +1 -1
  416. package/indicators/aroon-oscillator.src.d.ts +17 -1
  417. package/indicators/aroon-oscillator.src.js +76 -6
  418. package/indicators/aroon.d.ts +17 -1
  419. package/indicators/aroon.js +11 -9
  420. package/indicators/aroon.js.map +1 -1
  421. package/indicators/aroon.src.d.ts +17 -1
  422. package/indicators/aroon.src.js +77 -6
  423. package/indicators/atr.js +1 -1
  424. package/indicators/atr.src.js +1 -1
  425. package/indicators/bollinger-bands.d.ts +17 -1
  426. package/indicators/bollinger-bands.js +12 -10
  427. package/indicators/bollinger-bands.js.map +1 -1
  428. package/indicators/bollinger-bands.src.d.ts +17 -1
  429. package/indicators/bollinger-bands.src.js +88 -6
  430. package/indicators/cci.js +1 -1
  431. package/indicators/cci.src.js +1 -1
  432. package/indicators/chaikin.js +1 -1
  433. package/indicators/chaikin.src.js +1 -1
  434. package/indicators/cmf.js +1 -1
  435. package/indicators/cmf.js.map +1 -1
  436. package/indicators/cmf.src.js +36 -16
  437. package/indicators/cmo.js +1 -1
  438. package/indicators/cmo.src.js +1 -1
  439. package/indicators/dema.js +1 -1
  440. package/indicators/dema.src.js +1 -1
  441. package/indicators/disparity-index.js +1 -1
  442. package/indicators/disparity-index.js.map +1 -1
  443. package/indicators/disparity-index.src.js +3 -2
  444. package/indicators/dmi.js +12 -11
  445. package/indicators/dmi.js.map +1 -1
  446. package/indicators/dmi.src.js +85 -11
  447. package/indicators/dpo.js +1 -1
  448. package/indicators/dpo.src.js +1 -1
  449. package/indicators/ichimoku-kinko-hyo.js +1 -1
  450. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  451. package/indicators/ichimoku-kinko-hyo.src.js +7 -7
  452. package/indicators/indicators-all.d.ts +17 -1
  453. package/indicators/indicators-all.js +198 -197
  454. package/indicators/indicators-all.js.map +1 -1
  455. package/indicators/indicators-all.src.d.ts +17 -1
  456. package/indicators/indicators-all.src.js +246 -65
  457. package/indicators/indicators.js +1 -1
  458. package/indicators/indicators.js.map +1 -1
  459. package/indicators/indicators.src.js +3 -4
  460. package/indicators/keltner-channels.d.ts +17 -1
  461. package/indicators/keltner-channels.js +11 -10
  462. package/indicators/keltner-channels.js.map +1 -1
  463. package/indicators/keltner-channels.src.d.ts +17 -1
  464. package/indicators/keltner-channels.src.js +88 -6
  465. package/indicators/klinger.js +14 -12
  466. package/indicators/klinger.js.map +1 -1
  467. package/indicators/klinger.src.js +84 -9
  468. package/indicators/macd.js +1 -1
  469. package/indicators/macd.js.map +1 -1
  470. package/indicators/macd.src.js +2 -2
  471. package/indicators/mfi.js +1 -1
  472. package/indicators/mfi.src.js +1 -1
  473. package/indicators/momentum.js +1 -1
  474. package/indicators/momentum.src.js +1 -1
  475. package/indicators/natr.js +1 -1
  476. package/indicators/natr.src.js +1 -1
  477. package/indicators/obv.js +1 -1
  478. package/indicators/obv.src.js +1 -1
  479. package/indicators/pivot-points.js +1 -1
  480. package/indicators/pivot-points.js.map +1 -1
  481. package/indicators/pivot-points.src.js +3 -2
  482. package/indicators/ppo.js +1 -1
  483. package/indicators/ppo.src.js +1 -1
  484. package/indicators/price-channel.d.ts +17 -1
  485. package/indicators/price-channel.js +11 -9
  486. package/indicators/price-channel.js.map +1 -1
  487. package/indicators/price-channel.src.d.ts +17 -1
  488. package/indicators/price-channel.src.js +87 -6
  489. package/indicators/price-envelopes.js +1 -1
  490. package/indicators/price-envelopes.src.js +1 -1
  491. package/indicators/psar.js +1 -1
  492. package/indicators/psar.src.js +1 -1
  493. package/indicators/regressions.js +1 -1
  494. package/indicators/regressions.js.map +1 -1
  495. package/indicators/regressions.src.js +31 -13
  496. package/indicators/roc.js +1 -1
  497. package/indicators/roc.src.js +1 -1
  498. package/indicators/rsi.js +1 -1
  499. package/indicators/rsi.js.map +1 -1
  500. package/indicators/rsi.src.js +3 -2
  501. package/indicators/slow-stochastic.js +1 -1
  502. package/indicators/slow-stochastic.src.js +1 -1
  503. package/indicators/stochastic.d.ts +17 -1
  504. package/indicators/stochastic.js +12 -10
  505. package/indicators/stochastic.js.map +1 -1
  506. package/indicators/stochastic.src.d.ts +17 -1
  507. package/indicators/stochastic.src.js +79 -7
  508. package/indicators/supertrend.js +1 -1
  509. package/indicators/supertrend.src.js +1 -1
  510. package/indicators/tema.js +1 -1
  511. package/indicators/tema.src.js +1 -1
  512. package/indicators/trendline.js +1 -1
  513. package/indicators/trendline.src.js +1 -1
  514. package/indicators/trix.js +1 -1
  515. package/indicators/trix.src.js +1 -1
  516. package/indicators/volume-by-price.js +1 -1
  517. package/indicators/volume-by-price.src.js +4 -4
  518. package/indicators/vwap.js +1 -1
  519. package/indicators/vwap.js.map +1 -1
  520. package/indicators/vwap.src.js +20 -8
  521. package/indicators/williams-r.js +1 -1
  522. package/indicators/williams-r.src.js +1 -1
  523. package/indicators/wma.js +1 -1
  524. package/indicators/wma.src.js +1 -1
  525. package/indicators/zigzag.js +1 -1
  526. package/indicators/zigzag.src.js +1 -1
  527. package/modules/accessibility.d.ts +0 -35
  528. package/modules/accessibility.js +225 -222
  529. package/modules/accessibility.js.map +1 -1
  530. package/modules/accessibility.src.d.ts +0 -35
  531. package/modules/accessibility.src.js +503 -418
  532. package/modules/annotations-advanced.js +128 -128
  533. package/modules/annotations-advanced.js.map +1 -1
  534. package/modules/annotations-advanced.src.js +152 -124
  535. package/modules/annotations.js +122 -122
  536. package/modules/annotations.js.map +1 -1
  537. package/modules/annotations.src.js +112 -100
  538. package/modules/arrow-symbols.js +1 -1
  539. package/modules/arrow-symbols.src.js +1 -1
  540. package/modules/boost-canvas.js +1 -1
  541. package/modules/boost-canvas.src.js +1 -1
  542. package/modules/boost.js +1 -1
  543. package/modules/boost.js.map +1 -1
  544. package/modules/boost.src.js +33 -43
  545. package/modules/broken-axis.js +1 -1
  546. package/modules/broken-axis.js.map +1 -1
  547. package/modules/broken-axis.src.js +18 -12
  548. package/modules/bullet.js +1 -1
  549. package/modules/bullet.src.js +1 -1
  550. package/modules/coloraxis.js +1 -1
  551. package/modules/coloraxis.js.map +1 -1
  552. package/modules/coloraxis.src.js +11 -8
  553. package/modules/current-date-indicator.js +1 -1
  554. package/modules/current-date-indicator.src.js +1 -1
  555. package/modules/cylinder.js +1 -1
  556. package/modules/cylinder.js.map +1 -1
  557. package/modules/cylinder.src.js +37 -5
  558. package/modules/data.d.ts +6 -6
  559. package/modules/data.js +31 -31
  560. package/modules/data.js.map +1 -1
  561. package/modules/data.src.d.ts +6 -6
  562. package/modules/data.src.js +10 -53
  563. package/modules/datagrouping.js +2 -2
  564. package/modules/datagrouping.js.map +1 -1
  565. package/modules/datagrouping.src.js +23 -16
  566. package/modules/debugger.js +1 -1
  567. package/modules/debugger.src.js +1 -1
  568. package/modules/dependency-wheel.js +3 -3
  569. package/modules/dependency-wheel.js.map +1 -1
  570. package/modules/dependency-wheel.src.js +2 -2
  571. package/modules/dotplot.js +1 -1
  572. package/modules/dotplot.src.js +1 -1
  573. package/modules/drag-panes.js +1 -1
  574. package/modules/drag-panes.src.js +1 -1
  575. package/modules/draggable-points.js +1 -1
  576. package/modules/draggable-points.js.map +1 -1
  577. package/modules/draggable-points.src.js +8 -9
  578. package/modules/drilldown.js +1 -1
  579. package/modules/drilldown.js.map +1 -1
  580. package/modules/drilldown.src.js +10 -5
  581. package/modules/dumbbell.js +1 -1
  582. package/modules/dumbbell.js.map +1 -1
  583. package/modules/dumbbell.src.js +1 -5
  584. package/modules/export-data.js +19 -19
  585. package/modules/export-data.js.map +1 -1
  586. package/modules/export-data.src.js +7 -6
  587. package/modules/exporting.js +1 -1
  588. package/modules/exporting.js.map +1 -1
  589. package/modules/exporting.src.js +33 -45
  590. package/modules/full-screen.js +1 -1
  591. package/modules/full-screen.js.map +1 -1
  592. package/modules/full-screen.src.js +5 -4
  593. package/modules/funnel.js +1 -1
  594. package/modules/funnel.src.js +1 -1
  595. package/modules/funnel3d.js +1 -1
  596. package/modules/funnel3d.js.map +1 -1
  597. package/modules/funnel3d.src.js +17 -10
  598. package/modules/gantt.js +1 -1
  599. package/modules/gantt.js.map +1 -1
  600. package/modules/gantt.src.js +199 -213
  601. package/modules/grid-axis.js +1 -1
  602. package/modules/grid-axis.js.map +1 -1
  603. package/modules/grid-axis.src.js +27 -19
  604. package/modules/heatmap.js +39 -39
  605. package/modules/heatmap.js.map +1 -1
  606. package/modules/heatmap.src.js +88 -112
  607. package/modules/heikinashi.js +1 -1
  608. package/modules/heikinashi.js.map +1 -1
  609. package/modules/heikinashi.src.js +9 -7
  610. package/modules/histogram-bellcurve.js +1 -1
  611. package/modules/histogram-bellcurve.js.map +1 -1
  612. package/modules/histogram-bellcurve.src.js +7 -6
  613. package/modules/hollowcandlestick.js +1 -1
  614. package/modules/hollowcandlestick.js.map +1 -1
  615. package/modules/hollowcandlestick.src.js +21 -25
  616. package/modules/item-series.js +6 -6
  617. package/modules/item-series.js.map +1 -1
  618. package/modules/item-series.src.js +6 -6
  619. package/modules/lollipop.js +1 -1
  620. package/modules/lollipop.src.js +1 -1
  621. package/modules/map.d.ts +2 -0
  622. package/modules/map.js +144 -144
  623. package/modules/map.js.map +1 -1
  624. package/modules/map.src.d.ts +2 -0
  625. package/modules/map.src.js +162 -171
  626. package/modules/marker-clusters.js +1 -1
  627. package/modules/marker-clusters.js.map +1 -1
  628. package/modules/marker-clusters.src.js +4 -2
  629. package/modules/networkgraph.js +1 -1
  630. package/modules/networkgraph.js.map +1 -1
  631. package/modules/networkgraph.src.js +13 -36
  632. package/modules/no-data-to-display.js +1 -1
  633. package/modules/no-data-to-display.src.js +1 -1
  634. package/modules/offline-exporting.js +18 -18
  635. package/modules/offline-exporting.js.map +1 -1
  636. package/modules/offline-exporting.src.js +27 -32
  637. package/modules/oldie-polyfills.js +1 -1
  638. package/modules/oldie-polyfills.src.js +1 -1
  639. package/modules/oldie.js +2 -2
  640. package/modules/oldie.js.map +1 -1
  641. package/modules/oldie.src.js +19 -79
  642. package/modules/organization.js +1 -1
  643. package/modules/organization.js.map +1 -1
  644. package/modules/organization.src.js +5 -3
  645. package/modules/overlapping-datalabels.js +1 -1
  646. package/modules/overlapping-datalabels.src.js +1 -1
  647. package/modules/parallel-coordinates.js +1 -1
  648. package/modules/parallel-coordinates.js.map +1 -1
  649. package/modules/parallel-coordinates.src.js +6 -4
  650. package/modules/pareto.js +1 -1
  651. package/modules/pareto.src.js +1 -1
  652. package/modules/pathfinder.js +1 -1
  653. package/modules/pathfinder.js.map +1 -1
  654. package/modules/pathfinder.src.js +21 -20
  655. package/modules/pattern-fill.js +1 -1
  656. package/modules/pattern-fill.js.map +1 -1
  657. package/modules/pattern-fill.src.js +18 -12
  658. package/modules/price-indicator.js +1 -1
  659. package/modules/price-indicator.js.map +1 -1
  660. package/modules/price-indicator.src.js +3 -2
  661. package/modules/pyramid3d.js +1 -1
  662. package/modules/pyramid3d.js.map +1 -1
  663. package/modules/pyramid3d.src.js +3 -2
  664. package/modules/sankey.js +1 -1
  665. package/modules/sankey.js.map +1 -1
  666. package/modules/sankey.src.js +8 -6
  667. package/modules/series-label.js +1 -1
  668. package/modules/series-label.js.map +1 -1
  669. package/modules/series-label.src.js +2 -2
  670. package/modules/solid-gauge.js +1 -1
  671. package/modules/solid-gauge.js.map +1 -1
  672. package/modules/solid-gauge.src.js +17 -2
  673. package/modules/sonification.js +53 -53
  674. package/modules/sonification.js.map +1 -1
  675. package/modules/sonification.src.js +121 -103
  676. package/modules/static-scale.js +1 -1
  677. package/modules/static-scale.src.js +1 -1
  678. package/modules/stock-tools.js +66 -66
  679. package/modules/stock-tools.js.map +1 -1
  680. package/modules/stock-tools.src.js +119 -96
  681. package/modules/stock.js +3 -3
  682. package/modules/stock.js.map +1 -1
  683. package/modules/stock.src.js +222 -246
  684. package/modules/streamgraph.js +1 -1
  685. package/modules/streamgraph.src.js +1 -1
  686. package/modules/sunburst.js +60 -61
  687. package/modules/sunburst.js.map +1 -1
  688. package/modules/sunburst.src.js +83 -113
  689. package/modules/tilemap.js +1 -1
  690. package/modules/tilemap.js.map +1 -1
  691. package/modules/tilemap.src.js +1 -10
  692. package/modules/timeline.js +1 -1
  693. package/modules/timeline.src.js +1 -1
  694. package/modules/treegrid.js +1 -1
  695. package/modules/treegrid.js.map +1 -1
  696. package/modules/treegrid.src.js +76 -50
  697. package/modules/treemap.js +41 -41
  698. package/modules/treemap.js.map +1 -1
  699. package/modules/treemap.src.js +78 -109
  700. package/modules/variable-pie.js +1 -1
  701. package/modules/variable-pie.src.js +1 -1
  702. package/modules/variwide.js +1 -1
  703. package/modules/variwide.js.map +1 -1
  704. package/modules/variwide.src.js +7 -3
  705. package/modules/vector.js +1 -1
  706. package/modules/vector.src.js +1 -1
  707. package/modules/venn.js +1 -1
  708. package/modules/venn.js.map +1 -1
  709. package/modules/venn.src.js +17 -18
  710. package/modules/windbarb.js +1 -1
  711. package/modules/windbarb.src.js +1 -1
  712. package/modules/wordcloud.js +1 -1
  713. package/modules/wordcloud.js.map +1 -1
  714. package/modules/wordcloud.src.js +9 -13
  715. package/modules/xrange.js +1 -1
  716. package/modules/xrange.js.map +1 -1
  717. package/modules/xrange.src.js +11 -33
  718. package/package.json +1 -1
  719. package/themes/avocado.js +1 -1
  720. package/themes/avocado.src.js +1 -1
  721. package/themes/brand-dark.js +15 -0
  722. package/themes/brand-dark.js.map +1 -0
  723. package/themes/brand-dark.src.js +328 -0
  724. package/themes/brand-light.js +15 -0
  725. package/themes/brand-light.js.map +1 -0
  726. package/themes/brand-light.src.js +294 -0
  727. package/themes/dark-blue.js +1 -1
  728. package/themes/dark-blue.src.js +1 -1
  729. package/themes/dark-green.js +1 -1
  730. package/themes/dark-green.src.js +1 -1
  731. package/themes/dark-unica.js +1 -1
  732. package/themes/dark-unica.js.map +1 -1
  733. package/themes/dark-unica.src.js +5 -3
  734. package/themes/gray.js +1 -1
  735. package/themes/gray.src.js +1 -1
  736. package/themes/grid-light.js +1 -1
  737. package/themes/grid-light.js.map +1 -1
  738. package/themes/grid-light.src.js +5 -3
  739. package/themes/grid.js +1 -1
  740. package/themes/grid.js.map +1 -1
  741. package/themes/grid.src.js +5 -3
  742. package/themes/high-contrast-dark.js +1 -1
  743. package/themes/high-contrast-dark.src.js +1 -1
  744. package/themes/high-contrast-light.js +1 -1
  745. package/themes/high-contrast-light.src.js +1 -1
  746. package/themes/sand-signika.js +1 -1
  747. package/themes/sand-signika.src.js +1 -1
  748. package/themes/skies.js +1 -1
  749. package/themes/skies.src.js +1 -1
  750. package/themes/sunset.js +1 -1
  751. package/themes/sunset.src.js +1 -1
  752. package/es-modules/Series/ColorMapComposition.js +0 -109
package/highmaps.src.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highmaps JS v9.3.1 (2021-11-05)
2
+ * @license Highmaps JS v9.3.2 (2021-11-29)
3
3
  *
4
4
  * (c) 2011-2021 Torstein Honsi
5
5
  *
@@ -71,7 +71,7 @@
71
71
  * Constants
72
72
  *
73
73
  * */
74
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '9.3.1', Globals.win = w, Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
74
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '9.3.2', Globals.win = w, Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
75
75
  Globals.doc.createElementNS &&
76
76
  !!Globals.doc.createElementNS(Globals.SVG_NS, 'svg').createSVGRect), Globals.userAgent = (Globals.win.navigator && Globals.win.navigator.userAgent) || '', Globals.isChrome = Globals.userAgent.indexOf('Chrome') !== -1, 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.hasBidiBug = (Globals.isFirefox &&
77
77
  parseInt(Globals.userAgent.split('Firefox/')[1], 10) < 4 // issue #38
@@ -761,7 +761,7 @@
761
761
  return obj;
762
762
  }
763
763
  /**
764
- * Left-pad a string to a given length by adding a character repetetively.
764
+ * Left-pad a string to a given length by adding a character repetitively.
765
765
  *
766
766
  * @function Highcharts.pad
767
767
  *
@@ -1030,7 +1030,7 @@
1030
1030
  });
1031
1031
  }
1032
1032
  /**
1033
- * Discard a HTML element by moving it to the bin and delete.
1033
+ * Discard a HTML element
1034
1034
  *
1035
1035
  * @function Highcharts.discardElement
1036
1036
  *
@@ -1038,17 +1038,10 @@
1038
1038
  * The HTML node to discard.
1039
1039
  */
1040
1040
  function discardElement(element) {
1041
- // create a garbage bin element, not part of the DOM
1042
- if (!garbageBin) {
1043
- garbageBin = createElement('div');
1041
+ if (element && element.parentElement) {
1042
+ element.parentElement.removeChild(element);
1044
1043
  }
1045
- // move the node and empty bin
1046
- if (element) {
1047
- garbageBin.appendChild(element);
1048
- }
1049
- garbageBin.innerHTML = '';
1050
1044
  }
1051
- var garbageBin;
1052
1045
  /**
1053
1046
  * Fix JS round off float errors.
1054
1047
  *
@@ -1247,7 +1240,7 @@
1247
1240
  var i;
1248
1241
  var length = arr.length;
1249
1242
  for (i = 0; i < length; i++) {
1250
- if (callback(arr[i], i)) { // eslint-disable-line callback-return
1243
+ if (callback(arr[i], i)) { // eslint-disable-line node/callback-return
1251
1244
  return arr[i];
1252
1245
  }
1253
1246
  }
@@ -1519,9 +1512,6 @@
1519
1512
  /* eslint-enable valid-jsdoc */
1520
1513
  /**
1521
1514
  * @private
1522
- * @param {string} type - event type
1523
- * @param {Highcharts.EventCallbackFunction<T>} fn - callback
1524
- * @return {void}
1525
1515
  */
1526
1516
  function removeOneEvent(type, fn) {
1527
1517
  var removeEventListener = (el.removeEventListener || H.removeEventListenerPolyfill);
@@ -1531,8 +1521,6 @@
1531
1521
  }
1532
1522
  /**
1533
1523
  * @private
1534
- * @param {any} eventCollection - collection
1535
- * @return {void}
1536
1524
  */
1537
1525
  function removeAllEvents(eventCollection) {
1538
1526
  var types,
@@ -3882,7 +3870,8 @@
3882
3870
  // time
3883
3871
  if (unit === 'Milliseconds' ||
3884
3872
  unit === 'Seconds' ||
3885
- (unit === 'Minutes' && this.getTimezoneOffset(date) % 3600000 === 0) // #13961
3873
+ (unit === 'Minutes' &&
3874
+ this.getTimezoneOffset(date) % 3600000 === 0) // #13961
3886
3875
  ) {
3887
3876
  return date['setUTC' + unit](value);
3888
3877
  }
@@ -3899,8 +3888,8 @@
3899
3888
  }
3900
3889
  // UTC time with no timezone handling
3901
3890
  if (this.useUTC ||
3902
- (hasNewSafariBug && unit === 'FullYear') // leap calculation in UTC only
3903
- ) {
3891
+ // leap calculation in UTC only
3892
+ (hasNewSafariBug && unit === 'FullYear')) {
3904
3893
  return date['setUTC' + unit](value);
3905
3894
  }
3906
3895
  // Else, local time
@@ -3916,7 +3905,6 @@
3916
3905
  *
3917
3906
  * @param {Highcharts.TimeOptions} options
3918
3907
  *
3919
- * @return {void}
3920
3908
  */
3921
3909
  Time.prototype.update = function (options) {
3922
3910
  var useUTC = pick(options && options.useUTC,
@@ -4005,6 +3993,7 @@
4005
3993
  Time.prototype.timezoneOffsetFunction = function () {
4006
3994
  var time = this,
4007
3995
  options = this.options,
3996
+ getTimezoneOffset = options.getTimezoneOffset,
4008
3997
  moment = options.moment || win.moment;
4009
3998
  if (!this.useUTC) {
4010
3999
  return function (timestamp) {
@@ -4024,9 +4013,9 @@
4024
4013
  }
4025
4014
  }
4026
4015
  // If not timezone is set, look for the getTimezoneOffset callback
4027
- if (this.useUTC && options.getTimezoneOffset) {
4016
+ if (this.useUTC && getTimezoneOffset) {
4028
4017
  return function (timestamp) {
4029
- return options.getTimezoneOffset(timestamp.valueOf()) * 60000;
4018
+ return getTimezoneOffset(timestamp.valueOf()) * 60000;
4030
4019
  };
4031
4020
  }
4032
4021
  // Last, use the `timezoneOffset` option if set
@@ -4160,8 +4149,10 @@
4160
4149
  * Resolve legacy formats of dateTimeLabelFormats (strings and arrays) into
4161
4150
  * an object.
4162
4151
  * @private
4163
- * @param {string|Array<T>|Highcharts.Dictionary<T>} f - General format description
4164
- * @return {Highcharts.Dictionary<T>} - The object definition
4152
+ * @param {string|Array<T>|Highcharts.Dictionary<T>} f
4153
+ * General format description
4154
+ * @return {Highcharts.Dictionary<T>}
4155
+ * The object definition
4165
4156
  */
4166
4157
  Time.prototype.resolveDTLFormat = function (f) {
4167
4158
  if (!isObject(f, true)) { // check for string or array
@@ -4193,6 +4184,7 @@
4193
4184
  * @param {number} [startOfWeek=1]
4194
4185
  *
4195
4186
  * @return {Highcharts.AxisTickPositionsArray}
4187
+ * Time positions
4196
4188
  */
4197
4189
  Time.prototype.getTimeTicks = function (normalizedInterval, min, max, startOfWeek) {
4198
4190
  var time = this,
@@ -4462,8 +4454,8 @@
4462
4454
  * In case of loading the library from a `script` tag,
4463
4455
  * this option is not needed, it will be loaded from there by default.
4464
4456
  *
4465
- * @type {function}
4466
- * @since 8.2.0
4457
+ * @type {Function}
4458
+ * @since 8.2.0
4467
4459
  * @apioption time.moment
4468
4460
  */
4469
4461
  ''; // keeps doclets above in JS file
@@ -6982,6 +6974,7 @@
6982
6974
  * @function Highcharts.getOptions
6983
6975
  *
6984
6976
  * @return {Highcharts.Options}
6977
+ * Default options.
6985
6978
  */
6986
6979
  function getOptions() {
6987
6980
  return defaultOptions;
@@ -6996,10 +6989,10 @@
6996
6989
  * @function Highcharts.setOptions
6997
6990
  *
6998
6991
  * @param {Highcharts.Options} options
6999
- * The new custom chart options.
6992
+ * The new custom chart options.
7000
6993
  *
7001
6994
  * @return {Highcharts.Options}
7002
- * Updated options.
6995
+ * Updated options.
7003
6996
  */
7004
6997
  function setOptions(options) {
7005
6998
  // Copy in the default options
@@ -7274,7 +7267,6 @@
7274
7267
  *
7275
7268
  * @function Highcharts.Fx#dSetter
7276
7269
  *
7277
- * @return {void}
7278
7270
  */
7279
7271
  Fx.prototype.dSetter = function () {
7280
7272
  var paths = this.paths,
@@ -7323,7 +7315,6 @@
7323
7315
  *
7324
7316
  * @function Highcharts.Fx#update
7325
7317
  *
7326
- * @return {void}
7327
7318
  */
7328
7319
  Fx.prototype.update = function () {
7329
7320
  var elem = this.elem,
@@ -7362,7 +7353,6 @@
7362
7353
  * @param {string} unit
7363
7354
  * The property unit, for example `px`.
7364
7355
  *
7365
- * @return {void}
7366
7356
  */
7367
7357
  Fx.prototype.run = function (from, to, unit) {
7368
7358
  var self = this,
@@ -7384,7 +7374,8 @@
7384
7374
  };
7385
7375
  if (from === to && !this.elem['forceAnimate:' + this.prop]) {
7386
7376
  delete options.curAnim[this.prop];
7387
- if (options.complete && Object.keys(options.curAnim).length === 0) {
7377
+ if (options.complete &&
7378
+ Object.keys(options.curAnim).length === 0) {
7388
7379
  options.complete.call(this.elem);
7389
7380
  }
7390
7381
  }
@@ -7443,7 +7434,8 @@
7443
7434
  }
7444
7435
  else {
7445
7436
  this.pos = options.easing((t - this.startTime) / duration);
7446
- this.now = this.start + ((this.end - this.start) * this.pos);
7437
+ this.now = this.start + ((this.end -
7438
+ this.start) * this.pos);
7447
7439
  this.update();
7448
7440
  ret = true;
7449
7441
  }
@@ -7485,9 +7477,6 @@
7485
7477
  /**
7486
7478
  * If shifting points, prepend a dummy point to the end path.
7487
7479
  * @private
7488
- * @param {Highcharts.SVGPathArray} arr - array
7489
- * @param {Highcharts.SVGPathArray} other - array
7490
- * @return {void}
7491
7480
  */
7492
7481
  function prepend(arr, other) {
7493
7482
  while (arr.length < fullLength) {
@@ -7523,9 +7512,6 @@
7523
7512
  /**
7524
7513
  * Copy and append last point until the length matches the end length.
7525
7514
  * @private
7526
- * @param {Highcharts.SVGPathArray} arr - array
7527
- * @param {Highcharts.SVGPathArray} other - array
7528
- * @return {void}
7529
7515
  */
7530
7516
  function append(arr, other) {
7531
7517
  while (arr.length < fullLength) {
@@ -7597,7 +7583,6 @@
7597
7583
  *
7598
7584
  * @function Highcharts.Fx#fillSetter
7599
7585
  *
7600
- * @return {void}
7601
7586
  */
7602
7587
  Fx.prototype.fillSetter = function () {
7603
7588
  Fx.prototype.strokeSetter.apply(this, arguments);
@@ -7607,10 +7592,9 @@
7607
7592
  *
7608
7593
  * @function Highcharts.Fx#strokeSetter
7609
7594
  *
7610
- * @return {void}
7611
7595
  */
7612
7596
  Fx.prototype.strokeSetter = function () {
7613
- this.elem.attr(this.prop, color(this.start).tweenTo(color(this.end), this.pos), null, true);
7597
+ this.elem.attr(this.prop, color(this.start).tweenTo(color(this.end), this.pos), void 0, true);
7614
7598
  };
7615
7599
  /* *
7616
7600
  *
@@ -7853,23 +7837,34 @@
7853
7837
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
7854
7838
  *
7855
7839
  * */
7856
- var SVG_NS = H.SVG_NS;
7840
+ var SVG_NS = H.SVG_NS,
7841
+ win = H.win;
7857
7842
  var attr = U.attr,
7858
7843
  createElement = U.createElement,
7859
- discardElement = U.discardElement,
7860
7844
  error = U.error,
7845
+ isFunction = U.isFunction,
7861
7846
  isString = U.isString,
7862
7847
  objectEach = U.objectEach,
7863
7848
  splat = U.splat;
7849
+ var trustedTypes = win.trustedTypes;
7864
7850
  /* *
7865
7851
  *
7866
7852
  * Constants
7867
7853
  *
7868
7854
  * */
7855
+ // Create the trusted type policy. This should not be exposed.
7856
+ var trustedTypesPolicy = (trustedTypes &&
7857
+ isFunction(trustedTypes.createPolicy) &&
7858
+ trustedTypes.createPolicy('highcharts', {
7859
+ createHTML: function (s) { return s; }
7860
+ }));
7861
+ var emptyHTML = trustedTypesPolicy ?
7862
+ trustedTypesPolicy.createHTML('') :
7863
+ '';
7869
7864
  // In IE8, DOMParser is undefined. IE9 and PhantomJS are only able to parse XML.
7870
7865
  var hasValidDOMParser = (function () {
7871
7866
  try {
7872
- return Boolean(new DOMParser().parseFromString('', 'text/html'));
7867
+ return Boolean(new DOMParser().parseFromString(emptyHTML, 'text/html'));
7873
7868
  }
7874
7869
  catch (e) {
7875
7870
  return false;
@@ -7952,7 +7947,7 @@
7952
7947
  * Markup string
7953
7948
  */
7954
7949
  AST.setElementHTML = function (el, html) {
7955
- el.innerHTML = ''; // Clear previous
7950
+ el.innerHTML = AST.emptyHTML; // Clear previous
7956
7951
  if (html) {
7957
7952
  var ast = new AST(html);
7958
7953
  ast.addToDOM(el);
@@ -7977,9 +7972,12 @@
7977
7972
  AST.prototype.addToDOM = function (parent) {
7978
7973
  /**
7979
7974
  * @private
7980
- * @param {Highcharts.ASTNode} subtree - HTML/SVG definition
7981
- * @param {Element} [subParent] - parent node
7982
- * @return {Highcharts.SVGDOMElement|Highcharts.HTMLDOMElement} The inserted node.
7975
+ * @param {Highcharts.ASTNode} subtree
7976
+ * HTML/SVG definition
7977
+ * @param {Element} [subParent]
7978
+ * parent node
7979
+ * @return {Highcharts.SVGDOMElement|Highcharts.HTMLDOMElement}
7980
+ * The inserted node.
7983
7981
  */
7984
7982
  function recurse(subtree, subParent) {
7985
7983
  var ret;
@@ -8020,7 +8018,8 @@
8020
8018
  node = element;
8021
8019
  }
8022
8020
  else {
8023
- error("Highcharts warning: Invalid tagName '" + tagName + "' in config");
8021
+ error('Highcharts warning: Invalid tagName ' +
8022
+ tagName + ' in config');
8024
8023
  }
8025
8024
  }
8026
8025
  // Add to the tree
@@ -8050,12 +8049,13 @@
8050
8049
  var nodes = [];
8051
8050
  markup = markup.trim();
8052
8051
  var doc;
8053
- var body;
8054
8052
  if (hasValidDOMParser) {
8055
- doc = new DOMParser().parseFromString(markup, 'text/html');
8053
+ doc = new DOMParser().parseFromString(trustedTypesPolicy ?
8054
+ trustedTypesPolicy.createHTML(markup) :
8055
+ markup, 'text/html');
8056
8056
  }
8057
8057
  else {
8058
- body = createElement('div');
8058
+ var body = createElement('div');
8059
8059
  body.innerHTML = markup;
8060
8060
  doc = { body: body };
8061
8061
  }
@@ -8091,9 +8091,6 @@
8091
8091
  addTo.push(astNode);
8092
8092
  };
8093
8093
  [].forEach.call(doc.body.childNodes, function (childNode) { return appendChildNodes(childNode, nodes); });
8094
- if (body) {
8095
- discardElement(body);
8096
- }
8097
8094
  return nodes;
8098
8095
  };
8099
8096
  /* *
@@ -8280,6 +8277,7 @@
8280
8277
  'ul',
8281
8278
  '#text'
8282
8279
  ];
8280
+ AST.emptyHTML = emptyHTML;
8283
8281
  return AST;
8284
8282
  }());
8285
8283
  /* *
@@ -8615,7 +8613,8 @@
8615
8613
  * @private
8616
8614
  */
8617
8615
  function distribute(boxes, len, maxDistance) {
8618
- var origBoxes = boxes, // Original array will be altered with added .pos
8616
+ // Original array will be altered with added .pos
8617
+ var origBoxes = boxes,
8619
8618
  reducedLen = origBoxes.reducedLen || len,
8620
8619
  sortByRank = function (a,
8621
8620
  b) {
@@ -8870,7 +8869,6 @@
8870
8869
  *
8871
8870
  * @param {Highcharts.SVGDOMElement} element
8872
8871
  *
8873
- * @return {void}
8874
8872
  */
8875
8873
  SVGElement.prototype._defaultSetter = function (value, key, element) {
8876
8874
  element.setAttribute(key, value);
@@ -9023,7 +9021,8 @@
9023
9021
  alignByTranslate = this.alignByTranslate;
9024
9022
  alignTo = this.alignTo;
9025
9023
  }
9026
- box = pick(box, renderer[alignTo], alignTo === 'scrollablePlotBox' ? renderer.plotBox : void 0, renderer);
9024
+ box = pick(box, renderer[alignTo], alignTo === 'scrollablePlotBox' ?
9025
+ renderer.plotBox : void 0, renderer);
9027
9026
  // Assign variables
9028
9027
  var align = alignOptions.align,
9029
9028
  vAlign = alignOptions.verticalAlign;
@@ -9319,7 +9318,8 @@
9319
9318
  // Let the shadow follow the main element
9320
9319
  if (!this.styledMode &&
9321
9320
  this.shadows &&
9322
- /^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(key)) {
9321
+ /^(width|height|visibility|x|y|d|transform|cx|cy|r)$/
9322
+ .test(key)) {
9323
9323
  this.updateShadows(key, val, setter);
9324
9324
  }
9325
9325
  }
@@ -9708,7 +9708,6 @@
9708
9708
  * @private
9709
9709
  * @function Highcharts.SVGElement#destroyShadows
9710
9710
  *
9711
- * @return {void}
9712
9711
  */
9713
9712
  SVGElement.prototype.destroyShadows = function () {
9714
9713
  (this.shadows || []).forEach(function (shadow) {
@@ -9948,8 +9947,7 @@
9948
9947
  bBox.height = height = ({
9949
9948
  '11px,17': 14,
9950
9949
  '13px,20': 16
9951
- }[styles &&
9952
- styles.fontSize + ',' + Math.round(height)] ||
9950
+ }[(fontSize || '') + "," + Math.round(height)] ||
9953
9951
  height);
9954
9952
  }
9955
9953
  // Adjust for rotated text
@@ -10628,12 +10626,13 @@
10628
10626
  * @function Highcharts.SVGElement#translate
10629
10627
  *
10630
10628
  * @param {number} x
10631
- * The x value.
10629
+ * The x value.
10632
10630
  *
10633
10631
  * @param {number} y
10634
- * The y value.
10632
+ * The y value.
10635
10633
  *
10636
10634
  * @return {Highcharts.SVGElement}
10635
+ * Translated element.
10637
10636
  */
10638
10637
  SVGElement.prototype.translate = function (x, y) {
10639
10638
  return this.attr({
@@ -10727,7 +10726,6 @@
10727
10726
  *
10728
10727
  * @param {Highcharts.SVGDOMElement} element
10729
10728
  *
10730
- * @return {void}
10731
10729
  */
10732
10730
  SVGElement.prototype.visibilitySetter = function (value, key, element) {
10733
10731
  // IE9-11 doesn't handle visibilty:inherit well, so we remove the
@@ -10743,10 +10741,6 @@
10743
10741
  /**
10744
10742
  * @private
10745
10743
  * @function Highcharts.SVGElement#xGetter
10746
- *
10747
- * @param {string} key
10748
- *
10749
- * @return {number|string|null}
10750
10744
  */
10751
10745
  SVGElement.prototype.xGetter = function (key) {
10752
10746
  if (this.element.nodeName === 'circle') {
@@ -10762,9 +10756,6 @@
10762
10756
  /**
10763
10757
  * @private
10764
10758
  * @function Highcharts.SVGElement#zIndexSetter
10765
- * @param {number} [value]
10766
- * @param {string} [key]
10767
- * @return {boolean}
10768
10759
  */
10769
10760
  SVGElement.prototype.zIndexSetter = function (value, key) {
10770
10761
  var renderer = this.renderer,
@@ -11249,7 +11240,8 @@
11249
11240
  }
11250
11241
  });
11251
11242
  this.text.css(textStyles_1);
11252
- var isWidth = 'width' in textStyles_1, isFontStyle = ('fontSize' in textStyles_1 || 'fontWeight' in textStyles_1);
11243
+ var isWidth = 'width' in textStyles_1, isFontStyle = ('fontSize' in textStyles_1 ||
11244
+ 'fontWeight' in textStyles_1);
11253
11245
  // Update existing text, box (#9400, #12163)
11254
11246
  if (isFontStyle) {
11255
11247
  this.updateTextPadding();
@@ -11419,13 +11411,15 @@
11419
11411
  this.renderer.symbol(this.symbolKey) :
11420
11412
  this.renderer.rect();
11421
11413
  box.addClass(// Don't use label className for buttons
11422
- (this.className === 'button' ? '' : 'highcharts-label-box') +
11423
- (this.className ? ' highcharts-' + this.className + '-box' : ''));
11414
+ (this.className === 'button' ?
11415
+ '' : 'highcharts-label-box') +
11416
+ (this.className ?
11417
+ ' highcharts-' + this.className + '-box' : ''));
11424
11418
  box.add(this);
11425
11419
  }
11426
11420
  crispAdjust = this.getCrispAdjust();
11427
11421
  attribs.x = crispAdjust;
11428
- attribs.y = (this.baseline ? -this.baselineOffset : 0) + crispAdjust;
11422
+ attribs.y = ((this.baseline ? -this.baselineOffset : 0) + crispAdjust);
11429
11423
  // Apply the box attributes
11430
11424
  attribs.width = Math.round(this.width);
11431
11425
  attribs.height = Math.round(this.height);
@@ -11448,8 +11442,7 @@
11448
11442
  if (defined(this.widthSetting) &&
11449
11443
  this.bBox &&
11450
11444
  (this.textAlign === 'center' || this.textAlign === 'right')) {
11451
- textX += { center: 0.5, right: 1 }[this.textAlign] *
11452
- (this.widthSetting - this.bBox.width);
11445
+ textX += { center: 0.5, right: 1 }[this.textAlign] * (this.widthSetting - this.bBox.width);
11453
11446
  }
11454
11447
  // update if anything changed
11455
11448
  if (textX !== text.x || textY !== text.y) {
@@ -11477,7 +11470,9 @@
11477
11470
  padding);
11478
11471
  var paddingRight = pick(this.paddingRight,
11479
11472
  padding);
11480
- return (this.widthSetting || this.bBox.width || 0) + paddingLeft + paddingRight;
11473
+ return ((this.widthSetting || this.bBox.width || 0) +
11474
+ paddingLeft +
11475
+ paddingRight);
11481
11476
  };
11482
11477
  SVGLabel.prototype.xSetter = function (value) {
11483
11478
  this.x = value; // for animation getter
@@ -11498,7 +11493,12 @@
11498
11493
  * Static Properties
11499
11494
  *
11500
11495
  * */
11501
- SVGLabel.emptyBBox = { width: 0, height: 0, x: 0, y: 0 };
11496
+ SVGLabel.emptyBBox = {
11497
+ width: 0,
11498
+ height: 0,
11499
+ x: 0,
11500
+ y: 0
11501
+ };
11502
11502
  /**
11503
11503
  * For labels, these CSS properties are applied to the `text` node directly.
11504
11504
  *
@@ -11861,7 +11861,6 @@
11861
11861
  *
11862
11862
  * @private
11863
11863
  *
11864
- * @return {void}
11865
11864
  */
11866
11865
  TextBuilder.prototype.modifyDOM = function () {
11867
11866
  var _this = this;
@@ -12005,7 +12004,7 @@
12005
12004
  TextBuilder.prototype.getLineHeight = function (node) {
12006
12005
  var fontSizeStyle;
12007
12006
  // If the node is a text node, use its parent
12008
- var element = node.nodeType === win.Node.TEXT_NODE ?
12007
+ var element = (node.nodeType === win.Node.TEXT_NODE) ?
12009
12008
  node.parentElement :
12010
12009
  node;
12011
12010
  if (!this.renderer.styledMode) {
@@ -12027,22 +12026,23 @@
12027
12026
  *
12028
12027
  * @param {ASTNode[]} nodes The AST nodes
12029
12028
  *
12030
- * @return {void}
12031
12029
  */
12032
12030
  TextBuilder.prototype.modifyTree = function (nodes) {
12033
12031
  var _this = this;
12034
12032
  var modifyChild = function (node,
12035
12033
  i) {
12036
- var tagName = node.tagName;
12037
- var styledMode = _this.renderer.styledMode;
12038
- var attributes = node.attributes || {};
12034
+ var _a = node.attributes,
12035
+ attributes = _a === void 0 ? {} : _a,
12036
+ children = node.children,
12037
+ tagName = node.tagName,
12038
+ styledMode = _this.renderer.styledMode;
12039
12039
  // Apply styling to text tags
12040
12040
  if (tagName === 'b' || tagName === 'strong') {
12041
12041
  if (styledMode) {
12042
12042
  attributes['class'] = 'highcharts-strong'; // eslint-disable-line dot-notation
12043
12043
  }
12044
12044
  else {
12045
- attributes.style = 'font-weight:bold;' + (attributes.style || '');
12045
+ attributes.style = ('font-weight:bold;' + (attributes.style || ''));
12046
12046
  }
12047
12047
  }
12048
12048
  else if (tagName === 'i' || tagName === 'em') {
@@ -12050,13 +12050,14 @@
12050
12050
  attributes['class'] = 'highcharts-emphasized'; // eslint-disable-line dot-notation
12051
12051
  }
12052
12052
  else {
12053
- attributes.style = 'font-style:italic;' + (attributes.style || '');
12053
+ attributes.style = ('font-style:italic;' + (attributes.style || ''));
12054
12054
  }
12055
12055
  }
12056
12056
  // Modify attributes
12057
12057
  if (isString(attributes.style)) {
12058
12058
  attributes.style = attributes.style.replace(/(;| |^)color([ :])/, '$1fill$2');
12059
12059
  }
12060
+ // Handle breaks
12060
12061
  if (tagName === 'br') {
12061
12062
  attributes['class'] = 'highcharts-br'; // eslint-disable-line dot-notation
12062
12063
  node.textContent = '\u200B'; // zero-width space
@@ -12066,14 +12067,23 @@
12066
12067
  nextNode.textContent =
12067
12068
  nextNode.textContent.replace(/^ +/gm, '');
12068
12069
  }
12070
+ // If an anchor has direct text node children, the text is unable to
12071
+ // wrap because there is no `getSubStringLength` function on the
12072
+ // element. Therefore we need to wrap the child text node or nodes
12073
+ // in a tspan. #16173.
12074
+ }
12075
+ else if (tagName === 'a' &&
12076
+ children &&
12077
+ children.some(function (child) { return child.tagName === '#text'; })) {
12078
+ node.children = [{ children: children, tagName: 'tspan' }];
12069
12079
  }
12070
12080
  if (tagName !== '#text' && tagName !== 'a') {
12071
12081
  node.tagName = 'tspan';
12072
12082
  }
12073
12083
  node.attributes = attributes;
12074
12084
  // Recurse
12075
- if (node.children) {
12076
- node.children
12085
+ if (children) {
12086
+ children
12077
12087
  .filter(function (c) { return c.tagName !== '#text'; })
12078
12088
  .forEach(modifyChild);
12079
12089
  }
@@ -12410,7 +12420,7 @@
12410
12420
  this.url = this.getReferenceURL();
12411
12421
  // Add description
12412
12422
  var desc = this.createElement('desc').add();
12413
- desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.3.1'));
12423
+ desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.3.2'));
12414
12424
  renderer.defs = this.createElement('defs').add();
12415
12425
  renderer.allowHTML = allowHTML;
12416
12426
  renderer.forExport = forExport;
@@ -12602,6 +12612,7 @@
12602
12612
  * @function Highcharts.SVGRenderer#destroy
12603
12613
  *
12604
12614
  * @return {null}
12615
+ * Pass through value.
12605
12616
  */
12606
12617
  SVGRenderer.prototype.destroy = function () {
12607
12618
  var renderer = this,
@@ -13278,6 +13289,7 @@
13278
13289
  * Additional options, depending on the actual symbol drawn.
13279
13290
  *
13280
13291
  * @return {Highcharts.SVGElement}
13292
+ * SVG symbol.
13281
13293
  */
13282
13294
  SVGRenderer.prototype.symbol = function (symbol, x, y, width, height, options) {
13283
13295
  var ren = this,
@@ -13507,8 +13519,8 @@
13507
13519
  parentVal = element.getAttribute(key);
13508
13520
  for (var i = 0, tspan = void 0; i < tspans.length; i++) {
13509
13521
  tspan = tspans[i];
13510
- // If the x values are equal, the tspan represents a
13511
- // linebreak
13522
+ // If the x values are equal, the tspan represents a line
13523
+ // break
13512
13524
  if (tspan.getAttribute(key) === parentVal) {
13513
13525
  tspan.setAttribute(key, value);
13514
13526
  }
@@ -13572,14 +13584,6 @@
13572
13584
  *
13573
13585
  * @private
13574
13586
  * @function Highcharts.SVGRenderer#rotCorr
13575
- *
13576
- * @param {number} baseline
13577
- *
13578
- * @param {number} rotation
13579
- *
13580
- * @param {boolean} [alterY]
13581
- *
13582
- * @param {Highcharts.PositionObject}
13583
13587
  */
13584
13588
  SVGRenderer.prototype.rotCorr = function (baseline, rotation, alterY) {
13585
13589
  var y = baseline;
@@ -13883,7 +13887,6 @@
13883
13887
  *
13884
13888
  * @private
13885
13889
  * @function Highcharts.SVGRenderer#alignElements
13886
- * @return {void}
13887
13890
  */
13888
13891
  SVGRenderer.prototype.alignElements = function () {
13889
13892
  this.alignedObjects.forEach(function (el) { return el.align(); });
@@ -14213,10 +14216,12 @@
14213
14216
  HTMLElement.composedClasses.push(SVGElementClass);
14214
14217
  var htmlElementProto = HTMLElement.prototype,
14215
14218
  svgElementProto = SVGElementClass.prototype;
14216
- svgElementProto.getSpanCorrection = htmlElementProto.getSpanCorrection;
14219
+ svgElementProto.getSpanCorrection = htmlElementProto
14220
+ .getSpanCorrection;
14217
14221
  svgElementProto.htmlCss = htmlElementProto.htmlCss;
14218
14222
  svgElementProto.htmlGetBBox = htmlElementProto.htmlGetBBox;
14219
- svgElementProto.htmlUpdateTransform = htmlElementProto.htmlUpdateTransform;
14223
+ svgElementProto.htmlUpdateTransform = htmlElementProto
14224
+ .htmlUpdateTransform;
14220
14225
  svgElementProto.setSpanRotation = htmlElementProto.setSpanRotation;
14221
14226
  }
14222
14227
  return SVGElementClass;
@@ -14510,15 +14515,16 @@
14510
14515
  * @function Highcharts.SVGRenderer#html
14511
14516
  *
14512
14517
  * @param {string} str
14513
- * The text of (subset) HTML to draw.
14518
+ * The text of (subset) HTML to draw.
14514
14519
  *
14515
14520
  * @param {number} x
14516
- * The x position of the text's lower left corner.
14521
+ * The x position of the text's lower left corner.
14517
14522
  *
14518
14523
  * @param {number} y
14519
- * The y position of the text's lower left corner.
14524
+ * The y position of the text's lower left corner.
14520
14525
  *
14521
14526
  * @return {Highcharts.HTMLDOMElement}
14527
+ * HTML element.
14522
14528
  */
14523
14529
  HTMLRenderer.prototype.html = function (str, x, y) {
14524
14530
  var wrapper = this.createElement('span'), element = wrapper.element, renderer = wrapper.renderer, isSVG = renderer.isSVG, addSetters = function (gWrapper, style) {
@@ -14628,8 +14634,7 @@
14628
14634
  * @private
14629
14635
  * @param {*} value
14630
14636
  * @param {string} key
14631
- * @return {void}
14632
- */
14637
+ */
14633
14638
  function translateSetter(value, key) {
14634
14639
  parentGroup[key] = value;
14635
14640
  if (key === 'translateX') {
@@ -14652,7 +14657,9 @@
14652
14657
  display: parentGroup.display,
14653
14658
  opacity: parentGroup.opacity,
14654
14659
  cursor: parentGroupStyles.cursor,
14655
- pointerEvents: parentGroupStyles.pointerEvents,
14660
+ pointerEvents: (
14661
+ // #5595
14662
+ parentGroupStyles.pointerEvents),
14656
14663
  visibility: parentGroup.visibility
14657
14664
  // the top group is appended to container
14658
14665
  }, htmlGroup || container);
@@ -17764,7 +17771,7 @@
17764
17771
  * @param {boolean} [noLabel=false]
17765
17772
  * Whether to disable the label or not. Defaults to false.
17766
17773
  *
17767
- * @param {object} [parameters]
17774
+ * @param {Object} [parameters]
17768
17775
  * Optional parameters for the tick.
17769
17776
  */
17770
17777
  var Tick = /** @class */ (function () {
@@ -18018,7 +18025,7 @@
18018
18025
  * @return {Highcharts.PositionObject}
18019
18026
  * The tick position.
18020
18027
  *
18021
- * @fires Highcharts.Tick#event:afterGetPosition
18028
+ * @emits Highcharts.Tick#event:afterGetPosition
18022
18029
  */
18023
18030
  Tick.prototype.getPosition = function (horiz, tickPos, tickmarkOffset, old) {
18024
18031
  var axis = this.axis,
@@ -18058,9 +18065,7 @@
18058
18065
  };
18059
18066
  /**
18060
18067
  * Get the x, y position of the tick label
18061
- *
18062
18068
  * @private
18063
- * @return {Highcharts.PositionObject}
18064
18069
  */
18065
18070
  Tick.prototype.getLabelPosition = function (x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
18066
18071
  var axis = this.axis,
@@ -18710,8 +18715,8 @@
18710
18715
  * @param {AxisOptions} userOptions
18711
18716
  * Axis options.
18712
18717
  *
18713
- * @fires Highcharts.Axis#event:afterInit
18714
- * @fires Highcharts.Axis#event:init
18718
+ * @emits Highcharts.Axis#event:afterInit
18719
+ * @emits Highcharts.Axis#event:init
18715
18720
  */
18716
18721
  Axis.prototype.init = function (chart, userOptions) {
18717
18722
  var isXAxis = userOptions.isX,
@@ -18747,7 +18752,8 @@
18747
18752
  */
18748
18753
  axis.coll = axis.coll || (isXAxis ? 'xAxis' : 'yAxis');
18749
18754
  fireEvent(this, 'init', { userOptions: userOptions });
18750
- axis.opposite = pick(userOptions.opposite, axis.opposite); // needed in setOptions
18755
+ // Needed in setOptions
18756
+ axis.opposite = pick(userOptions.opposite, axis.opposite);
18751
18757
  /**
18752
18758
  * The side on which the axis is rendered. 0 is top, 1 is right, 2
18753
18759
  * is bottom and 3 is left.
@@ -18912,7 +18918,7 @@
18912
18918
  * @param {Highcharts.AxisOptions} userOptions
18913
18919
  * Axis options.
18914
18920
  *
18915
- * @fires Highcharts.Axis#event:afterSetOptions
18921
+ * @emits Highcharts.Axis#event:afterSetOptions
18916
18922
  */
18917
18923
  Axis.prototype.setOptions = function (userOptions) {
18918
18924
  this.options = merge(AxisDefaults.defaultXAxisOptions, (this.coll === 'yAxis') && AxisDefaults.defaultYAxisOptions, [
@@ -19005,8 +19011,8 @@
19005
19011
  * @private
19006
19012
  * @function Highcharts.Axis#getSeriesExtremes
19007
19013
  *
19008
- * @fires Highcharts.Axis#event:afterGetSeriesExtremes
19009
- * @fires Highcharts.Axis#event:getSeriesExtremes
19014
+ * @emits Highcharts.Axis#event:afterGetSeriesExtremes
19015
+ * @emits Highcharts.Axis#event:getSeriesExtremes
19010
19016
  */
19011
19017
  Axis.prototype.getSeriesExtremes = function () {
19012
19018
  var axis = this,
@@ -19104,26 +19110,6 @@
19104
19110
  *
19105
19111
  * @private
19106
19112
  * @function Highcharts.Axis#translate
19107
- *
19108
- * @param {number} val
19109
- * TO-DO: parameter description
19110
- *
19111
- * @param {boolean|null} [backwards]
19112
- * TO-DO: parameter description
19113
- *
19114
- * @param {boolean|null} [cvsCoord]
19115
- * TO-DO: parameter description
19116
- *
19117
- * @param {boolean|null} [old]
19118
- * TO-DO: parameter description
19119
- *
19120
- * @param {boolean} [handleLog]
19121
- * TO-DO: parameter description
19122
- *
19123
- * @param {number} [pointPlacement]
19124
- * TO-DO: parameter description
19125
- *
19126
- * @return {number|undefined}
19127
19113
  */
19128
19114
  Axis.prototype.translate = function (val, backwards, cvsCoord, old, handleLog, pointPlacement) {
19129
19115
  var axis = (this.linkedParent || this), // #1417
@@ -19357,6 +19343,7 @@
19357
19343
  * @function Highcharts.Axis#getMinorTickInterval
19358
19344
  *
19359
19345
  * @return {number|"auto"|null}
19346
+ * Legacy option
19360
19347
  */
19361
19348
  Axis.prototype.getMinorTickInterval = function () {
19362
19349
  var options = this.options;
@@ -19466,7 +19453,8 @@
19466
19453
  if (xData.length > 1) {
19467
19454
  for (i = loopLength; i > 0; i--) {
19468
19455
  distance = xData[i] - xData[i - 1];
19469
- if (!closestDataRange || distance < closestDataRange) {
19456
+ if (!closestDataRange ||
19457
+ distance < closestDataRange) {
19470
19458
  closestDataRange = distance;
19471
19459
  }
19472
19460
  }
@@ -19521,8 +19509,6 @@
19521
19509
  *
19522
19510
  * @private
19523
19511
  * @function Highcharts.Axis#getClosest
19524
- *
19525
- * @return {number}
19526
19512
  */
19527
19513
  Axis.prototype.getClosest = function () {
19528
19514
  var ret;
@@ -19641,7 +19627,7 @@
19641
19627
  * @private
19642
19628
  * @function Highcharts.Axis#setAxisTranslation
19643
19629
  *
19644
- * @fires Highcharts.Axis#event:afterSetAxisTranslation
19630
+ * @emits Highcharts.Axis#event:afterSetAxisTranslation
19645
19631
  */
19646
19632
  Axis.prototype.setAxisTranslation = function () {
19647
19633
  var axis = this,
@@ -19677,7 +19663,9 @@
19677
19663
  if (!axis.single || hasCategories) {
19678
19664
  // TODO: series should internally set x- and y-
19679
19665
  // pointPlacement to simplify this logic.
19680
- var isPointPlacementAxis = series.is('xrange') ? !isXAxis : isXAxis;
19666
+ var isPointPlacementAxis = series.is('xrange') ?
19667
+ !isXAxis :
19668
+ isXAxis;
19681
19669
  // minPointOffset is the value padding to the left of
19682
19670
  // the axis in order to make room for points with a
19683
19671
  // pointRange, typically columns. When the
@@ -19696,7 +19684,7 @@
19696
19684
  });
19697
19685
  }
19698
19686
  // Record minPointOffset and pointRangePadding
19699
- ordinalCorrection = axis.ordinal && axis.ordinal.slope && closestPointRange ?
19687
+ ordinalCorrection = (axis.ordinal && axis.ordinal.slope && closestPointRange) ?
19700
19688
  axis.ordinal.slope / closestPointRange :
19701
19689
  1; // #988, #1853
19702
19690
  axis.minPointOffset = minPointOffset =
@@ -19725,8 +19713,6 @@
19725
19713
  /**
19726
19714
  * @private
19727
19715
  * @function Highcharts.Axis#minFromRange
19728
- *
19729
- * @return {number|undefined}
19730
19716
  */
19731
19717
  Axis.prototype.minFromRange = function () {
19732
19718
  var axis = this;
@@ -19742,7 +19728,7 @@
19742
19728
  * @param {boolean} secondPass
19743
19729
  * TO-DO: parameter description
19744
19730
  *
19745
- * @fires Highcharts.Axis#event:foundExtremes
19731
+ * @emits Highcharts.Axis#event:foundExtremes
19746
19732
  */
19747
19733
  Axis.prototype.setTickInterval = function (secondPass) {
19748
19734
  var axis = this,
@@ -19939,12 +19925,13 @@
19939
19925
  // First process all series assigned to that axis.
19940
19926
  axis.series.forEach(function (series) {
19941
19927
  // Allows filtering out points outside the plot area.
19942
- series.forceCrop = series.forceCropping && series.forceCropping();
19928
+ series.forceCrop = (series.forceCropping &&
19929
+ series.forceCropping());
19943
19930
  series.processData(hasExtemesChanged_1);
19944
19931
  });
19945
- // Then apply grouping if needed.
19946
- // The hasExtemesChanged helps to decide if the data grouping should
19947
- // be skipped in the further calculations #16319.
19932
+ // Then apply grouping if needed. The hasExtemesChanged helps to
19933
+ // decide if the data grouping should be skipped in the further
19934
+ // calculations #16319.
19948
19935
  fireEvent(this, 'postProcessData', { hasExtemesChanged: hasExtemesChanged_1 });
19949
19936
  }
19950
19937
  // set the translation factor used in translate function
@@ -19989,7 +19976,7 @@
19989
19976
  * @private
19990
19977
  * @function Highcharts.Axis#setTickPositions
19991
19978
  *
19992
- * @fires Highcharts.Axis#event:afterSetTickPositions
19979
+ * @emits Highcharts.Axis#event:afterSetTickPositions
19993
19980
  */
19994
19981
  Axis.prototype.setTickPositions = function () {
19995
19982
  var axis = this,
@@ -19998,8 +19985,8 @@
19998
19985
  minorTickIntervalOption = this.getMinorTickInterval(),
19999
19986
  hasVerticalPanning = this.hasVerticalPanning(),
20000
19987
  isColorAxis = this.coll === 'colorAxis',
20001
- startOnTick = (isColorAxis || !hasVerticalPanning) && options.startOnTick,
20002
- endOnTick = (isColorAxis || !hasVerticalPanning) && options.endOnTick;
19988
+ startOnTick = ((isColorAxis || !hasVerticalPanning) && options.startOnTick),
19989
+ endOnTick = ((isColorAxis || !hasVerticalPanning) && options.endOnTick);
20003
19990
  var tickPositions,
20004
19991
  tickPositioner = options.tickPositioner;
20005
19992
  // Set the tickmarkOffset
@@ -20246,7 +20233,9 @@
20246
20233
  axis.softThreshold ? 0 : null);
20247
20234
  var len,
20248
20235
  i;
20249
- if (axis.hasData() && isNumber(axis.min) && isNumber(axis.max)) { // #14769
20236
+ if (axis.hasData() &&
20237
+ isNumber(axis.min) &&
20238
+ isNumber(axis.max)) { // #14769
20250
20239
  if (currentTickAmount < tickAmount) {
20251
20240
  while (tickPositions.length < tickAmount) {
20252
20241
  // Extend evenly for both sides unless we're on the
@@ -20298,7 +20287,7 @@
20298
20287
  * @private
20299
20288
  * @function Highcharts.Axis#setScale
20300
20289
  *
20301
- * @fires Highcharts.Axis#event:afterSetScale
20290
+ * @emits Highcharts.Axis#event:afterSetScale
20302
20291
  */
20303
20292
  Axis.prototype.setScale = function () {
20304
20293
  var axis = this;
@@ -20386,7 +20375,7 @@
20386
20375
  * @param {*} [eventArguments]
20387
20376
  * Arguments to be accessed in event handler.
20388
20377
  *
20389
- * @fires Highcharts.Axis#event:setExtremes
20378
+ * @emits Highcharts.Axis#event:setExtremes
20390
20379
  */
20391
20380
  Axis.prototype.setExtremes = function (newMin, newMax, redraw, animation, eventArguments) {
20392
20381
  var axis = this,
@@ -20416,14 +20405,6 @@
20416
20405
  *
20417
20406
  * @private
20418
20407
  * @function Highcharts.Axis#zoom
20419
- *
20420
- * @param {number} newMin
20421
- * TO-DO: parameter description
20422
- *
20423
- * @param {number} newMax
20424
- * TO-DO: parameter description
20425
- *
20426
- * @return {boolean}
20427
20408
  */
20428
20409
  Axis.prototype.zoom = function (newMin, newMax) {
20429
20410
  var axis = this,
@@ -20634,8 +20615,6 @@
20634
20615
  *
20635
20616
  * @private
20636
20617
  * @function Highcharts.Axis#labelMetrics
20637
- *
20638
- * @return {Highcharts.FontMetricsObject}
20639
20618
  */
20640
20619
  Axis.prototype.labelMetrics = function () {
20641
20620
  var index = this.tickPositions && this.tickPositions[0] || 0;
@@ -20648,8 +20627,6 @@
20648
20627
  *
20649
20628
  * @private
20650
20629
  * @function Highcharts.Axis#unsquish
20651
- *
20652
- * @return {number}
20653
20630
  */
20654
20631
  Axis.prototype.unsquish = function () {
20655
20632
  var labelOptions = this.options.labels,
@@ -21011,7 +20988,7 @@
21011
20988
  * @private
21012
20989
  * @function Highcharts.Axis#getOffset
21013
20990
  *
21014
- * @fires Highcharts.Axis#event:afterGetOffset
20991
+ * @emits Highcharts.Axis#event:afterGetOffset
21015
20992
  */
21016
20993
  Axis.prototype.getOffset = function () {
21017
20994
  var _this = this;
@@ -21338,7 +21315,7 @@
21338
21315
  * @private
21339
21316
  * @function Highcharts.Axis#render
21340
21317
  *
21341
- * @fires Highcharts.Axis#event:afterRender
21318
+ * @emits Highcharts.Axis#event:afterRender
21342
21319
  */
21343
21320
  Axis.prototype.render = function () {
21344
21321
  var axis = this,
@@ -21429,7 +21406,8 @@
21429
21406
  (options.plotLines || [])
21430
21407
  .concat(options.plotBands || [])
21431
21408
  .forEach(function (plotLineOptions) {
21432
- axis.addPlotBandOrLine(plotLineOptions);
21409
+ axis
21410
+ .addPlotBandOrLine(plotLineOptions);
21433
21411
  });
21434
21412
  }
21435
21413
  } // end if hasData
@@ -21529,8 +21507,6 @@
21529
21507
  *
21530
21508
  * @private
21531
21509
  * @function Highcharts.Axis#getKeepProps
21532
- *
21533
- * @return {Array<string>}
21534
21510
  */
21535
21511
  Axis.prototype.getKeepProps = function () {
21536
21512
  return (this.keepProps || Axis.keepProps);
@@ -21596,8 +21572,8 @@
21596
21572
  * @param {Highcharts.Point} [point]
21597
21573
  * The Point object if the crosshair snaps to points.
21598
21574
  *
21599
- * @fires Highcharts.Axis#event:afterDrawCrosshair
21600
- * @fires Highcharts.Axis#event:drawCrosshair
21575
+ * @emits Highcharts.Axis#event:afterDrawCrosshair
21576
+ * @emits Highcharts.Axis#event:drawCrosshair
21601
21577
  */
21602
21578
  Axis.prototype.drawCrosshair = function (e, point) {
21603
21579
  var options = this.crosshair,
@@ -21724,8 +21700,6 @@
21724
21700
  *
21725
21701
  * @private
21726
21702
  * @function Highcharts.Axis#hasVerticalPanning
21727
- *
21728
- * @return {boolean}
21729
21703
  */
21730
21704
  Axis.prototype.hasVerticalPanning = function () {
21731
21705
  var panningOptions = this.chart.options.chart.panning;
@@ -21741,8 +21715,6 @@
21741
21715
  *
21742
21716
  * @param {unknown} value
21743
21717
  * The axis value
21744
- *
21745
- * @return {boolean}
21746
21718
  */
21747
21719
  Axis.prototype.validatePositiveValue = function (value) {
21748
21720
  return isNumber(value) && value > 0;
@@ -21852,7 +21824,14 @@
21852
21824
  Axis.defaultOptions = AxisDefaults.defaultXAxisOptions;
21853
21825
  // Properties to survive after destroy, needed for Axis.update (#4317,
21854
21826
  // #5773, #5881).
21855
- Axis.keepProps = ['extKey', 'hcEvents', 'names', 'series', 'userMax', 'userMin'];
21827
+ Axis.keepProps = [
21828
+ 'extKey',
21829
+ 'hcEvents',
21830
+ 'names',
21831
+ 'series',
21832
+ 'userMax',
21833
+ 'userMin'
21834
+ ];
21856
21835
  return Axis;
21857
21836
  }());
21858
21837
  /* *
@@ -22153,19 +22132,12 @@
22153
22132
  *
22154
22133
  * @private
22155
22134
  * @function Highcharts.Axis#getTimeTicks
22156
- *
22157
22135
  * @param {Highcharts.TimeNormalizeObject} normalizedInterval
22158
22136
  * The interval in axis values (ms) and thecount.
22159
- *
22160
22137
  * @param {number} min
22161
22138
  * The minimum in axis values.
22162
- *
22163
22139
  * @param {number} max
22164
22140
  * The maximum in axis values.
22165
- *
22166
- * @param {number} startOfWeek
22167
- *
22168
- * @return {Highcharts.AxisTickPositionsArray}
22169
22141
  */
22170
22142
  function getTimeTicks() {
22171
22143
  return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);
@@ -22215,8 +22187,10 @@
22215
22187
  */
22216
22188
  Additions.prototype.normalizeTimeTickInterval = function (tickInterval, unitsOption) {
22217
22189
  var units = (unitsOption || [[
22190
+ // unit name
22218
22191
  'millisecond',
22219
- [1, 2, 5, 10, 20, 25, 50, 100, 200, 500] // allowed multiples
22192
+ // allowed multiples
22193
+ [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]
22220
22194
  ],
22221
22195
  [
22222
22196
  'second',
@@ -22289,12 +22263,6 @@
22289
22263
  * point range on the axis.
22290
22264
  *
22291
22265
  * @private
22292
- *
22293
- * @param {number} x
22294
- *
22295
- * @param {Highcharts.Dictionary<string>} dateTimeLabelFormats
22296
- *
22297
- * @return {string}
22298
22266
  */
22299
22267
  Additions.prototype.getXDateFormat = function (x, dateTimeLabelFormats) {
22300
22268
  var axis = this.axis;
@@ -22721,13 +22689,8 @@
22721
22689
  *
22722
22690
  * @private
22723
22691
  * @function Highcharts.Axis#addPlotBandOrLine
22724
- *
22725
22692
  * @param {Highcharts.AxisPlotBandsOptions|Highcharts.AxisPlotLinesOptions} options
22726
22693
  * The plotBand or plotLine configuration object.
22727
- *
22728
- * @param {"plotBands"|"plotLines"} [coll]
22729
- *
22730
- * @return {Highcharts.PlotLineOrBand|undefined}
22731
22694
  */
22732
22695
  Additions.prototype.addPlotBandOrLine = function (options, coll) {
22733
22696
  var _this = this;
@@ -23870,8 +23833,6 @@
23870
23833
  *
23871
23834
  * @private
23872
23835
  * @function Highcharts.Tooltip#bodyFormatter
23873
- * @param {Array<(Highcharts.Point|Highcharts.Series)>} items
23874
- * @return {Array<string>}
23875
23836
  */
23876
23837
  Tooltip.prototype.bodyFormatter = function (items) {
23877
23838
  return items.map(function (item) {
@@ -23888,7 +23849,7 @@
23888
23849
  * @function Highcharts.Tooltip#cleanSplit
23889
23850
  *
23890
23851
  * @param {boolean} [force]
23891
- * Force destroy all tooltips.
23852
+ * Force destroy all tooltips.
23892
23853
  */
23893
23854
  Tooltip.prototype.cleanSplit = function (force) {
23894
23855
  this.chart.series.forEach(function (series) {
@@ -23908,10 +23869,6 @@
23908
23869
  * the context here is an object holding point, series, x, y etc.
23909
23870
  *
23910
23871
  * @function Highcharts.Tooltip#defaultFormatter
23911
- *
23912
- * @param {Highcharts.Tooltip} tooltip
23913
- *
23914
- * @return {Array<string>}
23915
23872
  */
23916
23873
  Tooltip.prototype.defaultFormatter = function (tooltip) {
23917
23874
  var items = this.points || splat(this);
@@ -23951,12 +23908,6 @@
23951
23908
  *
23952
23909
  * @private
23953
23910
  * @function Highcharts.Tooltip#getAnchor
23954
- *
23955
- * @param {Highcharts.Point|Array<Highcharts.Point>} points
23956
- *
23957
- * @param {Highcharts.PointerEventObject} [mouseEvent]
23958
- *
23959
- * @return {Array<number>}
23960
23911
  */
23961
23912
  Tooltip.prototype.getAnchor = function (points, mouseEvent) {
23962
23913
  var chart = this.chart,
@@ -24001,8 +23952,8 @@
24001
23952
  plotY += yAxis.pos - plotTop;
24002
23953
  }
24003
23954
  else { // #14771
24004
- plotX += plotTop + chart.plotHeight - xAxis.len - xAxis.pos;
24005
- plotY += plotLeft + chart.plotWidth - yAxis.len - yAxis.pos;
23955
+ plotX += (plotTop + chart.plotHeight - xAxis.len - xAxis.pos);
23956
+ plotY += (plotLeft + chart.plotWidth - yAxis.len - yAxis.pos);
24006
23957
  }
24007
23958
  }
24008
23959
  });
@@ -24031,6 +23982,7 @@
24031
23982
  * @function Highcharts.Tooltip#getLabel
24032
23983
  *
24033
23984
  * @return {Highcharts.SVGElement}
23985
+ * Tooltip label
24034
23986
  */
24035
23987
  Tooltip.prototype.getLabel = function () {
24036
23988
  var tooltip = this,
@@ -24041,7 +23993,8 @@
24041
23993
  ' ' + options.className :
24042
23994
  '')),
24043
23995
  pointerEvents = (options.style.pointerEvents ||
24044
- (!this.followPointer && options.stickOnContact ? 'auto' : 'none')),
23996
+ (!this.followPointer &&
23997
+ options.stickOnContact ? 'auto' : 'none')),
24045
23998
  onMouseEnter = function () {
24046
23999
  tooltip.inContact = true;
24047
24000
  }, onMouseLeave = function (e) {
@@ -24157,14 +24110,6 @@
24157
24110
  *
24158
24111
  * @private
24159
24112
  * @function Highcharts.Tooltip#getPosition
24160
- *
24161
- * @param {number} boxWidth
24162
- *
24163
- * @param {number} boxHeight
24164
- *
24165
- * @param {Highcharts.Point} point
24166
- *
24167
- * @return {Highcharts.PositionObject}
24168
24113
  */
24169
24114
  Tooltip.prototype.getPosition = function (boxWidth, boxHeight, point) {
24170
24115
  var chart = this.chart,
@@ -24536,7 +24481,7 @@
24536
24481
  pointOrPoints.series &&
24537
24482
  pointOrPoints.series.noSharedTooltip);
24538
24483
  // get the reference point coordinates (pie charts use tooltipPos)
24539
- tooltip.followPointer = !tooltip.split && point.series.tooltipOptions.followPointer;
24484
+ tooltip.followPointer = (!tooltip.split && point.series.tooltipOptions.followPointer);
24540
24485
  var anchor = tooltip.getAnchor(pointOrPoints,
24541
24486
  mouseEvent),
24542
24487
  x = anchor[0],
@@ -24670,9 +24615,10 @@
24670
24615
  options = tooltip.options,
24671
24616
  positioner = tooltip.options.positioner;
24672
24617
  // The area which the tooltip should be limited to. Limit to scrollable
24673
- // plot area if enabled, otherwise limit to the chart container.
24674
- // If outside is true it should be the whole viewport
24675
- var bounds = tooltip.outside && typeof scrollablePixelsX !== 'number' ?
24618
+ // plot area if enabled, otherwise limit to the chart container. If
24619
+ // outside is true it should be the whole viewport
24620
+ var bounds = (tooltip.outside &&
24621
+ typeof scrollablePixelsX !== 'number') ?
24676
24622
  doc.documentElement.getBoundingClientRect() : {
24677
24623
  left: scrollLeft,
24678
24624
  right: scrollLeft + chartWidth,
@@ -24693,7 +24639,7 @@
24693
24639
  *
24694
24640
  * @private
24695
24641
  * @param {Highcharts.Point} point The point related to the tooltip
24696
- * @return {object} Returns an object with anchorX and anchorY
24642
+ * @return {Object} Returns an object with anchorX and anchorY
24697
24643
  */
24698
24644
  function getAnchor(point) {
24699
24645
  var isHeader = point.isHeader,
@@ -24885,13 +24831,14 @@
24885
24831
  }
24886
24832
  return boxes;
24887
24833
  }, []);
24888
- // Realign the tooltips towards the right if there is not enough
24889
- // space to the left and there is space to to the right
24834
+ // Realign the tooltips towards the right if there is not enough space
24835
+ // to the left and there is space to to the right
24890
24836
  if (!positioner && boxes.some(function (box) {
24891
24837
  // Always realign if the beginning of a label is outside bounds
24892
24838
  var outside = tooltip.outside;
24893
24839
  var boxStart = (outside ? chartLeft : 0) + box.anchorX;
24894
- if (boxStart < bounds.left && boxStart + box.boxWidth < bounds.right) {
24840
+ if (boxStart < bounds.left &&
24841
+ boxStart + box.boxWidth < bounds.right) {
24895
24842
  return true;
24896
24843
  }
24897
24844
  // Otherwise, check if there is more space available to the right
@@ -24929,7 +24876,9 @@
24929
24876
  if (tooltip.outside && chartLeft + x < boxExtremes.left) {
24930
24877
  boxExtremes.left = chartLeft + x;
24931
24878
  }
24932
- if (!isHeader && tooltip.outside && boxExtremes.left + boxWidth > boxExtremes.right) {
24879
+ if (!isHeader &&
24880
+ tooltip.outside &&
24881
+ boxExtremes.left + boxWidth > boxExtremes.right) {
24933
24882
  boxExtremes.right = chartLeft + x;
24934
24883
  }
24935
24884
  }
@@ -25063,9 +25012,6 @@
25063
25012
  *
25064
25013
  * @private
25065
25014
  * @function Highcharts.Tooltip#tooltipFooterHeaderFormatter
25066
- * @param {Highcharts.PointLabelObject} labelConfig
25067
- * @param {boolean} [isFooter]
25068
- * @return {string}
25069
25015
  */
25070
25016
  Tooltip.prototype.tooltipFooterHeaderFormatter = function (labelConfig, isFooter) {
25071
25017
  var series = labelConfig.series,
@@ -25474,7 +25420,9 @@
25474
25420
  options = Point.prototype.optionsToObject.call(this, options);
25475
25421
  // copy options directly to point
25476
25422
  extend(point, options);
25477
- point.options = point.options ? extend(point.options, options) : options;
25423
+ point.options = point.options ?
25424
+ extend(point.options, options) :
25425
+ options;
25478
25426
  // Since options are copied into the Point instance, some accidental
25479
25427
  // options must be shielded (#5681)
25480
25428
  if (options.group) {
@@ -25616,7 +25564,7 @@
25616
25564
  * @param {Highcharts.EventCallbackFunction<Highcharts.Point>|Function} [defaultFunction]
25617
25565
  * Default event handler.
25618
25566
  *
25619
- * @fires Highcharts.Point#event:*
25567
+ * @emits Highcharts.Point#event:*
25620
25568
  */
25621
25569
  Point.prototype.firePointEvent = function (eventType, eventArgs, defaultFunction) {
25622
25570
  var point = this,
@@ -25667,8 +25615,6 @@
25667
25615
  *
25668
25616
  * @private
25669
25617
  * @function Highcharts.Point#getGraphicalProps
25670
- * @param {Highcharts.Dictionary<number>} [kinds]
25671
- * @return {Highcharts.PointGraphicalProps}
25672
25618
  */
25673
25619
  Point.prototype.getGraphicalProps = function (kinds) {
25674
25620
  var point = this,
@@ -25767,8 +25713,7 @@
25767
25713
  /**
25768
25714
  * Utility to check if point has new shape type. Used in column series and
25769
25715
  * all others that are based on column series.
25770
- *
25771
- * @return boolean|undefined
25716
+ * @private
25772
25717
  */
25773
25718
  Point.prototype.hasNewShapeType = function () {
25774
25719
  var point = this;
@@ -25794,7 +25739,7 @@
25794
25739
  * @return {Highcharts.Point}
25795
25740
  * The Point instance.
25796
25741
  *
25797
- * @fires Highcharts.Point#event:afterInit
25742
+ * @emits Highcharts.Point#event:afterInit
25798
25743
  */
25799
25744
  Point.prototype.init = function (series, options, x) {
25800
25745
  this.series = series;
@@ -25880,7 +25825,6 @@
25880
25825
  /**
25881
25826
  * @private
25882
25827
  * @function Highcharts.Point#resolveColor
25883
- * @return {void}
25884
25828
  */
25885
25829
  Point.prototype.resolveColor = function () {
25886
25830
  var series = this.series,
@@ -26015,7 +25959,7 @@
26015
25959
  * Whether to apply animation, and optionally animation
26016
25960
  * configuration.
26017
25961
  *
26018
- * @fires Highcharts.Point#event:update
25962
+ * @emits Highcharts.Point#event:update
26019
25963
  */
26020
25964
  Point.prototype.update = function (options, redraw, animation, runEvent) {
26021
25965
  var point = this,
@@ -26033,7 +25977,9 @@
26033
25977
  // Update visuals, #4146
26034
25978
  // Handle dummy graphic elements for a11y, #12718
26035
25979
  var hasDummyGraphic = graphic && point.hasDummyGraphic;
26036
- var shouldDestroyGraphic = point.y === null ? !hasDummyGraphic : hasDummyGraphic;
25980
+ var shouldDestroyGraphic = point.y === null ?
25981
+ !hasDummyGraphic :
25982
+ hasDummyGraphic;
26037
25983
  if (graphic && shouldDestroyGraphic) {
26038
25984
  point.graphic = graphic.destroy();
26039
25985
  delete point.hasDummyGraphic;
@@ -26136,8 +26082,8 @@
26136
26082
  * is `true`, selected points are accumulated on Control, Shift or Cmd
26137
26083
  * clicking the point.
26138
26084
  *
26139
- * @fires Highcharts.Point#event:select
26140
- * @fires Highcharts.Point#event:unselect
26085
+ * @emits Highcharts.Point#event:select
26086
+ * @emits Highcharts.Point#event:unselect
26141
26087
  */
26142
26088
  Point.prototype.select = function (selected, accumulate) {
26143
26089
  var point = this,
@@ -26206,7 +26152,7 @@
26206
26152
  * events.
26207
26153
  *
26208
26154
  * @function Highcharts.Point#onMouseOut
26209
- * @fires Highcharts.Point#event:mouseOut
26155
+ * @emits Highcharts.Point#event:mouseOut
26210
26156
  */
26211
26157
  Point.prototype.onMouseOut = function () {
26212
26158
  var point = this,
@@ -26253,7 +26199,7 @@
26253
26199
  * @param {boolean} [move]
26254
26200
  * State for animation.
26255
26201
  *
26256
- * @fires Highcharts.Point#event:afterSetState
26202
+ * @emits Highcharts.Point#event:afterSetState
26257
26203
  */
26258
26204
  Point.prototype.setState = function (state, move) {
26259
26205
  var point = this,
@@ -26314,8 +26260,9 @@
26314
26260
  pointAttribs = series.pointAttribs(point, state);
26315
26261
  pointAttribsAnimation = pick(chart.options.chart.animation, stateOptions.animation);
26316
26262
  // Some inactive points (e.g. slices in pie) should apply
26317
- // oppacity also for it's labels
26318
- if (series.options.inactiveOtherPoints && isNumber(pointAttribs.opacity)) {
26263
+ // opacity also for their labels
26264
+ if (series.options.inactiveOtherPoints &&
26265
+ isNumber(pointAttribs.opacity)) {
26319
26266
  (point.dataLabels || []).forEach(function (label) {
26320
26267
  if (label) {
26321
26268
  label.animate({
@@ -26776,7 +26723,7 @@
26776
26723
  Pointer.unbindDocumentMouseUp = Pointer.unbindDocumentMouseUp();
26777
26724
  }
26778
26725
  if (Pointer.unbindDocumentTouchEnd) {
26779
- Pointer.unbindDocumentTouchEnd = Pointer.unbindDocumentTouchEnd();
26726
+ Pointer.unbindDocumentTouchEnd = (Pointer.unbindDocumentTouchEnd());
26780
26727
  }
26781
26728
  }
26782
26729
  // memory and CPU leak
@@ -27129,6 +27076,7 @@
27129
27076
  * Pointer event, extended with `chartX` and `chartY` properties.
27130
27077
  *
27131
27078
  * @return {Highcharts.PointerAxisCoordinatesObject}
27079
+ * Axis coordinates.
27132
27080
  */
27133
27081
  Pointer.prototype.getCoordinates = function (e) {
27134
27082
  var coordinates = {
@@ -27167,7 +27115,7 @@
27167
27115
  * @param {Highcharts.PointerEventObject} [e]
27168
27116
  * The triggering event, containing chart coordinates of the pointer.
27169
27117
  *
27170
- * @return {object}
27118
+ * @return {Object}
27171
27119
  * Object containing resulting hover data: hoverPoint, hoverSeries, and
27172
27120
  * hoverPoints.
27173
27121
  */
@@ -27464,9 +27412,8 @@
27464
27412
  // Also reset the chart position, used in #149 fix
27465
27413
  chart.pointer.chartPosition = void 0;
27466
27414
  }
27467
- if ( // #11635, Firefox wheel scroll does not fire out events consistently
27468
- tooltip &&
27469
- !tooltip.isHidden) {
27415
+ // #11635, Firefox wheel scroll does not fire out events consistently
27416
+ if (tooltip && !tooltip.isHidden) {
27470
27417
  this.reset();
27471
27418
  }
27472
27419
  };
@@ -27613,7 +27560,10 @@
27613
27560
  }
27614
27561
  // On touch devices, only proceed to trigger click if a handler is
27615
27562
  // defined
27616
- if (hasZoom && self.initiated && !fireClickEvent && e.cancelable !== false) {
27563
+ if (hasZoom &&
27564
+ self.initiated &&
27565
+ !fireClickEvent &&
27566
+ e.cancelable !== false) {
27617
27567
  e.preventDefault();
27618
27568
  }
27619
27569
  // Normalize each touch
@@ -27754,7 +27704,8 @@
27754
27704
  clip[xy] = clipXY - plotLeftTop;
27755
27705
  clip[wh] = selectionWH;
27756
27706
  }
27757
- var scaleKey = inverted ? (horiz ? 'scaleY' : 'scaleX') : 'scale' + XY;
27707
+ var scaleKey = inverted ?
27708
+ (horiz ? 'scaleY' : 'scaleX') : 'scale' + XY;
27758
27709
  var transformScale = inverted ? 1 / scale : scale;
27759
27710
  selectionMarker[wh] = selectionWH;
27760
27711
  selectionMarker[xy] = selectionXY;
@@ -27857,8 +27808,8 @@
27857
27808
  * @private
27858
27809
  * @function Highcharts.Pointer#runPointActions
27859
27810
  *
27860
- * @fires Highcharts.Point#event:mouseOut
27861
- * @fires Highcharts.Point#event:mouseOver
27811
+ * @emits Highcharts.Point#event:mouseOut
27812
+ * @emits Highcharts.Point#event:mouseOver
27862
27813
  */
27863
27814
  Pointer.prototype.runPointActions = function (e, p) {
27864
27815
  var pointer = this,
@@ -28611,7 +28562,8 @@
28611
28562
  this.symbolWidth = pick(options.symbolWidth, 16);
28612
28563
  this.pages = [];
28613
28564
  this.proximate = options.layout === 'proximate' && !this.chart.inverted;
28614
- this.baseline = void 0; // #12705: baseline has to be reset on every update
28565
+ // #12705: baseline has to be reset on every update
28566
+ this.baseline = void 0;
28615
28567
  };
28616
28568
  /**
28617
28569
  * Update the legend with new options. Equivalent to running `chart.update`
@@ -28630,7 +28582,7 @@
28630
28582
  * operations on the chart, it is a good idea to set redraw to false and
28631
28583
  * call {@link Chart#redraw} after. Whether to redraw the chart.
28632
28584
  *
28633
- * @fires Highcharts.Legends#event:afterUpdate
28585
+ * @emits Highcharts.Legends#event:afterUpdate
28634
28586
  */
28635
28587
  Legend.prototype.update = function (options, redraw) {
28636
28588
  var chart = this.chart;
@@ -28780,8 +28732,7 @@
28780
28732
  /**
28781
28733
  * @private
28782
28734
  * @param {string} key
28783
- * @return {void}
28784
- */
28735
+ */
28785
28736
  function destroyItems(key) {
28786
28737
  if (this[key]) {
28787
28738
  this[key] = this[key].destroy();
@@ -28998,13 +28949,16 @@
28998
28949
  legend.setText(item);
28999
28950
  // calculate the positions for the next line
29000
28951
  var bBox = li.getBBox();
28952
+ var fontMetricsH = (legend.fontMetrics && legend.fontMetrics.h) || 0;
29001
28953
  item.itemWidth = item.checkboxOffset =
29002
28954
  options.itemWidth ||
29003
28955
  item.legendItemWidth ||
29004
28956
  bBox.width + itemExtraWidth;
29005
28957
  legend.maxItemWidth = Math.max(legend.maxItemWidth, item.itemWidth);
29006
28958
  legend.totalItemWidth += item.itemWidth;
29007
- legend.itemHeight = item.itemHeight = Math.round(item.legendItemHeight || bBox.height || legend.symbolHeight);
28959
+ legend.itemHeight = item.itemHeight = Math.round(item.legendItemHeight ||
28960
+ // use bBox for multiline (#16398)
28961
+ (bBox.height > fontMetricsH * 1.5 ? bBox.height : fontMetricsH));
29008
28962
  };
29009
28963
  /**
29010
28964
  * Get the position of the item in the layout. We now know the
@@ -29068,7 +29022,7 @@
29068
29022
  * @function Highcharts.Legend#getAllItems
29069
29023
  * @return {Array<(Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series)>}
29070
29024
  * The current items in the legend.
29071
- * @fires Highcharts.Legend#event:afterGetAllItems
29025
+ * @emits Highcharts.Legend#event:afterGetAllItems
29072
29026
  */
29073
29027
  Legend.prototype.getAllItems = function () {
29074
29028
  var allItems = [];
@@ -29338,7 +29292,6 @@
29338
29292
  * @private
29339
29293
  * @function Highcharts.align
29340
29294
  * @param {Highcharts.BBoxObject} alignTo
29341
- * @return {void}
29342
29295
  */
29343
29296
  Legend.prototype.align = function (alignTo) {
29344
29297
  if (alignTo === void 0) { alignTo = this.chart.spacingBox; }
@@ -29370,8 +29323,6 @@
29370
29323
  *
29371
29324
  * @private
29372
29325
  * @function Highcharts.Legend#handleOverflow
29373
- * @param {number} legendHeight
29374
- * @return {number}
29375
29326
  */
29376
29327
  Legend.prototype.handleOverflow = function (legendHeight) {
29377
29328
  var legend = this,
@@ -29532,7 +29483,6 @@
29532
29483
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
29533
29484
  * Whether and how to apply animation.
29534
29485
  *
29535
- * @return {void}
29536
29486
  */
29537
29487
  Legend.prototype.scroll = function (scrollBy, animation) {
29538
29488
  var _this = this;
@@ -29621,8 +29571,8 @@
29621
29571
  * @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
29622
29572
  * @param {Highcharts.SVGElement} legendItem
29623
29573
  * @param {boolean} [useHTML=false]
29624
- * @fires Highcharts.Point#event:legendItemClick
29625
- * @fires Highcharts.Series#event:legendItemClick
29574
+ * @emits Highcharts.Point#event:legendItemClick
29575
+ * @emits Highcharts.Series#event:legendItemClick
29626
29576
  */
29627
29577
  Legend.prototype.setItemEvents = function (item, legendItem, useHTML) {
29628
29578
  var legend = this,
@@ -29712,7 +29662,7 @@
29712
29662
  * @private
29713
29663
  * @function Highcharts.Legend#createCheckboxForItem
29714
29664
  * @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
29715
- * @fires Highcharts.Series#event:checkboxClick
29665
+ * @emits Highcharts.Series#event:checkboxClick
29716
29666
  */
29717
29667
  Legend.prototype.createCheckboxForItem = function (item) {
29718
29668
  var legend = this;
@@ -30141,8 +30091,8 @@
30141
30091
  * @param {...Array<*>} arguments
30142
30092
  * All arguments for the constructor.
30143
30093
  *
30144
- * @fires Highcharts.Chart#event:init
30145
- * @fires Highcharts.Chart#event:afterInit
30094
+ * @emits Highcharts.Chart#event:init
30095
+ * @emits Highcharts.Chart#event:afterInit
30146
30096
  */
30147
30097
  Chart.prototype.getArgs = function (a, b, c) {
30148
30098
  // Remove the optional first argument, renderTo, and
@@ -30168,10 +30118,9 @@
30168
30118
  * Function to run when the chart has loaded and and all external
30169
30119
  * images are loaded.
30170
30120
  *
30171
- * @return {void}
30172
30121
  *
30173
- * @fires Highcharts.Chart#event:init
30174
- * @fires Highcharts.Chart#event:afterInit
30122
+ * @emits Highcharts.Chart#event:init
30123
+ * @emits Highcharts.Chart#event:afterInit
30175
30124
  */
30176
30125
  Chart.prototype.init = function (userOptions, callback) {
30177
30126
  // Handle regular options
@@ -30349,7 +30298,6 @@
30349
30298
  *
30350
30299
  * @private
30351
30300
  * @function Highcharts.Series#getSeriesOrderByLinks
30352
- * @return {Array<Highcharts.Series>}
30353
30301
  */
30354
30302
  Chart.prototype.getSeriesOrderByLinks = function () {
30355
30303
  return this.series.concat().sort(function (a, b) {
@@ -30430,7 +30378,8 @@
30430
30378
  pos: plotLeft,
30431
30379
  len: Infinity
30432
30380
  };
30433
- var chartX = options.paneCoordinates ? xAxis.pos + x : plotLeft + x;
30381
+ var chartX = options.paneCoordinates ?
30382
+ xAxis.pos + x : plotLeft + x;
30434
30383
  if (!(chartX >= Math.max(scrollLeft + plotLeft, xAxis.pos) &&
30435
30384
  chartX <= Math.min(scrollLeft + plotLeft + box.width, xAxis.pos + xAxis.len))) {
30436
30385
  e.isInsidePlot = false;
@@ -30441,7 +30390,8 @@
30441
30390
  pos: plotTop,
30442
30391
  len: Infinity
30443
30392
  };
30444
- var chartY = options.paneCoordinates ? yAxis.pos + y : plotTop + y;
30393
+ var chartY = options.paneCoordinates ?
30394
+ yAxis.pos + y : plotTop + y;
30445
30395
  if (!(chartY >= Math.max(scrollTop + plotTop, yAxis.pos) &&
30446
30396
  chartY <= Math.min(scrollTop + plotTop + box.height, yAxis.pos + yAxis.len))) {
30447
30397
  e.isInsidePlot = false;
@@ -30464,12 +30414,12 @@
30464
30414
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
30465
30415
  * If or how to apply animation to the redraw.
30466
30416
  *
30467
- * @fires Highcharts.Chart#event:afterSetExtremes
30468
- * @fires Highcharts.Chart#event:beforeRedraw
30469
- * @fires Highcharts.Chart#event:predraw
30470
- * @fires Highcharts.Chart#event:redraw
30471
- * @fires Highcharts.Chart#event:render
30472
- * @fires Highcharts.Chart#event:updatedData
30417
+ * @emits Highcharts.Chart#event:afterSetExtremes
30418
+ * @emits Highcharts.Chart#event:beforeRedraw
30419
+ * @emits Highcharts.Chart#event:predraw
30420
+ * @emits Highcharts.Chart#event:redraw
30421
+ * @emits Highcharts.Chart#event:render
30422
+ * @emits Highcharts.Chart#event:updatedData
30473
30423
  */
30474
30424
  Chart.prototype.redraw = function (animation) {
30475
30425
  fireEvent(this, 'beforeRedraw');
@@ -30631,8 +30581,6 @@
30631
30581
  var series = this.series;
30632
30582
  /**
30633
30583
  * @private
30634
- * @param {Highcharts.Axis|Highcharts.Series} item
30635
- * @return {boolean}
30636
30584
  */
30637
30585
  function itemById(item) {
30638
30586
  return (item.id === id ||
@@ -30656,8 +30604,8 @@
30656
30604
  *
30657
30605
  * @private
30658
30606
  * @function Highcharts.Chart#getAxes
30659
- * @fires Highcharts.Chart#event:afterGetAxes
30660
- * @fires Highcharts.Chart#event:getAxes
30607
+ * @emits Highcharts.Chart#event:afterGetAxes
30608
+ * @emits Highcharts.Chart#event:getAxes
30661
30609
  */
30662
30610
  Chart.prototype.getAxes = function () {
30663
30611
  var chart = this,
@@ -30839,7 +30787,7 @@
30839
30787
  * @function Highcharts.Chart#layOutTitles
30840
30788
  *
30841
30789
  * @param {boolean} [redraw=true]
30842
- * @fires Highcharts.Chart#event:afterLayOutTitles
30790
+ * @emits Highcharts.Chart#event:afterLayOutTitles
30843
30791
  */
30844
30792
  Chart.prototype.layOutTitles = function (redraw) {
30845
30793
  var titleOffset = [0, 0, 0],
@@ -30847,7 +30795,7 @@
30847
30795
  spacingBox = this.spacingBox;
30848
30796
  // Lay out the title and the subtitle respectively
30849
30797
  ['title', 'subtitle', 'caption'].forEach(function (key) {
30850
- var title = this[key], titleOptions = this.options[key], verticalAlign = titleOptions.verticalAlign || 'top', offset = key === 'title' ?
30798
+ var title = this[key], titleOptions = (this.options[key]), verticalAlign = titleOptions.verticalAlign || 'top', offset = key === 'title' ?
30851
30799
  verticalAlign === 'top' ? -3 : 0 :
30852
30800
  // Floating subtitle (#6574)
30853
30801
  verticalAlign === 'top' ? titleOffset[0] + 2 : 0;
@@ -30855,7 +30803,8 @@
30855
30803
  height;
30856
30804
  if (title) {
30857
30805
  if (!this.styledMode) {
30858
- titleSize = titleOptions.style && titleOptions.style.fontSize;
30806
+ titleSize = (titleOptions.style &&
30807
+ titleOptions.style.fontSize);
30859
30808
  }
30860
30809
  titleSize = renderer.fontMetrics(titleSize, title).b;
30861
30810
  title
@@ -31030,7 +30979,7 @@
31030
30979
  *
31031
30980
  * @private
31032
30981
  * @function Highcharts.Chart#afterGetContainer
31033
- * @fires Highcharts.Chart#event:afterGetContainer
30982
+ * @emits Highcharts.Chart#event:afterGetContainer
31034
30983
  */
31035
30984
  Chart.prototype.getContainer = function () {
31036
30985
  var chart = this,
@@ -31067,7 +31016,7 @@
31067
31016
  // Make a reference to the chart from the div
31068
31017
  attr(renderTo, indexAttrName, chart.index);
31069
31018
  // remove previous chart
31070
- renderTo.innerHTML = '';
31019
+ renderTo.innerHTML = AST.emptyHTML;
31071
31020
  // If the container doesn't have an offsetWidth, it has or is a child of
31072
31021
  // a node that has display:none. We need to temporarily move it out to a
31073
31022
  // visible state to determine the size, else the legend and tooltips
@@ -31152,7 +31101,7 @@
31152
31101
  *
31153
31102
  * @private
31154
31103
  * @function Highcharts.Chart#getMargins
31155
- * @fires Highcharts.Chart#event:getMargins
31104
+ * @emits Highcharts.Chart#event:getMargins
31156
31105
  */
31157
31106
  Chart.prototype.getMargins = function (skipAxes) {
31158
31107
  var _a = this,
@@ -31318,10 +31267,9 @@
31318
31267
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation=true]
31319
31268
  * Whether and how to apply animation.
31320
31269
  *
31321
- * @return {void}
31322
31270
  *
31323
- * @fires Highcharts.Chart#event:endResize
31324
- * @fires Highcharts.Chart#event:resize
31271
+ * @emits Highcharts.Chart#event:endResize
31272
+ * @emits Highcharts.Chart#event:resize
31325
31273
  */
31326
31274
  Chart.prototype.setSize = function (width, height, animation) {
31327
31275
  var chart = this,
@@ -31378,7 +31326,7 @@
31378
31326
  *
31379
31327
  * @private
31380
31328
  * @function Highcharts.Chart#setChartSize
31381
- * @fires Highcharts.Chart#event:afterSetChartSize
31329
+ * @emits Highcharts.Chart#event:afterSetChartSize
31382
31330
  */
31383
31331
  Chart.prototype.setChartSize = function (skipAxes) {
31384
31332
  var chart = this,
@@ -31501,7 +31449,7 @@
31501
31449
  *
31502
31450
  * @private
31503
31451
  * @function Highcharts.Chart#drawChartBox
31504
- * @fires Highcharts.Chart#event:afterDrawChartBox
31452
+ * @emits Highcharts.Chart#event:afterDrawChartBox
31505
31453
  */
31506
31454
  Chart.prototype.drawChartBox = function () {
31507
31455
  var chart = this,
@@ -31635,7 +31583,6 @@
31635
31583
  *
31636
31584
  * @private
31637
31585
  * @function Highcharts.Chart#propFromSeries
31638
- * @return {void}
31639
31586
  */
31640
31587
  Chart.prototype.propFromSeries = function () {
31641
31588
  var chart = this,
@@ -31679,7 +31626,7 @@
31679
31626
  *
31680
31627
  * @private
31681
31628
  * @function Highcharts.Chart#linkSeries
31682
- * @fires Highcharts.Chart#event:afterLinkSeries
31629
+ * @emits Highcharts.Chart#event:afterLinkSeries
31683
31630
  */
31684
31631
  Chart.prototype.linkSeries = function () {
31685
31632
  var chart = this,
@@ -31907,7 +31854,7 @@
31907
31854
  *
31908
31855
  * @function Highcharts.Chart#destroy
31909
31856
  *
31910
- * @fires Highcharts.Chart#event:destroy
31857
+ * @emits Highcharts.Chart#event:destroy
31911
31858
  */
31912
31859
  Chart.prototype.destroy = function () {
31913
31860
  var chart = this,
@@ -31959,7 +31906,7 @@
31959
31906
  // Remove container and all SVG, check container as it can break in IE
31960
31907
  // when destroyed before finished loading
31961
31908
  if (container) {
31962
- container.innerHTML = '';
31909
+ container.innerHTML = AST.emptyHTML;
31963
31910
  removeEvent(container);
31964
31911
  if (parentNode) {
31965
31912
  discardElement(container);
@@ -31975,7 +31922,7 @@
31975
31922
  *
31976
31923
  * @private
31977
31924
  * @function Highcharts.Chart#firstRender
31978
- * @fires Highcharts.Chart#event:beforeRender
31925
+ * @emits Highcharts.Chart#event:beforeRender
31979
31926
  */
31980
31927
  Chart.prototype.firstRender = function () {
31981
31928
  var chart = this,
@@ -32039,8 +31986,8 @@
32039
31986
  *
32040
31987
  * @private
32041
31988
  * @function Highcharts.Chart#onload
32042
- * @fires Highcharts.Chart#event:load
32043
- * @fires Highcharts.Chart#event:render
31989
+ * @emits Highcharts.Chart#event:load
31990
+ * @emits Highcharts.Chart#event:render
32044
31991
  */
32045
31992
  Chart.prototype.onload = function () {
32046
31993
  // Run callbacks, first the ones registered by modules, then user's one
@@ -32086,8 +32033,8 @@
32086
32033
  * @return {Highcharts.Series}
32087
32034
  * The newly created series object.
32088
32035
  *
32089
- * @fires Highcharts.Chart#event:addSeries
32090
- * @fires Highcharts.Chart#event:afterAddSeries
32036
+ * @emits Highcharts.Chart#event:addSeries
32037
+ * @emits Highcharts.Chart#event:afterAddSeries
32091
32038
  */
32092
32039
  Chart.prototype.addSeries = function (options, redraw, animation) {
32093
32040
  var chart = this;
@@ -32346,8 +32293,8 @@
32346
32293
  * Whether to apply animation, and optionally animation
32347
32294
  * configuration.
32348
32295
  *
32349
- * @fires Highcharts.Chart#event:update
32350
- * @fires Highcharts.Chart#event:afterUpdate
32296
+ * @emits Highcharts.Chart#event:update
32297
+ * @emits Highcharts.Chart#event:afterUpdate
32351
32298
  */
32352
32299
  Chart.prototype.update = function (options, redraw, oneToOne, animation) {
32353
32300
  var chart = this,
@@ -32615,8 +32562,8 @@
32615
32562
  *
32616
32563
  * @function Highcharts.Chart#showResetZoom
32617
32564
  *
32618
- * @fires Highcharts.Chart#event:afterShowResetZoom
32619
- * @fires Highcharts.Chart#event:beforeShowResetZoom
32565
+ * @emits Highcharts.Chart#event:afterShowResetZoom
32566
+ * @emits Highcharts.Chart#event:beforeShowResetZoom
32620
32567
  */
32621
32568
  Chart.prototype.showResetZoom = function () {
32622
32569
  var chart = this,
@@ -32653,7 +32600,7 @@
32653
32600
  *
32654
32601
  * @function Highcharts.Chart#zoomOut
32655
32602
  *
32656
- * @fires Highcharts.Chart#event:selection
32603
+ * @emits Highcharts.Chart#event:selection
32657
32604
  */
32658
32605
  Chart.prototype.zoomOut = function () {
32659
32606
  fireEvent(this, 'selection', { resetSelection: true }, this.zoom);
@@ -32668,7 +32615,8 @@
32668
32615
  Chart.prototype.zoom = function (event) {
32669
32616
  var chart = this,
32670
32617
  pointer = chart.pointer,
32671
- mouseDownPos = (chart.inverted ? pointer.mouseDownX : pointer.mouseDownY);
32618
+ mouseDownPos = chart.inverted ?
32619
+ pointer.mouseDownX : pointer.mouseDownY;
32672
32620
  var displayButton = false,
32673
32621
  hasZoomed;
32674
32622
  // If zoom is called with no arguments, reset the axes
@@ -34769,9 +34717,9 @@
34769
34717
  */
34770
34718
  // eslint-disable-next-line valid-jsdoc
34771
34719
  /**
34772
- * Callback JavaScript function to format the data label. Note that
34773
- * if a `format` is defined, the format takes precedence and the
34774
- * formatter is ignored.
34720
+ * Callback JavaScript function to format the data label. Note that if a
34721
+ * `format` is defined, the format takes precedence and the formatter is
34722
+ * ignored.
34775
34723
  *
34776
34724
  * @sample {highmaps} maps/plotoptions/series-datalabels-format/
34777
34725
  * Formatted value
@@ -34780,7 +34728,8 @@
34780
34728
  */
34781
34729
  formatter: function () {
34782
34730
  var numberFormatter = this.series.chart.numberFormatter;
34783
- return typeof this.y !== 'number' ? '' : numberFormatter(this.y, -1);
34731
+ return typeof this.y !== 'number' ?
34732
+ '' : numberFormatter(this.y, -1);
34784
34733
  },
34785
34734
  /**
34786
34735
  * For points with an extent, like columns or map areas, whether to
@@ -35861,7 +35810,6 @@
35861
35810
  *
35862
35811
  * @private
35863
35812
  * @function Highcharts.Series#hasData
35864
- * @return {boolean}
35865
35813
  */
35866
35814
  Series.prototype.hasData = function () {
35867
35815
  return ((this.visible &&
@@ -35879,7 +35827,6 @@
35879
35827
  *
35880
35828
  * @private
35881
35829
  * @function Highcharts.Series#autoIncrement
35882
- * @return {number}
35883
35830
  */
35884
35831
  Series.prototype.autoIncrement = function (x) {
35885
35832
  var options = this.options,
@@ -35940,13 +35887,9 @@
35940
35887
  * not redraw the series. For API usage, use {@link Series#update}.
35941
35888
  * @private
35942
35889
  * @function Highcharts.Series#setOptions
35943
- *
35944
35890
  * @param {Highcharts.SeriesOptionsType} itemOptions
35945
35891
  * The series options.
35946
- *
35947
- * @return {Highcharts.SeriesOptionsType}
35948
- *
35949
- * @fires Highcharts.Series#event:afterSetOptions
35892
+ * @emits Highcharts.Series#event:afterSetOptions
35950
35893
  */
35951
35894
  Series.prototype.setOptions = function (itemOptions) {
35952
35895
  var chart = this.chart,
@@ -36104,7 +36047,6 @@
36104
36047
  *
36105
36048
  * @private
36106
36049
  * @function Highcharts.Series#getPointsCollection
36107
- * @return {Array<Highcharts.Point>}
36108
36050
  */
36109
36051
  Series.prototype.getPointsCollection = function () {
36110
36052
  return (this.hasGroupedData ? this.points : this.data) || [];
@@ -36115,7 +36057,6 @@
36115
36057
  *
36116
36058
  * @private
36117
36059
  * @function Highcharts.Series#getSymbol
36118
- * @return {void}
36119
36060
  */
36120
36061
  Series.prototype.getSymbol = function () {
36121
36062
  var seriesMarkerOption = this.options.marker;
@@ -36127,14 +36068,13 @@
36127
36068
  *
36128
36069
  * @private
36129
36070
  * @function Highcharts.Series#findPointIndex
36130
- * @param {Highcharts.PointOptionsObject} optionsObject
36131
- * The options of the point.
36132
- * @param {number} fromIndex
36133
- * The index to start searching from, used for optimizing
36134
- * series with required sorting.
36135
- * @returns {number|undefined}
36136
- * Returns the index of a matching point, or undefined if no
36137
- * match is found.
36071
+ * @param {Highcharts.PointOptionsObject} optionsObject
36072
+ * The options of the point.
36073
+ * @param {number} fromIndex
36074
+ * The index to start searching from, used for optimizing series with
36075
+ * required sorting.
36076
+ * @return {number|undefined}
36077
+ * Returns the index of a matching point, or undefined if no match is found.
36138
36078
  */
36139
36079
  Series.prototype.findPointIndex = function (optionsObject, fromIndex) {
36140
36080
  var id = optionsObject.id,
@@ -36517,11 +36457,8 @@
36517
36457
  *
36518
36458
  * @private
36519
36459
  * @function Highcharts.Series#sortData
36520
- *
36521
36460
  * @param {Array<Highcharts.PointOptionsType>} data
36522
36461
  * Force data grouping.
36523
- *
36524
- * @return {Array<Highcharts.PointOptionsObject>}
36525
36462
  */
36526
36463
  Series.prototype.sortData = function (data) {
36527
36464
  var series = this,
@@ -36583,8 +36520,7 @@
36583
36520
  * @private
36584
36521
  * @function Highcharts.Series#getProcessedData
36585
36522
  * @param {boolean} [forceExtremesFromAll]
36586
- * Force getting extremes of a total series data range.
36587
- * @return {Highcharts.SeriesProcessedDataObject}
36523
+ * Force getting extremes of a total series data range.
36588
36524
  */
36589
36525
  Series.prototype.getProcessedData = function (forceExtremesFromAll) {
36590
36526
  var series = this,
@@ -36680,8 +36616,7 @@
36680
36616
  * @private
36681
36617
  * @function Highcharts.Series#processData
36682
36618
  * @param {boolean} [force]
36683
- * Force data grouping.
36684
- * @return {boolean|undefined}
36619
+ * Force data grouping.
36685
36620
  */
36686
36621
  Series.prototype.processData = function (force) {
36687
36622
  var series = this,
@@ -36702,7 +36637,7 @@
36702
36637
  series.cropStart = processedData.cropStart;
36703
36638
  series.processedXData = processedData.xData;
36704
36639
  series.processedYData = processedData.yData;
36705
- series.closestPointRange = series.basePointRange = processedData.closestPointRange;
36640
+ series.closestPointRange = (series.basePointRange = processedData.closestPointRange);
36706
36641
  fireEvent(series, 'afterProcessData');
36707
36642
  };
36708
36643
  /**
@@ -36712,12 +36647,6 @@
36712
36647
  *
36713
36648
  * @private
36714
36649
  * @function Highcharts.Series#cropData
36715
- * @param {Array<number>} xData
36716
- * @param {Array<number>} yData
36717
- * @param {number} min
36718
- * @param {number} max
36719
- * @param {number} [cropShoulder]
36720
- * @return {Highcharts.SeriesCropDataObject}
36721
36650
  */
36722
36651
  Series.prototype.cropData = function (xData, yData, min, max, cropShoulder) {
36723
36652
  var dataLength = xData.length;
@@ -36835,7 +36764,8 @@
36835
36764
  * @readonly
36836
36765
  */
36837
36766
  // For faster access in Point.update
36838
- point.index = hasGroupedData ? (groupCropStartIndex + i) : cursor;
36767
+ point.index = hasGroupedData ?
36768
+ (groupCropStartIndex + i) : cursor;
36839
36769
  points[i] = point;
36840
36770
  }
36841
36771
  }
@@ -36895,12 +36825,9 @@
36895
36825
  *
36896
36826
  * @private
36897
36827
  * @function Highcharts.Series#getXExtremes
36898
- *
36899
36828
  * @param {Array<number>} xData
36900
36829
  * The data to inspect. Defaults to the current data within the visible
36901
36830
  * range.
36902
- *
36903
- * @return {Highcharts.RangeObject}
36904
36831
  */
36905
36832
  Series.prototype.getXExtremes = function (xData) {
36906
36833
  return {
@@ -36914,14 +36841,11 @@
36914
36841
  *
36915
36842
  * @private
36916
36843
  * @function Highcharts.Series#getExtremes
36917
- *
36918
36844
  * @param {Array<number>} [yData]
36919
36845
  * The data to inspect. Defaults to the current data within the visible
36920
36846
  * range.
36921
36847
  * @param {boolean} [forceExtremesFromAll]
36922
36848
  * Force getting extremes of a total series data range.
36923
- *
36924
- * @return {Highcharts.DataExtremesObject}
36925
36849
  */
36926
36850
  Series.prototype.getExtremes = function (yData, forceExtremesFromAll) {
36927
36851
  var xAxis = this.xAxis,
@@ -37021,11 +36945,8 @@
37021
36945
  *
37022
36946
  * @private
37023
36947
  * @function Highcharts.Series.getFirstValidPoint
37024
- *
37025
36948
  * @param {Array<Highcharts.PointOptionsType>} data
37026
36949
  * Array of options for points
37027
- *
37028
- * @return {Highcharts.PointOptionsType}
37029
36950
  */
37030
36951
  Series.prototype.getFirstValidPoint = function (data) {
37031
36952
  var dataLength = data.length;
@@ -37045,7 +36966,7 @@
37045
36966
  *
37046
36967
  * @function Highcharts.Series#translate
37047
36968
  *
37048
- * @fires Highcharts.Series#events:translate
36969
+ * @emits Highcharts.Series#events:translate
37049
36970
  */
37050
36971
  Series.prototype.translate = function () {
37051
36972
  if (!this.processedXData) { // hidden series
@@ -37093,8 +37014,10 @@
37093
37014
  (stackThreshold ? 0 : threshold) ?
37094
37015
  '-' :
37095
37016
  '') + series.stackKey];
37096
- if (yAxis.positiveValuesOnly && !yAxis.validatePositiveValue(yValue) ||
37097
- xAxis.positiveValuesOnly && !xAxis.validatePositiveValue(xValue)) {
37017
+ if (yAxis.positiveValuesOnly &&
37018
+ !yAxis.validatePositiveValue(yValue) ||
37019
+ xAxis.positiveValuesOnly &&
37020
+ !xAxis.validatePositiveValue(xValue)) {
37098
37021
  point.isNull = true;
37099
37022
  }
37100
37023
  // Get the plotX translation
@@ -37229,8 +37152,6 @@
37229
37152
  *
37230
37153
  * @private
37231
37154
  * @function Highcharts.Series#getClip
37232
- *
37233
- * @return {Highcharts.Dictionary<number>}
37234
37155
  */
37235
37156
  Series.prototype.getClipBox = function () {
37236
37157
  var _a = this,
@@ -37380,7 +37301,7 @@
37380
37301
  * @private
37381
37302
  * @function Highcharts.Series#afterAnimate
37382
37303
  *
37383
- * @fires Highcharts.Series#event:afterAnimate
37304
+ * @emits Highcharts.Series#event:afterAnimate
37384
37305
  */
37385
37306
  Series.prototype.afterAnimate = function () {
37386
37307
  var _this = this;
@@ -37601,7 +37522,7 @@
37601
37522
  // Handle hover and select states
37602
37523
  state = state || 'normal';
37603
37524
  if (state) {
37604
- seriesStateOptions = seriesMarkerOptions.states[state] || {};
37525
+ seriesStateOptions = (seriesMarkerOptions.states[state] || {});
37605
37526
  pointStateOptions = (pointMarkerOptions.states &&
37606
37527
  pointMarkerOptions.states[state]) || {};
37607
37528
  strokeWidth = pick(pointStateOptions.lineWidth, seriesStateOptions.lineWidth, strokeWidth + pick(pointStateOptions.lineWidthPlus, seriesStateOptions.lineWidthPlus, 0));
@@ -37626,7 +37547,7 @@
37626
37547
  * @private
37627
37548
  * @function Highcharts.Series#destroy
37628
37549
  *
37629
- * @fires Highcharts.Series#event:destroy
37550
+ * @emits Highcharts.Series#event:destroy
37630
37551
  */
37631
37552
  Series.prototype.destroy = function (keepEventsForUpdate) {
37632
37553
  var series = this,
@@ -37921,8 +37842,6 @@
37921
37842
  * Get the translation and scale for the plot area of this series.
37922
37843
  *
37923
37844
  * @function Highcharts.Series#getPlotBox
37924
- *
37925
- * @return {Highcharts.SeriesPlotBoxObject}
37926
37845
  */
37927
37846
  Series.prototype.getPlotBox = function () {
37928
37847
  var chart = this.chart;
@@ -37967,7 +37886,7 @@
37967
37886
  *
37968
37887
  * @function Highcharts.Series#render
37969
37888
  *
37970
- * @fires Highcharts.Series#event:afterRender
37889
+ * @emits Highcharts.Series#event:afterRender
37971
37890
  */
37972
37891
  Series.prototype.render = function () {
37973
37892
  var series = this,
@@ -38413,7 +38332,7 @@
38413
38332
  * @param {boolean} [withEvent=true]
38414
38333
  * Used internally, whether to fire the series `addPoint` event.
38415
38334
  *
38416
- * @fires Highcharts.Series#event:addPoint
38335
+ * @emits Highcharts.Series#event:addPoint
38417
38336
  */
38418
38337
  Series.prototype.addPoint = function (options, redraw, shift, animation, withEvent) {
38419
38338
  var series = this,
@@ -38505,7 +38424,7 @@
38505
38424
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
38506
38425
  * Whether and optionally how the series should be animated.
38507
38426
  *
38508
- * @fires Highcharts.Point#event:remove
38427
+ * @emits Highcharts.Point#event:remove
38509
38428
  */
38510
38429
  Series.prototype.removePoint = function (i, redraw, animation) {
38511
38430
  var series = this,
@@ -38559,7 +38478,7 @@
38559
38478
  * @param {boolean} [withEvent=true]
38560
38479
  * Used internally, whether to fire the series `remove` event.
38561
38480
  *
38562
- * @fires Highcharts.Series#event:remove
38481
+ * @emits Highcharts.Series#event:remove
38563
38482
  */
38564
38483
  Series.prototype.remove = function (redraw, animation, withEvent, keepEvents) {
38565
38484
  var series = this,
@@ -38609,8 +38528,8 @@
38609
38528
  * more operations on the chart, it is a good idea to set redraw to
38610
38529
  * false and call {@link Chart#redraw} after.
38611
38530
  *
38612
- * @fires Highcharts.Series#event:update
38613
- * @fires Highcharts.Series#event:afterUpdate
38531
+ * @emits Highcharts.Series#event:update
38532
+ * @emits Highcharts.Series#event:afterUpdate
38614
38533
  */
38615
38534
  Series.prototype.update = function (options, redraw) {
38616
38535
  options = cleanRecursively(options, this.userOptions);
@@ -38692,7 +38611,9 @@
38692
38611
  series.index : oldOptions.index,
38693
38612
  pointStart: pick(
38694
38613
  // when updating from blank (#7933)
38695
- plotOptions && plotOptions.series && plotOptions.series.pointStart, oldOptions.pointStart,
38614
+ (plotOptions &&
38615
+ plotOptions.series &&
38616
+ plotOptions.series.pointStart), oldOptions.pointStart,
38696
38617
  // when updating after addPoint
38697
38618
  series.xData[0])
38698
38619
  }, (!keepPoints && { data: series.options.data }), options);
@@ -38722,8 +38643,7 @@
38722
38643
  // Legacy (IE < 11)
38723
38644
  }
38724
38645
  else {
38725
- var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') &&
38726
- series.hcEvents;
38646
+ var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') && series.hcEvents;
38727
38647
  for (n in initialSeriesProto) { // eslint-disable-line guard-for-in
38728
38648
  series[n] = void 0;
38729
38649
  }
@@ -38821,13 +38741,17 @@
38821
38741
  return option !== oldOption;
38822
38742
  }
38823
38743
  return option !==
38824
- pick(plotOptions && plotOptions[this.type] && plotOptions[this.type][optionName], plotOptions && plotOptions.series && plotOptions.series[optionName], option);
38744
+ pick(plotOptions &&
38745
+ plotOptions[this.type] &&
38746
+ plotOptions[this.type][optionName], plotOptions &&
38747
+ plotOptions.series &&
38748
+ plotOptions.series[optionName], option);
38825
38749
  };
38826
38750
  /**
38827
38751
  * Runs on mouse over the series graphical items.
38828
38752
  *
38829
38753
  * @function Highcharts.Series#onMouseOver
38830
- * @fires Highcharts.Series#event:mouseOver
38754
+ * @emits Highcharts.Series#event:mouseOver
38831
38755
  */
38832
38756
  Series.prototype.onMouseOver = function () {
38833
38757
  var series = this,
@@ -38859,7 +38783,7 @@
38859
38783
  *
38860
38784
  * @function Highcharts.Series#onMouseOut
38861
38785
  *
38862
- * @fires Highcharts.Series#event:mouseOut
38786
+ * @emits Highcharts.Series#event:mouseOut
38863
38787
  */
38864
38788
  Series.prototype.onMouseOut = function () {
38865
38789
  // trigger the event only if listeners exist
@@ -39014,8 +38938,8 @@
39014
38938
  * operations on the chart, it is a good idea to set redraw to false and
39015
38939
  * call {@link Chart#redraw|chart.redraw()} after.
39016
38940
  *
39017
- * @fires Highcharts.Series#event:hide
39018
- * @fires Highcharts.Series#event:show
38941
+ * @emits Highcharts.Series#event:hide
38942
+ * @emits Highcharts.Series#event:show
39019
38943
  */
39020
38944
  Series.prototype.setVisible = function (vis, redraw) {
39021
38945
  var series = this,
@@ -39079,7 +39003,7 @@
39079
39003
  * Toggle visibility from a button
39080
39004
  *
39081
39005
  * @function Highcharts.Series#show
39082
- * @fires Highcharts.Series#event:show
39006
+ * @emits Highcharts.Series#event:show
39083
39007
  */
39084
39008
  Series.prototype.show = function () {
39085
39009
  this.setVisible(true);
@@ -39093,7 +39017,7 @@
39093
39017
  * Toggle visibility from a button
39094
39018
  *
39095
39019
  * @function Highcharts.Series#hide
39096
- * @fires Highcharts.Series#event:hide
39020
+ * @emits Highcharts.Series#event:hide
39097
39021
  */
39098
39022
  Series.prototype.hide = function () {
39099
39023
  this.setVisible(false);
@@ -39114,8 +39038,8 @@
39114
39038
  * True to select the series, false to unselect. If undefined, the selection
39115
39039
  * state is toggled.
39116
39040
  *
39117
- * @fires Highcharts.Series#event:select
39118
- * @fires Highcharts.Series#event:unselect
39041
+ * @emits Highcharts.Series#event:select
39042
+ * @emits Highcharts.Series#event:unselect
39119
39043
  */
39120
39044
  Series.prototype.select = function (selected) {
39121
39045
  var series = this;
@@ -39133,10 +39057,6 @@
39133
39057
  * Checks if a tooltip should be shown for a given point.
39134
39058
  *
39135
39059
  * @private
39136
- * @param {number} plotX
39137
- * @param {number} plotY
39138
- * @param {Highcharts.ChartIsInsideOptionsObject} [options]
39139
- * @return {boolean}
39140
39060
  */
39141
39061
  Series.prototype.shouldShowTooltip = function (plotX, plotY, options) {
39142
39062
  if (options === void 0) { options = {}; }
@@ -39573,7 +39493,7 @@
39573
39493
  if (scrollableMinWidth) {
39574
39494
  this.scrollablePixelsX = scrollablePixelsX = Math.max(0, scrollableMinWidth - this.chartWidth);
39575
39495
  if (scrollablePixelsX) {
39576
- this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
39496
+ this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
39577
39497
  this.plotBox.width = this.plotWidth += scrollablePixelsX;
39578
39498
  if (this.inverted) {
39579
39499
  this.clipBox.height += scrollablePixelsX;
@@ -39591,7 +39511,7 @@
39591
39511
  else if (scrollableMinHeight) {
39592
39512
  this.scrollablePixelsY = scrollablePixelsY = Math.max(0, scrollableMinHeight - this.chartHeight);
39593
39513
  if (scrollablePixelsY) {
39594
- this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
39514
+ this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
39595
39515
  this.plotBox.height = this.plotHeight += scrollablePixelsY;
39596
39516
  if (this.inverted) {
39597
39517
  this.clipBox.width += scrollablePixelsY;
@@ -40135,7 +40055,8 @@
40135
40055
  chart = axis.chart,
40136
40056
  renderer = chart.renderer,
40137
40057
  stacks = stacking.stacks,
40138
- stackLabelsAnim = axis.options.stackLabels && axis.options.stackLabels.animation,
40058
+ stackLabelsAnim = axis.options.stackLabels &&
40059
+ axis.options.stackLabels.animation,
40139
40060
  animationConfig = getDeferredAnimation(chart,
40140
40061
  stackLabelsAnim || false),
40141
40062
  stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
@@ -40282,6 +40203,7 @@
40282
40203
  r: options.borderRadius || 0,
40283
40204
  text: str,
40284
40205
  rotation: options.rotation,
40206
+ // set default padding to 5 as it is in datalabels #12308
40285
40207
  padding: pick(options.padding, 5),
40286
40208
  visibility: 'hidden' // hidden until setOffset is called
40287
40209
  };
@@ -40357,7 +40279,8 @@
40357
40279
  }
40358
40280
  else {
40359
40281
  boxOffsetX = chart.inverted ?
40360
- (isNegative ? bBox.width + padding : -padding) : bBox.width / 2;
40282
+ (isNegative ? bBox.width + padding : -padding) :
40283
+ bBox.width / 2;
40361
40284
  }
40362
40285
  }
40363
40286
  boxOffsetY = chart.inverted ?
@@ -40402,22 +40325,6 @@
40402
40325
  /**
40403
40326
  * @private
40404
40327
  * @function Highcharts.StackItem#getStackBox
40405
- *
40406
- * @param {Highcharts.Chart} chart
40407
- *
40408
- * @param {Highcharts.StackItem} stackItem
40409
- *
40410
- * @param {number} x
40411
- *
40412
- * @param {number} y
40413
- *
40414
- * @param {number} xWidth
40415
- *
40416
- * @param {number} h
40417
- *
40418
- * @param {Highcharts.Axis} axis
40419
- *
40420
- * @return {Highcharts.BBoxObject}
40421
40328
  */
40422
40329
  StackItem.prototype.getStackBox = function (chart, stackItem, x, y, xWidth, h, axis) {
40423
40330
  var reversed = stackItem.axis.reversed,
@@ -40427,7 +40334,8 @@
40427
40334
  neg = (stackItem.isNegative && !reversed) ||
40428
40335
  (!stackItem.isNegative && reversed); // #4056
40429
40336
  return {
40430
- x: inverted ? (neg ? y - axis.right : y - h + axis.pos - chart.plotLeft) :
40337
+ x: inverted ?
40338
+ (neg ? y - axis.right : y - h + axis.pos - chart.plotLeft) :
40431
40339
  x + chart.xAxis[0].transB - chart.plotLeft,
40432
40340
  y: inverted ?
40433
40341
  axis.height - x - xWidth :
@@ -40671,11 +40579,6 @@
40671
40579
  *
40672
40580
  * @private
40673
40581
  * @function Highcharts.Series#getStackIndicator
40674
- * @param {Highcharts.StackItemIndicatorObject|undefined} stackIndicator
40675
- * @param {number} x
40676
- * @param {number} index
40677
- * @param {string} [key]
40678
- * @return {Highcharts.StackItemIndicatorObject}
40679
40582
  */
40680
40583
  Series.prototype.getStackIndicator = function (stackIndicator, x, index, key) {
40681
40584
  // Update stack indicator, when:
@@ -41489,7 +41392,9 @@
41489
41392
  }
41490
41393
  isNull = points[i].isNull;
41491
41394
  plotX = pick(points[i].rectPlotX, points[i].plotX);
41492
- yBottom = stacking ? pick(points[i].yBottom, translatedThreshold) : translatedThreshold;
41395
+ yBottom = stacking ?
41396
+ pick(points[i].yBottom, translatedThreshold) :
41397
+ translatedThreshold;
41493
41398
  if (!isNull || connectNulls) {
41494
41399
  if (!connectNulls) {
41495
41400
  addDummyPoints(i, i - 1, 'left');
@@ -41593,24 +41498,22 @@
41593
41498
  var si = yAxisSeries[i].index;
41594
41499
  stackPoint = otherStack.points[si];
41595
41500
  if (!stackPoint) {
41596
- // If the next point in this series
41597
- // is missing, mark the point
41598
- // with point.leftNull or
41599
- // point.rightNull = true.
41501
+ // If the next point in this series is
41502
+ // missing, mark the point with
41503
+ // point.leftNull or point.rightNull = true.
41600
41504
  if (si === series.index) {
41601
41505
  pointMap[x][nullName] = true;
41602
- // If there are missing points in
41603
- // the next stack in any of the
41604
- // series below this one, we need
41605
- // to substract the missing values
41606
- // and add a hiatus to the left or
41506
+ // If there are missing points in the next
41507
+ // stack in any of the series below this
41508
+ // one, we need to substract the missing
41509
+ // values and add a hiatus to the left or
41607
41510
  // right.
41608
41511
  }
41609
41512
  else if (visibleSeries_1[i]) {
41610
- stackedValues =
41611
- stack[x].points[si];
41513
+ stackedValues = stack[x].points[si];
41612
41514
  if (stackedValues) {
41613
- cliff -= stackedValues[1] - stackedValues[0];
41515
+ cliff -= (stackedValues[1] -
41516
+ stackedValues[0]);
41614
41517
  }
41615
41518
  }
41616
41519
  }
@@ -41959,14 +41862,6 @@
41959
41862
  *
41960
41863
  * @private
41961
41864
  * @function Highcharts.seriesTypes.spline#getPointSpline
41962
- *
41963
- * @param {Array<Highcharts.Point>}
41964
- *
41965
- * @param {Highcharts.Point} point
41966
- *
41967
- * @param {number} i
41968
- *
41969
- * @return {Highcharts.SVGPathArray}
41970
41865
  */
41971
41866
  SplineSeries.prototype.getPointSpline = function (points, point, i) {
41972
41867
  var
@@ -42501,7 +42396,9 @@
42501
42396
  options = series.options,
42502
42397
  inverted = this.chart.inverted,
42503
42398
  attr = {},
42504
- translateProp = inverted ? 'translateX' : 'translateY';
42399
+ translateProp = inverted ?
42400
+ 'translateX' :
42401
+ 'translateY';
42505
42402
  var translateStart,
42506
42403
  translatedThreshold;
42507
42404
  if (init) {
@@ -42562,7 +42459,6 @@
42562
42459
  *
42563
42460
  * @private
42564
42461
  * @function Highcharts.seriesTypes.column#getColumnMetrics
42565
- * @return {Highcharts.ColumnMetricsObject}
42566
42462
  */
42567
42463
  ColumnSeries.prototype.getColumnMetrics = function () {
42568
42464
  var series = this,
@@ -42593,7 +42489,8 @@
42593
42489
  !series.chart.options.chart.ignoreHiddenSeries) &&
42594
42490
  yAxis.len === otherYAxis.len &&
42595
42491
  yAxis.pos === otherYAxis.pos) { // #642, #2086
42596
- if (otherOptions.stacking && otherOptions.stacking !== 'group') {
42492
+ if (otherOptions.stacking &&
42493
+ otherOptions.stacking !== 'group') {
42597
42494
  stackKey = otherSeries.stackKey;
42598
42495
  if (typeof stackGroups[stackKey] ===
42599
42496
  'undefined') {
@@ -42705,21 +42602,21 @@
42705
42602
  if (!point.isNull && metrics.columnCount > 1) {
42706
42603
  var indexInCategory_1 = 0;
42707
42604
  var totalInCategory_1 = 0;
42708
- // Loop over all the stacks on the Y axis. When stacking is
42709
- // enabled, these are real point stacks. When stacking is not
42710
- // enabled, but `centerInCategory` is true, there is one stack
42711
- // handling the grouping of points in each category. This is
42712
- // done in the `setGroupedPoints` function.
42605
+ // Loop over all the stacks on the Y axis. When stacking is enabled,
42606
+ // these are real point stacks. When stacking is not enabled, but
42607
+ // `centerInCategory` is true, there is one stack handling the
42608
+ // grouping of points in each category. This is done in the
42609
+ // `setGroupedPoints` function.
42713
42610
  objectEach(this.yAxis.stacking && this.yAxis.stacking.stacks, function (stack) {
42714
42611
  if (typeof point.x === 'number') {
42715
42612
  var stackItem = stack[point.x.toString()];
42716
42613
  if (stackItem) {
42717
42614
  var pointValues = stackItem.points[_this.index],
42718
42615
  total = stackItem.total;
42719
- // If true `stacking` is enabled, count the
42720
- // total number of non-null stacks in the
42721
- // category, and note which index this point is
42722
- // within those stacks.
42616
+ // If true `stacking` is enabled, count the total
42617
+ // number of non-null stacks in the category, and
42618
+ // note which index this point is within those
42619
+ // stacks.
42723
42620
  if (stacking) {
42724
42621
  if (pointValues) {
42725
42622
  indexInCategory_1 = totalInCategory_1;
@@ -42727,8 +42624,8 @@
42727
42624
  if (stackItem.hasValidPoints) {
42728
42625
  totalInCategory_1++;
42729
42626
  }
42730
- // If `stacking` is not enabled, look for the
42731
- // index and total of the `group` stack.
42627
+ // If `stacking` is not enabled, look for the index
42628
+ // and total of the `group` stack.
42732
42629
  }
42733
42630
  else if (isArray(pointValues)) {
42734
42631
  indexInCategory_1 = pointValues[1];
@@ -43931,8 +43828,10 @@
43931
43828
  // Merge in series options for the point.
43932
43829
  // @note dataLabelAttribs (like pointAttribs) would eradicate
43933
43830
  // the need for dlOptions, and simplify the section below.
43934
- pointOptions = splat(mergeArrays(seriesDlOptions, point.dlOptions || // dlOptions is used in treemaps
43935
- (point.options && point.options.dataLabels)));
43831
+ pointOptions = splat(mergeArrays(seriesDlOptions,
43832
+ // dlOptions is used in treemaps
43833
+ (point.dlOptions ||
43834
+ (point.options && point.options.dataLabels))));
43936
43835
  // Handle each individual data label for this point
43937
43836
  pointOptions.forEach(function (labelOptions, i) {
43938
43837
  // Options for one datalabel
@@ -43950,8 +43849,8 @@
43950
43849
  style,
43951
43850
  rotation,
43952
43851
  attr,
43953
- dataLabel = point.dataLabels ? point.dataLabels[i] :
43954
- point.dataLabel;
43852
+ dataLabel = point.dataLabels ?
43853
+ point.dataLabels[i] : point.dataLabel;
43955
43854
  var labelDistance = pick(labelOptions.distance,
43956
43855
  point.labelDistance),
43957
43856
  isNew = !dataLabel;
@@ -44006,8 +43905,10 @@
44006
43905
  }
44007
43906
  // If the point is outside the plot area, destroy it. #678,
44008
43907
  // #820
44009
- if (dataLabel && (!labelEnabled || !defined(labelText))) {
44010
- point.dataLabel =
43908
+ if (dataLabel && (!labelEnabled ||
43909
+ !defined(labelText) ||
43910
+ !!dataLabel.div !== !!labelOptions.useHTML)) {
43911
+ point.dataLabel = dataLabel =
44011
43912
  point.dataLabel && point.dataLabel.destroy();
44012
43913
  if (point.dataLabels) {
44013
43914
  // Remove point.dataLabels if this was the last one
@@ -44034,11 +43935,11 @@
44034
43935
  }
44035
43936
  }
44036
43937
  }
44037
- // Individual labels are disabled if the are explicitly
44038
- // disabled in the point options, or if they fall outside
44039
- // the plot area.
44040
43938
  }
44041
- else if (labelEnabled && defined(labelText)) {
43939
+ // Individual labels are disabled if the are explicitly
43940
+ // disabled in the point options, or if they fall outside
43941
+ // the plot area.
43942
+ if (labelEnabled && defined(labelText)) {
44042
43943
  if (!dataLabel) {
44043
43944
  // Create new label element
44044
43945
  point.dataLabels = point.dataLabels || [];
@@ -44052,7 +43953,8 @@
44052
43953
  if (!i) {
44053
43954
  point.dataLabel = dataLabel;
44054
43955
  }
44055
- dataLabel.addClass(' highcharts-data-label-color-' + point.colorIndex +
43956
+ dataLabel.addClass(' highcharts-data-label-color-' +
43957
+ point.colorIndex +
44056
43958
  ' ' + (labelOptions.className || '') +
44057
43959
  ( // #3398
44058
43960
  labelOptions.useHTML ?
@@ -44080,7 +43982,7 @@
44080
43982
  if (point.dataLabelPath &&
44081
43983
  !labelOptions.textPath.enabled) {
44082
43984
  // clean the DOM
44083
- point.dataLabelPath = point.dataLabelPath.destroy();
43985
+ point.dataLabelPath = (point.dataLabelPath.destroy());
44084
43986
  }
44085
43987
  }
44086
43988
  // Now the data label is created and placed at 0,0, so
@@ -45200,10 +45102,10 @@
45200
45102
  * @param {boolean} sliced
45201
45103
  * When undefined, the slice state is toggled.
45202
45104
  *
45203
- * @param {boolean} redraw
45105
+ * @param {boolean} [redraw]
45204
45106
  * Whether to redraw the chart. True by default.
45205
45107
  *
45206
- * @param {boolean|Partial<Highcharts.AnimationOptionsObject>}
45108
+ * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
45207
45109
  * Animation options.
45208
45110
  */
45209
45111
  PiePoint.prototype.slice = function (sliced, redraw, animation) {
@@ -46279,7 +46181,7 @@
46279
46181
  */
46280
46182
  borderWidth: 1,
46281
46183
  /**
46282
- * @ignore-options
46184
+ * @ignore-option
46283
46185
  * @private
46284
46186
  */
46285
46187
  lineWidth: void 0,
@@ -47057,7 +46959,8 @@
47057
46959
  if (alignValue) {
47058
46960
  xOffset = +alignValue * boxWidth;
47059
46961
  }
47060
- else if (isNumber(label.x) && Math.round(label.x) !== label.translateX) {
46962
+ else if (isNumber(label.x) &&
46963
+ Math.round(label.x) !== label.translateX) {
47061
46964
  xOffset = label.x - label.translateX;
47062
46965
  }
47063
46966
  return {
@@ -47119,10 +47022,11 @@
47119
47022
  * @private
47120
47023
  * @function hideOrShow
47121
47024
  * @param {Highcharts.SVGElement} label
47122
- * The label.
47025
+ * The label.
47123
47026
  * @param {Highcharts.Chart} chart
47124
- * The chart that contains the label.
47027
+ * The chart that contains the label.
47125
47028
  * @return {boolean}
47029
+ * Whether label is affected
47126
47030
  */
47127
47031
  function hideOrShow(label, chart) {
47128
47032
  var complete,
@@ -47131,13 +47035,15 @@
47131
47035
  if (label) {
47132
47036
  newOpacity = label.newOpacity;
47133
47037
  if (label.oldOpacity !== newOpacity) {
47134
- // Make sure the label is completely hidden to avoid catching
47135
- // clicks (#4362)
47038
+ // Make sure the label is completely hidden to avoid catching clicks
47039
+ // (#4362)
47136
47040
  if (label.alignAttr && label.placed) { // data labels
47137
47041
  label[newOpacity ? 'removeClass' : 'addClass']('highcharts-data-label-hidden');
47138
47042
  complete = function () {
47139
47043
  if (!chart.styledMode) {
47140
- label.css({ pointerEvents: newOpacity ? 'auto' : 'none' });
47044
+ label.css({
47045
+ pointerEvents: newOpacity ? 'auto' : 'none'
47046
+ });
47141
47047
  }
47142
47048
  };
47143
47049
  isLabelAffected = true;
@@ -47299,8 +47205,7 @@
47299
47205
  fn = condition.callback || function () {
47300
47206
  return (this.chartWidth <= pick(condition.maxWidth,
47301
47207
  Number.MAX_VALUE) &&
47302
- this.chartHeight <=
47303
- pick(condition.maxHeight,
47208
+ this.chartHeight <= pick(condition.maxHeight,
47304
47209
  Number.MAX_VALUE) &&
47305
47210
  this.chartWidth >= pick(condition.minWidth, 0) &&
47306
47211
  this.chartHeight >= pick(condition.minHeight, 0));
@@ -47343,7 +47248,7 @@
47343
47248
  mergedOptions.isResponsiveOptions = true;
47344
47249
  // Stringified key for the rules that currently apply.
47345
47250
  ruleIds = (ruleIds.toString() || void 0);
47346
- var currentRuleIds = currentResponsive && currentResponsive.ruleIds;
47251
+ var currentRuleIds = (currentResponsive && currentResponsive.ruleIds);
47347
47252
  // Changes in what rules apply
47348
47253
  if (ruleIds !== currentRuleIds) {
47349
47254
  // Undo previous rules. Before we apply a new set of rules, we
@@ -47666,7 +47571,9 @@
47666
47571
  composedClasses.push(ChartClass);
47667
47572
  var chartProto = ChartClass.prototype;
47668
47573
  chartProto.collectionsWithUpdate.push('colorAxis');
47669
- chartProto.collectionsWithInit.colorAxis = [chartProto.addColorAxis];
47574
+ chartProto.collectionsWithInit.colorAxis = [
47575
+ chartProto.addColorAxis
47576
+ ];
47670
47577
  addEvent(ChartClass, 'afterGetAxes', onChartAfterGetAxes);
47671
47578
  wrapChartCreateAxis(ChartClass);
47672
47579
  }
@@ -47815,7 +47722,6 @@
47815
47722
  * @private
47816
47723
  * @function Highcharts.colorPointMixin.setVisible
47817
47724
  * @param {boolean} visible
47818
- * @return {void}
47819
47725
  */
47820
47726
  function pointSetVisible(vis) {
47821
47727
  var point = this,
@@ -47835,7 +47741,6 @@
47835
47741
  * translation too
47836
47742
  * @private
47837
47743
  * @function Highcharts.colorSeriesMixin.translateColors
47838
- * @return {void}
47839
47744
  */
47840
47745
  function seriesTranslateColors() {
47841
47746
  var series = this,
@@ -48413,7 +48318,8 @@
48413
48318
  var _this = _super.call(this,
48414
48319
  chart,
48415
48320
  userOptions) || this;
48416
- _this.beforePadding = false; // Prevents unnecessary padding with `hc-more`
48321
+ // Prevents unnecessary padding with `hc-more`
48322
+ _this.beforePadding = false;
48417
48323
  _this.chart = void 0;
48418
48324
  _this.coll = 'colorAxis';
48419
48325
  _this.dataClasses = void 0;
@@ -48722,7 +48628,9 @@
48722
48628
  zIndex: 1
48723
48629
  }).add(item.legendGroup);
48724
48630
  // Set how much space this legend item takes up
48725
- axis.legendItemWidth = width + padding + (horiz ? itemDistance : labelPadding);
48631
+ axis.legendItemWidth = (width +
48632
+ padding +
48633
+ (horiz ? itemDistance : labelPadding));
48726
48634
  axis.legendItemHeight = height + padding + (horiz ? labelPadding : 0);
48727
48635
  };
48728
48636
  /**
@@ -48814,8 +48722,8 @@
48814
48722
  * @param {Highcharts.Point} [point]
48815
48723
  * The Point object if the crosshair snaps to points.
48816
48724
  *
48817
- * @fires Highcharts.ColorAxis#event:afterDrawCrosshair
48818
- * @fires Highcharts.ColorAxis#event:drawCrosshair
48725
+ * @emits Highcharts.ColorAxis#event:afterDrawCrosshair
48726
+ * @emits Highcharts.ColorAxis#event:drawCrosshair
48819
48727
  */
48820
48728
  ColorAxis.prototype.drawCrosshair = function (e, point) {
48821
48729
  var axis = this;
@@ -49329,6 +49237,7 @@
49329
49237
  var doc = H.doc;
49330
49238
  var addEvent = U.addEvent,
49331
49239
  extend = U.extend,
49240
+ isNumber = U.isNumber,
49332
49241
  merge = U.merge,
49333
49242
  objectEach = U.objectEach,
49334
49243
  pick = U.pick;
@@ -49492,8 +49401,8 @@
49492
49401
  this.unbindMouseWheel = this.unbindMouseWheel || addEvent(chart.container, doc.onwheel !== void 0 ? 'wheel' : // Newer Firefox
49493
49402
  doc.onmousewheel !== void 0 ? 'mousewheel' :
49494
49403
  'DOMMouseScroll', function (e) {
49495
- // Prevent scrolling when the pointer is over the element
49496
- // with that class, for example anotation popup #12100.
49404
+ // Prevent scrolling when the pointer is over the element with
49405
+ // that class, for example anotation popup #12100.
49497
49406
  if (!chart.pointer.inClass(e.target, 'highcharts-no-mousewheel')) {
49498
49407
  chart.pointer.onContainerMouseWheel(e);
49499
49408
  // Issue #5011, returning false from non-jQuery event does
@@ -49582,17 +49491,16 @@
49582
49491
  * Keep this chart position stationary if possible.
49583
49492
  *
49584
49493
  * @deprecated
49585
- * @return {void}
49586
49494
  */
49587
49495
  mapZoom: function (howMuch, xProjected, yProjected, chartX, chartY) {
49588
49496
  if (this.mapView) {
49589
- if (typeof howMuch === 'number') {
49497
+ if (isNumber(howMuch)) {
49590
49498
  // Compliance, mapView.zoomBy uses different values
49591
49499
  howMuch = Math.log(howMuch) / Math.log(0.5);
49592
49500
  }
49593
- this.mapView.zoomBy(howMuch, typeof xProjected === 'number' && typeof yProjected === 'number' ?
49501
+ this.mapView.zoomBy(howMuch, isNumber(xProjected) && isNumber(yProjected) ?
49594
49502
  this.mapView.projection.inverse([xProjected, yProjected]) :
49595
- void 0, typeof chartX === 'number' && typeof chartY === 'number' ?
49503
+ void 0, isNumber(chartX) && isNumber(chartY) ?
49596
49504
  [chartX, chartY] :
49597
49505
  void 0);
49598
49506
  }
@@ -49665,7 +49573,8 @@
49665
49573
  }, 50);
49666
49574
  }
49667
49575
  if (totalWheelDelta < 10 && chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop) && chart.mapView) {
49668
- chart.mapView.zoomBy((chart.options.mapNavigation.mouseWheelSensitivity - 1) * -delta, void 0, [e.chartX, e.chartY],
49576
+ chart.mapView.zoomBy((chart.options.mapNavigation.mouseWheelSensitivity -
49577
+ 1) * -delta, void 0, [e.chartX, e.chartY],
49669
49578
  // Delta less than 1 indicates stepless/trackpad zooming, avoid
49670
49579
  // animation delaying the zoom
49671
49580
  Math.abs(delta) < 1 ? false : void 0);
@@ -49693,7 +49602,7 @@
49693
49602
  });
49694
49603
 
49695
49604
  });
49696
- _registerModule(_modules, 'Series/ColorMapComposition.js', [_modules['Core/Utilities.js']], function (U) {
49605
+ _registerModule(_modules, 'Series/ColorMapMixin.js', [_modules['Core/Globals.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (H, Point, U) {
49697
49606
  /* *
49698
49607
  *
49699
49608
  * (c) 2010-2021 Torstein Honsi
@@ -49703,79 +49612,66 @@
49703
49612
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
49704
49613
  *
49705
49614
  * */
49615
+ // @todo cleanup & reduction - consider composition
49616
+ var noop = H.noop,
49617
+ seriesTypes = H.seriesTypes;
49706
49618
  var defined = U.defined,
49707
- wrap = U.wrap;
49619
+ addEvent = U.addEvent;
49620
+ // Move points to the top of the z-index order when hovered
49621
+ addEvent(Point, 'afterSetState', function (e) {
49622
+ var point = this;
49623
+ if (point.moveToTopOnHover && point.graphic) {
49624
+ point.graphic.attr({
49625
+ zIndex: e && e.state === 'hover' ? 1 : 0
49626
+ });
49627
+ }
49628
+ });
49629
+ /**
49630
+ * Mixin for maps and heatmaps
49631
+ *
49632
+ * @private
49633
+ * @mixin Highcharts.colorMapPointMixin
49634
+ */
49635
+ var PointMixin = {
49636
+ dataLabelOnNull: true,
49637
+ moveToTopOnHover: true,
49638
+ /* eslint-disable valid-jsdoc */
49639
+ /**
49640
+ * Color points have a value option that determines whether or not it is
49641
+ * a null point
49642
+ * @private
49643
+ */
49644
+ isValid: function () {
49645
+ // undefined is allowed
49646
+ return (this.value !== null &&
49647
+ this.value !== Infinity &&
49648
+ this.value !== -Infinity);
49649
+ }
49650
+ /* eslint-enable valid-jsdoc */
49651
+ };
49708
49652
  /**
49709
49653
  * @private
49710
49654
  * @mixin Highcharts.colorMapSeriesMixin
49711
49655
  */
49712
- var colorMapSeriesMixinOld = {
49656
+ var SeriesMixin = {
49713
49657
  pointArrayMap: ['value'],
49714
49658
  axisTypes: ['xAxis', 'yAxis', 'colorAxis'],
49715
49659
  trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
49716
- // getSymbol: noop,
49660
+ getSymbol: noop,
49717
49661
  parallelArrays: ['x', 'y', 'value'],
49718
- colorKey: 'value'
49719
- // pointAttribs: seriesTypes.column.prototype.pointAttribs,
49662
+ colorKey: 'value',
49663
+ pointAttribs: seriesTypes.column.prototype.pointAttribs,
49720
49664
  /* eslint-disable valid-jsdoc */
49721
- };
49722
- /* *
49723
- *
49724
- * Composition
49725
- *
49726
- * */
49727
- var ColorMapComposition;
49728
- (function (ColorMapComposition) {
49729
- ColorMapComposition.colorMapSeriesMixin = colorMapSeriesMixinOld;
49730
- /* *
49731
- *
49732
- * Constants
49733
- *
49734
- * */
49735
- var composedClasses = [];
49736
- /* *
49737
- *
49738
- * Functions
49739
- *
49740
- * */
49741
- /* eslint-disable valid-jsdoc */
49742
- /**
49743
- * @private
49744
- */
49745
- function compose(SeriesClass, PointClass) {
49746
- if (PointClass && composedClasses.indexOf(PointClass) === -1) {
49747
- composedClasses.push(PointClass);
49748
- var pointProto = PointClass.prototype;
49749
- pointProto.dataLabelOnNull = true;
49750
- pointProto.moveToTopOnHover = true;
49751
- pointProto.isValid = pointIsValid;
49752
- }
49753
- if (composedClasses.indexOf(SeriesClass) === -1) {
49754
- composedClasses.push(SeriesClass);
49755
- var seriesProto = SeriesClass.prototype;
49756
- seriesProto.colorAttribs = seriesColorAttribs;
49757
- wrap(seriesProto, 'pointAttribs', seriesWrapPointAttribs);
49758
- }
49759
- return SeriesClass;
49760
- }
49761
- ColorMapComposition.compose = compose;
49762
- /**
49763
- * Color points have a value option that determines whether or not it is
49764
- * a null point
49765
- * @private
49766
- */
49767
- function pointIsValid() {
49768
- // undefined is allowed
49769
- return (this.value !== null &&
49770
- this.value !== Infinity &&
49771
- this.value !== -Infinity);
49772
- }
49773
- /**
49774
- * Get the color attibutes to apply on the graphic
49775
- * @private
49776
- */
49777
- function seriesColorAttribs(point) {
49778
- var ret = {};
49665
+ /**
49666
+ * Get the color attibutes to apply on the graphic
49667
+ * @private
49668
+ * @function Highcharts.colorMapSeriesMixin.colorAttribs
49669
+ * @param {Highcharts.Point} point
49670
+ * @return {Highcharts.SVGAttributes}
49671
+ * The SVG attributes
49672
+ */
49673
+ colorAttribs: function (point) {
49674
+ var ret = {};
49779
49675
  if (defined(point.color) &&
49780
49676
  (!point.state || point.state === 'normal') // #15746
49781
49677
  ) {
@@ -49783,28 +49679,13 @@
49783
49679
  }
49784
49680
  return ret;
49785
49681
  }
49786
- ColorMapComposition.seriesColorAttribs = seriesColorAttribs;
49787
- /**
49788
- * Move points to the top of the z-index order when hovered
49789
- * @private
49790
- */
49791
- function seriesWrapPointAttribs(original, point, state) {
49792
- var attribs = original.call(this,
49793
- point,
49794
- state);
49795
- if (point.moveToTopOnHover) {
49796
- attribs.zIndex = state === 'hover' ? 1 : 0;
49797
- }
49798
- return attribs;
49799
- }
49800
- })(ColorMapComposition || (ColorMapComposition = {}));
49801
- /* *
49802
- *
49803
- * Default Export
49804
- *
49805
- * */
49682
+ };
49683
+ var ColorMapMixin = {
49684
+ PointMixin: PointMixin,
49685
+ SeriesMixin: SeriesMixin
49686
+ };
49806
49687
 
49807
- return ColorMapComposition;
49688
+ return ColorMapMixin;
49808
49689
  });
49809
49690
  _registerModule(_modules, 'Maps/MapViewOptionsDefault.js', [], function () {
49810
49691
  /* *
@@ -49884,7 +49765,7 @@
49884
49765
  * Americas centered (`[90, 0]`),
49885
49766
  or to rotate an orthographic projection.
49886
49767
  *
49887
- * @type {object}
49768
+ * @type {Object}
49888
49769
  * @sample {highmaps} maps/demo/topojson-projection
49889
49770
  * Orthographic projection
49890
49771
  */
@@ -51143,15 +51024,35 @@
51143
51024
  // top side
51144
51025
  ['L', x + w - rTopRight, y],
51145
51026
  // top right corner
51146
- ['C', x + w - rTopRight / 2, y, x + w, y + rTopRight / 2, x + w, y + rTopRight],
51027
+ [
51028
+ 'C',
51029
+ x + w - rTopRight / 2,
51030
+ y,
51031
+ x + w,
51032
+ y + rTopRight / 2,
51033
+ x + w,
51034
+ y + rTopRight
51035
+ ],
51147
51036
  // right side
51148
51037
  ['L', x + w, y + h - rBottomRight],
51149
51038
  // bottom right corner
51150
- ['C', x + w, y + h - rBottomRight / 2, x + w - rBottomRight / 2, y + h, x + w - rBottomRight, y + h],
51039
+ [
51040
+ 'C', x + w, y + h - rBottomRight / 2,
51041
+ x + w - rBottomRight / 2, y + h,
51042
+ x + w - rBottomRight, y + h
51043
+ ],
51151
51044
  // bottom side
51152
51045
  ['L', x + rBottomLeft, y + h],
51153
51046
  // bottom left corner
51154
- ['C', x + rBottomLeft / 2, y + h, x, y + h - rBottomLeft / 2, x, y + h - rBottomLeft],
51047
+ [
51048
+ 'C',
51049
+ x + rBottomLeft / 2,
51050
+ y + h,
51051
+ x,
51052
+ y + h - rBottomLeft / 2,
51053
+ x,
51054
+ y + h - rBottomLeft
51055
+ ],
51155
51056
  // left side
51156
51057
  ['L', x, y + rTopLeft],
51157
51058
  // top left corner
@@ -51232,10 +51133,9 @@
51232
51133
  * Function to run when the chart has loaded and and all external
51233
51134
  * images are loaded.
51234
51135
  *
51235
- * @return {void}
51236
51136
  *
51237
- * @fires Highcharts.MapChart#event:init
51238
- * @fires Highcharts.MapChart#event:afterInit
51137
+ * @emits Highcharts.MapChart#event:init
51138
+ * @emits Highcharts.MapChart#event:afterInit
51239
51139
  */
51240
51140
  MapChart.prototype.init = function (userOptions, callback) {
51241
51141
  // Initialize the MapView after initialization, but before firstRender
@@ -51321,6 +51221,7 @@
51321
51221
  * @param {string|Array<string|number>} path
51322
51222
  *
51323
51223
  * @return {Highcharts.SVGPathArray}
51224
+ * Splitted SVG path
51324
51225
  */
51325
51226
  function splitPath(path) {
51326
51227
  var arr;
@@ -51356,7 +51257,7 @@
51356
51257
 
51357
51258
  return MapChart;
51358
51259
  });
51359
- _registerModule(_modules, 'Series/Map/MapPoint.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
51260
+ _registerModule(_modules, 'Series/Map/MapPoint.js', [_modules['Series/ColorMapMixin.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (ColorMapMixin, SeriesRegistry, U) {
51360
51261
  /* *
51361
51262
  *
51362
51263
  * (c) 2010-2021 Torstein Honsi
@@ -51488,6 +51389,11 @@
51488
51389
  };
51489
51390
  return MapPoint;
51490
51391
  }(ScatterSeries.prototype.pointClass));
51392
+ extend(MapPoint.prototype, {
51393
+ dataLabelOnNull: ColorMapMixin.PointMixin.dataLabelOnNull,
51394
+ isValid: ColorMapMixin.PointMixin.isValid,
51395
+ moveToTopOnHover: ColorMapMixin.PointMixin.moveToTopOnHover
51396
+ });
51491
51397
  /* *
51492
51398
  *
51493
51399
  * Default Export
@@ -51496,7 +51402,7 @@
51496
51402
 
51497
51403
  return MapPoint;
51498
51404
  });
51499
- _registerModule(_modules, 'Series/Map/MapSeries.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Series/ColorMapComposition.js'], _modules['Series/CenteredUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Chart/MapChart.js'], _modules['Series/Map/MapPoint.js'], _modules['Maps/MapView.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (A, ColorMapComposition, CU, H, LegendSymbol, MapChart, MapPoint, MapView, Series, SeriesRegistry, SVGRenderer, U) {
51405
+ _registerModule(_modules, 'Series/Map/MapSeries.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Series/ColorMapMixin.js'], _modules['Series/CenteredUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Chart/MapChart.js'], _modules['Series/Map/MapPoint.js'], _modules['Maps/MapView.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (A, ColorMapMixin, CU, H, LegendSymbol, MapChart, MapPoint, MapView, Series, SeriesRegistry, SVGRenderer, U) {
51500
51406
  /* *
51501
51407
  *
51502
51408
  * (c) 2010-2021 Torstein Honsi
@@ -51523,7 +51429,6 @@
51523
51429
  };
51524
51430
  })();
51525
51431
  var animObject = A.animObject;
51526
- var colorMapSeriesMixin = ColorMapComposition.colorMapSeriesMixin;
51527
51432
  var noop = H.noop;
51528
51433
  var maps = MapChart.maps,
51529
51434
  splitPath = MapChart.splitPath;
@@ -51762,24 +51667,24 @@
51762
51667
  var strokeWidth_1 = pick(this.options[(this.pointAttrToOptions &&
51763
51668
  this.pointAttrToOptions['stroke-width']) || 'borderWidth'], 1 // Styled mode
51764
51669
  );
51765
- /* Animate or move to the new zoom level. In order to prevent
51766
- flickering as the different transform components are set out
51767
- of sync (#5991), we run a fake animator attribute and set
51768
- scale and translation synchronously in the same step.
51670
+ /*
51671
+ Animate or move to the new zoom level. In order to prevent
51672
+ flickering as the different transform components are set out of sync
51673
+ (#5991), we run a fake animator attribute and set scale and
51674
+ translation synchronously in the same step.
51769
51675
 
51770
- A possible improvement to the API would be to handle this in
51771
- the renderer or animation engine itself, to ensure that when
51772
- we are animating multiple properties, we make sure that each
51773
- step for each property is performed in the same step. Also,
51774
- for symbols and for transform properties, it should induce a
51775
- single updateTransform and symbolAttr call. */
51676
+ A possible improvement to the API would be to handle this in the
51677
+ renderer or animation engine itself, to ensure that when we are
51678
+ animating multiple properties, we make sure that each step for each
51679
+ property is performed in the same step. Also, for symbols and for
51680
+ transform properties, it should induce a single updateTransform and
51681
+ symbolAttr call.
51682
+ */
51776
51683
  var scale_1 = svgTransform.scaleX;
51777
51684
  var flipFactor_1 = svgTransform.scaleY > 0 ? 1 : -1;
51778
51685
  var transformGroup_1 = this.transformGroup;
51779
51686
  if (renderer.globalAnimation && chart.hasRendered) {
51780
- var startTranslateX_1 = Number(transformGroup_1.attr('translateX'));
51781
- var startTranslateY_1 = Number(transformGroup_1.attr('translateY'));
51782
- var startScale_1 = Number(transformGroup_1.attr('scaleX'));
51687
+ var startTranslateX_1 = Number(transformGroup_1.attr('translateX')), startTranslateY_1 = Number(transformGroup_1.attr('translateY')), startScale_1 = Number(transformGroup_1.attr('scaleX'));
51783
51688
  var step = function (now,
51784
51689
  fx) {
51785
51690
  var scaleStep = startScale_1 +
@@ -51858,7 +51763,11 @@
51858
51763
  if (validBounds_1) {
51859
51764
  // Cache point bounding box for use to position data
51860
51765
  // labels, bubbles etc
51861
- var propMiddleX = properties && properties['hc-middle-x'], midX = (x1_1 + (x2_1 - x1_1) * pick(point.middleX, isNumber(propMiddleX) ? propMiddleX : 0.5)), propMiddleY = properties && properties['hc-middle-y'];
51766
+ var propMiddleX = (properties && properties['hc-middle-x']),
51767
+ midX = (x1_1 + (x2_1 - x1_1) * pick(point.middleX,
51768
+ isNumber(propMiddleX) ?
51769
+ propMiddleX : 0.5)),
51770
+ propMiddleY = (properties && properties['hc-middle-y']);
51862
51771
  var middleYFraction = pick(point.middleY,
51863
51772
  isNumber(propMiddleY) ? propMiddleY : 0.5);
51864
51773
  // No geographic geometry, only path given => flip
@@ -52109,8 +52018,8 @@
52109
52018
  y = _a[1];
52110
52019
  // When dealing with unprojected coordinates, y axis is flipped.
52111
52020
  var flipFactor = mapView.projection.hasCoordinates ? -1 : 1;
52112
- var translateX = this.chart.plotWidth / 2 - x * scale;
52113
- var translateY = this.chart.plotHeight / 2 - y * scale * flipFactor;
52021
+ var translateX = this.chart.plotWidth / 2 - x * scale,
52022
+ translateY = this.chart.plotHeight / 2 - y * scale * flipFactor;
52114
52023
  svgTransform = {
52115
52024
  scaleX: scale,
52116
52025
  scaleY: scale * flipFactor,
@@ -52385,8 +52294,9 @@
52385
52294
  }(ScatterSeries));
52386
52295
  extend(MapSeries.prototype, {
52387
52296
  type: 'map',
52388
- axisTypes: ['colorAxis'],
52389
- colorKey: 'value',
52297
+ axisTypes: ColorMapMixin.SeriesMixin.axisTypes,
52298
+ colorAttribs: ColorMapMixin.SeriesMixin.colorAttribs,
52299
+ colorKey: ColorMapMixin.SeriesMixin.colorKey,
52390
52300
  // When tooltip is not shared, this series (and derivatives) requires
52391
52301
  // direct touch/hover. KD-tree does not apply.
52392
52302
  directTouch: true,
@@ -52399,19 +52309,18 @@
52399
52309
  forceDL: true,
52400
52310
  getCenter: CU.getCenter,
52401
52311
  getExtremesFromAll: true,
52402
- getSymbol: noop,
52312
+ getSymbol: ColorMapMixin.SeriesMixin.getSymbol,
52403
52313
  isCartesian: false,
52404
- parallelArrays: colorMapSeriesMixin.parallelArrays,
52405
- pointArrayMap: colorMapSeriesMixin.pointArrayMap,
52314
+ parallelArrays: ColorMapMixin.SeriesMixin.parallelArrays,
52315
+ pointArrayMap: ColorMapMixin.SeriesMixin.pointArrayMap,
52406
52316
  pointClass: MapPoint,
52407
52317
  // X axis and Y axis must have same translation slope
52408
52318
  preserveAspectRatio: true,
52409
52319
  searchPoint: noop,
52410
- trackerGroups: colorMapSeriesMixin.trackerGroups,
52320
+ trackerGroups: ColorMapMixin.SeriesMixin.trackerGroups,
52411
52321
  // Get axis extremes from paths, not values
52412
52322
  useMapGeometry: true
52413
52323
  });
52414
- ColorMapComposition.compose(MapSeries, MapPoint);
52415
52324
  SeriesRegistry.registerSeriesType('map', MapSeries);
52416
52325
  /* *
52417
52326
  *
@@ -52714,12 +52623,8 @@
52714
52623
  /* eslint-disable valid-jsdoc */
52715
52624
  /**
52716
52625
  * Get presentational attributes
52717
- *
52718
52626
  * @private
52719
52627
  * @function Highcharts.seriesTypes.mapline#pointAttribs
52720
- * @param {Highcharts.Point} point
52721
- * @param {string} state
52722
- * @return {Highcharts.SVGAttributes}
52723
52628
  */
52724
52629
  MapLineSeries.prototype.pointAttribs = function (point, state) {
52725
52630
  var attr = MapSeries.prototype.pointAttribs.call(this,
@@ -53596,7 +53501,6 @@
53596
53501
  * Bubble legend options
53597
53502
  * @param {Highcharts.Legend} legend
53598
53503
  * Legend
53599
- * @return {void}
53600
53504
  */
53601
53505
  BubbleLegendItem.prototype.init = function (options, legend) {
53602
53506
  this.options = options;
@@ -53609,9 +53513,8 @@
53609
53513
  *
53610
53514
  * @private
53611
53515
  * @function Highcharts.BubbleLegend#addToLegend
53612
- * @param {Array<(Highcharts.Point|Highcharts.Series)>}
53613
- * All legend items
53614
- * @return {void}
53516
+ * @param {Array<(Highcharts.Point|Highcharts.Series)>} items
53517
+ * All legend items
53615
53518
  */
53616
53519
  BubbleLegendItem.prototype.addToLegend = function (items) {
53617
53520
  // Insert bubbleLegend into legend items
@@ -53625,7 +53528,6 @@
53625
53528
  * @function Highcharts.BubbleLegend#drawLegendSymbol
53626
53529
  * @param {Highcharts.Legend} legend
53627
53530
  * Legend instance
53628
- * @return {void}
53629
53531
  */
53630
53532
  BubbleLegendItem.prototype.drawLegendSymbol = function (legend) {
53631
53533
  var chart = this.chart,
@@ -53668,7 +53570,6 @@
53668
53570
  *
53669
53571
  * @private
53670
53572
  * @function Highcharts.BubbleLegend#setOptions
53671
- * @return {void}
53672
53573
  */
53673
53574
  BubbleLegendItem.prototype.setOptions = function () {
53674
53575
  var ranges = this.ranges,
@@ -53741,7 +53642,6 @@
53741
53642
  *
53742
53643
  * @private
53743
53644
  * @function Highcharts.BubbleLegend#render
53744
- * @return {void}
53745
53645
  */
53746
53646
  BubbleLegendItem.prototype.render = function () {
53747
53647
  var renderer = this.chart.renderer,
@@ -53776,7 +53676,6 @@
53776
53676
  * @function Highcharts.BubbleLegend#renderRange
53777
53677
  * @param {Highcharts.LegendBubbleLegendRangesOptions} range
53778
53678
  * Range options
53779
- * @return {void}
53780
53679
  */
53781
53680
  BubbleLegendItem.prototype.renderRange = function (range) {
53782
53681
  var mainRange = this.ranges[0],
@@ -53858,7 +53757,6 @@
53858
53757
  *
53859
53758
  * @private
53860
53759
  * @function Highcharts.BubbleLegend#getMaxLabelSize
53861
- * @return {Highcharts.BBoxObject}
53862
53760
  */
53863
53761
  BubbleLegendItem.prototype.getMaxLabelSize = function () {
53864
53762
  var labels = this.symbols.labels;
@@ -53901,7 +53799,6 @@
53901
53799
  *
53902
53800
  * @private
53903
53801
  * @function Highcharts.BubbleLegend#hideOverlappingLabels
53904
- * @return {void}
53905
53802
  */
53906
53803
  BubbleLegendItem.prototype.hideOverlappingLabels = function () {
53907
53804
  var chart = this.chart,
@@ -54022,7 +53919,6 @@
54022
53919
  * @function Highcharts.BubbleLegend#updateRanges
54023
53920
  * @param {number} min
54024
53921
  * @param {number} max
54025
- * @return {void}
54026
53922
  */
54027
53923
  BubbleLegendItem.prototype.updateRanges = function (min, max) {
54028
53924
  var bubbleLegendOptions = this.legend.options.bubbleLegend;
@@ -54037,7 +53933,6 @@
54037
53933
  *
54038
53934
  * @private
54039
53935
  * @function Highcharts.BubbleLegend#correctSizes
54040
- * @return {void}
54041
53936
  */
54042
53937
  BubbleLegendItem.prototype.correctSizes = function () {
54043
53938
  var legend = this.legend,
@@ -55543,6 +55438,7 @@
55543
55438
  })();
55544
55439
  var ScatterPoint = SeriesRegistry.seriesTypes.scatter.prototype.pointClass;
55545
55440
  var clamp = U.clamp,
55441
+ defined = U.defined,
55546
55442
  extend = U.extend,
55547
55443
  pick = U.pick;
55548
55444
  /* *
@@ -55581,7 +55477,8 @@
55581
55477
  var point = _super.prototype.applyOptions.call(this,
55582
55478
  options,
55583
55479
  x);
55584
- point.formatPrefix = point.isNull || point.value === null ? 'null' : 'point';
55480
+ point.formatPrefix = point.isNull || point.value === null ?
55481
+ 'null' : 'point';
55585
55482
  return point;
55586
55483
  };
55587
55484
  HeatmapPoint.prototype.getCellAttributes = function () {
@@ -55620,22 +55517,22 @@
55620
55517
  false,
55621
55518
  true) || 0)), -yAxis.len, 2 * yAxis.len)
55622
55519
  };
55520
+ var dimensions = [['width', 'x'], ['height', 'y']];
55623
55521
  // Handle marker's fixed width, and height values including border
55624
55522
  // and pointPadding while calculating cell attributes.
55625
- [['width', 'x'], ['height', 'y']].forEach(function (dimension) {
55523
+ dimensions.forEach(function (dimension) {
55626
55524
  var prop = dimension[0],
55627
55525
  direction = dimension[1];
55628
55526
  var start = direction + '1', end = direction + '2';
55629
55527
  var side = Math.abs(cellAttr[start] - cellAttr[end]),
55630
55528
  borderWidth = markerOptions &&
55631
55529
  markerOptions.lineWidth || 0,
55632
- plotPos = Math.abs(cellAttr[start] + cellAttr[end]) / 2;
55633
- if (markerOptions[prop] &&
55634
- markerOptions[prop] < side) {
55635
- cellAttr[start] = plotPos - (markerOptions[prop] / 2) -
55636
- (borderWidth / 2);
55637
- cellAttr[end] = plotPos + (markerOptions[prop] / 2) +
55638
- (borderWidth / 2);
55530
+ plotPos = Math.abs(cellAttr[start] + cellAttr[end]) / 2,
55531
+ widthOrHeight = markerOptions && markerOptions[prop];
55532
+ if (defined(widthOrHeight) && widthOrHeight < side) {
55533
+ var halfCellSize = widthOrHeight / 2 + borderWidth / 2;
55534
+ cellAttr[start] = plotPos - halfCellSize;
55535
+ cellAttr[end] = plotPos + halfCellSize;
55639
55536
  }
55640
55537
  // Handle pointPadding
55641
55538
  if (pointPadding) {
@@ -55696,7 +55593,7 @@
55696
55593
 
55697
55594
  return HeatmapPoint;
55698
55595
  });
55699
- _registerModule(_modules, 'Series/Heatmap/HeatmapSeries.js', [_modules['Core/Color/Color.js'], _modules['Series/ColorMapComposition.js'], _modules['Series/Heatmap/HeatmapPoint.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (Color, ColorMapComposition, HeatmapPoint, LegendSymbol, SeriesRegistry, SVGRenderer, U) {
55596
+ _registerModule(_modules, 'Series/Heatmap/HeatmapSeries.js', [_modules['Core/Color/Color.js'], _modules['Series/ColorMapMixin.js'], _modules['Series/Heatmap/HeatmapPoint.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (Color, ColorMapMixin, HeatmapPoint, LegendSymbol, SeriesRegistry, SVGRenderer, U) {
55700
55597
  /* *
55701
55598
  *
55702
55599
  * (c) 2010-2021 Torstein Honsi
@@ -55722,7 +55619,6 @@
55722
55619
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
55723
55620
  };
55724
55621
  })();
55725
- var colorMapSeriesMixin = ColorMapComposition.colorMapSeriesMixin;
55726
55622
  var Series = SeriesRegistry.series,
55727
55623
  _a = SeriesRegistry.seriesTypes,
55728
55624
  ColumnSeries = _a.column,
@@ -55881,10 +55777,10 @@
55881
55777
  y: point.plotY
55882
55778
  };
55883
55779
  }
55884
- // Setting width and height attributes on image does not affect
55885
- // on its dimensions.
55780
+ // Setting width and height attributes on image does not affect on its
55781
+ // dimensions.
55886
55782
  if (state) {
55887
- seriesStateOptions = seriesMarkerOptions.states[state] || {};
55783
+ seriesStateOptions = (seriesMarkerOptions.states[state] || {});
55888
55784
  pointStateOptions = pointMarkerOptions.states &&
55889
55785
  pointMarkerOptions.states[state] || {};
55890
55786
  [['width', 'x'], ['height', 'y']].forEach(function (dimension) {
@@ -56287,8 +56183,9 @@
56287
56183
  * @private
56288
56184
  */
56289
56185
  alignDataLabel: ColumnSeries.prototype.alignDataLabel,
56290
- axisTypes: colorMapSeriesMixin.axisTypes,
56291
- colorKey: 'value',
56186
+ axisTypes: ColorMapMixin.SeriesMixin.axisTypes,
56187
+ colorAttribs: ColorMapMixin.SeriesMixin.colorAttribs,
56188
+ colorKey: ColorMapMixin.SeriesMixin.colorKey,
56292
56189
  directTouch: true,
56293
56190
  /**
56294
56191
  * @private
@@ -56296,12 +56193,11 @@
56296
56193
  drawLegendSymbol: LegendSymbol.drawRectangle,
56297
56194
  getExtremesFromAll: true,
56298
56195
  getSymbol: Series.prototype.getSymbol,
56299
- parallelArrays: colorMapSeriesMixin.parallelArrays,
56196
+ parallelArrays: ColorMapMixin.SeriesMixin.parallelArrays,
56300
56197
  pointArrayMap: ['y', 'value'],
56301
56198
  pointClass: HeatmapPoint,
56302
- trackerGroups: colorMapSeriesMixin.trackerGroups
56199
+ trackerGroups: ColorMapMixin.SeriesMixin.trackerGroups
56303
56200
  });
56304
- ColorMapComposition.compose(HeatmapSeries);
56305
56201
  SeriesRegistry.registerSeriesType('heatmap', HeatmapSeries);
56306
56202
  /* *
56307
56203
  *
@@ -56879,9 +56775,9 @@
56879
56775
  * In case of loading the library from a `script` tag,
56880
56776
  * this option is not needed, it will be loaded from there by default.
56881
56777
  *
56882
- * @type {function}
56883
- * @product highmaps
56884
- * @apioption chart.proj4
56778
+ * @type {Function}
56779
+ * @product highmaps
56780
+ * @apioption chart.proj4
56885
56781
  */
56886
56782
  var proj4 = this.options.chart.proj4 || win.proj4;
56887
56783
  if (!proj4) {