highcharts 9.2.2 → 9.3.3

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 (894) 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 +250 -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 +197 -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 +4 -48
  151. package/es-modules/Extensions/DataGrouping.js +52 -32
  152. package/es-modules/Extensions/DownloadURL.js +2 -2
  153. package/es-modules/Extensions/DragPanes.js +1 -2
  154. package/es-modules/Extensions/DraggablePoints.js +7 -8
  155. package/es-modules/Extensions/Drilldown.js +11 -7
  156. package/es-modules/Extensions/ExportData.js +6 -5
  157. package/es-modules/Extensions/Exporting/Exporting.js +33 -46
  158. package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
  159. package/es-modules/Extensions/FullScreen.js +4 -3
  160. package/es-modules/Extensions/GeoJSON.js +42 -66
  161. package/es-modules/Extensions/MarkerClusters.js +118 -98
  162. package/es-modules/Extensions/Math3D.js +4 -4
  163. package/es-modules/Extensions/NoDataToDisplay.js +1 -2
  164. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +32 -32
  165. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  166. package/es-modules/Extensions/Oldie/Oldie.js +14 -79
  167. package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
  168. package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
  169. package/es-modules/Extensions/Pane.js +11 -12
  170. package/es-modules/Extensions/ParallelCoordinates.js +5 -3
  171. package/es-modules/Extensions/PatternFill.js +17 -11
  172. package/es-modules/Extensions/Polar.js +7 -4
  173. package/es-modules/Extensions/PriceIndication.js +2 -1
  174. package/es-modules/Extensions/RangeSelector.js +22 -59
  175. package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
  176. package/es-modules/Extensions/SeriesLabel.js +1 -1
  177. package/es-modules/Extensions/Sonification/ChartSonify.js +279 -663
  178. package/es-modules/Extensions/Sonification/Earcon.js +136 -102
  179. package/es-modules/Extensions/Sonification/Instrument.js +493 -426
  180. package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
  181. package/es-modules/Extensions/Sonification/Options.js +10 -0
  182. package/es-modules/Extensions/Sonification/PointSonify.js +207 -152
  183. package/es-modules/Extensions/Sonification/SeriesSonify.js +474 -0
  184. package/es-modules/Extensions/Sonification/SignalHandler.js +122 -0
  185. package/es-modules/Extensions/Sonification/Sonification.js +27 -53
  186. package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +70 -88
  187. package/es-modules/Extensions/Sonification/Timeline.js +250 -567
  188. package/es-modules/Extensions/Sonification/TimelineEvent.js +157 -0
  189. package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  190. package/es-modules/Extensions/Stacking.js +5 -23
  191. package/es-modules/Extensions/Themes/BrandDark.js +293 -0
  192. package/es-modules/Extensions/Themes/BrandLight.js +259 -0
  193. package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
  194. package/es-modules/Extensions/Themes/Grid.js +4 -2
  195. package/es-modules/Extensions/Themes/GridLight.js +4 -2
  196. package/es-modules/Gantt/Connection.js +2 -2
  197. package/es-modules/Gantt/Pathfinder.js +6 -5
  198. package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
  199. package/es-modules/Maps/MapNavigation.js +30 -68
  200. package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
  201. package/es-modules/Maps/MapPointer.js +8 -5
  202. package/es-modules/Maps/MapSymbols.js +23 -3
  203. package/es-modules/Maps/MapView.js +450 -0
  204. package/es-modules/Maps/MapViewOptionsDefault.js +97 -0
  205. package/es-modules/Maps/Projection.js +436 -0
  206. package/es-modules/Maps/ProjectionDefinition.js +9 -0
  207. package/es-modules/Maps/Projections/EqualEarth.js +42 -0
  208. package/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
  209. package/es-modules/Maps/Projections/Miller.js +16 -0
  210. package/es-modules/Maps/Projections/Orthographic.js +26 -0
  211. package/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
  212. package/es-modules/Maps/Projections/WebMercator.js +24 -0
  213. package/es-modules/Series/Area/AreaSeries.js +13 -13
  214. package/es-modules/Series/Area3DSeries.js +4 -2
  215. package/es-modules/Series/AreaRange/AreaRangeSeries.js +28 -17
  216. package/es-modules/Series/Bellcurve/BellcurveSeries.js +4 -9
  217. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
  218. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
  219. package/es-modules/Series/Bubble/BubbleLegendItem.js +5 -15
  220. package/es-modules/Series/Bubble/BubblePoint.js +5 -0
  221. package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
  222. package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -19
  223. package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
  224. package/es-modules/{Mixins/ColorMapSeries.js → Series/ColorMapMixin.js} +10 -8
  225. package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
  226. package/es-modules/Series/Column/ColumnSeries.js +19 -18
  227. package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
  228. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +11 -8
  229. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  230. package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
  231. package/es-modules/Series/DataModifyComposition.js +539 -0
  232. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
  233. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
  234. package/es-modules/Series/DerivedComposition.js +137 -0
  235. package/es-modules/Series/DrawPointComposition.js +111 -0
  236. package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
  237. package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -6
  238. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
  239. package/es-modules/Series/Flags/FlagsSeries.js +18 -25
  240. package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
  241. package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
  242. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
  243. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
  244. package/es-modules/Series/Gantt/GanttPoint.js +1 -1
  245. package/es-modules/Series/Gantt/GanttSeries.js +3 -3
  246. package/es-modules/Series/Gauge/GaugePoint.js +1 -1
  247. package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
  248. package/es-modules/Series/HLC/HLCPoint.js +55 -0
  249. package/es-modules/Series/HLC/HLCSeries.js +378 -0
  250. package/es-modules/Series/Heatmap/HeatmapPoint.js +13 -14
  251. package/es-modules/Series/Heatmap/HeatmapSeries.js +24 -12
  252. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +10 -9
  253. package/es-modules/Series/Histogram/HistogramSeries.js +7 -11
  254. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
  255. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +28 -30
  256. package/es-modules/Series/Item/ItemSeries.js +4 -5
  257. package/es-modules/Series/Line/LineSeries.js +1 -2
  258. package/es-modules/Series/Map/MapPoint.js +27 -14
  259. package/es-modules/Series/Map/MapSeries.js +283 -322
  260. package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
  261. package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
  262. package/es-modules/Series/MapLine/MapLineSeries.js +2 -4
  263. package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
  264. package/es-modules/Series/MapPoint/MapPointSeries.js +99 -14
  265. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
  266. package/es-modules/Series/Networkgraph/Integrations.js +8 -22
  267. package/es-modules/Series/Networkgraph/Networkgraph.js +6 -10
  268. package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
  269. package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +78 -30
  270. package/es-modules/Series/OHLC/OHLCPoint.js +2 -7
  271. package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
  272. package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
  273. package/es-modules/Series/Organization/OrganizationSeries.js +6 -5
  274. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
  275. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  276. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +48 -10
  277. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
  278. package/es-modules/Series/Pie/PieDataLabel.js +1 -2
  279. package/es-modules/Series/Pie/PiePoint.js +2 -2
  280. package/es-modules/Series/Pie/PieSeries.js +7 -8
  281. package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
  282. package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
  283. package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  284. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
  285. package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
  286. package/es-modules/Series/Sankey/SankeySeries.js +92 -22
  287. package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
  288. package/es-modules/Series/Spline/SplineSeries.js +0 -8
  289. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
  290. package/es-modules/Series/Sunburst/SunburstSeries.js +6 -6
  291. package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
  292. package/es-modules/Series/Tilemap/TilemapPoint.js +2 -5
  293. package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
  294. package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
  295. package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +88 -78
  296. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  297. package/es-modules/Series/Treemap/TreemapSeries.js +22 -25
  298. package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
  299. package/es-modules/Series/Venn/VennPoint.js +16 -7
  300. package/es-modules/Series/Venn/VennSeries.js +11 -17
  301. package/es-modules/Series/Venn/VennUtils.js +551 -439
  302. package/es-modules/Series/Waterfall/WaterfallSeries.js +8 -6
  303. package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
  304. package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
  305. package/es-modules/Series/Wordcloud/WordcloudSeries.js +26 -22
  306. package/es-modules/Series/Wordcloud/WordcloudUtils.js +669 -484
  307. package/es-modules/Series/XRange/XRangePoint.js +7 -12
  308. package/es-modules/Series/XRange/XRangeSeries.js +4 -20
  309. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +15 -6
  310. package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
  311. package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
  312. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +4 -6
  313. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
  314. package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  315. package/es-modules/Stock/Indicators/BB/BBIndicator.js +39 -11
  316. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
  317. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
  318. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
  319. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +28 -16
  320. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +18 -11
  321. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
  322. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
  323. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +23 -9
  324. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +16 -19
  325. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +32 -14
  326. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
  327. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
  328. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
  329. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +2 -3
  330. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +294 -0
  331. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
  332. package/es-modules/Stock/Indicators/PC/PCIndicator.js +25 -13
  333. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
  334. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
  335. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
  336. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
  337. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +32 -50
  338. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
  339. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -9
  340. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
  341. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
  342. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
  343. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +26 -10
  344. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
  345. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
  346. package/es-modules/Stock/StockToolsBindings.js +156 -47
  347. package/es-modules/Stock/StockToolsGui.js +442 -37
  348. package/es-modules/masters/highcharts-3d.src.js +1 -1
  349. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  350. package/es-modules/masters/highcharts-more.src.js +1 -1
  351. package/es-modules/masters/highcharts.src.js +1 -1
  352. package/es-modules/masters/highmaps.src.js +1 -1
  353. package/es-modules/masters/highstock.src.js +1 -1
  354. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  355. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  356. package/es-modules/masters/indicators/ao.src.js +1 -1
  357. package/es-modules/masters/indicators/apo.src.js +1 -1
  358. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  359. package/es-modules/masters/indicators/aroon.src.js +1 -1
  360. package/es-modules/masters/indicators/atr.src.js +1 -1
  361. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  362. package/es-modules/masters/indicators/cci.src.js +1 -1
  363. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  364. package/es-modules/masters/indicators/cmf.src.js +1 -1
  365. package/es-modules/masters/indicators/cmo.src.js +1 -1
  366. package/es-modules/masters/indicators/dema.src.js +1 -1
  367. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  368. package/es-modules/masters/indicators/dmi.src.js +1 -1
  369. package/es-modules/masters/indicators/dpo.src.js +1 -1
  370. package/es-modules/masters/indicators/ema.src.js +4 -10
  371. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  372. package/es-modules/masters/indicators/indicators-all.src.js +2 -2
  373. package/es-modules/masters/indicators/indicators.src.js +2 -1
  374. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  375. package/es-modules/masters/indicators/klinger.src.js +1 -1
  376. package/es-modules/masters/indicators/macd.src.js +1 -1
  377. package/es-modules/masters/indicators/mfi.src.js +1 -1
  378. package/es-modules/masters/indicators/momentum.src.js +1 -1
  379. package/es-modules/masters/indicators/natr.src.js +1 -1
  380. package/es-modules/masters/indicators/obv.src.js +1 -1
  381. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  382. package/es-modules/masters/indicators/ppo.src.js +1 -1
  383. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  384. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  385. package/es-modules/masters/indicators/psar.src.js +1 -1
  386. package/es-modules/masters/indicators/regressions.src.js +1 -1
  387. package/es-modules/masters/indicators/roc.src.js +1 -1
  388. package/es-modules/masters/indicators/rsi.src.js +1 -1
  389. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  390. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  391. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  392. package/es-modules/masters/indicators/tema.src.js +1 -1
  393. package/es-modules/masters/indicators/trendline.src.js +1 -1
  394. package/es-modules/masters/indicators/trix.src.js +1 -1
  395. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  396. package/es-modules/masters/indicators/vwap.src.js +1 -1
  397. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  398. package/es-modules/masters/indicators/wma.src.js +1 -1
  399. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  400. package/es-modules/masters/modules/accessibility.src.js +16 -2
  401. package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
  402. package/es-modules/masters/modules/annotations.src.js +1 -1
  403. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  404. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  405. package/es-modules/masters/modules/boost.src.js +1 -1
  406. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  407. package/es-modules/masters/modules/bullet.src.js +1 -1
  408. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  409. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  410. package/es-modules/masters/modules/cylinder.src.js +1 -1
  411. package/es-modules/masters/modules/data.src.js +6 -3
  412. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  413. package/es-modules/masters/modules/debugger.src.js +1 -1
  414. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  415. package/es-modules/masters/modules/dotplot.src.js +1 -1
  416. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  417. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  418. package/es-modules/masters/modules/drilldown.src.js +1 -1
  419. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  420. package/es-modules/masters/modules/export-data.src.js +1 -1
  421. package/es-modules/masters/modules/exporting.src.js +1 -1
  422. package/es-modules/masters/modules/full-screen.src.js +1 -1
  423. package/es-modules/masters/modules/funnel.src.js +1 -1
  424. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  425. package/es-modules/masters/modules/gantt.src.js +1 -1
  426. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  427. package/es-modules/masters/modules/heatmap.src.js +1 -2
  428. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  429. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  430. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  431. package/es-modules/masters/modules/item-series.src.js +1 -1
  432. package/es-modules/masters/modules/lollipop.src.js +1 -1
  433. package/es-modules/masters/modules/map.src.js +1 -3
  434. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  435. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  436. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  437. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  438. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  439. package/es-modules/masters/modules/oldie.src.js +1 -1
  440. package/es-modules/masters/modules/organization.src.js +1 -1
  441. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  442. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  443. package/es-modules/masters/modules/pareto.src.js +1 -1
  444. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  445. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  446. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  447. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  448. package/es-modules/masters/modules/sankey.src.js +1 -1
  449. package/es-modules/masters/modules/series-label.src.js +1 -1
  450. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  451. package/es-modules/masters/modules/sonification.src.js +33 -2
  452. package/es-modules/masters/modules/static-scale.src.js +1 -1
  453. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  454. package/es-modules/masters/modules/stock.src.js +4 -1
  455. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  456. package/es-modules/masters/modules/sunburst.src.js +1 -1
  457. package/es-modules/masters/modules/tilemap.src.js +1 -1
  458. package/es-modules/masters/modules/timeline.src.js +1 -1
  459. package/es-modules/masters/modules/treegrid.src.js +1 -1
  460. package/es-modules/masters/modules/treemap.src.js +1 -1
  461. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  462. package/es-modules/masters/modules/variwide.src.js +1 -1
  463. package/es-modules/masters/modules/vector.src.js +1 -1
  464. package/es-modules/masters/modules/venn.src.js +1 -1
  465. package/es-modules/masters/modules/windbarb.src.js +1 -1
  466. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  467. package/es-modules/masters/modules/xrange.src.js +1 -1
  468. package/es-modules/masters/themes/avocado.src.js +1 -1
  469. package/es-modules/masters/themes/brand-dark.src.js +14 -0
  470. package/es-modules/masters/themes/brand-light.src.js +14 -0
  471. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  472. package/es-modules/masters/themes/dark-green.src.js +1 -1
  473. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  474. package/es-modules/masters/themes/gray.src.js +1 -1
  475. package/es-modules/masters/themes/grid-light.src.js +1 -1
  476. package/es-modules/masters/themes/grid.src.js +1 -1
  477. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  478. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  479. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  480. package/es-modules/masters/themes/skies.src.js +1 -1
  481. package/es-modules/masters/themes/sunset.src.js +1 -1
  482. package/highcharts-3d.js +1 -1
  483. package/highcharts-3d.js.map +1 -1
  484. package/highcharts-3d.src.js +65 -35
  485. package/highcharts-gantt.js +800 -803
  486. package/highcharts-gantt.js.map +1 -1
  487. package/highcharts-gantt.src.js +1356 -1429
  488. package/highcharts-more.js +194 -193
  489. package/highcharts-more.js.map +1 -1
  490. package/highcharts-more.src.js +280 -222
  491. package/highcharts.d.ts +10208 -761
  492. package/highcharts.js +585 -588
  493. package/highcharts.js.map +1 -1
  494. package/highcharts.src.d.ts +10208 -761
  495. package/highcharts.src.js +992 -1066
  496. package/highmaps.js +727 -707
  497. package/highmaps.js.map +1 -1
  498. package/highmaps.src.js +3240 -2135
  499. package/highstock.js +788 -783
  500. package/highstock.js.map +1 -1
  501. package/highstock.src.js +2487 -1981
  502. package/indicators/acceleration-bands.d.ts +17 -1
  503. package/indicators/acceleration-bands.js +11 -9
  504. package/indicators/acceleration-bands.js.map +1 -1
  505. package/indicators/acceleration-bands.src.d.ts +17 -1
  506. package/indicators/acceleration-bands.src.js +238 -112
  507. package/indicators/accumulation-distribution.js +1 -1
  508. package/indicators/accumulation-distribution.src.js +1 -1
  509. package/indicators/ao.js +6 -6
  510. package/indicators/ao.js.map +1 -1
  511. package/indicators/ao.src.js +4 -4
  512. package/indicators/apo.js +5 -6
  513. package/indicators/apo.js.map +1 -1
  514. package/indicators/apo.src.js +16 -84
  515. package/indicators/aroon-oscillator.d.ts +17 -1
  516. package/indicators/aroon-oscillator.js +10 -9
  517. package/indicators/aroon-oscillator.js.map +1 -1
  518. package/indicators/aroon-oscillator.src.d.ts +17 -1
  519. package/indicators/aroon-oscillator.src.js +230 -177
  520. package/indicators/aroon.d.ts +17 -1
  521. package/indicators/aroon.js +11 -9
  522. package/indicators/aroon.js.map +1 -1
  523. package/indicators/aroon.src.d.ts +17 -1
  524. package/indicators/aroon.src.js +227 -112
  525. package/indicators/atr.js +1 -1
  526. package/indicators/atr.src.js +1 -1
  527. package/indicators/bollinger-bands.d.ts +17 -1
  528. package/indicators/bollinger-bands.js +12 -9
  529. package/indicators/bollinger-bands.js.map +1 -1
  530. package/indicators/bollinger-bands.src.d.ts +17 -1
  531. package/indicators/bollinger-bands.src.js +262 -117
  532. package/indicators/cci.js +1 -1
  533. package/indicators/cci.src.js +1 -1
  534. package/indicators/chaikin.js +8 -9
  535. package/indicators/chaikin.js.map +1 -1
  536. package/indicators/chaikin.src.js +8 -76
  537. package/indicators/cmf.js +1 -1
  538. package/indicators/cmf.js.map +1 -1
  539. package/indicators/cmf.src.js +36 -16
  540. package/indicators/cmo.js +1 -1
  541. package/indicators/cmo.src.js +1 -1
  542. package/indicators/dema.js +5 -6
  543. package/indicators/dema.js.map +1 -1
  544. package/indicators/dema.src.js +3 -75
  545. package/indicators/disparity-index.js +6 -7
  546. package/indicators/disparity-index.js.map +1 -1
  547. package/indicators/disparity-index.src.js +20 -74
  548. package/indicators/dmi.js +12 -11
  549. package/indicators/dmi.js.map +1 -1
  550. package/indicators/dmi.src.js +252 -121
  551. package/indicators/dpo.js +1 -1
  552. package/indicators/dpo.src.js +1 -1
  553. package/indicators/ema.js +1 -13
  554. package/indicators/ema.js.map +1 -1
  555. package/indicators/ema.src.js +7 -188
  556. package/indicators/ichimoku-kinko-hyo.js +1 -1
  557. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  558. package/indicators/ichimoku-kinko-hyo.src.js +7 -7
  559. package/indicators/indicators-all.d.ts +17 -1
  560. package/indicators/indicators-all.js +198 -203
  561. package/indicators/indicators-all.js.map +1 -1
  562. package/indicators/indicators-all.src.d.ts +17 -1
  563. package/indicators/indicators-all.src.js +892 -777
  564. package/indicators/indicators.js +12 -12
  565. package/indicators/indicators.js.map +1 -1
  566. package/indicators/indicators.src.js +213 -144
  567. package/indicators/keltner-channels.d.ts +17 -1
  568. package/indicators/keltner-channels.js +11 -10
  569. package/indicators/keltner-channels.js.map +1 -1
  570. package/indicators/keltner-channels.src.d.ts +17 -1
  571. package/indicators/keltner-channels.src.js +246 -118
  572. package/indicators/klinger.js +14 -13
  573. package/indicators/klinger.js.map +1 -1
  574. package/indicators/klinger.src.js +239 -187
  575. package/indicators/macd.js +2 -2
  576. package/indicators/macd.js.map +1 -1
  577. package/indicators/macd.src.js +3 -4
  578. package/indicators/mfi.js +1 -1
  579. package/indicators/mfi.src.js +1 -1
  580. package/indicators/momentum.js +1 -1
  581. package/indicators/momentum.src.js +1 -1
  582. package/indicators/natr.js +3 -3
  583. package/indicators/natr.js.map +1 -1
  584. package/indicators/natr.src.js +2 -4
  585. package/indicators/obv.js +1 -1
  586. package/indicators/obv.src.js +1 -1
  587. package/indicators/pivot-points.js +1 -1
  588. package/indicators/pivot-points.js.map +1 -1
  589. package/indicators/pivot-points.src.js +3 -2
  590. package/indicators/ppo.js +5 -6
  591. package/indicators/ppo.js.map +1 -1
  592. package/indicators/ppo.src.js +3 -75
  593. package/indicators/price-channel.d.ts +17 -1
  594. package/indicators/price-channel.js +11 -9
  595. package/indicators/price-channel.js.map +1 -1
  596. package/indicators/price-channel.src.d.ts +17 -1
  597. package/indicators/price-channel.src.js +288 -168
  598. package/indicators/price-envelopes.js +1 -1
  599. package/indicators/price-envelopes.src.js +1 -1
  600. package/indicators/psar.js +1 -1
  601. package/indicators/psar.src.js +1 -1
  602. package/indicators/regressions.js +1 -1
  603. package/indicators/regressions.js.map +1 -1
  604. package/indicators/regressions.src.js +39 -21
  605. package/indicators/roc.js +1 -1
  606. package/indicators/roc.src.js +1 -1
  607. package/indicators/rsi.js +1 -1
  608. package/indicators/rsi.js.map +1 -1
  609. package/indicators/rsi.src.js +3 -2
  610. package/indicators/slow-stochastic.js +5 -6
  611. package/indicators/slow-stochastic.js.map +1 -1
  612. package/indicators/slow-stochastic.src.js +2 -72
  613. package/indicators/stochastic.d.ts +17 -1
  614. package/indicators/stochastic.js +12 -10
  615. package/indicators/stochastic.js.map +1 -1
  616. package/indicators/stochastic.src.d.ts +17 -1
  617. package/indicators/stochastic.src.js +282 -165
  618. package/indicators/supertrend.js +10 -10
  619. package/indicators/supertrend.js.map +1 -1
  620. package/indicators/supertrend.src.js +6 -7
  621. package/indicators/tema.js +6 -7
  622. package/indicators/tema.js.map +1 -1
  623. package/indicators/tema.src.js +28 -75
  624. package/indicators/trendline.js +1 -1
  625. package/indicators/trendline.src.js +1 -1
  626. package/indicators/trix.js +4 -5
  627. package/indicators/trix.js.map +1 -1
  628. package/indicators/trix.src.js +8 -76
  629. package/indicators/volume-by-price.js +16 -16
  630. package/indicators/volume-by-price.js.map +1 -1
  631. package/indicators/volume-by-price.src.js +27 -10
  632. package/indicators/vwap.js +1 -1
  633. package/indicators/vwap.js.map +1 -1
  634. package/indicators/vwap.src.js +20 -8
  635. package/indicators/williams-r.js +5 -6
  636. package/indicators/williams-r.js.map +1 -1
  637. package/indicators/williams-r.src.js +41 -51
  638. package/indicators/wma.js +1 -1
  639. package/indicators/wma.src.js +1 -1
  640. package/indicators/zigzag.js +1 -1
  641. package/indicators/zigzag.src.js +1 -1
  642. package/modules/accessibility.d.ts +0 -30
  643. package/modules/accessibility.js +241 -216
  644. package/modules/accessibility.js.map +1 -1
  645. package/modules/accessibility.src.d.ts +0 -30
  646. package/modules/accessibility.src.js +7818 -6398
  647. package/modules/annotations-advanced.d.ts +30 -0
  648. package/modules/annotations-advanced.js +192 -165
  649. package/modules/annotations-advanced.js.map +1 -1
  650. package/modules/annotations-advanced.src.d.ts +30 -0
  651. package/modules/annotations-advanced.src.js +1716 -416
  652. package/modules/annotations.js +125 -110
  653. package/modules/annotations.js.map +1 -1
  654. package/modules/annotations.src.js +1059 -304
  655. package/modules/arrow-symbols.js +1 -1
  656. package/modules/arrow-symbols.src.js +1 -1
  657. package/modules/boost-canvas.js +15 -15
  658. package/modules/boost-canvas.js.map +1 -1
  659. package/modules/boost-canvas.src.js +3 -3
  660. package/modules/boost.js +79 -79
  661. package/modules/boost.js.map +1 -1
  662. package/modules/boost.src.js +42 -51
  663. package/modules/broken-axis.js +1 -1
  664. package/modules/broken-axis.js.map +1 -1
  665. package/modules/broken-axis.src.js +18 -12
  666. package/modules/bullet.js +1 -1
  667. package/modules/bullet.src.js +1 -1
  668. package/modules/coloraxis.js +24 -24
  669. package/modules/coloraxis.js.map +1 -1
  670. package/modules/coloraxis.src.js +77 -103
  671. package/modules/current-date-indicator.js +4 -4
  672. package/modules/current-date-indicator.js.map +1 -1
  673. package/modules/current-date-indicator.src.js +4 -4
  674. package/modules/cylinder.js +1 -1
  675. package/modules/cylinder.js.map +1 -1
  676. package/modules/cylinder.src.js +37 -5
  677. package/modules/data.d.ts +6 -6
  678. package/modules/data.js +31 -31
  679. package/modules/data.js.map +1 -1
  680. package/modules/data.src.d.ts +6 -6
  681. package/modules/data.src.js +18 -58
  682. package/modules/datagrouping.js +20 -20
  683. package/modules/datagrouping.js.map +1 -1
  684. package/modules/datagrouping.src.js +54 -33
  685. package/modules/debugger.js +1 -1
  686. package/modules/debugger.src.js +1 -1
  687. package/modules/dependency-wheel.js +11 -11
  688. package/modules/dependency-wheel.js.map +1 -1
  689. package/modules/dependency-wheel.src.js +5 -8
  690. package/modules/dotplot.js +1 -1
  691. package/modules/dotplot.src.js +1 -1
  692. package/modules/drag-panes.js +8 -8
  693. package/modules/drag-panes.js.map +1 -1
  694. package/modules/drag-panes.src.js +3 -3
  695. package/modules/draggable-points.js +1 -1
  696. package/modules/draggable-points.js.map +1 -1
  697. package/modules/draggable-points.src.js +8 -9
  698. package/modules/drilldown.js +24 -24
  699. package/modules/drilldown.js.map +1 -1
  700. package/modules/drilldown.src.js +13 -8
  701. package/modules/dumbbell.js +17 -17
  702. package/modules/dumbbell.js.map +1 -1
  703. package/modules/dumbbell.src.js +4 -8
  704. package/modules/export-data.js +19 -19
  705. package/modules/export-data.js.map +1 -1
  706. package/modules/export-data.src.js +9 -8
  707. package/modules/exporting.js +39 -38
  708. package/modules/exporting.js.map +1 -1
  709. package/modules/exporting.src.js +132 -113
  710. package/modules/full-screen.js +1 -1
  711. package/modules/full-screen.js.map +1 -1
  712. package/modules/full-screen.src.js +5 -4
  713. package/modules/funnel.js +12 -12
  714. package/modules/funnel.js.map +1 -1
  715. package/modules/funnel.src.js +9 -6
  716. package/modules/funnel3d.js +1 -1
  717. package/modules/funnel3d.js.map +1 -1
  718. package/modules/funnel3d.src.js +17 -10
  719. package/modules/gantt.js +217 -218
  720. package/modules/gantt.js.map +1 -1
  721. package/modules/gantt.src.js +364 -363
  722. package/modules/grid-axis.js +1 -1
  723. package/modules/grid-axis.js.map +1 -1
  724. package/modules/grid-axis.src.js +27 -19
  725. package/modules/heatmap.js +39 -39
  726. package/modules/heatmap.js.map +1 -1
  727. package/modules/heatmap.src.js +132 -141
  728. package/modules/heikinashi.js +1 -1
  729. package/modules/heikinashi.js.map +1 -1
  730. package/modules/heikinashi.src.js +12 -10
  731. package/modules/histogram-bellcurve.js +13 -13
  732. package/modules/histogram-bellcurve.js.map +1 -1
  733. package/modules/histogram-bellcurve.src.js +97 -91
  734. package/modules/hollowcandlestick.js +9 -9
  735. package/modules/hollowcandlestick.js.map +1 -1
  736. package/modules/hollowcandlestick.src.js +31 -35
  737. package/modules/item-series.js +6 -6
  738. package/modules/item-series.js.map +1 -1
  739. package/modules/item-series.src.js +6 -6
  740. package/modules/lollipop.js +1 -1
  741. package/modules/lollipop.src.js +1 -1
  742. package/modules/map.d.ts +138 -14
  743. package/modules/map.js +144 -122
  744. package/modules/map.js.map +1 -1
  745. package/modules/map.src.d.ts +138 -14
  746. package/modules/map.src.js +2253 -1074
  747. package/modules/marker-clusters.js +36 -36
  748. package/modules/marker-clusters.js.map +1 -1
  749. package/modules/marker-clusters.src.js +176 -143
  750. package/modules/networkgraph.d.ts +12 -1
  751. package/modules/networkgraph.js +49 -49
  752. package/modules/networkgraph.js.map +1 -1
  753. package/modules/networkgraph.src.d.ts +12 -1
  754. package/modules/networkgraph.src.js +103 -78
  755. package/modules/no-data-to-display.js +5 -5
  756. package/modules/no-data-to-display.js.map +1 -1
  757. package/modules/no-data-to-display.src.js +3 -3
  758. package/modules/offline-exporting.js +18 -18
  759. package/modules/offline-exporting.js.map +1 -1
  760. package/modules/offline-exporting.src.js +38 -43
  761. package/modules/oldie-polyfills.js +1 -1
  762. package/modules/oldie-polyfills.src.js +1 -1
  763. package/modules/oldie.js +26 -26
  764. package/modules/oldie.js.map +1 -1
  765. package/modules/oldie.src.js +21 -81
  766. package/modules/organization.js +13 -13
  767. package/modules/organization.js.map +1 -1
  768. package/modules/organization.src.js +8 -6
  769. package/modules/overlapping-datalabels.js +1 -1
  770. package/modules/overlapping-datalabels.src.js +1 -1
  771. package/modules/parallel-coordinates.js +1 -1
  772. package/modules/parallel-coordinates.js.map +1 -1
  773. package/modules/parallel-coordinates.src.js +6 -4
  774. package/modules/pareto.js +7 -7
  775. package/modules/pareto.js.map +1 -1
  776. package/modules/pareto.src.js +89 -78
  777. package/modules/pathfinder.js +1 -1
  778. package/modules/pathfinder.js.map +1 -1
  779. package/modules/pathfinder.src.js +21 -20
  780. package/modules/pattern-fill.js +1 -1
  781. package/modules/pattern-fill.js.map +1 -1
  782. package/modules/pattern-fill.src.js +18 -12
  783. package/modules/price-indicator.js +1 -1
  784. package/modules/price-indicator.js.map +1 -1
  785. package/modules/price-indicator.src.js +3 -2
  786. package/modules/pyramid3d.js +1 -1
  787. package/modules/pyramid3d.js.map +1 -1
  788. package/modules/pyramid3d.src.js +3 -2
  789. package/modules/sankey.d.ts +12 -1
  790. package/modules/sankey.js +29 -29
  791. package/modules/sankey.js.map +1 -1
  792. package/modules/sankey.src.d.ts +12 -1
  793. package/modules/sankey.src.js +307 -181
  794. package/modules/series-label.js +1 -1
  795. package/modules/series-label.js.map +1 -1
  796. package/modules/series-label.src.js +2 -2
  797. package/modules/solid-gauge.js +1 -1
  798. package/modules/solid-gauge.js.map +1 -1
  799. package/modules/solid-gauge.src.js +17 -2
  800. package/modules/sonification.js +59 -55
  801. package/modules/sonification.js.map +1 -1
  802. package/modules/sonification.src.js +3093 -2594
  803. package/modules/static-scale.js +1 -1
  804. package/modules/static-scale.src.js +1 -1
  805. package/modules/stock-tools.js +178 -163
  806. package/modules/stock-tools.js.map +1 -1
  807. package/modules/stock-tools.src.js +1136 -229
  808. package/modules/stock.d.ts +39 -6
  809. package/modules/stock.js +204 -196
  810. package/modules/stock.js.map +1 -1
  811. package/modules/stock.src.d.ts +39 -6
  812. package/modules/stock.src.js +1820 -1240
  813. package/modules/streamgraph.js +1 -1
  814. package/modules/streamgraph.src.js +1 -1
  815. package/modules/sunburst.js +60 -60
  816. package/modules/sunburst.js.map +1 -1
  817. package/modules/sunburst.src.js +281 -248
  818. package/modules/tilemap.js +17 -17
  819. package/modules/tilemap.js.map +1 -1
  820. package/modules/tilemap.src.js +3 -13
  821. package/modules/timeline.js +18 -18
  822. package/modules/timeline.js.map +1 -1
  823. package/modules/timeline.src.js +5 -5
  824. package/modules/treegrid.js +56 -57
  825. package/modules/treegrid.js.map +1 -1
  826. package/modules/treegrid.src.js +201 -169
  827. package/modules/treemap.js +41 -41
  828. package/modules/treemap.js.map +1 -1
  829. package/modules/treemap.src.js +266 -232
  830. package/modules/variable-pie.js +1 -1
  831. package/modules/variable-pie.src.js +1 -1
  832. package/modules/variwide.js +1 -1
  833. package/modules/variwide.js.map +1 -1
  834. package/modules/variwide.src.js +7 -3
  835. package/modules/vector.js +1 -1
  836. package/modules/vector.src.js +1 -1
  837. package/modules/venn.js +31 -31
  838. package/modules/venn.js.map +1 -1
  839. package/modules/venn.src.js +740 -731
  840. package/modules/windbarb.js +15 -15
  841. package/modules/windbarb.js.map +1 -1
  842. package/modules/windbarb.src.js +90 -62
  843. package/modules/wordcloud.js +23 -24
  844. package/modules/wordcloud.js.map +1 -1
  845. package/modules/wordcloud.src.js +898 -954
  846. package/modules/xrange.js +2 -2
  847. package/modules/xrange.js.map +1 -1
  848. package/modules/xrange.src.js +12 -33
  849. package/package.json +1 -1
  850. package/themes/avocado.js +1 -1
  851. package/themes/avocado.src.js +1 -1
  852. package/themes/brand-dark.js +15 -0
  853. package/themes/brand-dark.js.map +1 -0
  854. package/themes/brand-dark.src.js +328 -0
  855. package/themes/brand-light.js +15 -0
  856. package/themes/brand-light.js.map +1 -0
  857. package/themes/brand-light.src.js +294 -0
  858. package/themes/dark-blue.js +1 -1
  859. package/themes/dark-blue.src.js +1 -1
  860. package/themes/dark-green.js +1 -1
  861. package/themes/dark-green.src.js +1 -1
  862. package/themes/dark-unica.js +1 -1
  863. package/themes/dark-unica.js.map +1 -1
  864. package/themes/dark-unica.src.js +5 -3
  865. package/themes/gray.js +1 -1
  866. package/themes/gray.src.js +1 -1
  867. package/themes/grid-light.js +1 -1
  868. package/themes/grid-light.js.map +1 -1
  869. package/themes/grid-light.src.js +5 -3
  870. package/themes/grid.js +1 -1
  871. package/themes/grid.js.map +1 -1
  872. package/themes/grid.src.js +5 -3
  873. package/themes/high-contrast-dark.js +1 -1
  874. package/themes/high-contrast-dark.src.js +1 -1
  875. package/themes/high-contrast-light.js +1 -1
  876. package/themes/high-contrast-light.src.js +1 -1
  877. package/themes/sand-signika.js +1 -1
  878. package/themes/sand-signika.src.js +1 -1
  879. package/themes/skies.js +1 -1
  880. package/themes/skies.src.js +1 -1
  881. package/themes/sunset.js +1 -1
  882. package/themes/sunset.src.js +1 -1
  883. package/es-modules/Core/Axis/MapAxis.js +0 -157
  884. package/es-modules/Core/Color/Palette.js +0 -82
  885. package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
  886. package/es-modules/Mixins/ColorSeries.js +0 -77
  887. package/es-modules/Mixins/DerivedSeries.js +0 -118
  888. package/es-modules/Mixins/DrawPoint.js +0 -81
  889. package/es-modules/Mixins/IndicatorRequired.js +0 -56
  890. package/es-modules/Mixins/MultipleLines.js +0 -181
  891. package/es-modules/Mixins/Navigation.js +0 -54
  892. package/es-modules/Mixins/NelderMead.js +0 -132
  893. package/es-modules/Mixins/Polygon.js +0 -259
  894. 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.2 (2021-08-24)
2
+ * @license Highcharts JS v9.3.3 (2022-02-01)
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.2', 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.3', 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.2'));
12423
+ desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.3.3'));
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;
@@ -36806,7 +36764,8 @@
36806
36764
  * @readonly
36807
36765
  */
36808
36766
  // For faster access in Point.update
36809
- point.index = hasGroupedData ? (groupCropStartIndex + i) : cursor;
36767
+ point.index = hasGroupedData ?
36768
+ (groupCropStartIndex + i) : cursor;
36810
36769
  points[i] = point;
36811
36770
  }
36812
36771
  }
@@ -36866,12 +36825,9 @@
36866
36825
  *
36867
36826
  * @private
36868
36827
  * @function Highcharts.Series#getXExtremes
36869
- *
36870
36828
  * @param {Array<number>} xData
36871
36829
  * The data to inspect. Defaults to the current data within the visible
36872
36830
  * range.
36873
- *
36874
- * @return {Highcharts.RangeObject}
36875
36831
  */
36876
36832
  Series.prototype.getXExtremes = function (xData) {
36877
36833
  return {
@@ -36885,14 +36841,11 @@
36885
36841
  *
36886
36842
  * @private
36887
36843
  * @function Highcharts.Series#getExtremes
36888
- *
36889
36844
  * @param {Array<number>} [yData]
36890
36845
  * The data to inspect. Defaults to the current data within the visible
36891
36846
  * range.
36892
36847
  * @param {boolean} [forceExtremesFromAll]
36893
36848
  * Force getting extremes of a total series data range.
36894
- *
36895
- * @return {Highcharts.DataExtremesObject}
36896
36849
  */
36897
36850
  Series.prototype.getExtremes = function (yData, forceExtremesFromAll) {
36898
36851
  var xAxis = this.xAxis,
@@ -36950,6 +36903,7 @@
36950
36903
  }
36951
36904
  }
36952
36905
  var dataExtremes = {
36906
+ activeYData: activeYData,
36953
36907
  dataMin: arrayMin(activeYData),
36954
36908
  dataMax: arrayMax(activeYData)
36955
36909
  };
@@ -36991,11 +36945,8 @@
36991
36945
  *
36992
36946
  * @private
36993
36947
  * @function Highcharts.Series.getFirstValidPoint
36994
- *
36995
36948
  * @param {Array<Highcharts.PointOptionsType>} data
36996
36949
  * Array of options for points
36997
- *
36998
- * @return {Highcharts.PointOptionsType}
36999
36950
  */
37000
36951
  Series.prototype.getFirstValidPoint = function (data) {
37001
36952
  var dataLength = data.length;
@@ -37015,7 +36966,7 @@
37015
36966
  *
37016
36967
  * @function Highcharts.Series#translate
37017
36968
  *
37018
- * @fires Highcharts.Series#events:translate
36969
+ * @emits Highcharts.Series#events:translate
37019
36970
  */
37020
36971
  Series.prototype.translate = function () {
37021
36972
  if (!this.processedXData) { // hidden series
@@ -37031,7 +36982,6 @@
37031
36982
  yAxis = series.yAxis,
37032
36983
  points = series.points,
37033
36984
  dataLength = points.length,
37034
- hasModifyValue = !!series.modifyValue,
37035
36985
  pointPlacement = series.pointPlacementToXValue(), // #7860
37036
36986
  dynamicallyPlaced = Boolean(pointPlacement),
37037
36987
  threshold = options.threshold,
@@ -37064,8 +37014,10 @@
37064
37014
  (stackThreshold ? 0 : threshold) ?
37065
37015
  '-' :
37066
37016
  '') + series.stackKey];
37067
- if (yAxis.positiveValuesOnly && !yAxis.validatePositiveValue(yValue) ||
37068
- xAxis.positiveValuesOnly && !xAxis.validatePositiveValue(xValue)) {
37017
+ if (yAxis.positiveValuesOnly &&
37018
+ !yAxis.validatePositiveValue(yValue) ||
37019
+ xAxis.positiveValuesOnly &&
37020
+ !xAxis.validatePositiveValue(xValue)) {
37069
37021
  point.isNull = true;
37070
37022
  }
37071
37023
  // Get the plotX translation
@@ -37116,9 +37068,9 @@
37116
37068
  point.yBottom = defined(yBottom) ?
37117
37069
  limitedRange(yAxis.translate(yBottom, 0, 1, 0, 1)) :
37118
37070
  null;
37119
- // general hook, used for Highcharts Stock compare mode
37120
- if (hasModifyValue) {
37121
- 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);
37122
37074
  }
37123
37075
  // Set the the plotY value, reset it for redraws
37124
37076
  // #3201
@@ -37156,7 +37108,7 @@
37156
37108
  lastPlotX = plotX;
37157
37109
  }
37158
37110
  // Find point zone
37159
- point.zone = (this.zones.length && point.getZone());
37111
+ point.zone = this.zones.length ? point.getZone() : void 0;
37160
37112
  // Animate new points with data sorting
37161
37113
  if (!point.graphic && series.group && enabledDataSorting) {
37162
37114
  point.isNew = true;
@@ -37200,52 +37152,23 @@
37200
37152
  *
37201
37153
  * @private
37202
37154
  * @function Highcharts.Series#getClip
37203
- *
37204
- * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
37205
- * Initialize the animation.
37206
- *
37207
- * @param {boolean} [finalBox]
37208
- * Final size for the clip - end state for the animation.
37209
- *
37210
- * @return {Highcharts.Dictionary<number>}
37211
37155
  */
37212
- Series.prototype.getClipBox = function (animation, finalBox) {
37213
- var series = this,
37214
- options = series.options,
37215
- chart = series.chart,
37216
- inverted = chart.inverted,
37217
- xAxis = series.xAxis,
37218
- yAxis = xAxis && series.yAxis,
37219
- scrollablePlotAreaOptions = chart.options.chart.scrollablePlotArea || {};
37220
- var clipBox;
37221
- if (animation && options.clip === false && yAxis) {
37222
- // support for not clipped series animation (#10450)
37223
- clipBox = inverted ? {
37224
- y: -chart.chartWidth + yAxis.len + yAxis.pos,
37225
- height: chart.chartWidth,
37226
- width: chart.chartHeight,
37227
- x: -chart.chartHeight + xAxis.len + xAxis.pos
37228
- } : {
37229
- y: -yAxis.pos,
37230
- height: chart.chartHeight,
37231
- width: chart.chartWidth,
37232
- x: -xAxis.pos
37233
- };
37234
- // x and width will be changed later when setting for animation
37235
- // 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;
37236
37167
  }
37237
- else {
37238
- clipBox = series.clipBox || chart.clipBox;
37239
- if (finalBox) {
37240
- clipBox.width = chart.plotSizeX;
37241
- clipBox.x = (chart.scrollablePixelsX || 0) *
37242
- (scrollablePlotAreaOptions.scrollPositionX || 0);
37243
- }
37168
+ if (yAxis && yAxis.len !== chart.plotSizeY) {
37169
+ seriesBox.height = yAxis.len;
37244
37170
  }
37245
- return !finalBox ? clipBox : {
37246
- width: clipBox.width,
37247
- x: clipBox.x
37248
- };
37171
+ return seriesBox;
37249
37172
  };
37250
37173
  /**
37251
37174
  * Get the shared clip key, creating it if it doesn't exist.
@@ -37253,99 +37176,52 @@
37253
37176
  * @private
37254
37177
  * @function Highcharts.Series#getSharedClipKey
37255
37178
  */
37256
- Series.prototype.getSharedClipKey = function (animation) {
37257
- if (this.sharedClipKey) {
37258
- return this.sharedClipKey;
37259
- }
37260
- var sharedClipKey = [
37261
- animation && animation.duration,
37262
- animation && animation.easing,
37263
- animation && animation.defer,
37264
- this.getClipBox(animation).height,
37265
- this.options.xAxis,
37266
- this.options.yAxis
37267
- ].join(',');
37268
- if (this.options.clip !== false || animation) {
37269
- this.sharedClipKey = sharedClipKey;
37270
- }
37271
- return sharedClipKey;
37179
+ Series.prototype.getSharedClipKey = function () {
37180
+ this.sharedClipKey = (this.options.xAxis || 0) + ',' +
37181
+ (this.options.yAxis || 0);
37182
+ return this.sharedClipKey;
37272
37183
  };
37273
37184
  /**
37274
- * Set the clipping for the series. For animated series it is called
37275
- * twice, first to initiate animating the clip then the second time
37276
- * without the animation to set the final clip.
37185
+ * Set the clipping for the series. For animated series the clip is later
37186
+ * modified.
37277
37187
  *
37278
37188
  * @private
37279
37189
  * @function Highcharts.Series#setClip
37280
37190
  */
37281
- Series.prototype.setClip = function (animation) {
37282
- var chart = this.chart,
37283
- 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,
37284
37197
  renderer = chart.renderer,
37285
- inverted = chart.inverted,
37286
- seriesClipBox = this.clipBox,
37287
- clipBox = this.getClipBox(animation),
37288
- sharedClipKey = this.getSharedClipKey(animation); // #4526
37289
- var clipRect = chart.sharedClips[sharedClipKey],
37290
- markerClipRect = chart.sharedClips[sharedClipKey + 'm'];
37291
- if (animation) {
37292
- clipBox.width = 0;
37293
- if (inverted) {
37294
- clipBox.x = chart.plotHeight +
37295
- (options.clip !== false ? 0 : chart.plotTop);
37296
- }
37297
- }
37298
- // If a clipping rectangle with the same properties is currently
37299
- // 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
37300
37203
  if (!clipRect) {
37301
- // When animation is set, prepare the initial positions
37302
- if (animation) {
37303
- chart.sharedClips[sharedClipKey + 'm'] = markerClipRect =
37304
- renderer.clipRect(
37305
- // include the width of the first marker
37306
- inverted ? (chart.plotSizeX || 0) + 99 : -99, inverted ? -chart.plotLeft : -chart.plotTop, 99, inverted ? chart.chartWidth : chart.chartHeight);
37307
- }
37308
- chart.sharedClips[sharedClipKey] = clipRect = renderer.clipRect(clipBox);
37309
- // Create hashmap for series indexes
37310
- clipRect.count = { length: 0 };
37311
- // When the series is rendered again before starting animating, in
37312
- // 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
37313
37207
  }
37314
- else if (!chart.hasLoaded) {
37315
- clipRect.attr(clipBox);
37208
+ else {
37209
+ clipRect.animate(clipBox);
37316
37210
  }
37317
- if (animation) {
37318
- if (!clipRect.count[this.index]) {
37319
- clipRect.count[this.index] = true;
37320
- clipRect.count.length += 1;
37321
- }
37211
+ if (group) {
37212
+ // When clip is false, reset to no clip after animation
37213
+ group.clip(this.options.clip === false ? void 0 : clipRect);
37322
37214
  }
37323
- if (options.clip !== false || animation) {
37324
- this.group.clip(animation || seriesClipBox ? clipRect : chart.clipRect);
37325
- this.markerGroup.clip(markerClipRect);
37326
- }
37327
- // Remove the shared clipping rectangle when all series are shown
37328
- if (!animation) {
37329
- if (clipRect.count[this.index]) {
37330
- delete clipRect.count[this.index];
37331
- clipRect.count.length -= 1;
37332
- }
37333
- if (clipRect.count.length === 0) {
37334
- if (!seriesClipBox) {
37335
- chart.sharedClips[sharedClipKey] = clipRect.destroy();
37336
- }
37337
- if (markerClipRect) {
37338
- chart.sharedClips[sharedClipKey + 'm'] = markerClipRect.destroy();
37339
- }
37340
- }
37215
+ // Unclip temporary animation clip
37216
+ if (markerGroup) {
37217
+ markerGroup.clip();
37341
37218
  }
37342
37219
  };
37343
37220
  /**
37344
37221
  * Animate in the series. Called internally twice. First with the `init`
37345
37222
  * parameter set to true, which sets up the initial state of the
37346
37223
  * animation. Then when ready, it is called with the `init` parameter
37347
- * undefined, in order to perform the actual animation. After the
37348
- * second run, the function is removed.
37224
+ * undefined, in order to perform the actual animation.
37349
37225
  *
37350
37226
  * @function Highcharts.Series#animate
37351
37227
  *
@@ -37353,29 +37229,70 @@
37353
37229
  * Initialize the animation.
37354
37230
  */
37355
37231
  Series.prototype.animate = function (init) {
37356
- var series = this,
37357
- chart = series.chart,
37358
- animation = animObject(series.options.animation),
37359
- 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'];
37360
37242
  // Initialize the animation. Set up the clipping rectangle.
37361
- if (init) {
37362
- 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
+ }
37363
37272
  // Run the animation
37364
37273
  }
37365
- else if (sharedClipKey) {
37366
- var clipRect = chart.sharedClips[sharedClipKey];
37367
- var markerClipRect = chart.sharedClips[sharedClipKey + 'm'];
37368
- var finalBox = series.getClipBox(animation,
37369
- true);
37370
- if (clipRect) {
37371
- clipRect.animate(finalBox, animation);
37372
- }
37373
- if (markerClipRect) {
37374
- markerClipRect.animate({
37375
- width: finalBox.width + 99,
37376
- x: finalBox.x - (chart.inverted ? 0 : 99)
37377
- }, 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
+ };
37378
37292
  }
37293
+ animationClipRect
37294
+ .addClass('highcharts-animating')
37295
+ .animate(finalBox, animation);
37379
37296
  }
37380
37297
  };
37381
37298
  /**
@@ -37384,12 +37301,20 @@
37384
37301
  * @private
37385
37302
  * @function Highcharts.Series#afterAnimate
37386
37303
  *
37387
- * @fires Highcharts.Series#event:afterAnimate
37304
+ * @emits Highcharts.Series#event:afterAnimate
37388
37305
  */
37389
37306
  Series.prototype.afterAnimate = function () {
37307
+ var _this = this;
37390
37308
  this.setClip();
37391
- 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
+ });
37392
37316
  this.finishedAnimating = true;
37317
+ fireEvent(this, 'afterAnimate');
37393
37318
  };
37394
37319
  /**
37395
37320
  * Draw the markers for line-like series types, and columns or other
@@ -37597,7 +37522,7 @@
37597
37522
  // Handle hover and select states
37598
37523
  state = state || 'normal';
37599
37524
  if (state) {
37600
- seriesStateOptions = seriesMarkerOptions.states[state];
37525
+ seriesStateOptions = (seriesMarkerOptions.states[state] || {});
37601
37526
  pointStateOptions = (pointMarkerOptions.states &&
37602
37527
  pointMarkerOptions.states[state]) || {};
37603
37528
  strokeWidth = pick(pointStateOptions.lineWidth, seriesStateOptions.lineWidth, strokeWidth + pick(pointStateOptions.lineWidthPlus, seriesStateOptions.lineWidthPlus, 0));
@@ -37622,7 +37547,7 @@
37622
37547
  * @private
37623
37548
  * @function Highcharts.Series#destroy
37624
37549
  *
37625
- * @fires Highcharts.Series#event:destroy
37550
+ * @emits Highcharts.Series#event:destroy
37626
37551
  */
37627
37552
  Series.prototype.destroy = function (keepEventsForUpdate) {
37628
37553
  var series = this,
@@ -37917,8 +37842,6 @@
37917
37842
  * Get the translation and scale for the plot area of this series.
37918
37843
  *
37919
37844
  * @function Highcharts.Series#getPlotBox
37920
- *
37921
- * @return {Highcharts.SeriesPlotBoxObject}
37922
37845
  */
37923
37846
  Series.prototype.getPlotBox = function () {
37924
37847
  var chart = this.chart;
@@ -37963,7 +37886,7 @@
37963
37886
  *
37964
37887
  * @function Highcharts.Series#render
37965
37888
  *
37966
- * @fires Highcharts.Series#event:afterRender
37889
+ * @emits Highcharts.Series#event:afterRender
37967
37890
  */
37968
37891
  Series.prototype.render = function () {
37969
37892
  var series = this,
@@ -37978,15 +37901,18 @@
37978
37901
  inverted = chart.inverted;
37979
37902
  // Animation doesn't work in IE8 quirks when the group div is
37980
37903
  // hidden, and looks bad in other oldIE
37981
- var animDuration = (!series.finishedAnimating &&
37982
- chart.renderer.isSVG &&
37983
- animOptions.duration);
37904
+ var animDuration = (!series.finishedAnimating && chart.renderer.isSVG) ?
37905
+ animOptions.duration : 0;
37984
37906
  fireEvent(this, 'render');
37985
37907
  // the group
37986
37908
  var group = series.plotGroup('group', 'series', visibility, zIndex, chartSeriesGroup);
37987
37909
  series.markerGroup = series.plotGroup('markerGroup', 'markers', visibility, zIndex, chartSeriesGroup);
37988
- // initiate the animation
37989
- 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) {
37990
37916
  series.animate(true);
37991
37917
  }
37992
37918
  // SVGRenderer needs to know this before drawing elements (#1089,
@@ -38002,11 +37928,6 @@
38002
37928
  if (series.visible) {
38003
37929
  series.drawPoints();
38004
37930
  }
38005
- /* series.points.forEach(function (point) {
38006
- if (point.redraw) {
38007
- point.redraw();
38008
- }
38009
- }); */
38010
37931
  // Draw the data labels
38011
37932
  if (series.drawDataLabels) {
38012
37933
  series.drawDataLabels();
@@ -38023,15 +37944,8 @@
38023
37944
  }
38024
37945
  // Handle inverted series and tracker groups
38025
37946
  series.invertGroups(inverted);
38026
- // Initial clipping, must be defined after inverting groups for VML.
38027
- // Applies to columns etc. (#3839).
38028
- if (options.clip !== false &&
38029
- !series.sharedClipKey &&
38030
- !hasRendered) {
38031
- group.clip(chart.clipRect);
38032
- }
38033
37947
  // Run the animation
38034
- if (animDuration && series.animate) {
37948
+ if (series.animate && animDuration) {
38035
37949
  series.animate();
38036
37950
  }
38037
37951
  // Call the afterAnimate function on animation complete (but don't
@@ -38270,12 +38184,16 @@
38270
38184
  * @function Highcharts.Series#isPointInside
38271
38185
  */
38272
38186
  Series.prototype.isPointInside = function (point) {
38273
- 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' &&
38274
38192
  typeof point.plotX !== 'undefined' &&
38275
38193
  point.plotY >= 0 &&
38276
- point.plotY <= this.yAxis.len && // #3519
38194
+ point.plotY <= (yAxis ? yAxis.len : chart.plotHeight) &&
38277
38195
  point.plotX >= 0 &&
38278
- point.plotX <= this.xAxis.len;
38196
+ point.plotX <= (xAxis ? xAxis.len : chart.plotWidth));
38279
38197
  return isInside;
38280
38198
  };
38281
38199
  /**
@@ -38414,7 +38332,7 @@
38414
38332
  * @param {boolean} [withEvent=true]
38415
38333
  * Used internally, whether to fire the series `addPoint` event.
38416
38334
  *
38417
- * @fires Highcharts.Series#event:addPoint
38335
+ * @emits Highcharts.Series#event:addPoint
38418
38336
  */
38419
38337
  Series.prototype.addPoint = function (options, redraw, shift, animation, withEvent) {
38420
38338
  var series = this,
@@ -38506,7 +38424,7 @@
38506
38424
  * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
38507
38425
  * Whether and optionally how the series should be animated.
38508
38426
  *
38509
- * @fires Highcharts.Point#event:remove
38427
+ * @emits Highcharts.Point#event:remove
38510
38428
  */
38511
38429
  Series.prototype.removePoint = function (i, redraw, animation) {
38512
38430
  var series = this,
@@ -38560,7 +38478,7 @@
38560
38478
  * @param {boolean} [withEvent=true]
38561
38479
  * Used internally, whether to fire the series `remove` event.
38562
38480
  *
38563
- * @fires Highcharts.Series#event:remove
38481
+ * @emits Highcharts.Series#event:remove
38564
38482
  */
38565
38483
  Series.prototype.remove = function (redraw, animation, withEvent, keepEvents) {
38566
38484
  var series = this,
@@ -38610,8 +38528,8 @@
38610
38528
  * more operations on the chart, it is a good idea to set redraw to
38611
38529
  * false and call {@link Chart#redraw} after.
38612
38530
  *
38613
- * @fires Highcharts.Series#event:update
38614
- * @fires Highcharts.Series#event:afterUpdate
38531
+ * @emits Highcharts.Series#event:update
38532
+ * @emits Highcharts.Series#event:afterUpdate
38615
38533
  */
38616
38534
  Series.prototype.update = function (options, redraw) {
38617
38535
  options = cleanRecursively(options, this.userOptions);
@@ -38693,7 +38611,9 @@
38693
38611
  series.index : oldOptions.index,
38694
38612
  pointStart: pick(
38695
38613
  // when updating from blank (#7933)
38696
- plotOptions && plotOptions.series && plotOptions.series.pointStart, oldOptions.pointStart,
38614
+ (plotOptions &&
38615
+ plotOptions.series &&
38616
+ plotOptions.series.pointStart), oldOptions.pointStart,
38697
38617
  // when updating after addPoint
38698
38618
  series.xData[0])
38699
38619
  }, (!keepPoints && { data: series.options.data }), options);
@@ -38723,8 +38643,7 @@
38723
38643
  // Legacy (IE < 11)
38724
38644
  }
38725
38645
  else {
38726
- var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') &&
38727
- series.hcEvents;
38646
+ var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') && series.hcEvents;
38728
38647
  for (n in initialSeriesProto) { // eslint-disable-line guard-for-in
38729
38648
  series[n] = void 0;
38730
38649
  }
@@ -38822,13 +38741,17 @@
38822
38741
  return option !== oldOption;
38823
38742
  }
38824
38743
  return option !==
38825
- 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);
38826
38749
  };
38827
38750
  /**
38828
38751
  * Runs on mouse over the series graphical items.
38829
38752
  *
38830
38753
  * @function Highcharts.Series#onMouseOver
38831
- * @fires Highcharts.Series#event:mouseOver
38754
+ * @emits Highcharts.Series#event:mouseOver
38832
38755
  */
38833
38756
  Series.prototype.onMouseOver = function () {
38834
38757
  var series = this,
@@ -38860,7 +38783,7 @@
38860
38783
  *
38861
38784
  * @function Highcharts.Series#onMouseOut
38862
38785
  *
38863
- * @fires Highcharts.Series#event:mouseOut
38786
+ * @emits Highcharts.Series#event:mouseOut
38864
38787
  */
38865
38788
  Series.prototype.onMouseOut = function () {
38866
38789
  // trigger the event only if listeners exist
@@ -39015,8 +38938,8 @@
39015
38938
  * operations on the chart, it is a good idea to set redraw to false and
39016
38939
  * call {@link Chart#redraw|chart.redraw()} after.
39017
38940
  *
39018
- * @fires Highcharts.Series#event:hide
39019
- * @fires Highcharts.Series#event:show
38941
+ * @emits Highcharts.Series#event:hide
38942
+ * @emits Highcharts.Series#event:show
39020
38943
  */
39021
38944
  Series.prototype.setVisible = function (vis, redraw) {
39022
38945
  var series = this,
@@ -39080,7 +39003,7 @@
39080
39003
  * Toggle visibility from a button
39081
39004
  *
39082
39005
  * @function Highcharts.Series#show
39083
- * @fires Highcharts.Series#event:show
39006
+ * @emits Highcharts.Series#event:show
39084
39007
  */
39085
39008
  Series.prototype.show = function () {
39086
39009
  this.setVisible(true);
@@ -39094,7 +39017,7 @@
39094
39017
  * Toggle visibility from a button
39095
39018
  *
39096
39019
  * @function Highcharts.Series#hide
39097
- * @fires Highcharts.Series#event:hide
39020
+ * @emits Highcharts.Series#event:hide
39098
39021
  */
39099
39022
  Series.prototype.hide = function () {
39100
39023
  this.setVisible(false);
@@ -39115,8 +39038,8 @@
39115
39038
  * True to select the series, false to unselect. If undefined, the selection
39116
39039
  * state is toggled.
39117
39040
  *
39118
- * @fires Highcharts.Series#event:select
39119
- * @fires Highcharts.Series#event:unselect
39041
+ * @emits Highcharts.Series#event:select
39042
+ * @emits Highcharts.Series#event:unselect
39120
39043
  */
39121
39044
  Series.prototype.select = function (selected) {
39122
39045
  var series = this;
@@ -39134,10 +39057,6 @@
39134
39057
  * Checks if a tooltip should be shown for a given point.
39135
39058
  *
39136
39059
  * @private
39137
- * @param {number} plotX
39138
- * @param {number} plotY
39139
- * @param {Highcharts.ChartIsInsideOptionsObject} [options]
39140
- * @return {boolean}
39141
39060
  */
39142
39061
  Series.prototype.shouldShowTooltip = function (plotX, plotY, options) {
39143
39062
  if (options === void 0) { options = {}; }
@@ -39574,7 +39493,7 @@
39574
39493
  if (scrollableMinWidth) {
39575
39494
  this.scrollablePixelsX = scrollablePixelsX = Math.max(0, scrollableMinWidth - this.chartWidth);
39576
39495
  if (scrollablePixelsX) {
39577
- this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
39496
+ this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
39578
39497
  this.plotBox.width = this.plotWidth += scrollablePixelsX;
39579
39498
  if (this.inverted) {
39580
39499
  this.clipBox.height += scrollablePixelsX;
@@ -39592,7 +39511,7 @@
39592
39511
  else if (scrollableMinHeight) {
39593
39512
  this.scrollablePixelsY = scrollablePixelsY = Math.max(0, scrollableMinHeight - this.chartHeight);
39594
39513
  if (scrollablePixelsY) {
39595
- this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
39514
+ this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
39596
39515
  this.plotBox.height = this.plotHeight += scrollablePixelsY;
39597
39516
  if (this.inverted) {
39598
39517
  this.clipBox.width += scrollablePixelsY;
@@ -40136,7 +40055,8 @@
40136
40055
  chart = axis.chart,
40137
40056
  renderer = chart.renderer,
40138
40057
  stacks = stacking.stacks,
40139
- stackLabelsAnim = axis.options.stackLabels && axis.options.stackLabels.animation,
40058
+ stackLabelsAnim = axis.options.stackLabels &&
40059
+ axis.options.stackLabels.animation,
40140
40060
  animationConfig = getDeferredAnimation(chart,
40141
40061
  stackLabelsAnim || false),
40142
40062
  stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
@@ -40283,6 +40203,7 @@
40283
40203
  r: options.borderRadius || 0,
40284
40204
  text: str,
40285
40205
  rotation: options.rotation,
40206
+ // set default padding to 5 as it is in datalabels #12308
40286
40207
  padding: pick(options.padding, 5),
40287
40208
  visibility: 'hidden' // hidden until setOffset is called
40288
40209
  };
@@ -40358,7 +40279,8 @@
40358
40279
  }
40359
40280
  else {
40360
40281
  boxOffsetX = chart.inverted ?
40361
- (isNegative ? bBox.width + padding : -padding) : bBox.width / 2;
40282
+ (isNegative ? bBox.width + padding : -padding) :
40283
+ bBox.width / 2;
40362
40284
  }
40363
40285
  }
40364
40286
  boxOffsetY = chart.inverted ?
@@ -40403,22 +40325,6 @@
40403
40325
  /**
40404
40326
  * @private
40405
40327
  * @function Highcharts.StackItem#getStackBox
40406
- *
40407
- * @param {Highcharts.Chart} chart
40408
- *
40409
- * @param {Highcharts.StackItem} stackItem
40410
- *
40411
- * @param {number} x
40412
- *
40413
- * @param {number} y
40414
- *
40415
- * @param {number} xWidth
40416
- *
40417
- * @param {number} h
40418
- *
40419
- * @param {Highcharts.Axis} axis
40420
- *
40421
- * @return {Highcharts.BBoxObject}
40422
40328
  */
40423
40329
  StackItem.prototype.getStackBox = function (chart, stackItem, x, y, xWidth, h, axis) {
40424
40330
  var reversed = stackItem.axis.reversed,
@@ -40428,7 +40334,8 @@
40428
40334
  neg = (stackItem.isNegative && !reversed) ||
40429
40335
  (!stackItem.isNegative && reversed); // #4056
40430
40336
  return {
40431
- 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) :
40432
40339
  x + chart.xAxis[0].transB - chart.plotLeft,
40433
40340
  y: inverted ?
40434
40341
  axis.height - x - xWidth :
@@ -40672,11 +40579,6 @@
40672
40579
  *
40673
40580
  * @private
40674
40581
  * @function Highcharts.Series#getStackIndicator
40675
- * @param {Highcharts.StackItemIndicatorObject|undefined} stackIndicator
40676
- * @param {number} x
40677
- * @param {number} index
40678
- * @param {string} [key]
40679
- * @return {Highcharts.StackItemIndicatorObject}
40680
40582
  */
40681
40583
  Series.prototype.getStackIndicator = function (stackIndicator, x, index, key) {
40682
40584
  // Update stack indicator, when:
@@ -40747,7 +40649,7 @@
40747
40649
 
40748
40650
  return H.StackItem;
40749
40651
  });
40750
- _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) {
40751
40653
  /* *
40752
40654
  *
40753
40655
  * (c) 2010-2021 Torstein Honsi
@@ -40832,7 +40734,7 @@
40832
40734
  if (!styledMode) {
40833
40735
  props[0].push((options.lineColor ||
40834
40736
  this.color ||
40835
- Palette.neutralColor20 // when colorByPoint = true
40737
+ "#cccccc" /* neutralColor20 */ // when colorByPoint = true
40836
40738
  ), options.dashStyle);
40837
40739
  }
40838
40740
  props = series.getZonesGraphs(props);
@@ -41490,7 +41392,9 @@
41490
41392
  }
41491
41393
  isNull = points[i].isNull;
41492
41394
  plotX = pick(points[i].rectPlotX, points[i].plotX);
41493
- yBottom = stacking ? pick(points[i].yBottom, translatedThreshold) : translatedThreshold;
41395
+ yBottom = stacking ?
41396
+ pick(points[i].yBottom, translatedThreshold) :
41397
+ translatedThreshold;
41494
41398
  if (!isNull || connectNulls) {
41495
41399
  if (!connectNulls) {
41496
41400
  addDummyPoints(i, i - 1, 'left');
@@ -41594,24 +41498,22 @@
41594
41498
  var si = yAxisSeries[i].index;
41595
41499
  stackPoint = otherStack.points[si];
41596
41500
  if (!stackPoint) {
41597
- // If the next point in this series
41598
- // is missing, mark the point
41599
- // with point.leftNull or
41600
- // 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.
41601
41504
  if (si === series.index) {
41602
41505
  pointMap[x][nullName] = true;
41603
- // If there are missing points in
41604
- // the next stack in any of the
41605
- // series below this one, we need
41606
- // to substract the missing values
41607
- // 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
41608
41510
  // right.
41609
41511
  }
41610
41512
  else if (visibleSeries_1[i]) {
41611
- stackedValues =
41612
- stack[x].points[si];
41513
+ stackedValues = stack[x].points[si];
41613
41514
  if (stackedValues) {
41614
- cliff -= stackedValues[1] - stackedValues[0];
41515
+ cliff -= (stackedValues[1] -
41516
+ stackedValues[0]);
41615
41517
  }
41616
41518
  }
41617
41519
  }
@@ -41960,14 +41862,6 @@
41960
41862
  *
41961
41863
  * @private
41962
41864
  * @function Highcharts.seriesTypes.spline#getPointSpline
41963
- *
41964
- * @param {Array<Highcharts.Point>}
41965
- *
41966
- * @param {Highcharts.Point} point
41967
- *
41968
- * @param {number} i
41969
- *
41970
- * @return {Highcharts.SVGPathArray}
41971
41865
  */
41972
41866
  SplineSeries.prototype.getPointSpline = function (points, point, i) {
41973
41867
  var
@@ -42404,7 +42298,7 @@
42404
42298
 
42405
42299
  return AreaSplineSeries;
42406
42300
  });
42407
- _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) {
42408
42302
  /* *
42409
42303
  *
42410
42304
  * (c) 2010-2021 Torstein Honsi
@@ -42502,7 +42396,9 @@
42502
42396
  options = series.options,
42503
42397
  inverted = this.chart.inverted,
42504
42398
  attr = {},
42505
- translateProp = inverted ? 'translateX' : 'translateY';
42399
+ translateProp = inverted ?
42400
+ 'translateX' :
42401
+ 'translateY';
42506
42402
  var translateStart,
42507
42403
  translatedThreshold;
42508
42404
  if (init) {
@@ -42563,7 +42459,6 @@
42563
42459
  *
42564
42460
  * @private
42565
42461
  * @function Highcharts.seriesTypes.column#getColumnMetrics
42566
- * @return {Highcharts.ColumnMetricsObject}
42567
42462
  */
42568
42463
  ColumnSeries.prototype.getColumnMetrics = function () {
42569
42464
  var series = this,
@@ -42594,7 +42489,8 @@
42594
42489
  !series.chart.options.chart.ignoreHiddenSeries) &&
42595
42490
  yAxis.len === otherYAxis.len &&
42596
42491
  yAxis.pos === otherYAxis.pos) { // #642, #2086
42597
- if (otherOptions.stacking && otherOptions.stacking !== 'group') {
42492
+ if (otherOptions.stacking &&
42493
+ otherOptions.stacking !== 'group') {
42598
42494
  stackKey = otherSeries.stackKey;
42599
42495
  if (typeof stackGroups[stackKey] ===
42600
42496
  'undefined') {
@@ -42706,21 +42602,21 @@
42706
42602
  if (!point.isNull && metrics.columnCount > 1) {
42707
42603
  var indexInCategory_1 = 0;
42708
42604
  var totalInCategory_1 = 0;
42709
- // Loop over all the stacks on the Y axis. When stacking is
42710
- // enabled, these are real point stacks. When stacking is not
42711
- // enabled, but `centerInCategory` is true, there is one stack
42712
- // handling the grouping of points in each category. This is
42713
- // 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.
42714
42610
  objectEach(this.yAxis.stacking && this.yAxis.stacking.stacks, function (stack) {
42715
42611
  if (typeof point.x === 'number') {
42716
42612
  var stackItem = stack[point.x.toString()];
42717
42613
  if (stackItem) {
42718
42614
  var pointValues = stackItem.points[_this.index],
42719
42615
  total = stackItem.total;
42720
- // If true `stacking` is enabled, count the
42721
- // total number of non-null stacks in the
42722
- // category, and note which index this point is
42723
- // 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.
42724
42620
  if (stacking) {
42725
42621
  if (pointValues) {
42726
42622
  indexInCategory_1 = totalInCategory_1;
@@ -42728,8 +42624,8 @@
42728
42624
  if (stackItem.hasValidPoints) {
42729
42625
  totalInCategory_1++;
42730
42626
  }
42731
- // If `stacking` is not enabled, look for the
42732
- // index and total of the `group` stack.
42627
+ // If `stacking` is not enabled, look for the index
42628
+ // and total of the `group` stack.
42733
42629
  }
42734
42630
  else if (isArray(pointValues)) {
42735
42631
  indexInCategory_1 = pointValues[1];
@@ -43385,7 +43281,7 @@
43385
43281
  * @default #cccccc
43386
43282
  * @product highcharts highstock gantt
43387
43283
  */
43388
- color: Palette.neutralColor20,
43284
+ color: "#cccccc" /* neutralColor20 */,
43389
43285
  /**
43390
43286
  * A specific border color for the selected point.
43391
43287
  *
@@ -43393,7 +43289,7 @@
43393
43289
  * @default #000000
43394
43290
  * @product highcharts highstock gantt
43395
43291
  */
43396
- borderColor: Palette.neutralColor100
43292
+ borderColor: "#000000" /* neutralColor100 */
43397
43293
  }
43398
43294
  },
43399
43295
  dataLabels: {
@@ -43460,7 +43356,7 @@
43460
43356
  *
43461
43357
  * @private
43462
43358
  */
43463
- borderColor: Palette.backgroundColor
43359
+ borderColor: "#ffffff" /* backgroundColor */
43464
43360
  });
43465
43361
  return ColumnSeries;
43466
43362
  }(Series));
@@ -43651,7 +43547,7 @@
43651
43547
 
43652
43548
  return ColumnSeries;
43653
43549
  });
43654
- _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) {
43655
43551
  /* *
43656
43552
  *
43657
43553
  * (c) 2010-2021 Torstein Honsi
@@ -43932,8 +43828,10 @@
43932
43828
  // Merge in series options for the point.
43933
43829
  // @note dataLabelAttribs (like pointAttribs) would eradicate
43934
43830
  // the need for dlOptions, and simplify the section below.
43935
- pointOptions = splat(mergeArrays(seriesDlOptions, point.dlOptions || // dlOptions is used in treemaps
43936
- (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))));
43937
43835
  // Handle each individual data label for this point
43938
43836
  pointOptions.forEach(function (labelOptions, i) {
43939
43837
  // Options for one datalabel
@@ -43951,8 +43849,8 @@
43951
43849
  style,
43952
43850
  rotation,
43953
43851
  attr,
43954
- dataLabel = point.dataLabels ? point.dataLabels[i] :
43955
- point.dataLabel;
43852
+ dataLabel = point.dataLabels ?
43853
+ point.dataLabels[i] : point.dataLabel;
43956
43854
  var labelDistance = pick(labelOptions.distance,
43957
43855
  point.labelDistance),
43958
43856
  isNew = !dataLabel;
@@ -43969,7 +43867,7 @@
43969
43867
  rotation = labelOptions.rotation;
43970
43868
  if (!chart.styledMode) {
43971
43869
  // Determine the color
43972
- style.color = pick(labelOptions.color, style.color, series.color, Palette.neutralColor100);
43870
+ style.color = pick(labelOptions.color, style.color, series.color, "#000000" /* neutralColor100 */);
43973
43871
  // Get automated contrast color
43974
43872
  if (style.color === 'contrast') {
43975
43873
  point.contrastColor = renderer.getContrast((point.color || series.color));
@@ -43978,7 +43876,7 @@
43978
43876
  labelDistance < 0 ||
43979
43877
  !!seriesOptions.stacking ?
43980
43878
  point.contrastColor :
43981
- Palette.neutralColor100;
43879
+ "#000000" /* neutralColor100 */;
43982
43880
  }
43983
43881
  else {
43984
43882
  delete point.contrastColor;
@@ -44007,8 +43905,10 @@
44007
43905
  }
44008
43906
  // If the point is outside the plot area, destroy it. #678,
44009
43907
  // #820
44010
- if (dataLabel && (!labelEnabled || !defined(labelText))) {
44011
- point.dataLabel =
43908
+ if (dataLabel && (!labelEnabled ||
43909
+ !defined(labelText) ||
43910
+ !!dataLabel.div !== !!labelOptions.useHTML)) {
43911
+ point.dataLabel = dataLabel =
44012
43912
  point.dataLabel && point.dataLabel.destroy();
44013
43913
  if (point.dataLabels) {
44014
43914
  // Remove point.dataLabels if this was the last one
@@ -44035,11 +43935,11 @@
44035
43935
  }
44036
43936
  }
44037
43937
  }
44038
- // Individual labels are disabled if the are explicitly
44039
- // disabled in the point options, or if they fall outside
44040
- // the plot area.
44041
43938
  }
44042
- 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)) {
44043
43943
  if (!dataLabel) {
44044
43944
  // Create new label element
44045
43945
  point.dataLabels = point.dataLabels || [];
@@ -44053,7 +43953,8 @@
44053
43953
  if (!i) {
44054
43954
  point.dataLabel = dataLabel;
44055
43955
  }
44056
- dataLabel.addClass(' highcharts-data-label-color-' + point.colorIndex +
43956
+ dataLabel.addClass(' highcharts-data-label-color-' +
43957
+ point.colorIndex +
44057
43958
  ' ' + (labelOptions.className || '') +
44058
43959
  ( // #3398
44059
43960
  labelOptions.useHTML ?
@@ -44081,7 +43982,7 @@
44081
43982
  if (point.dataLabelPath &&
44082
43983
  !labelOptions.textPath.enabled) {
44083
43984
  // clean the DOM
44084
- point.dataLabelPath = point.dataLabelPath.destroy();
43985
+ point.dataLabelPath = (point.dataLabelPath.destroy());
44085
43986
  }
44086
43987
  }
44087
43988
  // Now the data label is created and placed at 0,0, so
@@ -44314,13 +44215,15 @@
44314
44215
  */
44315
44216
  function alignDataLabel(point, dataLabel, options, alignTo, isNew) {
44316
44217
  var inverted = this.chart.inverted,
44317
- 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,
44318
44221
  // data label box for alignment
44319
44222
  dlBox = point.dlBox || point.shapeArgs,
44320
44223
  below = pick(point.below, // range series
44321
44224
  point.plotY >
44322
44225
  pick(this.translatedThreshold,
44323
- series.yAxis.len)),
44226
+ yLen)),
44324
44227
  // draw it inside the box?
44325
44228
  inside = pick(options.inside, !!this.options.stacking),
44326
44229
  overshoot;
@@ -44333,14 +44236,14 @@
44333
44236
  }
44334
44237
  // If parts of the box overshoots outside the plot area, modify the
44335
44238
  // box to center the label inside
44336
- overshoot = alignTo.y + alignTo.height - series.yAxis.len;
44239
+ overshoot = alignTo.y + alignTo.height - yLen;
44337
44240
  if (overshoot > 0 && overshoot < alignTo.height) {
44338
44241
  alignTo.height -= overshoot;
44339
44242
  }
44340
44243
  if (inverted) {
44341
44244
  alignTo = {
44342
- x: series.yAxis.len - alignTo.y - alignTo.height,
44343
- y: series.xAxis.len - alignTo.x - alignTo.width,
44245
+ x: yLen - alignTo.y - alignTo.height,
44246
+ y: xLen - alignTo.x - alignTo.width,
44344
44247
  width: alignTo.height,
44345
44248
  height: alignTo.width
44346
44249
  };
@@ -44879,7 +44782,7 @@
44879
44782
 
44880
44783
  return ScatterSeries;
44881
44784
  });
44882
- _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) {
44883
44786
  /* *
44884
44787
  *
44885
44788
  * (c) 2010-2021 Torstein Honsi
@@ -44889,63 +44792,60 @@
44889
44792
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
44890
44793
  *
44891
44794
  * */
44892
- /**
44893
- * @private
44894
- * @interface Highcharts.RadianAngles
44895
- */ /**
44896
- * @name Highcharts.RadianAngles#end
44897
- * @type {number}
44898
- */ /**
44899
- * @name Highcharts.RadianAngles#start
44900
- * @type {number}
44901
- */
44795
+ var deg2rad = H.deg2rad;
44902
44796
  var isNumber = U.isNumber,
44903
44797
  pick = U.pick,
44904
44798
  relativeLength = U.relativeLength;
44905
- var deg2rad = H.deg2rad;
44906
- /* eslint-disable valid-jsdoc */
44907
44799
  /**
44908
44800
  * @private
44909
- * @mixin Highcharts.CenteredSeriesMixin
44910
44801
  */
44911
- var centeredSeriesMixin = H.CenteredSeriesMixin = {
44912
- /**
44913
- * Get the center of the pie based on the size and center options relative
44914
- * to the plot area. Borrowed by the polar and gauge series types.
44915
- *
44916
- * @private
44917
- * @function Highcharts.CenteredSeriesMixin.getCenter
44918
- *
44919
- * @return {Array<number>}
44920
- */
44921
- getCenter: function () {
44922
- var options = this.options,
44923
- chart = this.chart,
44924
- slicingRoom = 2 * (options.slicedOffset || 0),
44925
- handleSlicingRoom,
44926
- plotWidth = chart.plotWidth - 2 * slicingRoom,
44927
- plotHeight = chart.plotHeight - 2 * slicingRoom,
44928
- centerOption = options.center,
44929
- smallestSize = Math.min(plotWidth,
44930
- plotHeight),
44931
- size = options.size,
44932
- innerSize = options.innerSize || 0,
44933
- positions,
44934
- i,
44935
- 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;
44936
44836
  if (typeof size === 'string') {
44937
44837
  size = parseFloat(size);
44938
44838
  }
44939
44839
  if (typeof innerSize === 'string') {
44940
44840
  innerSize = parseFloat(innerSize);
44941
44841
  }
44942
- positions = [
44943
- pick(centerOption[0], '50%'),
44944
- pick(centerOption[1], '50%'),
44945
- // Prevent from negative values
44946
- pick(size && size < 0 ? void 0 : options.size, '100%'),
44947
- pick(innerSize && innerSize < 0 ? void 0 : options.innerSize || 0, '0%')
44948
- ];
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
+ ];
44949
44849
  // No need for inner size in angular (gauges) series but still required
44950
44850
  // for pie series
44951
44851
  if (chart.angular && !(this instanceof Series)) {
@@ -44965,7 +44865,8 @@
44965
44865
  positions[3] = positions[2];
44966
44866
  }
44967
44867
  return positions;
44968
- },
44868
+ }
44869
+ CenteredUtilities.getCenter = getCenter;
44969
44870
  /**
44970
44871
  * getStartAndEndRadians - Calculates start and end angles in radians.
44971
44872
  * Used in series types such as pie and sunburst.
@@ -44982,7 +44883,7 @@
44982
44883
  * @return {Highcharts.RadianAngles}
44983
44884
  * Returns an object containing start and end angles as radians.
44984
44885
  */
44985
- getStartAndEndRadians: function (start, end) {
44886
+ function getStartAndEndRadians(start, end) {
44986
44887
  var startAngle = isNumber(start) ? start : 0, // must be a number
44987
44888
  endAngle = ((isNumber(end) && // must be a number
44988
44889
  end > startAngle && // must be larger than the start angle
@@ -44996,9 +44897,31 @@
44996
44897
  end: deg2rad * (endAngle + correction)
44997
44898
  };
44998
44899
  }
44999
- };
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
45000
44923
 
45001
- return centeredSeriesMixin;
44924
+ return CenteredUtilities;
45002
44925
  });
45003
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) {
45004
44927
  /* *
@@ -45179,10 +45102,10 @@
45179
45102
  * @param {boolean} sliced
45180
45103
  * When undefined, the slice state is toggled.
45181
45104
  *
45182
- * @param {boolean} redraw
45105
+ * @param {boolean} [redraw]
45183
45106
  * Whether to redraw the chart. True by default.
45184
45107
  *
45185
- * @param {boolean|Partial<Highcharts.AnimationOptionsObject>}
45108
+ * @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
45186
45109
  * Animation options.
45187
45110
  */
45188
45111
  PiePoint.prototype.slice = function (sliced, redraw, animation) {
@@ -45296,7 +45219,7 @@
45296
45219
 
45297
45220
  return PiePoint;
45298
45221
  });
45299
- _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) {
45300
45223
  /* *
45301
45224
  *
45302
45225
  * (c) 2010-2021 Torstein Honsi
@@ -45322,7 +45245,7 @@
45322
45245
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45323
45246
  };
45324
45247
  })();
45325
- var getStartAndEndRadians = CenteredSeriesMixin.getStartAndEndRadians;
45248
+ var getStartAndEndRadians = CU.getStartAndEndRadians;
45326
45249
  var noop = H.noop;
45327
45250
  var clamp = U.clamp,
45328
45251
  extend = U.extend,
@@ -45437,7 +45360,7 @@
45437
45360
  this.graph.attr({
45438
45361
  'stroke-width': options.borderWidth,
45439
45362
  fill: options.fillColor || 'none',
45440
- stroke: options.color || Palette.neutralColor20
45363
+ stroke: options.color || "#cccccc" /* neutralColor20 */
45441
45364
  });
45442
45365
  }
45443
45366
  }
@@ -45836,7 +45759,7 @@
45836
45759
  * Empty pie series
45837
45760
  *
45838
45761
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
45839
- * @default ${palette.neutralColor20}
45762
+ * @default #cccccc
45840
45763
  * @apioption plotOptions.pie.color
45841
45764
  */
45842
45765
  /**
@@ -46237,7 +46160,7 @@
46237
46160
  *
46238
46161
  * @private
46239
46162
  */
46240
- borderColor: Palette.backgroundColor,
46163
+ borderColor: "#ffffff" /* backgroundColor */,
46241
46164
  /**
46242
46165
  * The width of the border surrounding each slice.
46243
46166
  *
@@ -46258,7 +46181,7 @@
46258
46181
  */
46259
46182
  borderWidth: 1,
46260
46183
  /**
46261
- * @ignore-options
46184
+ * @ignore-option
46262
46185
  * @private
46263
46186
  */
46264
46187
  lineWidth: void 0,
@@ -46294,7 +46217,7 @@
46294
46217
  drawGraph: void 0,
46295
46218
  drawLegendSymbol: LegendSymbol.drawRectangle,
46296
46219
  drawTracker: ColumnSeries.prototype.drawTracker,
46297
- getCenter: CenteredSeriesMixin.getCenter,
46220
+ getCenter: CU.getCenter,
46298
46221
  getSymbol: noop,
46299
46222
  isCartesian: false,
46300
46223
  noSharedTooltip: true,
@@ -46406,7 +46329,7 @@
46406
46329
 
46407
46330
  return PieSeries;
46408
46331
  });
46409
- _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) {
46410
46333
  /* *
46411
46334
  *
46412
46335
  * (c) 2010-2021 Torstein Honsi
@@ -46768,7 +46691,7 @@
46768
46691
  'stroke-width': connectorWidth,
46769
46692
  'stroke': (pointDataLabelsOptions.connectorColor ||
46770
46693
  point.color ||
46771
- Palette.neutralColor60)
46694
+ "#666666" /* neutralColor60 */)
46772
46695
  });
46773
46696
  }
46774
46697
  }
@@ -47036,7 +46959,8 @@
47036
46959
  if (alignValue) {
47037
46960
  xOffset = +alignValue * boxWidth;
47038
46961
  }
47039
- else if (isNumber(label.x) && Math.round(label.x) !== label.translateX) {
46962
+ else if (isNumber(label.x) &&
46963
+ Math.round(label.x) !== label.translateX) {
47040
46964
  xOffset = label.x - label.translateX;
47041
46965
  }
47042
46966
  return {
@@ -47098,10 +47022,11 @@
47098
47022
  * @private
47099
47023
  * @function hideOrShow
47100
47024
  * @param {Highcharts.SVGElement} label
47101
- * The label.
47025
+ * The label.
47102
47026
  * @param {Highcharts.Chart} chart
47103
- * The chart that contains the label.
47027
+ * The chart that contains the label.
47104
47028
  * @return {boolean}
47029
+ * Whether label is affected
47105
47030
  */
47106
47031
  function hideOrShow(label, chart) {
47107
47032
  var complete,
@@ -47110,13 +47035,15 @@
47110
47035
  if (label) {
47111
47036
  newOpacity = label.newOpacity;
47112
47037
  if (label.oldOpacity !== newOpacity) {
47113
- // Make sure the label is completely hidden to avoid catching
47114
- // clicks (#4362)
47038
+ // Make sure the label is completely hidden to avoid catching clicks
47039
+ // (#4362)
47115
47040
  if (label.alignAttr && label.placed) { // data labels
47116
47041
  label[newOpacity ? 'removeClass' : 'addClass']('highcharts-data-label-hidden');
47117
47042
  complete = function () {
47118
47043
  if (!chart.styledMode) {
47119
- label.css({ pointerEvents: newOpacity ? 'auto' : 'none' });
47044
+ label.css({
47045
+ pointerEvents: newOpacity ? 'auto' : 'none'
47046
+ });
47120
47047
  }
47121
47048
  };
47122
47049
  isLabelAffected = true;
@@ -47278,8 +47205,7 @@
47278
47205
  fn = condition.callback || function () {
47279
47206
  return (this.chartWidth <= pick(condition.maxWidth,
47280
47207
  Number.MAX_VALUE) &&
47281
- this.chartHeight <=
47282
- pick(condition.maxHeight,
47208
+ this.chartHeight <= pick(condition.maxHeight,
47283
47209
  Number.MAX_VALUE) &&
47284
47210
  this.chartWidth >= pick(condition.minWidth, 0) &&
47285
47211
  this.chartHeight >= pick(condition.minHeight, 0));
@@ -47322,7 +47248,7 @@
47322
47248
  mergedOptions.isResponsiveOptions = true;
47323
47249
  // Stringified key for the rules that currently apply.
47324
47250
  ruleIds = (ruleIds.toString() || void 0);
47325
- var currentRuleIds = currentResponsive && currentResponsive.ruleIds;
47251
+ var currentRuleIds = (currentResponsive && currentResponsive.ruleIds);
47326
47252
  // Changes in what rules apply
47327
47253
  if (ruleIds !== currentRuleIds) {
47328
47254
  // Undo previous rules. Before we apply a new set of rules, we