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
@@ -10,7 +10,6 @@
10
10
  *
11
11
  * */
12
12
  'use strict';
13
- import Chart from '../../../Core/Chart/Chart.js';
14
13
  import Point from '../../../Core/Series/Point.js';
15
14
  import Series from '../../../Core/Series/Series.js';
16
15
  import SeriesRegistry from '../../../Core/Series/SeriesRegistry.js';
@@ -18,36 +17,27 @@ var seriesTypes = SeriesRegistry.seriesTypes;
18
17
  import H from '../../../Core/Globals.js';
19
18
  var doc = H.doc;
20
19
  import U from '../../../Core/Utilities.js';
21
- var defined = U.defined, extend = U.extend, fireEvent = U.fireEvent;
20
+ var defined = U.defined, fireEvent = U.fireEvent;
22
21
  import KeyboardNavigationHandler from '../../KeyboardNavigationHandler.js';
23
22
  import EventProvider from '../../Utils/EventProvider.js';
24
23
  import ChartUtilities from '../../Utils/ChartUtilities.js';
25
24
  var getPointFromXY = ChartUtilities.getPointFromXY, getSeriesFromName = ChartUtilities.getSeriesFromName, scrollToPoint = ChartUtilities.scrollToPoint;
26
- import '../../../Series/Column/ColumnSeries.js';
27
- import '../../../Series/Pie/PieSeries.js';
28
- /* eslint-disable no-invalid-this, valid-jsdoc */
29
- /*
30
- * Set for which series types it makes sense to move to the closest point with
31
- * up/down arrows, and which series types should just move to next series.
32
- */
33
- Series.prototype.keyboardMoveVertical = true;
34
- ['column', 'pie'].forEach(function (type) {
35
- if (seriesTypes[type]) {
36
- seriesTypes[type].prototype.keyboardMoveVertical = false;
37
- }
38
- });
25
+ /* *
26
+ *
27
+ * Functions
28
+ *
29
+ * */
30
+ /* eslint-disable valid-jsdoc */
39
31
  /**
40
32
  * Get the index of a point in a series. This is needed when using e.g. data
41
33
  * grouping.
42
34
  *
43
35
  * @private
44
36
  * @function getPointIndex
45
- *
46
37
  * @param {Highcharts.AccessibilityPoint} point
47
- * The point to find index of.
48
- *
38
+ * The point to find index of.
49
39
  * @return {number|undefined}
50
- * The index in the series.points array of the point.
40
+ * The index in the series.points array of the point.
51
41
  */
52
42
  function getPointIndex(point) {
53
43
  var index = point.index, points = point.series.points;
@@ -65,13 +55,7 @@ function getPointIndex(point) {
65
55
  }
66
56
  /**
67
57
  * Determine if series navigation should be skipped
68
- *
69
58
  * @private
70
- * @function isSkipSeries
71
- *
72
- * @param {Highcharts.Series} series
73
- *
74
- * @return {boolean|number|undefined}
75
59
  */
76
60
  function isSkipSeries(series) {
77
61
  var a11yOptions = series.chart.options.accessibility, seriesNavOptions = a11yOptions.keyboardNavigation.seriesNavigation, seriesA11yOptions = series.options.accessibility || {}, seriesKbdNavOptions = seriesA11yOptions.keyboardNavigation;
@@ -87,13 +71,7 @@ function isSkipSeries(series) {
87
71
  }
88
72
  /**
89
73
  * Determine if navigation for a point should be skipped
90
- *
91
74
  * @private
92
- * @function isSkipPoint
93
- *
94
- * @param {Highcharts.Point} point
95
- *
96
- * @return {boolean|number|undefined}
97
75
  */
98
76
  function isSkipPoint(point) {
99
77
  var a11yOptions = point.series.chart.options.accessibility;
@@ -106,274 +84,8 @@ function isSkipPoint(point) {
106
84
  pointA11yDisabled ||
107
85
  isSkipSeries(point.series);
108
86
  }
109
- /**
110
- * Get the point in a series that is closest (in pixel distance) to a reference
111
- * point. Optionally supply weight factors for x and y directions.
112
- *
113
- * @private
114
- * @function getClosestPoint
115
- *
116
- * @param {Highcharts.Point} point
117
- * @param {Highcharts.Series} series
118
- * @param {number} [xWeight]
119
- * @param {number} [yWeight]
120
- *
121
- * @return {Highcharts.Point|undefined}
122
- */
123
- function getClosestPoint(point, series, xWeight, yWeight) {
124
- var minDistance = Infinity, dPoint, minIx, distance, i = series.points.length;
125
- var hasUndefinedPosition = function (point) {
126
- return !(defined(point.plotX) && defined(point.plotY));
127
- };
128
- if (hasUndefinedPosition(point)) {
129
- return;
130
- }
131
- while (i--) {
132
- dPoint = series.points[i];
133
- if (hasUndefinedPosition(dPoint)) {
134
- continue;
135
- }
136
- distance = (point.plotX - dPoint.plotX) *
137
- (point.plotX - dPoint.plotX) *
138
- (xWeight || 1) +
139
- (point.plotY - dPoint.plotY) *
140
- (point.plotY - dPoint.plotY) *
141
- (yWeight || 1);
142
- if (distance < minDistance) {
143
- minDistance = distance;
144
- minIx = i;
145
- }
146
- }
147
- return defined(minIx) ? series.points[minIx] : void 0;
148
- }
149
- /**
150
- * Highlights a point (show tooltip and display hover state).
151
- *
152
- * @private
153
- * @function Highcharts.Point#highlight
154
- *
155
- * @return {Highcharts.Point}
156
- * This highlighted point.
157
- */
158
- Point.prototype.highlight = function () {
159
- var chart = this.series.chart;
160
- if (!this.isNull) {
161
- this.onMouseOver(); // Show the hover marker and tooltip
162
- }
163
- else {
164
- if (chart.tooltip) {
165
- chart.tooltip.hide(0);
166
- }
167
- // Don't call blur on the element, as it messes up the chart div's focus
168
- }
169
- scrollToPoint(this);
170
- // We focus only after calling onMouseOver because the state change can
171
- // change z-index and mess up the element.
172
- if (this.graphic) {
173
- chart.setFocusToElement(this.graphic);
174
- }
175
- chart.highlightedPoint = this;
176
- return this;
177
- };
178
- /**
179
- * Function to highlight next/previous point in chart.
180
- *
181
- * @private
182
- * @function Highcharts.Chart#highlightAdjacentPoint
183
- *
184
- * @param {boolean} next
185
- * Flag for the direction.
186
- *
187
- * @return {Highcharts.Point|boolean}
188
- * Returns highlighted point on success, false on failure (no adjacent
189
- * point to highlight in chosen direction).
190
- */
191
- Chart.prototype.highlightAdjacentPoint = function (next) {
192
- var chart = this, series = chart.series, curPoint = chart.highlightedPoint, curPointIndex = curPoint && getPointIndex(curPoint) || 0, curPoints = (curPoint && curPoint.series.points), lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries && lastSeries.points &&
193
- lastSeries.points[lastSeries.points.length - 1];
194
- var newSeries, newPoint;
195
- // If no points, return false
196
- if (!series[0] || !series[0].points) {
197
- return false;
198
- }
199
- if (!curPoint) {
200
- // No point is highlighted yet. Try first/last point depending on move
201
- // direction
202
- newPoint = next ? series[0].points[0] : lastPoint;
203
- }
204
- else {
205
- // We have a highlighted point.
206
- // Grab next/prev point & series
207
- newSeries = series[curPoint.series.index + (next ? 1 : -1)];
208
- newPoint = curPoints[curPointIndex + (next ? 1 : -1)];
209
- if (!newPoint && newSeries) {
210
- // Done with this series, try next one
211
- newPoint = newSeries.points[next ? 0 : newSeries.points.length - 1];
212
- }
213
- // If there is no adjacent point, we return false
214
- if (!newPoint) {
215
- return false;
216
- }
217
- }
218
- // Recursively skip points
219
- if (isSkipPoint(newPoint)) {
220
- // If we skip this whole series, move to the end of the series before we
221
- // recurse, just to optimize
222
- newSeries = newPoint.series;
223
- if (isSkipSeries(newSeries)) {
224
- chart.highlightedPoint = next ?
225
- newSeries.points[newSeries.points.length - 1] :
226
- newSeries.points[0];
227
- }
228
- else {
229
- // Otherwise, just move one point
230
- chart.highlightedPoint = newPoint;
231
- }
232
- // Retry
233
- return chart.highlightAdjacentPoint(next);
234
- }
235
- // There is an adjacent point, highlight it
236
- return newPoint.highlight();
237
- };
238
- /**
239
- * Highlight first valid point in a series. Returns the point if successfully
240
- * highlighted, otherwise false. If there is a highlighted point in the series,
241
- * use that as starting point.
242
- *
243
- * @private
244
- * @function Highcharts.Series#highlightFirstValidPoint
245
- *
246
- * @return {boolean|Highcharts.Point}
247
- */
248
- Series.prototype.highlightFirstValidPoint = function () {
249
- var curPoint = this.chart.highlightedPoint, start = (curPoint && curPoint.series) === this ?
250
- getPointIndex(curPoint) :
251
- 0, points = this.points, len = points.length;
252
- if (points && len) {
253
- for (var i = start; i < len; ++i) {
254
- if (!isSkipPoint(points[i])) {
255
- return points[i].highlight();
256
- }
257
- }
258
- for (var j = start; j >= 0; --j) {
259
- if (!isSkipPoint(points[j])) {
260
- return points[j].highlight();
261
- }
262
- }
263
- }
264
- return false;
265
- };
266
- /**
267
- * Highlight next/previous series in chart. Returns false if no adjacent series
268
- * in the direction, otherwise returns new highlighted point.
269
- *
270
- * @private
271
- * @function Highcharts.Chart#highlightAdjacentSeries
272
- *
273
- * @param {boolean} down
274
- *
275
- * @return {Highcharts.Point|boolean}
276
- */
277
- Chart.prototype.highlightAdjacentSeries = function (down) {
278
- var chart = this, curPoint = chart.highlightedPoint, lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries && lastSeries.points &&
279
- lastSeries.points[lastSeries.points.length - 1];
280
- var newSeries, newPoint, adjacentNewPoint;
281
- // If no point is highlighted, highlight the first/last point
282
- if (!chart.highlightedPoint) {
283
- newSeries = down ? (chart.series && chart.series[0]) : lastSeries;
284
- newPoint = down ?
285
- (newSeries && newSeries.points && newSeries.points[0]) : lastPoint;
286
- return newPoint ? newPoint.highlight() : false;
287
- }
288
- newSeries = chart.series[curPoint.series.index + (down ? -1 : 1)];
289
- if (!newSeries) {
290
- return false;
291
- }
292
- // We have a new series in this direction, find the right point
293
- // Weigh xDistance as counting much higher than Y distance
294
- newPoint = getClosestPoint(curPoint, newSeries, 4);
295
- if (!newPoint) {
296
- return false;
297
- }
298
- // New series and point exists, but we might want to skip it
299
- if (isSkipSeries(newSeries)) {
300
- // Skip the series
301
- newPoint.highlight();
302
- adjacentNewPoint = chart.highlightAdjacentSeries(down); // Try recurse
303
- if (!adjacentNewPoint) {
304
- // Recurse failed
305
- curPoint.highlight();
306
- return false;
307
- }
308
- // Recurse succeeded
309
- return adjacentNewPoint;
310
- }
311
- // Highlight the new point or any first valid point back or forwards from it
312
- newPoint.highlight();
313
- return newPoint.series.highlightFirstValidPoint();
314
- };
315
- /**
316
- * Highlight the closest point vertically.
317
- *
318
- * @private
319
- * @function Highcharts.Chart#highlightAdjacentPointVertical
320
- *
321
- * @param {boolean} down
322
- *
323
- * @return {Highcharts.Point|boolean}
324
- */
325
- Chart.prototype.highlightAdjacentPointVertical = function (down) {
326
- var curPoint = this.highlightedPoint;
327
- var minDistance = Infinity, bestPoint;
328
- if (!defined(curPoint.plotX) || !defined(curPoint.plotY)) {
329
- return false;
330
- }
331
- this.series.forEach(function (series) {
332
- if (isSkipSeries(series)) {
333
- return;
334
- }
335
- series.points.forEach(function (point) {
336
- if (!defined(point.plotY) || !defined(point.plotX) ||
337
- point === curPoint) {
338
- return;
339
- }
340
- var yDistance = point.plotY - curPoint.plotY;
341
- var width = Math.abs(point.plotX - curPoint.plotX), distance = Math.abs(yDistance) * Math.abs(yDistance) +
342
- width * width * 4; // Weigh horizontal distance highly
343
- // Reverse distance number if axis is reversed
344
- if (series.yAxis && series.yAxis.reversed) {
345
- yDistance *= -1;
346
- }
347
- if (yDistance <= 0 && down || yDistance >= 0 && !down || // Chk dir
348
- distance < 5 || // Points in same spot => infinite loop
349
- isSkipPoint(point)) {
350
- return;
351
- }
352
- if (distance < minDistance) {
353
- minDistance = distance;
354
- bestPoint = point;
355
- }
356
- });
357
- });
358
- return bestPoint ? bestPoint.highlight() : false;
359
- };
360
- /**
361
- * @private
362
- * @param {Highcharts.Chart} chart
363
- * @return {Highcharts.Point|boolean}
364
- */
365
- function highlightFirstValidPointInChart(chart) {
366
- var res = false;
367
- delete chart.highlightedPoint;
368
- res = chart.series.reduce(function (acc, cur) {
369
- return acc || cur.highlightFirstValidPoint();
370
- }, false);
371
- return res;
372
- }
373
87
  /**
374
88
  * @private
375
- * @param {Highcharts.Chart} chart
376
- * @return {Highcharts.Point|boolean}
377
89
  */
378
90
  function highlightLastValidPointInChart(chart) {
379
91
  var numSeries = chart.series.length;
@@ -392,7 +104,6 @@ function highlightLastValidPointInChart(chart) {
392
104
  }
393
105
  /**
394
106
  * @private
395
- * @param {Highcharts.Chart} chart
396
107
  */
397
108
  function updateChartFocusAfterDrilling(chart) {
398
109
  highlightFirstValidPointInChart(chart);
@@ -400,20 +111,47 @@ function updateChartFocusAfterDrilling(chart) {
400
111
  chart.focusElement.removeFocusBorder();
401
112
  }
402
113
  }
114
+ /**
115
+ * @private
116
+ */
117
+ function highlightFirstValidPointInChart(chart) {
118
+ var res = false;
119
+ delete chart.highlightedPoint;
120
+ res = chart.series.reduce(function (acc, cur) {
121
+ return acc || cur.highlightFirstValidPoint();
122
+ }, false);
123
+ return res;
124
+ }
125
+ /* *
126
+ *
127
+ * Class
128
+ *
129
+ * */
403
130
  /**
404
131
  * @private
405
132
  * @class
406
133
  * @name Highcharts.SeriesKeyboardNavigation
407
134
  */
408
- function SeriesKeyboardNavigation(chart, keyCodes) {
409
- this.keyCodes = keyCodes;
410
- this.chart = chart;
411
- }
412
- extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardNavigation */ {
135
+ var SeriesKeyboardNavigation = /** @class */ (function () {
136
+ /* *
137
+ *
138
+ * Constructor
139
+ *
140
+ * */
141
+ function SeriesKeyboardNavigation(chart, keyCodes) {
142
+ this.keyCodes = keyCodes;
143
+ this.chart = chart;
144
+ }
145
+ /* *
146
+ *
147
+ * Functions
148
+ *
149
+ * */
150
+ /* eslint-disable valid-jsdoc */
413
151
  /**
414
152
  * Init the keyboard navigation
415
153
  */
416
- init: function () {
154
+ SeriesKeyboardNavigation.prototype.init = function () {
417
155
  var keyboardNavigation = this, chart = this.chart, e = this.eventProvider = new EventProvider();
418
156
  e.addEvent(Series, 'destroy', function () {
419
157
  return keyboardNavigation.onSeriesDestroy(this);
@@ -439,15 +177,27 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
439
177
  e.addEvent(Point, 'afterSetState', function () {
440
178
  var point = this;
441
179
  var pointEl = point.graphic && point.graphic.element;
180
+ var focusedElement = doc.activeElement;
181
+ // VO brings focus with it to container, causing series nav to run.
182
+ // If then navigating with virtual cursor, it is possible to leave
183
+ // keyboard nav module state on the data points and still activate
184
+ // proxy buttons.
185
+ var focusedElClassName = (focusedElement && focusedElement.getAttribute('class'));
186
+ var isProxyFocused = focusedElClassName &&
187
+ focusedElClassName.indexOf('highcharts-a11y-proxy-button') > -1;
442
188
  if (chart.highlightedPoint === point &&
443
- doc.activeElement !== pointEl &&
189
+ focusedElement !== pointEl &&
190
+ !isProxyFocused &&
444
191
  pointEl &&
445
192
  pointEl.focus) {
446
193
  pointEl.focus();
447
194
  }
448
195
  });
449
- },
450
- onDrillupAll: function () {
196
+ };
197
+ /**
198
+ * @private
199
+ */
200
+ SeriesKeyboardNavigation.prototype.onDrillupAll = function () {
451
201
  // After drillup we want to find the point that was drilled down to and
452
202
  // highlight it.
453
203
  var last = this.lastDrilledDownPoint, chart = this.chart, series = last && getSeriesFromName(chart, last.seriesName);
@@ -465,11 +215,11 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
465
215
  if (chart.focusElement) {
466
216
  chart.focusElement.removeFocusBorder();
467
217
  }
468
- },
218
+ };
469
219
  /**
470
- * @return {Highcharts.KeyboardNavigationHandler}
220
+ * @private
471
221
  */
472
- getKeyboardNavigationHandler: function () {
222
+ SeriesKeyboardNavigation.prototype.getKeyboardNavigationHandler = function () {
473
223
  var keyboardNavigation = this, keys = this.keyCodes, chart = this.chart, inverted = chart.inverted;
474
224
  return new KeyboardNavigationHandler(chart, {
475
225
  keyCodeMap: [
@@ -487,16 +237,29 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
487
237
  point.firePointEvent('click');
488
238
  }
489
239
  return this.response.success;
240
+ }],
241
+ [[keys.home], function () {
242
+ highlightFirstValidPointInChart(chart);
243
+ return this.response.success;
244
+ }],
245
+ [[keys.end], function () {
246
+ highlightLastValidPointInChart(chart);
247
+ return this.response.success;
248
+ }],
249
+ [[keys.pageDown, keys.pageUp], function (keyCode) {
250
+ chart.highlightAdjacentSeries(keyCode === keys.pageDown);
251
+ return this.response.success;
490
252
  }]
491
253
  ],
492
- init: function (dir) {
493
- return keyboardNavigation.onHandlerInit(this, dir);
254
+ init: function () {
255
+ highlightFirstValidPointInChart(chart);
256
+ return this.response.success;
494
257
  },
495
258
  terminate: function () {
496
259
  return keyboardNavigation.onHandlerTerminate();
497
260
  }
498
261
  });
499
- },
262
+ };
500
263
  /**
501
264
  * @private
502
265
  * @param {Highcharts.KeyboardNavigationHandler} handler
@@ -504,10 +267,10 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
504
267
  * @return {number}
505
268
  * response
506
269
  */
507
- onKbdSideways: function (handler, keyCode) {
270
+ SeriesKeyboardNavigation.prototype.onKbdSideways = function (handler, keyCode) {
508
271
  var keys = this.keyCodes, isNext = keyCode === keys.right || keyCode === keys.down;
509
272
  return this.attemptHighlightAdjacentPoint(handler, isNext);
510
- },
273
+ };
511
274
  /**
512
275
  * @private
513
276
  * @param {Highcharts.KeyboardNavigationHandler} handler
@@ -515,7 +278,7 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
515
278
  * @return {number}
516
279
  * response
517
280
  */
518
- onKbdVertical: function (handler, keyCode) {
281
+ SeriesKeyboardNavigation.prototype.onKbdVertical = function (handler, keyCode) {
519
282
  var chart = this.chart, keys = this.keyCodes, isNext = keyCode === keys.down || keyCode === keys.right, navOptions = chart.options.accessibility.keyboardNavigation
520
283
  .seriesNavigation;
521
284
  // Handle serialized mode, act like left/right
@@ -529,33 +292,16 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
529
292
  'highlightAdjacentSeries';
530
293
  chart[highlightMethod](isNext);
531
294
  return handler.response.success;
532
- },
533
- /**
534
- * @private
535
- * @param {Highcharts.KeyboardNavigationHandler} handler
536
- * @param {number} initDirection
537
- * @return {number}
538
- * response
539
- */
540
- onHandlerInit: function (handler, initDirection) {
541
- var chart = this.chart;
542
- if (initDirection > 0) {
543
- highlightFirstValidPointInChart(chart);
544
- }
545
- else {
546
- highlightLastValidPointInChart(chart);
547
- }
548
- return handler.response.success;
549
- },
295
+ };
550
296
  /**
551
297
  * @private
552
298
  */
553
- onHandlerTerminate: function () {
299
+ SeriesKeyboardNavigation.prototype.onHandlerTerminate = function () {
554
300
  var chart = this.chart;
555
301
  if (chart.tooltip) {
556
302
  chart.tooltip.hide(0);
557
303
  }
558
- var hoverSeries = chart.highlightedPoint && chart.highlightedPoint.series;
304
+ var hoverSeries = (chart.highlightedPoint && chart.highlightedPoint.series);
559
305
  if (hoverSeries && hoverSeries.onMouseOut) {
560
306
  hoverSeries.onMouseOut();
561
307
  }
@@ -563,7 +309,7 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
563
309
  chart.highlightedPoint.onMouseOut();
564
310
  }
565
311
  delete chart.highlightedPoint;
566
- },
312
+ };
567
313
  /**
568
314
  * Function that attempts to highlight next/prev point. Handles wrap around.
569
315
  * @private
@@ -572,7 +318,7 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
572
318
  * @return {number}
573
319
  * response
574
320
  */
575
- attemptHighlightAdjacentPoint: function (handler, directionIsNext) {
321
+ SeriesKeyboardNavigation.prototype.attemptHighlightAdjacentPoint = function (handler, directionIsNext) {
576
322
  var chart = this.chart, wrapAround = chart.options.accessibility.keyboardNavigation
577
323
  .wrapAround, highlightSuccessful = chart.highlightAdjacentPoint(directionIsNext);
578
324
  if (!highlightSuccessful) {
@@ -582,11 +328,11 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
582
328
  return handler.response[directionIsNext ? 'next' : 'prev'];
583
329
  }
584
330
  return handler.response.success;
585
- },
331
+ };
586
332
  /**
587
333
  * @private
588
334
  */
589
- onSeriesDestroy: function (series) {
335
+ SeriesKeyboardNavigation.prototype.onSeriesDestroy = function (series) {
590
336
  var chart = this.chart, currentHighlightedPointDestroyed = chart.highlightedPoint &&
591
337
  chart.highlightedPoint.series === series;
592
338
  if (currentHighlightedPointDestroyed) {
@@ -595,12 +341,310 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
595
341
  chart.focusElement.removeFocusBorder();
596
342
  }
597
343
  }
598
- },
344
+ };
599
345
  /**
600
346
  * @private
601
347
  */
602
- destroy: function () {
348
+ SeriesKeyboardNavigation.prototype.destroy = function () {
603
349
  this.eventProvider.removeAddedEvents();
350
+ };
351
+ return SeriesKeyboardNavigation;
352
+ }());
353
+ /* *
354
+ *
355
+ * Class Namespace
356
+ *
357
+ * */
358
+ (function (SeriesKeyboardNavigation) {
359
+ /* *
360
+ *
361
+ * Declarations
362
+ *
363
+ * */
364
+ /* *
365
+ *
366
+ * Constants
367
+ *
368
+ * */
369
+ var composedClasses = [];
370
+ /* *
371
+ *
372
+ * Functions
373
+ *
374
+ * */
375
+ /**
376
+ * Function to highlight next/previous point in chart.
377
+ *
378
+ * @private
379
+ * @function Highcharts.Chart#highlightAdjacentPoint
380
+ *
381
+ * @param {boolean} next
382
+ * Flag for the direction.
383
+ *
384
+ * @return {Highcharts.Point|boolean}
385
+ * Returns highlighted point on success, false on failure (no adjacent point
386
+ * to highlight in chosen direction).
387
+ */
388
+ function chartHighlightAdjacentPoint(next) {
389
+ var chart = this, series = chart.series, curPoint = chart.highlightedPoint, curPointIndex = curPoint && getPointIndex(curPoint) || 0, curPoints = curPoint && curPoint.series.points || [], lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries &&
390
+ lastSeries.points &&
391
+ lastSeries.points[lastSeries.points.length - 1];
392
+ var newSeries, newPoint;
393
+ // If no points, return false
394
+ if (!series[0] || !series[0].points) {
395
+ return false;
396
+ }
397
+ if (!curPoint) {
398
+ // No point is highlighted yet. Try first/last point depending on
399
+ // move direction
400
+ newPoint = next ? series[0].points[0] : lastPoint;
401
+ }
402
+ else {
403
+ // We have a highlighted point. Grab next/prev point & series.
404
+ newSeries = series[curPoint.series.index + (next ? 1 : -1)];
405
+ newPoint = curPoints[curPointIndex + (next ? 1 : -1)];
406
+ if (!newPoint && newSeries) {
407
+ // Done with this series, try next one
408
+ newPoint = newSeries.points[next ? 0 : newSeries.points.length - 1];
409
+ }
410
+ // If there is no adjacent point, we return false
411
+ if (!newPoint) {
412
+ return false;
413
+ }
414
+ }
415
+ // Recursively skip points
416
+ if (isSkipPoint(newPoint)) {
417
+ // If we skip this whole series, move to the end of the series
418
+ // before we recurse, just to optimize
419
+ newSeries = newPoint.series;
420
+ if (isSkipSeries(newSeries)) {
421
+ chart.highlightedPoint = next ?
422
+ newSeries.points[newSeries.points.length - 1] :
423
+ newSeries.points[0];
424
+ }
425
+ else {
426
+ // Otherwise, just move one point
427
+ chart.highlightedPoint = newPoint;
428
+ }
429
+ // Retry
430
+ return chart.highlightAdjacentPoint(next);
431
+ }
432
+ // There is an adjacent point, highlight it
433
+ return newPoint.highlight();
604
434
  }
605
- });
435
+ /**
436
+ * Highlight the closest point vertically.
437
+ * @private
438
+ */
439
+ function chartHighlightAdjacentPointVertical(down) {
440
+ var curPoint = this.highlightedPoint;
441
+ var minDistance = Infinity, bestPoint;
442
+ if (!defined(curPoint.plotX) || !defined(curPoint.plotY)) {
443
+ return false;
444
+ }
445
+ this.series.forEach(function (series) {
446
+ if (isSkipSeries(series)) {
447
+ return;
448
+ }
449
+ series.points.forEach(function (point) {
450
+ if (!defined(point.plotY) || !defined(point.plotX) ||
451
+ point === curPoint) {
452
+ return;
453
+ }
454
+ var yDistance = point.plotY - curPoint.plotY;
455
+ var width = Math.abs(point.plotX - curPoint.plotX), distance = Math.abs(yDistance) * Math.abs(yDistance) +
456
+ width * width * 4; // Weigh horizontal distance highly
457
+ // Reverse distance number if axis is reversed
458
+ if (series.yAxis && series.yAxis.reversed) {
459
+ yDistance *= -1;
460
+ }
461
+ if (yDistance <= 0 && down || yDistance >= 0 && !down ||
462
+ distance < 5 || // Points in same spot => infinite loop
463
+ isSkipPoint(point)) {
464
+ return;
465
+ }
466
+ if (distance < minDistance) {
467
+ minDistance = distance;
468
+ bestPoint = point;
469
+ }
470
+ });
471
+ });
472
+ return bestPoint ? bestPoint.highlight() : false;
473
+ }
474
+ /**
475
+ * Highlight next/previous series in chart. Returns false if no adjacent
476
+ * series in the direction, otherwise returns new highlighted point.
477
+ * @private
478
+ */
479
+ function chartHighlightAdjacentSeries(down) {
480
+ var chart = this, curPoint = chart.highlightedPoint, lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries && lastSeries.points &&
481
+ lastSeries.points[lastSeries.points.length - 1];
482
+ var newSeries, newPoint, adjacentNewPoint;
483
+ // If no point is highlighted, highlight the first/last point
484
+ if (!chart.highlightedPoint) {
485
+ newSeries = down ? (chart.series && chart.series[0]) : lastSeries;
486
+ newPoint = down ?
487
+ (newSeries && newSeries.points && newSeries.points[0]) :
488
+ lastPoint;
489
+ return newPoint ? newPoint.highlight() : false;
490
+ }
491
+ newSeries = (chart.series[curPoint.series.index + (down ? -1 : 1)]);
492
+ if (!newSeries) {
493
+ return false;
494
+ }
495
+ // We have a new series in this direction, find the right point
496
+ // Weigh xDistance as counting much higher than Y distance
497
+ newPoint = getClosestPoint(curPoint, newSeries, 4);
498
+ if (!newPoint) {
499
+ return false;
500
+ }
501
+ // New series and point exists, but we might want to skip it
502
+ if (isSkipSeries(newSeries)) {
503
+ // Skip the series
504
+ newPoint.highlight();
505
+ // Try recurse
506
+ adjacentNewPoint = chart.highlightAdjacentSeries(down);
507
+ if (!adjacentNewPoint) {
508
+ // Recurse failed
509
+ curPoint.highlight();
510
+ return false;
511
+ }
512
+ // Recurse succeeded
513
+ return adjacentNewPoint;
514
+ }
515
+ // Highlight the new point or any first valid point back or forwards
516
+ // from it
517
+ newPoint.highlight();
518
+ return newPoint.series.highlightFirstValidPoint();
519
+ }
520
+ /**
521
+ * @private
522
+ */
523
+ function compose(ChartClass, PointClass, SeriesClass) {
524
+ if (composedClasses.indexOf(ChartClass) === -1) {
525
+ composedClasses.push(ChartClass);
526
+ var chartProto = ChartClass.prototype;
527
+ chartProto.highlightAdjacentPoint = chartHighlightAdjacentPoint;
528
+ chartProto.highlightAdjacentPointVertical = (chartHighlightAdjacentPointVertical);
529
+ chartProto.highlightAdjacentSeries = chartHighlightAdjacentSeries;
530
+ }
531
+ if (composedClasses.indexOf(PointClass) === -1) {
532
+ composedClasses.push(PointClass);
533
+ var pointProto = PointClass.prototype;
534
+ pointProto.highlight = pointHighlight;
535
+ }
536
+ if (composedClasses.indexOf(SeriesClass) === -1) {
537
+ composedClasses.push(SeriesClass);
538
+ var seriesProto = SeriesClass.prototype;
539
+ /**
540
+ * Set for which series types it makes sense to move to the closest
541
+ * point with up/down arrows, and which series types should just
542
+ * move to next series.
543
+ * @private
544
+ */
545
+ seriesProto.keyboardMoveVertical = true;
546
+ [
547
+ 'column',
548
+ 'gantt',
549
+ 'pie'
550
+ ].forEach(function (type) {
551
+ if (seriesTypes[type]) {
552
+ seriesTypes[type].prototype.keyboardMoveVertical = false;
553
+ }
554
+ });
555
+ seriesProto.highlightFirstValidPoint = (seriesHighlightFirstValidPoint);
556
+ }
557
+ }
558
+ SeriesKeyboardNavigation.compose = compose;
559
+ /**
560
+ * Get the point in a series that is closest (in pixel distance) to a
561
+ * reference point. Optionally supply weight factors for x and y directions.
562
+ * @private
563
+ */
564
+ function getClosestPoint(point, series, xWeight, yWeight) {
565
+ var minDistance = Infinity, dPoint, minIx, distance, i = series.points.length;
566
+ var hasUndefinedPosition = function (point) { return (!(defined(point.plotX) && defined(point.plotY))); };
567
+ if (hasUndefinedPosition(point)) {
568
+ return;
569
+ }
570
+ while (i--) {
571
+ dPoint = series.points[i];
572
+ if (hasUndefinedPosition(dPoint)) {
573
+ continue;
574
+ }
575
+ distance = (point.plotX - dPoint.plotX) *
576
+ (point.plotX - dPoint.plotX) *
577
+ (xWeight || 1) +
578
+ (point.plotY - dPoint.plotY) *
579
+ (point.plotY - dPoint.plotY) *
580
+ (yWeight || 1);
581
+ if (distance < minDistance) {
582
+ minDistance = distance;
583
+ minIx = i;
584
+ }
585
+ }
586
+ return defined(minIx) ? series.points[minIx] : void 0;
587
+ }
588
+ /**
589
+ * Highlights a point (show tooltip and display hover state).
590
+ *
591
+ * @private
592
+ * @function Highcharts.Point#highlight
593
+ *
594
+ * @return {Highcharts.Point}
595
+ * This highlighted point.
596
+ */
597
+ function pointHighlight() {
598
+ var chart = this.series.chart;
599
+ if (!this.isNull) {
600
+ this.onMouseOver(); // Show the hover marker and tooltip
601
+ }
602
+ else {
603
+ if (chart.tooltip) {
604
+ chart.tooltip.hide(0);
605
+ }
606
+ // Do not call blur on the element, as it messes up the focus of the
607
+ // div element of the chart
608
+ }
609
+ scrollToPoint(this);
610
+ // We focus only after calling onMouseOver because the state change can
611
+ // change z-index and mess up the element.
612
+ if (this.graphic) {
613
+ chart.setFocusToElement(this.graphic);
614
+ }
615
+ chart.highlightedPoint = this;
616
+ return this;
617
+ }
618
+ /**
619
+ * Highlight first valid point in a series. Returns the point if
620
+ * successfully highlighted, otherwise false. If there is a highlighted
621
+ * point in the series, use that as starting point.
622
+ *
623
+ * @private
624
+ * @function Highcharts.Series#highlightFirstValidPoint
625
+ */
626
+ function seriesHighlightFirstValidPoint() {
627
+ var curPoint = this.chart.highlightedPoint, start = (curPoint && curPoint.series) === this ?
628
+ getPointIndex(curPoint) :
629
+ 0, points = this.points, len = points.length;
630
+ if (points && len) {
631
+ for (var i = start; i < len; ++i) {
632
+ if (!isSkipPoint(points[i])) {
633
+ return points[i].highlight();
634
+ }
635
+ }
636
+ for (var j = start; j >= 0; --j) {
637
+ if (!isSkipPoint(points[j])) {
638
+ return points[j].highlight();
639
+ }
640
+ }
641
+ }
642
+ return false;
643
+ }
644
+ })(SeriesKeyboardNavigation || (SeriesKeyboardNavigation = {}));
645
+ /* *
646
+ *
647
+ * Default Export
648
+ *
649
+ * */
606
650
  export default SeriesKeyboardNavigation;