highcharts 9.2.1 → 9.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (896) hide show
  1. package/README.md +13 -6
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +48 -8
  4. package/css/annotations/popup.scss +70 -22
  5. package/css/highcharts.css +46 -1
  6. package/css/highcharts.scss +40 -0
  7. package/css/stocktools/gui.css +1 -1
  8. package/css/themes/dark-unica.css +46 -1
  9. package/css/themes/grid-light.css +46 -1
  10. package/css/themes/sand-signika.css +46 -1
  11. package/es-modules/Accessibility/A11yI18n.js +269 -224
  12. package/es-modules/Accessibility/Accessibility.js +244 -129
  13. package/es-modules/Accessibility/AccessibilityComponent.js +78 -313
  14. package/es-modules/Accessibility/Components/AnnotationsA11y.js +19 -5
  15. package/es-modules/Accessibility/Components/ContainerComponent.js +53 -28
  16. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +178 -120
  17. package/es-modules/Accessibility/Components/LegendComponent.js +251 -129
  18. package/es-modules/Accessibility/Components/MenuComponent.js +239 -154
  19. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +172 -93
  20. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +161 -115
  21. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +138 -69
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +67 -28
  23. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +48 -56
  24. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +387 -343
  25. package/es-modules/Accessibility/Components/ZoomComponent.js +156 -70
  26. package/es-modules/Accessibility/FocusBorder.js +192 -152
  27. package/es-modules/Accessibility/HighContrastMode.js +79 -66
  28. package/es-modules/Accessibility/HighContrastTheme.js +10 -0
  29. package/es-modules/Accessibility/KeyboardNavigation.js +151 -75
  30. package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
  31. package/es-modules/Accessibility/Options/DeprecatedOptions.js +21 -4
  32. package/es-modules/Accessibility/Options/LangOptions.js +4 -5
  33. package/es-modules/Accessibility/Options/Options.js +32 -17
  34. package/es-modules/Accessibility/ProxyElement.js +218 -0
  35. package/es-modules/Accessibility/ProxyProvider.js +302 -0
  36. package/es-modules/Accessibility/Utils/Announcer.js +17 -10
  37. package/es-modules/Accessibility/Utils/ChartUtilities.js +55 -45
  38. package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
  39. package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
  40. package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -42
  41. package/es-modules/Core/Animation/Fx.js +5 -14
  42. package/es-modules/Core/Axis/Axis.js +77 -96
  43. package/es-modules/Core/Axis/Axis3D.js +10 -4
  44. package/es-modules/Core/Axis/AxisDefaults.js +35 -24
  45. package/es-modules/Core/Axis/BrokenAxis.js +17 -11
  46. package/es-modules/Core/Axis/Color/ColorAxis.js +7 -4
  47. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +55 -5
  48. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
  49. package/es-modules/Core/Axis/DateTimeAxis.js +3 -14
  50. package/es-modules/Core/Axis/GridAxis.js +26 -16
  51. package/es-modules/Core/Axis/NavigatorAxis.js +0 -5
  52. package/es-modules/Core/Axis/OrdinalAxis.js +88 -92
  53. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
  54. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +0 -5
  55. package/es-modules/Core/Axis/RadialAxis.js +7 -28
  56. package/es-modules/Core/Axis/ScrollbarAxis.js +27 -12
  57. package/es-modules/Core/Axis/StackingAxis.js +2 -1
  58. package/es-modules/Core/Axis/Tick.js +2 -4
  59. package/es-modules/Core/Axis/TreeGridAxis.js +28 -19
  60. package/es-modules/Core/Axis/TreeGridTick.js +5 -3
  61. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  62. package/es-modules/Core/Axis/ZAxis.js +1 -1
  63. package/es-modules/Core/Chart/Chart.js +44 -47
  64. package/es-modules/Core/Chart/Chart3D.js +23 -10
  65. package/es-modules/Core/Chart/ChartDefaults.js +3 -4
  66. package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
  67. package/es-modules/Core/Chart/GanttChart.js +4 -4
  68. package/es-modules/Core/Chart/MapChart.js +13 -25
  69. package/es-modules/Core/Chart/StockChart.js +13 -316
  70. package/es-modules/Core/Color/Palettes.js +22 -0
  71. package/es-modules/Core/DefaultOptions.js +22 -19
  72. package/es-modules/Core/Foundation.js +39 -31
  73. package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
  74. package/es-modules/Core/Globals.js +1 -1
  75. package/es-modules/Core/HttpUtilities.js +8 -7
  76. package/es-modules/Core/Legend/Legend.js +19 -16
  77. package/es-modules/Core/Navigator.js +41 -30
  78. package/es-modules/Core/Pointer.js +52 -45
  79. package/es-modules/Core/Renderer/HTML/AST.js +29 -14
  80. package/es-modules/Core/Renderer/HTML/HTMLElement.js +27 -20
  81. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +8 -6
  82. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  83. package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -20
  84. package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
  85. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +25 -29
  86. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
  87. package/es-modules/Core/Renderer/SVG/TextBuilder.js +18 -12
  88. package/es-modules/Core/Responsive.js +2 -3
  89. package/es-modules/Core/Scrollbar.js +14 -12
  90. package/es-modules/Core/ScrollbarDefaults.js +10 -9
  91. package/es-modules/Core/Series/DataLabel.js +19 -15
  92. package/es-modules/Core/Series/Point.js +22 -19
  93. package/es-modules/Core/Series/Series.js +200 -235
  94. package/es-modules/Core/Series/SeriesDefaults.js +8 -8
  95. package/es-modules/Core/Series/SeriesRegistry.js +1 -2
  96. package/es-modules/Core/Time.js +14 -11
  97. package/es-modules/Core/Tooltip.js +63 -53
  98. package/es-modules/Core/Utilities.js +20 -24
  99. package/es-modules/Data/DataConverter.js +483 -0
  100. package/es-modules/Data/DataPromise.js +252 -0
  101. package/es-modules/Data/DataSeriesConverter.js +207 -0
  102. package/es-modules/Data/DataTable.js +1205 -0
  103. package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
  104. package/es-modules/Data/Modifiers/DataModifier.js +303 -0
  105. package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
  106. package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
  107. package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
  108. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
  109. package/es-modules/Data/Modifiers/SortModifier.js +249 -0
  110. package/es-modules/Data/Parsers/CSVParser.js +400 -0
  111. package/es-modules/Data/Parsers/DataParser.js +101 -0
  112. package/es-modules/Data/Parsers/GoogleSheetsParser.js +223 -0
  113. package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
  114. package/es-modules/Data/Stores/CSVStore.js +317 -0
  115. package/es-modules/Data/Stores/DataStore.js +276 -0
  116. package/es-modules/Data/Stores/GoogleSheetsStore.js +169 -0
  117. package/es-modules/Data/Stores/HTMLTableStore.js +353 -0
  118. package/es-modules/Extensions/Annotations/Annotations.js +69 -18
  119. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -3
  120. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
  121. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
  122. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +1 -1
  123. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +3 -6
  124. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -2
  125. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +1 -1
  126. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +13 -4
  127. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +0 -1
  128. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +5 -4
  129. package/es-modules/Extensions/Annotations/NavigationBindings.js +120 -53
  130. package/es-modules/Extensions/Annotations/Popup.js +494 -148
  131. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
  132. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +5 -3
  133. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
  134. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
  135. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
  136. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
  137. package/es-modules/Extensions/Annotations/Types/Measure.js +29 -19
  138. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +7 -6
  139. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +211 -0
  140. package/es-modules/Extensions/Annotations/Types/Tunnel.js +13 -10
  141. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
  142. package/es-modules/Extensions/Boost/BoostOptions.js +2 -2
  143. package/es-modules/Extensions/Boost/BoostOverrides.js +6 -10
  144. package/es-modules/Extensions/Boost/BoostUtils.js +0 -6
  145. package/es-modules/Extensions/Boost/WGLRenderer.js +16 -12
  146. package/es-modules/Extensions/Boost/WGLShader.js +13 -11
  147. package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
  148. package/es-modules/Extensions/BoostCanvas.js +1 -2
  149. package/es-modules/Extensions/CurrentDateIndication.js +2 -3
  150. package/es-modules/Extensions/Data.js +77 -115
  151. package/es-modules/Extensions/DataGrouping.js +54 -32
  152. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  153. package/es-modules/Extensions/DownloadURL.js +2 -2
  154. package/es-modules/Extensions/DragPanes.js +1 -2
  155. package/es-modules/Extensions/DraggablePoints.js +7 -8
  156. package/es-modules/Extensions/Drilldown.js +11 -7
  157. package/es-modules/Extensions/ExportData.js +6 -5
  158. package/es-modules/Extensions/Exporting/Exporting.js +35 -48
  159. package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
  160. package/es-modules/Extensions/FullScreen.js +4 -3
  161. package/es-modules/Extensions/GeoJSON.js +42 -66
  162. package/es-modules/Extensions/MarkerClusters.js +118 -98
  163. package/es-modules/Extensions/Math3D.js +4 -4
  164. package/es-modules/Extensions/NoDataToDisplay.js +1 -2
  165. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +33 -33
  166. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  167. package/es-modules/Extensions/Oldie/Oldie.js +14 -79
  168. package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
  169. package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
  170. package/es-modules/Extensions/Pane.js +11 -12
  171. package/es-modules/Extensions/ParallelCoordinates.js +5 -3
  172. package/es-modules/Extensions/PatternFill.js +17 -11
  173. package/es-modules/Extensions/Polar.js +7 -4
  174. package/es-modules/Extensions/PriceIndication.js +2 -1
  175. package/es-modules/Extensions/RangeSelector.js +22 -59
  176. package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
  177. package/es-modules/Extensions/SeriesLabel.js +1 -1
  178. package/es-modules/Extensions/Sonification/ChartSonify.js +279 -663
  179. package/es-modules/Extensions/Sonification/Earcon.js +136 -102
  180. package/es-modules/Extensions/Sonification/Instrument.js +493 -426
  181. package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
  182. package/es-modules/Extensions/Sonification/Options.js +10 -0
  183. package/es-modules/Extensions/Sonification/PointSonify.js +207 -152
  184. package/es-modules/Extensions/Sonification/SeriesSonify.js +474 -0
  185. package/es-modules/Extensions/Sonification/SignalHandler.js +122 -0
  186. package/es-modules/Extensions/Sonification/Sonification.js +27 -53
  187. package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +70 -88
  188. package/es-modules/Extensions/Sonification/Timeline.js +250 -567
  189. package/es-modules/Extensions/Sonification/TimelineEvent.js +157 -0
  190. package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  191. package/es-modules/Extensions/Stacking.js +5 -23
  192. package/es-modules/Extensions/Themes/BrandDark.js +293 -0
  193. package/es-modules/Extensions/Themes/BrandLight.js +259 -0
  194. package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
  195. package/es-modules/Extensions/Themes/Grid.js +4 -2
  196. package/es-modules/Extensions/Themes/GridLight.js +4 -2
  197. package/es-modules/Gantt/Connection.js +2 -2
  198. package/es-modules/Gantt/Pathfinder.js +6 -5
  199. package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
  200. package/es-modules/Maps/MapNavigation.js +30 -68
  201. package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
  202. package/es-modules/Maps/MapPointer.js +8 -5
  203. package/es-modules/Maps/MapSymbols.js +23 -3
  204. package/es-modules/Maps/MapView.js +450 -0
  205. package/es-modules/Maps/MapViewOptionsDefault.js +97 -0
  206. package/es-modules/Maps/Projection.js +436 -0
  207. package/es-modules/Maps/ProjectionDefinition.js +9 -0
  208. package/es-modules/Maps/Projections/EqualEarth.js +42 -0
  209. package/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
  210. package/es-modules/Maps/Projections/Miller.js +16 -0
  211. package/es-modules/Maps/Projections/Orthographic.js +26 -0
  212. package/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
  213. package/es-modules/Maps/Projections/WebMercator.js +24 -0
  214. package/es-modules/Series/Area/AreaSeries.js +13 -13
  215. package/es-modules/Series/Area3DSeries.js +4 -2
  216. package/es-modules/Series/AreaRange/AreaRangeSeries.js +28 -17
  217. package/es-modules/Series/Bellcurve/BellcurveSeries.js +4 -9
  218. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
  219. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
  220. package/es-modules/Series/Bubble/BubbleLegendItem.js +5 -15
  221. package/es-modules/Series/Bubble/BubblePoint.js +5 -0
  222. package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
  223. package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -19
  224. package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
  225. package/es-modules/{Mixins/ColorMapSeries.js → Series/ColorMapMixin.js} +10 -8
  226. package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
  227. package/es-modules/Series/Column/ColumnSeries.js +19 -18
  228. package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
  229. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +11 -8
  230. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  231. package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
  232. package/es-modules/Series/DataModifyComposition.js +539 -0
  233. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
  234. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
  235. package/es-modules/Series/DerivedComposition.js +137 -0
  236. package/es-modules/Series/DrawPointComposition.js +111 -0
  237. package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
  238. package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -6
  239. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
  240. package/es-modules/Series/Flags/FlagsSeries.js +18 -25
  241. package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
  242. package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
  243. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
  244. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
  245. package/es-modules/Series/Gantt/GanttPoint.js +1 -1
  246. package/es-modules/Series/Gantt/GanttSeries.js +3 -3
  247. package/es-modules/Series/Gauge/GaugePoint.js +1 -1
  248. package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
  249. package/es-modules/Series/HLC/HLCPoint.js +55 -0
  250. package/es-modules/Series/HLC/HLCSeries.js +378 -0
  251. package/es-modules/Series/Heatmap/HeatmapPoint.js +13 -14
  252. package/es-modules/Series/Heatmap/HeatmapSeries.js +24 -12
  253. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +10 -9
  254. package/es-modules/Series/Histogram/HistogramSeries.js +7 -11
  255. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
  256. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +28 -30
  257. package/es-modules/Series/Item/ItemSeries.js +4 -5
  258. package/es-modules/Series/Line/LineSeries.js +1 -2
  259. package/es-modules/Series/Map/MapPoint.js +27 -14
  260. package/es-modules/Series/Map/MapSeries.js +283 -322
  261. package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
  262. package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
  263. package/es-modules/Series/MapLine/MapLineSeries.js +2 -4
  264. package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
  265. package/es-modules/Series/MapPoint/MapPointSeries.js +99 -14
  266. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
  267. package/es-modules/Series/Networkgraph/Integrations.js +8 -22
  268. package/es-modules/Series/Networkgraph/Networkgraph.js +6 -10
  269. package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
  270. package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +78 -30
  271. package/es-modules/Series/OHLC/OHLCPoint.js +2 -7
  272. package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
  273. package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
  274. package/es-modules/Series/Organization/OrganizationSeries.js +6 -5
  275. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
  276. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  277. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +48 -10
  278. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
  279. package/es-modules/Series/Pie/PieDataLabel.js +1 -2
  280. package/es-modules/Series/Pie/PiePoint.js +2 -2
  281. package/es-modules/Series/Pie/PieSeries.js +7 -8
  282. package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
  283. package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
  284. package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  285. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
  286. package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
  287. package/es-modules/Series/Sankey/SankeySeries.js +92 -22
  288. package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
  289. package/es-modules/Series/Spline/SplineSeries.js +0 -8
  290. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
  291. package/es-modules/Series/Sunburst/SunburstSeries.js +6 -6
  292. package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
  293. package/es-modules/Series/Tilemap/TilemapPoint.js +2 -5
  294. package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
  295. package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
  296. package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +88 -78
  297. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  298. package/es-modules/Series/Treemap/TreemapSeries.js +22 -25
  299. package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
  300. package/es-modules/Series/Venn/VennPoint.js +16 -7
  301. package/es-modules/Series/Venn/VennSeries.js +11 -17
  302. package/es-modules/Series/Venn/VennUtils.js +551 -439
  303. package/es-modules/Series/Waterfall/WaterfallSeries.js +8 -6
  304. package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
  305. package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
  306. package/es-modules/Series/Wordcloud/WordcloudSeries.js +26 -22
  307. package/es-modules/Series/Wordcloud/WordcloudUtils.js +669 -484
  308. package/es-modules/Series/XRange/XRangePoint.js +7 -12
  309. package/es-modules/Series/XRange/XRangeSeries.js +4 -20
  310. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +15 -6
  311. package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
  312. package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
  313. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +4 -6
  314. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
  315. package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  316. package/es-modules/Stock/Indicators/BB/BBIndicator.js +39 -11
  317. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
  318. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
  319. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
  320. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +28 -16
  321. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +18 -11
  322. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
  323. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
  324. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +23 -9
  325. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +16 -19
  326. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +32 -14
  327. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
  328. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
  329. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
  330. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +2 -3
  331. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +294 -0
  332. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
  333. package/es-modules/Stock/Indicators/PC/PCIndicator.js +25 -13
  334. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
  335. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
  336. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
  337. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
  338. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +32 -50
  339. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
  340. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -9
  341. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
  342. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
  343. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
  344. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +26 -10
  345. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
  346. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
  347. package/es-modules/Stock/StockToolsBindings.js +156 -47
  348. package/es-modules/Stock/StockToolsGui.js +442 -37
  349. package/es-modules/masters/highcharts-3d.src.js +1 -1
  350. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  351. package/es-modules/masters/highcharts-more.src.js +1 -1
  352. package/es-modules/masters/highcharts.src.js +1 -1
  353. package/es-modules/masters/highmaps.src.js +1 -1
  354. package/es-modules/masters/highstock.src.js +1 -1
  355. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  356. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  357. package/es-modules/masters/indicators/ao.src.js +1 -1
  358. package/es-modules/masters/indicators/apo.src.js +1 -1
  359. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  360. package/es-modules/masters/indicators/aroon.src.js +1 -1
  361. package/es-modules/masters/indicators/atr.src.js +1 -1
  362. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  363. package/es-modules/masters/indicators/cci.src.js +1 -1
  364. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  365. package/es-modules/masters/indicators/cmf.src.js +1 -1
  366. package/es-modules/masters/indicators/cmo.src.js +1 -1
  367. package/es-modules/masters/indicators/dema.src.js +1 -1
  368. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  369. package/es-modules/masters/indicators/dmi.src.js +1 -1
  370. package/es-modules/masters/indicators/dpo.src.js +1 -1
  371. package/es-modules/masters/indicators/ema.src.js +4 -10
  372. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  373. package/es-modules/masters/indicators/indicators-all.src.js +2 -2
  374. package/es-modules/masters/indicators/indicators.src.js +2 -1
  375. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  376. package/es-modules/masters/indicators/klinger.src.js +1 -1
  377. package/es-modules/masters/indicators/macd.src.js +1 -1
  378. package/es-modules/masters/indicators/mfi.src.js +1 -1
  379. package/es-modules/masters/indicators/momentum.src.js +1 -1
  380. package/es-modules/masters/indicators/natr.src.js +1 -1
  381. package/es-modules/masters/indicators/obv.src.js +1 -1
  382. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  383. package/es-modules/masters/indicators/ppo.src.js +1 -1
  384. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  385. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  386. package/es-modules/masters/indicators/psar.src.js +1 -1
  387. package/es-modules/masters/indicators/regressions.src.js +1 -1
  388. package/es-modules/masters/indicators/roc.src.js +1 -1
  389. package/es-modules/masters/indicators/rsi.src.js +1 -1
  390. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  391. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  392. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  393. package/es-modules/masters/indicators/tema.src.js +1 -1
  394. package/es-modules/masters/indicators/trendline.src.js +1 -1
  395. package/es-modules/masters/indicators/trix.src.js +1 -1
  396. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  397. package/es-modules/masters/indicators/vwap.src.js +1 -1
  398. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  399. package/es-modules/masters/indicators/wma.src.js +1 -1
  400. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  401. package/es-modules/masters/modules/accessibility.src.js +16 -2
  402. package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
  403. package/es-modules/masters/modules/annotations.src.js +1 -1
  404. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  405. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  406. package/es-modules/masters/modules/boost.src.js +1 -1
  407. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  408. package/es-modules/masters/modules/bullet.src.js +1 -1
  409. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  410. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  411. package/es-modules/masters/modules/cylinder.src.js +1 -1
  412. package/es-modules/masters/modules/data.src.js +6 -3
  413. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  414. package/es-modules/masters/modules/debugger.src.js +1 -1
  415. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  416. package/es-modules/masters/modules/dotplot.src.js +1 -1
  417. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  418. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  419. package/es-modules/masters/modules/drilldown.src.js +1 -1
  420. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  421. package/es-modules/masters/modules/export-data.src.js +1 -1
  422. package/es-modules/masters/modules/exporting.src.js +1 -1
  423. package/es-modules/masters/modules/full-screen.src.js +1 -1
  424. package/es-modules/masters/modules/funnel.src.js +1 -1
  425. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  426. package/es-modules/masters/modules/gantt.src.js +1 -1
  427. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  428. package/es-modules/masters/modules/heatmap.src.js +1 -2
  429. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  430. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  431. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  432. package/es-modules/masters/modules/item-series.src.js +1 -1
  433. package/es-modules/masters/modules/lollipop.src.js +1 -1
  434. package/es-modules/masters/modules/map.src.js +1 -3
  435. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  436. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  437. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  438. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  439. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  440. package/es-modules/masters/modules/oldie.src.js +1 -1
  441. package/es-modules/masters/modules/organization.src.js +1 -1
  442. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  443. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  444. package/es-modules/masters/modules/pareto.src.js +1 -1
  445. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  446. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  447. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  448. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  449. package/es-modules/masters/modules/sankey.src.js +1 -1
  450. package/es-modules/masters/modules/series-label.src.js +1 -1
  451. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  452. package/es-modules/masters/modules/sonification.src.js +33 -2
  453. package/es-modules/masters/modules/static-scale.src.js +1 -1
  454. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  455. package/es-modules/masters/modules/stock.src.js +4 -1
  456. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  457. package/es-modules/masters/modules/sunburst.src.js +1 -1
  458. package/es-modules/masters/modules/tilemap.src.js +1 -1
  459. package/es-modules/masters/modules/timeline.src.js +1 -1
  460. package/es-modules/masters/modules/treegrid.src.js +1 -1
  461. package/es-modules/masters/modules/treemap.src.js +1 -1
  462. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  463. package/es-modules/masters/modules/variwide.src.js +1 -1
  464. package/es-modules/masters/modules/vector.src.js +1 -1
  465. package/es-modules/masters/modules/venn.src.js +1 -1
  466. package/es-modules/masters/modules/windbarb.src.js +1 -1
  467. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  468. package/es-modules/masters/modules/xrange.src.js +1 -1
  469. package/es-modules/masters/themes/avocado.src.js +1 -1
  470. package/es-modules/masters/themes/brand-dark.src.js +14 -0
  471. package/es-modules/masters/themes/brand-light.src.js +14 -0
  472. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  473. package/es-modules/masters/themes/dark-green.src.js +1 -1
  474. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  475. package/es-modules/masters/themes/gray.src.js +1 -1
  476. package/es-modules/masters/themes/grid-light.src.js +1 -1
  477. package/es-modules/masters/themes/grid.src.js +1 -1
  478. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  479. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  480. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  481. package/es-modules/masters/themes/skies.src.js +1 -1
  482. package/es-modules/masters/themes/sunset.src.js +1 -1
  483. package/highcharts-3d.js +1 -1
  484. package/highcharts-3d.js.map +1 -1
  485. package/highcharts-3d.src.js +65 -35
  486. package/highcharts-gantt.js +800 -803
  487. package/highcharts-gantt.js.map +1 -1
  488. package/highcharts-gantt.src.js +1359 -1429
  489. package/highcharts-more.js +194 -193
  490. package/highcharts-more.js.map +1 -1
  491. package/highcharts-more.src.js +280 -222
  492. package/highcharts.d.ts +10228 -768
  493. package/highcharts.js +585 -588
  494. package/highcharts.js.map +1 -1
  495. package/highcharts.src.d.ts +10228 -768
  496. package/highcharts.src.js +995 -1066
  497. package/highmaps.js +727 -707
  498. package/highmaps.js.map +1 -1
  499. package/highmaps.src.js +3243 -2135
  500. package/highstock.js +788 -783
  501. package/highstock.js.map +1 -1
  502. package/highstock.src.js +2492 -1981
  503. package/indicators/acceleration-bands.d.ts +17 -1
  504. package/indicators/acceleration-bands.js +11 -9
  505. package/indicators/acceleration-bands.js.map +1 -1
  506. package/indicators/acceleration-bands.src.d.ts +17 -1
  507. package/indicators/acceleration-bands.src.js +238 -112
  508. package/indicators/accumulation-distribution.js +1 -1
  509. package/indicators/accumulation-distribution.src.js +1 -1
  510. package/indicators/ao.js +6 -6
  511. package/indicators/ao.js.map +1 -1
  512. package/indicators/ao.src.js +4 -4
  513. package/indicators/apo.js +5 -6
  514. package/indicators/apo.js.map +1 -1
  515. package/indicators/apo.src.js +16 -84
  516. package/indicators/aroon-oscillator.d.ts +17 -1
  517. package/indicators/aroon-oscillator.js +10 -9
  518. package/indicators/aroon-oscillator.js.map +1 -1
  519. package/indicators/aroon-oscillator.src.d.ts +17 -1
  520. package/indicators/aroon-oscillator.src.js +230 -177
  521. package/indicators/aroon.d.ts +17 -1
  522. package/indicators/aroon.js +11 -9
  523. package/indicators/aroon.js.map +1 -1
  524. package/indicators/aroon.src.d.ts +17 -1
  525. package/indicators/aroon.src.js +227 -112
  526. package/indicators/atr.js +1 -1
  527. package/indicators/atr.src.js +1 -1
  528. package/indicators/bollinger-bands.d.ts +17 -1
  529. package/indicators/bollinger-bands.js +12 -9
  530. package/indicators/bollinger-bands.js.map +1 -1
  531. package/indicators/bollinger-bands.src.d.ts +17 -1
  532. package/indicators/bollinger-bands.src.js +262 -117
  533. package/indicators/cci.js +1 -1
  534. package/indicators/cci.src.js +1 -1
  535. package/indicators/chaikin.js +8 -9
  536. package/indicators/chaikin.js.map +1 -1
  537. package/indicators/chaikin.src.js +8 -76
  538. package/indicators/cmf.js +1 -1
  539. package/indicators/cmf.js.map +1 -1
  540. package/indicators/cmf.src.js +36 -16
  541. package/indicators/cmo.js +1 -1
  542. package/indicators/cmo.src.js +1 -1
  543. package/indicators/dema.js +5 -6
  544. package/indicators/dema.js.map +1 -1
  545. package/indicators/dema.src.js +3 -75
  546. package/indicators/disparity-index.js +6 -7
  547. package/indicators/disparity-index.js.map +1 -1
  548. package/indicators/disparity-index.src.js +20 -74
  549. package/indicators/dmi.js +12 -11
  550. package/indicators/dmi.js.map +1 -1
  551. package/indicators/dmi.src.js +252 -121
  552. package/indicators/dpo.js +1 -1
  553. package/indicators/dpo.src.js +1 -1
  554. package/indicators/ema.js +1 -13
  555. package/indicators/ema.js.map +1 -1
  556. package/indicators/ema.src.js +7 -188
  557. package/indicators/ichimoku-kinko-hyo.js +1 -1
  558. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  559. package/indicators/ichimoku-kinko-hyo.src.js +7 -7
  560. package/indicators/indicators-all.d.ts +17 -1
  561. package/indicators/indicators-all.js +198 -203
  562. package/indicators/indicators-all.js.map +1 -1
  563. package/indicators/indicators-all.src.d.ts +17 -1
  564. package/indicators/indicators-all.src.js +892 -777
  565. package/indicators/indicators.js +12 -12
  566. package/indicators/indicators.js.map +1 -1
  567. package/indicators/indicators.src.js +213 -144
  568. package/indicators/keltner-channels.d.ts +17 -1
  569. package/indicators/keltner-channels.js +11 -10
  570. package/indicators/keltner-channels.js.map +1 -1
  571. package/indicators/keltner-channels.src.d.ts +17 -1
  572. package/indicators/keltner-channels.src.js +246 -118
  573. package/indicators/klinger.js +14 -13
  574. package/indicators/klinger.js.map +1 -1
  575. package/indicators/klinger.src.js +239 -187
  576. package/indicators/macd.js +2 -2
  577. package/indicators/macd.js.map +1 -1
  578. package/indicators/macd.src.js +3 -4
  579. package/indicators/mfi.js +1 -1
  580. package/indicators/mfi.src.js +1 -1
  581. package/indicators/momentum.js +1 -1
  582. package/indicators/momentum.src.js +1 -1
  583. package/indicators/natr.js +3 -3
  584. package/indicators/natr.js.map +1 -1
  585. package/indicators/natr.src.js +2 -4
  586. package/indicators/obv.js +1 -1
  587. package/indicators/obv.src.js +1 -1
  588. package/indicators/pivot-points.js +1 -1
  589. package/indicators/pivot-points.js.map +1 -1
  590. package/indicators/pivot-points.src.js +3 -2
  591. package/indicators/ppo.js +5 -6
  592. package/indicators/ppo.js.map +1 -1
  593. package/indicators/ppo.src.js +3 -75
  594. package/indicators/price-channel.d.ts +17 -1
  595. package/indicators/price-channel.js +11 -9
  596. package/indicators/price-channel.js.map +1 -1
  597. package/indicators/price-channel.src.d.ts +17 -1
  598. package/indicators/price-channel.src.js +288 -168
  599. package/indicators/price-envelopes.js +1 -1
  600. package/indicators/price-envelopes.src.js +1 -1
  601. package/indicators/psar.js +1 -1
  602. package/indicators/psar.src.js +1 -1
  603. package/indicators/regressions.js +1 -1
  604. package/indicators/regressions.js.map +1 -1
  605. package/indicators/regressions.src.js +39 -21
  606. package/indicators/roc.js +1 -1
  607. package/indicators/roc.src.js +1 -1
  608. package/indicators/rsi.js +1 -1
  609. package/indicators/rsi.js.map +1 -1
  610. package/indicators/rsi.src.js +3 -2
  611. package/indicators/slow-stochastic.js +5 -6
  612. package/indicators/slow-stochastic.js.map +1 -1
  613. package/indicators/slow-stochastic.src.js +2 -72
  614. package/indicators/stochastic.d.ts +17 -1
  615. package/indicators/stochastic.js +12 -10
  616. package/indicators/stochastic.js.map +1 -1
  617. package/indicators/stochastic.src.d.ts +17 -1
  618. package/indicators/stochastic.src.js +282 -165
  619. package/indicators/supertrend.js +10 -10
  620. package/indicators/supertrend.js.map +1 -1
  621. package/indicators/supertrend.src.js +6 -7
  622. package/indicators/tema.js +6 -7
  623. package/indicators/tema.js.map +1 -1
  624. package/indicators/tema.src.js +28 -75
  625. package/indicators/trendline.js +1 -1
  626. package/indicators/trendline.src.js +1 -1
  627. package/indicators/trix.js +4 -5
  628. package/indicators/trix.js.map +1 -1
  629. package/indicators/trix.src.js +8 -76
  630. package/indicators/volume-by-price.js +16 -16
  631. package/indicators/volume-by-price.js.map +1 -1
  632. package/indicators/volume-by-price.src.js +27 -10
  633. package/indicators/vwap.js +1 -1
  634. package/indicators/vwap.js.map +1 -1
  635. package/indicators/vwap.src.js +20 -8
  636. package/indicators/williams-r.js +5 -6
  637. package/indicators/williams-r.js.map +1 -1
  638. package/indicators/williams-r.src.js +41 -51
  639. package/indicators/wma.js +1 -1
  640. package/indicators/wma.src.js +1 -1
  641. package/indicators/zigzag.js +1 -1
  642. package/indicators/zigzag.src.js +1 -1
  643. package/modules/accessibility.d.ts +0 -30
  644. package/modules/accessibility.js +240 -216
  645. package/modules/accessibility.js.map +1 -1
  646. package/modules/accessibility.src.d.ts +0 -30
  647. package/modules/accessibility.src.js +7807 -6400
  648. package/modules/annotations-advanced.d.ts +30 -0
  649. package/modules/annotations-advanced.js +192 -165
  650. package/modules/annotations-advanced.js.map +1 -1
  651. package/modules/annotations-advanced.src.d.ts +30 -0
  652. package/modules/annotations-advanced.src.js +1716 -416
  653. package/modules/annotations.js +125 -110
  654. package/modules/annotations.js.map +1 -1
  655. package/modules/annotations.src.js +1059 -304
  656. package/modules/arrow-symbols.js +1 -1
  657. package/modules/arrow-symbols.src.js +1 -1
  658. package/modules/boost-canvas.js +15 -15
  659. package/modules/boost-canvas.js.map +1 -1
  660. package/modules/boost-canvas.src.js +3 -3
  661. package/modules/boost.js +79 -79
  662. package/modules/boost.js.map +1 -1
  663. package/modules/boost.src.js +42 -51
  664. package/modules/broken-axis.js +1 -1
  665. package/modules/broken-axis.js.map +1 -1
  666. package/modules/broken-axis.src.js +18 -12
  667. package/modules/bullet.js +1 -1
  668. package/modules/bullet.src.js +1 -1
  669. package/modules/coloraxis.js +24 -24
  670. package/modules/coloraxis.js.map +1 -1
  671. package/modules/coloraxis.src.js +77 -103
  672. package/modules/current-date-indicator.js +4 -4
  673. package/modules/current-date-indicator.js.map +1 -1
  674. package/modules/current-date-indicator.src.js +4 -4
  675. package/modules/cylinder.js +1 -1
  676. package/modules/cylinder.js.map +1 -1
  677. package/modules/cylinder.src.js +37 -5
  678. package/modules/data.d.ts +6 -6
  679. package/modules/data.js +32 -32
  680. package/modules/data.js.map +1 -1
  681. package/modules/data.src.d.ts +6 -6
  682. package/modules/data.src.js +94 -140
  683. package/modules/datagrouping.js +20 -20
  684. package/modules/datagrouping.js.map +1 -1
  685. package/modules/datagrouping.src.js +56 -33
  686. package/modules/debugger.js +3 -3
  687. package/modules/debugger.js.map +1 -1
  688. package/modules/debugger.src.js +3 -3
  689. package/modules/dependency-wheel.js +11 -11
  690. package/modules/dependency-wheel.js.map +1 -1
  691. package/modules/dependency-wheel.src.js +5 -8
  692. package/modules/dotplot.js +1 -1
  693. package/modules/dotplot.src.js +1 -1
  694. package/modules/drag-panes.js +8 -8
  695. package/modules/drag-panes.js.map +1 -1
  696. package/modules/drag-panes.src.js +3 -3
  697. package/modules/draggable-points.js +1 -1
  698. package/modules/draggable-points.js.map +1 -1
  699. package/modules/draggable-points.src.js +8 -9
  700. package/modules/drilldown.js +24 -24
  701. package/modules/drilldown.js.map +1 -1
  702. package/modules/drilldown.src.js +13 -8
  703. package/modules/dumbbell.js +17 -17
  704. package/modules/dumbbell.js.map +1 -1
  705. package/modules/dumbbell.src.js +4 -8
  706. package/modules/export-data.js +19 -19
  707. package/modules/export-data.js.map +1 -1
  708. package/modules/export-data.src.js +9 -8
  709. package/modules/exporting.js +39 -38
  710. package/modules/exporting.js.map +1 -1
  711. package/modules/exporting.src.js +134 -116
  712. package/modules/full-screen.js +1 -1
  713. package/modules/full-screen.js.map +1 -1
  714. package/modules/full-screen.src.js +5 -4
  715. package/modules/funnel.js +12 -12
  716. package/modules/funnel.js.map +1 -1
  717. package/modules/funnel.src.js +9 -6
  718. package/modules/funnel3d.js +1 -1
  719. package/modules/funnel3d.js.map +1 -1
  720. package/modules/funnel3d.src.js +17 -10
  721. package/modules/gantt.js +217 -218
  722. package/modules/gantt.js.map +1 -1
  723. package/modules/gantt.src.js +364 -363
  724. package/modules/grid-axis.js +1 -1
  725. package/modules/grid-axis.js.map +1 -1
  726. package/modules/grid-axis.src.js +27 -19
  727. package/modules/heatmap.js +39 -39
  728. package/modules/heatmap.js.map +1 -1
  729. package/modules/heatmap.src.js +132 -141
  730. package/modules/heikinashi.js +1 -1
  731. package/modules/heikinashi.js.map +1 -1
  732. package/modules/heikinashi.src.js +12 -10
  733. package/modules/histogram-bellcurve.js +13 -13
  734. package/modules/histogram-bellcurve.js.map +1 -1
  735. package/modules/histogram-bellcurve.src.js +97 -91
  736. package/modules/hollowcandlestick.js +9 -9
  737. package/modules/hollowcandlestick.js.map +1 -1
  738. package/modules/hollowcandlestick.src.js +31 -35
  739. package/modules/item-series.js +6 -6
  740. package/modules/item-series.js.map +1 -1
  741. package/modules/item-series.src.js +6 -6
  742. package/modules/lollipop.js +1 -1
  743. package/modules/lollipop.src.js +1 -1
  744. package/modules/map.d.ts +138 -14
  745. package/modules/map.js +144 -122
  746. package/modules/map.js.map +1 -1
  747. package/modules/map.src.d.ts +138 -14
  748. package/modules/map.src.js +2253 -1074
  749. package/modules/marker-clusters.js +36 -36
  750. package/modules/marker-clusters.js.map +1 -1
  751. package/modules/marker-clusters.src.js +176 -143
  752. package/modules/networkgraph.d.ts +12 -1
  753. package/modules/networkgraph.js +49 -49
  754. package/modules/networkgraph.js.map +1 -1
  755. package/modules/networkgraph.src.d.ts +12 -1
  756. package/modules/networkgraph.src.js +103 -78
  757. package/modules/no-data-to-display.js +5 -5
  758. package/modules/no-data-to-display.js.map +1 -1
  759. package/modules/no-data-to-display.src.js +3 -3
  760. package/modules/offline-exporting.js +18 -17
  761. package/modules/offline-exporting.js.map +1 -1
  762. package/modules/offline-exporting.src.js +39 -44
  763. package/modules/oldie-polyfills.js +1 -1
  764. package/modules/oldie-polyfills.src.js +1 -1
  765. package/modules/oldie.js +26 -26
  766. package/modules/oldie.js.map +1 -1
  767. package/modules/oldie.src.js +21 -81
  768. package/modules/organization.js +13 -13
  769. package/modules/organization.js.map +1 -1
  770. package/modules/organization.src.js +8 -6
  771. package/modules/overlapping-datalabels.js +1 -1
  772. package/modules/overlapping-datalabels.src.js +1 -1
  773. package/modules/parallel-coordinates.js +1 -1
  774. package/modules/parallel-coordinates.js.map +1 -1
  775. package/modules/parallel-coordinates.src.js +6 -4
  776. package/modules/pareto.js +7 -7
  777. package/modules/pareto.js.map +1 -1
  778. package/modules/pareto.src.js +89 -78
  779. package/modules/pathfinder.js +1 -1
  780. package/modules/pathfinder.js.map +1 -1
  781. package/modules/pathfinder.src.js +21 -20
  782. package/modules/pattern-fill.js +1 -1
  783. package/modules/pattern-fill.js.map +1 -1
  784. package/modules/pattern-fill.src.js +18 -12
  785. package/modules/price-indicator.js +1 -1
  786. package/modules/price-indicator.js.map +1 -1
  787. package/modules/price-indicator.src.js +3 -2
  788. package/modules/pyramid3d.js +1 -1
  789. package/modules/pyramid3d.js.map +1 -1
  790. package/modules/pyramid3d.src.js +3 -2
  791. package/modules/sankey.d.ts +12 -1
  792. package/modules/sankey.js +29 -29
  793. package/modules/sankey.js.map +1 -1
  794. package/modules/sankey.src.d.ts +12 -1
  795. package/modules/sankey.src.js +307 -181
  796. package/modules/series-label.js +1 -1
  797. package/modules/series-label.js.map +1 -1
  798. package/modules/series-label.src.js +2 -2
  799. package/modules/solid-gauge.js +1 -1
  800. package/modules/solid-gauge.js.map +1 -1
  801. package/modules/solid-gauge.src.js +17 -2
  802. package/modules/sonification.js +59 -55
  803. package/modules/sonification.js.map +1 -1
  804. package/modules/sonification.src.js +3093 -2594
  805. package/modules/static-scale.js +1 -1
  806. package/modules/static-scale.src.js +1 -1
  807. package/modules/stock-tools.js +178 -163
  808. package/modules/stock-tools.js.map +1 -1
  809. package/modules/stock-tools.src.js +1136 -229
  810. package/modules/stock.d.ts +39 -6
  811. package/modules/stock.js +204 -196
  812. package/modules/stock.js.map +1 -1
  813. package/modules/stock.src.d.ts +39 -6
  814. package/modules/stock.src.js +1822 -1240
  815. package/modules/streamgraph.js +1 -1
  816. package/modules/streamgraph.src.js +1 -1
  817. package/modules/sunburst.js +60 -60
  818. package/modules/sunburst.js.map +1 -1
  819. package/modules/sunburst.src.js +281 -248
  820. package/modules/tilemap.js +17 -17
  821. package/modules/tilemap.js.map +1 -1
  822. package/modules/tilemap.src.js +3 -13
  823. package/modules/timeline.js +18 -18
  824. package/modules/timeline.js.map +1 -1
  825. package/modules/timeline.src.js +5 -5
  826. package/modules/treegrid.js +56 -57
  827. package/modules/treegrid.js.map +1 -1
  828. package/modules/treegrid.src.js +201 -169
  829. package/modules/treemap.js +41 -41
  830. package/modules/treemap.js.map +1 -1
  831. package/modules/treemap.src.js +266 -232
  832. package/modules/variable-pie.js +1 -1
  833. package/modules/variable-pie.src.js +1 -1
  834. package/modules/variwide.js +1 -1
  835. package/modules/variwide.js.map +1 -1
  836. package/modules/variwide.src.js +7 -3
  837. package/modules/vector.js +1 -1
  838. package/modules/vector.src.js +1 -1
  839. package/modules/venn.js +31 -31
  840. package/modules/venn.js.map +1 -1
  841. package/modules/venn.src.js +740 -731
  842. package/modules/windbarb.js +15 -15
  843. package/modules/windbarb.js.map +1 -1
  844. package/modules/windbarb.src.js +90 -62
  845. package/modules/wordcloud.js +23 -24
  846. package/modules/wordcloud.js.map +1 -1
  847. package/modules/wordcloud.src.js +898 -954
  848. package/modules/xrange.js +2 -2
  849. package/modules/xrange.js.map +1 -1
  850. package/modules/xrange.src.js +12 -33
  851. package/package.json +1 -1
  852. package/themes/avocado.js +1 -1
  853. package/themes/avocado.src.js +1 -1
  854. package/themes/brand-dark.js +15 -0
  855. package/themes/brand-dark.js.map +1 -0
  856. package/themes/brand-dark.src.js +328 -0
  857. package/themes/brand-light.js +15 -0
  858. package/themes/brand-light.js.map +1 -0
  859. package/themes/brand-light.src.js +294 -0
  860. package/themes/dark-blue.js +1 -1
  861. package/themes/dark-blue.src.js +1 -1
  862. package/themes/dark-green.js +1 -1
  863. package/themes/dark-green.src.js +1 -1
  864. package/themes/dark-unica.js +1 -1
  865. package/themes/dark-unica.js.map +1 -1
  866. package/themes/dark-unica.src.js +5 -3
  867. package/themes/gray.js +1 -1
  868. package/themes/gray.src.js +1 -1
  869. package/themes/grid-light.js +1 -1
  870. package/themes/grid-light.js.map +1 -1
  871. package/themes/grid-light.src.js +5 -3
  872. package/themes/grid.js +1 -1
  873. package/themes/grid.js.map +1 -1
  874. package/themes/grid.src.js +5 -3
  875. package/themes/high-contrast-dark.js +1 -1
  876. package/themes/high-contrast-dark.src.js +1 -1
  877. package/themes/high-contrast-light.js +1 -1
  878. package/themes/high-contrast-light.src.js +1 -1
  879. package/themes/sand-signika.js +1 -1
  880. package/themes/sand-signika.src.js +1 -1
  881. package/themes/skies.js +1 -1
  882. package/themes/skies.src.js +1 -1
  883. package/themes/sunset.js +1 -1
  884. package/themes/sunset.src.js +1 -1
  885. package/es-modules/Core/Axis/MapAxis.js +0 -157
  886. package/es-modules/Core/Color/Palette.js +0 -82
  887. package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
  888. package/es-modules/Mixins/ColorSeries.js +0 -77
  889. package/es-modules/Mixins/DerivedSeries.js +0 -118
  890. package/es-modules/Mixins/DrawPoint.js +0 -81
  891. package/es-modules/Mixins/IndicatorRequired.js +0 -56
  892. package/es-modules/Mixins/MultipleLines.js +0 -181
  893. package/es-modules/Mixins/Navigation.js +0 -54
  894. package/es-modules/Mixins/NelderMead.js +0 -132
  895. package/es-modules/Mixins/Polygon.js +0 -259
  896. package/es-modules/Mixins/ReduceArray.js +0 -54
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highstock JS v9.2.1 (2021-08-19)
2
+ * @license Highstock JS v9.3.2 (2021-11-29)
3
3
  *
4
4
  * Advanced Highcharts Stock tools
5
5
  *
@@ -50,7 +50,6 @@
50
50
  *
51
51
  * @private
52
52
  * @mixin
53
- * @memberOf Annotation
54
53
  */
55
54
  var eventEmitterMixin = {
56
55
  /**
@@ -294,8 +293,7 @@
294
293
  * @param {Highcharts.AnnotationControllable} target
295
294
  * @return {Highcharts.PositionObject}
296
295
  */
297
- var extend = U.extend,
298
- merge = U.merge,
296
+ var merge = U.merge,
299
297
  pick = U.pick;
300
298
  /* eslint-disable no-invalid-this, valid-jsdoc */
301
299
  /**
@@ -363,7 +361,6 @@
363
361
  * @param {boolean} visible
364
362
  * Visibility of the control point.
365
363
  *
366
- * @return {void}
367
364
  */
368
365
  ControlPoint.prototype.setVisibility = function (visible) {
369
366
  this.graphic.attr('visibility', visible ? 'visible' : 'hidden');
@@ -413,7 +410,6 @@
413
410
  * @param {Partial<Highcharts.AnnotationControlPointOptionsObject>} userOptions
414
411
  * New options for the control point.
415
412
  *
416
- * @return {void}
417
413
  */
418
414
  ControlPoint.prototype.update = function (userOptions) {
419
415
  var chart = this.chart,
@@ -968,7 +964,8 @@
968
964
  */
969
965
  getPointsOptions: function () {
970
966
  var options = this.options;
971
- return (options.points || (options.point && splat(options.point)));
967
+ return (options.points ||
968
+ (options.point && splat(options.point)));
972
969
  },
973
970
  /**
974
971
  * Utility function for mapping item's options
@@ -1189,8 +1186,11 @@
1189
1186
  *
1190
1187
  * @param {number} dx translation for x coordinate
1191
1188
  * @param {number} dy translation for y coordinate
1189
+ * @param {boolean|undefined} translateSecondPoint If the shape has two
1190
+ * points attached to it, this option allows you to translate also
1191
+ * the second point
1192
1192
  */
1193
- translateShape: function (dx, dy) {
1193
+ translateShape: function (dx, dy, translateSecondPoint) {
1194
1194
  var chart = this.annotation.chart,
1195
1195
  // Annotation.options
1196
1196
  shapeOptions = this.annotation.userOptions,
@@ -1198,11 +1198,16 @@
1198
1198
  annotationIndex = chart.annotations.indexOf(this.annotation),
1199
1199
  chartOptions = chart.options.annotations[annotationIndex];
1200
1200
  this.translatePoint(dx, dy, 0);
1201
+ if (translateSecondPoint) {
1202
+ this.translatePoint(dx, dy, 1);
1203
+ }
1201
1204
  // Options stored in:
1202
1205
  // - chart (for exporting)
1203
1206
  // - current config (for redraws)
1204
- chartOptions[this.collection][this.index].point = this.options.point;
1205
- shapeOptions[this.collection][this.index].point = this.options.point;
1207
+ chartOptions[this.collection][this.index]
1208
+ .point = this.options.point;
1209
+ shapeOptions[this.collection][this.index]
1210
+ .point = this.options.point;
1206
1211
  },
1207
1212
  /**
1208
1213
  * Rotate a controllable.
@@ -1420,13 +1425,13 @@
1420
1425
  fill = itemOptions.fill,
1421
1426
  color = defined(fill) && fill !== 'none' ?
1422
1427
  fill :
1423
- itemOptions.stroke,
1424
- setMarker = function (markerType) {
1428
+ itemOptions.stroke;
1429
+ var setMarker = function (markerType) {
1425
1430
  var markerId = itemOptions[markerType],
1426
- def,
1427
- predefinedMarker,
1428
- key,
1429
- marker;
1431
+ def,
1432
+ predefinedMarker,
1433
+ key,
1434
+ marker;
1430
1435
  if (markerId) {
1431
1436
  for (key in defs) { // eslint-disable-line guard-for-in
1432
1437
  def = defs[key];
@@ -1441,13 +1446,13 @@
1441
1446
  }
1442
1447
  if (predefinedMarker) {
1443
1448
  marker = item[markerType] = chart.renderer
1444
- .addMarker((itemOptions.id || uniqueKey()) + '-' +
1445
- markerId, merge(predefinedMarker, { color: color }));
1449
+ .addMarker((itemOptions.id || uniqueKey()) + '-' + markerId, merge(predefinedMarker, { color: color }));
1446
1450
  item.attr(markerType, marker.getAttribute('id'));
1447
1451
  }
1448
1452
  }
1449
1453
  };
1450
- ['markerStart', 'markerEnd'].forEach(setMarker);
1454
+ ['markerStart', 'markerEnd']
1455
+ .forEach(setMarker);
1451
1456
  }
1452
1457
  };
1453
1458
  addEvent(Chart, 'afterGetContainer', function () {
@@ -1518,7 +1523,7 @@
1518
1523
  this.point = ControllableMixin.point;
1519
1524
  this.rotate = ControllableMixin.rotate;
1520
1525
  this.scale = ControllableMixin.scale;
1521
- this.setControlPointsVisibility = ControllableMixin.setControlPointsVisibility;
1526
+ this.setControlPointsVisibility = (ControllableMixin.setControlPointsVisibility);
1522
1527
  this.setMarkers = MarkerMixin.setItemMarkers;
1523
1528
  this.transform = ControllableMixin.transform;
1524
1529
  this.transformPoint = ControllableMixin.transformPoint;
@@ -1582,7 +1587,8 @@
1582
1587
  null;
1583
1588
  };
1584
1589
  ControllablePath.prototype.shouldBeDrawn = function () {
1585
- return (ControllableMixin.shouldBeDrawn.call(this) || Boolean(this.options.d));
1590
+ return (ControllableMixin.shouldBeDrawn.call(this) ||
1591
+ Boolean(this.options.d));
1586
1592
  };
1587
1593
  ControllablePath.prototype.render = function (parent) {
1588
1594
  var options = this.options,
@@ -1709,7 +1715,7 @@
1709
1715
  this.point = ControllableMixin.point;
1710
1716
  this.rotate = ControllableMixin.rotate;
1711
1717
  this.scale = ControllableMixin.scale;
1712
- this.setControlPointsVisibility = ControllableMixin.setControlPointsVisibility;
1718
+ this.setControlPointsVisibility = (ControllableMixin.setControlPointsVisibility);
1713
1719
  this.shouldBeDrawn = ControllableMixin.shouldBeDrawn;
1714
1720
  this.transform = ControllableMixin.transform;
1715
1721
  this.transformPoint = ControllableMixin.transformPoint;
@@ -1819,7 +1825,7 @@
1819
1825
  this.point = ControllableMixin.point;
1820
1826
  this.rotate = ControllableMixin.rotate;
1821
1827
  this.scale = ControllableMixin.scale;
1822
- this.setControlPointsVisibility = ControllableMixin.setControlPointsVisibility;
1828
+ this.setControlPointsVisibility = (ControllableMixin.setControlPointsVisibility);
1823
1829
  this.shouldBeDrawn = ControllableMixin.shouldBeDrawn;
1824
1830
  this.transform = ControllableMixin.transform;
1825
1831
  this.transformPoint = ControllableMixin.transformPoint;
@@ -1891,6 +1897,215 @@
1891
1897
 
1892
1898
  return ControllableCircle;
1893
1899
  });
1900
+ _registerModule(_modules, 'Extensions/Annotations/Controllables/ControllableEllipse.js', [_modules['Extensions/Annotations/Mixins/ControllableMixin.js'], _modules['Extensions/Annotations/Controllables/ControllablePath.js'], _modules['Core/Utilities.js']], function (ControllableMixin, ControllablePath, U) {
1901
+ /* *
1902
+ *
1903
+ * Author: Pawel Lysy
1904
+ *
1905
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
1906
+ *
1907
+ * */
1908
+ var merge = U.merge,
1909
+ defined = U.defined;
1910
+ /**
1911
+ * A controllable ellipse class.
1912
+ *
1913
+ * @requires modules/annotations
1914
+ *
1915
+ * @private
1916
+ * @class
1917
+ * @name Highcharts.AnnotationControllableEllipse
1918
+ *
1919
+ * @param {Highcharts.Annotation} annotation an annotation instance
1920
+ * @param {Highcharts.AnnotationsShapeOptions} options a shape's options
1921
+ * @param {number} index of the Ellipse
1922
+ */
1923
+ var ControllableEllipse = /** @class */ (function () {
1924
+ /* *
1925
+ *
1926
+ * Constructor
1927
+ *
1928
+ * */
1929
+ function ControllableEllipse(annotation, options, index) {
1930
+ /* *
1931
+ *
1932
+ * Properties
1933
+ *
1934
+ * */
1935
+ this.addControlPoints = ControllableMixin.addControlPoints;
1936
+ this.anchor = ControllableMixin.anchor;
1937
+ this.attr = ControllableMixin.attr;
1938
+ this.attrsFromOptions = ControllableMixin.attrsFromOptions;
1939
+ this.destroy = ControllableMixin.destroy;
1940
+ this.getPointsOptions = ControllableMixin.getPointsOptions;
1941
+ this.linkPoints = ControllableMixin.linkPoints;
1942
+ this.point = ControllableMixin.point;
1943
+ this.scale = ControllableMixin.scale;
1944
+ this.setControlPointsVisibility = (ControllableMixin.setControlPointsVisibility);
1945
+ this.shouldBeDrawn = ControllableMixin.shouldBeDrawn;
1946
+ this.transform = ControllableMixin.transform;
1947
+ this.translatePoint = ControllableMixin.translatePoint;
1948
+ this.transformPoint = ControllableMixin.transformPoint;
1949
+ /**
1950
+ * @type 'ellipse'
1951
+ */
1952
+ this.type = 'ellipse';
1953
+ this.init(annotation, options, index);
1954
+ this.collection = 'shapes';
1955
+ }
1956
+ /* *
1957
+ *
1958
+ * Functions
1959
+ *
1960
+ * */
1961
+ ControllableEllipse.prototype.init = function (annotation, options, index) {
1962
+ if (defined(options.yAxis)) {
1963
+ options.points.forEach(function (point) {
1964
+ point.yAxis = options.yAxis;
1965
+ });
1966
+ }
1967
+ if (defined(options.xAxis)) {
1968
+ options.points.forEach(function (point) {
1969
+ point.xAxis = options.xAxis;
1970
+ });
1971
+ }
1972
+ ControllableMixin.init.call(this, annotation, options, index);
1973
+ };
1974
+ /**
1975
+ *
1976
+ * Render the element
1977
+ * @param parent parent SVG element.
1978
+ */
1979
+ ControllableEllipse.prototype.render = function (parent) {
1980
+ this.graphic = this.annotation.chart.renderer.createElement('ellipse')
1981
+ .attr(this.attrsFromOptions(this.options))
1982
+ .add(parent);
1983
+ ControllableMixin.render.call(this);
1984
+ };
1985
+ /**
1986
+ * Translate the points.
1987
+ * Mostly used to handle dragging of the ellipse.
1988
+ */
1989
+ ControllableEllipse.prototype.translate = function (dx, dy) {
1990
+ ControllableMixin.translateShape.call(this, dx, dy, true);
1991
+ };
1992
+ /**
1993
+ * Get the distance from the line to the point.
1994
+ * @param point1 first point which is on the line
1995
+ * @param point2 second point
1996
+ * @param x0 point's x value from which you want to calculate the distance from
1997
+ * @param y0 point's y value from which you want to calculate the distance from
1998
+ */
1999
+ ControllableEllipse.prototype.getDistanceFromLine = function (point1, point2, x0, y0) {
2000
+ return Math.abs((point2.y - point1.y) * x0 - (point2.x - point1.x) * y0 +
2001
+ point2.x * point1.y - point2.y * point1.x) / Math.sqrt((point2.y - point1.y) * (point2.y - point1.y) +
2002
+ (point2.x - point1.x) * (point2.x - point1.x));
2003
+ };
2004
+ /**
2005
+ * The fuction calculates the svg attributes of the ellipse, and returns all
2006
+ * parameters neccessary to draw the ellipse.
2007
+ * @param position absolute position of the first point in points array
2008
+ * @param position2 absolute position of the second point in points array
2009
+ */
2010
+ ControllableEllipse.prototype.getAttrs = function (position, position2) {
2011
+ var x1 = position.x,
2012
+ y1 = position.y,
2013
+ x2 = position2.x,
2014
+ y2 = position2.y,
2015
+ cx = (x1 + x2) / 2,
2016
+ cy = (y1 + y2) / 2,
2017
+ rx = Math.sqrt((x1 - x2) * (x1 - x2) / 4 + (y1 - y2) * (y1 - y2) / 4),
2018
+ tan = (y2 - y1) / (x2 - x1);
2019
+ var angle = Math.atan(tan) * 180 / Math.PI;
2020
+ if (cx < x1) {
2021
+ angle += 180;
2022
+ }
2023
+ var ry = this.getRY();
2024
+ return { cx: cx, cy: cy, rx: rx, ry: ry, angle: angle };
2025
+ };
2026
+ /**
2027
+ * Get the value of minor radius of the ellipse.
2028
+ */
2029
+ ControllableEllipse.prototype.getRY = function () {
2030
+ var yAxis = this.getYAxis();
2031
+ return defined(yAxis) ?
2032
+ Math.abs(yAxis.toPixels(this.options.ry) - yAxis.toPixels(0)) :
2033
+ this.options.ry;
2034
+ };
2035
+ /**
2036
+ * get the yAxis object to which the ellipse is pinned.
2037
+ */
2038
+ ControllableEllipse.prototype.getYAxis = function () {
2039
+ var yAxisIndex = this.options.yAxis;
2040
+ return this.chart.yAxis[yAxisIndex];
2041
+ };
2042
+ /**
2043
+ * Get the absolute coordinates of the MockPoint
2044
+ * @param point MockPoint that is added through options
2045
+ */
2046
+ ControllableEllipse.prototype.getAbsolutePosition = function (point) {
2047
+ return this.anchor(point).absolutePosition;
2048
+ };
2049
+ /**
2050
+ *
2051
+ * Redraw the element
2052
+ * @param animation display an annimation
2053
+ */
2054
+ ControllableEllipse.prototype.redraw = function (animation) {
2055
+ var position = this.getAbsolutePosition(this.points[0]),
2056
+ position2 = this.getAbsolutePosition(this.points[1]),
2057
+ attrs = this.getAttrs(position,
2058
+ position2);
2059
+ if (position) {
2060
+ this.graphic[animation ? 'animate' : 'attr']({
2061
+ cx: attrs.cx,
2062
+ cy: attrs.cy,
2063
+ rx: attrs.rx,
2064
+ ry: attrs.ry,
2065
+ rotation: attrs.angle,
2066
+ rotationOriginX: attrs.cx,
2067
+ rotationOriginY: attrs.cy
2068
+ });
2069
+ }
2070
+ else {
2071
+ this.graphic.attr({
2072
+ x: 0,
2073
+ y: -9e9
2074
+ });
2075
+ }
2076
+ this.graphic.placed = Boolean(position);
2077
+ ControllableMixin.redraw.call(this, animation);
2078
+ };
2079
+ /**
2080
+ * Set the radius Y.
2081
+ *
2082
+ * @param {number} ry a radius in y direction to be set
2083
+ */
2084
+ ControllableEllipse.prototype.setYRadius = function (ry) {
2085
+ this.options.ry = ry;
2086
+ this.annotation.userOptions.shapes[0].ry = ry;
2087
+ this.annotation.options.shapes[0].ry = ry;
2088
+ };
2089
+ /* *
2090
+ *
2091
+ * Static Properties
2092
+ *
2093
+ * */
2094
+ /**
2095
+ * A map object which allows to map options attributes to element
2096
+ * attributes.
2097
+ *
2098
+ * @name Highcharts.AnnotationControllableEllipse.attrsMap
2099
+ * @type {Highcharts.Dictionary<string>}
2100
+ */
2101
+ ControllableEllipse.attrsMap = merge(ControllablePath.attrsMap, {
2102
+ ry: 'ry'
2103
+ });
2104
+ return ControllableEllipse;
2105
+ }());
2106
+
2107
+ return ControllableEllipse;
2108
+ });
1894
2109
  _registerModule(_modules, 'Extensions/Annotations/Controllables/ControllableLabel.js', [_modules['Extensions/Annotations/Mixins/ControllableMixin.js'], _modules['Core/FormatUtilities.js'], _modules['Extensions/Annotations/MockPoint.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Tooltip.js'], _modules['Core/Utilities.js']], function (ControllableMixin, F, MockPoint, SVGRenderer, Tooltip, U) {
1895
2110
  /* *
1896
2111
  *
@@ -1946,7 +2161,7 @@
1946
2161
  this.point = ControllableMixin.point;
1947
2162
  this.rotate = ControllableMixin.rotate;
1948
2163
  this.scale = ControllableMixin.scale;
1949
- this.setControlPointsVisibility = ControllableMixin.setControlPointsVisibility;
2164
+ this.setControlPointsVisibility = (ControllableMixin.setControlPointsVisibility);
1950
2165
  this.shouldBeDrawn = ControllableMixin.shouldBeDrawn;
1951
2166
  this.transform = ControllableMixin.transform;
1952
2167
  this.transformPoint = ControllableMixin.transformPoint;
@@ -2179,10 +2394,6 @@
2179
2394
  };
2180
2395
  /**
2181
2396
  * Returns the label position relative to its anchor.
2182
- *
2183
- * @param {Highcharts.AnnotationAnchorObject} anchor
2184
- *
2185
- * @return {Highcharts.PositionObject|null}
2186
2397
  */
2187
2398
  ControllableLabel.prototype.position = function (anchor) {
2188
2399
  var item = this.graphic,
@@ -2211,7 +2422,8 @@
2211
2422
  plotY: anchorRelativePosition.y,
2212
2423
  negative: point.negative,
2213
2424
  ttBelow: point.ttBelow,
2214
- h: (anchorRelativePosition.height || anchorRelativePosition.width)
2425
+ h: (anchorRelativePosition.height ||
2426
+ anchorRelativePosition.width)
2215
2427
  });
2216
2428
  }
2217
2429
  else if (itemOptions.positioner) {
@@ -2359,7 +2571,7 @@
2359
2571
  this.point = ControllableMixin.point;
2360
2572
  this.rotate = ControllableMixin.rotate;
2361
2573
  this.scale = ControllableMixin.scale;
2362
- this.setControlPointsVisibility = ControllableMixin.setControlPointsVisibility;
2574
+ this.setControlPointsVisibility = (ControllableMixin.setControlPointsVisibility);
2363
2575
  this.shouldBeDrawn = ControllableMixin.shouldBeDrawn;
2364
2576
  this.transform = ControllableMixin.transform;
2365
2577
  this.transformPoint = ControllableMixin.transformPoint;
@@ -2425,7 +2637,7 @@
2425
2637
 
2426
2638
  return ControllableImage;
2427
2639
  });
2428
- _registerModule(_modules, 'Extensions/Annotations/Annotations.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Chart/Chart.js'], _modules['Extensions/Annotations/Mixins/ControllableMixin.js'], _modules['Extensions/Annotations/Controllables/ControllableRect.js'], _modules['Extensions/Annotations/Controllables/ControllableCircle.js'], _modules['Extensions/Annotations/Controllables/ControllablePath.js'], _modules['Extensions/Annotations/Controllables/ControllableImage.js'], _modules['Extensions/Annotations/Controllables/ControllableLabel.js'], _modules['Extensions/Annotations/ControlPoint.js'], _modules['Extensions/Annotations/Mixins/EventEmitterMixin.js'], _modules['Core/Globals.js'], _modules['Extensions/Annotations/MockPoint.js'], _modules['Core/Pointer.js'], _modules['Core/Utilities.js'], _modules['Core/Color/Palette.js']], function (A, Chart, ControllableMixin, ControllableRect, ControllableCircle, ControllablePath, ControllableImage, ControllableLabel, ControlPoint, EventEmitterMixin, H, MockPoint, Pointer, U, palette) {
2640
+ _registerModule(_modules, 'Extensions/Annotations/Annotations.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Chart/Chart.js'], _modules['Extensions/Annotations/Mixins/ControllableMixin.js'], _modules['Extensions/Annotations/Controllables/ControllableRect.js'], _modules['Extensions/Annotations/Controllables/ControllableCircle.js'], _modules['Extensions/Annotations/Controllables/ControllableEllipse.js'], _modules['Extensions/Annotations/Controllables/ControllablePath.js'], _modules['Extensions/Annotations/Controllables/ControllableImage.js'], _modules['Extensions/Annotations/Controllables/ControllableLabel.js'], _modules['Extensions/Annotations/ControlPoint.js'], _modules['Extensions/Annotations/Mixins/EventEmitterMixin.js'], _modules['Core/Globals.js'], _modules['Extensions/Annotations/MockPoint.js'], _modules['Core/Pointer.js'], _modules['Core/Utilities.js']], function (A, Chart, ControllableMixin, ControllableRect, ControllableCircle, ControllableEllipse, ControllablePath, ControllableImage, ControllableLabel, ControlPoint, EventEmitterMixin, H, MockPoint, Pointer, U) {
2429
2641
  /* *
2430
2642
  *
2431
2643
  * (c) 2009-2021 Highsoft, Black Label
@@ -2647,7 +2859,10 @@
2647
2859
  };
2648
2860
  Annotation.prototype.addClipPaths = function () {
2649
2861
  this.setClipAxes();
2650
- if (this.clipXAxis && this.clipYAxis) {
2862
+ if (this.clipXAxis &&
2863
+ this.clipYAxis &&
2864
+ this.options.crop // #15399
2865
+ ) {
2651
2866
  this.clipRect = this.chart.renderer.clipRect(this.getClipBox());
2652
2867
  }
2653
2868
  };
@@ -2749,8 +2964,10 @@
2749
2964
  .add();
2750
2965
  this.shapesGroup = renderer
2751
2966
  .g('annotation-shapes')
2752
- .add(this.graphic)
2753
- .clip(this.chart.plotBoxClip);
2967
+ .add(this.graphic);
2968
+ if (this.options.crop) { // #15399
2969
+ this.shapesGroup.clip(this.chart.plotBoxClip);
2970
+ }
2754
2971
  this.labelsGroup = renderer
2755
2972
  .g('annotation-labels')
2756
2973
  .attr({
@@ -2836,7 +3053,6 @@
2836
3053
  * @param {Partial<Highcharts.AnnotationsOptions>} userOptions
2837
3054
  * New user options for the annotation.
2838
3055
  *
2839
- * @return {void}
2840
3056
  */
2841
3057
  Annotation.prototype.update = function (userOptions, redraw) {
2842
3058
  var chart = this.chart,
@@ -2866,7 +3082,11 @@
2866
3082
  /**
2867
3083
  * Initialisation of a single shape
2868
3084
  * @private
2869
- * @param {Object} shapeOptions - a confg object for a single shape
3085
+ * @param {Object} shapeOptions
3086
+ * a confg object for a single shape
3087
+ * @param {number} index
3088
+ * annotation may have many shapes, this is the shape's index saved in
3089
+ * shapes.index.
2870
3090
  */
2871
3091
  Annotation.prototype.initShape = function (shapeOptions, index) {
2872
3092
  var options = merge(this.options.shapeOptions, {
@@ -2972,6 +3192,7 @@
2972
3192
  Annotation.shapesMap = {
2973
3193
  'rect': ControllableRect,
2974
3194
  'circle': ControllableCircle,
3195
+ 'ellipse': ControllableEllipse,
2975
3196
  'path': ControllablePath,
2976
3197
  'image': ControllableImage
2977
3198
  };
@@ -3048,9 +3269,18 @@
3048
3269
  * Animation defer settings
3049
3270
  * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
3050
3271
  * @since 8.2.0
3051
- * @apioption annotations.animation
3052
3272
  */
3053
3273
  animation: {},
3274
+ /**
3275
+ * Whether to hide the part of the annotation
3276
+ * that is outside the plot area.
3277
+ *
3278
+ * @sample highcharts/annotations/label-crop-overflow/
3279
+ * Crop line annotation
3280
+ * @type {boolean}
3281
+ * @since 9.3.0
3282
+ */
3283
+ crop: true,
3054
3284
  /**
3055
3285
  * The animation delay time in milliseconds.
3056
3286
  * Set to `0` renders annotation immediately.
@@ -3115,7 +3345,7 @@
3115
3345
  *
3116
3346
  * @type {Highcharts.ColorString}
3117
3347
  */
3118
- borderColor: palette.neutralColor100,
3348
+ borderColor: "#000000" /* neutralColor100 */,
3119
3349
  /**
3120
3350
  * The border radius in pixels for the annotaiton's label.
3121
3351
  *
@@ -3410,6 +3640,32 @@
3410
3640
  * @requires modules/annotations
3411
3641
  */
3412
3642
  shapeOptions: {
3643
+ /**
3644
+ *
3645
+ * The radius of the shape in y direction.
3646
+ * Used for the ellipse.
3647
+ *
3648
+ * @sample highcharts/annotations/ellipse/
3649
+ * Ellipse annotation
3650
+ *
3651
+ * @type {number}
3652
+ * @apioption annotations.shapeOptions.ry
3653
+ **/
3654
+ /**
3655
+ *
3656
+ * The xAxis index to which the points should be attached.
3657
+ * Used for the ellipse.
3658
+ *
3659
+ * @type {number}
3660
+ * @apioption annotations.shapeOptions.xAxis
3661
+ **/
3662
+ /**
3663
+ * The yAxis index to which the points should be attached.
3664
+ * Used for the ellipse.
3665
+ *
3666
+ * @type {number}
3667
+ * @apioption annotations.shapeOptions.yAxis
3668
+ **/
3413
3669
  /**
3414
3670
  * The width of the shape.
3415
3671
  *
@@ -3429,11 +3685,15 @@
3429
3685
  * @apioption annotations.shapeOptions.height
3430
3686
  */
3431
3687
  /**
3432
- * The type of the shape, e.g. circle or rectangle.
3688
+ * The type of the shape.
3689
+ * Avaliable options are circle, rect and ellipse.
3433
3690
  *
3434
3691
  * @sample highcharts/annotations/shape/
3435
3692
  * Basic shape annotation
3436
3693
  *
3694
+ * @sample highcharts/annotations/ellipse/
3695
+ * Ellipse annotation
3696
+ *
3437
3697
  * @type {string}
3438
3698
  * @default rect
3439
3699
  * @apioption annotations.shapeOptions.type
@@ -3515,9 +3775,10 @@
3515
3775
  width: 10,
3516
3776
  height: 10,
3517
3777
  style: {
3518
- stroke: palette.neutralColor100,
3519
- 'stroke-width': 2,
3520
- fill: palette.backgroundColor
3778
+ cursor: 'pointer',
3779
+ fill: "#ffffff" /* backgroundColor */,
3780
+ stroke: "#000000" /* neutralColor100 */,
3781
+ 'stroke-width': 2
3521
3782
  },
3522
3783
  visible: false,
3523
3784
  events: {}
@@ -3568,7 +3829,8 @@
3568
3829
  ******************************************************************** */
3569
3830
  extend(chartProto, /** @lends Highcharts.Chart# */ {
3570
3831
  initAnnotation: function (userOptions) {
3571
- var Constructor = Annotation.types[userOptions.type] || Annotation,
3832
+ var Constructor = Annotation
3833
+ .types[userOptions.type] || Annotation,
3572
3834
  annotation = new Constructor(this,
3573
3835
  userOptions);
3574
3836
  this.annotations.push(annotation);
@@ -3580,7 +3842,8 @@
3580
3842
  * @param {Highcharts.AnnotationsOptions} options
3581
3843
  * The annotation options for the new, detailed annotation.
3582
3844
  * @param {boolean} [redraw]
3583
- *
3845
+ * @sample highcharts/annotations/add-annotation/
3846
+ * Add annotation
3584
3847
  * @return {Highcharts.Annotation} - The newly generated annotation.
3585
3848
  */
3586
3849
  addAnnotation: function (userOptions, redraw) {
@@ -3602,7 +3865,7 @@
3602
3865
  */
3603
3866
  removeAnnotation: function (idOrAnnotation) {
3604
3867
  var annotations = this.annotations,
3605
- annotation = idOrAnnotation.coll === 'annotations' ?
3868
+ annotation = (idOrAnnotation.coll === 'annotations') ?
3606
3869
  idOrAnnotation :
3607
3870
  find(annotations,
3608
3871
  function (annotation) {
@@ -3721,15 +3984,15 @@
3721
3984
  // Annotation placed on a exported data point
3722
3985
  // - add new column
3723
3986
  if (!wasAdded) {
3724
- event.dataRows.forEach(function (row, rowIndex) {
3987
+ event.dataRows.forEach(function (row) {
3725
3988
  if (!wasAdded &&
3726
3989
  row.xValues &&
3727
3990
  xAxisIndex !== void 0 &&
3728
3991
  annotationX === row.xValues[xAxisIndex]) {
3729
3992
  if (joinAnnotations &&
3730
3993
  row.length > startRowLength) {
3731
- row[row.length - 1] +=
3732
- annotationSeparator + annotationText_1;
3994
+ row[row.length - 1] += (annotationSeparator +
3995
+ annotationText_1);
3733
3996
  }
3734
3997
  else {
3735
3998
  row.push(annotationText_1);
@@ -3847,7 +4110,7 @@
3847
4110
 
3848
4111
  return Annotation;
3849
4112
  });
3850
- _registerModule(_modules, 'Mixins/Navigation.js', [], function () {
4113
+ _registerModule(_modules, 'Core/Chart/ChartNavigationComposition.js', [], function () {
3851
4114
  /**
3852
4115
  *
3853
4116
  * (c) 2010-2021 Paweł Fus
@@ -3857,56 +4120,91 @@
3857
4120
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3858
4121
  *
3859
4122
  * */
3860
- var chartNavigation = {
3861
- /**
3862
- * Initializes `chart.navigation` object which delegates `update()` methods
3863
- * to all other common classes (used in exporting and navigationBindings).
3864
- *
3865
- * @private
3866
- * @param {Highcharts.Chart} chart
3867
- * The chart instance.
3868
- * @return {void}
3869
- */
3870
- initUpdate: function (chart) {
3871
- if (!chart.navigation) {
3872
- chart.navigation = {
3873
- updates: [],
3874
- update: function (options,
3875
- redraw) {
3876
- this.updates.forEach(function (updateConfig) {
3877
- updateConfig.update.call(updateConfig.context,
3878
- options,
3879
- redraw);
3880
- });
3881
- }
3882
- };
3883
- }
3884
- },
3885
- /**
3886
- * Registers an `update()` method in the `chart.navigation` object.
4123
+ /* *
4124
+ *
4125
+ * Composition
4126
+ *
4127
+ * */
4128
+ var ChartNavigationComposition;
4129
+ (function (ChartNavigationComposition) {
4130
+ /* *
4131
+ *
4132
+ * Declarations
4133
+ *
4134
+ * */
4135
+ /* *
3887
4136
  *
4137
+ * Functions
4138
+ *
4139
+ * */
4140
+ /* eslint-disable valid-jsdoc */
4141
+ /**
3888
4142
  * @private
3889
- * @param {Highcharts.ChartNavigationUpdateFunction} update
3890
- * The `update()` method that will be called in `chart.update()`.
3891
- * @param {Highcharts.Chart} chart
3892
- * The chart instance. `update()` will use that as a context
3893
- * (`this`).
3894
- * @return {void}
3895
4143
  */
3896
- addUpdate: function (update, chart) {
4144
+ function compose(chart) {
3897
4145
  if (!chart.navigation) {
3898
- this.initUpdate(chart);
4146
+ chart.navigation = new Additions(chart);
3899
4147
  }
3900
- chart.navigation.updates.push({
3901
- update: update,
3902
- context: chart
3903
- });
4148
+ return chart;
3904
4149
  }
3905
- };
4150
+ ChartNavigationComposition.compose = compose;
4151
+ /* *
4152
+ *
4153
+ * Class
4154
+ *
4155
+ * */
4156
+ /**
4157
+ * Initializes `chart.navigation` object which delegates `update()` methods
4158
+ * to all other common classes (used in exporting and navigationBindings).
4159
+ * @private
4160
+ */
4161
+ var Additions = /** @class */ (function () {
4162
+ /* *
4163
+ *
4164
+ * Constructor
4165
+ *
4166
+ * */
4167
+ function Additions(chart) {
4168
+ this.updates = [];
4169
+ this.chart = chart;
4170
+ }
4171
+ /* *
4172
+ *
4173
+ * Functions
4174
+ *
4175
+ * */
4176
+ /**
4177
+ * Registers an `update()` method in the `chart.navigation` object.
4178
+ *
4179
+ * @private
4180
+ * @param {UpdateFunction} updateFn
4181
+ * The `update()` method that will be called in `chart.update()`.
4182
+ */
4183
+ Additions.prototype.addUpdate = function (updateFn) {
4184
+ this.chart.navigation.updates.push(updateFn);
4185
+ };
4186
+ /**
4187
+ * @private
4188
+ */
4189
+ Additions.prototype.update = function (options, redraw) {
4190
+ var _this = this;
4191
+ this.updates.forEach(function (updateFn) {
4192
+ updateFn.call(_this.chart, options, redraw);
4193
+ });
4194
+ };
4195
+ return Additions;
4196
+ }());
4197
+ ChartNavigationComposition.Additions = Additions;
4198
+ })(ChartNavigationComposition || (ChartNavigationComposition = {}));
4199
+ /* *
4200
+ *
4201
+ * Default Export
4202
+ *
4203
+ * */
3906
4204
 
3907
- return chartNavigation;
4205
+ return ChartNavigationComposition;
3908
4206
  });
3909
- _registerModule(_modules, 'Extensions/Annotations/NavigationBindings.js', [_modules['Extensions/Annotations/Annotations.js'], _modules['Core/Chart/Chart.js'], _modules['Mixins/Navigation.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Utilities.js']], function (Annotation, Chart, chartNavigationMixin, F, H, D, U) {
4207
+ _registerModule(_modules, 'Extensions/Annotations/NavigationBindings.js', [_modules['Extensions/Annotations/Annotations.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Chart/ChartNavigationComposition.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Utilities.js']], function (Annotation, Chart, ChartNavigationComposition, F, H, D, U) {
3910
4208
  /* *
3911
4209
  *
3912
4210
  * (c) 2009-2021 Highsoft, Black Label
@@ -4054,8 +4352,9 @@
4054
4352
  */
4055
4353
  getAssignedAxis: function (coords) {
4056
4354
  return coords.filter(function (coord) {
4057
- var axisMin = coord.axis.min,
4058
- axisMax = coord.axis.max,
4355
+ var extremes = coord.axis.getExtremes(),
4356
+ axisMin = extremes.min,
4357
+ axisMax = extremes.max,
4059
4358
  // Correct axis edges when axis has series
4060
4359
  // with pointRange (like column)
4061
4360
  minPointOffset = pick(coord.axis.minPointOffset, 0);
@@ -4126,7 +4425,9 @@
4126
4425
  navigation.eventsToUnbind.push(addEvent(subContainer, 'click', function (event) {
4127
4426
  var bindings = navigation.getButtonEvents(subContainer,
4128
4427
  event);
4129
- if (bindings && bindings.button.className.indexOf('highcharts-disabled-btn') === -1) {
4428
+ if (bindings &&
4429
+ bindings.button.className
4430
+ .indexOf('highcharts-disabled-btn') === -1) {
4130
4431
  navigation.bindingsButtonClick(bindings.button, bindings.events, event);
4131
4432
  }
4132
4433
  }));
@@ -4156,9 +4457,11 @@
4156
4457
  */
4157
4458
  NavigationBindings.prototype.initUpdate = function () {
4158
4459
  var navigation = this;
4159
- chartNavigationMixin.addUpdate(function (options) {
4460
+ ChartNavigationComposition
4461
+ .compose(this.chart).navigation
4462
+ .addUpdate(function (options) {
4160
4463
  navigation.update(options);
4161
- }, this.chart);
4464
+ });
4162
4465
  };
4163
4466
  /**
4164
4467
  * Hook for click on a button, method selcts/unselects buttons,
@@ -4170,7 +4473,7 @@
4170
4473
  * @param {Highcharts.HTMLDOMElement} [button]
4171
4474
  * Clicked button
4172
4475
  *
4173
- * @param {object} events
4476
+ * @param {Object} events
4174
4477
  * Events passed down from bindings (`init`, `start`, `step`, `end`)
4175
4478
  *
4176
4479
  * @param {Highcharts.PointerEventObject} clickEvent
@@ -4178,8 +4481,13 @@
4178
4481
  */
4179
4482
  NavigationBindings.prototype.bindingsButtonClick = function (button, events, clickEvent) {
4180
4483
  var navigation = this,
4181
- chart = navigation.chart;
4484
+ chart = navigation.chart,
4485
+ svgContainer = chart.renderer.boxWrapper;
4486
+ var shouldEventBeFired = true;
4182
4487
  if (navigation.selectedButtonElement) {
4488
+ if (navigation.selectedButtonElement.classList === button.classList) {
4489
+ shouldEventBeFired = false;
4490
+ }
4183
4491
  fireEvent(navigation, 'deselectButton', { button: navigation.selectedButtonElement });
4184
4492
  if (navigation.nextEvent) {
4185
4493
  // Remove in-progress annotations adders:
@@ -4190,15 +4498,24 @@
4190
4498
  navigation.mouseMoveEvent = navigation.nextEvent = false;
4191
4499
  }
4192
4500
  }
4193
- navigation.selectedButton = events;
4194
- navigation.selectedButtonElement = button;
4195
- fireEvent(navigation, 'selectButton', { button: button });
4196
- // Call "init" event, for example to open modal window
4197
- if (events.init) {
4198
- events.init.call(navigation, button, clickEvent);
4501
+ if (shouldEventBeFired) {
4502
+ navigation.selectedButton = events;
4503
+ navigation.selectedButtonElement = button;
4504
+ fireEvent(navigation, 'selectButton', { button: button });
4505
+ // Call "init" event, for example to open modal window
4506
+ if (events.init) {
4507
+ events.init.call(navigation, button, clickEvent);
4508
+ }
4509
+ if (events.start || events.steps) {
4510
+ chart.renderer.boxWrapper.addClass(PREFIX + 'draw-mode');
4511
+ }
4199
4512
  }
4200
- if (events.start || events.steps) {
4201
- chart.renderer.boxWrapper.addClass(PREFIX + 'draw-mode');
4513
+ else {
4514
+ chart.stockTools && chart.stockTools.toggleButtonAciveClass(button);
4515
+ svgContainer.removeClass(PREFIX + 'draw-mode');
4516
+ navigation.nextEvent = false;
4517
+ navigation.mouseMoveEvent = false;
4518
+ navigation.selectedButton = null;
4202
4519
  }
4203
4520
  };
4204
4521
  /**
@@ -4269,8 +4586,7 @@
4269
4586
  navigation.stepIndex++;
4270
4587
  if (selectedButton.steps[navigation.stepIndex]) {
4271
4588
  // If we have more steps, bind them one by one:
4272
- navigation.mouseMoveEvent = navigation.nextEvent =
4273
- selectedButton.steps[navigation.stepIndex];
4589
+ navigation.mouseMoveEvent = navigation.nextEvent = selectedButton.steps[navigation.stepIndex];
4274
4590
  }
4275
4591
  else {
4276
4592
  fireEvent(navigation, 'deselectButton', { button: navigation.selectedButtonElement });
@@ -4404,10 +4720,10 @@
4404
4720
  * @param {string} key
4405
4721
  * Option name, for example "visible" or "x", "y"
4406
4722
  *
4407
- * @param {object} parentEditables
4723
+ * @param {Object} parentEditables
4408
4724
  * Editables from NavigationBindings.annotationsEditable
4409
4725
  *
4410
- * @param {object} parent
4726
+ * @param {Object} parent
4411
4727
  * Where new options will be assigned
4412
4728
  */
4413
4729
  function traverse(option, key, parentEditables, parent) {
@@ -4448,7 +4764,9 @@
4448
4764
  parent[key] = nextParent;
4449
4765
  }
4450
4766
  objectEach(option, function (nestedOption, nestedKey) {
4451
- traverse(nestedOption, nestedKey, key === 0 ? parentEditables : nestedEditables[key], nextParent);
4767
+ traverse(nestedOption, nestedKey, key === 0 ?
4768
+ parentEditables :
4769
+ nestedEditables[key], nextParent);
4452
4770
  });
4453
4771
  }
4454
4772
  else {
@@ -4487,14 +4805,14 @@
4487
4805
  *
4488
4806
  * @function Highcharts.NavigationBindings#getClickedClassNames
4489
4807
  *
4490
- * @param {Highcharts.HTMLDOMElement}
4491
- * Container that event is bound to.
4808
+ * @param {Highcharts.HTMLDOMElement} container
4809
+ * Container that event is bound to.
4492
4810
  *
4493
4811
  * @param {global.Event} event
4494
- * Browser's event.
4812
+ * Browser's event.
4495
4813
  *
4496
4814
  * @return {Array<Array<string, Highcharts.HTMLDOMElement>>}
4497
- * Array of class names with corresponding elements
4815
+ * Array of class names with corresponding elements
4498
4816
  */
4499
4817
  NavigationBindings.prototype.getClickedClassNames = function (container, event) {
4500
4818
  var element = event.target,
@@ -4532,7 +4850,7 @@
4532
4850
  * @param {global.Event} event
4533
4851
  * Browser's event.
4534
4852
  *
4535
- * @return {object}
4853
+ * @return {Object}
4536
4854
  * Object with events (init, start, steps, and end)
4537
4855
  */
4538
4856
  NavigationBindings.prototype.getButtonEvents = function (container, event) {
@@ -4603,6 +4921,7 @@
4603
4921
  },
4604
4922
  // Simple shapes:
4605
4923
  circle: ['shapes'],
4924
+ ellipse: ['shapes'],
4606
4925
  verticalLine: [],
4607
4926
  label: ['labelOptions'],
4608
4927
  // Measure
@@ -4619,7 +4938,9 @@
4619
4938
  // Define non editable fields per annotation, for example Rectangle inherits
4620
4939
  // options from Measure, but crosshairs are not available
4621
4940
  NavigationBindings.annotationsNonEditable = {
4622
- rectangle: ['crosshairX', 'crosshairY', 'label']
4941
+ rectangle: ['crosshairX', 'crosshairY', 'labelOptions'],
4942
+ ellipse: ['labelOptions'],
4943
+ circle: ['labelOptions']
4623
4944
  };
4624
4945
  return NavigationBindings;
4625
4946
  }());
@@ -4696,10 +5017,10 @@
4696
5017
  if (annotation.options.type === 'measure') {
4697
5018
  // Manually disable crooshars according to
4698
5019
  // stroke width of the shape:
4699
- typeOptions.crosshairY.enabled =
4700
- typeOptions.crosshairY.strokeWidth !== 0;
4701
- typeOptions.crosshairX.enabled =
4702
- typeOptions.crosshairX.strokeWidth !== 0;
5020
+ typeOptions.crosshairY.enabled = (typeOptions.crosshairY
5021
+ .strokeWidth !== 0);
5022
+ typeOptions.crosshairX.enabled = (typeOptions.crosshairX
5023
+ .strokeWidth !== 0);
4703
5024
  }
4704
5025
  annotation.update(config);
4705
5026
  }
@@ -4736,7 +5057,6 @@
4736
5057
  * Configure the Popup strings in the chart. Requires the
4737
5058
  * `annotations.js` or `annotations-advanced.src.js` module to be
4738
5059
  * loaded.
4739
- *
4740
5060
  * @since 7.0.0
4741
5061
  * @product highcharts highstock
4742
5062
  */
@@ -4750,6 +5070,7 @@
4750
5070
  simpleShapes: 'Simple shapes',
4751
5071
  lines: 'Lines',
4752
5072
  circle: 'Circle',
5073
+ ellipse: 'Ellipse',
4753
5074
  rectangle: 'Rectangle',
4754
5075
  label: 'Label',
4755
5076
  shapeOptions: 'Shape options',
@@ -4810,9 +5131,16 @@
4810
5131
  * - `end`: last event to be called after last step event
4811
5132
  *
4812
5133
  * @type {Highcharts.Dictionary<Highcharts.NavigationBindingsOptionsObject>|*}
4813
- * @sample stock/stocktools/stocktools-thresholds
4814
- * Custom bindings in Highcharts Stock
5134
+ *
5135
+ * @sample {highstock} stock/stocktools/stocktools-thresholds
5136
+ * Custom bindings
5137
+ * @sample {highcharts} highcharts/annotations/bindings/
5138
+ * Simple binding
5139
+ * @sample {highcharts} highcharts/annotations/bindings-custom-annotation/
5140
+ * Custom annotation binding
5141
+ *
4815
5142
  * @since 7.0.0
5143
+ * @requires modules/annotations
4816
5144
  * @product highcharts highstock
4817
5145
  */
4818
5146
  bindings: {
@@ -4849,10 +5177,7 @@
4849
5177
  },
4850
5178
  r: 5
4851
5179
  }]
4852
- }, navigation
4853
- .annotationsOptions, navigation
4854
- .bindings
4855
- .circleAnnotation
5180
+ }, navigation.annotationsOptions, navigation.bindings.circleAnnotation
4856
5181
  .annotationsOptions));
4857
5182
  },
4858
5183
  /** @ignore-option */
@@ -4860,16 +5185,14 @@
4860
5185
  function (e, annotation) {
4861
5186
  var mockPointOpts = annotation.options.shapes[0]
4862
5187
  .point,
4863
- inverted = this.chart.inverted,
4864
- x,
4865
- y,
4866
5188
  distance;
4867
5189
  if (isNumber(mockPointOpts.xAxis) &&
4868
5190
  isNumber(mockPointOpts.yAxis)) {
4869
- x = this.chart.xAxis[mockPointOpts.xAxis]
4870
- .toPixels(mockPointOpts.x);
4871
- y = this.chart.yAxis[mockPointOpts.yAxis]
4872
- .toPixels(mockPointOpts.y);
5191
+ var inverted = this.chart.inverted,
5192
+ x = this.chart.xAxis[mockPointOpts.xAxis]
5193
+ .toPixels(mockPointOpts.x),
5194
+ y = this.chart.yAxis[mockPointOpts.yAxis]
5195
+ .toPixels(mockPointOpts.y);
4873
5196
  distance = Math.max(Math.sqrt(Math.pow(inverted ? y - e.chartX : x - e.chartX, 2) +
4874
5197
  Math.pow(inverted ? x - e.chartY : y - e.chartY, 2)), 5);
4875
5198
  }
@@ -4881,6 +5204,59 @@
4881
5204
  }
4882
5205
  ]
4883
5206
  },
5207
+ ellipseAnnotation: {
5208
+ className: 'highcharts-ellipse-annotation',
5209
+ start: function (e) {
5210
+ var coords = this.chart.pointer.getCoordinates(e),
5211
+ coordsX = this.utils.getAssignedAxis(coords.xAxis),
5212
+ coordsY = this.utils.getAssignedAxis(coords.yAxis),
5213
+ navigation = this.chart.options.navigation;
5214
+ if (!coordsX || !coordsY) {
5215
+ return;
5216
+ }
5217
+ return this.chart.addAnnotation(merge({
5218
+ langKey: 'ellipse',
5219
+ type: 'basicAnnotation',
5220
+ shapes: [
5221
+ {
5222
+ type: 'ellipse',
5223
+ xAxis: coordsX.axis.options.index,
5224
+ yAxis: coordsY.axis.options.index,
5225
+ points: [{
5226
+ x: coordsX.value,
5227
+ y: coordsY.value
5228
+ }, {
5229
+ x: coordsX.value,
5230
+ y: coordsY.value
5231
+ }],
5232
+ ry: 1
5233
+ }
5234
+ ]
5235
+ }, navigation.annotationsOptions, navigation.bindings.ellipseAnnotation
5236
+ .annotationOptions));
5237
+ },
5238
+ steps: [
5239
+ function (e, annotation) {
5240
+ var target = annotation.shapes[0],
5241
+ position = target.getAbsolutePosition(target.points[1]);
5242
+ target.translatePoint(e.chartX - position.x, e.chartY - position.y, 1);
5243
+ target.redraw(false);
5244
+ },
5245
+ function (e, annotation) {
5246
+ var target = annotation.shapes[0],
5247
+ position = target.getAbsolutePosition(target.points[0]),
5248
+ position2 = target.getAbsolutePosition(target.points[1]),
5249
+ newR = target.getDistanceFromLine(position,
5250
+ position2,
5251
+ e.chartX,
5252
+ e.chartY),
5253
+ yAxis = target.getYAxis(),
5254
+ newRY = Math.abs(yAxis.toValue(0) - yAxis.toValue(newR));
5255
+ target.setYRadius(newRY);
5256
+ target.redraw(false);
5257
+ }
5258
+ ]
5259
+ },
4884
5260
  /**
4885
5261
  * A rectangle annotation bindings. Includes `start` and one event
4886
5262
  * in `steps` array.
@@ -4914,7 +5290,8 @@
4914
5290
  { xAxis: xAxis, yAxis: yAxis, x: x, y: y },
4915
5291
  { xAxis: xAxis, yAxis: yAxis, x: x, y: y },
4916
5292
  { xAxis: xAxis, yAxis: yAxis, x: x, y: y },
4917
- { xAxis: xAxis, yAxis: yAxis, x: x, y: y }
5293
+ { xAxis: xAxis, yAxis: yAxis, x: x, y: y },
5294
+ { command: 'Z' }
4918
5295
  ]
4919
5296
  }]
4920
5297
  }, navigation
@@ -4999,7 +5376,7 @@
4999
5376
  * from a different server.
5000
5377
  *
5001
5378
  * @type {string}
5002
- * @default https://code.highcharts.com/9.2.1/gfx/stock-icons/
5379
+ * @default https://code.highcharts.com/9.3.2/gfx/stock-icons/
5003
5380
  * @since 7.1.3
5004
5381
  * @apioption navigation.iconsURL
5005
5382
  */
@@ -5055,6 +5432,7 @@
5055
5432
  * @extends annotations
5056
5433
  * @exclude crookedLine, elliottWave, fibonacci, infinityLine,
5057
5434
  * measure, pitchfork, tunnel, verticalLine, basicAnnotation
5435
+ * @requires modules/annotations
5058
5436
  * @apioption navigation.annotationsOptions
5059
5437
  */
5060
5438
  annotationsOptions: {
@@ -5081,28 +5459,29 @@
5081
5459
  if (chart.navigationBindings &&
5082
5460
  chart.navigationBindings.container &&
5083
5461
  chart.navigationBindings.container[0]) {
5084
- // Get the HTML element coresponding to the
5085
- // className taken from StockToolsBindings.
5086
- var buttonNode = chart.navigationBindings.container[0].querySelectorAll('.' + key);
5462
+ // Get the HTML element coresponding to the className taken
5463
+ // from StockToolsBindings.
5464
+ var buttonNode = chart.navigationBindings.container[0]
5465
+ .querySelectorAll('.' + key);
5087
5466
  if (buttonNode) {
5088
5467
  for (var i = 0; i < buttonNode.length; i++) {
5089
- var button = buttonNode[i];
5468
+ var button = buttonNode[i],
5469
+ cls = button.className;
5090
5470
  if (value.noDataState === 'normal') {
5091
- // If button has noDataState: 'normal',
5092
- // and has disabledClassName,
5093
- // remove this className.
5094
- if (button.className.indexOf(disabledClassName) !== -1) {
5471
+ // If button has noDataState: 'normal', and has
5472
+ // disabledClassName, remove this className.
5473
+ if (cls.indexOf(disabledClassName) !== -1) {
5095
5474
  button.classList.remove(disabledClassName);
5096
5475
  }
5097
5476
  }
5098
5477
  else if (!buttonsEnabled_1) {
5099
- if (button.className.indexOf(disabledClassName) === -1) {
5478
+ if (cls.indexOf(disabledClassName) === -1) {
5100
5479
  button.className += ' ' + disabledClassName;
5101
5480
  }
5102
5481
  }
5103
5482
  else {
5104
5483
  // Enable all buttons by deleting the className.
5105
- if (button.className.indexOf(disabledClassName) !== -1) {
5484
+ if (cls.indexOf(disabledClassName) !== -1) {
5106
5485
  button.classList.remove(disabledClassName);
5107
5486
  }
5108
5487
  }
@@ -5118,7 +5497,7 @@
5118
5497
 
5119
5498
  return NavigationBindings;
5120
5499
  });
5121
- _registerModule(_modules, 'Stock/StockToolsBindings.js', [_modules['Core/Globals.js'], _modules['Extensions/Annotations/NavigationBindings.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Series/Series.js'], _modules['Core/Utilities.js'], _modules['Core/Color/Palette.js']], function (H, NavigationBindings, D, Series, U, palette) {
5500
+ _registerModule(_modules, 'Stock/StockToolsBindings.js', [_modules['Core/DefaultOptions.js'], _modules['Core/Globals.js'], _modules['Extensions/Annotations/NavigationBindings.js'], _modules['Core/Series/Series.js'], _modules['Core/Utilities.js']], function (D, H, NavigationBindings, Series, U) {
5122
5501
  /**
5123
5502
  *
5124
5503
  * Events generator for Stock tools
@@ -5238,34 +5617,35 @@
5238
5617
  };
5239
5618
  };
5240
5619
  bindingsUtils.indicatorsWithAxes = [
5620
+ 'apo',
5241
5621
  'ad',
5622
+ 'aroon',
5623
+ 'aroonoscillator',
5242
5624
  'atr',
5625
+ 'ao',
5243
5626
  'cci',
5627
+ 'chaikin',
5244
5628
  'cmf',
5245
- 'disparityindex',
5246
5629
  'cmo',
5630
+ 'disparityindex',
5247
5631
  'dmi',
5632
+ 'dpo',
5633
+ 'linearRegressionAngle',
5634
+ 'linearRegressionIntercept',
5635
+ 'linearRegressionSlope',
5636
+ 'klinger',
5248
5637
  'macd',
5249
5638
  'mfi',
5639
+ 'momentum',
5640
+ 'natr',
5641
+ 'obv',
5642
+ 'ppo',
5250
5643
  'roc',
5251
5644
  'rsi',
5252
- 'ao',
5253
- 'aroon',
5254
- 'aroonoscillator',
5645
+ 'slowstochastic',
5646
+ 'stochastic',
5255
5647
  'trix',
5256
- 'apo',
5257
- 'dpo',
5258
- 'ppo',
5259
- 'natr',
5260
- 'obv',
5261
- 'williamsr',
5262
- 'stochastic',
5263
- 'slowstochastic',
5264
- 'linearRegression',
5265
- 'linearRegressionSlope',
5266
- 'linearRegressionIntercept',
5267
- 'linearRegressionAngle',
5268
- 'klinger'
5648
+ 'williamsr'
5269
5649
  ];
5270
5650
  bindingsUtils.manageIndicators = function (data) {
5271
5651
  var navigation = this,
@@ -5453,7 +5833,7 @@
5453
5833
  * @private
5454
5834
  * @function bindingsUtils.isLastPriceEnabled
5455
5835
  *
5456
- * @param {array} series
5836
+ * @param {Array} series
5457
5837
  * Array of series.
5458
5838
  *
5459
5839
  * @return {boolean}
@@ -5551,7 +5931,8 @@
5551
5931
  if (!isNumber(height)) {
5552
5932
  // Check if the previous axis is the
5553
5933
  // indicator axis (every indicator inherits from sma)
5554
- height = yAxes[index - 1].series.every(function (s) { return s.is('sma'); }) ?
5934
+ height = yAxes[index - 1].series
5935
+ .every(function (s) { return s.is('sma'); }) ?
5555
5936
  previousAxisHeight : defaultHeight / 100;
5556
5937
  }
5557
5938
  if (!isNumber(top)) {
@@ -5979,7 +6360,8 @@
5979
6360
  y: coordsY.value
5980
6361
  }]
5981
6362
  }
5982
- }, navigation.annotationsOptions, navigation.bindings.arrowInfinityLine.annotationsOptions);
6363
+ }, navigation.annotationsOptions, navigation.bindings.arrowInfinityLine
6364
+ .annotationsOptions);
5983
6365
  return this.chart.addAnnotation(options);
5984
6366
  },
5985
6367
  /** @ignore-option */
@@ -6122,7 +6504,7 @@
6122
6504
  *
6123
6505
  * @type {Highcharts.NavigationBindingsOptionsObject}
6124
6506
  * @product highstock
6125
- * @default {"className": "highcharts-crooked3", "start": function() {}, "steps": [function() {}, function() {}, function() {}, function() {}], "annotationsOptions": {}}
6507
+ * @default {"className": "highcharts-crooked5", "start": function() {}, "steps": [function() {}, function() {}, function() {}, function() {}], "annotationsOptions": {}}
6126
6508
  */
6127
6509
  crooked5: {
6128
6510
  /** @ignore-option */
@@ -6141,7 +6523,7 @@
6141
6523
  y = coordsY.value,
6142
6524
  navigation = this.chart.options.navigation,
6143
6525
  options = merge({
6144
- langKey: 'crookedLine',
6526
+ langKey: 'crooked5',
6145
6527
  type: 'crookedLine',
6146
6528
  typeOptions: {
6147
6529
  xAxis: coordsX.axis.options.index,
@@ -6215,7 +6597,7 @@
6215
6597
  },
6216
6598
  labelOptions: {
6217
6599
  style: {
6218
- color: palette.neutralColor60
6600
+ color: "#666666" /* neutralColor60 */
6219
6601
  }
6220
6602
  }
6221
6603
  },
@@ -6277,7 +6659,7 @@
6277
6659
  },
6278
6660
  labelOptions: {
6279
6661
  style: {
6280
- color: palette.neutralColor60
6662
+ color: "#666666" /* neutralColor60 */
6281
6663
  }
6282
6664
  }
6283
6665
  },
@@ -6329,23 +6711,23 @@
6329
6711
  y: y },
6330
6712
  crosshairX: {
6331
6713
  strokeWidth: 1,
6332
- stroke: palette.neutralColor100
6714
+ stroke: "#000000" /* neutralColor100 */
6333
6715
  },
6334
6716
  crosshairY: {
6335
6717
  enabled: false,
6336
6718
  strokeWidth: 0,
6337
- stroke: palette.neutralColor100
6719
+ stroke: "#000000" /* neutralColor100 */
6338
6720
  },
6339
6721
  background: {
6340
6722
  width: 0,
6341
6723
  height: 0,
6342
6724
  strokeWidth: 0,
6343
- stroke: palette.backgroundColor
6725
+ stroke: "#ffffff" /* backgroundColor */
6344
6726
  }
6345
6727
  },
6346
6728
  labelOptions: {
6347
6729
  style: {
6348
- color: palette.neutralColor60
6730
+ color: "#666666" /* neutralColor60 */
6349
6731
  }
6350
6732
  }
6351
6733
  },
@@ -6394,22 +6776,22 @@
6394
6776
  crosshairX: {
6395
6777
  enabled: false,
6396
6778
  strokeWidth: 0,
6397
- stroke: palette.neutralColor100
6779
+ stroke: "#000000" /* neutralColor100 */
6398
6780
  },
6399
6781
  crosshairY: {
6400
6782
  strokeWidth: 1,
6401
- stroke: palette.neutralColor100
6783
+ stroke: "#000000" /* neutralColor100 */
6402
6784
  },
6403
6785
  background: {
6404
6786
  width: 0,
6405
6787
  height: 0,
6406
6788
  strokeWidth: 0,
6407
- stroke: palette.backgroundColor
6789
+ stroke: "#ffffff" /* backgroundColor */
6408
6790
  }
6409
6791
  },
6410
6792
  labelOptions: {
6411
6793
  style: {
6412
- color: palette.neutralColor60
6794
+ color: "#666666" /* neutralColor60 */
6413
6795
  }
6414
6796
  }
6415
6797
  },
@@ -6462,16 +6844,16 @@
6462
6844
  },
6463
6845
  crosshairX: {
6464
6846
  strokeWidth: 1,
6465
- stroke: palette.neutralColor100
6847
+ stroke: "#000000" /* neutralColor100 */
6466
6848
  },
6467
6849
  crosshairY: {
6468
6850
  strokeWidth: 1,
6469
- stroke: palette.neutralColor100
6851
+ stroke: "#000000" /* neutralColor100 */
6470
6852
  }
6471
6853
  },
6472
6854
  labelOptions: {
6473
6855
  style: {
6474
- color: palette.neutralColor60
6856
+ color: "#666666" /* neutralColor60 */
6475
6857
  }
6476
6858
  }
6477
6859
  },
@@ -6524,7 +6906,7 @@
6524
6906
  },
6525
6907
  labelOptions: {
6526
6908
  style: {
6527
- color: palette.neutralColor60
6909
+ color: "#666666" /* neutralColor60 */
6528
6910
  }
6529
6911
  }
6530
6912
  },
@@ -6577,7 +6959,8 @@
6577
6959
  }
6578
6960
  },
6579
6961
  navigation.annotationsOptions,
6580
- navigation.bindings.parallelChannel.annotationsOptions);
6962
+ navigation.bindings.parallelChannel
6963
+ .annotationsOptions);
6581
6964
  return this.chart.addAnnotation(options);
6582
6965
  },
6583
6966
  /** @ignore-option */
@@ -6618,7 +7001,7 @@
6618
7001
  y: coordsY.value,
6619
7002
  controlPoint: {
6620
7003
  style: {
6621
- fill: palette.negativeColor
7004
+ fill: "#f21313" /* negativeColor */
6622
7005
  }
6623
7006
  }
6624
7007
  }, { x: x, y: y },
@@ -6682,7 +7065,7 @@
6682
7065
  },
6683
7066
  labelOptions: {
6684
7067
  style: {
6685
- color: palette.neutralColor60,
7068
+ color: "#666666" /* neutralColor60 */,
6686
7069
  fontSize: '11px'
6687
7070
  }
6688
7071
  },
@@ -6705,6 +7088,44 @@
6705
7088
  * @product highstock
6706
7089
  * @default {"className": "highcharts-vertical-label", "start": function() {}, "annotationsOptions": {}}
6707
7090
  */
7091
+ timeCycles: {
7092
+ className: 'highcharts-time-cycles',
7093
+ start: function (e) {
7094
+ var closestPoint = bindingsUtils.attractToPoint(e,
7095
+ this.chart),
7096
+ navigation = this.chart.options.navigation,
7097
+ options,
7098
+ annotation;
7099
+ // Exit if clicked out of axes area
7100
+ if (!closestPoint) {
7101
+ return;
7102
+ }
7103
+ options = merge({
7104
+ langKey: 'timeCycles',
7105
+ type: 'timeCycles',
7106
+ typeOptions: {
7107
+ xAxis: closestPoint.xAxis,
7108
+ yAxis: closestPoint.yAxis,
7109
+ points: [{
7110
+ x: closestPoint.x
7111
+ }, {
7112
+ x: closestPoint.x
7113
+ }],
7114
+ line: {
7115
+ stroke: 'rgba(0, 0, 0, 0.75)',
7116
+ fill: 'transparent',
7117
+ strokeWidth: 2
7118
+ }
7119
+ }
7120
+ }, navigation.annotationsOptions, navigation.bindings.timeCycles.annotationsOptions);
7121
+ annotation = this.chart.addAnnotation(options);
7122
+ annotation.options.events.click.call(annotation, {});
7123
+ return annotation;
7124
+ },
7125
+ steps: [
7126
+ bindingsUtils.updateNthPoint(1)
7127
+ ]
7128
+ },
6708
7129
  verticalLabel: {
6709
7130
  /** @ignore-option */
6710
7131
  className: 'highcharts-vertical-label',
@@ -6736,7 +7157,7 @@
6736
7157
  },
6737
7158
  labelOptions: {
6738
7159
  style: {
6739
- color: palette.neutralColor60,
7160
+ color: "#666666" /* neutralColor60 */,
6740
7161
  fontSize: '11px'
6741
7162
  }
6742
7163
  },
@@ -6752,8 +7173,8 @@
6752
7173
  /**
6753
7174
  * A vertical arrow annotation bindings. Includes `start` event. On click,
6754
7175
  * finds the closest point and marks it with an arrow.
6755
- * `${palette.positiveColor}` is the color of the arrow when
6756
- * pointing from above and `${palette.negativeColor}`
7176
+ * `#06b535` is the color of the arrow when
7177
+ * pointing from above and `#f21313`
6757
7178
  * when pointing from below the point.
6758
7179
  *
6759
7180
  * @type {Highcharts.NavigationBindingsOptionsObject}
@@ -6792,7 +7213,7 @@
6792
7213
  connector: {
6793
7214
  fill: 'none',
6794
7215
  stroke: closestPoint.below ?
6795
- palette.negativeColor : palette.positiveColor
7216
+ "#f21313" /* negativeColor */ : "#06b535" /* positiveColor */
6796
7217
  }
6797
7218
  },
6798
7219
  shapeOptions: {
@@ -6804,6 +7225,67 @@
6804
7225
  annotation.options.events.click.call(annotation, {});
6805
7226
  }
6806
7227
  },
7228
+ /**
7229
+ * The Fibonacci Time Zones annotation bindings. Includes `start` and one
7230
+ * event in `steps` array.
7231
+ *
7232
+ * @type {Highcharts.NavigationBindingsOptionsObject}
7233
+ * @product highstock
7234
+ * @default {"className": "highcharts-fibonacci-time-zones", "start": function() {}, "steps": [function() {}], "annotationsOptions": {}}
7235
+ */
7236
+ fibonacciTimeZones: {
7237
+ /** @ignore-option */
7238
+ className: 'highcharts-fibonacci-time-zones',
7239
+ // eslint-disable-next-line valid-jsdoc
7240
+ /** @ignore-option */
7241
+ start: function (e) {
7242
+ var coords = this.chart.pointer.getCoordinates(e),
7243
+ coordsX = this.utils.getAssignedAxis(coords.xAxis),
7244
+ coordsY = this.utils.getAssignedAxis(coords.yAxis);
7245
+ // Exit if clicked out of axes area
7246
+ if (!coordsX || !coordsY) {
7247
+ return;
7248
+ }
7249
+ var navigation = this.chart.options.navigation,
7250
+ options = merge({
7251
+ type: 'fibonacciTimeZones',
7252
+ langKey: 'fibonacciTimeZones',
7253
+ typeOptions: {
7254
+ xAxis: coordsX.axis.options.index,
7255
+ yAxis: coordsY.axis.options.index,
7256
+ points: [{
7257
+ x: coordsX.value
7258
+ }]
7259
+ }
7260
+ },
7261
+ navigation.annotationsOptions,
7262
+ navigation.bindings.fibonacciTimeZones
7263
+ .annotationsOptions);
7264
+ return this.chart.addAnnotation(options);
7265
+ },
7266
+ /** @ignore-option */
7267
+ // eslint-disable-next-line valid-jsdoc
7268
+ steps: [
7269
+ function (e, annotation) {
7270
+ var mockPointOpts = annotation.options.typeOptions.points,
7271
+ x = mockPointOpts && mockPointOpts[0].x,
7272
+ coords = this.chart.pointer.getCoordinates(e),
7273
+ coordsX = this.utils.getAssignedAxis(coords.xAxis),
7274
+ coordsY = this.utils.getAssignedAxis(coords.yAxis);
7275
+ annotation.update({
7276
+ typeOptions: {
7277
+ xAxis: coordsX.axis.options.index,
7278
+ yAxis: coordsY.axis.options.index,
7279
+ points: [{
7280
+ x: x
7281
+ }, {
7282
+ x: coordsX.value
7283
+ }]
7284
+ }
7285
+ });
7286
+ }
7287
+ ]
7288
+ },
6807
7289
  // Flag types:
6808
7290
  /**
6809
7291
  * A flag series bindings. Includes `start` event. On click, finds the
@@ -7007,6 +7489,23 @@
7007
7489
  fireEvent(this, 'deselectButton', { button: button });
7008
7490
  }
7009
7491
  },
7492
+ /**
7493
+ * Change main series to `'hlc'` type.
7494
+ *
7495
+ * @type {Highcharts.NavigationBindingsOptionsObject}
7496
+ * @product highstock
7497
+ * @default {"className": "highcharts-series-type-hlc", "init": function () {}}
7498
+ */
7499
+ seriesTypeHLC: {
7500
+ className: 'highcharts-series-type-hlc',
7501
+ init: function (button) {
7502
+ this.chart.series[0].update({
7503
+ type: 'hlc',
7504
+ useOhlcData: true
7505
+ });
7506
+ fireEvent(this, 'deselectButton', { button: button });
7507
+ }
7508
+ },
7010
7509
  /**
7011
7510
  * Changes main series to `'hollowcandlestick'` type.
7012
7511
  *
@@ -7069,7 +7568,10 @@
7069
7568
  series.forEach(function (series) {
7070
7569
  series.update({
7071
7570
  lastPrice: { enabled: !priceIndicatorEnabled },
7072
- lastVisiblePrice: { enabled: !priceIndicatorEnabled, label: { enabled: true } }
7571
+ lastVisiblePrice: {
7572
+ enabled: !priceIndicatorEnabled,
7573
+ label: { enabled: true }
7574
+ }
7073
7575
  }, false);
7074
7576
  });
7075
7577
  chart.redraw();
@@ -7258,10 +7760,12 @@
7258
7760
  typeOHLC: 'OHLC',
7259
7761
  typeLine: 'Line',
7260
7762
  typeCandlestick: 'Candlestick',
7763
+ typeHLC: 'HLC',
7261
7764
  typeHollowCandlestick: 'Hollow Candlestick',
7262
7765
  typeHeikinAshi: 'Heikin Ashi',
7263
7766
  // Basic shapes:
7264
7767
  circle: 'Circle',
7768
+ ellipse: 'Ellipse',
7265
7769
  label: 'Label',
7266
7770
  rectangle: 'Rectangle',
7267
7771
  // Flags:
@@ -7279,7 +7783,7 @@
7279
7783
  ray: 'Ray',
7280
7784
  arrowRay: 'Arrow ray',
7281
7785
  line: 'Line',
7282
- arrowLine: 'Arrow line',
7786
+ arrowInfinityLine: 'Arrow line',
7283
7787
  horizontalLine: 'Horizontal line',
7284
7788
  verticalLine: 'Vertical line',
7285
7789
  infinityLine: 'Infinity line',
@@ -7294,14 +7798,17 @@
7294
7798
  verticalArrow: 'Vertical arrow',
7295
7799
  // Advanced:
7296
7800
  fibonacci: 'Fibonacci',
7801
+ fibonacciTimeZones: 'Fibonacci Time Zones',
7297
7802
  pitchfork: 'Pitchfork',
7298
- parallelChannel: 'Parallel channel'
7803
+ parallelChannel: 'Parallel channel',
7804
+ timeCycles: 'Time Cycles'
7299
7805
  }
7300
7806
  },
7301
7807
  navigation: {
7302
7808
  popup: {
7303
7809
  // Annotations:
7304
7810
  circle: 'Circle',
7811
+ ellipse: 'Ellipse',
7305
7812
  rectangle: 'Rectangle',
7306
7813
  label: 'Label',
7307
7814
  segment: 'Segment',
@@ -7309,7 +7816,7 @@
7309
7816
  ray: 'Ray',
7310
7817
  arrowRay: 'Arrow ray',
7311
7818
  line: 'Line',
7312
- arrowLine: 'Arrow line',
7819
+ arrowInfinityLine: 'Arrow line',
7313
7820
  horizontalLine: 'Horizontal line',
7314
7821
  verticalLine: 'Vertical line',
7315
7822
  crooked3: 'Crooked 3 line',
@@ -7320,6 +7827,7 @@
7320
7827
  verticalLabel: 'Vertical label',
7321
7828
  verticalArrow: 'Vertical arrow',
7322
7829
  fibonacci: 'Fibonacci',
7830
+ fibonacciTimeZones: 'Fibonacci Time Zones',
7323
7831
  pitchfork: 'Pitchfork',
7324
7832
  parallelChannel: 'Parallel channel',
7325
7833
  infinityLine: 'Infinity line',
@@ -7327,6 +7835,7 @@
7327
7835
  measureXY: 'Measure XY',
7328
7836
  measureX: 'Measure X',
7329
7837
  measureY: 'Measure Y',
7838
+ timeCycles: 'Time Cycles',
7330
7839
  // Flags:
7331
7840
  flags: 'Flags',
7332
7841
  // GUI elements:
@@ -7344,7 +7853,11 @@
7344
7853
  crosshairY: 'Crosshair Y',
7345
7854
  tunnel: 'Tunnel',
7346
7855
  background: 'Background',
7856
+ // Indicators' searchbox (#16019):
7857
+ noFilterMatch: 'No match',
7347
7858
  // Indicators' params (#15170):
7859
+ searchIndicators: 'Search Indicators',
7860
+ clearFilter: '\u2715 clear filter',
7348
7861
  index: 'Index',
7349
7862
  period: 'Period',
7350
7863
  periods: 'Periods',
@@ -7372,7 +7885,346 @@
7372
7885
  factor: 'Factor',
7373
7886
  fastAvgPeriod: 'Fast average period',
7374
7887
  slowAvgPeriod: 'Slow average period',
7375
- average: 'Average'
7888
+ average: 'Average',
7889
+ /**
7890
+ * Configure the aliases for indicator names.
7891
+ *
7892
+ * @product highstock
7893
+ * @since 9.3.0
7894
+ */
7895
+ indicatorAliases: {
7896
+ // Overlays
7897
+ /**
7898
+ * Acceleration Bands alias.
7899
+ *
7900
+ * @default ['Acceleration Bands']
7901
+ * @type {Array<string>}
7902
+ */
7903
+ abands: ['Acceleration Bands'],
7904
+ /**
7905
+ * Bollinger Bands alias.
7906
+ *
7907
+ * @default ['Bollinger Bands']
7908
+ * @type {Array<string>}
7909
+ */
7910
+ bb: ['Bollinger Bands'],
7911
+ /**
7912
+ * Double Exponential Moving Average alias.
7913
+ *
7914
+ * @default ['Double Exponential Moving Average']
7915
+ * @type {Array<string>}
7916
+ */
7917
+ dema: ['Double Exponential Moving Average'],
7918
+ /**
7919
+ * Exponential Moving Average alias.
7920
+ *
7921
+ * @default ['Exponential Moving Average']
7922
+ * @type {Array<string>}
7923
+ */
7924
+ ema: ['Exponential Moving Average'],
7925
+ /**
7926
+ * Ichimoku Kinko Hyo alias.
7927
+ *
7928
+ * @default ['Ichimoku Kinko Hyo']
7929
+ * @type {Array<string>}
7930
+ */
7931
+ ikh: ['Ichimoku Kinko Hyo'],
7932
+ /**
7933
+ * Keltner Channels alias.
7934
+ *
7935
+ * @default ['Keltner Channels']
7936
+ * @type {Array<string>}
7937
+ */
7938
+ keltnerchannels: ['Keltner Channels'],
7939
+ /**
7940
+ * Linear Regression alias.
7941
+ *
7942
+ * @default ['Linear Regression']
7943
+ * @type {Array<string>}
7944
+ */
7945
+ linearRegression: ['Linear Regression'],
7946
+ /**
7947
+ * Pivot Points alias.
7948
+ *
7949
+ * @default ['Pivot Points']
7950
+ * @type {Array<string>}
7951
+ */
7952
+ pivotpoints: ['Pivot Points'],
7953
+ /**
7954
+ * Price Channel alias.
7955
+ *
7956
+ * @default ['Price Channel']
7957
+ * @type {Array<string>}
7958
+ */
7959
+ pc: ['Price Channel'],
7960
+ /**
7961
+ * Price Envelopes alias.
7962
+ *
7963
+ * @default ['Price Envelopes']
7964
+ * @type {Array<string>}
7965
+ */
7966
+ priceenvelopes: ['Price Envelopes'],
7967
+ /**
7968
+ * Parabolic SAR alias.
7969
+ *
7970
+ * @default ['Parabolic SAR']
7971
+ * @type {Array<string>}
7972
+ */
7973
+ psar: ['Parabolic SAR'],
7974
+ /**
7975
+ * Simple Moving Average alias.
7976
+ *
7977
+ * @default ['Simple Moving Average']
7978
+ * @type {Array<string>}
7979
+ */
7980
+ sma: ['Simple Moving Average'],
7981
+ /**
7982
+ * Super Trend alias.
7983
+ *
7984
+ * @default ['Super Trend']
7985
+ * @type {Array<string>}
7986
+ */
7987
+ supertrend: ['Super Trend'],
7988
+ /**
7989
+ * Triple Exponential Moving Average alias.
7990
+ *
7991
+ * @default ['Triple Exponential Moving Average']
7992
+ * @type {Array<string>}
7993
+ */
7994
+ tema: ['Triple Exponential Moving Average'],
7995
+ /**
7996
+ * Volume by Price alias.
7997
+ *
7998
+ * @default ['Volume by Price']
7999
+ * @type {Array<string>}
8000
+ */
8001
+ vbp: ['Volume by Price'],
8002
+ /**
8003
+ * Volume Weighted Moving Average alias.
8004
+ *
8005
+ * @default ['Volume Weighted Moving Average']
8006
+ * @type {Array<string>}
8007
+ */
8008
+ vwap: ['Volume Weighted Moving Average'],
8009
+ /**
8010
+ * Weighted Moving Average alias.
8011
+ *
8012
+ * @default ['Weighted Moving Average']
8013
+ * @type {Array<string>}
8014
+ */
8015
+ wma: ['Weighted Moving Average'],
8016
+ /**
8017
+ * Zig Zagalias.
8018
+ *
8019
+ * @default ['Zig Zag']
8020
+ * @type {Array<string>}
8021
+ */
8022
+ zigzag: ['Zig Zag'],
8023
+ // Oscilators
8024
+ /**
8025
+ * Absolute price indicator alias.
8026
+ *
8027
+ * @default ['Absolute price indicator']
8028
+ * @type {Array<string>}
8029
+ */
8030
+ apo: ['Absolute price indicator'],
8031
+ /**
8032
+ * Accumulation/Distribution alias.
8033
+ *
8034
+ * @default ['Accumulation/Distribution’]
8035
+ * @type {Array<string>}
8036
+ */
8037
+ ad: ['Accumulation/Distribution'],
8038
+ /**
8039
+ * Aroon alias.
8040
+ *
8041
+ * @default ['Aroon']
8042
+ * @type {Array<string>}
8043
+ */
8044
+ aroon: ['Aroon'],
8045
+ /**
8046
+ * Aroon oscillator alias.
8047
+ *
8048
+ * @default ['Aroon oscillator']
8049
+ * @type {Array<string>}
8050
+ */
8051
+ aroonoscillator: ['Aroon oscillator'],
8052
+ /**
8053
+ * Average True Range alias.
8054
+ *
8055
+ * @default ['Average True Range’]
8056
+ * @type {Array<string>}
8057
+ */
8058
+ atr: ['Average True Range'],
8059
+ /**
8060
+ * Awesome oscillator alias.
8061
+ *
8062
+ * @default ['Awesome oscillator’]
8063
+ * @type {Array<string>}
8064
+ */
8065
+ ao: ['Awesome oscillator'],
8066
+ /**
8067
+ * Commodity Channel Index alias.
8068
+ *
8069
+ * @default ['Commodity Channel Index’]
8070
+ * @type {Array<string>}
8071
+ */
8072
+ cci: ['Commodity Channel Index'],
8073
+ /**
8074
+ * Chaikin alias.
8075
+ *
8076
+ * @default ['Chaikin’]
8077
+ * @type {Array<string>}
8078
+ */
8079
+ chaikin: ['Chaikin'],
8080
+ /**
8081
+ * Chaikin Money Flow alias.
8082
+ *
8083
+ * @default ['Chaikin Money Flow’]
8084
+ * @type {Array<string>}
8085
+ */
8086
+ cmf: ['Chaikin Money Flow'],
8087
+ /**
8088
+ * Chande Momentum Oscillator alias.
8089
+ *
8090
+ * @default ['Chande Momentum Oscillator’]
8091
+ * @type {Array<string>}
8092
+ */
8093
+ cmo: ['Chande Momentum Oscillator'],
8094
+ /**
8095
+ * Disparity Index alias.
8096
+ *
8097
+ * @default ['Disparity Index’]
8098
+ * @type {Array<string>}
8099
+ */
8100
+ disparityindex: ['Disparity Index'],
8101
+ /**
8102
+ * Directional Movement Index alias.
8103
+ *
8104
+ * @default ['Directional Movement Index’]
8105
+ * @type {Array<string>}
8106
+ */
8107
+ dmi: ['Directional Movement Index'],
8108
+ /**
8109
+ * Detrended price oscillator alias.
8110
+ *
8111
+ * @default ['Detrended price oscillator’]
8112
+ * @type {Array<string>}
8113
+ */
8114
+ dpo: ['Detrended price oscillator'],
8115
+ /**
8116
+ * Klinger Oscillator alias.
8117
+ *
8118
+ * @default [‘Klinger Oscillator’]
8119
+ * @type {Array<string>}
8120
+ */
8121
+ klinger: ['Klinger Oscillator'],
8122
+ /**
8123
+ * Linear Regression Angle alias.
8124
+ *
8125
+ * @default [‘Linear Regression Angle’]
8126
+ * @type {Array<string>}
8127
+ */
8128
+ linearRegressionAngle: ['Linear Regression Angle'],
8129
+ /**
8130
+ * Linear Regression Intercept alias.
8131
+ *
8132
+ * @default [‘Linear Regression Intercept’]
8133
+ * @type {Array<string>}
8134
+ */
8135
+ linearRegressionIntercept: ['Linear Regression Intercept'],
8136
+ /**
8137
+ * Linear Regression Slope alias.
8138
+ *
8139
+ * @default [‘Linear Regression Slope’]
8140
+ * @type {Array<string>}
8141
+ */
8142
+ linearRegressionSlope: ['Linear Regression Slope'],
8143
+ /**
8144
+ * Moving Average Convergence Divergence alias.
8145
+ *
8146
+ * @default ['Moving Average Convergence Divergence’]
8147
+ * @type {Array<string>}
8148
+ */
8149
+ macd: ['Moving Average Convergence Divergence'],
8150
+ /**
8151
+ * Money Flow Index alias.
8152
+ *
8153
+ * @default ['Money Flow Index’]
8154
+ * @type {Array<string>}
8155
+ */
8156
+ mfi: ['Money Flow Index'],
8157
+ /**
8158
+ * Momentum alias.
8159
+ *
8160
+ * @default [‘Momentum’]
8161
+ * @type {Array<string>}
8162
+ */
8163
+ momentum: ['Momentum'],
8164
+ /**
8165
+ * Normalized Average True Range alias.
8166
+ *
8167
+ * @default ['Normalized Average True Range’]
8168
+ * @type {Array<string>}
8169
+ */
8170
+ natr: ['Normalized Average True Range'],
8171
+ /**
8172
+ * On-Balance Volume alias.
8173
+ *
8174
+ * @default ['On-Balance Volume’]
8175
+ * @type {Array<string>}
8176
+ */
8177
+ obv: ['On-Balance Volume'],
8178
+ /**
8179
+ * Percentage Price oscillator alias.
8180
+ *
8181
+ * @default ['Percentage Price oscillator’]
8182
+ * @type {Array<string>}
8183
+ */
8184
+ ppo: ['Percentage Price oscillator'],
8185
+ /**
8186
+ * Rate of Change alias.
8187
+ *
8188
+ * @default ['Rate of Change’]
8189
+ * @type {Array<string>}
8190
+ */
8191
+ roc: ['Rate of Change'],
8192
+ /**
8193
+ * Relative Strength Index alias.
8194
+ *
8195
+ * @default ['Relative Strength Index’]
8196
+ * @type {Array<string>}
8197
+ */
8198
+ rsi: ['Relative Strength Index'],
8199
+ /**
8200
+ * Slow Stochastic alias.
8201
+ *
8202
+ * @default [‘Slow Stochastic’]
8203
+ * @type {Array<string>}
8204
+ */
8205
+ slowstochastic: ['Slow Stochastic'],
8206
+ /**
8207
+ * Stochastic alias.
8208
+ *
8209
+ * @default [‘Stochastic’]
8210
+ * @type {Array<string>}
8211
+ */
8212
+ stochastic: ['Stochastic'],
8213
+ /**
8214
+ * TRIX alias.
8215
+ *
8216
+ * @default [‘TRIX’]
8217
+ * @type {Array<string>}
8218
+ */
8219
+ trix: ['TRIX'],
8220
+ /**
8221
+ * Williams %R alias.
8222
+ *
8223
+ * @default [‘Williams %R’]
8224
+ * @type {Array<string>}
8225
+ */
8226
+ williamsr: ['Williams %R']
8227
+ }
7376
8228
  }
7377
8229
  }
7378
8230
  },
@@ -7483,10 +8335,11 @@
7483
8335
  * A collection of strings pointing to config options for
7484
8336
  * the items.
7485
8337
  *
7486
- * @type {array}
8338
+ * @type {Array}
7487
8339
  * @default [
7488
8340
  * 'label',
7489
8341
  * 'circle',
8342
+ * 'ellipse',
7490
8343
  * 'rectangle'
7491
8344
  * ]
7492
8345
  *
@@ -7494,6 +8347,7 @@
7494
8347
  items: [
7495
8348
  'label',
7496
8349
  'circle',
8350
+ 'ellipse',
7497
8351
  'rectangle'
7498
8352
  ],
7499
8353
  circle: {
@@ -7505,6 +8359,15 @@
7505
8359
  */
7506
8360
  symbol: 'circle.svg'
7507
8361
  },
8362
+ ellipse: {
8363
+ /**
8364
+ * A predefined background symbol for the button.
8365
+ *
8366
+ * @type {string}
8367
+ *
8368
+ */
8369
+ symbol: 'ellipse.svg'
8370
+ },
7508
8371
  rectangle: {
7509
8372
  /**
7510
8373
  * A predefined background symbol for the button.
@@ -7529,7 +8392,7 @@
7529
8392
  * A collection of strings pointing to config options for
7530
8393
  * the items.
7531
8394
  *
7532
- * @type {array}
8395
+ * @type {Array}
7533
8396
  * @default [
7534
8397
  * 'flagCirclepin',
7535
8398
  * 'flagDiamondpin',
@@ -7584,14 +8447,14 @@
7584
8447
  * A collection of strings pointing to config options for
7585
8448
  * the items.
7586
8449
  *
7587
- * @type {array}
8450
+ * @type {Array}
7588
8451
  * @default [
7589
8452
  * 'segment',
7590
8453
  * 'arrowSegment',
7591
8454
  * 'ray',
7592
8455
  * 'arrowRay',
7593
8456
  * 'line',
7594
- * 'arrowLine',
8457
+ * 'arrowInfinityLine',
7595
8458
  * 'horizontalLine',
7596
8459
  * 'verticalLine'
7597
8460
  * ]
@@ -7602,7 +8465,7 @@
7602
8465
  'ray',
7603
8466
  'arrowRay',
7604
8467
  'line',
7605
- 'arrowLine',
8468
+ 'arrowInfinityLine',
7606
8469
  'horizontalLine',
7607
8470
  'verticalLine'
7608
8471
  ],
@@ -7646,7 +8509,7 @@
7646
8509
  */
7647
8510
  symbol: 'line.svg'
7648
8511
  },
7649
- arrowLine: {
8512
+ arrowInfinityLine: {
7650
8513
  /**
7651
8514
  * A predefined background symbol for the button.
7652
8515
  *
@@ -7676,7 +8539,7 @@
7676
8539
  * A collection of strings pointing to config options for
7677
8540
  * the items.
7678
8541
  *
7679
- * @type {array}
8542
+ * @type {Array}
7680
8543
  * @default [
7681
8544
  * 'elliott3',
7682
8545
  * 'elliott5',
@@ -7729,7 +8592,7 @@
7729
8592
  * A collection of strings pointing to config options for
7730
8593
  * the items.
7731
8594
  *
7732
- * @type {array}
8595
+ * @type {Array}
7733
8596
  * @default [
7734
8597
  * 'verticalCounter',
7735
8598
  * 'verticalLabel',
@@ -7771,17 +8634,21 @@
7771
8634
  * A collection of strings pointing to config options for
7772
8635
  * the items.
7773
8636
  *
7774
- * @type {array}
8637
+ * @type {Array}
7775
8638
  * @default [
7776
8639
  * 'fibonacci',
8640
+ * 'fibonacciTimeZones',
7777
8641
  * 'pitchfork',
7778
- * 'parallelChannel'
8642
+ * 'parallelChannel',
8643
+ * 'timeCycles'
7779
8644
  * ]
7780
8645
  */
7781
8646
  items: [
7782
8647
  'fibonacci',
8648
+ 'fibonacciTimeZones',
7783
8649
  'pitchfork',
7784
- 'parallelChannel'
8650
+ 'parallelChannel',
8651
+ 'timeCycles'
7785
8652
  ],
7786
8653
  pitchfork: {
7787
8654
  /**
@@ -7799,6 +8666,14 @@
7799
8666
  */
7800
8667
  symbol: 'fibonacci.svg'
7801
8668
  },
8669
+ fibonacciTimeZones: {
8670
+ /**
8671
+ * A predefined background symbol for the button.
8672
+ *
8673
+ * @type {string}
8674
+ */
8675
+ symbol: 'fibonacci-timezone.svg'
8676
+ },
7802
8677
  parallelChannel: {
7803
8678
  /**
7804
8679
  * A predefined background symbol for the button.
@@ -7806,6 +8681,14 @@
7806
8681
  * @type {string}
7807
8682
  */
7808
8683
  symbol: 'parallel-channel.svg'
8684
+ },
8685
+ timeCycles: {
8686
+ /**
8687
+ * A predefined backgroud symbol for the button.
8688
+ *
8689
+ * @type {string}
8690
+ */
8691
+ symbol: 'time-cycles.svg'
7809
8692
  }
7810
8693
  },
7811
8694
  measure: {
@@ -7813,7 +8696,7 @@
7813
8696
  * A collection of strings pointing to config options for
7814
8697
  * the items.
7815
8698
  *
7816
- * @type {array}
8699
+ * @type {Array}
7817
8700
  * @default [
7818
8701
  * 'measureXY',
7819
8702
  * 'measureX',
@@ -7879,7 +8762,7 @@
7879
8762
  * A collection of strings pointing to config options for
7880
8763
  * the items.
7881
8764
  *
7882
- * @type {array}
8765
+ * @type {Array}
7883
8766
  * @default [
7884
8767
  * 'zoomX',
7885
8768
  * 'zoomY',
@@ -7921,7 +8804,7 @@
7921
8804
  * A collection of strings pointing to config options for
7922
8805
  * the items.
7923
8806
  *
7924
- * @type {array}
8807
+ * @type {Array}
7925
8808
  * @default [
7926
8809
  * 'typeOHLC',
7927
8810
  * 'typeLine',
@@ -7934,6 +8817,7 @@
7934
8817
  'typeLine',
7935
8818
  'typeCandlestick',
7936
8819
  'typeHollowCandlestick',
8820
+ 'typeHLC',
7937
8821
  'typeHeikinAshi'
7938
8822
  ],
7939
8823
  typeOHLC: {
@@ -7960,6 +8844,14 @@
7960
8844
  */
7961
8845
  symbol: 'series-candlestick.svg'
7962
8846
  },
8847
+ typeHLC: {
8848
+ /**
8849
+ * A predefined background symbol for the button.
8850
+ *
8851
+ * @type {string}
8852
+ */
8853
+ symbol: 'series-hlc.svg'
8854
+ },
7963
8855
  typeHeikinAshi: {
7964
8856
  /**
7965
8857
  * A predefined background symbol for the button.
@@ -8056,9 +8948,11 @@
8056
8948
  /**
8057
8949
  * Toolbar Class
8058
8950
  * @private
8059
- * @constructor
8060
- * @param {Object} - options of toolbar
8061
- * @param {Chart} - Reference to chart
8951
+ * @class
8952
+ * @param {Object}
8953
+ * Options of toolbar
8954
+ * @param {Highcharts.Chart}
8955
+ * Reference to chart
8062
8956
  */
8063
8957
  var Toolbar = /** @class */ (function () {
8064
8958
  function Toolbar(options, langOptions, chart) {
@@ -8118,11 +9012,14 @@
8118
9012
  /**
8119
9013
  * Create submenu (list of buttons) for the option. In example main button
8120
9014
  * is Line, in submenu will be buttons with types of lines.
9015
+ *
8121
9016
  * @private
8122
- * @param {Highcharts.Dictionary<Highcharts.HTMLDOMElement>}
8123
- * button which has submenu
8124
- * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions}
8125
- * list of all buttons
9017
+ *
9018
+ * @param {Highcharts.Dictionary<Highcharts.HTMLDOMElement>} parentBtn
9019
+ * Button which has submenu
9020
+ *
9021
+ * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions} button
9022
+ * List of all buttons
8126
9023
  */
8127
9024
  Toolbar.prototype.addSubmenu = function (parentBtn, button) {
8128
9025
  var _self = this,
@@ -8184,12 +9081,14 @@
8184
9081
  };
8185
9082
  /**
8186
9083
  * Create buttons in submenu
9084
+ *
8187
9085
  * @private
8188
- * @param {Highcharts.HTMLDOMElement}
8189
- * button where submenu is placed
8190
- * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions}
8191
- * list of all buttons options
8192
9086
  *
9087
+ * @param {Highcharts.HTMLDOMElement} buttonWrapper
9088
+ * Button where submenu is placed
9089
+ *
9090
+ * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions} button
9091
+ * List of all buttons options
8193
9092
  */
8194
9093
  Toolbar.prototype.addSubmenuItems = function (buttonWrapper, button) {
8195
9094
  var _self = this,
@@ -8482,7 +9381,7 @@
8482
9381
  button.style.backgroundImage;
8483
9382
  // set active class
8484
9383
  if (redraw) {
8485
- this.selectButton(mainNavButton);
9384
+ this.toggleButtonAciveClass(mainNavButton);
8486
9385
  }
8487
9386
  };
8488
9387
  /*
@@ -8491,7 +9390,7 @@
8491
9390
  * @param {HTMLDOMElement} - button
8492
9391
  *
8493
9392
  */
8494
- Toolbar.prototype.selectButton = function (button) {
9393
+ Toolbar.prototype.toggleButtonAciveClass = function (button) {
8495
9394
  if (button.className.indexOf(activeClass) >= 0) {
8496
9395
  button.classList.remove(activeClass);
8497
9396
  }
@@ -8557,7 +9456,7 @@
8557
9456
  Toolbar.prototype.getIconsURL = function () {
8558
9457
  return this.chart.options.navigation.iconsURL ||
8559
9458
  this.options.iconsURL ||
8560
- 'https://code.highcharts.com/9.2.1/gfx/stock-icons/';
9459
+ 'https://code.highcharts.com/9.3.2/gfx/stock-icons/';
8561
9460
  };
8562
9461
  return Toolbar;
8563
9462
  }());
@@ -8567,6 +9466,7 @@
8567
9466
  */
8568
9467
  Toolbar.prototype.classMapping = {
8569
9468
  circle: PREFIX + 'circle-annotation',
9469
+ ellipse: PREFIX + 'ellipse-annotation',
8570
9470
  rectangle: PREFIX + 'rectangle-annotation',
8571
9471
  label: PREFIX + 'label-annotation',
8572
9472
  segment: PREFIX + 'segment',
@@ -8574,7 +9474,7 @@
8574
9474
  ray: PREFIX + 'ray',
8575
9475
  arrowRay: PREFIX + 'arrow-ray',
8576
9476
  line: PREFIX + 'infinity-line',
8577
- arrowLine: PREFIX + 'arrow-infinity-line',
9477
+ arrowInfinityLine: PREFIX + 'arrow-infinity-line',
8578
9478
  verticalLine: PREFIX + 'vertical-line',
8579
9479
  horizontalLine: PREFIX + 'horizontal-line',
8580
9480
  crooked3: PREFIX + 'crooked3',
@@ -8583,10 +9483,12 @@
8583
9483
  elliott5: PREFIX + 'elliott5',
8584
9484
  pitchfork: PREFIX + 'pitchfork',
8585
9485
  fibonacci: PREFIX + 'fibonacci',
9486
+ fibonacciTimeZones: PREFIX + 'fibonacci-time-zones',
8586
9487
  parallelChannel: PREFIX + 'parallel-channel',
8587
9488
  measureX: PREFIX + 'measure-x',
8588
9489
  measureY: PREFIX + 'measure-y',
8589
9490
  measureXY: PREFIX + 'measure-xy',
9491
+ timeCycles: PREFIX + 'time-cycles',
8590
9492
  verticalCounter: PREFIX + 'vertical-counter',
8591
9493
  verticalLabel: PREFIX + 'vertical-label',
8592
9494
  verticalArrow: PREFIX + 'vertical-arrow',
@@ -8601,6 +9503,7 @@
8601
9503
  zoomXY: PREFIX + 'zoom-xy',
8602
9504
  typeLine: PREFIX + 'series-type-line',
8603
9505
  typeOHLC: PREFIX + 'series-type-ohlc',
9506
+ typeHLC: PREFIX + 'series-type-hlc',
8604
9507
  typeCandlestick: PREFIX + 'series-type-candlestick',
8605
9508
  typeHollowCandlestick: PREFIX + 'series-type-hollowcandlestick',
8606
9509
  typeHeikinAshi: PREFIX + 'series-type-heikinashi',
@@ -8640,7 +9543,7 @@
8640
9543
  button = button.parentNode.parentNode;
8641
9544
  }
8642
9545
  // Set active class on the current button
8643
- gui.selectButton(button);
9546
+ gui.toggleButtonAciveClass(button);
8644
9547
  }
8645
9548
  });
8646
9549
  addEvent(NavigationBindings, 'deselectButton', function (event) {
@@ -8652,7 +9555,7 @@
8652
9555
  if (button.parentNode.className.indexOf(className) >= 0) {
8653
9556
  button = button.parentNode.parentNode;
8654
9557
  }
8655
- gui.selectButton(button);
9558
+ gui.toggleButtonAciveClass(button);
8656
9559
  }
8657
9560
  });
8658
9561
  // Check if the correct price indicator button is displayed, #15029.
@@ -8663,8 +9566,12 @@
8663
9566
  stockTools.toolbar &&
8664
9567
  stockTools.toolbar.querySelector('.highcharts-current-price-indicator');
8665
9568
  // Change the initial button background.
8666
- if (stockTools && chart.navigationBindings && chart.options.series && button) {
8667
- if (chart.navigationBindings.constructor.prototype.utils.isPriceIndicatorEnabled(chart.series)) {
9569
+ if (stockTools &&
9570
+ chart.navigationBindings &&
9571
+ chart.options.series &&
9572
+ button) {
9573
+ if (chart.navigationBindings.constructor.prototype.utils
9574
+ .isPriceIndicatorEnabled(chart.series)) {
8668
9575
  button.firstChild.style['background-image'] =
8669
9576
  'url("' + stockTools.getIconsURL() + 'current-price-hide.svg")';
8670
9577
  }