highcharts 9.2.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 (896) hide show
  1. package/README.md +13 -6
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +48 -8
  4. package/css/annotations/popup.scss +70 -22
  5. package/css/highcharts.css +46 -1
  6. package/css/highcharts.scss +40 -0
  7. package/css/stocktools/gui.css +1 -1
  8. package/css/themes/dark-unica.css +46 -1
  9. package/css/themes/grid-light.css +46 -1
  10. package/css/themes/sand-signika.css +46 -1
  11. package/es-modules/Accessibility/A11yI18n.js +269 -224
  12. package/es-modules/Accessibility/Accessibility.js +244 -129
  13. package/es-modules/Accessibility/AccessibilityComponent.js +78 -313
  14. package/es-modules/Accessibility/Components/AnnotationsA11y.js +19 -5
  15. package/es-modules/Accessibility/Components/ContainerComponent.js +53 -28
  16. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +178 -120
  17. package/es-modules/Accessibility/Components/LegendComponent.js +251 -129
  18. package/es-modules/Accessibility/Components/MenuComponent.js +239 -154
  19. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +172 -93
  20. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +161 -115
  21. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +138 -69
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +67 -28
  23. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +48 -56
  24. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +387 -343
  25. package/es-modules/Accessibility/Components/ZoomComponent.js +156 -70
  26. package/es-modules/Accessibility/FocusBorder.js +192 -152
  27. package/es-modules/Accessibility/HighContrastMode.js +79 -66
  28. package/es-modules/Accessibility/HighContrastTheme.js +10 -0
  29. package/es-modules/Accessibility/KeyboardNavigation.js +151 -75
  30. package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
  31. package/es-modules/Accessibility/Options/DeprecatedOptions.js +21 -4
  32. package/es-modules/Accessibility/Options/LangOptions.js +4 -5
  33. package/es-modules/Accessibility/Options/Options.js +32 -17
  34. package/es-modules/Accessibility/ProxyElement.js +218 -0
  35. package/es-modules/Accessibility/ProxyProvider.js +302 -0
  36. package/es-modules/Accessibility/Utils/Announcer.js +17 -10
  37. package/es-modules/Accessibility/Utils/ChartUtilities.js +55 -45
  38. package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
  39. package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
  40. package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -42
  41. package/es-modules/Core/Animation/Fx.js +5 -14
  42. package/es-modules/Core/Axis/Axis.js +77 -96
  43. package/es-modules/Core/Axis/Axis3D.js +10 -4
  44. package/es-modules/Core/Axis/AxisDefaults.js +35 -24
  45. package/es-modules/Core/Axis/BrokenAxis.js +17 -11
  46. package/es-modules/Core/Axis/Color/ColorAxis.js +7 -4
  47. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +55 -5
  48. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
  49. package/es-modules/Core/Axis/DateTimeAxis.js +3 -14
  50. package/es-modules/Core/Axis/GridAxis.js +26 -16
  51. package/es-modules/Core/Axis/NavigatorAxis.js +0 -5
  52. package/es-modules/Core/Axis/OrdinalAxis.js +88 -92
  53. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
  54. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +0 -5
  55. package/es-modules/Core/Axis/RadialAxis.js +7 -28
  56. package/es-modules/Core/Axis/ScrollbarAxis.js +27 -12
  57. package/es-modules/Core/Axis/StackingAxis.js +2 -1
  58. package/es-modules/Core/Axis/Tick.js +2 -4
  59. package/es-modules/Core/Axis/TreeGridAxis.js +28 -19
  60. package/es-modules/Core/Axis/TreeGridTick.js +5 -3
  61. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  62. package/es-modules/Core/Axis/ZAxis.js +1 -1
  63. package/es-modules/Core/Chart/Chart.js +44 -47
  64. package/es-modules/Core/Chart/Chart3D.js +23 -10
  65. package/es-modules/Core/Chart/ChartDefaults.js +3 -4
  66. package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
  67. package/es-modules/Core/Chart/GanttChart.js +4 -4
  68. package/es-modules/Core/Chart/MapChart.js +13 -25
  69. package/es-modules/Core/Chart/StockChart.js +13 -316
  70. package/es-modules/Core/Color/Palettes.js +22 -0
  71. package/es-modules/Core/DefaultOptions.js +22 -19
  72. package/es-modules/Core/Foundation.js +39 -31
  73. package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
  74. package/es-modules/Core/Globals.js +1 -1
  75. package/es-modules/Core/HttpUtilities.js +8 -7
  76. package/es-modules/Core/Legend/Legend.js +19 -16
  77. package/es-modules/Core/Navigator.js +41 -30
  78. package/es-modules/Core/Pointer.js +52 -45
  79. package/es-modules/Core/Renderer/HTML/AST.js +29 -14
  80. package/es-modules/Core/Renderer/HTML/HTMLElement.js +27 -20
  81. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +8 -6
  82. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  83. package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -20
  84. package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
  85. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +25 -29
  86. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
  87. package/es-modules/Core/Renderer/SVG/TextBuilder.js +18 -12
  88. package/es-modules/Core/Responsive.js +2 -3
  89. package/es-modules/Core/Scrollbar.js +14 -12
  90. package/es-modules/Core/ScrollbarDefaults.js +10 -9
  91. package/es-modules/Core/Series/DataLabel.js +19 -15
  92. package/es-modules/Core/Series/Point.js +22 -19
  93. package/es-modules/Core/Series/Series.js +200 -235
  94. package/es-modules/Core/Series/SeriesDefaults.js +8 -8
  95. package/es-modules/Core/Series/SeriesRegistry.js +1 -2
  96. package/es-modules/Core/Time.js +14 -11
  97. package/es-modules/Core/Tooltip.js +63 -53
  98. package/es-modules/Core/Utilities.js +20 -24
  99. package/es-modules/Data/DataConverter.js +483 -0
  100. package/es-modules/Data/DataPromise.js +252 -0
  101. package/es-modules/Data/DataSeriesConverter.js +207 -0
  102. package/es-modules/Data/DataTable.js +1205 -0
  103. package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
  104. package/es-modules/Data/Modifiers/DataModifier.js +303 -0
  105. package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
  106. package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
  107. package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
  108. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
  109. package/es-modules/Data/Modifiers/SortModifier.js +249 -0
  110. package/es-modules/Data/Parsers/CSVParser.js +400 -0
  111. package/es-modules/Data/Parsers/DataParser.js +101 -0
  112. package/es-modules/Data/Parsers/GoogleSheetsParser.js +223 -0
  113. package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
  114. package/es-modules/Data/Stores/CSVStore.js +317 -0
  115. package/es-modules/Data/Stores/DataStore.js +276 -0
  116. package/es-modules/Data/Stores/GoogleSheetsStore.js +169 -0
  117. package/es-modules/Data/Stores/HTMLTableStore.js +353 -0
  118. package/es-modules/Extensions/Annotations/Annotations.js +69 -18
  119. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -3
  120. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
  121. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
  122. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +1 -1
  123. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +3 -6
  124. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -2
  125. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +1 -1
  126. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +13 -4
  127. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +0 -1
  128. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +5 -4
  129. package/es-modules/Extensions/Annotations/NavigationBindings.js +120 -53
  130. package/es-modules/Extensions/Annotations/Popup.js +494 -148
  131. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
  132. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +5 -3
  133. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
  134. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
  135. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
  136. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
  137. package/es-modules/Extensions/Annotations/Types/Measure.js +29 -19
  138. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +7 -6
  139. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +211 -0
  140. package/es-modules/Extensions/Annotations/Types/Tunnel.js +13 -10
  141. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
  142. package/es-modules/Extensions/Boost/BoostOptions.js +2 -2
  143. package/es-modules/Extensions/Boost/BoostOverrides.js +6 -10
  144. package/es-modules/Extensions/Boost/BoostUtils.js +0 -6
  145. package/es-modules/Extensions/Boost/WGLRenderer.js +16 -12
  146. package/es-modules/Extensions/Boost/WGLShader.js +13 -11
  147. package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
  148. package/es-modules/Extensions/BoostCanvas.js +1 -2
  149. package/es-modules/Extensions/CurrentDateIndication.js +2 -3
  150. package/es-modules/Extensions/Data.js +77 -115
  151. package/es-modules/Extensions/DataGrouping.js +54 -32
  152. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  153. package/es-modules/Extensions/DownloadURL.js +2 -2
  154. package/es-modules/Extensions/DragPanes.js +1 -2
  155. package/es-modules/Extensions/DraggablePoints.js +7 -8
  156. package/es-modules/Extensions/Drilldown.js +11 -7
  157. package/es-modules/Extensions/ExportData.js +6 -5
  158. package/es-modules/Extensions/Exporting/Exporting.js +35 -48
  159. package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
  160. package/es-modules/Extensions/FullScreen.js +4 -3
  161. package/es-modules/Extensions/GeoJSON.js +42 -66
  162. package/es-modules/Extensions/MarkerClusters.js +118 -98
  163. package/es-modules/Extensions/Math3D.js +4 -4
  164. package/es-modules/Extensions/NoDataToDisplay.js +1 -2
  165. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +33 -33
  166. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  167. package/es-modules/Extensions/Oldie/Oldie.js +14 -79
  168. package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
  169. package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
  170. package/es-modules/Extensions/Pane.js +11 -12
  171. package/es-modules/Extensions/ParallelCoordinates.js +5 -3
  172. package/es-modules/Extensions/PatternFill.js +17 -11
  173. package/es-modules/Extensions/Polar.js +7 -4
  174. package/es-modules/Extensions/PriceIndication.js +2 -1
  175. package/es-modules/Extensions/RangeSelector.js +22 -59
  176. package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
  177. package/es-modules/Extensions/SeriesLabel.js +1 -1
  178. package/es-modules/Extensions/Sonification/ChartSonify.js +279 -663
  179. package/es-modules/Extensions/Sonification/Earcon.js +136 -102
  180. package/es-modules/Extensions/Sonification/Instrument.js +493 -426
  181. package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
  182. package/es-modules/Extensions/Sonification/Options.js +10 -0
  183. package/es-modules/Extensions/Sonification/PointSonify.js +207 -152
  184. package/es-modules/Extensions/Sonification/SeriesSonify.js +474 -0
  185. package/es-modules/Extensions/Sonification/SignalHandler.js +122 -0
  186. package/es-modules/Extensions/Sonification/Sonification.js +27 -53
  187. package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +70 -88
  188. package/es-modules/Extensions/Sonification/Timeline.js +250 -567
  189. package/es-modules/Extensions/Sonification/TimelineEvent.js +157 -0
  190. package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  191. package/es-modules/Extensions/Stacking.js +5 -23
  192. package/es-modules/Extensions/Themes/BrandDark.js +293 -0
  193. package/es-modules/Extensions/Themes/BrandLight.js +259 -0
  194. package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
  195. package/es-modules/Extensions/Themes/Grid.js +4 -2
  196. package/es-modules/Extensions/Themes/GridLight.js +4 -2
  197. package/es-modules/Gantt/Connection.js +2 -2
  198. package/es-modules/Gantt/Pathfinder.js +6 -5
  199. package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
  200. package/es-modules/Maps/MapNavigation.js +30 -68
  201. package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
  202. package/es-modules/Maps/MapPointer.js +8 -5
  203. package/es-modules/Maps/MapSymbols.js +23 -3
  204. package/es-modules/Maps/MapView.js +450 -0
  205. package/es-modules/Maps/MapViewOptionsDefault.js +97 -0
  206. package/es-modules/Maps/Projection.js +436 -0
  207. package/es-modules/Maps/ProjectionDefinition.js +9 -0
  208. package/es-modules/Maps/Projections/EqualEarth.js +42 -0
  209. package/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
  210. package/es-modules/Maps/Projections/Miller.js +16 -0
  211. package/es-modules/Maps/Projections/Orthographic.js +26 -0
  212. package/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
  213. package/es-modules/Maps/Projections/WebMercator.js +24 -0
  214. package/es-modules/Series/Area/AreaSeries.js +13 -13
  215. package/es-modules/Series/Area3DSeries.js +4 -2
  216. package/es-modules/Series/AreaRange/AreaRangeSeries.js +28 -17
  217. package/es-modules/Series/Bellcurve/BellcurveSeries.js +4 -9
  218. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
  219. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
  220. package/es-modules/Series/Bubble/BubbleLegendItem.js +5 -15
  221. package/es-modules/Series/Bubble/BubblePoint.js +5 -0
  222. package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
  223. package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -19
  224. package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
  225. package/es-modules/{Mixins/ColorMapSeries.js → Series/ColorMapMixin.js} +10 -8
  226. package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
  227. package/es-modules/Series/Column/ColumnSeries.js +19 -18
  228. package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
  229. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +11 -8
  230. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  231. package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
  232. package/es-modules/Series/DataModifyComposition.js +539 -0
  233. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
  234. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
  235. package/es-modules/Series/DerivedComposition.js +137 -0
  236. package/es-modules/Series/DrawPointComposition.js +111 -0
  237. package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
  238. package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -6
  239. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
  240. package/es-modules/Series/Flags/FlagsSeries.js +18 -25
  241. package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
  242. package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
  243. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
  244. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
  245. package/es-modules/Series/Gantt/GanttPoint.js +1 -1
  246. package/es-modules/Series/Gantt/GanttSeries.js +3 -3
  247. package/es-modules/Series/Gauge/GaugePoint.js +1 -1
  248. package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
  249. package/es-modules/Series/HLC/HLCPoint.js +55 -0
  250. package/es-modules/Series/HLC/HLCSeries.js +378 -0
  251. package/es-modules/Series/Heatmap/HeatmapPoint.js +13 -14
  252. package/es-modules/Series/Heatmap/HeatmapSeries.js +24 -12
  253. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +10 -9
  254. package/es-modules/Series/Histogram/HistogramSeries.js +7 -11
  255. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
  256. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +28 -30
  257. package/es-modules/Series/Item/ItemSeries.js +4 -5
  258. package/es-modules/Series/Line/LineSeries.js +1 -2
  259. package/es-modules/Series/Map/MapPoint.js +27 -14
  260. package/es-modules/Series/Map/MapSeries.js +283 -322
  261. package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
  262. package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
  263. package/es-modules/Series/MapLine/MapLineSeries.js +2 -4
  264. package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
  265. package/es-modules/Series/MapPoint/MapPointSeries.js +99 -14
  266. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
  267. package/es-modules/Series/Networkgraph/Integrations.js +8 -22
  268. package/es-modules/Series/Networkgraph/Networkgraph.js +6 -10
  269. package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
  270. package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +78 -30
  271. package/es-modules/Series/OHLC/OHLCPoint.js +2 -7
  272. package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
  273. package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
  274. package/es-modules/Series/Organization/OrganizationSeries.js +6 -5
  275. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
  276. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  277. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +48 -10
  278. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
  279. package/es-modules/Series/Pie/PieDataLabel.js +1 -2
  280. package/es-modules/Series/Pie/PiePoint.js +2 -2
  281. package/es-modules/Series/Pie/PieSeries.js +7 -8
  282. package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
  283. package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
  284. package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  285. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
  286. package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
  287. package/es-modules/Series/Sankey/SankeySeries.js +92 -22
  288. package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
  289. package/es-modules/Series/Spline/SplineSeries.js +0 -8
  290. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
  291. package/es-modules/Series/Sunburst/SunburstSeries.js +6 -6
  292. package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
  293. package/es-modules/Series/Tilemap/TilemapPoint.js +2 -5
  294. package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
  295. package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
  296. package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +88 -78
  297. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  298. package/es-modules/Series/Treemap/TreemapSeries.js +22 -25
  299. package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
  300. package/es-modules/Series/Venn/VennPoint.js +16 -7
  301. package/es-modules/Series/Venn/VennSeries.js +11 -17
  302. package/es-modules/Series/Venn/VennUtils.js +551 -439
  303. package/es-modules/Series/Waterfall/WaterfallSeries.js +8 -6
  304. package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
  305. package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
  306. package/es-modules/Series/Wordcloud/WordcloudSeries.js +26 -22
  307. package/es-modules/Series/Wordcloud/WordcloudUtils.js +669 -484
  308. package/es-modules/Series/XRange/XRangePoint.js +7 -12
  309. package/es-modules/Series/XRange/XRangeSeries.js +4 -20
  310. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +15 -6
  311. package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
  312. package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
  313. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +4 -6
  314. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
  315. package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  316. package/es-modules/Stock/Indicators/BB/BBIndicator.js +39 -11
  317. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
  318. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
  319. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
  320. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +28 -16
  321. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +18 -11
  322. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
  323. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
  324. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +23 -9
  325. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +16 -19
  326. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +32 -14
  327. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
  328. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
  329. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
  330. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +2 -3
  331. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +294 -0
  332. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
  333. package/es-modules/Stock/Indicators/PC/PCIndicator.js +25 -13
  334. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
  335. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
  336. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
  337. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
  338. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +32 -50
  339. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
  340. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -9
  341. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
  342. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
  343. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
  344. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +26 -10
  345. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
  346. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
  347. package/es-modules/Stock/StockToolsBindings.js +156 -47
  348. package/es-modules/Stock/StockToolsGui.js +442 -37
  349. package/es-modules/masters/highcharts-3d.src.js +1 -1
  350. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  351. package/es-modules/masters/highcharts-more.src.js +1 -1
  352. package/es-modules/masters/highcharts.src.js +1 -1
  353. package/es-modules/masters/highmaps.src.js +1 -1
  354. package/es-modules/masters/highstock.src.js +1 -1
  355. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  356. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  357. package/es-modules/masters/indicators/ao.src.js +1 -1
  358. package/es-modules/masters/indicators/apo.src.js +1 -1
  359. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  360. package/es-modules/masters/indicators/aroon.src.js +1 -1
  361. package/es-modules/masters/indicators/atr.src.js +1 -1
  362. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  363. package/es-modules/masters/indicators/cci.src.js +1 -1
  364. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  365. package/es-modules/masters/indicators/cmf.src.js +1 -1
  366. package/es-modules/masters/indicators/cmo.src.js +1 -1
  367. package/es-modules/masters/indicators/dema.src.js +1 -1
  368. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  369. package/es-modules/masters/indicators/dmi.src.js +1 -1
  370. package/es-modules/masters/indicators/dpo.src.js +1 -1
  371. package/es-modules/masters/indicators/ema.src.js +4 -10
  372. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  373. package/es-modules/masters/indicators/indicators-all.src.js +2 -2
  374. package/es-modules/masters/indicators/indicators.src.js +2 -1
  375. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  376. package/es-modules/masters/indicators/klinger.src.js +1 -1
  377. package/es-modules/masters/indicators/macd.src.js +1 -1
  378. package/es-modules/masters/indicators/mfi.src.js +1 -1
  379. package/es-modules/masters/indicators/momentum.src.js +1 -1
  380. package/es-modules/masters/indicators/natr.src.js +1 -1
  381. package/es-modules/masters/indicators/obv.src.js +1 -1
  382. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  383. package/es-modules/masters/indicators/ppo.src.js +1 -1
  384. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  385. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  386. package/es-modules/masters/indicators/psar.src.js +1 -1
  387. package/es-modules/masters/indicators/regressions.src.js +1 -1
  388. package/es-modules/masters/indicators/roc.src.js +1 -1
  389. package/es-modules/masters/indicators/rsi.src.js +1 -1
  390. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  391. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  392. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  393. package/es-modules/masters/indicators/tema.src.js +1 -1
  394. package/es-modules/masters/indicators/trendline.src.js +1 -1
  395. package/es-modules/masters/indicators/trix.src.js +1 -1
  396. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  397. package/es-modules/masters/indicators/vwap.src.js +1 -1
  398. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  399. package/es-modules/masters/indicators/wma.src.js +1 -1
  400. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  401. package/es-modules/masters/modules/accessibility.src.js +16 -2
  402. package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
  403. package/es-modules/masters/modules/annotations.src.js +1 -1
  404. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  405. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  406. package/es-modules/masters/modules/boost.src.js +1 -1
  407. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  408. package/es-modules/masters/modules/bullet.src.js +1 -1
  409. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  410. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  411. package/es-modules/masters/modules/cylinder.src.js +1 -1
  412. package/es-modules/masters/modules/data.src.js +6 -3
  413. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  414. package/es-modules/masters/modules/debugger.src.js +1 -1
  415. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  416. package/es-modules/masters/modules/dotplot.src.js +1 -1
  417. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  418. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  419. package/es-modules/masters/modules/drilldown.src.js +1 -1
  420. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  421. package/es-modules/masters/modules/export-data.src.js +1 -1
  422. package/es-modules/masters/modules/exporting.src.js +1 -1
  423. package/es-modules/masters/modules/full-screen.src.js +1 -1
  424. package/es-modules/masters/modules/funnel.src.js +1 -1
  425. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  426. package/es-modules/masters/modules/gantt.src.js +1 -1
  427. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  428. package/es-modules/masters/modules/heatmap.src.js +1 -2
  429. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  430. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  431. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  432. package/es-modules/masters/modules/item-series.src.js +1 -1
  433. package/es-modules/masters/modules/lollipop.src.js +1 -1
  434. package/es-modules/masters/modules/map.src.js +1 -3
  435. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  436. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  437. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  438. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  439. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  440. package/es-modules/masters/modules/oldie.src.js +1 -1
  441. package/es-modules/masters/modules/organization.src.js +1 -1
  442. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  443. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  444. package/es-modules/masters/modules/pareto.src.js +1 -1
  445. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  446. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  447. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  448. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  449. package/es-modules/masters/modules/sankey.src.js +1 -1
  450. package/es-modules/masters/modules/series-label.src.js +1 -1
  451. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  452. package/es-modules/masters/modules/sonification.src.js +33 -2
  453. package/es-modules/masters/modules/static-scale.src.js +1 -1
  454. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  455. package/es-modules/masters/modules/stock.src.js +4 -1
  456. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  457. package/es-modules/masters/modules/sunburst.src.js +1 -1
  458. package/es-modules/masters/modules/tilemap.src.js +1 -1
  459. package/es-modules/masters/modules/timeline.src.js +1 -1
  460. package/es-modules/masters/modules/treegrid.src.js +1 -1
  461. package/es-modules/masters/modules/treemap.src.js +1 -1
  462. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  463. package/es-modules/masters/modules/variwide.src.js +1 -1
  464. package/es-modules/masters/modules/vector.src.js +1 -1
  465. package/es-modules/masters/modules/venn.src.js +1 -1
  466. package/es-modules/masters/modules/windbarb.src.js +1 -1
  467. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  468. package/es-modules/masters/modules/xrange.src.js +1 -1
  469. package/es-modules/masters/themes/avocado.src.js +1 -1
  470. package/es-modules/masters/themes/brand-dark.src.js +14 -0
  471. package/es-modules/masters/themes/brand-light.src.js +14 -0
  472. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  473. package/es-modules/masters/themes/dark-green.src.js +1 -1
  474. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  475. package/es-modules/masters/themes/gray.src.js +1 -1
  476. package/es-modules/masters/themes/grid-light.src.js +1 -1
  477. package/es-modules/masters/themes/grid.src.js +1 -1
  478. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  479. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  480. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  481. package/es-modules/masters/themes/skies.src.js +1 -1
  482. package/es-modules/masters/themes/sunset.src.js +1 -1
  483. package/highcharts-3d.js +1 -1
  484. package/highcharts-3d.js.map +1 -1
  485. package/highcharts-3d.src.js +65 -35
  486. package/highcharts-gantt.js +800 -803
  487. package/highcharts-gantt.js.map +1 -1
  488. package/highcharts-gantt.src.js +1359 -1429
  489. package/highcharts-more.js +194 -193
  490. package/highcharts-more.js.map +1 -1
  491. package/highcharts-more.src.js +280 -222
  492. package/highcharts.d.ts +10228 -768
  493. package/highcharts.js +585 -588
  494. package/highcharts.js.map +1 -1
  495. package/highcharts.src.d.ts +10228 -768
  496. package/highcharts.src.js +995 -1066
  497. package/highmaps.js +727 -707
  498. package/highmaps.js.map +1 -1
  499. package/highmaps.src.js +3243 -2135
  500. package/highstock.js +788 -783
  501. package/highstock.js.map +1 -1
  502. package/highstock.src.js +2492 -1981
  503. package/indicators/acceleration-bands.d.ts +17 -1
  504. package/indicators/acceleration-bands.js +11 -9
  505. package/indicators/acceleration-bands.js.map +1 -1
  506. package/indicators/acceleration-bands.src.d.ts +17 -1
  507. package/indicators/acceleration-bands.src.js +238 -112
  508. package/indicators/accumulation-distribution.js +1 -1
  509. package/indicators/accumulation-distribution.src.js +1 -1
  510. package/indicators/ao.js +6 -6
  511. package/indicators/ao.js.map +1 -1
  512. package/indicators/ao.src.js +4 -4
  513. package/indicators/apo.js +5 -6
  514. package/indicators/apo.js.map +1 -1
  515. package/indicators/apo.src.js +16 -84
  516. package/indicators/aroon-oscillator.d.ts +17 -1
  517. package/indicators/aroon-oscillator.js +10 -9
  518. package/indicators/aroon-oscillator.js.map +1 -1
  519. package/indicators/aroon-oscillator.src.d.ts +17 -1
  520. package/indicators/aroon-oscillator.src.js +230 -177
  521. package/indicators/aroon.d.ts +17 -1
  522. package/indicators/aroon.js +11 -9
  523. package/indicators/aroon.js.map +1 -1
  524. package/indicators/aroon.src.d.ts +17 -1
  525. package/indicators/aroon.src.js +227 -112
  526. package/indicators/atr.js +1 -1
  527. package/indicators/atr.src.js +1 -1
  528. package/indicators/bollinger-bands.d.ts +17 -1
  529. package/indicators/bollinger-bands.js +12 -9
  530. package/indicators/bollinger-bands.js.map +1 -1
  531. package/indicators/bollinger-bands.src.d.ts +17 -1
  532. package/indicators/bollinger-bands.src.js +262 -117
  533. package/indicators/cci.js +1 -1
  534. package/indicators/cci.src.js +1 -1
  535. package/indicators/chaikin.js +8 -9
  536. package/indicators/chaikin.js.map +1 -1
  537. package/indicators/chaikin.src.js +8 -76
  538. package/indicators/cmf.js +1 -1
  539. package/indicators/cmf.js.map +1 -1
  540. package/indicators/cmf.src.js +36 -16
  541. package/indicators/cmo.js +1 -1
  542. package/indicators/cmo.src.js +1 -1
  543. package/indicators/dema.js +5 -6
  544. package/indicators/dema.js.map +1 -1
  545. package/indicators/dema.src.js +3 -75
  546. package/indicators/disparity-index.js +6 -7
  547. package/indicators/disparity-index.js.map +1 -1
  548. package/indicators/disparity-index.src.js +20 -74
  549. package/indicators/dmi.js +12 -11
  550. package/indicators/dmi.js.map +1 -1
  551. package/indicators/dmi.src.js +252 -121
  552. package/indicators/dpo.js +1 -1
  553. package/indicators/dpo.src.js +1 -1
  554. package/indicators/ema.js +1 -13
  555. package/indicators/ema.js.map +1 -1
  556. package/indicators/ema.src.js +7 -188
  557. package/indicators/ichimoku-kinko-hyo.js +1 -1
  558. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  559. package/indicators/ichimoku-kinko-hyo.src.js +7 -7
  560. package/indicators/indicators-all.d.ts +17 -1
  561. package/indicators/indicators-all.js +198 -203
  562. package/indicators/indicators-all.js.map +1 -1
  563. package/indicators/indicators-all.src.d.ts +17 -1
  564. package/indicators/indicators-all.src.js +892 -777
  565. package/indicators/indicators.js +12 -12
  566. package/indicators/indicators.js.map +1 -1
  567. package/indicators/indicators.src.js +213 -144
  568. package/indicators/keltner-channels.d.ts +17 -1
  569. package/indicators/keltner-channels.js +11 -10
  570. package/indicators/keltner-channels.js.map +1 -1
  571. package/indicators/keltner-channels.src.d.ts +17 -1
  572. package/indicators/keltner-channels.src.js +246 -118
  573. package/indicators/klinger.js +14 -13
  574. package/indicators/klinger.js.map +1 -1
  575. package/indicators/klinger.src.js +239 -187
  576. package/indicators/macd.js +2 -2
  577. package/indicators/macd.js.map +1 -1
  578. package/indicators/macd.src.js +3 -4
  579. package/indicators/mfi.js +1 -1
  580. package/indicators/mfi.src.js +1 -1
  581. package/indicators/momentum.js +1 -1
  582. package/indicators/momentum.src.js +1 -1
  583. package/indicators/natr.js +3 -3
  584. package/indicators/natr.js.map +1 -1
  585. package/indicators/natr.src.js +2 -4
  586. package/indicators/obv.js +1 -1
  587. package/indicators/obv.src.js +1 -1
  588. package/indicators/pivot-points.js +1 -1
  589. package/indicators/pivot-points.js.map +1 -1
  590. package/indicators/pivot-points.src.js +3 -2
  591. package/indicators/ppo.js +5 -6
  592. package/indicators/ppo.js.map +1 -1
  593. package/indicators/ppo.src.js +3 -75
  594. package/indicators/price-channel.d.ts +17 -1
  595. package/indicators/price-channel.js +11 -9
  596. package/indicators/price-channel.js.map +1 -1
  597. package/indicators/price-channel.src.d.ts +17 -1
  598. package/indicators/price-channel.src.js +288 -168
  599. package/indicators/price-envelopes.js +1 -1
  600. package/indicators/price-envelopes.src.js +1 -1
  601. package/indicators/psar.js +1 -1
  602. package/indicators/psar.src.js +1 -1
  603. package/indicators/regressions.js +1 -1
  604. package/indicators/regressions.js.map +1 -1
  605. package/indicators/regressions.src.js +39 -21
  606. package/indicators/roc.js +1 -1
  607. package/indicators/roc.src.js +1 -1
  608. package/indicators/rsi.js +1 -1
  609. package/indicators/rsi.js.map +1 -1
  610. package/indicators/rsi.src.js +3 -2
  611. package/indicators/slow-stochastic.js +5 -6
  612. package/indicators/slow-stochastic.js.map +1 -1
  613. package/indicators/slow-stochastic.src.js +2 -72
  614. package/indicators/stochastic.d.ts +17 -1
  615. package/indicators/stochastic.js +12 -10
  616. package/indicators/stochastic.js.map +1 -1
  617. package/indicators/stochastic.src.d.ts +17 -1
  618. package/indicators/stochastic.src.js +282 -165
  619. package/indicators/supertrend.js +10 -10
  620. package/indicators/supertrend.js.map +1 -1
  621. package/indicators/supertrend.src.js +6 -7
  622. package/indicators/tema.js +6 -7
  623. package/indicators/tema.js.map +1 -1
  624. package/indicators/tema.src.js +28 -75
  625. package/indicators/trendline.js +1 -1
  626. package/indicators/trendline.src.js +1 -1
  627. package/indicators/trix.js +4 -5
  628. package/indicators/trix.js.map +1 -1
  629. package/indicators/trix.src.js +8 -76
  630. package/indicators/volume-by-price.js +16 -16
  631. package/indicators/volume-by-price.js.map +1 -1
  632. package/indicators/volume-by-price.src.js +27 -10
  633. package/indicators/vwap.js +1 -1
  634. package/indicators/vwap.js.map +1 -1
  635. package/indicators/vwap.src.js +20 -8
  636. package/indicators/williams-r.js +5 -6
  637. package/indicators/williams-r.js.map +1 -1
  638. package/indicators/williams-r.src.js +41 -51
  639. package/indicators/wma.js +1 -1
  640. package/indicators/wma.src.js +1 -1
  641. package/indicators/zigzag.js +1 -1
  642. package/indicators/zigzag.src.js +1 -1
  643. package/modules/accessibility.d.ts +0 -30
  644. package/modules/accessibility.js +240 -216
  645. package/modules/accessibility.js.map +1 -1
  646. package/modules/accessibility.src.d.ts +0 -30
  647. package/modules/accessibility.src.js +7807 -6400
  648. package/modules/annotations-advanced.d.ts +30 -0
  649. package/modules/annotations-advanced.js +192 -165
  650. package/modules/annotations-advanced.js.map +1 -1
  651. package/modules/annotations-advanced.src.d.ts +30 -0
  652. package/modules/annotations-advanced.src.js +1716 -416
  653. package/modules/annotations.js +125 -110
  654. package/modules/annotations.js.map +1 -1
  655. package/modules/annotations.src.js +1059 -304
  656. package/modules/arrow-symbols.js +1 -1
  657. package/modules/arrow-symbols.src.js +1 -1
  658. package/modules/boost-canvas.js +15 -15
  659. package/modules/boost-canvas.js.map +1 -1
  660. package/modules/boost-canvas.src.js +3 -3
  661. package/modules/boost.js +79 -79
  662. package/modules/boost.js.map +1 -1
  663. package/modules/boost.src.js +42 -51
  664. package/modules/broken-axis.js +1 -1
  665. package/modules/broken-axis.js.map +1 -1
  666. package/modules/broken-axis.src.js +18 -12
  667. package/modules/bullet.js +1 -1
  668. package/modules/bullet.src.js +1 -1
  669. package/modules/coloraxis.js +24 -24
  670. package/modules/coloraxis.js.map +1 -1
  671. package/modules/coloraxis.src.js +77 -103
  672. package/modules/current-date-indicator.js +4 -4
  673. package/modules/current-date-indicator.js.map +1 -1
  674. package/modules/current-date-indicator.src.js +4 -4
  675. package/modules/cylinder.js +1 -1
  676. package/modules/cylinder.js.map +1 -1
  677. package/modules/cylinder.src.js +37 -5
  678. package/modules/data.d.ts +6 -6
  679. package/modules/data.js +32 -32
  680. package/modules/data.js.map +1 -1
  681. package/modules/data.src.d.ts +6 -6
  682. package/modules/data.src.js +94 -140
  683. package/modules/datagrouping.js +20 -20
  684. package/modules/datagrouping.js.map +1 -1
  685. package/modules/datagrouping.src.js +56 -33
  686. package/modules/debugger.js +3 -3
  687. package/modules/debugger.js.map +1 -1
  688. package/modules/debugger.src.js +3 -3
  689. package/modules/dependency-wheel.js +11 -11
  690. package/modules/dependency-wheel.js.map +1 -1
  691. package/modules/dependency-wheel.src.js +5 -8
  692. package/modules/dotplot.js +1 -1
  693. package/modules/dotplot.src.js +1 -1
  694. package/modules/drag-panes.js +8 -8
  695. package/modules/drag-panes.js.map +1 -1
  696. package/modules/drag-panes.src.js +3 -3
  697. package/modules/draggable-points.js +1 -1
  698. package/modules/draggable-points.js.map +1 -1
  699. package/modules/draggable-points.src.js +8 -9
  700. package/modules/drilldown.js +24 -24
  701. package/modules/drilldown.js.map +1 -1
  702. package/modules/drilldown.src.js +13 -8
  703. package/modules/dumbbell.js +17 -17
  704. package/modules/dumbbell.js.map +1 -1
  705. package/modules/dumbbell.src.js +4 -8
  706. package/modules/export-data.js +19 -19
  707. package/modules/export-data.js.map +1 -1
  708. package/modules/export-data.src.js +9 -8
  709. package/modules/exporting.js +39 -38
  710. package/modules/exporting.js.map +1 -1
  711. package/modules/exporting.src.js +134 -116
  712. package/modules/full-screen.js +1 -1
  713. package/modules/full-screen.js.map +1 -1
  714. package/modules/full-screen.src.js +5 -4
  715. package/modules/funnel.js +12 -12
  716. package/modules/funnel.js.map +1 -1
  717. package/modules/funnel.src.js +9 -6
  718. package/modules/funnel3d.js +1 -1
  719. package/modules/funnel3d.js.map +1 -1
  720. package/modules/funnel3d.src.js +17 -10
  721. package/modules/gantt.js +217 -218
  722. package/modules/gantt.js.map +1 -1
  723. package/modules/gantt.src.js +364 -363
  724. package/modules/grid-axis.js +1 -1
  725. package/modules/grid-axis.js.map +1 -1
  726. package/modules/grid-axis.src.js +27 -19
  727. package/modules/heatmap.js +39 -39
  728. package/modules/heatmap.js.map +1 -1
  729. package/modules/heatmap.src.js +132 -141
  730. package/modules/heikinashi.js +1 -1
  731. package/modules/heikinashi.js.map +1 -1
  732. package/modules/heikinashi.src.js +12 -10
  733. package/modules/histogram-bellcurve.js +13 -13
  734. package/modules/histogram-bellcurve.js.map +1 -1
  735. package/modules/histogram-bellcurve.src.js +97 -91
  736. package/modules/hollowcandlestick.js +9 -9
  737. package/modules/hollowcandlestick.js.map +1 -1
  738. package/modules/hollowcandlestick.src.js +31 -35
  739. package/modules/item-series.js +6 -6
  740. package/modules/item-series.js.map +1 -1
  741. package/modules/item-series.src.js +6 -6
  742. package/modules/lollipop.js +1 -1
  743. package/modules/lollipop.src.js +1 -1
  744. package/modules/map.d.ts +138 -14
  745. package/modules/map.js +144 -122
  746. package/modules/map.js.map +1 -1
  747. package/modules/map.src.d.ts +138 -14
  748. package/modules/map.src.js +2253 -1074
  749. package/modules/marker-clusters.js +36 -36
  750. package/modules/marker-clusters.js.map +1 -1
  751. package/modules/marker-clusters.src.js +176 -143
  752. package/modules/networkgraph.d.ts +12 -1
  753. package/modules/networkgraph.js +49 -49
  754. package/modules/networkgraph.js.map +1 -1
  755. package/modules/networkgraph.src.d.ts +12 -1
  756. package/modules/networkgraph.src.js +103 -78
  757. package/modules/no-data-to-display.js +5 -5
  758. package/modules/no-data-to-display.js.map +1 -1
  759. package/modules/no-data-to-display.src.js +3 -3
  760. package/modules/offline-exporting.js +18 -17
  761. package/modules/offline-exporting.js.map +1 -1
  762. package/modules/offline-exporting.src.js +39 -44
  763. package/modules/oldie-polyfills.js +1 -1
  764. package/modules/oldie-polyfills.src.js +1 -1
  765. package/modules/oldie.js +26 -26
  766. package/modules/oldie.js.map +1 -1
  767. package/modules/oldie.src.js +21 -81
  768. package/modules/organization.js +13 -13
  769. package/modules/organization.js.map +1 -1
  770. package/modules/organization.src.js +8 -6
  771. package/modules/overlapping-datalabels.js +1 -1
  772. package/modules/overlapping-datalabels.src.js +1 -1
  773. package/modules/parallel-coordinates.js +1 -1
  774. package/modules/parallel-coordinates.js.map +1 -1
  775. package/modules/parallel-coordinates.src.js +6 -4
  776. package/modules/pareto.js +7 -7
  777. package/modules/pareto.js.map +1 -1
  778. package/modules/pareto.src.js +89 -78
  779. package/modules/pathfinder.js +1 -1
  780. package/modules/pathfinder.js.map +1 -1
  781. package/modules/pathfinder.src.js +21 -20
  782. package/modules/pattern-fill.js +1 -1
  783. package/modules/pattern-fill.js.map +1 -1
  784. package/modules/pattern-fill.src.js +18 -12
  785. package/modules/price-indicator.js +1 -1
  786. package/modules/price-indicator.js.map +1 -1
  787. package/modules/price-indicator.src.js +3 -2
  788. package/modules/pyramid3d.js +1 -1
  789. package/modules/pyramid3d.js.map +1 -1
  790. package/modules/pyramid3d.src.js +3 -2
  791. package/modules/sankey.d.ts +12 -1
  792. package/modules/sankey.js +29 -29
  793. package/modules/sankey.js.map +1 -1
  794. package/modules/sankey.src.d.ts +12 -1
  795. package/modules/sankey.src.js +307 -181
  796. package/modules/series-label.js +1 -1
  797. package/modules/series-label.js.map +1 -1
  798. package/modules/series-label.src.js +2 -2
  799. package/modules/solid-gauge.js +1 -1
  800. package/modules/solid-gauge.js.map +1 -1
  801. package/modules/solid-gauge.src.js +17 -2
  802. package/modules/sonification.js +59 -55
  803. package/modules/sonification.js.map +1 -1
  804. package/modules/sonification.src.js +3093 -2594
  805. package/modules/static-scale.js +1 -1
  806. package/modules/static-scale.src.js +1 -1
  807. package/modules/stock-tools.js +178 -163
  808. package/modules/stock-tools.js.map +1 -1
  809. package/modules/stock-tools.src.js +1136 -229
  810. package/modules/stock.d.ts +39 -6
  811. package/modules/stock.js +204 -196
  812. package/modules/stock.js.map +1 -1
  813. package/modules/stock.src.d.ts +39 -6
  814. package/modules/stock.src.js +1822 -1240
  815. package/modules/streamgraph.js +1 -1
  816. package/modules/streamgraph.src.js +1 -1
  817. package/modules/sunburst.js +60 -60
  818. package/modules/sunburst.js.map +1 -1
  819. package/modules/sunburst.src.js +281 -248
  820. package/modules/tilemap.js +17 -17
  821. package/modules/tilemap.js.map +1 -1
  822. package/modules/tilemap.src.js +3 -13
  823. package/modules/timeline.js +18 -18
  824. package/modules/timeline.js.map +1 -1
  825. package/modules/timeline.src.js +5 -5
  826. package/modules/treegrid.js +56 -57
  827. package/modules/treegrid.js.map +1 -1
  828. package/modules/treegrid.src.js +201 -169
  829. package/modules/treemap.js +41 -41
  830. package/modules/treemap.js.map +1 -1
  831. package/modules/treemap.src.js +266 -232
  832. package/modules/variable-pie.js +1 -1
  833. package/modules/variable-pie.src.js +1 -1
  834. package/modules/variwide.js +1 -1
  835. package/modules/variwide.js.map +1 -1
  836. package/modules/variwide.src.js +7 -3
  837. package/modules/vector.js +1 -1
  838. package/modules/vector.src.js +1 -1
  839. package/modules/venn.js +31 -31
  840. package/modules/venn.js.map +1 -1
  841. package/modules/venn.src.js +740 -731
  842. package/modules/windbarb.js +15 -15
  843. package/modules/windbarb.js.map +1 -1
  844. package/modules/windbarb.src.js +90 -62
  845. package/modules/wordcloud.js +23 -24
  846. package/modules/wordcloud.js.map +1 -1
  847. package/modules/wordcloud.src.js +898 -954
  848. package/modules/xrange.js +2 -2
  849. package/modules/xrange.js.map +1 -1
  850. package/modules/xrange.src.js +12 -33
  851. package/package.json +1 -1
  852. package/themes/avocado.js +1 -1
  853. package/themes/avocado.src.js +1 -1
  854. package/themes/brand-dark.js +15 -0
  855. package/themes/brand-dark.js.map +1 -0
  856. package/themes/brand-dark.src.js +328 -0
  857. package/themes/brand-light.js +15 -0
  858. package/themes/brand-light.js.map +1 -0
  859. package/themes/brand-light.src.js +294 -0
  860. package/themes/dark-blue.js +1 -1
  861. package/themes/dark-blue.src.js +1 -1
  862. package/themes/dark-green.js +1 -1
  863. package/themes/dark-green.src.js +1 -1
  864. package/themes/dark-unica.js +1 -1
  865. package/themes/dark-unica.js.map +1 -1
  866. package/themes/dark-unica.src.js +5 -3
  867. package/themes/gray.js +1 -1
  868. package/themes/gray.src.js +1 -1
  869. package/themes/grid-light.js +1 -1
  870. package/themes/grid-light.js.map +1 -1
  871. package/themes/grid-light.src.js +5 -3
  872. package/themes/grid.js +1 -1
  873. package/themes/grid.js.map +1 -1
  874. package/themes/grid.src.js +5 -3
  875. package/themes/high-contrast-dark.js +1 -1
  876. package/themes/high-contrast-dark.src.js +1 -1
  877. package/themes/high-contrast-light.js +1 -1
  878. package/themes/high-contrast-light.src.js +1 -1
  879. package/themes/sand-signika.js +1 -1
  880. package/themes/sand-signika.src.js +1 -1
  881. package/themes/skies.js +1 -1
  882. package/themes/skies.src.js +1 -1
  883. package/themes/sunset.js +1 -1
  884. package/themes/sunset.src.js +1 -1
  885. package/es-modules/Core/Axis/MapAxis.js +0 -157
  886. package/es-modules/Core/Color/Palette.js +0 -82
  887. package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
  888. package/es-modules/Mixins/ColorSeries.js +0 -77
  889. package/es-modules/Mixins/DerivedSeries.js +0 -118
  890. package/es-modules/Mixins/DrawPoint.js +0 -81
  891. package/es-modules/Mixins/IndicatorRequired.js +0 -56
  892. package/es-modules/Mixins/MultipleLines.js +0 -181
  893. package/es-modules/Mixins/Navigation.js +0 -54
  894. package/es-modules/Mixins/NelderMead.js +0 -132
  895. package/es-modules/Mixins/Polygon.js +0 -259
  896. package/es-modules/Mixins/ReduceArray.js +0 -54
package/highcharts.src.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v9.2.1 (2021-08-19)
2
+ * @license Highcharts JS v9.3.2 (2021-11-29)
3
3
  *
4
4
  * (c) 2009-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.2.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
@@ -520,9 +520,13 @@
520
520
  return typeof obj !== 'undefined' && obj !== null;
521
521
  }
522
522
  /**
523
- * Set or get an attribute or an object of attributes. To use as a setter, pass
524
- * a key and a value, or let the second argument be a collection of keys and
525
- * values. To use as a getter, pass only a string as the second argument.
523
+ * Set or get an attribute or an object of attributes.
524
+ *
525
+ * To use as a setter, pass a key and a value, or let the second argument be a
526
+ * collection of keys and values. When using a collection, passing a value of
527
+ * `null` or `undefined` will remove the attribute.
528
+ *
529
+ * To use as a getter, pass only a string as the second argument.
526
530
  *
527
531
  * @function Highcharts.attr
528
532
  *
@@ -558,7 +562,12 @@
558
562
  }
559
563
  else {
560
564
  objectEach(prop, function (val, key) {
561
- elem.setAttribute(key, val);
565
+ if (defined(val)) {
566
+ elem.setAttribute(key, val);
567
+ }
568
+ else {
569
+ elem.removeAttribute(key);
570
+ }
562
571
  });
563
572
  }
564
573
  return ret;
@@ -752,7 +761,7 @@
752
761
  return obj;
753
762
  }
754
763
  /**
755
- * 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.
756
765
  *
757
766
  * @function Highcharts.pad
758
767
  *
@@ -929,8 +938,6 @@
929
938
  *
930
939
  * @param {Function} sortFunction
931
940
  * The function to sort it with, like with regular Array.prototype.sort.
932
- *
933
- * @return {void}
934
941
  */
935
942
  function stableSort(arr, sortFunction) {
936
943
  // @todo It seems like Chrome since v70 sorts in a stable way internally,
@@ -1023,7 +1030,7 @@
1023
1030
  });
1024
1031
  }
1025
1032
  /**
1026
- * Discard a HTML element by moving it to the bin and delete.
1033
+ * Discard a HTML element
1027
1034
  *
1028
1035
  * @function Highcharts.discardElement
1029
1036
  *
@@ -1031,17 +1038,10 @@
1031
1038
  * The HTML node to discard.
1032
1039
  */
1033
1040
  function discardElement(element) {
1034
- // create a garbage bin element, not part of the DOM
1035
- if (!garbageBin) {
1036
- garbageBin = createElement('div');
1041
+ if (element && element.parentElement) {
1042
+ element.parentElement.removeChild(element);
1037
1043
  }
1038
- // move the node and empty bin
1039
- if (element) {
1040
- garbageBin.appendChild(element);
1041
- }
1042
- garbageBin.innerHTML = '';
1043
1044
  }
1044
- var garbageBin;
1045
1045
  /**
1046
1046
  * Fix JS round off float errors.
1047
1047
  *
@@ -1057,7 +1057,8 @@
1057
1057
  * The corrected float number.
1058
1058
  */
1059
1059
  function correctFloat(num, prec) {
1060
- return parseFloat(num.toPrecision(prec || 14));
1060
+ // When the number is higher than 1e14 use the number (#16275)
1061
+ return num > 1e14 ? num : parseFloat(num.toPrecision(prec || 14));
1061
1062
  }
1062
1063
  /**
1063
1064
  * The time unit lookup
@@ -1239,7 +1240,7 @@
1239
1240
  var i;
1240
1241
  var length = arr.length;
1241
1242
  for (i = 0; i < length; i++) {
1242
- if (callback(arr[i], i)) { // eslint-disable-line callback-return
1243
+ if (callback(arr[i], i)) { // eslint-disable-line node/callback-return
1243
1244
  return arr[i];
1244
1245
  }
1245
1246
  }
@@ -1511,9 +1512,6 @@
1511
1512
  /* eslint-enable valid-jsdoc */
1512
1513
  /**
1513
1514
  * @private
1514
- * @param {string} type - event type
1515
- * @param {Highcharts.EventCallbackFunction<T>} fn - callback
1516
- * @return {void}
1517
1515
  */
1518
1516
  function removeOneEvent(type, fn) {
1519
1517
  var removeEventListener = (el.removeEventListener || H.removeEventListenerPolyfill);
@@ -1523,8 +1521,6 @@
1523
1521
  }
1524
1522
  /**
1525
1523
  * @private
1526
- * @param {any} eventCollection - collection
1527
- * @return {void}
1528
1524
  */
1529
1525
  function removeAllEvents(eventCollection) {
1530
1526
  var types,
@@ -2155,106 +2151,7 @@
2155
2151
 
2156
2152
  return Utilities;
2157
2153
  });
2158
- _registerModule(_modules, 'Core/Color/Palette.js', [], function () {
2159
- var palette = {
2160
- /**
2161
- * Colors for data series and points.
2162
- */
2163
- colors: [
2164
- '#7cb5ec',
2165
- '#434348',
2166
- '#90ed7d',
2167
- '#f7a35c',
2168
- '#8085e9',
2169
- '#f15c80',
2170
- '#e4d354',
2171
- '#2b908f',
2172
- '#f45b5b',
2173
- '#91e8e1'
2174
- ],
2175
- /**
2176
- * Chart background,
2177
- point stroke for markers and columns etc
2178
- */
2179
- backgroundColor: '#ffffff',
2180
- /**
2181
- * Strong text.
2182
- */
2183
- neutralColor100: '#000000',
2184
- /**
2185
- * Main text and some strokes.
2186
- */
2187
- neutralColor80: '#333333',
2188
- /**
2189
- * Axis labels,
2190
- axis title,
2191
- connector fallback.
2192
- */
2193
- neutralColor60: '#666666',
2194
- /**
2195
- * Credits text,
2196
- export menu stroke.
2197
- */
2198
- neutralColor40: '#999999',
2199
- /**
2200
- * Disabled texts,
2201
- button strokes,
2202
- crosshair etc.
2203
- */
2204
- neutralColor20: '#cccccc',
2205
- /**
2206
- * Grid lines etc.
2207
- */
2208
- neutralColor10: '#e6e6e6',
2209
- /**
2210
- * Minor grid lines etc.
2211
- */
2212
- neutralColor5: '#f2f2f2',
2213
- /**
2214
- * Tooltip backgroud,
2215
- button fills,
2216
- map null points.
2217
- */
2218
- neutralColor3: '#f7f7f7',
2219
- /**
2220
- * Drilldown clickable labels,
2221
- color axis max color.
2222
- */
2223
- highlightColor100: '#003399',
2224
- /**
2225
- * Selection marker,
2226
- menu hover,
2227
- button hover,
2228
- chart border,
2229
- navigator series.
2230
- */
2231
- highlightColor80: '#335cad',
2232
- /**
2233
- * Navigator mask fill.
2234
- */
2235
- highlightColor60: '#6685c2',
2236
- /**
2237
- * Ticks and axis line.
2238
- */
2239
- highlightColor20: '#ccd6eb',
2240
- /**
2241
- * Pressed button,
2242
- color axis min color.
2243
- */
2244
- highlightColor10: '#e6ebf5',
2245
- /**
2246
- * Positive indicator color
2247
- */
2248
- positiveColor: '#06b535',
2249
- /**
2250
- * Negative indicator color
2251
- */
2252
- negativeColor: '#f21313'
2253
- };
2254
-
2255
- return palette;
2256
- });
2257
- _registerModule(_modules, 'Core/Chart/ChartDefaults.js', [_modules['Core/Color/Palette.js']], function (Palette) {
2154
+ _registerModule(_modules, 'Core/Chart/ChartDefaults.js', [], function () {
2258
2155
  /* *
2259
2156
  *
2260
2157
  * (c) 2010-2021 Torstein Honsi
@@ -3240,7 +3137,7 @@
3240
3137
  *
3241
3138
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
3242
3139
  */
3243
- borderColor: Palette.highlightColor80,
3140
+ borderColor: "#335cad" /* highlightColor80 */,
3244
3141
  /**
3245
3142
  * The pixel width of the outer chart border.
3246
3143
  *
@@ -3279,7 +3176,7 @@
3279
3176
  *
3280
3177
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
3281
3178
  */
3282
- backgroundColor: Palette.backgroundColor,
3179
+ backgroundColor: "#ffffff" /* backgroundColor */,
3283
3180
  /**
3284
3181
  * The background color or gradient for the plot area.
3285
3182
  *
@@ -3336,7 +3233,7 @@
3336
3233
  *
3337
3234
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
3338
3235
  */
3339
- plotBorderColor: Palette.neutralColor20
3236
+ plotBorderColor: "#cccccc" /* neutralColor20 */
3340
3237
  };
3341
3238
  /* *
3342
3239
  *
@@ -3773,6 +3670,31 @@
3773
3670
 
3774
3671
  return Color;
3775
3672
  });
3673
+ _registerModule(_modules, 'Core/Color/Palettes.js', [], function () {
3674
+ /**
3675
+ * Series palettes for Highcharts. Series colors are defined in highcharts.scss.
3676
+ * **Do not edit this file!** This file is generated using the 'gulp palette' task.
3677
+ */
3678
+ var SeriesPalettes = {
3679
+ /**
3680
+ * Colors for data series and points.
3681
+ */
3682
+ colors: [
3683
+ '#7cb5ec',
3684
+ '#434348',
3685
+ '#90ed7d',
3686
+ '#f7a35c',
3687
+ '#8085e9',
3688
+ '#f15c80',
3689
+ '#e4d354',
3690
+ '#2b908f',
3691
+ '#f45b5b',
3692
+ '#91e8e1'
3693
+ ]
3694
+ };
3695
+
3696
+ return SeriesPalettes;
3697
+ });
3776
3698
  _registerModule(_modules, 'Core/Time.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
3777
3699
  /* *
3778
3700
  *
@@ -3948,7 +3870,8 @@
3948
3870
  // time
3949
3871
  if (unit === 'Milliseconds' ||
3950
3872
  unit === 'Seconds' ||
3951
- (unit === 'Minutes' && this.getTimezoneOffset(date) % 3600000 === 0) // #13961
3873
+ (unit === 'Minutes' &&
3874
+ this.getTimezoneOffset(date) % 3600000 === 0) // #13961
3952
3875
  ) {
3953
3876
  return date['setUTC' + unit](value);
3954
3877
  }
@@ -3965,8 +3888,8 @@
3965
3888
  }
3966
3889
  // UTC time with no timezone handling
3967
3890
  if (this.useUTC ||
3968
- (hasNewSafariBug && unit === 'FullYear') // leap calculation in UTC only
3969
- ) {
3891
+ // leap calculation in UTC only
3892
+ (hasNewSafariBug && unit === 'FullYear')) {
3970
3893
  return date['setUTC' + unit](value);
3971
3894
  }
3972
3895
  // Else, local time
@@ -3982,7 +3905,6 @@
3982
3905
  *
3983
3906
  * @param {Highcharts.TimeOptions} options
3984
3907
  *
3985
- * @return {void}
3986
3908
  */
3987
3909
  Time.prototype.update = function (options) {
3988
3910
  var useUTC = pick(options && options.useUTC,
@@ -4071,6 +3993,7 @@
4071
3993
  Time.prototype.timezoneOffsetFunction = function () {
4072
3994
  var time = this,
4073
3995
  options = this.options,
3996
+ getTimezoneOffset = options.getTimezoneOffset,
4074
3997
  moment = options.moment || win.moment;
4075
3998
  if (!this.useUTC) {
4076
3999
  return function (timestamp) {
@@ -4090,9 +4013,9 @@
4090
4013
  }
4091
4014
  }
4092
4015
  // If not timezone is set, look for the getTimezoneOffset callback
4093
- if (this.useUTC && options.getTimezoneOffset) {
4016
+ if (this.useUTC && getTimezoneOffset) {
4094
4017
  return function (timestamp) {
4095
- return options.getTimezoneOffset(timestamp.valueOf()) * 60000;
4018
+ return getTimezoneOffset(timestamp.valueOf()) * 60000;
4096
4019
  };
4097
4020
  }
4098
4021
  // Last, use the `timezoneOffset` option if set
@@ -4226,8 +4149,10 @@
4226
4149
  * Resolve legacy formats of dateTimeLabelFormats (strings and arrays) into
4227
4150
  * an object.
4228
4151
  * @private
4229
- * @param {string|Array<T>|Highcharts.Dictionary<T>} f - General format description
4230
- * @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
4231
4156
  */
4232
4157
  Time.prototype.resolveDTLFormat = function (f) {
4233
4158
  if (!isObject(f, true)) { // check for string or array
@@ -4259,6 +4184,7 @@
4259
4184
  * @param {number} [startOfWeek=1]
4260
4185
  *
4261
4186
  * @return {Highcharts.AxisTickPositionsArray}
4187
+ * Time positions
4262
4188
  */
4263
4189
  Time.prototype.getTimeTicks = function (normalizedInterval, min, max, startOfWeek) {
4264
4190
  var time = this,
@@ -4528,15 +4454,15 @@
4528
4454
  * In case of loading the library from a `script` tag,
4529
4455
  * this option is not needed, it will be loaded from there by default.
4530
4456
  *
4531
- * @type {function}
4532
- * @since 8.2.0
4457
+ * @type {Function}
4458
+ * @since 8.2.0
4533
4459
  * @apioption time.moment
4534
4460
  */
4535
4461
  ''; // keeps doclets above in JS file
4536
4462
 
4537
4463
  return Time;
4538
4464
  });
4539
- _registerModule(_modules, 'Core/DefaultOptions.js', [_modules['Core/Chart/ChartDefaults.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Color/Palette.js'], _modules['Core/Time.js'], _modules['Core/Utilities.js']], function (ChartDefaults, Color, H, palette, Time, U) {
4465
+ _registerModule(_modules, 'Core/DefaultOptions.js', [_modules['Core/Chart/ChartDefaults.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Color/Palettes.js'], _modules['Core/Time.js'], _modules['Core/Utilities.js']], function (ChartDefaults, Color, H, Palettes, Time, U) {
4540
4466
  /* *
4541
4467
  *
4542
4468
  * (c) 2010-2021 Torstein Honsi
@@ -4598,7 +4524,7 @@
4598
4524
  * @default ["#7cb5ec", "#434348", "#90ed7d", "#f7a35c", "#8085e9",
4599
4525
  * "#f15c80", "#e4d354", "#2b908f", "#f45b5b", "#91e8e1"]
4600
4526
  */
4601
- colors: palette.colors,
4527
+ colors: Palettes.colors,
4602
4528
  /**
4603
4529
  * Styled mode only. Configuration object for adding SVG definitions for
4604
4530
  * reusable elements. See [gradients, shadows and
@@ -5415,7 +5341,7 @@
5415
5341
  /**
5416
5342
  * @ignore-option
5417
5343
  */
5418
- color: palette.neutralColor80
5344
+ color: "#333333" /* neutralColor80 */
5419
5345
  }
5420
5346
  },
5421
5347
  /**
@@ -5695,7 +5621,7 @@
5695
5621
  *
5696
5622
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
5697
5623
  */
5698
- borderColor: palette.neutralColor40,
5624
+ borderColor: "#999999" /* neutralColor40 */,
5699
5625
  /**
5700
5626
  * The border corner radius of the legend.
5701
5627
  *
@@ -5789,7 +5715,7 @@
5789
5715
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
5790
5716
  * @since 2.2.4
5791
5717
  */
5792
- activeColor: palette.highlightColor100,
5718
+ activeColor: "#003399" /* highlightColor100 */,
5793
5719
  /**
5794
5720
  * The color of the inactive up or down arrow in the legend page
5795
5721
  * navigation. .
@@ -5805,7 +5731,7 @@
5805
5731
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
5806
5732
  * @since 2.2.4
5807
5733
  */
5808
- inactiveColor: palette.neutralColor20
5734
+ inactiveColor: "#cccccc" /* neutralColor20 */
5809
5735
  },
5810
5736
  /**
5811
5737
  * The inner padding of the legend box.
@@ -5881,7 +5807,7 @@
5881
5807
  /**
5882
5808
  * @ignore
5883
5809
  */
5884
- color: palette.neutralColor80,
5810
+ color: "#333333" /* neutralColor80 */,
5885
5811
  /**
5886
5812
  * @ignore
5887
5813
  */
@@ -5919,7 +5845,7 @@
5919
5845
  /**
5920
5846
  * @ignore
5921
5847
  */
5922
- color: palette.neutralColor100
5848
+ color: "#000000" /* neutralColor100 */
5923
5849
  },
5924
5850
  /**
5925
5851
  * CSS styles for each legend item when the corresponding series or
@@ -5940,7 +5866,7 @@
5940
5866
  /**
5941
5867
  * @ignore
5942
5868
  */
5943
- color: palette.neutralColor20
5869
+ color: "#cccccc" /* neutralColor20 */
5944
5870
  },
5945
5871
  /**
5946
5872
  * Whether to apply a drop shadow to the legend. A `backgroundColor`
@@ -6244,7 +6170,7 @@
6244
6170
  /**
6245
6171
  * @ignore
6246
6172
  */
6247
- backgroundColor: palette.backgroundColor,
6173
+ backgroundColor: "#ffffff" /* backgroundColor */,
6248
6174
  /**
6249
6175
  * @ignore
6250
6176
  */
@@ -6587,11 +6513,13 @@
6587
6513
  * @apioption tooltip.xDateFormat
6588
6514
  */
6589
6515
  /**
6590
- * How many decimals to show for the `point.change` value when the
6591
- * `series.compare` option is set. This is overridable in each series'
6592
- * tooltip options object. The default is to preserve all decimals.
6516
+ * How many decimals to show for the `point.change`
6517
+ * or the `point.cumulativeSum` value when the `series.compare`
6518
+ * or the `series.cumulative` option is set.
6519
+ * This is overridable in each series' tooltip options object.
6593
6520
  *
6594
6521
  * @type {number}
6522
+ * @default 2
6595
6523
  * @since 1.0.1
6596
6524
  * @product highstock
6597
6525
  * @apioption tooltip.changeDecimals
@@ -6629,7 +6557,7 @@
6629
6557
  * header will by default be guessed based on the closest data points.
6630
6558
  * This member gives the default string representations used for
6631
6559
  * each unit. For an overview of the replacement codes, see
6632
- * [dateFormat](/class-reference/Highcharts#.dateFormat).
6560
+ * [dateFormat](/class-reference/Highcharts.Time#dateFormat).
6633
6561
  *
6634
6562
  * @see [xAxis.dateTimeLabelFormats](#xAxis.dateTimeLabelFormats)
6635
6563
  *
@@ -6833,7 +6761,7 @@
6833
6761
  *
6834
6762
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
6835
6763
  */
6836
- backgroundColor: color(palette.neutralColor3)
6764
+ backgroundColor: color("#f7f7f7" /* neutralColor3 */)
6837
6765
  // @todo: Disallow undefined as input for colors
6838
6766
  .setOpacity(0.85).get(),
6839
6767
  /**
@@ -6896,7 +6824,7 @@
6896
6824
  */
6897
6825
  style: {
6898
6826
  /** @internal */
6899
- color: palette.neutralColor80,
6827
+ color: "#333333" /* neutralColor80 */,
6900
6828
  /** @internal */
6901
6829
  cursor: 'default',
6902
6830
  /** @internal */
@@ -7011,7 +6939,7 @@
7011
6939
  /** @internal */
7012
6940
  cursor: 'pointer',
7013
6941
  /** @internal */
7014
- color: palette.neutralColor40,
6942
+ color: "#999999" /* neutralColor40 */,
7015
6943
  /** @internal */
7016
6944
  fontSize: '9px'
7017
6945
  },
@@ -7046,6 +6974,7 @@
7046
6974
  * @function Highcharts.getOptions
7047
6975
  *
7048
6976
  * @return {Highcharts.Options}
6977
+ * Default options.
7049
6978
  */
7050
6979
  function getOptions() {
7051
6980
  return defaultOptions;
@@ -7060,10 +6989,10 @@
7060
6989
  * @function Highcharts.setOptions
7061
6990
  *
7062
6991
  * @param {Highcharts.Options} options
7063
- * The new custom chart options.
6992
+ * The new custom chart options.
7064
6993
  *
7065
6994
  * @return {Highcharts.Options}
7066
- * Updated options.
6995
+ * Updated options.
7067
6996
  */
7068
6997
  function setOptions(options) {
7069
6998
  // Copy in the default options
@@ -7338,7 +7267,6 @@
7338
7267
  *
7339
7268
  * @function Highcharts.Fx#dSetter
7340
7269
  *
7341
- * @return {void}
7342
7270
  */
7343
7271
  Fx.prototype.dSetter = function () {
7344
7272
  var paths = this.paths,
@@ -7387,7 +7315,6 @@
7387
7315
  *
7388
7316
  * @function Highcharts.Fx#update
7389
7317
  *
7390
- * @return {void}
7391
7318
  */
7392
7319
  Fx.prototype.update = function () {
7393
7320
  var elem = this.elem,
@@ -7426,7 +7353,6 @@
7426
7353
  * @param {string} unit
7427
7354
  * The property unit, for example `px`.
7428
7355
  *
7429
- * @return {void}
7430
7356
  */
7431
7357
  Fx.prototype.run = function (from, to, unit) {
7432
7358
  var self = this,
@@ -7448,7 +7374,8 @@
7448
7374
  };
7449
7375
  if (from === to && !this.elem['forceAnimate:' + this.prop]) {
7450
7376
  delete options.curAnim[this.prop];
7451
- if (options.complete && Object.keys(options.curAnim).length === 0) {
7377
+ if (options.complete &&
7378
+ Object.keys(options.curAnim).length === 0) {
7452
7379
  options.complete.call(this.elem);
7453
7380
  }
7454
7381
  }
@@ -7507,7 +7434,8 @@
7507
7434
  }
7508
7435
  else {
7509
7436
  this.pos = options.easing((t - this.startTime) / duration);
7510
- this.now = this.start + ((this.end - this.start) * this.pos);
7437
+ this.now = this.start + ((this.end -
7438
+ this.start) * this.pos);
7511
7439
  this.update();
7512
7440
  ret = true;
7513
7441
  }
@@ -7549,9 +7477,6 @@
7549
7477
  /**
7550
7478
  * If shifting points, prepend a dummy point to the end path.
7551
7479
  * @private
7552
- * @param {Highcharts.SVGPathArray} arr - array
7553
- * @param {Highcharts.SVGPathArray} other - array
7554
- * @return {void}
7555
7480
  */
7556
7481
  function prepend(arr, other) {
7557
7482
  while (arr.length < fullLength) {
@@ -7587,9 +7512,6 @@
7587
7512
  /**
7588
7513
  * Copy and append last point until the length matches the end length.
7589
7514
  * @private
7590
- * @param {Highcharts.SVGPathArray} arr - array
7591
- * @param {Highcharts.SVGPathArray} other - array
7592
- * @return {void}
7593
7515
  */
7594
7516
  function append(arr, other) {
7595
7517
  while (arr.length < fullLength) {
@@ -7661,7 +7583,6 @@
7661
7583
  *
7662
7584
  * @function Highcharts.Fx#fillSetter
7663
7585
  *
7664
- * @return {void}
7665
7586
  */
7666
7587
  Fx.prototype.fillSetter = function () {
7667
7588
  Fx.prototype.strokeSetter.apply(this, arguments);
@@ -7671,10 +7592,9 @@
7671
7592
  *
7672
7593
  * @function Highcharts.Fx#strokeSetter
7673
7594
  *
7674
- * @return {void}
7675
7595
  */
7676
7596
  Fx.prototype.strokeSetter = function () {
7677
- 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);
7678
7598
  };
7679
7599
  /* *
7680
7600
  *
@@ -7917,23 +7837,34 @@
7917
7837
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
7918
7838
  *
7919
7839
  * */
7920
- var SVG_NS = H.SVG_NS;
7840
+ var SVG_NS = H.SVG_NS,
7841
+ win = H.win;
7921
7842
  var attr = U.attr,
7922
7843
  createElement = U.createElement,
7923
- discardElement = U.discardElement,
7924
7844
  error = U.error,
7845
+ isFunction = U.isFunction,
7925
7846
  isString = U.isString,
7926
7847
  objectEach = U.objectEach,
7927
7848
  splat = U.splat;
7849
+ var trustedTypes = win.trustedTypes;
7928
7850
  /* *
7929
7851
  *
7930
7852
  * Constants
7931
7853
  *
7932
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
+ '';
7933
7864
  // In IE8, DOMParser is undefined. IE9 and PhantomJS are only able to parse XML.
7934
7865
  var hasValidDOMParser = (function () {
7935
7866
  try {
7936
- return Boolean(new DOMParser().parseFromString('', 'text/html'));
7867
+ return Boolean(new DOMParser().parseFromString(emptyHTML, 'text/html'));
7937
7868
  }
7938
7869
  catch (e) {
7939
7870
  return false;
@@ -8016,7 +7947,7 @@
8016
7947
  * Markup string
8017
7948
  */
8018
7949
  AST.setElementHTML = function (el, html) {
8019
- el.innerHTML = ''; // Clear previous
7950
+ el.innerHTML = AST.emptyHTML; // Clear previous
8020
7951
  if (html) {
8021
7952
  var ast = new AST(html);
8022
7953
  ast.addToDOM(el);
@@ -8041,9 +7972,12 @@
8041
7972
  AST.prototype.addToDOM = function (parent) {
8042
7973
  /**
8043
7974
  * @private
8044
- * @param {Highcharts.ASTNode} subtree - HTML/SVG definition
8045
- * @param {Element} [subParent] - parent node
8046
- * @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.
8047
7981
  */
8048
7982
  function recurse(subtree, subParent) {
8049
7983
  var ret;
@@ -8084,7 +8018,8 @@
8084
8018
  node = element;
8085
8019
  }
8086
8020
  else {
8087
- error("Highcharts warning: Invalid tagName '" + tagName + "' in config");
8021
+ error('Highcharts warning: Invalid tagName ' +
8022
+ tagName + ' in config');
8088
8023
  }
8089
8024
  }
8090
8025
  // Add to the tree
@@ -8114,12 +8049,13 @@
8114
8049
  var nodes = [];
8115
8050
  markup = markup.trim();
8116
8051
  var doc;
8117
- var body;
8118
8052
  if (hasValidDOMParser) {
8119
- doc = new DOMParser().parseFromString(markup, 'text/html');
8053
+ doc = new DOMParser().parseFromString(trustedTypesPolicy ?
8054
+ trustedTypesPolicy.createHTML(markup) :
8055
+ markup, 'text/html');
8120
8056
  }
8121
8057
  else {
8122
- body = createElement('div');
8058
+ var body = createElement('div');
8123
8059
  body.innerHTML = markup;
8124
8060
  doc = { body: body };
8125
8061
  }
@@ -8155,9 +8091,6 @@
8155
8091
  addTo.push(astNode);
8156
8092
  };
8157
8093
  [].forEach.call(doc.body.childNodes, function (childNode) { return appendChildNodes(childNode, nodes); });
8158
- if (body) {
8159
- discardElement(body);
8160
- }
8161
8094
  return nodes;
8162
8095
  };
8163
8096
  /* *
@@ -8236,6 +8169,7 @@
8236
8169
  'text-align',
8237
8170
  'textAnchor',
8238
8171
  'textLength',
8172
+ 'title',
8239
8173
  'type',
8240
8174
  'valign',
8241
8175
  'width',
@@ -8281,6 +8215,7 @@
8281
8215
  */
8282
8216
  AST.allowedTags = [
8283
8217
  'a',
8218
+ 'abbr',
8284
8219
  'b',
8285
8220
  'br',
8286
8221
  'button',
@@ -8342,6 +8277,7 @@
8342
8277
  'ul',
8343
8278
  '#text'
8344
8279
  ];
8280
+ AST.emptyHTML = emptyHTML;
8345
8281
  return AST;
8346
8282
  }());
8347
8283
  /* *
@@ -8677,7 +8613,8 @@
8677
8613
  * @private
8678
8614
  */
8679
8615
  function distribute(boxes, len, maxDistance) {
8680
- var origBoxes = boxes, // Original array will be altered with added .pos
8616
+ // Original array will be altered with added .pos
8617
+ var origBoxes = boxes,
8681
8618
  reducedLen = origBoxes.reducedLen || len,
8682
8619
  sortByRank = function (a,
8683
8620
  b) {
@@ -8800,7 +8737,7 @@
8800
8737
 
8801
8738
  return RendererUtilities;
8802
8739
  });
8803
- _registerModule(_modules, 'Core/Renderer/SVG/SVGElement.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Color/Palette.js'], _modules['Core/Utilities.js']], function (A, AST, Color, H, Palette, U) {
8740
+ _registerModule(_modules, 'Core/Renderer/SVG/SVGElement.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (A, AST, Color, H, U) {
8804
8741
  /* *
8805
8742
  *
8806
8743
  * (c) 2010-2021 Torstein Honsi
@@ -8932,7 +8869,6 @@
8932
8869
  *
8933
8870
  * @param {Highcharts.SVGDOMElement} element
8934
8871
  *
8935
- * @return {void}
8936
8872
  */
8937
8873
  SVGElement.prototype._defaultSetter = function (value, key, element) {
8938
8874
  element.setAttribute(key, value);
@@ -9085,7 +9021,8 @@
9085
9021
  alignByTranslate = this.alignByTranslate;
9086
9022
  alignTo = this.alignTo;
9087
9023
  }
9088
- 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);
9089
9026
  // Assign variables
9090
9027
  var align = alignOptions.align,
9091
9028
  vAlign = alignOptions.verticalAlign;
@@ -9381,7 +9318,8 @@
9381
9318
  // Let the shadow follow the main element
9382
9319
  if (!this.styledMode &&
9383
9320
  this.shadows &&
9384
- /^(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)) {
9385
9323
  this.updateShadows(key, val, setter);
9386
9324
  }
9387
9325
  }
@@ -9770,7 +9708,6 @@
9770
9708
  * @private
9771
9709
  * @function Highcharts.SVGElement#destroyShadows
9772
9710
  *
9773
- * @return {void}
9774
9711
  */
9775
9712
  SVGElement.prototype.destroyShadows = function () {
9776
9713
  (this.shadows || []).forEach(function (shadow) {
@@ -10010,8 +9947,7 @@
10010
9947
  bBox.height = height = ({
10011
9948
  '11px,17': 14,
10012
9949
  '13px,20': 16
10013
- }[styles &&
10014
- styles.fontSize + ',' + Math.round(height)] ||
9950
+ }[(fontSize || '') + "," + Math.round(height)] ||
10015
9951
  height);
10016
9952
  }
10017
9953
  // Adjust for rotated text
@@ -10337,7 +10273,7 @@
10337
10273
  var childNodes = [].slice.call(textNode.childNodes);
10338
10274
  for (var i = 0; i < childNodes.length; i++) {
10339
10275
  var childNode = childNodes[i];
10340
- if (childNode.nodeType === Node.TEXT_NODE ||
10276
+ if (childNode.nodeType === win.Node.TEXT_NODE ||
10341
10277
  childNode.nodeName === 'tspan') {
10342
10278
  textPathElement.appendChild(childNode);
10343
10279
  }
@@ -10432,7 +10368,7 @@
10432
10368
  element = this.element,
10433
10369
  oldShadowOptions = this.oldShadowOptions,
10434
10370
  defaultShadowOptions = {
10435
- color: Palette.neutralColor100,
10371
+ color: "#000000" /* neutralColor100 */,
10436
10372
  offsetX: this.parentInverted ? -1 : 1,
10437
10373
  offsetY: this.parentInverted ? -1 : 1,
10438
10374
  opacity: 0.15,
@@ -10480,7 +10416,7 @@
10480
10416
  strokeWidth = (options.width * 2) + 1 - (2 * i);
10481
10417
  attr(shadow, {
10482
10418
  stroke: (shadowOptions.color ||
10483
- Palette.neutralColor100),
10419
+ "#000000" /* neutralColor100 */),
10484
10420
  'stroke-opacity': shadowElementOpacity * i,
10485
10421
  'stroke-width': strokeWidth,
10486
10422
  transform: transform,
@@ -10690,12 +10626,13 @@
10690
10626
  * @function Highcharts.SVGElement#translate
10691
10627
  *
10692
10628
  * @param {number} x
10693
- * The x value.
10629
+ * The x value.
10694
10630
  *
10695
10631
  * @param {number} y
10696
- * The y value.
10632
+ * The y value.
10697
10633
  *
10698
10634
  * @return {Highcharts.SVGElement}
10635
+ * Translated element.
10699
10636
  */
10700
10637
  SVGElement.prototype.translate = function (x, y) {
10701
10638
  return this.attr({
@@ -10789,7 +10726,6 @@
10789
10726
  *
10790
10727
  * @param {Highcharts.SVGDOMElement} element
10791
10728
  *
10792
- * @return {void}
10793
10729
  */
10794
10730
  SVGElement.prototype.visibilitySetter = function (value, key, element) {
10795
10731
  // IE9-11 doesn't handle visibilty:inherit well, so we remove the
@@ -10805,10 +10741,6 @@
10805
10741
  /**
10806
10742
  * @private
10807
10743
  * @function Highcharts.SVGElement#xGetter
10808
- *
10809
- * @param {string} key
10810
- *
10811
- * @return {number|string|null}
10812
10744
  */
10813
10745
  SVGElement.prototype.xGetter = function (key) {
10814
10746
  if (this.element.nodeName === 'circle') {
@@ -10824,9 +10756,6 @@
10824
10756
  /**
10825
10757
  * @private
10826
10758
  * @function Highcharts.SVGElement#zIndexSetter
10827
- * @param {number} [value]
10828
- * @param {string} [key]
10829
- * @return {boolean}
10830
10759
  */
10831
10760
  SVGElement.prototype.zIndexSetter = function (value, key) {
10832
10761
  var renderer = this.renderer,
@@ -11311,7 +11240,8 @@
11311
11240
  }
11312
11241
  });
11313
11242
  this.text.css(textStyles_1);
11314
- 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);
11315
11245
  // Update existing text, box (#9400, #12163)
11316
11246
  if (isFontStyle) {
11317
11247
  this.updateTextPadding();
@@ -11481,13 +11411,15 @@
11481
11411
  this.renderer.symbol(this.symbolKey) :
11482
11412
  this.renderer.rect();
11483
11413
  box.addClass(// Don't use label className for buttons
11484
- (this.className === 'button' ? '' : 'highcharts-label-box') +
11485
- (this.className ? ' highcharts-' + this.className + '-box' : ''));
11414
+ (this.className === 'button' ?
11415
+ '' : 'highcharts-label-box') +
11416
+ (this.className ?
11417
+ ' highcharts-' + this.className + '-box' : ''));
11486
11418
  box.add(this);
11487
11419
  }
11488
11420
  crispAdjust = this.getCrispAdjust();
11489
11421
  attribs.x = crispAdjust;
11490
- attribs.y = (this.baseline ? -this.baselineOffset : 0) + crispAdjust;
11422
+ attribs.y = ((this.baseline ? -this.baselineOffset : 0) + crispAdjust);
11491
11423
  // Apply the box attributes
11492
11424
  attribs.width = Math.round(this.width);
11493
11425
  attribs.height = Math.round(this.height);
@@ -11510,8 +11442,7 @@
11510
11442
  if (defined(this.widthSetting) &&
11511
11443
  this.bBox &&
11512
11444
  (this.textAlign === 'center' || this.textAlign === 'right')) {
11513
- textX += { center: 0.5, right: 1 }[this.textAlign] *
11514
- (this.widthSetting - this.bBox.width);
11445
+ textX += { center: 0.5, right: 1 }[this.textAlign] * (this.widthSetting - this.bBox.width);
11515
11446
  }
11516
11447
  // update if anything changed
11517
11448
  if (textX !== text.x || textY !== text.y) {
@@ -11539,7 +11470,9 @@
11539
11470
  padding);
11540
11471
  var paddingRight = pick(this.paddingRight,
11541
11472
  padding);
11542
- return (this.widthSetting || this.bBox.width || 0) + paddingLeft + paddingRight;
11473
+ return ((this.widthSetting || this.bBox.width || 0) +
11474
+ paddingLeft +
11475
+ paddingRight);
11543
11476
  };
11544
11477
  SVGLabel.prototype.xSetter = function (value) {
11545
11478
  this.x = value; // for animation getter
@@ -11560,7 +11493,12 @@
11560
11493
  * Static Properties
11561
11494
  *
11562
11495
  * */
11563
- 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
+ };
11564
11502
  /**
11565
11503
  * For labels, these CSS properties are applied to the `text` node directly.
11566
11504
  *
@@ -11818,7 +11756,8 @@
11818
11756
  *
11819
11757
  * */
11820
11758
  var doc = H.doc,
11821
- SVG_NS = H.SVG_NS;
11759
+ SVG_NS = H.SVG_NS,
11760
+ win = H.win;
11822
11761
  var attr = U.attr,
11823
11762
  isString = U.isString,
11824
11763
  objectEach = U.objectEach,
@@ -11922,7 +11861,6 @@
11922
11861
  *
11923
11862
  * @private
11924
11863
  *
11925
- * @return {void}
11926
11864
  */
11927
11865
  TextBuilder.prototype.modifyDOM = function () {
11928
11866
  var _this = this;
@@ -12040,7 +11978,7 @@
12040
11978
  var modifyChildren = (function (node) {
12041
11979
  var childNodes = [].slice.call(node.childNodes);
12042
11980
  childNodes.forEach(function (childNode) {
12043
- if (childNode.nodeType === Node.TEXT_NODE) {
11981
+ if (childNode.nodeType === win.Node.TEXT_NODE) {
12044
11982
  modifyTextNode(childNode, node);
12045
11983
  }
12046
11984
  else {
@@ -12066,7 +12004,7 @@
12066
12004
  TextBuilder.prototype.getLineHeight = function (node) {
12067
12005
  var fontSizeStyle;
12068
12006
  // If the node is a text node, use its parent
12069
- var element = node.nodeType === Node.TEXT_NODE ?
12007
+ var element = (node.nodeType === win.Node.TEXT_NODE) ?
12070
12008
  node.parentElement :
12071
12009
  node;
12072
12010
  if (!this.renderer.styledMode) {
@@ -12088,22 +12026,23 @@
12088
12026
  *
12089
12027
  * @param {ASTNode[]} nodes The AST nodes
12090
12028
  *
12091
- * @return {void}
12092
12029
  */
12093
12030
  TextBuilder.prototype.modifyTree = function (nodes) {
12094
12031
  var _this = this;
12095
12032
  var modifyChild = function (node,
12096
12033
  i) {
12097
- var tagName = node.tagName;
12098
- var styledMode = _this.renderer.styledMode;
12099
- 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;
12100
12039
  // Apply styling to text tags
12101
12040
  if (tagName === 'b' || tagName === 'strong') {
12102
12041
  if (styledMode) {
12103
12042
  attributes['class'] = 'highcharts-strong'; // eslint-disable-line dot-notation
12104
12043
  }
12105
12044
  else {
12106
- attributes.style = 'font-weight:bold;' + (attributes.style || '');
12045
+ attributes.style = ('font-weight:bold;' + (attributes.style || ''));
12107
12046
  }
12108
12047
  }
12109
12048
  else if (tagName === 'i' || tagName === 'em') {
@@ -12111,13 +12050,14 @@
12111
12050
  attributes['class'] = 'highcharts-emphasized'; // eslint-disable-line dot-notation
12112
12051
  }
12113
12052
  else {
12114
- attributes.style = 'font-style:italic;' + (attributes.style || '');
12053
+ attributes.style = ('font-style:italic;' + (attributes.style || ''));
12115
12054
  }
12116
12055
  }
12117
12056
  // Modify attributes
12118
12057
  if (isString(attributes.style)) {
12119
12058
  attributes.style = attributes.style.replace(/(;| |^)color([ :])/, '$1fill$2');
12120
12059
  }
12060
+ // Handle breaks
12121
12061
  if (tagName === 'br') {
12122
12062
  attributes['class'] = 'highcharts-br'; // eslint-disable-line dot-notation
12123
12063
  node.textContent = '\u200B'; // zero-width space
@@ -12127,14 +12067,23 @@
12127
12067
  nextNode.textContent =
12128
12068
  nextNode.textContent.replace(/^ +/gm, '');
12129
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' }];
12130
12079
  }
12131
12080
  if (tagName !== '#text' && tagName !== 'a') {
12132
12081
  node.tagName = 'tspan';
12133
12082
  }
12134
12083
  node.attributes = attributes;
12135
12084
  // Recurse
12136
- if (node.children) {
12137
- node.children
12085
+ if (children) {
12086
+ children
12138
12087
  .filter(function (c) { return c.tagName !== '#text'; })
12139
12088
  .forEach(modifyChild);
12140
12089
  }
@@ -12260,7 +12209,7 @@
12260
12209
 
12261
12210
  return TextBuilder;
12262
12211
  });
12263
- _registerModule(_modules, 'Core/Renderer/SVG/SVGRenderer.js', [_modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Color/Palette.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Renderer/SVG/SVGLabel.js'], _modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Renderer/SVG/TextBuilder.js'], _modules['Core/Utilities.js']], function (AST, Color, H, Palette, RendererRegistry, SVGElement, SVGLabel, Symbols, TextBuilder, U) {
12212
+ _registerModule(_modules, 'Core/Renderer/SVG/SVGRenderer.js', [_modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Renderer/SVG/SVGLabel.js'], _modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Renderer/SVG/TextBuilder.js'], _modules['Core/Utilities.js']], function (AST, Color, H, RendererRegistry, SVGElement, SVGLabel, Symbols, TextBuilder, U) {
12264
12213
  /* *
12265
12214
  *
12266
12215
  * (c) 2010-2021 Torstein Honsi
@@ -12471,7 +12420,7 @@
12471
12420
  this.url = this.getReferenceURL();
12472
12421
  // Add description
12473
12422
  var desc = this.createElement('desc').add();
12474
- desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.2.1'));
12423
+ desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.3.2'));
12475
12424
  renderer.defs = this.createElement('defs').add();
12476
12425
  renderer.allowHTML = allowHTML;
12477
12426
  renderer.forExport = forExport;
@@ -12663,6 +12612,7 @@
12663
12612
  * @function Highcharts.SVGRenderer#destroy
12664
12613
  *
12665
12614
  * @return {null}
12615
+ * Pass through value.
12666
12616
  */
12667
12617
  SVGRenderer.prototype.destroy = function () {
12668
12618
  var renderer = this,
@@ -12823,11 +12773,11 @@
12823
12773
  if (!styledMode) {
12824
12774
  // Normal state - prepare the attributes
12825
12775
  normalState = merge({
12826
- fill: Palette.neutralColor3,
12827
- stroke: Palette.neutralColor20,
12776
+ fill: "#f7f7f7" /* neutralColor3 */,
12777
+ stroke: "#cccccc" /* neutralColor20 */,
12828
12778
  'stroke-width': 1,
12829
12779
  style: {
12830
- color: Palette.neutralColor80,
12780
+ color: "#333333" /* neutralColor80 */,
12831
12781
  cursor: 'pointer',
12832
12782
  fontWeight: 'normal'
12833
12783
  }
@@ -12838,15 +12788,15 @@
12838
12788
  delete normalState.style;
12839
12789
  // Hover state
12840
12790
  hoverState = merge(normalState, {
12841
- fill: Palette.neutralColor10
12791
+ fill: "#e6e6e6" /* neutralColor10 */
12842
12792
  }, AST.filterUserAttributes(hoverState || {}));
12843
12793
  hoverStyle = hoverState.style;
12844
12794
  delete hoverState.style;
12845
12795
  // Pressed state
12846
12796
  pressedState = merge(normalState, {
12847
- fill: Palette.highlightColor10,
12797
+ fill: "#e6ebf5" /* highlightColor10 */,
12848
12798
  style: {
12849
- color: Palette.neutralColor100,
12799
+ color: "#000000" /* neutralColor100 */,
12850
12800
  fontWeight: 'bold'
12851
12801
  }
12852
12802
  }, AST.filterUserAttributes(pressedState || {}));
@@ -12855,7 +12805,7 @@
12855
12805
  // Disabled state
12856
12806
  disabledState = merge(normalState, {
12857
12807
  style: {
12858
- color: Palette.neutralColor20
12808
+ color: "#cccccc" /* neutralColor20 */
12859
12809
  }
12860
12810
  }, AST.filterUserAttributes(disabledState || {}));
12861
12811
  disabledStyle = disabledState.style;
@@ -13275,14 +13225,18 @@
13275
13225
  el.setAttribute('hc-svg-href', src);
13276
13226
  }
13277
13227
  };
13278
- // optional properties
13279
- if (arguments.length > 1) {
13280
- extend(attribs, {
13281
- x: x,
13282
- y: y,
13283
- width: width,
13284
- height: height
13285
- });
13228
+ // Optional properties (#11756)
13229
+ if (isNumber(x)) {
13230
+ attribs.x = x;
13231
+ }
13232
+ if (isNumber(y)) {
13233
+ attribs.y = y;
13234
+ }
13235
+ if (isNumber(width)) {
13236
+ attribs.width = width;
13237
+ }
13238
+ if (isNumber(height)) {
13239
+ attribs.height = height;
13286
13240
  }
13287
13241
  var elemWrapper = this.createElement('image').attr(attribs),
13288
13242
  onDummyLoad = function (e) {
@@ -13335,6 +13289,7 @@
13335
13289
  * Additional options, depending on the actual symbol drawn.
13336
13290
  *
13337
13291
  * @return {Highcharts.SVGElement}
13292
+ * SVG symbol.
13338
13293
  */
13339
13294
  SVGRenderer.prototype.symbol = function (symbol, x, y, width, height, options) {
13340
13295
  var ren = this,
@@ -13564,8 +13519,8 @@
13564
13519
  parentVal = element.getAttribute(key);
13565
13520
  for (var i = 0, tspan = void 0; i < tspans.length; i++) {
13566
13521
  tspan = tspans[i];
13567
- // If the x values are equal, the tspan represents a
13568
- // linebreak
13522
+ // If the x values are equal, the tspan represents a line
13523
+ // break
13569
13524
  if (tspan.getAttribute(key) === parentVal) {
13570
13525
  tspan.setAttribute(key, value);
13571
13526
  }
@@ -13629,14 +13584,6 @@
13629
13584
  *
13630
13585
  * @private
13631
13586
  * @function Highcharts.SVGRenderer#rotCorr
13632
- *
13633
- * @param {number} baseline
13634
- *
13635
- * @param {number} rotation
13636
- *
13637
- * @param {boolean} [alterY]
13638
- *
13639
- * @param {Highcharts.PositionObject}
13640
13587
  */
13641
13588
  SVGRenderer.prototype.rotCorr = function (baseline, rotation, alterY) {
13642
13589
  var y = baseline;
@@ -13940,7 +13887,6 @@
13940
13887
  *
13941
13888
  * @private
13942
13889
  * @function Highcharts.SVGRenderer#alignElements
13943
- * @return {void}
13944
13890
  */
13945
13891
  SVGRenderer.prototype.alignElements = function () {
13946
13892
  this.alignedObjects.forEach(function (el) { return el.align(); });
@@ -14087,7 +14033,7 @@
14087
14033
  * The shadow color.
14088
14034
  * @name Highcharts.ShadowOptionsObject#color
14089
14035
  * @type {Highcharts.ColorString|undefined}
14090
- * @default ${palette.neutralColor100}
14036
+ * @default #000000
14091
14037
  */ /**
14092
14038
  * The horizontal offset from the element.
14093
14039
  *
@@ -14270,10 +14216,12 @@
14270
14216
  HTMLElement.composedClasses.push(SVGElementClass);
14271
14217
  var htmlElementProto = HTMLElement.prototype,
14272
14218
  svgElementProto = SVGElementClass.prototype;
14273
- svgElementProto.getSpanCorrection = htmlElementProto.getSpanCorrection;
14219
+ svgElementProto.getSpanCorrection = htmlElementProto
14220
+ .getSpanCorrection;
14274
14221
  svgElementProto.htmlCss = htmlElementProto.htmlCss;
14275
14222
  svgElementProto.htmlGetBBox = htmlElementProto.htmlGetBBox;
14276
- svgElementProto.htmlUpdateTransform = htmlElementProto.htmlUpdateTransform;
14223
+ svgElementProto.htmlUpdateTransform = htmlElementProto
14224
+ .htmlUpdateTransform;
14277
14225
  svgElementProto.setSpanRotation = htmlElementProto.setSpanRotation;
14278
14226
  }
14279
14227
  return SVGElementClass;
@@ -14365,6 +14313,9 @@
14365
14313
  whiteSpace = styles && styles.whiteSpace;
14366
14314
  /** @private */
14367
14315
  function getTextPxLength() {
14316
+ if (wrapper.textPxLength) {
14317
+ return wrapper.textPxLength;
14318
+ }
14368
14319
  // Reset multiline/ellipsis in order to read width (#4928,
14369
14320
  // #5417)
14370
14321
  css(elem, {
@@ -14400,29 +14351,32 @@
14400
14351
  wrapper.textWidth,
14401
14352
  wrapper.textAlign
14402
14353
  ].join(',');
14403
- var baseline = void 0;
14354
+ var baseline = void 0,
14355
+ hasBoxWidthChanged = false;
14404
14356
  // Update textWidth. Use the memoized textPxLength if possible, to
14405
14357
  // avoid the getTextPxLength function using elem.offsetWidth.
14406
14358
  // Calling offsetWidth affects rendering time as it forces layout
14407
14359
  // (#7656).
14408
- if (textWidth !== wrapper.oldTextWidth &&
14409
- ((textWidth > wrapper.oldTextWidth) ||
14410
- (wrapper.textPxLength || getTextPxLength()) > textWidth) && (
14411
- // Only set the width if the text is able to word-wrap, or
14412
- // text-overflow is ellipsis (#9537)
14413
- /[ \-]/.test(elem.textContent || elem.innerText) ||
14414
- elem.style.textOverflow === 'ellipsis')) { // #983, #1254
14415
- css(elem, {
14416
- width: textWidth + 'px',
14417
- display: 'block',
14418
- whiteSpace: whiteSpace || 'normal' // #3331
14419
- });
14420
- wrapper.oldTextWidth = textWidth;
14421
- wrapper.hasBoxWidthChanged = true; // #8159
14422
- }
14423
- else {
14424
- wrapper.hasBoxWidthChanged = false; // #8159
14360
+ if (textWidth !== wrapper.oldTextWidth) { // #983, #1254
14361
+ var textPxLength = getTextPxLength();
14362
+ if (((textWidth > wrapper.oldTextWidth) ||
14363
+ textPxLength > textWidth) && (
14364
+ // Only set the width if the text is able to word-wrap,
14365
+ // or text-overflow is ellipsis (#9537)
14366
+ /[ \-]/.test(elem.textContent || elem.innerText) ||
14367
+ elem.style.textOverflow === 'ellipsis')) {
14368
+ css(elem, {
14369
+ width: (textPxLength > textWidth) || rotation ?
14370
+ textWidth + 'px' :
14371
+ 'auto',
14372
+ display: 'block',
14373
+ whiteSpace: whiteSpace || 'normal' // #3331
14374
+ });
14375
+ wrapper.oldTextWidth = textWidth;
14376
+ hasBoxWidthChanged = true; // #8159
14377
+ }
14425
14378
  }
14379
+ wrapper.hasBoxWidthChanged = hasBoxWidthChanged; // #8159
14426
14380
  // Do the calculations and DOM access only if properties changed
14427
14381
  if (currentTextTransform !== wrapper.cTT) {
14428
14382
  baseline = renderer.fontMetrics(elem.style.fontSize, elem).b;
@@ -14561,15 +14515,16 @@
14561
14515
  * @function Highcharts.SVGRenderer#html
14562
14516
  *
14563
14517
  * @param {string} str
14564
- * The text of (subset) HTML to draw.
14518
+ * The text of (subset) HTML to draw.
14565
14519
  *
14566
14520
  * @param {number} x
14567
- * The x position of the text's lower left corner.
14521
+ * The x position of the text's lower left corner.
14568
14522
  *
14569
14523
  * @param {number} y
14570
- * The y position of the text's lower left corner.
14524
+ * The y position of the text's lower left corner.
14571
14525
  *
14572
14526
  * @return {Highcharts.HTMLDOMElement}
14527
+ * HTML element.
14573
14528
  */
14574
14529
  HTMLRenderer.prototype.html = function (str, x, y) {
14575
14530
  var wrapper = this.createElement('span'), element = wrapper.element, renderer = wrapper.renderer, isSVG = renderer.isSVG, addSetters = function (gWrapper, style) {
@@ -14679,8 +14634,7 @@
14679
14634
  * @private
14680
14635
  * @param {*} value
14681
14636
  * @param {string} key
14682
- * @return {void}
14683
- */
14637
+ */
14684
14638
  function translateSetter(value, key) {
14685
14639
  parentGroup[key] = value;
14686
14640
  if (key === 'translateX') {
@@ -14703,7 +14657,9 @@
14703
14657
  display: parentGroup.display,
14704
14658
  opacity: parentGroup.opacity,
14705
14659
  cursor: parentGroupStyles.cursor,
14706
- pointerEvents: parentGroupStyles.pointerEvents,
14660
+ pointerEvents: (
14661
+ // #5595
14662
+ parentGroupStyles.pointerEvents),
14707
14663
  visibility: parentGroup.visibility
14708
14664
  // the top group is appended to container
14709
14665
  }, htmlGroup || container);
@@ -14768,7 +14724,7 @@
14768
14724
 
14769
14725
  return HTMLRenderer;
14770
14726
  });
14771
- _registerModule(_modules, 'Core/Axis/AxisDefaults.js', [_modules['Core/Color/Palette.js']], function (Palette) {
14727
+ _registerModule(_modules, 'Core/Axis/AxisDefaults.js', [], function () {
14772
14728
  /* *
14773
14729
  *
14774
14730
  * (c) 2010-2021 Torstein Honsi
@@ -15198,7 +15154,7 @@
15198
15154
  * same axis.
15199
15155
  *
15200
15156
  * For an overview of the replacement codes, see
15201
- * [dateFormat](/class-reference/Highcharts#.dateFormat).
15157
+ * [dateFormat](/class-reference/Highcharts.Time#dateFormat).
15202
15158
  *
15203
15159
  * Defaults to:
15204
15160
  * ```js
@@ -15292,9 +15248,9 @@
15292
15248
  * In Highcharts Stock, `endOnTick` is always `false` when the navigator
15293
15249
  * is enabled, to prevent jumpy scrolling.
15294
15250
  *
15295
- * @sample {highcharts} highcharts/chart/reflow-true/
15296
- * True by default
15297
15251
  * @sample {highcharts} highcharts/yaxis/endontick/
15252
+ * True by default
15253
+ * @sample {highcharts} highcharts/yaxis/endontick-false/
15298
15254
  * False
15299
15255
  * @sample {highstock} stock/demo/basic-line/
15300
15256
  * True by default
@@ -15736,7 +15692,7 @@
15736
15692
  */
15737
15693
  style: {
15738
15694
  /** @internal */
15739
- color: Palette.neutralColor60,
15695
+ color: "#666666" /* neutralColor60 */,
15740
15696
  /** @internal */
15741
15697
  cursor: 'default',
15742
15698
  /** @internal */
@@ -15801,8 +15757,6 @@
15801
15757
  * Y axis max on logarithmic axis
15802
15758
  * @sample {highstock} stock/xaxis/min-max/
15803
15759
  * Fixed min and max on X axis
15804
- * @sample {highmaps} maps/axis/min-max/
15805
- * Pre-zoomed to a specific area
15806
15760
  *
15807
15761
  * @type {number|null}
15808
15762
  * @apioption xAxis.max
@@ -15857,8 +15811,6 @@
15857
15811
  * -50 with startOnTick true by default
15858
15812
  * @sample {highstock} stock/xaxis/min-max/
15859
15813
  * Set min and max on X axis
15860
- * @sample {highmaps} maps/axis/min-max/
15861
- * Pre-zoomed to a specific area
15862
15814
  *
15863
15815
  * @type {number|null}
15864
15816
  * @apioption xAxis.min
@@ -16010,8 +15962,6 @@
16010
15962
  * Minimum range of 5
16011
15963
  * @sample {highstock} stock/xaxis/minrange/
16012
15964
  * Max zoom of 6 months overrides user selections
16013
- * @sample {highmaps} maps/axis/minrange/
16014
- * Minimum range of 1000
16015
15965
  *
16016
15966
  * @type {number}
16017
15967
  * @apioption xAxis.minRange
@@ -16577,7 +16527,7 @@
16577
16527
  */
16578
16528
  style: {
16579
16529
  /** @internal */
16580
- color: Palette.neutralColor60
16530
+ color: "#666666" /* neutralColor60 */
16581
16531
  }
16582
16532
  },
16583
16533
  /**
@@ -16694,7 +16644,7 @@
16694
16644
  * @type {Highcharts.ColorType}
16695
16645
  * @default #f2f2f2
16696
16646
  */
16697
- minorGridLineColor: Palette.neutralColor5,
16647
+ minorGridLineColor: "#f2f2f2" /* neutralColor5 */,
16698
16648
  /**
16699
16649
  * Width of the minor, secondary grid lines.
16700
16650
  *
@@ -16720,7 +16670,7 @@
16720
16670
  * @type {Highcharts.ColorType}
16721
16671
  * @default #999999
16722
16672
  */
16723
- minorTickColor: Palette.neutralColor40,
16673
+ minorTickColor: "#999999" /* neutralColor40 */,
16724
16674
  /**
16725
16675
  * The color of the line marking the axis itself.
16726
16676
  *
@@ -16741,7 +16691,7 @@
16741
16691
  * @type {Highcharts.ColorType}
16742
16692
  * @default #ccd6eb
16743
16693
  */
16744
- lineColor: Palette.highlightColor20,
16694
+ lineColor: "#ccd6eb" /* highlightColor20 */,
16745
16695
  /**
16746
16696
  * The width of the line marking the axis itself.
16747
16697
  *
@@ -16778,7 +16728,7 @@
16778
16728
  * @type {Highcharts.ColorType}
16779
16729
  * @default #e6e6e6
16780
16730
  */
16781
- gridLineColor: Palette.neutralColor10,
16731
+ gridLineColor: "#e6e6e6" /* neutralColor10 */,
16782
16732
  /**
16783
16733
  * The width of the grid lines extending the ticks across the plot area.
16784
16734
  * Defaults to 1 on the Y axis and 0 on the X axis, except for 3d
@@ -16836,7 +16786,7 @@
16836
16786
  * @type {Highcharts.ColorType}
16837
16787
  * @default #ccd6eb
16838
16788
  */
16839
- tickColor: Palette.highlightColor20
16789
+ tickColor: "#ccd6eb" /* highlightColor20 */
16840
16790
  // tickWidth: 1
16841
16791
  };
16842
16792
  /**
@@ -16996,9 +16946,9 @@
16996
16946
  * @see [type](#chart.panning.type)
16997
16947
  *
16998
16948
  *
16999
- * @sample {highcharts} highcharts/chart/reflow-true/
17000
- * True by default
17001
16949
  * @sample {highcharts} highcharts/yaxis/endontick/
16950
+ * True by default
16951
+ * @sample {highcharts} highcharts/yaxis/endontick-false/
17002
16952
  * False
17003
16953
  * @sample {highstock} stock/demo/basic-line/
17004
16954
  * True by default
@@ -17151,8 +17101,6 @@
17151
17101
  * Y axis max on logarithmic axis
17152
17102
  * @sample {highstock} stock/yaxis/min-max/
17153
17103
  * Fixed min and max on Y axis
17154
- * @sample {highmaps} maps/axis/min-max/
17155
- * Pre-zoomed to a specific area
17156
17104
  *
17157
17105
  * @apioption yAxis.max
17158
17106
  */
@@ -17163,8 +17111,6 @@
17163
17111
  * -50 with startOnTick true by default
17164
17112
  * @sample {highstock} stock/yaxis/min-max/
17165
17113
  * Fixed min and max on Y axis
17166
- * @sample {highmaps} maps/axis/min-max/
17167
- * Pre-zoomed to a specific area
17168
17114
  *
17169
17115
  * @apioption yAxis.min
17170
17116
  */
@@ -17207,6 +17153,28 @@
17207
17153
  * @product highstock
17208
17154
  * @apioption yAxis.scrollbar.margin
17209
17155
  */
17156
+ /* eslint-disable highcharts/doclet-apioption-last */
17157
+ /**
17158
+ * Defines the position of the scrollbar. By default, it is positioned
17159
+ * on the opposite of the main axis (right side of the chart).
17160
+ * However, in the case of RTL languages could be set to `false`
17161
+ * which positions the scrollbar on the left.
17162
+ *
17163
+ * Works only for vertical axes.
17164
+ * This means yAxis in a non-inverted chart and xAxis in the inverted.
17165
+ *
17166
+ * @sample stock/yaxis/scrollbar-opposite/
17167
+ * A scrollbar not on the opposite side
17168
+ *
17169
+ * @type {boolean}
17170
+ * @default true
17171
+ * @since 9.3.0
17172
+ *
17173
+ * @apioption yAxis.scrollbar.opposite
17174
+ * @apioption xAxis.scrollbar.opposite
17175
+ *
17176
+ */
17177
+ /* eslint-enable highcharts/doclet-apioption-last */
17210
17178
  /**
17211
17179
  * Whether to show the scrollbar when it is fully zoomed out at max
17212
17180
  * range. Setting it to `false` on the Y axis makes the scrollbar stay
@@ -17608,7 +17576,7 @@
17608
17576
  */
17609
17577
  style: {
17610
17578
  /** @internal */
17611
- color: Palette.neutralColor100,
17579
+ color: "#000000" /* neutralColor100 */,
17612
17580
  /** @internal */
17613
17581
  fontSize: '11px',
17614
17582
  /** @internal */
@@ -17709,47 +17677,54 @@
17709
17677
  removeEvent = U.removeEvent;
17710
17678
  /* *
17711
17679
  *
17712
- * Functions
17680
+ * Class Namespace
17713
17681
  *
17714
17682
  * */
17715
- /*
17716
- * Register event options. If an event handler is set on the options, it should
17717
- * be subject to Chart.update, Axis.update and Series.update. This is contrary
17718
- * to general handlers that are set directly using addEvent either on the class
17719
- * or on the instance. #6538, #6943, #10861.
17720
- */
17721
- var registerEventOptions = function (component,
17722
- options) {
17683
+ var Foundation;
17684
+ (function (Foundation) {
17685
+ /* *
17686
+ *
17687
+ * Functions
17688
+ *
17689
+ * */
17690
+ /* eslint-disable valid-jsdoc */
17691
+ /**
17692
+ * Register event options. If an event handler is set on the options, it
17693
+ * should be subject to Chart.update, Axis.update and Series.update. This is
17694
+ * contrary to general handlers that are set directly using addEvent either
17695
+ * on the class or on the instance. #6538, #6943, #10861.
17696
+ * @private
17697
+ */
17698
+ function registerEventOptions(component, options) {
17723
17699
  // A lookup over those events that are added by _options_ (not
17724
17700
  // programmatically). These are updated through .update()
17725
17701
  component.eventOptions = component.eventOptions || {};
17726
- // Register event listeners
17727
- objectEach(options.events, function (event, eventType) {
17728
- // If event does not exist, or is changed by the .update()
17729
- // function
17730
- if (component.eventOptions[eventType] !== event) {
17731
- // Remove existing if set by option
17732
- if (component.eventOptions[eventType]) {
17733
- removeEvent(component, eventType, component.eventOptions[eventType]);
17734
- delete component.eventOptions[eventType];
17735
- }
17736
- if (isFunction(event)) {
17737
- component.eventOptions[eventType] = event;
17738
- addEvent(component, eventType, event);
17702
+ // Register event listeners
17703
+ objectEach(options.events, function (event, eventType) {
17704
+ // If event does not exist, or is changed by the .update()
17705
+ // function
17706
+ if (component.eventOptions[eventType] !== event) {
17707
+ // Remove existing if set by option
17708
+ if (component.eventOptions[eventType]) {
17709
+ removeEvent(component, eventType, component.eventOptions[eventType]);
17710
+ delete component.eventOptions[eventType];
17711
+ }
17712
+ if (isFunction(event)) {
17713
+ component.eventOptions[eventType] = event;
17714
+ addEvent(component, eventType, event);
17715
+ }
17739
17716
  }
17740
- }
17741
- });
17742
- };
17717
+ });
17718
+ }
17719
+ Foundation.registerEventOptions = registerEventOptions;
17720
+ })(Foundation || (Foundation = {}));
17743
17721
  /* *
17744
17722
  *
17745
17723
  * Default Export
17746
17724
  *
17747
17725
  * */
17748
- var exports = {
17749
- registerEventOptions: registerEventOptions
17750
- };
17751
17726
 
17752
- return exports;
17727
+ return Foundation;
17753
17728
  });
17754
17729
  _registerModule(_modules, 'Core/Axis/Tick.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (F, H, U) {
17755
17730
  /* *
@@ -17796,7 +17771,7 @@
17796
17771
  * @param {boolean} [noLabel=false]
17797
17772
  * Whether to disable the label or not. Defaults to false.
17798
17773
  *
17799
- * @param {object} [parameters]
17774
+ * @param {Object} [parameters]
17800
17775
  * Optional parameters for the tick.
17801
17776
  */
17802
17777
  var Tick = /** @class */ (function () {
@@ -18050,7 +18025,7 @@
18050
18025
  * @return {Highcharts.PositionObject}
18051
18026
  * The tick position.
18052
18027
  *
18053
- * @fires Highcharts.Tick#event:afterGetPosition
18028
+ * @emits Highcharts.Tick#event:afterGetPosition
18054
18029
  */
18055
18030
  Tick.prototype.getPosition = function (horiz, tickPos, tickmarkOffset, old) {
18056
18031
  var axis = this.axis,
@@ -18090,9 +18065,7 @@
18090
18065
  };
18091
18066
  /**
18092
18067
  * Get the x, y position of the tick label
18093
- *
18094
18068
  * @private
18095
- * @return {Highcharts.PositionObject}
18096
18069
  */
18097
18070
  Tick.prototype.getLabelPosition = function (x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
18098
18071
  var axis = this.axis,
@@ -18593,7 +18566,7 @@
18593
18566
 
18594
18567
  return Tick;
18595
18568
  });
18596
- _registerModule(_modules, 'Core/Axis/Axis.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/AxisDefaults.js'], _modules['Core/Color/Color.js'], _modules['Core/Color/Palette.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Axis/Tick.js'], _modules['Core/Utilities.js']], function (A, AxisDefaults, Color, Palette, D, F, H, Tick, U) {
18569
+ _registerModule(_modules, 'Core/Axis/Axis.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/AxisDefaults.js'], _modules['Core/Color/Color.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Axis/Tick.js'], _modules['Core/Utilities.js']], function (A, AxisDefaults, Color, D, F, H, Tick, U) {
18597
18570
  /* *
18598
18571
  *
18599
18572
  * (c) 2010-2021 Torstein Honsi
@@ -18742,8 +18715,8 @@
18742
18715
  * @param {AxisOptions} userOptions
18743
18716
  * Axis options.
18744
18717
  *
18745
- * @fires Highcharts.Axis#event:afterInit
18746
- * @fires Highcharts.Axis#event:init
18718
+ * @emits Highcharts.Axis#event:afterInit
18719
+ * @emits Highcharts.Axis#event:init
18747
18720
  */
18748
18721
  Axis.prototype.init = function (chart, userOptions) {
18749
18722
  var isXAxis = userOptions.isX,
@@ -18779,7 +18752,8 @@
18779
18752
  */
18780
18753
  axis.coll = axis.coll || (isXAxis ? 'xAxis' : 'yAxis');
18781
18754
  fireEvent(this, 'init', { userOptions: userOptions });
18782
- axis.opposite = pick(userOptions.opposite, axis.opposite); // needed in setOptions
18755
+ // Needed in setOptions
18756
+ axis.opposite = pick(userOptions.opposite, axis.opposite);
18783
18757
  /**
18784
18758
  * The side on which the axis is rendered. 0 is top, 1 is right, 2
18785
18759
  * is bottom and 3 is left.
@@ -18944,7 +18918,7 @@
18944
18918
  * @param {Highcharts.AxisOptions} userOptions
18945
18919
  * Axis options.
18946
18920
  *
18947
- * @fires Highcharts.Axis#event:afterSetOptions
18921
+ * @emits Highcharts.Axis#event:afterSetOptions
18948
18922
  */
18949
18923
  Axis.prototype.setOptions = function (userOptions) {
18950
18924
  this.options = merge(AxisDefaults.defaultXAxisOptions, (this.coll === 'yAxis') && AxisDefaults.defaultYAxisOptions, [
@@ -19037,8 +19011,8 @@
19037
19011
  * @private
19038
19012
  * @function Highcharts.Axis#getSeriesExtremes
19039
19013
  *
19040
- * @fires Highcharts.Axis#event:afterGetSeriesExtremes
19041
- * @fires Highcharts.Axis#event:getSeriesExtremes
19014
+ * @emits Highcharts.Axis#event:afterGetSeriesExtremes
19015
+ * @emits Highcharts.Axis#event:getSeriesExtremes
19042
19016
  */
19043
19017
  Axis.prototype.getSeriesExtremes = function () {
19044
19018
  var axis = this,
@@ -19136,26 +19110,6 @@
19136
19110
  *
19137
19111
  * @private
19138
19112
  * @function Highcharts.Axis#translate
19139
- *
19140
- * @param {number} val
19141
- * TO-DO: parameter description
19142
- *
19143
- * @param {boolean|null} [backwards]
19144
- * TO-DO: parameter description
19145
- *
19146
- * @param {boolean|null} [cvsCoord]
19147
- * TO-DO: parameter description
19148
- *
19149
- * @param {boolean|null} [old]
19150
- * TO-DO: parameter description
19151
- *
19152
- * @param {boolean} [handleLog]
19153
- * TO-DO: parameter description
19154
- *
19155
- * @param {number} [pointPlacement]
19156
- * TO-DO: parameter description
19157
- *
19158
- * @return {number|undefined}
19159
19113
  */
19160
19114
  Axis.prototype.translate = function (val, backwards, cvsCoord, old, handleLog, pointPlacement) {
19161
19115
  var axis = (this.linkedParent || this), // #1417
@@ -19389,6 +19343,7 @@
19389
19343
  * @function Highcharts.Axis#getMinorTickInterval
19390
19344
  *
19391
19345
  * @return {number|"auto"|null}
19346
+ * Legacy option
19392
19347
  */
19393
19348
  Axis.prototype.getMinorTickInterval = function () {
19394
19349
  var options = this.options;
@@ -19482,7 +19437,10 @@
19482
19437
  if (axis.isXAxis &&
19483
19438
  typeof axis.minRange === 'undefined' &&
19484
19439
  !log) {
19485
- if (defined(options.min) || defined(options.max)) {
19440
+ if (defined(options.min) ||
19441
+ defined(options.max) ||
19442
+ defined(options.floor) ||
19443
+ defined(options.ceiling)) {
19486
19444
  axis.minRange = null; // don't do this again
19487
19445
  }
19488
19446
  else {
@@ -19495,7 +19453,8 @@
19495
19453
  if (xData.length > 1) {
19496
19454
  for (i = loopLength; i > 0; i--) {
19497
19455
  distance = xData[i] - xData[i - 1];
19498
- if (!closestDataRange || distance < closestDataRange) {
19456
+ if (!closestDataRange ||
19457
+ distance < closestDataRange) {
19499
19458
  closestDataRange = distance;
19500
19459
  }
19501
19460
  }
@@ -19550,8 +19509,6 @@
19550
19509
  *
19551
19510
  * @private
19552
19511
  * @function Highcharts.Axis#getClosest
19553
- *
19554
- * @return {number}
19555
19512
  */
19556
19513
  Axis.prototype.getClosest = function () {
19557
19514
  var ret;
@@ -19670,7 +19627,7 @@
19670
19627
  * @private
19671
19628
  * @function Highcharts.Axis#setAxisTranslation
19672
19629
  *
19673
- * @fires Highcharts.Axis#event:afterSetAxisTranslation
19630
+ * @emits Highcharts.Axis#event:afterSetAxisTranslation
19674
19631
  */
19675
19632
  Axis.prototype.setAxisTranslation = function () {
19676
19633
  var axis = this,
@@ -19706,7 +19663,9 @@
19706
19663
  if (!axis.single || hasCategories) {
19707
19664
  // TODO: series should internally set x- and y-
19708
19665
  // pointPlacement to simplify this logic.
19709
- var isPointPlacementAxis = series.is('xrange') ? !isXAxis : isXAxis;
19666
+ var isPointPlacementAxis = series.is('xrange') ?
19667
+ !isXAxis :
19668
+ isXAxis;
19710
19669
  // minPointOffset is the value padding to the left of
19711
19670
  // the axis in order to make room for points with a
19712
19671
  // pointRange, typically columns. When the
@@ -19725,7 +19684,7 @@
19725
19684
  });
19726
19685
  }
19727
19686
  // Record minPointOffset and pointRangePadding
19728
- ordinalCorrection = axis.ordinal && axis.ordinal.slope && closestPointRange ?
19687
+ ordinalCorrection = (axis.ordinal && axis.ordinal.slope && closestPointRange) ?
19729
19688
  axis.ordinal.slope / closestPointRange :
19730
19689
  1; // #988, #1853
19731
19690
  axis.minPointOffset = minPointOffset =
@@ -19754,8 +19713,6 @@
19754
19713
  /**
19755
19714
  * @private
19756
19715
  * @function Highcharts.Axis#minFromRange
19757
- *
19758
- * @return {number|undefined}
19759
19716
  */
19760
19717
  Axis.prototype.minFromRange = function () {
19761
19718
  var axis = this;
@@ -19771,7 +19728,7 @@
19771
19728
  * @param {boolean} secondPass
19772
19729
  * TO-DO: parameter description
19773
19730
  *
19774
- * @fires Highcharts.Axis#event:foundExtremes
19731
+ * @emits Highcharts.Axis#event:foundExtremes
19775
19732
  */
19776
19733
  Axis.prototype.setTickInterval = function (secondPass) {
19777
19734
  var axis = this,
@@ -19786,8 +19743,10 @@
19786
19743
  var maxPadding = options.maxPadding,
19787
19744
  minPadding = options.minPadding,
19788
19745
  length,
19789
- linkedParentExtremes,
19790
- tickIntervalOption = options.tickInterval,
19746
+ linkedParentExtremes,
19747
+ // Only non-negative tickInterval is valid, #12961
19748
+ tickIntervalOption = isNumber(options.tickInterval) && options.tickInterval >= 0 ?
19749
+ options.tickInterval : void 0,
19791
19750
  threshold = isNumber(axis.threshold) ? axis.threshold : null,
19792
19751
  thresholdMin,
19793
19752
  thresholdMax,
@@ -19961,15 +19920,19 @@
19961
19920
  // This is in turn needed in order to find tick positions in ordinal
19962
19921
  // axes.
19963
19922
  if (isXAxis && !secondPass) {
19923
+ var hasExtemesChanged_1 = axis.min !== (axis.old && axis.old.min) ||
19924
+ axis.max !== (axis.old && axis.old.max);
19964
19925
  // First process all series assigned to that axis.
19965
19926
  axis.series.forEach(function (series) {
19966
19927
  // Allows filtering out points outside the plot area.
19967
- series.forceCrop = series.forceCropping && series.forceCropping();
19968
- series.processData(axis.min !== (axis.old && axis.old.min) ||
19969
- axis.max !== (axis.old && axis.old.max));
19928
+ series.forceCrop = (series.forceCropping &&
19929
+ series.forceCropping());
19930
+ series.processData(hasExtemesChanged_1);
19970
19931
  });
19971
- // Then apply grouping if needed.
19972
- fireEvent(this, 'postProcessData');
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.
19935
+ fireEvent(this, 'postProcessData', { hasExtemesChanged: hasExtemesChanged_1 });
19973
19936
  }
19974
19937
  // set the translation factor used in translate function
19975
19938
  axis.setAxisTranslation();
@@ -20013,7 +19976,7 @@
20013
19976
  * @private
20014
19977
  * @function Highcharts.Axis#setTickPositions
20015
19978
  *
20016
- * @fires Highcharts.Axis#event:afterSetTickPositions
19979
+ * @emits Highcharts.Axis#event:afterSetTickPositions
20017
19980
  */
20018
19981
  Axis.prototype.setTickPositions = function () {
20019
19982
  var axis = this,
@@ -20022,8 +19985,8 @@
20022
19985
  minorTickIntervalOption = this.getMinorTickInterval(),
20023
19986
  hasVerticalPanning = this.hasVerticalPanning(),
20024
19987
  isColorAxis = this.coll === 'colorAxis',
20025
- startOnTick = (isColorAxis || !hasVerticalPanning) && options.startOnTick,
20026
- endOnTick = (isColorAxis || !hasVerticalPanning) && options.endOnTick;
19988
+ startOnTick = ((isColorAxis || !hasVerticalPanning) && options.startOnTick),
19989
+ endOnTick = ((isColorAxis || !hasVerticalPanning) && options.endOnTick);
20027
19990
  var tickPositions,
20028
19991
  tickPositioner = options.tickPositioner;
20029
19992
  // Set the tickmarkOffset
@@ -20270,7 +20233,9 @@
20270
20233
  axis.softThreshold ? 0 : null);
20271
20234
  var len,
20272
20235
  i;
20273
- if (axis.hasData() && isNumber(axis.min) && isNumber(axis.max)) { // #14769
20236
+ if (axis.hasData() &&
20237
+ isNumber(axis.min) &&
20238
+ isNumber(axis.max)) { // #14769
20274
20239
  if (currentTickAmount < tickAmount) {
20275
20240
  while (tickPositions.length < tickAmount) {
20276
20241
  // Extend evenly for both sides unless we're on the
@@ -20322,7 +20287,7 @@
20322
20287
  * @private
20323
20288
  * @function Highcharts.Axis#setScale
20324
20289
  *
20325
- * @fires Highcharts.Axis#event:afterSetScale
20290
+ * @emits Highcharts.Axis#event:afterSetScale
20326
20291
  */
20327
20292
  Axis.prototype.setScale = function () {
20328
20293
  var axis = this;
@@ -20391,8 +20356,6 @@
20391
20356
  * Set extremes off ticks
20392
20357
  * @sample stock/members/axis-setextremes/
20393
20358
  * Set extremes in Highcharts Stock
20394
- * @sample maps/members/axis-setextremes/
20395
- * Set extremes in Highmaps
20396
20359
  *
20397
20360
  * @function Highcharts.Axis#setExtremes
20398
20361
  *
@@ -20412,7 +20375,7 @@
20412
20375
  * @param {*} [eventArguments]
20413
20376
  * Arguments to be accessed in event handler.
20414
20377
  *
20415
- * @fires Highcharts.Axis#event:setExtremes
20378
+ * @emits Highcharts.Axis#event:setExtremes
20416
20379
  */
20417
20380
  Axis.prototype.setExtremes = function (newMin, newMax, redraw, animation, eventArguments) {
20418
20381
  var axis = this,
@@ -20442,14 +20405,6 @@
20442
20405
  *
20443
20406
  * @private
20444
20407
  * @function Highcharts.Axis#zoom
20445
- *
20446
- * @param {number} newMin
20447
- * TO-DO: parameter description
20448
- *
20449
- * @param {number} newMax
20450
- * TO-DO: parameter description
20451
- *
20452
- * @return {boolean}
20453
20408
  */
20454
20409
  Axis.prototype.zoom = function (newMin, newMax) {
20455
20410
  var axis = this,
@@ -20544,8 +20499,6 @@
20544
20499
  *
20545
20500
  * @sample highcharts/members/axis-getextremes/
20546
20501
  * Report extremes by click on a button
20547
- * @sample maps/members/axis-getextremes/
20548
- * Get extremes in Highmaps
20549
20502
  *
20550
20503
  * @function Highcharts.Axis#getExtremes
20551
20504
  *
@@ -20662,8 +20615,6 @@
20662
20615
  *
20663
20616
  * @private
20664
20617
  * @function Highcharts.Axis#labelMetrics
20665
- *
20666
- * @return {Highcharts.FontMetricsObject}
20667
20618
  */
20668
20619
  Axis.prototype.labelMetrics = function () {
20669
20620
  var index = this.tickPositions && this.tickPositions[0] || 0;
@@ -20676,8 +20627,6 @@
20676
20627
  *
20677
20628
  * @private
20678
20629
  * @function Highcharts.Axis#unsquish
20679
- *
20680
- * @return {number}
20681
20630
  */
20682
20631
  Axis.prototype.unsquish = function () {
20683
20632
  var labelOptions = this.options.labels,
@@ -21039,18 +20988,21 @@
21039
20988
  * @private
21040
20989
  * @function Highcharts.Axis#getOffset
21041
20990
  *
21042
- * @fires Highcharts.Axis#event:afterGetOffset
20991
+ * @emits Highcharts.Axis#event:afterGetOffset
21043
20992
  */
21044
20993
  Axis.prototype.getOffset = function () {
21045
20994
  var _this = this;
21046
20995
  var axis = this,
21047
20996
  chart = axis.chart,
21048
- renderer = chart.renderer,
21049
- options = axis.options,
21050
- tickPositions = axis.tickPositions,
21051
- ticks = axis.ticks,
21052
20997
  horiz = axis.horiz,
20998
+ options = axis.options,
21053
20999
  side = axis.side,
21000
+ ticks = axis.ticks,
21001
+ tickPositions = axis.tickPositions,
21002
+ coll = axis.coll,
21003
+ axisParent = axis.axisParent // Used in color axis
21004
+ ,
21005
+ renderer = chart.renderer,
21054
21006
  invertedSide = (chart.inverted && !axis.isZAxis ?
21055
21007
  [1, 0, 3, 2][side] :
21056
21008
  side),
@@ -21060,9 +21012,8 @@
21060
21012
  axisOffset = chart.axisOffset,
21061
21013
  clipOffset = chart.clipOffset,
21062
21014
  directionFactor = [-1, 1, 1, -1][side],
21063
- className = options.className,
21064
- axisParent = axis.axisParent; // Used in color axis
21065
- var showAxis,
21015
+ className = options.className;
21016
+ var showAxis,
21066
21017
  titleOffset = 0,
21067
21018
  titleOffsetOption,
21068
21019
  titleMargin = 0,
@@ -21079,7 +21030,7 @@
21079
21030
  suffix,
21080
21031
  zIndex) { return renderer.g(name)
21081
21032
  .attr({ zIndex: zIndex })
21082
- .addClass("highcharts-" + _this.coll.toLowerCase() + suffix + " " +
21033
+ .addClass("highcharts-" + coll.toLowerCase() + suffix + " " +
21083
21034
  (_this.isRadial ? "highcharts-radial-axis" + suffix + " " : '') +
21084
21035
  (className || ''))
21085
21036
  .add(axisParent); };
@@ -21157,21 +21108,23 @@
21157
21108
  }
21158
21109
  // Due to GridAxis.tickSize, tickSize should be calculated after ticks
21159
21110
  // has rendered.
21160
- var tickSize = this.tickSize('tick');
21161
- axisOffset[side] = Math.max(axisOffset[side], (axis.axisTitleMargin || 0) + titleOffset +
21162
- directionFactor * axis.offset, labelOffsetPadded, // #3027
21163
- tickPositions && tickPositions.length && tickSize ?
21164
- tickSize[0] + directionFactor * axis.offset :
21165
- 0 // #4866
21166
- );
21167
- // Decide the clipping needed to keep the graph inside
21168
- // the plot area and axis lines
21169
- var clip = options.offset ?
21170
- 0 :
21171
- // #4308, #4371:
21172
- Math.floor(axis.axisLine.strokeWidth() / 2) * 2;
21173
- clipOffset[invertedSide] =
21174
- Math.max(clipOffset[invertedSide], clip);
21111
+ if (coll !== 'colorAxis') {
21112
+ var tickSize = this.tickSize('tick');
21113
+ axisOffset[side] = Math.max(axisOffset[side], (axis.axisTitleMargin || 0) + titleOffset +
21114
+ directionFactor * axis.offset, labelOffsetPadded, // #3027
21115
+ tickPositions && tickPositions.length && tickSize ?
21116
+ tickSize[0] + directionFactor * axis.offset :
21117
+ 0 // #4866
21118
+ );
21119
+ // Decide the clipping needed to keep the graph inside
21120
+ // the plot area and axis lines
21121
+ var clip = !axis.axisLine || options.offset ?
21122
+ 0 :
21123
+ // #4308, #4371:
21124
+ Math.floor(axis.axisLine.strokeWidth() / 2) * 2;
21125
+ clipOffset[invertedSide] =
21126
+ Math.max(clipOffset[invertedSide], clip);
21127
+ }
21175
21128
  fireEvent(this, 'afterGetOffset');
21176
21129
  };
21177
21130
  /**
@@ -21362,7 +21315,7 @@
21362
21315
  * @private
21363
21316
  * @function Highcharts.Axis#render
21364
21317
  *
21365
- * @fires Highcharts.Axis#event:afterRender
21318
+ * @emits Highcharts.Axis#event:afterRender
21366
21319
  */
21367
21320
  Axis.prototype.render = function () {
21368
21321
  var axis = this,
@@ -21453,7 +21406,8 @@
21453
21406
  (options.plotLines || [])
21454
21407
  .concat(options.plotBands || [])
21455
21408
  .forEach(function (plotLineOptions) {
21456
- axis.addPlotBandOrLine(plotLineOptions);
21409
+ axis
21410
+ .addPlotBandOrLine(plotLineOptions);
21457
21411
  });
21458
21412
  }
21459
21413
  } // end if hasData
@@ -21553,8 +21507,6 @@
21553
21507
  *
21554
21508
  * @private
21555
21509
  * @function Highcharts.Axis#getKeepProps
21556
- *
21557
- * @return {Array<string>}
21558
21510
  */
21559
21511
  Axis.prototype.getKeepProps = function () {
21560
21512
  return (this.keepProps || Axis.keepProps);
@@ -21620,8 +21572,8 @@
21620
21572
  * @param {Highcharts.Point} [point]
21621
21573
  * The Point object if the crosshair snaps to points.
21622
21574
  *
21623
- * @fires Highcharts.Axis#event:afterDrawCrosshair
21624
- * @fires Highcharts.Axis#event:drawCrosshair
21575
+ * @emits Highcharts.Axis#event:afterDrawCrosshair
21576
+ * @emits Highcharts.Axis#event:drawCrosshair
21625
21577
  */
21626
21578
  Axis.prototype.drawCrosshair = function (e, point) {
21627
21579
  var options = this.crosshair,
@@ -21705,10 +21657,10 @@
21705
21657
  stroke: options.color ||
21706
21658
  (categorized ?
21707
21659
  Color
21708
- .parse(Palette.highlightColor20)
21660
+ .parse("#ccd6eb" /* highlightColor20 */)
21709
21661
  .setOpacity(0.25)
21710
21662
  .get() :
21711
- Palette.neutralColor20),
21663
+ "#cccccc" /* neutralColor20 */),
21712
21664
  'stroke-width': pick(options.width, 1)
21713
21665
  }).css({
21714
21666
  'pointer-events': 'none'
@@ -21748,8 +21700,6 @@
21748
21700
  *
21749
21701
  * @private
21750
21702
  * @function Highcharts.Axis#hasVerticalPanning
21751
- *
21752
- * @return {boolean}
21753
21703
  */
21754
21704
  Axis.prototype.hasVerticalPanning = function () {
21755
21705
  var panningOptions = this.chart.options.chart.panning;
@@ -21765,8 +21715,6 @@
21765
21715
  *
21766
21716
  * @param {unknown} value
21767
21717
  * The axis value
21768
- *
21769
- * @return {boolean}
21770
21718
  */
21771
21719
  Axis.prototype.validatePositiveValue = function (value) {
21772
21720
  return isNumber(value) && value > 0;
@@ -21876,7 +21824,14 @@
21876
21824
  Axis.defaultOptions = AxisDefaults.defaultXAxisOptions;
21877
21825
  // Properties to survive after destroy, needed for Axis.update (#4317,
21878
21826
  // #5773, #5881).
21879
- Axis.keepProps = ['extKey', 'hcEvents', 'names', 'series', 'userMax', 'userMin'];
21827
+ Axis.keepProps = [
21828
+ 'extKey',
21829
+ 'hcEvents',
21830
+ 'names',
21831
+ 'series',
21832
+ 'userMax',
21833
+ 'userMin'
21834
+ ];
21880
21835
  return Axis;
21881
21836
  }());
21882
21837
  /* *
@@ -22177,19 +22132,12 @@
22177
22132
  *
22178
22133
  * @private
22179
22134
  * @function Highcharts.Axis#getTimeTicks
22180
- *
22181
22135
  * @param {Highcharts.TimeNormalizeObject} normalizedInterval
22182
22136
  * The interval in axis values (ms) and thecount.
22183
- *
22184
22137
  * @param {number} min
22185
22138
  * The minimum in axis values.
22186
- *
22187
22139
  * @param {number} max
22188
22140
  * The maximum in axis values.
22189
- *
22190
- * @param {number} startOfWeek
22191
- *
22192
- * @return {Highcharts.AxisTickPositionsArray}
22193
22141
  */
22194
22142
  function getTimeTicks() {
22195
22143
  return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);
@@ -22239,8 +22187,10 @@
22239
22187
  */
22240
22188
  Additions.prototype.normalizeTimeTickInterval = function (tickInterval, unitsOption) {
22241
22189
  var units = (unitsOption || [[
22190
+ // unit name
22242
22191
  'millisecond',
22243
- [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]
22244
22194
  ],
22245
22195
  [
22246
22196
  'second',
@@ -22313,12 +22263,6 @@
22313
22263
  * point range on the axis.
22314
22264
  *
22315
22265
  * @private
22316
- *
22317
- * @param {number} x
22318
- *
22319
- * @param {Highcharts.Dictionary<string>} dateTimeLabelFormats
22320
- *
22321
- * @return {string}
22322
22266
  */
22323
22267
  Additions.prototype.getXDateFormat = function (x, dateTimeLabelFormats) {
22324
22268
  var axis = this.axis;
@@ -22745,13 +22689,8 @@
22745
22689
  *
22746
22690
  * @private
22747
22691
  * @function Highcharts.Axis#addPlotBandOrLine
22748
- *
22749
22692
  * @param {Highcharts.AxisPlotBandsOptions|Highcharts.AxisPlotLinesOptions} options
22750
22693
  * The plotBand or plotLine configuration object.
22751
- *
22752
- * @param {"plotBands"|"plotLines"} [coll]
22753
- *
22754
- * @return {Highcharts.PlotLineOrBand|undefined}
22755
22694
  */
22756
22695
  Additions.prototype.addPlotBandOrLine = function (options, coll) {
22757
22696
  var _this = this;
@@ -22858,7 +22797,7 @@
22858
22797
 
22859
22798
  return PlotLineOrBandAxis;
22860
22799
  });
22861
- _registerModule(_modules, 'Core/Axis/PlotLineOrBand/PlotLineOrBand.js', [_modules['Core/Color/Palette.js'], _modules['Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js'], _modules['Core/Utilities.js']], function (Palette, PlotLineOrBandAxis, U) {
22800
+ _registerModule(_modules, 'Core/Axis/PlotLineOrBand/PlotLineOrBand.js', [_modules['Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js'], _modules['Core/Utilities.js']], function (PlotLineOrBandAxis, U) {
22862
22801
  /* *
22863
22802
  *
22864
22803
  * (c) 2010-2021 Torstein Honsi
@@ -22964,7 +22903,7 @@
22964
22903
  // Set the presentational attributes
22965
22904
  if (!axis.chart.styledMode) {
22966
22905
  if (isLine) {
22967
- attribs.stroke = color || Palette.neutralColor40;
22906
+ attribs.stroke = color || "#999999" /* neutralColor40 */;
22968
22907
  attribs['stroke-width'] = pick(options.width, 1);
22969
22908
  if (options.dashStyle) {
22970
22909
  attribs.dashstyle =
@@ -22972,7 +22911,7 @@
22972
22911
  }
22973
22912
  }
22974
22913
  else if (isBand) { // plot band
22975
- attribs.fill = color || Palette.highlightColor10;
22914
+ attribs.fill = color || "#e6ebf5" /* highlightColor10 */;
22976
22915
  if (options.borderWidth) {
22977
22916
  attribs.stroke = options.borderColor;
22978
22917
  attribs['stroke-width'] = options.borderWidth;
@@ -23237,7 +23176,7 @@
23237
23176
  * Plot band on Y axis
23238
23177
  *
23239
23178
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
23240
- * @default ${palette.highlightColor10}
23179
+ * @default #e6ebf5
23241
23180
  * @apioption xAxis.plotBands.color
23242
23181
  */
23243
23182
  /**
@@ -23485,7 +23424,7 @@
23485
23424
  * Plot line on Y axis
23486
23425
  *
23487
23426
  * @type {Highcharts.ColorString}
23488
- * @default ${palette.neutralColor40}
23427
+ * @default #999999
23489
23428
  * @apioption xAxis.plotLines.color
23490
23429
  */
23491
23430
  /**
@@ -23762,7 +23701,7 @@
23762
23701
 
23763
23702
  return PlotLineOrBand;
23764
23703
  });
23765
- _registerModule(_modules, 'Core/Tooltip.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Color/Palette.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Utilities.js']], function (F, H, palette, R, RendererRegistry, U) {
23704
+ _registerModule(_modules, 'Core/Tooltip.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Utilities.js']], function (F, H, R, RendererRegistry, U) {
23766
23705
  /* *
23767
23706
  *
23768
23707
  * (c) 2010-2021 Torstein Honsi
@@ -23814,7 +23753,13 @@
23814
23753
  *
23815
23754
  * */
23816
23755
  function Tooltip(chart, options) {
23817
- this.container = void 0;
23756
+ /* *
23757
+ *
23758
+ * Properties
23759
+ *
23760
+ * */
23761
+ this.allowShared = true;
23762
+ this.container = void 0;
23818
23763
  this.crosshairs = [];
23819
23764
  this.distance = 0;
23820
23765
  this.isHidden = true;
@@ -23888,8 +23833,6 @@
23888
23833
  *
23889
23834
  * @private
23890
23835
  * @function Highcharts.Tooltip#bodyFormatter
23891
- * @param {Array<(Highcharts.Point|Highcharts.Series)>} items
23892
- * @return {Array<string>}
23893
23836
  */
23894
23837
  Tooltip.prototype.bodyFormatter = function (items) {
23895
23838
  return items.map(function (item) {
@@ -23906,7 +23849,7 @@
23906
23849
  * @function Highcharts.Tooltip#cleanSplit
23907
23850
  *
23908
23851
  * @param {boolean} [force]
23909
- * Force destroy all tooltips.
23852
+ * Force destroy all tooltips.
23910
23853
  */
23911
23854
  Tooltip.prototype.cleanSplit = function (force) {
23912
23855
  this.chart.series.forEach(function (series) {
@@ -23926,10 +23869,6 @@
23926
23869
  * the context here is an object holding point, series, x, y etc.
23927
23870
  *
23928
23871
  * @function Highcharts.Tooltip#defaultFormatter
23929
- *
23930
- * @param {Highcharts.Tooltip} tooltip
23931
- *
23932
- * @return {Array<string>}
23933
23872
  */
23934
23873
  Tooltip.prototype.defaultFormatter = function (tooltip) {
23935
23874
  var items = this.points || splat(this);
@@ -23953,7 +23892,7 @@
23953
23892
  this.label = this.label.destroy();
23954
23893
  }
23955
23894
  if (this.split && this.tt) {
23956
- this.cleanSplit(this.chart, true);
23895
+ this.cleanSplit(true);
23957
23896
  this.tt = this.tt.destroy();
23958
23897
  }
23959
23898
  if (this.renderer) {
@@ -23969,12 +23908,6 @@
23969
23908
  *
23970
23909
  * @private
23971
23910
  * @function Highcharts.Tooltip#getAnchor
23972
- *
23973
- * @param {Highcharts.Point|Array<Highcharts.Point>} points
23974
- *
23975
- * @param {Highcharts.PointerEventObject} [mouseEvent]
23976
- *
23977
- * @return {Array<number>}
23978
23911
  */
23979
23912
  Tooltip.prototype.getAnchor = function (points, mouseEvent) {
23980
23913
  var chart = this.chart,
@@ -24019,8 +23952,8 @@
24019
23952
  plotY += yAxis.pos - plotTop;
24020
23953
  }
24021
23954
  else { // #14771
24022
- plotX += plotTop + chart.plotHeight - xAxis.len - xAxis.pos;
24023
- 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);
24024
23957
  }
24025
23958
  }
24026
23959
  });
@@ -24047,17 +23980,21 @@
24047
23980
  * Creates the Tooltip label element if it does not exist, then returns it.
24048
23981
  *
24049
23982
  * @function Highcharts.Tooltip#getLabel
23983
+ *
24050
23984
  * @return {Highcharts.SVGElement}
23985
+ * Tooltip label
24051
23986
  */
24052
23987
  Tooltip.prototype.getLabel = function () {
24053
23988
  var tooltip = this,
24054
23989
  styledMode = this.chart.styledMode,
24055
23990
  options = this.options,
23991
+ doSplit = this.split && this.allowShared,
24056
23992
  className = ('tooltip' + (defined(options.className) ?
24057
23993
  ' ' + options.className :
24058
23994
  '')),
24059
23995
  pointerEvents = (options.style.pointerEvents ||
24060
- (!this.followPointer && options.stickOnContact ? 'auto' : 'none')),
23996
+ (!this.followPointer &&
23997
+ options.stickOnContact ? 'auto' : 'none')),
24061
23998
  onMouseEnter = function () {
24062
23999
  tooltip.inContact = true;
24063
24000
  }, onMouseLeave = function (e) {
@@ -24073,6 +24010,14 @@
24073
24010
  };
24074
24011
  var container,
24075
24012
  renderer = this.chart.renderer;
24013
+ // If changing from a split tooltip to a non-split tooltip, we must
24014
+ // destroy it in order to get the SVG right. #13868.
24015
+ if (tooltip.label) {
24016
+ var wasSplit = !tooltip.label.hasClass('highcharts-label');
24017
+ if ((doSplit && !wasSplit) || (!doSplit && wasSplit)) {
24018
+ tooltip.destroy();
24019
+ }
24020
+ }
24076
24021
  if (!this.label) {
24077
24022
  if (this.outside) {
24078
24023
  var chartStyle = this.chart.options.chart.style,
@@ -24107,7 +24052,7 @@
24107
24052
  this.renderer = renderer = new Renderer(container, 0, 0, chartStyle, void 0, void 0, renderer.styledMode);
24108
24053
  }
24109
24054
  // Create the label
24110
- if (this.split) {
24055
+ if (doSplit) {
24111
24056
  this.label = renderer.g(className);
24112
24057
  }
24113
24058
  else {
@@ -24165,14 +24110,6 @@
24165
24110
  *
24166
24111
  * @private
24167
24112
  * @function Highcharts.Tooltip#getPosition
24168
- *
24169
- * @param {number} boxWidth
24170
- *
24171
- * @param {number} boxHeight
24172
- *
24173
- * @param {Highcharts.Point} point
24174
- *
24175
- * @return {Highcharts.PositionObject}
24176
24113
  */
24177
24114
  Tooltip.prototype.getPosition = function (boxWidth, boxHeight, point) {
24178
24115
  var chart = this.chart,
@@ -24226,8 +24163,17 @@
24226
24163
  ]);
24227
24164
  };
24228
24165
  var first = buildDimensionArray('y'), second = buildDimensionArray('x'), swapped;
24166
+ // Handle negative points or reversed axis (#13780)
24167
+ var flipped = !!point.negative;
24168
+ if (!chart.polar &&
24169
+ chart.hoverSeries &&
24170
+ chart.hoverSeries.yAxis &&
24171
+ chart.hoverSeries.yAxis.reversed) {
24172
+ flipped = !flipped;
24173
+ }
24229
24174
  // The far side is right or bottom
24230
- var preferFarSide = !this.followPointer && pick(point.ttBelow, !chart.inverted === !!point.negative), // #4984
24175
+ var preferFarSide = !this.followPointer &&
24176
+ pick(point.ttBelow, !chart.inverted === flipped), // #4984
24231
24177
  /*
24232
24178
  * Handle the preferred dimension. When the preferred dimension is
24233
24179
  * tooltip on top or bottom of the point,
@@ -24529,17 +24475,19 @@
24529
24475
  return;
24530
24476
  }
24531
24477
  U.clearTimeout(this.hideTimer);
24478
+ // A switch saying if this specific tooltip configuration allows shared
24479
+ // or split modes
24480
+ tooltip.allowShared = !(!isArray(pointOrPoints) &&
24481
+ pointOrPoints.series &&
24482
+ pointOrPoints.series.noSharedTooltip);
24532
24483
  // get the reference point coordinates (pie charts use tooltipPos)
24533
- tooltip.followPointer = !tooltip.split && point.series.tooltipOptions.followPointer;
24484
+ tooltip.followPointer = (!tooltip.split && point.series.tooltipOptions.followPointer);
24534
24485
  var anchor = tooltip.getAnchor(pointOrPoints,
24535
24486
  mouseEvent),
24536
24487
  x = anchor[0],
24537
24488
  y = anchor[1];
24538
24489
  // shared tooltip, array is sent over
24539
- if (shared &&
24540
- !(!isArray(pointOrPoints) &&
24541
- pointOrPoints.series &&
24542
- pointOrPoints.series.noSharedTooltip)) {
24490
+ if (shared && tooltip.allowShared) {
24543
24491
  chart.pointer.applyInactiveState(points);
24544
24492
  // Now set hover state for the choosen ones:
24545
24493
  points.forEach(function (item) {
@@ -24568,20 +24516,22 @@
24568
24516
  }
24569
24517
  else {
24570
24518
  // update text
24571
- if (tooltip.split) {
24519
+ if (tooltip.split && tooltip.allowShared) { // #13868
24572
24520
  this.renderSplit(text, points);
24573
24521
  }
24574
24522
  else {
24575
- var checkX = x;
24576
- var checkY = y;
24523
+ var checkX_1 = x;
24524
+ var checkY_1 = y;
24577
24525
  if (mouseEvent && chart.pointer.isDirectTouch) {
24578
- checkX = mouseEvent.chartX - chart.plotLeft;
24579
- checkY = mouseEvent.chartY - chart.plotTop;
24526
+ checkX_1 = mouseEvent.chartX - chart.plotLeft;
24527
+ checkY_1 = mouseEvent.chartY - chart.plotTop;
24580
24528
  }
24581
24529
  // #11493, #13095
24582
24530
  if (chart.polar ||
24583
24531
  currentSeries.options.clip === false ||
24584
- currentSeries.shouldShowTooltip(checkX, checkY)) {
24532
+ points.some(function (p) {
24533
+ return p.series.shouldShowTooltip(checkX_1, checkY_1);
24534
+ })) {
24585
24535
  var label = tooltip.getLabel();
24586
24536
  // Prevent the tooltip from flowing over the chart box
24587
24537
  // (#6659)
@@ -24604,7 +24554,7 @@
24604
24554
  stroke: (options.borderColor ||
24605
24555
  point.color ||
24606
24556
  currentSeries.color ||
24607
- palette.neutralColor60)
24557
+ "#666666" /* neutralColor60 */)
24608
24558
  });
24609
24559
  }
24610
24560
  tooltip.updatePosition({
@@ -24665,9 +24615,10 @@
24665
24615
  options = tooltip.options,
24666
24616
  positioner = tooltip.options.positioner;
24667
24617
  // The area which the tooltip should be limited to. Limit to scrollable
24668
- // plot area if enabled, otherwise limit to the chart container.
24669
- // If outside is true it should be the whole viewport
24670
- 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') ?
24671
24622
  doc.documentElement.getBoundingClientRect() : {
24672
24623
  left: scrollLeft,
24673
24624
  right: scrollLeft + chartWidth,
@@ -24688,7 +24639,7 @@
24688
24639
  *
24689
24640
  * @private
24690
24641
  * @param {Highcharts.Point} point The point related to the tooltip
24691
- * @return {object} Returns an object with anchorX and anchorY
24642
+ * @return {Object} Returns an object with anchorX and anchorY
24692
24643
  */
24693
24644
  function getAnchor(point) {
24694
24645
  var isHeader = point.isHeader,
@@ -24803,7 +24754,7 @@
24803
24754
  stroke: (options.borderColor ||
24804
24755
  point.color ||
24805
24756
  series.color ||
24806
- palette.neutralColor80)
24757
+ "#333333" /* neutralColor80 */)
24807
24758
  });
24808
24759
  }
24809
24760
  return tt;
@@ -24880,13 +24831,14 @@
24880
24831
  }
24881
24832
  return boxes;
24882
24833
  }, []);
24883
- // Realign the tooltips towards the right if there is not enough
24884
- // 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
24885
24836
  if (!positioner && boxes.some(function (box) {
24886
24837
  // Always realign if the beginning of a label is outside bounds
24887
24838
  var outside = tooltip.outside;
24888
24839
  var boxStart = (outside ? chartLeft : 0) + box.anchorX;
24889
- if (boxStart < bounds.left && boxStart + box.boxWidth < bounds.right) {
24840
+ if (boxStart < bounds.left &&
24841
+ boxStart + box.boxWidth < bounds.right) {
24890
24842
  return true;
24891
24843
  }
24892
24844
  // Otherwise, check if there is more space available to the right
@@ -24924,7 +24876,9 @@
24924
24876
  if (tooltip.outside && chartLeft + x < boxExtremes.left) {
24925
24877
  boxExtremes.left = chartLeft + x;
24926
24878
  }
24927
- if (!isHeader && tooltip.outside && boxExtremes.left + boxWidth > boxExtremes.right) {
24879
+ if (!isHeader &&
24880
+ tooltip.outside &&
24881
+ boxExtremes.left + boxWidth > boxExtremes.right) {
24928
24882
  boxExtremes.right = chartLeft + x;
24929
24883
  }
24930
24884
  }
@@ -25058,9 +25012,6 @@
25058
25012
  *
25059
25013
  * @private
25060
25014
  * @function Highcharts.Tooltip#tooltipFooterHeaderFormatter
25061
- * @param {Highcharts.PointLabelObject} labelConfig
25062
- * @param {boolean} [isFooter]
25063
- * @return {string}
25064
25015
  */
25065
25016
  Tooltip.prototype.tooltipFooterHeaderFormatter = function (labelConfig, isFooter) {
25066
25017
  var series = labelConfig.series,
@@ -25469,7 +25420,9 @@
25469
25420
  options = Point.prototype.optionsToObject.call(this, options);
25470
25421
  // copy options directly to point
25471
25422
  extend(point, options);
25472
- point.options = point.options ? extend(point.options, options) : options;
25423
+ point.options = point.options ?
25424
+ extend(point.options, options) :
25425
+ options;
25473
25426
  // Since options are copied into the Point instance, some accidental
25474
25427
  // options must be shielded (#5681)
25475
25428
  if (options.group) {
@@ -25611,7 +25564,7 @@
25611
25564
  * @param {Highcharts.EventCallbackFunction<Highcharts.Point>|Function} [defaultFunction]
25612
25565
  * Default event handler.
25613
25566
  *
25614
- * @fires Highcharts.Point#event:*
25567
+ * @emits Highcharts.Point#event:*
25615
25568
  */
25616
25569
  Point.prototype.firePointEvent = function (eventType, eventArgs, defaultFunction) {
25617
25570
  var point = this,
@@ -25662,8 +25615,6 @@
25662
25615
  *
25663
25616
  * @private
25664
25617
  * @function Highcharts.Point#getGraphicalProps
25665
- * @param {Highcharts.Dictionary<number>} [kinds]
25666
- * @return {Highcharts.PointGraphicalProps}
25667
25618
  */
25668
25619
  Point.prototype.getGraphicalProps = function (kinds) {
25669
25620
  var point = this,
@@ -25762,8 +25713,7 @@
25762
25713
  /**
25763
25714
  * Utility to check if point has new shape type. Used in column series and
25764
25715
  * all others that are based on column series.
25765
- *
25766
- * @return boolean|undefined
25716
+ * @private
25767
25717
  */
25768
25718
  Point.prototype.hasNewShapeType = function () {
25769
25719
  var point = this;
@@ -25789,7 +25739,7 @@
25789
25739
  * @return {Highcharts.Point}
25790
25740
  * The Point instance.
25791
25741
  *
25792
- * @fires Highcharts.Point#event:afterInit
25742
+ * @emits Highcharts.Point#event:afterInit
25793
25743
  */
25794
25744
  Point.prototype.init = function (series, options, x) {
25795
25745
  this.series = series;
@@ -25808,13 +25758,14 @@
25808
25758
  * transformed to `{ y: 10 }`, and an array config like `[1, 10]` in a
25809
25759
  * scatter series will be transformed to `{ x: 1, y: 10 }`.
25810
25760
  *
25761
+ * @deprecated
25811
25762
  * @function Highcharts.Point#optionsToObject
25812
25763
  *
25813
25764
  * @param {Highcharts.PointOptionsType} options
25814
- * The input option.
25765
+ * Series data options.
25815
25766
  *
25816
25767
  * @return {Highcharts.Dictionary<*>}
25817
- * Transformed options.
25768
+ * Transformed point options.
25818
25769
  */
25819
25770
  Point.prototype.optionsToObject = function (options) {
25820
25771
  var series = this.series,
@@ -25874,7 +25825,6 @@
25874
25825
  /**
25875
25826
  * @private
25876
25827
  * @function Highcharts.Point#resolveColor
25877
- * @return {void}
25878
25828
  */
25879
25829
  Point.prototype.resolveColor = function () {
25880
25830
  var series = this.series,
@@ -26009,7 +25959,7 @@
26009
25959
  * Whether to apply animation, and optionally animation
26010
25960
  * configuration.
26011
25961
  *
26012
- * @fires Highcharts.Point#event:update
25962
+ * @emits Highcharts.Point#event:update
26013
25963
  */
26014
25964
  Point.prototype.update = function (options, redraw, animation, runEvent) {
26015
25965
  var point = this,
@@ -26027,7 +25977,9 @@
26027
25977
  // Update visuals, #4146
26028
25978
  // Handle dummy graphic elements for a11y, #12718
26029
25979
  var hasDummyGraphic = graphic && point.hasDummyGraphic;
26030
- var shouldDestroyGraphic = point.y === null ? !hasDummyGraphic : hasDummyGraphic;
25980
+ var shouldDestroyGraphic = point.y === null ?
25981
+ !hasDummyGraphic :
25982
+ hasDummyGraphic;
26031
25983
  if (graphic && shouldDestroyGraphic) {
26032
25984
  point.graphic = graphic.destroy();
26033
25985
  delete point.hasDummyGraphic;
@@ -26130,8 +26082,8 @@
26130
26082
  * is `true`, selected points are accumulated on Control, Shift or Cmd
26131
26083
  * clicking the point.
26132
26084
  *
26133
- * @fires Highcharts.Point#event:select
26134
- * @fires Highcharts.Point#event:unselect
26085
+ * @emits Highcharts.Point#event:select
26086
+ * @emits Highcharts.Point#event:unselect
26135
26087
  */
26136
26088
  Point.prototype.select = function (selected, accumulate) {
26137
26089
  var point = this,
@@ -26200,7 +26152,7 @@
26200
26152
  * events.
26201
26153
  *
26202
26154
  * @function Highcharts.Point#onMouseOut
26203
- * @fires Highcharts.Point#event:mouseOut
26155
+ * @emits Highcharts.Point#event:mouseOut
26204
26156
  */
26205
26157
  Point.prototype.onMouseOut = function () {
26206
26158
  var point = this,
@@ -26247,7 +26199,7 @@
26247
26199
  * @param {boolean} [move]
26248
26200
  * State for animation.
26249
26201
  *
26250
- * @fires Highcharts.Point#event:afterSetState
26202
+ * @emits Highcharts.Point#event:afterSetState
26251
26203
  */
26252
26204
  Point.prototype.setState = function (state, move) {
26253
26205
  var point = this,
@@ -26308,8 +26260,9 @@
26308
26260
  pointAttribs = series.pointAttribs(point, state);
26309
26261
  pointAttribsAnimation = pick(chart.options.chart.animation, stateOptions.animation);
26310
26262
  // Some inactive points (e.g. slices in pie) should apply
26311
- // oppacity also for it's labels
26312
- if (series.options.inactiveOtherPoints && isNumber(pointAttribs.opacity)) {
26263
+ // opacity also for their labels
26264
+ if (series.options.inactiveOtherPoints &&
26265
+ isNumber(pointAttribs.opacity)) {
26313
26266
  (point.dataLabels || []).forEach(function (label) {
26314
26267
  if (label) {
26315
26268
  label.animate({
@@ -26365,7 +26318,8 @@
26365
26318
  });
26366
26319
  }
26367
26320
  }
26368
- if (!chart.styledMode && stateMarkerGraphic) {
26321
+ if (!chart.styledMode && stateMarkerGraphic &&
26322
+ point.state !== 'inactive') {
26369
26323
  stateMarkerGraphic.attr(series.pointAttribs(point, state));
26370
26324
  }
26371
26325
  }
@@ -26643,7 +26597,7 @@
26643
26597
 
26644
26598
  return Point;
26645
26599
  });
26646
- _registerModule(_modules, 'Core/Pointer.js', [_modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Color/Palette.js'], _modules['Core/Tooltip.js'], _modules['Core/Utilities.js']], function (Color, H, Palette, Tooltip, U) {
26600
+ _registerModule(_modules, 'Core/Pointer.js', [_modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Tooltip.js'], _modules['Core/Utilities.js']], function (Color, H, Tooltip, U) {
26647
26601
  /* *
26648
26602
  *
26649
26603
  * (c) 2010-2021 Torstein Honsi
@@ -26769,7 +26723,7 @@
26769
26723
  Pointer.unbindDocumentMouseUp = Pointer.unbindDocumentMouseUp();
26770
26724
  }
26771
26725
  if (Pointer.unbindDocumentTouchEnd) {
26772
- Pointer.unbindDocumentTouchEnd = Pointer.unbindDocumentTouchEnd();
26726
+ Pointer.unbindDocumentTouchEnd = (Pointer.unbindDocumentTouchEnd());
26773
26727
  }
26774
26728
  }
26775
26729
  // memory and CPU leak
@@ -26832,7 +26786,7 @@
26832
26786
  visiblePlotOnly: true
26833
26787
  });
26834
26788
  // make a selection
26835
- if (chart.hasCartesianSeries &&
26789
+ if ((chart.hasCartesianSeries || chart.mapView) &&
26836
26790
  (this.zoomX || this.zoomY) &&
26837
26791
  clickedInside &&
26838
26792
  !panKey) {
@@ -26847,7 +26801,7 @@
26847
26801
  if (!chart.styledMode) {
26848
26802
  selectionMarker.attr({
26849
26803
  fill: (chartOptions.selectionMarkerFill ||
26850
- color(Palette.highlightColor80)
26804
+ color("#335cad" /* highlightColor80 */)
26851
26805
  .setOpacity(0.25).get())
26852
26806
  });
26853
26807
  }
@@ -26900,25 +26854,22 @@
26900
26854
  chart = this.chart,
26901
26855
  hasPinched = this.hasPinched;
26902
26856
  if (this.selectionMarker) {
26903
- var selectionData_1 = {
26904
- originalEvent: e,
26905
- xAxis: [],
26906
- yAxis: []
26907
- },
26908
- selectionBox = this.selectionMarker,
26909
- selectionLeft_1 = selectionBox.attr ?
26910
- selectionBox.attr('x') :
26911
- selectionBox.x,
26912
- selectionTop_1 = selectionBox.attr ?
26913
- selectionBox.attr('y') :
26914
- selectionBox.y,
26915
- selectionWidth_1 = selectionBox.attr ?
26857
+ var selectionBox = this.selectionMarker, x_1 = selectionBox.attr ? selectionBox.attr('x') : selectionBox.x, y_1 = selectionBox.attr ? selectionBox.attr('y') : selectionBox.y, width_1 = selectionBox.attr ?
26916
26858
  selectionBox.attr('width') :
26917
- selectionBox.width,
26918
- selectionHeight_1 = selectionBox.attr ?
26859
+ selectionBox.width, height_1 = selectionBox.attr ?
26919
26860
  selectionBox.attr('height') :
26920
- selectionBox.height;
26921
- var runZoom_1;
26861
+ selectionBox.height, selectionData_1 = {
26862
+ originalEvent: e,
26863
+ xAxis: [],
26864
+ yAxis: [],
26865
+ x: x_1,
26866
+ y: y_1,
26867
+ width: width_1,
26868
+ height: height_1
26869
+ },
26870
+ // Start by false runZoom, unless when we have a mapView, in
26871
+ // which case the zoom will be handled in the selection event.
26872
+ runZoom_1 = Boolean(chart.mapView);
26922
26873
  // a selection has been made
26923
26874
  if (this.hasDragged || hasPinched) {
26924
26875
  // record each axis' min and max
@@ -26930,17 +26881,15 @@
26930
26881
  xAxis: 'zoomX',
26931
26882
  yAxis: 'zoomY'
26932
26883
  }[axis.coll]]) &&
26933
- isNumber(selectionLeft_1) &&
26934
- isNumber(selectionTop_1)) { // #859, #3569
26884
+ isNumber(x_1) &&
26885
+ isNumber(y_1)) { // #859, #3569
26935
26886
  var horiz = axis.horiz,
26936
26887
  minPixelPadding = e.type === 'touchend' ?
26937
26888
  axis.minPixelPadding :
26938
26889
  0, // #1207, #3075
26939
- selectionMin = axis.toValue((horiz ? selectionLeft_1 : selectionTop_1) +
26940
- minPixelPadding),
26941
- selectionMax = axis.toValue((horiz ?
26942
- selectionLeft_1 + selectionWidth_1 :
26943
- selectionTop_1 + selectionHeight_1) - minPixelPadding);
26890
+ selectionMin = axis.toValue((horiz ? x_1 : y_1) + minPixelPadding),
26891
+ selectionMax = axis.toValue((horiz ? x_1 + width_1 : y_1 + height_1) -
26892
+ minPixelPadding);
26944
26893
  selectionData_1[axis.coll].push({
26945
26894
  axis: axis,
26946
26895
  // Min/max for reversed axes
@@ -27127,6 +27076,7 @@
27127
27076
  * Pointer event, extended with `chartX` and `chartY` properties.
27128
27077
  *
27129
27078
  * @return {Highcharts.PointerAxisCoordinatesObject}
27079
+ * Axis coordinates.
27130
27080
  */
27131
27081
  Pointer.prototype.getCoordinates = function (e) {
27132
27082
  var coordinates = {
@@ -27165,7 +27115,7 @@
27165
27115
  * @param {Highcharts.PointerEventObject} [e]
27166
27116
  * The triggering event, containing chart coordinates of the pointer.
27167
27117
  *
27168
- * @return {object}
27118
+ * @return {Object}
27169
27119
  * Object containing resulting hover data: hoverPoint, hoverSeries, and
27170
27120
  * hoverPoints.
27171
27121
  */
@@ -27462,9 +27412,8 @@
27462
27412
  // Also reset the chart position, used in #149 fix
27463
27413
  chart.pointer.chartPosition = void 0;
27464
27414
  }
27465
- if ( // #11635, Firefox wheel scroll does not fire out events consistently
27466
- tooltip &&
27467
- !tooltip.isHidden) {
27415
+ // #11635, Firefox wheel scroll does not fire out events consistently
27416
+ if (tooltip && !tooltip.isHidden) {
27468
27417
  this.reset();
27469
27418
  }
27470
27419
  };
@@ -27611,7 +27560,10 @@
27611
27560
  }
27612
27561
  // On touch devices, only proceed to trigger click if a handler is
27613
27562
  // defined
27614
- if (hasZoom && self.initiated && !fireClickEvent && e.cancelable !== false) {
27563
+ if (hasZoom &&
27564
+ self.initiated &&
27565
+ !fireClickEvent &&
27566
+ e.cancelable !== false) {
27615
27567
  e.preventDefault();
27616
27568
  }
27617
27569
  // Normalize each touch
@@ -27656,20 +27608,22 @@
27656
27608
  }
27657
27609
  else if (pinchDown.length) { // can be 0 when releasing, if touchend
27658
27610
  // fires first
27659
- // Set the marker
27660
- if (!selectionMarker) {
27661
- // @todo It's a mock object, so maybe we need a separate
27662
- // interface
27663
- self.selectionMarker = selectionMarker = extend({
27664
- destroy: noop,
27665
- touch: true
27666
- }, chart.plotBox);
27667
- }
27668
- self.pinchTranslate(pinchDown, touches, transform, selectionMarker, clip, lastValidTouch);
27669
- self.hasPinched = hasZoom;
27670
- // Scale and translate the groups to provide visual feedback during
27671
- // pinching
27672
- self.scaleGroups(transform, clip);
27611
+ fireEvent(chart, 'touchpan', { originalEvent: e }, function () {
27612
+ // Set the marker
27613
+ if (!selectionMarker) {
27614
+ // @todo It's a mock object, so maybe we need a separate
27615
+ // interface
27616
+ self.selectionMarker = selectionMarker = extend({
27617
+ destroy: noop,
27618
+ touch: true
27619
+ }, chart.plotBox);
27620
+ }
27621
+ self.pinchTranslate(pinchDown, touches, transform, selectionMarker, clip, lastValidTouch);
27622
+ self.hasPinched = hasZoom;
27623
+ // Scale and translate the groups to provide visual feedback
27624
+ // during pinching
27625
+ self.scaleGroups(transform, clip);
27626
+ });
27673
27627
  if (self.res) {
27674
27628
  self.res = false;
27675
27629
  this.reset(false, 0);
@@ -27750,7 +27704,8 @@
27750
27704
  clip[xy] = clipXY - plotLeftTop;
27751
27705
  clip[wh] = selectionWH;
27752
27706
  }
27753
- var scaleKey = inverted ? (horiz ? 'scaleY' : 'scaleX') : 'scale' + XY;
27707
+ var scaleKey = inverted ?
27708
+ (horiz ? 'scaleY' : 'scaleX') : 'scale' + XY;
27754
27709
  var transformScale = inverted ? 1 / scale : scale;
27755
27710
  selectionMarker[wh] = selectionWH;
27756
27711
  selectionMarker[xy] = selectionXY;
@@ -27853,8 +27808,8 @@
27853
27808
  * @private
27854
27809
  * @function Highcharts.Pointer#runPointActions
27855
27810
  *
27856
- * @fires Highcharts.Point#event:mouseOut
27857
- * @fires Highcharts.Point#event:mouseOver
27811
+ * @emits Highcharts.Point#event:mouseOut
27812
+ * @emits Highcharts.Point#event:mouseOver
27858
27813
  */
27859
27814
  Pointer.prototype.runPointActions = function (e, p) {
27860
27815
  var pointer = this,
@@ -27996,7 +27951,9 @@
27996
27951
  // Scale each series
27997
27952
  chart.series.forEach(function (series) {
27998
27953
  var seriesAttribs = attribs || series.getPlotBox(); // #1701
27999
- if (series.xAxis && series.xAxis.zoomEnabled && series.group) {
27954
+ if (series.group &&
27955
+ ((series.xAxis && series.xAxis.zoomEnabled) ||
27956
+ chart.mapView)) {
28000
27957
  series.group.attr(seriesAttribs);
28001
27958
  if (series.markerGroup) {
28002
27959
  series.markerGroup.attr(seriesAttribs);
@@ -28605,7 +28562,8 @@
28605
28562
  this.symbolWidth = pick(options.symbolWidth, 16);
28606
28563
  this.pages = [];
28607
28564
  this.proximate = options.layout === 'proximate' && !this.chart.inverted;
28608
- 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;
28609
28567
  };
28610
28568
  /**
28611
28569
  * Update the legend with new options. Equivalent to running `chart.update`
@@ -28624,7 +28582,7 @@
28624
28582
  * operations on the chart, it is a good idea to set redraw to false and
28625
28583
  * call {@link Chart#redraw} after. Whether to redraw the chart.
28626
28584
  *
28627
- * @fires Highcharts.Legends#event:afterUpdate
28585
+ * @emits Highcharts.Legends#event:afterUpdate
28628
28586
  */
28629
28587
  Legend.prototype.update = function (options, redraw) {
28630
28588
  var chart = this.chart;
@@ -28774,8 +28732,7 @@
28774
28732
  /**
28775
28733
  * @private
28776
28734
  * @param {string} key
28777
- * @return {void}
28778
- */
28735
+ */
28779
28736
  function destroyItems(key) {
28780
28737
  if (this[key]) {
28781
28738
  this[key] = this[key].destroy();
@@ -28992,13 +28949,16 @@
28992
28949
  legend.setText(item);
28993
28950
  // calculate the positions for the next line
28994
28951
  var bBox = li.getBBox();
28952
+ var fontMetricsH = (legend.fontMetrics && legend.fontMetrics.h) || 0;
28995
28953
  item.itemWidth = item.checkboxOffset =
28996
28954
  options.itemWidth ||
28997
28955
  item.legendItemWidth ||
28998
28956
  bBox.width + itemExtraWidth;
28999
28957
  legend.maxItemWidth = Math.max(legend.maxItemWidth, item.itemWidth);
29000
28958
  legend.totalItemWidth += item.itemWidth;
29001
- 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));
29002
28962
  };
29003
28963
  /**
29004
28964
  * Get the position of the item in the layout. We now know the
@@ -29062,7 +29022,7 @@
29062
29022
  * @function Highcharts.Legend#getAllItems
29063
29023
  * @return {Array<(Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series)>}
29064
29024
  * The current items in the legend.
29065
- * @fires Highcharts.Legend#event:afterGetAllItems
29025
+ * @emits Highcharts.Legend#event:afterGetAllItems
29066
29026
  */
29067
29027
  Legend.prototype.getAllItems = function () {
29068
29028
  var allItems = [];
@@ -29332,7 +29292,6 @@
29332
29292
  * @private
29333
29293
  * @function Highcharts.align
29334
29294
  * @param {Highcharts.BBoxObject} alignTo
29335
- * @return {void}
29336
29295
  */
29337
29296
  Legend.prototype.align = function (alignTo) {
29338
29297
  if (alignTo === void 0) { alignTo = this.chart.spacingBox; }
@@ -29364,8 +29323,6 @@
29364
29323
  *
29365
29324
  * @private
29366
29325
  * @function Highcharts.Legend#handleOverflow
29367
- * @param {number} legendHeight
29368
- * @return {number}
29369
29326
  */
29370
29327
  Legend.prototype.handleOverflow = function (legendHeight) {
29371
29328
  var legend = this,
@@ -29450,10 +29407,14 @@
29450
29407
  if (lastY) {
29451
29408
  allItems[i - 1].pageIx = len - 1;
29452
29409
  }
29453
- if (i === allItems.length - 1 &&
29410
+ // add the last page if needed (#2617, #13683)
29411
+ if (
29412
+ // check the last item
29413
+ i === allItems.length - 1 &&
29414
+ // if adding next page is needed
29454
29415
  y + h - pages[len - 1] > clipHeight &&
29455
- y !== lastY // #2617
29456
- ) {
29416
+ // and will fully fit inside a new page
29417
+ h <= clipHeight) {
29457
29418
  pages.push(y);
29458
29419
  item.pageIx = len;
29459
29420
  }
@@ -29522,7 +29483,6 @@
29522
29483
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
29523
29484
  * Whether and how to apply animation.
29524
29485
  *
29525
- * @return {void}
29526
29486
  */
29527
29487
  Legend.prototype.scroll = function (scrollBy, animation) {
29528
29488
  var _this = this;
@@ -29611,8 +29571,8 @@
29611
29571
  * @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
29612
29572
  * @param {Highcharts.SVGElement} legendItem
29613
29573
  * @param {boolean} [useHTML=false]
29614
- * @fires Highcharts.Point#event:legendItemClick
29615
- * @fires Highcharts.Series#event:legendItemClick
29574
+ * @emits Highcharts.Point#event:legendItemClick
29575
+ * @emits Highcharts.Series#event:legendItemClick
29616
29576
  */
29617
29577
  Legend.prototype.setItemEvents = function (item, legendItem, useHTML) {
29618
29578
  var legend = this,
@@ -29702,7 +29662,7 @@
29702
29662
  * @private
29703
29663
  * @function Highcharts.Legend#createCheckboxForItem
29704
29664
  * @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
29705
- * @fires Highcharts.Series#event:checkboxClick
29665
+ * @emits Highcharts.Series#event:checkboxClick
29706
29666
  */
29707
29667
  Legend.prototype.createCheckboxForItem = function (item) {
29708
29668
  var legend = this;
@@ -29945,8 +29905,7 @@
29945
29905
  SeriesRegistry.seriesTypes[type].prototype.type = type;
29946
29906
  // Create the point class if needed
29947
29907
  if (pointProto) {
29948
- SeriesRegistry.seriesTypes[type].prototype.pointClass =
29949
- extendClass(Point, pointProto);
29908
+ SeriesRegistry.seriesTypes[type].prototype.pointClass = extendClass(Point, pointProto);
29950
29909
  }
29951
29910
  return SeriesRegistry.seriesTypes[type];
29952
29911
  }
@@ -29961,7 +29920,7 @@
29961
29920
 
29962
29921
  return SeriesRegistry;
29963
29922
  });
29964
- _registerModule(_modules, 'Core/Chart/Chart.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/Axis.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Legend/Legend.js'], _modules['Core/MSPointer.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Color/Palette.js'], _modules['Core/Pointer.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Time.js'], _modules['Core/Utilities.js'], _modules['Core/Renderer/HTML/AST.js']], function (A, Axis, FormatUtilities, Foundation, H, Legend, MSPointer, D, palette, Pointer, RendererRegistry, SeriesRegistry, SVGRenderer, Time, U, AST) {
29923
+ _registerModule(_modules, 'Core/Chart/Chart.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/Axis.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Legend/Legend.js'], _modules['Core/MSPointer.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Pointer.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Time.js'], _modules['Core/Utilities.js'], _modules['Core/Renderer/HTML/AST.js']], function (A, Axis, FormatUtilities, Foundation, H, Legend, MSPointer, D, Pointer, RendererRegistry, SeriesRegistry, SVGRenderer, Time, U, AST) {
29965
29924
  /* *
29966
29925
  *
29967
29926
  * (c) 2010-2021 Torstein Honsi
@@ -30132,8 +30091,8 @@
30132
30091
  * @param {...Array<*>} arguments
30133
30092
  * All arguments for the constructor.
30134
30093
  *
30135
- * @fires Highcharts.Chart#event:init
30136
- * @fires Highcharts.Chart#event:afterInit
30094
+ * @emits Highcharts.Chart#event:init
30095
+ * @emits Highcharts.Chart#event:afterInit
30137
30096
  */
30138
30097
  Chart.prototype.getArgs = function (a, b, c) {
30139
30098
  // Remove the optional first argument, renderTo, and
@@ -30159,10 +30118,9 @@
30159
30118
  * Function to run when the chart has loaded and and all external
30160
30119
  * images are loaded.
30161
30120
  *
30162
- * @return {void}
30163
30121
  *
30164
- * @fires Highcharts.Chart#event:init
30165
- * @fires Highcharts.Chart#event:afterInit
30122
+ * @emits Highcharts.Chart#event:init
30123
+ * @emits Highcharts.Chart#event:afterInit
30166
30124
  */
30167
30125
  Chart.prototype.init = function (userOptions, callback) {
30168
30126
  // Handle regular options
@@ -30340,7 +30298,6 @@
30340
30298
  *
30341
30299
  * @private
30342
30300
  * @function Highcharts.Series#getSeriesOrderByLinks
30343
- * @return {Array<Highcharts.Series>}
30344
30301
  */
30345
30302
  Chart.prototype.getSeriesOrderByLinks = function () {
30346
30303
  return this.series.concat().sort(function (a, b) {
@@ -30421,7 +30378,8 @@
30421
30378
  pos: plotLeft,
30422
30379
  len: Infinity
30423
30380
  };
30424
- var chartX = options.paneCoordinates ? xAxis.pos + x : plotLeft + x;
30381
+ var chartX = options.paneCoordinates ?
30382
+ xAxis.pos + x : plotLeft + x;
30425
30383
  if (!(chartX >= Math.max(scrollLeft + plotLeft, xAxis.pos) &&
30426
30384
  chartX <= Math.min(scrollLeft + plotLeft + box.width, xAxis.pos + xAxis.len))) {
30427
30385
  e.isInsidePlot = false;
@@ -30432,7 +30390,8 @@
30432
30390
  pos: plotTop,
30433
30391
  len: Infinity
30434
30392
  };
30435
- var chartY = options.paneCoordinates ? yAxis.pos + y : plotTop + y;
30393
+ var chartY = options.paneCoordinates ?
30394
+ yAxis.pos + y : plotTop + y;
30436
30395
  if (!(chartY >= Math.max(scrollTop + plotTop, yAxis.pos) &&
30437
30396
  chartY <= Math.min(scrollTop + plotTop + box.height, yAxis.pos + yAxis.len))) {
30438
30397
  e.isInsidePlot = false;
@@ -30455,12 +30414,12 @@
30455
30414
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
30456
30415
  * If or how to apply animation to the redraw.
30457
30416
  *
30458
- * @fires Highcharts.Chart#event:afterSetExtremes
30459
- * @fires Highcharts.Chart#event:beforeRedraw
30460
- * @fires Highcharts.Chart#event:predraw
30461
- * @fires Highcharts.Chart#event:redraw
30462
- * @fires Highcharts.Chart#event:render
30463
- * @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
30464
30423
  */
30465
30424
  Chart.prototype.redraw = function (animation) {
30466
30425
  fireEvent(this, 'beforeRedraw');
@@ -30622,8 +30581,6 @@
30622
30581
  var series = this.series;
30623
30582
  /**
30624
30583
  * @private
30625
- * @param {Highcharts.Axis|Highcharts.Series} item
30626
- * @return {boolean}
30627
30584
  */
30628
30585
  function itemById(item) {
30629
30586
  return (item.id === id ||
@@ -30647,8 +30604,8 @@
30647
30604
  *
30648
30605
  * @private
30649
30606
  * @function Highcharts.Chart#getAxes
30650
- * @fires Highcharts.Chart#event:afterGetAxes
30651
- * @fires Highcharts.Chart#event:getAxes
30607
+ * @emits Highcharts.Chart#event:afterGetAxes
30608
+ * @emits Highcharts.Chart#event:getAxes
30652
30609
  */
30653
30610
  Chart.prototype.getAxes = function () {
30654
30611
  var chart = this,
@@ -30762,10 +30719,10 @@
30762
30719
  var chart = this;
30763
30720
  // Default style
30764
30721
  var style = name === 'title' ? {
30765
- color: palette.neutralColor80,
30722
+ color: "#333333" /* neutralColor80 */,
30766
30723
  fontSize: this.options.isStock ? '16px' : '18px' // #2944
30767
30724
  } : {
30768
- color: palette.neutralColor60
30725
+ color: "#666666" /* neutralColor60 */
30769
30726
  };
30770
30727
  // Merge default options with explicit options
30771
30728
  var options = this.options[name] = merge(
@@ -30830,7 +30787,7 @@
30830
30787
  * @function Highcharts.Chart#layOutTitles
30831
30788
  *
30832
30789
  * @param {boolean} [redraw=true]
30833
- * @fires Highcharts.Chart#event:afterLayOutTitles
30790
+ * @emits Highcharts.Chart#event:afterLayOutTitles
30834
30791
  */
30835
30792
  Chart.prototype.layOutTitles = function (redraw) {
30836
30793
  var titleOffset = [0, 0, 0],
@@ -30838,7 +30795,7 @@
30838
30795
  spacingBox = this.spacingBox;
30839
30796
  // Lay out the title and the subtitle respectively
30840
30797
  ['title', 'subtitle', 'caption'].forEach(function (key) {
30841
- 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' ?
30842
30799
  verticalAlign === 'top' ? -3 : 0 :
30843
30800
  // Floating subtitle (#6574)
30844
30801
  verticalAlign === 'top' ? titleOffset[0] + 2 : 0;
@@ -30846,7 +30803,8 @@
30846
30803
  height;
30847
30804
  if (title) {
30848
30805
  if (!this.styledMode) {
30849
- titleSize = titleOptions.style && titleOptions.style.fontSize;
30806
+ titleSize = (titleOptions.style &&
30807
+ titleOptions.style.fontSize);
30850
30808
  }
30851
30809
  titleSize = renderer.fontMetrics(titleSize, title).b;
30852
30810
  title
@@ -31021,7 +30979,7 @@
31021
30979
  *
31022
30980
  * @private
31023
30981
  * @function Highcharts.Chart#afterGetContainer
31024
- * @fires Highcharts.Chart#event:afterGetContainer
30982
+ * @emits Highcharts.Chart#event:afterGetContainer
31025
30983
  */
31026
30984
  Chart.prototype.getContainer = function () {
31027
30985
  var chart = this,
@@ -31058,7 +31016,7 @@
31058
31016
  // Make a reference to the chart from the div
31059
31017
  attr(renderTo, indexAttrName, chart.index);
31060
31018
  // remove previous chart
31061
- renderTo.innerHTML = '';
31019
+ renderTo.innerHTML = AST.emptyHTML;
31062
31020
  // If the container doesn't have an offsetWidth, it has or is a child of
31063
31021
  // a node that has display:none. We need to temporarily move it out to a
31064
31022
  // visible state to determine the size, else the legend and tooltips
@@ -31143,7 +31101,7 @@
31143
31101
  *
31144
31102
  * @private
31145
31103
  * @function Highcharts.Chart#getMargins
31146
- * @fires Highcharts.Chart#event:getMargins
31104
+ * @emits Highcharts.Chart#event:getMargins
31147
31105
  */
31148
31106
  Chart.prototype.getMargins = function (skipAxes) {
31149
31107
  var _a = this,
@@ -31309,10 +31267,9 @@
31309
31267
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation=true]
31310
31268
  * Whether and how to apply animation.
31311
31269
  *
31312
- * @return {void}
31313
31270
  *
31314
- * @fires Highcharts.Chart#event:endResize
31315
- * @fires Highcharts.Chart#event:resize
31271
+ * @emits Highcharts.Chart#event:endResize
31272
+ * @emits Highcharts.Chart#event:resize
31316
31273
  */
31317
31274
  Chart.prototype.setSize = function (width, height, animation) {
31318
31275
  var chart = this,
@@ -31369,7 +31326,7 @@
31369
31326
  *
31370
31327
  * @private
31371
31328
  * @function Highcharts.Chart#setChartSize
31372
- * @fires Highcharts.Chart#event:afterSetChartSize
31329
+ * @emits Highcharts.Chart#event:afterSetChartSize
31373
31330
  */
31374
31331
  Chart.prototype.setChartSize = function (skipAxes) {
31375
31332
  var chart = this,
@@ -31492,7 +31449,7 @@
31492
31449
  *
31493
31450
  * @private
31494
31451
  * @function Highcharts.Chart#drawChartBox
31495
- * @fires Highcharts.Chart#event:afterDrawChartBox
31452
+ * @emits Highcharts.Chart#event:afterDrawChartBox
31496
31453
  */
31497
31454
  Chart.prototype.drawChartBox = function () {
31498
31455
  var chart = this,
@@ -31626,7 +31583,6 @@
31626
31583
  *
31627
31584
  * @private
31628
31585
  * @function Highcharts.Chart#propFromSeries
31629
- * @return {void}
31630
31586
  */
31631
31587
  Chart.prototype.propFromSeries = function () {
31632
31588
  var chart = this,
@@ -31670,7 +31626,7 @@
31670
31626
  *
31671
31627
  * @private
31672
31628
  * @function Highcharts.Chart#linkSeries
31673
- * @fires Highcharts.Chart#event:afterLinkSeries
31629
+ * @emits Highcharts.Chart#event:afterLinkSeries
31674
31630
  */
31675
31631
  Chart.prototype.linkSeries = function () {
31676
31632
  var chart = this,
@@ -31898,7 +31854,7 @@
31898
31854
  *
31899
31855
  * @function Highcharts.Chart#destroy
31900
31856
  *
31901
- * @fires Highcharts.Chart#event:destroy
31857
+ * @emits Highcharts.Chart#event:destroy
31902
31858
  */
31903
31859
  Chart.prototype.destroy = function () {
31904
31860
  var chart = this,
@@ -31950,7 +31906,7 @@
31950
31906
  // Remove container and all SVG, check container as it can break in IE
31951
31907
  // when destroyed before finished loading
31952
31908
  if (container) {
31953
- container.innerHTML = '';
31909
+ container.innerHTML = AST.emptyHTML;
31954
31910
  removeEvent(container);
31955
31911
  if (parentNode) {
31956
31912
  discardElement(container);
@@ -31966,7 +31922,7 @@
31966
31922
  *
31967
31923
  * @private
31968
31924
  * @function Highcharts.Chart#firstRender
31969
- * @fires Highcharts.Chart#event:beforeRender
31925
+ * @emits Highcharts.Chart#event:beforeRender
31970
31926
  */
31971
31927
  Chart.prototype.firstRender = function () {
31972
31928
  var chart = this,
@@ -32030,8 +31986,8 @@
32030
31986
  *
32031
31987
  * @private
32032
31988
  * @function Highcharts.Chart#onload
32033
- * @fires Highcharts.Chart#event:load
32034
- * @fires Highcharts.Chart#event:render
31989
+ * @emits Highcharts.Chart#event:load
31990
+ * @emits Highcharts.Chart#event:render
32035
31991
  */
32036
31992
  Chart.prototype.onload = function () {
32037
31993
  // Run callbacks, first the ones registered by modules, then user's one
@@ -32077,8 +32033,8 @@
32077
32033
  * @return {Highcharts.Series}
32078
32034
  * The newly created series object.
32079
32035
  *
32080
- * @fires Highcharts.Chart#event:addSeries
32081
- * @fires Highcharts.Chart#event:afterAddSeries
32036
+ * @emits Highcharts.Chart#event:addSeries
32037
+ * @emits Highcharts.Chart#event:afterAddSeries
32082
32038
  */
32083
32039
  Chart.prototype.addSeries = function (options, redraw, animation) {
32084
32040
  var chart = this;
@@ -32337,8 +32293,8 @@
32337
32293
  * Whether to apply animation, and optionally animation
32338
32294
  * configuration.
32339
32295
  *
32340
- * @fires Highcharts.Chart#event:update
32341
- * @fires Highcharts.Chart#event:afterUpdate
32296
+ * @emits Highcharts.Chart#event:update
32297
+ * @emits Highcharts.Chart#event:afterUpdate
32342
32298
  */
32343
32299
  Chart.prototype.update = function (options, redraw, oneToOne, animation) {
32344
32300
  var chart = this,
@@ -32606,8 +32562,8 @@
32606
32562
  *
32607
32563
  * @function Highcharts.Chart#showResetZoom
32608
32564
  *
32609
- * @fires Highcharts.Chart#event:afterShowResetZoom
32610
- * @fires Highcharts.Chart#event:beforeShowResetZoom
32565
+ * @emits Highcharts.Chart#event:afterShowResetZoom
32566
+ * @emits Highcharts.Chart#event:beforeShowResetZoom
32611
32567
  */
32612
32568
  Chart.prototype.showResetZoom = function () {
32613
32569
  var chart = this,
@@ -32644,7 +32600,7 @@
32644
32600
  *
32645
32601
  * @function Highcharts.Chart#zoomOut
32646
32602
  *
32647
- * @fires Highcharts.Chart#event:selection
32603
+ * @emits Highcharts.Chart#event:selection
32648
32604
  */
32649
32605
  Chart.prototype.zoomOut = function () {
32650
32606
  fireEvent(this, 'selection', { resetSelection: true }, this.zoom);
@@ -32659,7 +32615,8 @@
32659
32615
  Chart.prototype.zoom = function (event) {
32660
32616
  var chart = this,
32661
32617
  pointer = chart.pointer,
32662
- mouseDownPos = (chart.inverted ? pointer.mouseDownX : pointer.mouseDownY);
32618
+ mouseDownPos = chart.inverted ?
32619
+ pointer.mouseDownX : pointer.mouseDownY;
32663
32620
  var displayButton = false,
32664
32621
  hasZoomed;
32665
32622
  // If zoom is called with no arguments, reset the axes
@@ -33172,7 +33129,7 @@
33172
33129
 
33173
33130
  return LegendSymbol;
33174
33131
  });
33175
- _registerModule(_modules, 'Core/Series/SeriesDefaults.js', [_modules['Core/Color/Palette.js']], function (Palette) {
33132
+ _registerModule(_modules, 'Core/Series/SeriesDefaults.js', [], function () {
33176
33133
  /* *
33177
33134
  *
33178
33135
  * (c) 2010-2021 Torstein Honsi
@@ -34155,7 +34112,7 @@
34155
34112
  *
34156
34113
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
34157
34114
  */
34158
- lineColor: Palette.backgroundColor,
34115
+ lineColor: "#ffffff" /* backgroundColor */,
34159
34116
  /**
34160
34117
  * The width of the point marker's outline.
34161
34118
  *
@@ -34355,7 +34312,7 @@
34355
34312
  *
34356
34313
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
34357
34314
  */
34358
- fillColor: Palette.neutralColor20,
34315
+ fillColor: "#cccccc" /* neutralColor20 */,
34359
34316
  /**
34360
34317
  * The color of the point marker's outline. When
34361
34318
  * `undefined`, the series' or point's color is used.
@@ -34365,7 +34322,7 @@
34365
34322
  *
34366
34323
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
34367
34324
  */
34368
- lineColor: Palette.neutralColor100,
34325
+ lineColor: "#000000" /* neutralColor100 */,
34369
34326
  /**
34370
34327
  * The width of the point marker's outline.
34371
34328
  *
@@ -34760,9 +34717,9 @@
34760
34717
  */
34761
34718
  // eslint-disable-next-line valid-jsdoc
34762
34719
  /**
34763
- * Callback JavaScript function to format the data label. Note that
34764
- * if a `format` is defined, the format takes precedence and the
34765
- * 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.
34766
34723
  *
34767
34724
  * @sample {highmaps} maps/plotoptions/series-datalabels-format/
34768
34725
  * Formatted value
@@ -34771,7 +34728,8 @@
34771
34728
  */
34772
34729
  formatter: function () {
34773
34730
  var numberFormatter = this.series.chart.numberFormatter;
34774
- return typeof this.y !== 'number' ? '' : numberFormatter(this.y, -1);
34731
+ return typeof this.y !== 'number' ?
34732
+ '' : numberFormatter(this.y, -1);
34775
34733
  },
34776
34734
  /**
34777
34735
  * For points with an extent, like columns or map areas, whether to
@@ -35466,7 +35424,7 @@
35466
35424
 
35467
35425
  return seriesDefaults;
35468
35426
  });
35469
- _registerModule(_modules, 'Core/Series/Series.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Color/Palette.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/SeriesDefaults.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Utilities.js']], function (A, D, F, H, LegendSymbol, Palette, Point, SeriesDefaults, SeriesRegistry, SVGElement, U) {
35427
+ _registerModule(_modules, 'Core/Series/Series.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/SeriesDefaults.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Utilities.js']], function (A, D, F, H, LegendSymbol, Point, SeriesDefaults, SeriesRegistry, SVGElement, U) {
35470
35428
  /* *
35471
35429
  *
35472
35430
  * (c) 2010-2021 Torstein Honsi
@@ -35852,7 +35810,6 @@
35852
35810
  *
35853
35811
  * @private
35854
35812
  * @function Highcharts.Series#hasData
35855
- * @return {boolean}
35856
35813
  */
35857
35814
  Series.prototype.hasData = function () {
35858
35815
  return ((this.visible &&
@@ -35870,7 +35827,6 @@
35870
35827
  *
35871
35828
  * @private
35872
35829
  * @function Highcharts.Series#autoIncrement
35873
- * @return {number}
35874
35830
  */
35875
35831
  Series.prototype.autoIncrement = function (x) {
35876
35832
  var options = this.options,
@@ -35931,13 +35887,9 @@
35931
35887
  * not redraw the series. For API usage, use {@link Series#update}.
35932
35888
  * @private
35933
35889
  * @function Highcharts.Series#setOptions
35934
- *
35935
35890
  * @param {Highcharts.SeriesOptionsType} itemOptions
35936
35891
  * The series options.
35937
- *
35938
- * @return {Highcharts.SeriesOptionsType}
35939
- *
35940
- * @fires Highcharts.Series#event:afterSetOptions
35892
+ * @emits Highcharts.Series#event:afterSetOptions
35941
35893
  */
35942
35894
  Series.prototype.setOptions = function (itemOptions) {
35943
35895
  var chart = this.chart,
@@ -36083,7 +36035,7 @@
36083
36035
  this.getCyclic('color');
36084
36036
  }
36085
36037
  else if (this.options.colorByPoint) {
36086
- this.color = Palette.neutralColor20;
36038
+ this.color = "#cccccc" /* neutralColor20 */;
36087
36039
  }
36088
36040
  else {
36089
36041
  this.getCyclic('color', this.options.color ||
@@ -36095,7 +36047,6 @@
36095
36047
  *
36096
36048
  * @private
36097
36049
  * @function Highcharts.Series#getPointsCollection
36098
- * @return {Array<Highcharts.Point>}
36099
36050
  */
36100
36051
  Series.prototype.getPointsCollection = function () {
36101
36052
  return (this.hasGroupedData ? this.points : this.data) || [];
@@ -36106,7 +36057,6 @@
36106
36057
  *
36107
36058
  * @private
36108
36059
  * @function Highcharts.Series#getSymbol
36109
- * @return {void}
36110
36060
  */
36111
36061
  Series.prototype.getSymbol = function () {
36112
36062
  var seriesMarkerOption = this.options.marker;
@@ -36118,14 +36068,13 @@
36118
36068
  *
36119
36069
  * @private
36120
36070
  * @function Highcharts.Series#findPointIndex
36121
- * @param {Highcharts.PointOptionsObject} optionsObject
36122
- * The options of the point.
36123
- * @param {number} fromIndex
36124
- * The index to start searching from, used for optimizing
36125
- * series with required sorting.
36126
- * @returns {number|undefined}
36127
- * Returns the index of a matching point, or undefined if no
36128
- * 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.
36129
36078
  */
36130
36079
  Series.prototype.findPointIndex = function (optionsObject, fromIndex) {
36131
36080
  var id = optionsObject.id,
@@ -36414,11 +36363,19 @@
36414
36363
  }
36415
36364
  else if (isArray(firstPoint)) {
36416
36365
  if (valueCount) { // [x, low, high] or [x, o, h, l, c]
36417
- for (i = 0; i < dataLength; i++) {
36418
- pt = data[i];
36419
- xData[i] = pt[0];
36420
- yData[i] =
36421
- pt.slice(1, valueCount + 1);
36366
+ if (firstPoint.length === valueCount) {
36367
+ for (i = 0; i < dataLength; i++) {
36368
+ xData[i] = this.autoIncrement();
36369
+ yData[i] = data[i];
36370
+ }
36371
+ }
36372
+ else {
36373
+ for (i = 0; i < dataLength; i++) {
36374
+ pt = data[i];
36375
+ xData[i] = pt[0];
36376
+ yData[i] =
36377
+ pt.slice(1, valueCount + 1);
36378
+ }
36422
36379
  }
36423
36380
  }
36424
36381
  else { // [x, y]
@@ -36428,10 +36385,21 @@
36428
36385
  indexOfX = indexOfX >= 0 ? indexOfX : 0;
36429
36386
  indexOfY = indexOfY >= 0 ? indexOfY : 1;
36430
36387
  }
36431
- for (i = 0; i < dataLength; i++) {
36432
- pt = data[i];
36433
- xData[i] = pt[indexOfX];
36434
- yData[i] = pt[indexOfY];
36388
+ if (firstPoint.length === 1) {
36389
+ indexOfY = 0;
36390
+ }
36391
+ if (indexOfX === indexOfY) {
36392
+ for (i = 0; i < dataLength; i++) {
36393
+ xData[i] = this.autoIncrement();
36394
+ yData[i] = data[i][indexOfY];
36395
+ }
36396
+ }
36397
+ else {
36398
+ for (i = 0; i < dataLength; i++) {
36399
+ pt = data[i];
36400
+ xData[i] = pt[indexOfX];
36401
+ yData[i] = pt[indexOfY];
36402
+ }
36435
36403
  }
36436
36404
  }
36437
36405
  }
@@ -36489,11 +36457,8 @@
36489
36457
  *
36490
36458
  * @private
36491
36459
  * @function Highcharts.Series#sortData
36492
- *
36493
36460
  * @param {Array<Highcharts.PointOptionsType>} data
36494
36461
  * Force data grouping.
36495
- *
36496
- * @return {Array<Highcharts.PointOptionsObject>}
36497
36462
  */
36498
36463
  Series.prototype.sortData = function (data) {
36499
36464
  var series = this,
@@ -36555,8 +36520,7 @@
36555
36520
  * @private
36556
36521
  * @function Highcharts.Series#getProcessedData
36557
36522
  * @param {boolean} [forceExtremesFromAll]
36558
- * Force getting extremes of a total series data range.
36559
- * @return {Highcharts.SeriesProcessedDataObject}
36523
+ * Force getting extremes of a total series data range.
36560
36524
  */
36561
36525
  Series.prototype.getProcessedData = function (forceExtremesFromAll) {
36562
36526
  var series = this,
@@ -36652,8 +36616,7 @@
36652
36616
  * @private
36653
36617
  * @function Highcharts.Series#processData
36654
36618
  * @param {boolean} [force]
36655
- * Force data grouping.
36656
- * @return {boolean|undefined}
36619
+ * Force data grouping.
36657
36620
  */
36658
36621
  Series.prototype.processData = function (force) {
36659
36622
  var series = this,
@@ -36674,7 +36637,8 @@
36674
36637
  series.cropStart = processedData.cropStart;
36675
36638
  series.processedXData = processedData.xData;
36676
36639
  series.processedYData = processedData.yData;
36677
- series.closestPointRange = series.basePointRange = processedData.closestPointRange;
36640
+ series.closestPointRange = (series.basePointRange = processedData.closestPointRange);
36641
+ fireEvent(series, 'afterProcessData');
36678
36642
  };
36679
36643
  /**
36680
36644
  * Iterate over xData and crop values between min and max. Returns
@@ -36683,12 +36647,6 @@
36683
36647
  *
36684
36648
  * @private
36685
36649
  * @function Highcharts.Series#cropData
36686
- * @param {Array<number>} xData
36687
- * @param {Array<number>} yData
36688
- * @param {number} min
36689
- * @param {number} max
36690
- * @param {number} [cropShoulder]
36691
- * @return {Highcharts.SeriesCropDataObject}
36692
36650
  */
36693
36651
  Series.prototype.cropData = function (xData, yData, min, max, cropShoulder) {
36694
36652
  var dataLength = xData.length;
@@ -36785,6 +36743,9 @@
36785
36743
  *
36786
36744
  * @name Highcharts.Point#dataGroup
36787
36745
  * @type {Highcharts.DataGroupingInfoObject|undefined}
36746
+ *
36747
+ * @sample stock/members/point-datagroup
36748
+ * Click to inspect raw data points
36788
36749
  */
36789
36750
  point.dataGroup = series.groupMap[groupCropStartIndex + i];
36790
36751
  if (point.dataGroup.options) {
@@ -36803,7 +36764,8 @@
36803
36764
  * @readonly
36804
36765
  */
36805
36766
  // For faster access in Point.update
36806
- point.index = hasGroupedData ? (groupCropStartIndex + i) : cursor;
36767
+ point.index = hasGroupedData ?
36768
+ (groupCropStartIndex + i) : cursor;
36807
36769
  points[i] = point;
36808
36770
  }
36809
36771
  }
@@ -36863,12 +36825,9 @@
36863
36825
  *
36864
36826
  * @private
36865
36827
  * @function Highcharts.Series#getXExtremes
36866
- *
36867
36828
  * @param {Array<number>} xData
36868
36829
  * The data to inspect. Defaults to the current data within the visible
36869
36830
  * range.
36870
- *
36871
- * @return {Highcharts.RangeObject}
36872
36831
  */
36873
36832
  Series.prototype.getXExtremes = function (xData) {
36874
36833
  return {
@@ -36882,14 +36841,11 @@
36882
36841
  *
36883
36842
  * @private
36884
36843
  * @function Highcharts.Series#getExtremes
36885
- *
36886
36844
  * @param {Array<number>} [yData]
36887
36845
  * The data to inspect. Defaults to the current data within the visible
36888
36846
  * range.
36889
36847
  * @param {boolean} [forceExtremesFromAll]
36890
36848
  * Force getting extremes of a total series data range.
36891
- *
36892
- * @return {Highcharts.DataExtremesObject}
36893
36849
  */
36894
36850
  Series.prototype.getExtremes = function (yData, forceExtremesFromAll) {
36895
36851
  var xAxis = this.xAxis,
@@ -36947,6 +36903,7 @@
36947
36903
  }
36948
36904
  }
36949
36905
  var dataExtremes = {
36906
+ activeYData: activeYData,
36950
36907
  dataMin: arrayMin(activeYData),
36951
36908
  dataMax: arrayMax(activeYData)
36952
36909
  };
@@ -36988,11 +36945,8 @@
36988
36945
  *
36989
36946
  * @private
36990
36947
  * @function Highcharts.Series.getFirstValidPoint
36991
- *
36992
36948
  * @param {Array<Highcharts.PointOptionsType>} data
36993
36949
  * Array of options for points
36994
- *
36995
- * @return {Highcharts.PointOptionsType}
36996
36950
  */
36997
36951
  Series.prototype.getFirstValidPoint = function (data) {
36998
36952
  var dataLength = data.length;
@@ -37012,7 +36966,7 @@
37012
36966
  *
37013
36967
  * @function Highcharts.Series#translate
37014
36968
  *
37015
- * @fires Highcharts.Series#events:translate
36969
+ * @emits Highcharts.Series#events:translate
37016
36970
  */
37017
36971
  Series.prototype.translate = function () {
37018
36972
  if (!this.processedXData) { // hidden series
@@ -37028,7 +36982,6 @@
37028
36982
  yAxis = series.yAxis,
37029
36983
  points = series.points,
37030
36984
  dataLength = points.length,
37031
- hasModifyValue = !!series.modifyValue,
37032
36985
  pointPlacement = series.pointPlacementToXValue(), // #7860
37033
36986
  dynamicallyPlaced = Boolean(pointPlacement),
37034
36987
  threshold = options.threshold,
@@ -37061,8 +37014,10 @@
37061
37014
  (stackThreshold ? 0 : threshold) ?
37062
37015
  '-' :
37063
37016
  '') + series.stackKey];
37064
- if (yAxis.positiveValuesOnly && !yAxis.validatePositiveValue(yValue) ||
37065
- xAxis.positiveValuesOnly && !xAxis.validatePositiveValue(xValue)) {
37017
+ if (yAxis.positiveValuesOnly &&
37018
+ !yAxis.validatePositiveValue(yValue) ||
37019
+ xAxis.positiveValuesOnly &&
37020
+ !xAxis.validatePositiveValue(xValue)) {
37066
37021
  point.isNull = true;
37067
37022
  }
37068
37023
  // Get the plotX translation
@@ -37113,9 +37068,9 @@
37113
37068
  point.yBottom = defined(yBottom) ?
37114
37069
  limitedRange(yAxis.translate(yBottom, 0, 1, 0, 1)) :
37115
37070
  null;
37116
- // general hook, used for Highcharts Stock compare mode
37117
- if (hasModifyValue) {
37118
- yValue = series.modifyValue(yValue, point);
37071
+ // General hook, used for Highcharts Stock compare and cumulative
37072
+ if (series.dataModify) {
37073
+ yValue = series.dataModify.modifyValue(yValue, i);
37119
37074
  }
37120
37075
  // Set the the plotY value, reset it for redraws
37121
37076
  // #3201
@@ -37153,7 +37108,7 @@
37153
37108
  lastPlotX = plotX;
37154
37109
  }
37155
37110
  // Find point zone
37156
- point.zone = (this.zones.length && point.getZone());
37111
+ point.zone = this.zones.length ? point.getZone() : void 0;
37157
37112
  // Animate new points with data sorting
37158
37113
  if (!point.graphic && series.group && enabledDataSorting) {
37159
37114
  point.isNew = true;
@@ -37197,52 +37152,23 @@
37197
37152
  *
37198
37153
  * @private
37199
37154
  * @function Highcharts.Series#getClip
37200
- *
37201
- * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
37202
- * Initialize the animation.
37203
- *
37204
- * @param {boolean} [finalBox]
37205
- * Final size for the clip - end state for the animation.
37206
- *
37207
- * @return {Highcharts.Dictionary<number>}
37208
37155
  */
37209
- Series.prototype.getClipBox = function (animation, finalBox) {
37210
- var series = this,
37211
- options = series.options,
37212
- chart = series.chart,
37213
- inverted = chart.inverted,
37214
- xAxis = series.xAxis,
37215
- yAxis = xAxis && series.yAxis,
37216
- scrollablePlotAreaOptions = chart.options.chart.scrollablePlotArea || {};
37217
- var clipBox;
37218
- if (animation && options.clip === false && yAxis) {
37219
- // support for not clipped series animation (#10450)
37220
- clipBox = inverted ? {
37221
- y: -chart.chartWidth + yAxis.len + yAxis.pos,
37222
- height: chart.chartWidth,
37223
- width: chart.chartHeight,
37224
- x: -chart.chartHeight + xAxis.len + xAxis.pos
37225
- } : {
37226
- y: -yAxis.pos,
37227
- height: chart.chartHeight,
37228
- width: chart.chartWidth,
37229
- x: -xAxis.pos
37230
- };
37231
- // x and width will be changed later when setting for animation
37232
- // initial state in Series.setClip
37156
+ Series.prototype.getClipBox = function () {
37157
+ var _a = this,
37158
+ chart = _a.chart,
37159
+ xAxis = _a.xAxis,
37160
+ yAxis = _a.yAxis;
37161
+ // If no axes on the series, use global clipBox
37162
+ var seriesBox = merge(chart.clipBox);
37163
+ // Otherwise, use clipBox.width which is corrected for plotBorderWidth
37164
+ // and clipOffset
37165
+ if (xAxis && xAxis.len !== chart.plotSizeX) {
37166
+ seriesBox.width = xAxis.len;
37233
37167
  }
37234
- else {
37235
- clipBox = series.clipBox || chart.clipBox;
37236
- if (finalBox) {
37237
- clipBox.width = chart.plotSizeX;
37238
- clipBox.x = (chart.scrollablePixelsX || 0) *
37239
- (scrollablePlotAreaOptions.scrollPositionX || 0);
37240
- }
37168
+ if (yAxis && yAxis.len !== chart.plotSizeY) {
37169
+ seriesBox.height = yAxis.len;
37241
37170
  }
37242
- return !finalBox ? clipBox : {
37243
- width: clipBox.width,
37244
- x: clipBox.x
37245
- };
37171
+ return seriesBox;
37246
37172
  };
37247
37173
  /**
37248
37174
  * Get the shared clip key, creating it if it doesn't exist.
@@ -37250,99 +37176,52 @@
37250
37176
  * @private
37251
37177
  * @function Highcharts.Series#getSharedClipKey
37252
37178
  */
37253
- Series.prototype.getSharedClipKey = function (animation) {
37254
- if (this.sharedClipKey) {
37255
- return this.sharedClipKey;
37256
- }
37257
- var sharedClipKey = [
37258
- animation && animation.duration,
37259
- animation && animation.easing,
37260
- animation && animation.defer,
37261
- this.getClipBox(animation).height,
37262
- this.options.xAxis,
37263
- this.options.yAxis
37264
- ].join(',');
37265
- if (this.options.clip !== false || animation) {
37266
- this.sharedClipKey = sharedClipKey;
37267
- }
37268
- return sharedClipKey;
37179
+ Series.prototype.getSharedClipKey = function () {
37180
+ this.sharedClipKey = (this.options.xAxis || 0) + ',' +
37181
+ (this.options.yAxis || 0);
37182
+ return this.sharedClipKey;
37269
37183
  };
37270
37184
  /**
37271
- * Set the clipping for the series. For animated series it is called
37272
- * twice, first to initiate animating the clip then the second time
37273
- * without the animation to set the final clip.
37185
+ * Set the clipping for the series. For animated series the clip is later
37186
+ * modified.
37274
37187
  *
37275
37188
  * @private
37276
37189
  * @function Highcharts.Series#setClip
37277
37190
  */
37278
- Series.prototype.setClip = function (animation) {
37279
- var chart = this.chart,
37280
- options = this.options,
37191
+ Series.prototype.setClip = function () {
37192
+ var _a = this,
37193
+ chart = _a.chart,
37194
+ group = _a.group,
37195
+ markerGroup = _a.markerGroup,
37196
+ sharedClips = chart.sharedClips,
37281
37197
  renderer = chart.renderer,
37282
- inverted = chart.inverted,
37283
- seriesClipBox = this.clipBox,
37284
- clipBox = this.getClipBox(animation),
37285
- sharedClipKey = this.getSharedClipKey(animation); // #4526
37286
- var clipRect = chart.sharedClips[sharedClipKey],
37287
- markerClipRect = chart.sharedClips[sharedClipKey + 'm'];
37288
- if (animation) {
37289
- clipBox.width = 0;
37290
- if (inverted) {
37291
- clipBox.x = chart.plotHeight +
37292
- (options.clip !== false ? 0 : chart.plotTop);
37293
- }
37294
- }
37295
- // If a clipping rectangle with the same properties is currently
37296
- // present in the chart, use that.
37198
+ clipBox = this.getClipBox(),
37199
+ sharedClipKey = this.getSharedClipKey(); // #4526
37200
+ var clipRect = sharedClips[sharedClipKey];
37201
+ // If a clipping rectangle for the same set of axes does not exist,
37202
+ // create it
37297
37203
  if (!clipRect) {
37298
- // When animation is set, prepare the initial positions
37299
- if (animation) {
37300
- chart.sharedClips[sharedClipKey + 'm'] = markerClipRect =
37301
- renderer.clipRect(
37302
- // include the width of the first marker
37303
- inverted ? (chart.plotSizeX || 0) + 99 : -99, inverted ? -chart.plotLeft : -chart.plotTop, 99, inverted ? chart.chartWidth : chart.chartHeight);
37304
- }
37305
- chart.sharedClips[sharedClipKey] = clipRect = renderer.clipRect(clipBox);
37306
- // Create hashmap for series indexes
37307
- clipRect.count = { length: 0 };
37308
- // When the series is rendered again before starting animating, in
37309
- // compliance to a responsive rule
37204
+ sharedClips[sharedClipKey] = clipRect = renderer.clipRect(clipBox);
37205
+ // When setting chart size, or when the series is rendered again before
37206
+ // starting animating, in compliance to a responsive rule
37310
37207
  }
37311
- else if (!chart.hasLoaded) {
37312
- clipRect.attr(clipBox);
37208
+ else {
37209
+ clipRect.animate(clipBox);
37313
37210
  }
37314
- if (animation) {
37315
- if (!clipRect.count[this.index]) {
37316
- clipRect.count[this.index] = true;
37317
- clipRect.count.length += 1;
37318
- }
37211
+ if (group) {
37212
+ // When clip is false, reset to no clip after animation
37213
+ group.clip(this.options.clip === false ? void 0 : clipRect);
37319
37214
  }
37320
- if (options.clip !== false || animation) {
37321
- this.group.clip(animation || seriesClipBox ? clipRect : chart.clipRect);
37322
- this.markerGroup.clip(markerClipRect);
37323
- }
37324
- // Remove the shared clipping rectangle when all series are shown
37325
- if (!animation) {
37326
- if (clipRect.count[this.index]) {
37327
- delete clipRect.count[this.index];
37328
- clipRect.count.length -= 1;
37329
- }
37330
- if (clipRect.count.length === 0) {
37331
- if (!seriesClipBox) {
37332
- chart.sharedClips[sharedClipKey] = clipRect.destroy();
37333
- }
37334
- if (markerClipRect) {
37335
- chart.sharedClips[sharedClipKey + 'm'] = markerClipRect.destroy();
37336
- }
37337
- }
37215
+ // Unclip temporary animation clip
37216
+ if (markerGroup) {
37217
+ markerGroup.clip();
37338
37218
  }
37339
37219
  };
37340
37220
  /**
37341
37221
  * Animate in the series. Called internally twice. First with the `init`
37342
37222
  * parameter set to true, which sets up the initial state of the
37343
37223
  * animation. Then when ready, it is called with the `init` parameter
37344
- * undefined, in order to perform the actual animation. After the
37345
- * second run, the function is removed.
37224
+ * undefined, in order to perform the actual animation.
37346
37225
  *
37347
37226
  * @function Highcharts.Series#animate
37348
37227
  *
@@ -37350,29 +37229,70 @@
37350
37229
  * Initialize the animation.
37351
37230
  */
37352
37231
  Series.prototype.animate = function (init) {
37353
- var series = this,
37354
- chart = series.chart,
37355
- animation = animObject(series.options.animation),
37356
- sharedClipKey = this.sharedClipKey;
37232
+ var _a = this, chart = _a.chart, group = _a.group, markerGroup = _a.markerGroup, inverted = chart.inverted, animation = animObject(this.options.animation),
37233
+ // The key for temporary animation clips
37234
+ animationClipKey = [
37235
+ this.getSharedClipKey(),
37236
+ animation.duration,
37237
+ animation.easing,
37238
+ animation.defer
37239
+ ].join(',');
37240
+ var animationClipRect = chart.sharedClips[animationClipKey],
37241
+ markerAnimationClipRect = chart.sharedClips[animationClipKey + 'm'];
37357
37242
  // Initialize the animation. Set up the clipping rectangle.
37358
- if (init) {
37359
- series.setClip(animation);
37243
+ if (init && group) {
37244
+ var clipBox = this.getClipBox();
37245
+ // Create temporary animation clips
37246
+ if (!animationClipRect) {
37247
+ clipBox.width = 0;
37248
+ if (inverted) {
37249
+ clipBox.x = chart.plotHeight;
37250
+ }
37251
+ animationClipRect = chart.renderer.clipRect(clipBox);
37252
+ chart.sharedClips[animationClipKey] = animationClipRect;
37253
+ var markerClipBox = {
37254
+ // Include the width of the first marker
37255
+ x: inverted ? (chart.plotSizeX || 0) + 99 : -99,
37256
+ y: inverted ? -chart.plotLeft : -chart.plotTop,
37257
+ width: 99,
37258
+ height: inverted ? chart.chartWidth : chart.chartHeight
37259
+ };
37260
+ markerAnimationClipRect = chart.renderer.clipRect(markerClipBox);
37261
+ chart.sharedClips[animationClipKey + 'm'] = markerAnimationClipRect;
37262
+ }
37263
+ else {
37264
+ // When height changes during animation, typically due to
37265
+ // responsive settings
37266
+ animationClipRect.attr('height', clipBox.height);
37267
+ }
37268
+ group.clip(animationClipRect);
37269
+ if (markerGroup) {
37270
+ markerGroup.clip(markerAnimationClipRect);
37271
+ }
37360
37272
  // Run the animation
37361
37273
  }
37362
- else if (sharedClipKey) {
37363
- var clipRect = chart.sharedClips[sharedClipKey];
37364
- var markerClipRect = chart.sharedClips[sharedClipKey + 'm'];
37365
- var finalBox = series.getClipBox(animation,
37366
- true);
37367
- if (clipRect) {
37368
- clipRect.animate(finalBox, animation);
37369
- }
37370
- if (markerClipRect) {
37371
- markerClipRect.animate({
37372
- width: finalBox.width + 99,
37373
- x: finalBox.x - (chart.inverted ? 0 : 99)
37374
- }, animation);
37274
+ else if (animationClipRect &&
37275
+ // Only first series in this pane
37276
+ !animationClipRect.hasClass('highcharts-animating')) {
37277
+ var finalBox = this.getClipBox(),
37278
+ step_1 = animation.step;
37279
+ // Only do this when there are actually markers
37280
+ if (markerGroup && markerGroup.element.childNodes.length) {
37281
+ // To provide as smooth animation as possible, update the marker
37282
+ // group clipping in steps of the main group animation
37283
+ animation.step = function (val, fx) {
37284
+ if (step_1) {
37285
+ step_1.apply(fx, arguments);
37286
+ }
37287
+ if (markerAnimationClipRect &&
37288
+ markerAnimationClipRect.element) {
37289
+ markerAnimationClipRect.attr(fx.prop, fx.prop === 'width' ? val + 99 : val);
37290
+ }
37291
+ };
37375
37292
  }
37293
+ animationClipRect
37294
+ .addClass('highcharts-animating')
37295
+ .animate(finalBox, animation);
37376
37296
  }
37377
37297
  };
37378
37298
  /**
@@ -37381,12 +37301,20 @@
37381
37301
  * @private
37382
37302
  * @function Highcharts.Series#afterAnimate
37383
37303
  *
37384
- * @fires Highcharts.Series#event:afterAnimate
37304
+ * @emits Highcharts.Series#event:afterAnimate
37385
37305
  */
37386
37306
  Series.prototype.afterAnimate = function () {
37307
+ var _this = this;
37387
37308
  this.setClip();
37388
- fireEvent(this, 'afterAnimate');
37309
+ // Destroy temporary clip rectangles that are no longer in use
37310
+ objectEach(this.chart.sharedClips, function (clip, key, sharedClips) {
37311
+ if (clip && !_this.chart.container.querySelector("[clip-path=\"url(#" + clip.id + ")\"]")) {
37312
+ clip.destroy();
37313
+ delete sharedClips[key];
37314
+ }
37315
+ });
37389
37316
  this.finishedAnimating = true;
37317
+ fireEvent(this, 'afterAnimate');
37390
37318
  };
37391
37319
  /**
37392
37320
  * Draw the markers for line-like series types, and columns or other
@@ -37594,7 +37522,7 @@
37594
37522
  // Handle hover and select states
37595
37523
  state = state || 'normal';
37596
37524
  if (state) {
37597
- seriesStateOptions = seriesMarkerOptions.states[state];
37525
+ seriesStateOptions = (seriesMarkerOptions.states[state] || {});
37598
37526
  pointStateOptions = (pointMarkerOptions.states &&
37599
37527
  pointMarkerOptions.states[state]) || {};
37600
37528
  strokeWidth = pick(pointStateOptions.lineWidth, seriesStateOptions.lineWidth, strokeWidth + pick(pointStateOptions.lineWidthPlus, seriesStateOptions.lineWidthPlus, 0));
@@ -37619,7 +37547,7 @@
37619
37547
  * @private
37620
37548
  * @function Highcharts.Series#destroy
37621
37549
  *
37622
- * @fires Highcharts.Series#event:destroy
37550
+ * @emits Highcharts.Series#event:destroy
37623
37551
  */
37624
37552
  Series.prototype.destroy = function (keepEventsForUpdate) {
37625
37553
  var series = this,
@@ -37914,8 +37842,6 @@
37914
37842
  * Get the translation and scale for the plot area of this series.
37915
37843
  *
37916
37844
  * @function Highcharts.Series#getPlotBox
37917
- *
37918
- * @return {Highcharts.SeriesPlotBoxObject}
37919
37845
  */
37920
37846
  Series.prototype.getPlotBox = function () {
37921
37847
  var chart = this.chart;
@@ -37960,7 +37886,7 @@
37960
37886
  *
37961
37887
  * @function Highcharts.Series#render
37962
37888
  *
37963
- * @fires Highcharts.Series#event:afterRender
37889
+ * @emits Highcharts.Series#event:afterRender
37964
37890
  */
37965
37891
  Series.prototype.render = function () {
37966
37892
  var series = this,
@@ -37975,15 +37901,18 @@
37975
37901
  inverted = chart.inverted;
37976
37902
  // Animation doesn't work in IE8 quirks when the group div is
37977
37903
  // hidden, and looks bad in other oldIE
37978
- var animDuration = (!series.finishedAnimating &&
37979
- chart.renderer.isSVG &&
37980
- animOptions.duration);
37904
+ var animDuration = (!series.finishedAnimating && chart.renderer.isSVG) ?
37905
+ animOptions.duration : 0;
37981
37906
  fireEvent(this, 'render');
37982
37907
  // the group
37983
37908
  var group = series.plotGroup('group', 'series', visibility, zIndex, chartSeriesGroup);
37984
37909
  series.markerGroup = series.plotGroup('markerGroup', 'markers', visibility, zIndex, chartSeriesGroup);
37985
- // initiate the animation
37986
- if (animDuration && series.animate) {
37910
+ // Initial clipping, applies to columns etc. (#3839).
37911
+ if (options.clip !== false) {
37912
+ series.setClip();
37913
+ }
37914
+ // Initialize the animation
37915
+ if (series.animate && animDuration) {
37987
37916
  series.animate(true);
37988
37917
  }
37989
37918
  // SVGRenderer needs to know this before drawing elements (#1089,
@@ -37999,11 +37928,6 @@
37999
37928
  if (series.visible) {
38000
37929
  series.drawPoints();
38001
37930
  }
38002
- /* series.points.forEach(function (point) {
38003
- if (point.redraw) {
38004
- point.redraw();
38005
- }
38006
- }); */
38007
37931
  // Draw the data labels
38008
37932
  if (series.drawDataLabels) {
38009
37933
  series.drawDataLabels();
@@ -38020,15 +37944,8 @@
38020
37944
  }
38021
37945
  // Handle inverted series and tracker groups
38022
37946
  series.invertGroups(inverted);
38023
- // Initial clipping, must be defined after inverting groups for VML.
38024
- // Applies to columns etc. (#3839).
38025
- if (options.clip !== false &&
38026
- !series.sharedClipKey &&
38027
- !hasRendered) {
38028
- group.clip(chart.clipRect);
38029
- }
38030
37947
  // Run the animation
38031
- if (animDuration && series.animate) {
37948
+ if (series.animate && animDuration) {
38032
37949
  series.animate();
38033
37950
  }
38034
37951
  // Call the afterAnimate function on animation complete (but don't
@@ -38267,12 +38184,16 @@
38267
38184
  * @function Highcharts.Series#isPointInside
38268
38185
  */
38269
38186
  Series.prototype.isPointInside = function (point) {
38270
- var isInside = typeof point.plotY !== 'undefined' &&
38187
+ var _a = this,
38188
+ chart = _a.chart,
38189
+ xAxis = _a.xAxis,
38190
+ yAxis = _a.yAxis,
38191
+ isInside = (typeof point.plotY !== 'undefined' &&
38271
38192
  typeof point.plotX !== 'undefined' &&
38272
38193
  point.plotY >= 0 &&
38273
- point.plotY <= this.yAxis.len && // #3519
38194
+ point.plotY <= (yAxis ? yAxis.len : chart.plotHeight) &&
38274
38195
  point.plotX >= 0 &&
38275
- point.plotX <= this.xAxis.len;
38196
+ point.plotX <= (xAxis ? xAxis.len : chart.plotWidth));
38276
38197
  return isInside;
38277
38198
  };
38278
38199
  /**
@@ -38411,7 +38332,7 @@
38411
38332
  * @param {boolean} [withEvent=true]
38412
38333
  * Used internally, whether to fire the series `addPoint` event.
38413
38334
  *
38414
- * @fires Highcharts.Series#event:addPoint
38335
+ * @emits Highcharts.Series#event:addPoint
38415
38336
  */
38416
38337
  Series.prototype.addPoint = function (options, redraw, shift, animation, withEvent) {
38417
38338
  var series = this,
@@ -38503,7 +38424,7 @@
38503
38424
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
38504
38425
  * Whether and optionally how the series should be animated.
38505
38426
  *
38506
- * @fires Highcharts.Point#event:remove
38427
+ * @emits Highcharts.Point#event:remove
38507
38428
  */
38508
38429
  Series.prototype.removePoint = function (i, redraw, animation) {
38509
38430
  var series = this,
@@ -38557,7 +38478,7 @@
38557
38478
  * @param {boolean} [withEvent=true]
38558
38479
  * Used internally, whether to fire the series `remove` event.
38559
38480
  *
38560
- * @fires Highcharts.Series#event:remove
38481
+ * @emits Highcharts.Series#event:remove
38561
38482
  */
38562
38483
  Series.prototype.remove = function (redraw, animation, withEvent, keepEvents) {
38563
38484
  var series = this,
@@ -38607,8 +38528,8 @@
38607
38528
  * more operations on the chart, it is a good idea to set redraw to
38608
38529
  * false and call {@link Chart#redraw} after.
38609
38530
  *
38610
- * @fires Highcharts.Series#event:update
38611
- * @fires Highcharts.Series#event:afterUpdate
38531
+ * @emits Highcharts.Series#event:update
38532
+ * @emits Highcharts.Series#event:afterUpdate
38612
38533
  */
38613
38534
  Series.prototype.update = function (options, redraw) {
38614
38535
  options = cleanRecursively(options, this.userOptions);
@@ -38690,7 +38611,9 @@
38690
38611
  series.index : oldOptions.index,
38691
38612
  pointStart: pick(
38692
38613
  // when updating from blank (#7933)
38693
- plotOptions && plotOptions.series && plotOptions.series.pointStart, oldOptions.pointStart,
38614
+ (plotOptions &&
38615
+ plotOptions.series &&
38616
+ plotOptions.series.pointStart), oldOptions.pointStart,
38694
38617
  // when updating after addPoint
38695
38618
  series.xData[0])
38696
38619
  }, (!keepPoints && { data: series.options.data }), options);
@@ -38720,8 +38643,7 @@
38720
38643
  // Legacy (IE < 11)
38721
38644
  }
38722
38645
  else {
38723
- var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') &&
38724
- series.hcEvents;
38646
+ var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') && series.hcEvents;
38725
38647
  for (n in initialSeriesProto) { // eslint-disable-line guard-for-in
38726
38648
  series[n] = void 0;
38727
38649
  }
@@ -38819,13 +38741,17 @@
38819
38741
  return option !== oldOption;
38820
38742
  }
38821
38743
  return option !==
38822
- 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);
38823
38749
  };
38824
38750
  /**
38825
38751
  * Runs on mouse over the series graphical items.
38826
38752
  *
38827
38753
  * @function Highcharts.Series#onMouseOver
38828
- * @fires Highcharts.Series#event:mouseOver
38754
+ * @emits Highcharts.Series#event:mouseOver
38829
38755
  */
38830
38756
  Series.prototype.onMouseOver = function () {
38831
38757
  var series = this,
@@ -38857,7 +38783,7 @@
38857
38783
  *
38858
38784
  * @function Highcharts.Series#onMouseOut
38859
38785
  *
38860
- * @fires Highcharts.Series#event:mouseOut
38786
+ * @emits Highcharts.Series#event:mouseOut
38861
38787
  */
38862
38788
  Series.prototype.onMouseOut = function () {
38863
38789
  // trigger the event only if listeners exist
@@ -39012,8 +38938,8 @@
39012
38938
  * operations on the chart, it is a good idea to set redraw to false and
39013
38939
  * call {@link Chart#redraw|chart.redraw()} after.
39014
38940
  *
39015
- * @fires Highcharts.Series#event:hide
39016
- * @fires Highcharts.Series#event:show
38941
+ * @emits Highcharts.Series#event:hide
38942
+ * @emits Highcharts.Series#event:show
39017
38943
  */
39018
38944
  Series.prototype.setVisible = function (vis, redraw) {
39019
38945
  var series = this,
@@ -39077,7 +39003,7 @@
39077
39003
  * Toggle visibility from a button
39078
39004
  *
39079
39005
  * @function Highcharts.Series#show
39080
- * @fires Highcharts.Series#event:show
39006
+ * @emits Highcharts.Series#event:show
39081
39007
  */
39082
39008
  Series.prototype.show = function () {
39083
39009
  this.setVisible(true);
@@ -39091,7 +39017,7 @@
39091
39017
  * Toggle visibility from a button
39092
39018
  *
39093
39019
  * @function Highcharts.Series#hide
39094
- * @fires Highcharts.Series#event:hide
39020
+ * @emits Highcharts.Series#event:hide
39095
39021
  */
39096
39022
  Series.prototype.hide = function () {
39097
39023
  this.setVisible(false);
@@ -39112,8 +39038,8 @@
39112
39038
  * True to select the series, false to unselect. If undefined, the selection
39113
39039
  * state is toggled.
39114
39040
  *
39115
- * @fires Highcharts.Series#event:select
39116
- * @fires Highcharts.Series#event:unselect
39041
+ * @emits Highcharts.Series#event:select
39042
+ * @emits Highcharts.Series#event:unselect
39117
39043
  */
39118
39044
  Series.prototype.select = function (selected) {
39119
39045
  var series = this;
@@ -39131,10 +39057,6 @@
39131
39057
  * Checks if a tooltip should be shown for a given point.
39132
39058
  *
39133
39059
  * @private
39134
- * @param {number} plotX
39135
- * @param {number} plotY
39136
- * @param {Highcharts.ChartIsInsideOptionsObject} [options]
39137
- * @return {boolean}
39138
39060
  */
39139
39061
  Series.prototype.shouldShowTooltip = function (plotX, plotY, options) {
39140
39062
  if (options === void 0) { options = {}; }
@@ -39571,7 +39493,7 @@
39571
39493
  if (scrollableMinWidth) {
39572
39494
  this.scrollablePixelsX = scrollablePixelsX = Math.max(0, scrollableMinWidth - this.chartWidth);
39573
39495
  if (scrollablePixelsX) {
39574
- this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
39496
+ this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
39575
39497
  this.plotBox.width = this.plotWidth += scrollablePixelsX;
39576
39498
  if (this.inverted) {
39577
39499
  this.clipBox.height += scrollablePixelsX;
@@ -39589,7 +39511,7 @@
39589
39511
  else if (scrollableMinHeight) {
39590
39512
  this.scrollablePixelsY = scrollablePixelsY = Math.max(0, scrollableMinHeight - this.chartHeight);
39591
39513
  if (scrollablePixelsY) {
39592
- this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
39514
+ this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
39593
39515
  this.plotBox.height = this.plotHeight += scrollablePixelsY;
39594
39516
  if (this.inverted) {
39595
39517
  this.clipBox.width += scrollablePixelsY;
@@ -40133,7 +40055,8 @@
40133
40055
  chart = axis.chart,
40134
40056
  renderer = chart.renderer,
40135
40057
  stacks = stacking.stacks,
40136
- stackLabelsAnim = axis.options.stackLabels && axis.options.stackLabels.animation,
40058
+ stackLabelsAnim = axis.options.stackLabels &&
40059
+ axis.options.stackLabels.animation,
40137
40060
  animationConfig = getDeferredAnimation(chart,
40138
40061
  stackLabelsAnim || false),
40139
40062
  stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
@@ -40280,6 +40203,7 @@
40280
40203
  r: options.borderRadius || 0,
40281
40204
  text: str,
40282
40205
  rotation: options.rotation,
40206
+ // set default padding to 5 as it is in datalabels #12308
40283
40207
  padding: pick(options.padding, 5),
40284
40208
  visibility: 'hidden' // hidden until setOffset is called
40285
40209
  };
@@ -40355,7 +40279,8 @@
40355
40279
  }
40356
40280
  else {
40357
40281
  boxOffsetX = chart.inverted ?
40358
- (isNegative ? bBox.width + padding : -padding) : bBox.width / 2;
40282
+ (isNegative ? bBox.width + padding : -padding) :
40283
+ bBox.width / 2;
40359
40284
  }
40360
40285
  }
40361
40286
  boxOffsetY = chart.inverted ?
@@ -40400,22 +40325,6 @@
40400
40325
  /**
40401
40326
  * @private
40402
40327
  * @function Highcharts.StackItem#getStackBox
40403
- *
40404
- * @param {Highcharts.Chart} chart
40405
- *
40406
- * @param {Highcharts.StackItem} stackItem
40407
- *
40408
- * @param {number} x
40409
- *
40410
- * @param {number} y
40411
- *
40412
- * @param {number} xWidth
40413
- *
40414
- * @param {number} h
40415
- *
40416
- * @param {Highcharts.Axis} axis
40417
- *
40418
- * @return {Highcharts.BBoxObject}
40419
40328
  */
40420
40329
  StackItem.prototype.getStackBox = function (chart, stackItem, x, y, xWidth, h, axis) {
40421
40330
  var reversed = stackItem.axis.reversed,
@@ -40425,7 +40334,8 @@
40425
40334
  neg = (stackItem.isNegative && !reversed) ||
40426
40335
  (!stackItem.isNegative && reversed); // #4056
40427
40336
  return {
40428
- 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) :
40429
40339
  x + chart.xAxis[0].transB - chart.plotLeft,
40430
40340
  y: inverted ?
40431
40341
  axis.height - x - xWidth :
@@ -40669,11 +40579,6 @@
40669
40579
  *
40670
40580
  * @private
40671
40581
  * @function Highcharts.Series#getStackIndicator
40672
- * @param {Highcharts.StackItemIndicatorObject|undefined} stackIndicator
40673
- * @param {number} x
40674
- * @param {number} index
40675
- * @param {string} [key]
40676
- * @return {Highcharts.StackItemIndicatorObject}
40677
40582
  */
40678
40583
  Series.prototype.getStackIndicator = function (stackIndicator, x, index, key) {
40679
40584
  // Update stack indicator, when:
@@ -40744,7 +40649,7 @@
40744
40649
 
40745
40650
  return H.StackItem;
40746
40651
  });
40747
- _registerModule(_modules, 'Series/Line/LineSeries.js', [_modules['Core/Color/Palette.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Palette, Series, SeriesRegistry, U) {
40652
+ _registerModule(_modules, 'Series/Line/LineSeries.js', [_modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Series, SeriesRegistry, U) {
40748
40653
  /* *
40749
40654
  *
40750
40655
  * (c) 2010-2021 Torstein Honsi
@@ -40829,7 +40734,7 @@
40829
40734
  if (!styledMode) {
40830
40735
  props[0].push((options.lineColor ||
40831
40736
  this.color ||
40832
- Palette.neutralColor20 // when colorByPoint = true
40737
+ "#cccccc" /* neutralColor20 */ // when colorByPoint = true
40833
40738
  ), options.dashStyle);
40834
40739
  }
40835
40740
  props = series.getZonesGraphs(props);
@@ -41487,7 +41392,9 @@
41487
41392
  }
41488
41393
  isNull = points[i].isNull;
41489
41394
  plotX = pick(points[i].rectPlotX, points[i].plotX);
41490
- yBottom = stacking ? pick(points[i].yBottom, translatedThreshold) : translatedThreshold;
41395
+ yBottom = stacking ?
41396
+ pick(points[i].yBottom, translatedThreshold) :
41397
+ translatedThreshold;
41491
41398
  if (!isNull || connectNulls) {
41492
41399
  if (!connectNulls) {
41493
41400
  addDummyPoints(i, i - 1, 'left');
@@ -41591,24 +41498,22 @@
41591
41498
  var si = yAxisSeries[i].index;
41592
41499
  stackPoint = otherStack.points[si];
41593
41500
  if (!stackPoint) {
41594
- // If the next point in this series
41595
- // is missing, mark the point
41596
- // with point.leftNull or
41597
- // 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.
41598
41504
  if (si === series.index) {
41599
41505
  pointMap[x][nullName] = true;
41600
- // If there are missing points in
41601
- // the next stack in any of the
41602
- // series below this one, we need
41603
- // to substract the missing values
41604
- // 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
41605
41510
  // right.
41606
41511
  }
41607
41512
  else if (visibleSeries_1[i]) {
41608
- stackedValues =
41609
- stack[x].points[si];
41513
+ stackedValues = stack[x].points[si];
41610
41514
  if (stackedValues) {
41611
- cliff -= stackedValues[1] - stackedValues[0];
41515
+ cliff -= (stackedValues[1] -
41516
+ stackedValues[0]);
41612
41517
  }
41613
41518
  }
41614
41519
  }
@@ -41957,14 +41862,6 @@
41957
41862
  *
41958
41863
  * @private
41959
41864
  * @function Highcharts.seriesTypes.spline#getPointSpline
41960
- *
41961
- * @param {Array<Highcharts.Point>}
41962
- *
41963
- * @param {Highcharts.Point} point
41964
- *
41965
- * @param {number} i
41966
- *
41967
- * @return {Highcharts.SVGPathArray}
41968
41865
  */
41969
41866
  SplineSeries.prototype.getPointSpline = function (points, point, i) {
41970
41867
  var
@@ -42401,7 +42298,7 @@
42401
42298
 
42402
42299
  return AreaSplineSeries;
42403
42300
  });
42404
- _registerModule(_modules, 'Series/Column/ColumnSeries.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Color/Palette.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (A, Color, H, LegendSymbol, Palette, Series, SeriesRegistry, U) {
42301
+ _registerModule(_modules, 'Series/Column/ColumnSeries.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (A, Color, H, LegendSymbol, Series, SeriesRegistry, U) {
42405
42302
  /* *
42406
42303
  *
42407
42304
  * (c) 2010-2021 Torstein Honsi
@@ -42499,7 +42396,9 @@
42499
42396
  options = series.options,
42500
42397
  inverted = this.chart.inverted,
42501
42398
  attr = {},
42502
- translateProp = inverted ? 'translateX' : 'translateY';
42399
+ translateProp = inverted ?
42400
+ 'translateX' :
42401
+ 'translateY';
42503
42402
  var translateStart,
42504
42403
  translatedThreshold;
42505
42404
  if (init) {
@@ -42560,7 +42459,6 @@
42560
42459
  *
42561
42460
  * @private
42562
42461
  * @function Highcharts.seriesTypes.column#getColumnMetrics
42563
- * @return {Highcharts.ColumnMetricsObject}
42564
42462
  */
42565
42463
  ColumnSeries.prototype.getColumnMetrics = function () {
42566
42464
  var series = this,
@@ -42591,7 +42489,8 @@
42591
42489
  !series.chart.options.chart.ignoreHiddenSeries) &&
42592
42490
  yAxis.len === otherYAxis.len &&
42593
42491
  yAxis.pos === otherYAxis.pos) { // #642, #2086
42594
- if (otherOptions.stacking && otherOptions.stacking !== 'group') {
42492
+ if (otherOptions.stacking &&
42493
+ otherOptions.stacking !== 'group') {
42595
42494
  stackKey = otherSeries.stackKey;
42596
42495
  if (typeof stackGroups[stackKey] ===
42597
42496
  'undefined') {
@@ -42703,21 +42602,21 @@
42703
42602
  if (!point.isNull && metrics.columnCount > 1) {
42704
42603
  var indexInCategory_1 = 0;
42705
42604
  var totalInCategory_1 = 0;
42706
- // Loop over all the stacks on the Y axis. When stacking is
42707
- // enabled, these are real point stacks. When stacking is not
42708
- // enabled, but `centerInCategory` is true, there is one stack
42709
- // handling the grouping of points in each category. This is
42710
- // 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.
42711
42610
  objectEach(this.yAxis.stacking && this.yAxis.stacking.stacks, function (stack) {
42712
42611
  if (typeof point.x === 'number') {
42713
42612
  var stackItem = stack[point.x.toString()];
42714
42613
  if (stackItem) {
42715
42614
  var pointValues = stackItem.points[_this.index],
42716
42615
  total = stackItem.total;
42717
- // If true `stacking` is enabled, count the
42718
- // total number of non-null stacks in the
42719
- // category, and note which index this point is
42720
- // 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.
42721
42620
  if (stacking) {
42722
42621
  if (pointValues) {
42723
42622
  indexInCategory_1 = totalInCategory_1;
@@ -42725,8 +42624,8 @@
42725
42624
  if (stackItem.hasValidPoints) {
42726
42625
  totalInCategory_1++;
42727
42626
  }
42728
- // If `stacking` is not enabled, look for the
42729
- // index and total of the `group` stack.
42627
+ // If `stacking` is not enabled, look for the index
42628
+ // and total of the `group` stack.
42730
42629
  }
42731
42630
  else if (isArray(pointValues)) {
42732
42631
  indexInCategory_1 = pointValues[1];
@@ -43382,7 +43281,7 @@
43382
43281
  * @default #cccccc
43383
43282
  * @product highcharts highstock gantt
43384
43283
  */
43385
- color: Palette.neutralColor20,
43284
+ color: "#cccccc" /* neutralColor20 */,
43386
43285
  /**
43387
43286
  * A specific border color for the selected point.
43388
43287
  *
@@ -43390,7 +43289,7 @@
43390
43289
  * @default #000000
43391
43290
  * @product highcharts highstock gantt
43392
43291
  */
43393
- borderColor: Palette.neutralColor100
43292
+ borderColor: "#000000" /* neutralColor100 */
43394
43293
  }
43395
43294
  },
43396
43295
  dataLabels: {
@@ -43457,7 +43356,7 @@
43457
43356
  *
43458
43357
  * @private
43459
43358
  */
43460
- borderColor: Palette.backgroundColor
43359
+ borderColor: "#ffffff" /* backgroundColor */
43461
43360
  });
43462
43361
  return ColumnSeries;
43463
43362
  }(Series));
@@ -43648,7 +43547,7 @@
43648
43547
 
43649
43548
  return ColumnSeries;
43650
43549
  });
43651
- _registerModule(_modules, 'Core/Series/DataLabel.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Color/Palette.js'], _modules['Core/Utilities.js']], function (A, F, Palette, U) {
43550
+ _registerModule(_modules, 'Core/Series/DataLabel.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Utilities.js']], function (A, F, U) {
43652
43551
  /* *
43653
43552
  *
43654
43553
  * (c) 2010-2021 Torstein Honsi
@@ -43929,8 +43828,10 @@
43929
43828
  // Merge in series options for the point.
43930
43829
  // @note dataLabelAttribs (like pointAttribs) would eradicate
43931
43830
  // the need for dlOptions, and simplify the section below.
43932
- pointOptions = splat(mergeArrays(seriesDlOptions, point.dlOptions || // dlOptions is used in treemaps
43933
- (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))));
43934
43835
  // Handle each individual data label for this point
43935
43836
  pointOptions.forEach(function (labelOptions, i) {
43936
43837
  // Options for one datalabel
@@ -43948,8 +43849,8 @@
43948
43849
  style,
43949
43850
  rotation,
43950
43851
  attr,
43951
- dataLabel = point.dataLabels ? point.dataLabels[i] :
43952
- point.dataLabel;
43852
+ dataLabel = point.dataLabels ?
43853
+ point.dataLabels[i] : point.dataLabel;
43953
43854
  var labelDistance = pick(labelOptions.distance,
43954
43855
  point.labelDistance),
43955
43856
  isNew = !dataLabel;
@@ -43966,7 +43867,7 @@
43966
43867
  rotation = labelOptions.rotation;
43967
43868
  if (!chart.styledMode) {
43968
43869
  // Determine the color
43969
- style.color = pick(labelOptions.color, style.color, series.color, Palette.neutralColor100);
43870
+ style.color = pick(labelOptions.color, style.color, series.color, "#000000" /* neutralColor100 */);
43970
43871
  // Get automated contrast color
43971
43872
  if (style.color === 'contrast') {
43972
43873
  point.contrastColor = renderer.getContrast((point.color || series.color));
@@ -43975,7 +43876,7 @@
43975
43876
  labelDistance < 0 ||
43976
43877
  !!seriesOptions.stacking ?
43977
43878
  point.contrastColor :
43978
- Palette.neutralColor100;
43879
+ "#000000" /* neutralColor100 */;
43979
43880
  }
43980
43881
  else {
43981
43882
  delete point.contrastColor;
@@ -44004,8 +43905,10 @@
44004
43905
  }
44005
43906
  // If the point is outside the plot area, destroy it. #678,
44006
43907
  // #820
44007
- if (dataLabel && (!labelEnabled || !defined(labelText))) {
44008
- point.dataLabel =
43908
+ if (dataLabel && (!labelEnabled ||
43909
+ !defined(labelText) ||
43910
+ !!dataLabel.div !== !!labelOptions.useHTML)) {
43911
+ point.dataLabel = dataLabel =
44009
43912
  point.dataLabel && point.dataLabel.destroy();
44010
43913
  if (point.dataLabels) {
44011
43914
  // Remove point.dataLabels if this was the last one
@@ -44032,11 +43935,11 @@
44032
43935
  }
44033
43936
  }
44034
43937
  }
44035
- // Individual labels are disabled if the are explicitly
44036
- // disabled in the point options, or if they fall outside
44037
- // the plot area.
44038
43938
  }
44039
- 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)) {
44040
43943
  if (!dataLabel) {
44041
43944
  // Create new label element
44042
43945
  point.dataLabels = point.dataLabels || [];
@@ -44050,7 +43953,8 @@
44050
43953
  if (!i) {
44051
43954
  point.dataLabel = dataLabel;
44052
43955
  }
44053
- dataLabel.addClass(' highcharts-data-label-color-' + point.colorIndex +
43956
+ dataLabel.addClass(' highcharts-data-label-color-' +
43957
+ point.colorIndex +
44054
43958
  ' ' + (labelOptions.className || '') +
44055
43959
  ( // #3398
44056
43960
  labelOptions.useHTML ?
@@ -44078,7 +43982,7 @@
44078
43982
  if (point.dataLabelPath &&
44079
43983
  !labelOptions.textPath.enabled) {
44080
43984
  // clean the DOM
44081
- point.dataLabelPath = point.dataLabelPath.destroy();
43985
+ point.dataLabelPath = (point.dataLabelPath.destroy());
44082
43986
  }
44083
43987
  }
44084
43988
  // Now the data label is created and placed at 0,0, so
@@ -44311,13 +44215,15 @@
44311
44215
  */
44312
44216
  function alignDataLabel(point, dataLabel, options, alignTo, isNew) {
44313
44217
  var inverted = this.chart.inverted,
44314
- series = point.series,
44218
+ series = point.series,
44219
+ xLen = (series.xAxis ? series.xAxis.len : this.chart.plotSizeX) || 0,
44220
+ yLen = (series.yAxis ? series.yAxis.len : this.chart.plotSizeY) || 0,
44315
44221
  // data label box for alignment
44316
44222
  dlBox = point.dlBox || point.shapeArgs,
44317
44223
  below = pick(point.below, // range series
44318
44224
  point.plotY >
44319
44225
  pick(this.translatedThreshold,
44320
- series.yAxis.len)),
44226
+ yLen)),
44321
44227
  // draw it inside the box?
44322
44228
  inside = pick(options.inside, !!this.options.stacking),
44323
44229
  overshoot;
@@ -44330,14 +44236,14 @@
44330
44236
  }
44331
44237
  // If parts of the box overshoots outside the plot area, modify the
44332
44238
  // box to center the label inside
44333
- overshoot = alignTo.y + alignTo.height - series.yAxis.len;
44239
+ overshoot = alignTo.y + alignTo.height - yLen;
44334
44240
  if (overshoot > 0 && overshoot < alignTo.height) {
44335
44241
  alignTo.height -= overshoot;
44336
44242
  }
44337
44243
  if (inverted) {
44338
44244
  alignTo = {
44339
- x: series.yAxis.len - alignTo.y - alignTo.height,
44340
- y: series.xAxis.len - alignTo.x - alignTo.width,
44245
+ x: yLen - alignTo.y - alignTo.height,
44246
+ y: xLen - alignTo.x - alignTo.width,
44341
44247
  width: alignTo.height,
44342
44248
  height: alignTo.width
44343
44249
  };
@@ -44876,7 +44782,7 @@
44876
44782
 
44877
44783
  return ScatterSeries;
44878
44784
  });
44879
- _registerModule(_modules, 'Mixins/CenteredSeries.js', [_modules['Core/Globals.js'], _modules['Core/Series/Series.js'], _modules['Core/Utilities.js']], function (H, Series, U) {
44785
+ _registerModule(_modules, 'Series/CenteredUtilities.js', [_modules['Core/Globals.js'], _modules['Core/Series/Series.js'], _modules['Core/Utilities.js']], function (H, Series, U) {
44880
44786
  /* *
44881
44787
  *
44882
44788
  * (c) 2010-2021 Torstein Honsi
@@ -44886,63 +44792,60 @@
44886
44792
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
44887
44793
  *
44888
44794
  * */
44889
- /**
44890
- * @private
44891
- * @interface Highcharts.RadianAngles
44892
- */ /**
44893
- * @name Highcharts.RadianAngles#end
44894
- * @type {number}
44895
- */ /**
44896
- * @name Highcharts.RadianAngles#start
44897
- * @type {number}
44898
- */
44795
+ var deg2rad = H.deg2rad;
44899
44796
  var isNumber = U.isNumber,
44900
44797
  pick = U.pick,
44901
44798
  relativeLength = U.relativeLength;
44902
- var deg2rad = H.deg2rad;
44903
- /* eslint-disable valid-jsdoc */
44904
44799
  /**
44905
44800
  * @private
44906
- * @mixin Highcharts.CenteredSeriesMixin
44907
44801
  */
44908
- var centeredSeriesMixin = H.CenteredSeriesMixin = {
44909
- /**
44910
- * Get the center of the pie based on the size and center options relative
44911
- * to the plot area. Borrowed by the polar and gauge series types.
44912
- *
44913
- * @private
44914
- * @function Highcharts.CenteredSeriesMixin.getCenter
44915
- *
44916
- * @return {Array<number>}
44917
- */
44918
- getCenter: function () {
44919
- var options = this.options,
44920
- chart = this.chart,
44921
- slicingRoom = 2 * (options.slicedOffset || 0),
44922
- handleSlicingRoom,
44923
- plotWidth = chart.plotWidth - 2 * slicingRoom,
44924
- plotHeight = chart.plotHeight - 2 * slicingRoom,
44925
- centerOption = options.center,
44926
- smallestSize = Math.min(plotWidth,
44927
- plotHeight),
44928
- size = options.size,
44929
- innerSize = options.innerSize || 0,
44930
- positions,
44931
- i,
44932
- value;
44802
+ var CenteredUtilities;
44803
+ (function (CenteredUtilities) {
44804
+ /* *
44805
+ *
44806
+ * Declarations
44807
+ *
44808
+ * */
44809
+ /* *
44810
+ *
44811
+ * Functions
44812
+ *
44813
+ * */
44814
+ /* eslint-disable valid-jsdoc */
44815
+ /**
44816
+ * Get the center of the pie based on the size and center options relative
44817
+ * to the plot area. Borrowed by the polar and gauge series types.
44818
+ *
44819
+ * @private
44820
+ * @function Highcharts.CenteredSeriesMixin.getCenter
44821
+ */
44822
+ function getCenter() {
44823
+ var options = this.options,
44824
+ chart = this.chart,
44825
+ slicingRoom = 2 * (options.slicedOffset || 0),
44826
+ plotWidth = chart.plotWidth - 2 * slicingRoom,
44827
+ plotHeight = chart.plotHeight - 2 * slicingRoom,
44828
+ centerOption = options.center,
44829
+ smallestSize = Math.min(plotWidth,
44830
+ plotHeight);
44831
+ var handleSlicingRoom,
44832
+ size = options.size,
44833
+ innerSize = options.innerSize || 0,
44834
+ i,
44835
+ value;
44933
44836
  if (typeof size === 'string') {
44934
44837
  size = parseFloat(size);
44935
44838
  }
44936
44839
  if (typeof innerSize === 'string') {
44937
44840
  innerSize = parseFloat(innerSize);
44938
44841
  }
44939
- positions = [
44940
- pick(centerOption[0], '50%'),
44941
- pick(centerOption[1], '50%'),
44942
- // Prevent from negative values
44943
- pick(size && size < 0 ? void 0 : options.size, '100%'),
44944
- pick(innerSize && innerSize < 0 ? void 0 : options.innerSize || 0, '0%')
44945
- ];
44842
+ var positions = [
44843
+ pick(centerOption[0], '50%'),
44844
+ pick(centerOption[1], '50%'),
44845
+ // Prevent from negative values
44846
+ pick(size && size < 0 ? void 0 : options.size, '100%'),
44847
+ pick(innerSize && innerSize < 0 ? void 0 : options.innerSize || 0, '0%')
44848
+ ];
44946
44849
  // No need for inner size in angular (gauges) series but still required
44947
44850
  // for pie series
44948
44851
  if (chart.angular && !(this instanceof Series)) {
@@ -44962,7 +44865,8 @@
44962
44865
  positions[3] = positions[2];
44963
44866
  }
44964
44867
  return positions;
44965
- },
44868
+ }
44869
+ CenteredUtilities.getCenter = getCenter;
44966
44870
  /**
44967
44871
  * getStartAndEndRadians - Calculates start and end angles in radians.
44968
44872
  * Used in series types such as pie and sunburst.
@@ -44979,7 +44883,7 @@
44979
44883
  * @return {Highcharts.RadianAngles}
44980
44884
  * Returns an object containing start and end angles as radians.
44981
44885
  */
44982
- getStartAndEndRadians: function (start, end) {
44886
+ function getStartAndEndRadians(start, end) {
44983
44887
  var startAngle = isNumber(start) ? start : 0, // must be a number
44984
44888
  endAngle = ((isNumber(end) && // must be a number
44985
44889
  end > startAngle && // must be larger than the start angle
@@ -44993,9 +44897,31 @@
44993
44897
  end: deg2rad * (endAngle + correction)
44994
44898
  };
44995
44899
  }
44996
- };
44900
+ CenteredUtilities.getStartAndEndRadians = getStartAndEndRadians;
44901
+ })(CenteredUtilities || (CenteredUtilities = {}));
44902
+ /* *
44903
+ *
44904
+ * Default Export
44905
+ *
44906
+ * */
44907
+ /* *
44908
+ *
44909
+ * API Declarations
44910
+ *
44911
+ * */
44912
+ /**
44913
+ * @private
44914
+ * @interface Highcharts.RadianAngles
44915
+ */ /**
44916
+ * @name Highcharts.RadianAngles#end
44917
+ * @type {number}
44918
+ */ /**
44919
+ * @name Highcharts.RadianAngles#start
44920
+ * @type {number}
44921
+ */
44922
+ ''; // keeps doclets above in JS file
44997
44923
 
44998
- return centeredSeriesMixin;
44924
+ return CenteredUtilities;
44999
44925
  });
45000
44926
  _registerModule(_modules, 'Series/Pie/PiePoint.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (A, Point, U) {
45001
44927
  /* *
@@ -45176,10 +45102,10 @@
45176
45102
  * @param {boolean} sliced
45177
45103
  * When undefined, the slice state is toggled.
45178
45104
  *
45179
- * @param {boolean} redraw
45105
+ * @param {boolean} [redraw]
45180
45106
  * Whether to redraw the chart. True by default.
45181
45107
  *
45182
- * @param {boolean|Partial<Highcharts.AnimationOptionsObject>}
45108
+ * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
45183
45109
  * Animation options.
45184
45110
  */
45185
45111
  PiePoint.prototype.slice = function (sliced, redraw, animation) {
@@ -45293,7 +45219,7 @@
45293
45219
 
45294
45220
  return PiePoint;
45295
45221
  });
45296
- _registerModule(_modules, 'Series/Pie/PieSeries.js', [_modules['Mixins/CenteredSeries.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Color/Palette.js'], _modules['Series/Pie/PiePoint.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Utilities.js']], function (CenteredSeriesMixin, ColumnSeries, H, LegendSymbol, Palette, PiePoint, Series, SeriesRegistry, Symbols, U) {
45222
+ _registerModule(_modules, 'Series/Pie/PieSeries.js', [_modules['Series/CenteredUtilities.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Series/Pie/PiePoint.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Utilities.js']], function (CU, ColumnSeries, H, LegendSymbol, PiePoint, Series, SeriesRegistry, Symbols, U) {
45297
45223
  /* *
45298
45224
  *
45299
45225
  * (c) 2010-2021 Torstein Honsi
@@ -45319,7 +45245,7 @@
45319
45245
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45320
45246
  };
45321
45247
  })();
45322
- var getStartAndEndRadians = CenteredSeriesMixin.getStartAndEndRadians;
45248
+ var getStartAndEndRadians = CU.getStartAndEndRadians;
45323
45249
  var noop = H.noop;
45324
45250
  var clamp = U.clamp,
45325
45251
  extend = U.extend,
@@ -45434,7 +45360,7 @@
45434
45360
  this.graph.attr({
45435
45361
  'stroke-width': options.borderWidth,
45436
45362
  fill: options.fillColor || 'none',
45437
- stroke: options.color || Palette.neutralColor20
45363
+ stroke: options.color || "#cccccc" /* neutralColor20 */
45438
45364
  });
45439
45365
  }
45440
45366
  }
@@ -45833,7 +45759,7 @@
45833
45759
  * Empty pie series
45834
45760
  *
45835
45761
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
45836
- * @default ${palette.neutralColor20}
45762
+ * @default #cccccc
45837
45763
  * @apioption plotOptions.pie.color
45838
45764
  */
45839
45765
  /**
@@ -46234,7 +46160,7 @@
46234
46160
  *
46235
46161
  * @private
46236
46162
  */
46237
- borderColor: Palette.backgroundColor,
46163
+ borderColor: "#ffffff" /* backgroundColor */,
46238
46164
  /**
46239
46165
  * The width of the border surrounding each slice.
46240
46166
  *
@@ -46255,7 +46181,7 @@
46255
46181
  */
46256
46182
  borderWidth: 1,
46257
46183
  /**
46258
- * @ignore-options
46184
+ * @ignore-option
46259
46185
  * @private
46260
46186
  */
46261
46187
  lineWidth: void 0,
@@ -46291,7 +46217,7 @@
46291
46217
  drawGraph: void 0,
46292
46218
  drawLegendSymbol: LegendSymbol.drawRectangle,
46293
46219
  drawTracker: ColumnSeries.prototype.drawTracker,
46294
- getCenter: CenteredSeriesMixin.getCenter,
46220
+ getCenter: CU.getCenter,
46295
46221
  getSymbol: noop,
46296
46222
  isCartesian: false,
46297
46223
  noSharedTooltip: true,
@@ -46403,7 +46329,7 @@
46403
46329
 
46404
46330
  return PieSeries;
46405
46331
  });
46406
- _registerModule(_modules, 'Series/Pie/PieDataLabel.js', [_modules['Core/Series/DataLabel.js'], _modules['Core/Globals.js'], _modules['Core/Color/Palette.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (DataLabel, H, Palette, R, SeriesRegistry, U) {
46332
+ _registerModule(_modules, 'Series/Pie/PieDataLabel.js', [_modules['Core/Series/DataLabel.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (DataLabel, H, R, SeriesRegistry, U) {
46407
46333
  /* *
46408
46334
  *
46409
46335
  * (c) 2010-2021 Torstein Honsi
@@ -46765,7 +46691,7 @@
46765
46691
  'stroke-width': connectorWidth,
46766
46692
  'stroke': (pointDataLabelsOptions.connectorColor ||
46767
46693
  point.color ||
46768
- Palette.neutralColor60)
46694
+ "#666666" /* neutralColor60 */)
46769
46695
  });
46770
46696
  }
46771
46697
  }
@@ -47033,7 +46959,8 @@
47033
46959
  if (alignValue) {
47034
46960
  xOffset = +alignValue * boxWidth;
47035
46961
  }
47036
- else if (isNumber(label.x) && Math.round(label.x) !== label.translateX) {
46962
+ else if (isNumber(label.x) &&
46963
+ Math.round(label.x) !== label.translateX) {
47037
46964
  xOffset = label.x - label.translateX;
47038
46965
  }
47039
46966
  return {
@@ -47095,10 +47022,11 @@
47095
47022
  * @private
47096
47023
  * @function hideOrShow
47097
47024
  * @param {Highcharts.SVGElement} label
47098
- * The label.
47025
+ * The label.
47099
47026
  * @param {Highcharts.Chart} chart
47100
- * The chart that contains the label.
47027
+ * The chart that contains the label.
47101
47028
  * @return {boolean}
47029
+ * Whether label is affected
47102
47030
  */
47103
47031
  function hideOrShow(label, chart) {
47104
47032
  var complete,
@@ -47107,13 +47035,15 @@
47107
47035
  if (label) {
47108
47036
  newOpacity = label.newOpacity;
47109
47037
  if (label.oldOpacity !== newOpacity) {
47110
- // Make sure the label is completely hidden to avoid catching
47111
- // clicks (#4362)
47038
+ // Make sure the label is completely hidden to avoid catching clicks
47039
+ // (#4362)
47112
47040
  if (label.alignAttr && label.placed) { // data labels
47113
47041
  label[newOpacity ? 'removeClass' : 'addClass']('highcharts-data-label-hidden');
47114
47042
  complete = function () {
47115
47043
  if (!chart.styledMode) {
47116
- label.css({ pointerEvents: newOpacity ? 'auto' : 'none' });
47044
+ label.css({
47045
+ pointerEvents: newOpacity ? 'auto' : 'none'
47046
+ });
47117
47047
  }
47118
47048
  };
47119
47049
  isLabelAffected = true;
@@ -47275,8 +47205,7 @@
47275
47205
  fn = condition.callback || function () {
47276
47206
  return (this.chartWidth <= pick(condition.maxWidth,
47277
47207
  Number.MAX_VALUE) &&
47278
- this.chartHeight <=
47279
- pick(condition.maxHeight,
47208
+ this.chartHeight <= pick(condition.maxHeight,
47280
47209
  Number.MAX_VALUE) &&
47281
47210
  this.chartWidth >= pick(condition.minWidth, 0) &&
47282
47211
  this.chartHeight >= pick(condition.minHeight, 0));
@@ -47319,7 +47248,7 @@
47319
47248
  mergedOptions.isResponsiveOptions = true;
47320
47249
  // Stringified key for the rules that currently apply.
47321
47250
  ruleIds = (ruleIds.toString() || void 0);
47322
- var currentRuleIds = currentResponsive && currentResponsive.ruleIds;
47251
+ var currentRuleIds = (currentResponsive && currentResponsive.ruleIds);
47323
47252
  // Changes in what rules apply
47324
47253
  if (ruleIds !== currentRuleIds) {
47325
47254
  // Undo previous rules. Before we apply a new set of rules, we