highcharts 10.0.0 → 10.2.1

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 (942) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +10 -20
  3. package/css/themes/dark-unica.css +10 -20
  4. package/css/themes/grid-light.css +10 -20
  5. package/css/themes/sand-signika.css +10 -20
  6. package/es-modules/Accessibility/A11yI18n.js +4 -4
  7. package/es-modules/Accessibility/Accessibility.js +8 -3
  8. package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
  9. package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
  10. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
  11. package/es-modules/Accessibility/Components/LegendComponent.js +11 -11
  12. package/es-modules/Accessibility/Components/MenuComponent.js +3 -1
  13. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +3 -1
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
  15. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -17
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +35 -10
  17. package/es-modules/Accessibility/Components/ZoomComponent.js +30 -70
  18. package/es-modules/Accessibility/FocusBorder.js +6 -5
  19. package/es-modules/Accessibility/HighContrastMode.js +1 -1
  20. package/es-modules/Accessibility/KeyboardNavigation.js +2 -2
  21. package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +73 -5
  22. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
  23. package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
  24. package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
  25. package/es-modules/Core/Animation/Fx.js +1 -1
  26. package/es-modules/Core/Axis/Axis.js +51 -46
  27. package/es-modules/Core/Axis/Axis3D.js +1 -1
  28. package/es-modules/Core/Axis/AxisDefaults.js +9 -9
  29. package/es-modules/Core/Axis/BrokenAxis.js +1 -1
  30. package/es-modules/Core/Axis/Color/ColorAxis.js +4 -2
  31. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
  32. package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
  33. package/es-modules/Core/Axis/GridAxis.js +821 -822
  34. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  35. package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
  36. package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
  37. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  38. package/es-modules/Core/Axis/RadialAxis.js +1 -1
  39. package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
  40. package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
  41. package/es-modules/Core/Axis/Tick.js +22 -18
  42. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
  43. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
  44. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  45. package/es-modules/Core/Axis/ZAxis.js +76 -71
  46. package/es-modules/Core/Chart/Chart.js +42 -9
  47. package/es-modules/Core/Chart/Chart3D.js +2 -2
  48. package/es-modules/Core/Chart/ChartDefaults.js +165 -5
  49. package/es-modules/Core/Chart/GanttChart.js +3 -1
  50. package/es-modules/Core/Chart/MapChart.js +3 -1
  51. package/es-modules/Core/Chart/StockChart.js +12 -8
  52. package/es-modules/Core/Color/Color.js +1 -1
  53. package/es-modules/Core/DefaultOptions.js +19 -16
  54. package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
  55. package/es-modules/Core/Globals.js +2 -1
  56. package/es-modules/Core/HttpUtilities.js +39 -37
  57. package/es-modules/Core/Legend/Legend.js +4 -4
  58. package/es-modules/Core/MSPointer.js +3 -1
  59. package/es-modules/{Extensions → Core}/Math3D.js +48 -43
  60. package/es-modules/Core/Navigator.js +31 -14
  61. package/es-modules/Core/Pointer.js +8 -10
  62. package/es-modules/Core/Renderer/HTML/AST.js +13 -7
  63. package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
  64. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
  65. package/es-modules/Core/Renderer/SVG/SVGElement.js +132 -192
  66. package/es-modules/Core/Renderer/SVG/SVGLabel.js +32 -28
  67. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +50 -45
  68. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +5 -3
  69. package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
  70. package/es-modules/Core/Scrollbar.js +12 -6
  71. package/es-modules/Core/ScrollbarDefaults.js +8 -8
  72. package/es-modules/Core/Series/DataLabel.js +63 -40
  73. package/es-modules/Core/Series/Point.js +11 -2
  74. package/es-modules/Core/Series/Series.js +60 -43
  75. package/es-modules/Core/Series/Series3D.js +4 -2
  76. package/es-modules/Core/Series/SeriesDefaults.js +11 -6
  77. package/es-modules/Core/Series/SeriesRegistry.js +6 -29
  78. package/es-modules/Core/Time.js +6 -7
  79. package/es-modules/Core/Tooltip.js +17 -6
  80. package/es-modules/Core/Utilities.js +7 -9
  81. package/es-modules/Data/DataConverter.js +6 -1
  82. package/es-modules/Data/DataPromise.js +1 -1
  83. package/es-modules/Data/DataSeriesComposition.js +288 -0
  84. package/es-modules/Data/DataSeriesConverter.js +1 -1
  85. package/es-modules/Data/DataTable.js +14 -12
  86. package/es-modules/Data/Modifiers/ChainModifier.js +4 -2
  87. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  88. package/es-modules/Data/Modifiers/GroupModifier.js +4 -2
  89. package/es-modules/Data/Modifiers/InvertModifier.js +10 -8
  90. package/es-modules/Data/Modifiers/RangeModifier.js +4 -2
  91. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +4 -2
  92. package/es-modules/Data/Modifiers/SortModifier.js +4 -2
  93. package/es-modules/Data/Parsers/CSVParser.js +3 -1
  94. package/es-modules/Data/Parsers/DataParser.js +2 -2
  95. package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
  96. package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
  97. package/es-modules/Data/Stores/CSVStore.js +8 -5
  98. package/es-modules/Data/Stores/DataStore.js +1 -1
  99. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  100. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  101. package/es-modules/Extensions/Annotations/Annotation.js +652 -0
  102. package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
  103. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
  104. package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
  105. package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
  106. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
  107. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
  108. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +95 -63
  109. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
  110. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
  111. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
  112. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
  113. package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
  114. package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
  115. package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -663
  116. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
  117. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
  118. package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
  119. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
  120. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
  121. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
  122. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
  123. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +23 -23
  124. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +15 -21
  125. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +14 -12
  126. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +33 -23
  127. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +67 -65
  128. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +14 -21
  129. package/es-modules/Extensions/Annotations/Types/Measure.js +259 -251
  130. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +15 -19
  131. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +24 -19
  132. package/es-modules/Extensions/Annotations/Types/Tunnel.js +17 -15
  133. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +15 -17
  134. package/es-modules/Extensions/Boost/Boost.js +320 -15
  135. package/es-modules/Extensions/Boost/BoostChart.js +245 -0
  136. package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
  137. package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
  138. package/es-modules/Extensions/Boost/Boostables.js +13 -2
  139. package/es-modules/Extensions/Boost/NamedColors.js +15 -6
  140. package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
  141. package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
  142. package/es-modules/Extensions/Boost/WGLShader.js +370 -376
  143. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
  144. package/es-modules/Extensions/BoostCanvas.js +70 -48
  145. package/es-modules/Extensions/Breadcrumbs.js +37 -9
  146. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  147. package/es-modules/Extensions/Data.js +638 -602
  148. package/es-modules/Extensions/DataGrouping.js +68 -28
  149. package/es-modules/Extensions/Debugger/Debugger.js +60 -22
  150. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  151. package/es-modules/Extensions/DownloadURL.js +3 -3
  152. package/es-modules/Extensions/DragPanes.js +1 -1
  153. package/es-modules/Extensions/DraggablePoints.js +4 -3
  154. package/es-modules/Extensions/Drilldown.js +15 -14
  155. package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +358 -498
  156. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
  157. package/es-modules/Extensions/Exporting/Exporting.js +30 -17
  158. package/es-modules/Extensions/Exporting/ExportingDefaults.js +10 -8
  159. package/es-modules/Extensions/Exporting/Fullscreen.js +352 -0
  160. package/es-modules/Extensions/GeoJSON.js +3 -4
  161. package/es-modules/Extensions/MarkerClusters.js +5 -3
  162. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  163. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  164. package/es-modules/Extensions/Oldie/Oldie.js +2 -2
  165. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  166. package/es-modules/Extensions/Pane.js +3 -3
  167. package/es-modules/Extensions/ParallelCoordinates.js +12 -8
  168. package/es-modules/Extensions/PatternFill.js +14 -2
  169. package/es-modules/Extensions/RangeSelector.js +29 -18
  170. package/es-modules/Extensions/ScrollablePlotArea.js +4 -4
  171. package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +264 -386
  172. package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
  173. package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
  174. package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
  175. package/es-modules/Extensions/Sonification/Earcon.js +1 -1
  176. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  177. package/es-modules/Extensions/Themes/HighContrastLight.js +9 -9
  178. package/es-modules/Maps/MapNavigation.js +3 -7
  179. package/es-modules/Maps/MapPointer.js +1 -1
  180. package/es-modules/Maps/MapView.js +31 -19
  181. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +1 -1
  182. package/es-modules/Maps/MapViewOptionsDefault.js +3 -1
  183. package/es-modules/Maps/Projection.js +13 -11
  184. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +3 -1
  185. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +12 -2
  186. package/es-modules/Series/Area/AreaSeries.js +21 -14
  187. package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
  188. package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
  189. package/es-modules/Series/AreaRange/AreaRangeSeries.js +162 -149
  190. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
  191. package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
  192. package/es-modules/Series/Bar/BarSeries.js +3 -1
  193. package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
  194. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
  195. package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
  196. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
  197. package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
  198. package/es-modules/Series/Bubble/BubblePoint.js +3 -1
  199. package/es-modules/Series/Bubble/BubbleSeries.js +96 -68
  200. package/es-modules/Series/Bullet/BulletPoint.js +3 -1
  201. package/es-modules/Series/Bullet/BulletSeries.js +4 -3
  202. package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
  203. package/es-modules/Series/CenteredUtilities.js +8 -2
  204. package/es-modules/Series/ColorMapComposition.js +111 -0
  205. package/es-modules/Series/Column/ColumnSeries.js +8 -4
  206. package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
  207. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -2
  208. package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
  209. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
  210. package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
  211. package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
  212. package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
  213. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +27 -12
  214. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +19 -3
  215. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
  216. package/es-modules/Series/DragNodesComposition.js +166 -0
  217. package/es-modules/Series/DrawPointUtilities.js +87 -0
  218. package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
  219. package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
  220. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
  221. package/es-modules/Series/Flags/FlagsPoint.js +4 -1
  222. package/es-modules/Series/Flags/FlagsSeries.js +13 -16
  223. package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
  224. package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
  225. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +4 -2
  226. package/es-modules/Series/Gantt/GanttPoint.js +3 -1
  227. package/es-modules/Series/Gantt/GanttSeries.js +4 -2
  228. package/es-modules/Series/Gauge/GaugePoint.js +3 -1
  229. package/es-modules/Series/Gauge/GaugeSeries.js +196 -174
  230. package/es-modules/Series/GraphLayoutComposition.js +130 -0
  231. package/es-modules/Series/HLC/HLCPoint.js +3 -1
  232. package/es-modules/Series/HLC/HLCSeries.js +4 -2
  233. package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
  234. package/es-modules/Series/Heatmap/HeatmapSeries.js +34 -34
  235. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  236. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
  237. package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
  238. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
  239. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
  240. package/es-modules/Series/Item/ItemPoint.js +3 -1
  241. package/es-modules/Series/Item/ItemSeries.js +3 -1
  242. package/es-modules/Series/Line/LineSeries.js +4 -2
  243. package/es-modules/Series/Lollipop/LollipopPoint.js +24 -12
  244. package/es-modules/Series/Lollipop/LollipopSeries.js +18 -11
  245. package/es-modules/Series/Map/MapPoint.js +8 -6
  246. package/es-modules/Series/Map/MapSeries.js +115 -28
  247. package/es-modules/Series/MapBubble/MapBubblePoint.js +18 -18
  248. package/es-modules/Series/MapBubble/MapBubbleSeries.js +69 -21
  249. package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
  250. package/es-modules/Series/MapPoint/MapPointPoint.js +4 -2
  251. package/es-modules/Series/MapPoint/MapPointSeries.js +14 -2
  252. package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
  253. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
  254. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
  255. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
  256. package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
  257. package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
  258. package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
  259. package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
  260. package/es-modules/Series/NodesComposition.js +45 -40
  261. package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
  262. package/es-modules/Series/OHLC/OHLCSeries.js +3 -1
  263. package/es-modules/Series/Organization/OrganizationPoint.js +3 -1
  264. package/es-modules/Series/Organization/OrganizationSeries.js +14 -4
  265. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
  266. package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -79
  267. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +5 -3
  268. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +200 -571
  269. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
  270. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
  271. package/es-modules/Series/Pie/PieDataLabel.js +4 -2
  272. package/es-modules/Series/Pie/PiePoint.js +3 -1
  273. package/es-modules/Series/Pie/PieSeries.js +54 -38
  274. package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
  275. package/es-modules/Series/Pie3D/Pie3DSeries.js +3 -1
  276. package/es-modules/Series/PolarComposition.js +819 -0
  277. package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
  278. package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
  279. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
  280. package/es-modules/Series/Sankey/SankeyPoint.js +3 -1
  281. package/es-modules/Series/Sankey/SankeySeries.js +38 -10
  282. package/es-modules/Series/Scatter/ScatterSeries.js +14 -6
  283. package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
  284. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +4 -2
  285. package/es-modules/Series/SeriesOnPointComposition.js +395 -0
  286. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +6 -4
  287. package/es-modules/Series/Spline/SplineSeries.js +13 -4
  288. package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
  289. package/es-modules/Series/Sunburst/SunburstPoint.js +8 -9
  290. package/es-modules/Series/Sunburst/SunburstSeries.js +32 -5
  291. package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
  292. package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
  293. package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
  294. package/es-modules/Series/Timeline/TimelineSeries.js +8 -4
  295. package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
  296. package/es-modules/Series/Treemap/TreemapSeries.js +12 -10
  297. package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
  298. package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
  299. package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
  300. package/es-modules/Series/Vector/VectorSeries.js +5 -5
  301. package/es-modules/Series/Venn/VennPoint.js +5 -5
  302. package/es-modules/Series/Venn/VennSeries.js +9 -6
  303. package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
  304. package/es-modules/Series/Waterfall/WaterfallSeries.js +14 -12
  305. package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
  306. package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
  307. package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
  308. package/es-modules/Series/Wordcloud/WordcloudSeries.js +12 -9
  309. package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
  310. package/es-modules/Series/XRange/XRangePoint.js +57 -46
  311. package/es-modules/Series/XRange/XRangeSeries.js +124 -274
  312. package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
  313. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +13 -3
  314. package/es-modules/Stock/Indicators/AD/ADIndicator.js +8 -1
  315. package/es-modules/Stock/Indicators/AO/AOIndicator.js +27 -14
  316. package/es-modules/Stock/Indicators/APO/APOIndicator.js +9 -2
  317. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +19 -4
  318. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +18 -3
  319. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +9 -3
  320. package/es-modules/Stock/Indicators/BB/BBIndicator.js +11 -5
  321. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +19 -4
  322. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +23 -1
  323. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +18 -2
  324. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +10 -3
  325. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +28 -1
  326. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +18 -7
  327. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +22 -9
  328. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
  329. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +13 -1
  330. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +37 -16
  331. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +28 -1
  332. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +15 -2
  333. package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +14 -2
  334. package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +15 -8
  335. package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +14 -2
  336. package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +14 -2
  337. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +47 -23
  338. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +26 -11
  339. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +33 -3
  340. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
  341. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +19 -2
  342. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +13 -1
  343. package/es-modules/Stock/Indicators/PC/PCIndicator.js +16 -9
  344. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +17 -5
  345. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +19 -4
  346. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +19 -7
  347. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +19 -13
  348. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +28 -1
  349. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +18 -3
  350. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +23 -3
  351. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +4 -2
  352. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +28 -1
  353. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -1
  354. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +23 -7
  355. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
  356. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +28 -1
  357. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +17 -5
  358. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +35 -4
  359. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +9 -7
  360. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +14 -2
  361. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +33 -3
  362. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +13 -1
  363. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +14 -2
  364. package/es-modules/Stock/StockToolbar.js +568 -0
  365. package/es-modules/Stock/StockTools.js +256 -0
  366. package/es-modules/Stock/StockToolsBindings.js +140 -647
  367. package/es-modules/Stock/StockToolsDefaults.js +1190 -0
  368. package/es-modules/Stock/StockToolsGui.js +150 -1771
  369. package/es-modules/Stock/StockToolsUtilities.js +423 -0
  370. package/es-modules/masters/highcharts-3d.src.js +5 -4
  371. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  372. package/es-modules/masters/highcharts-more.src.js +7 -6
  373. package/es-modules/masters/highcharts.src.js +5 -2
  374. package/es-modules/masters/highmaps.src.js +1 -1
  375. package/es-modules/masters/highstock.src.js +1 -1
  376. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  377. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  378. package/es-modules/masters/indicators/ao.src.js +1 -1
  379. package/es-modules/masters/indicators/apo.src.js +1 -1
  380. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  381. package/es-modules/masters/indicators/aroon.src.js +1 -1
  382. package/es-modules/masters/indicators/atr.src.js +1 -1
  383. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  384. package/es-modules/masters/indicators/cci.src.js +1 -1
  385. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  386. package/es-modules/masters/indicators/cmf.src.js +1 -1
  387. package/es-modules/masters/indicators/cmo.src.js +1 -1
  388. package/es-modules/masters/indicators/dema.src.js +1 -1
  389. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  390. package/es-modules/masters/indicators/dmi.src.js +1 -1
  391. package/es-modules/masters/indicators/dpo.src.js +1 -1
  392. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  393. package/es-modules/masters/indicators/indicators-all.src.js +5 -7
  394. package/es-modules/masters/indicators/indicators.src.js +1 -1
  395. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  396. package/es-modules/masters/indicators/klinger.src.js +1 -1
  397. package/es-modules/masters/indicators/macd.src.js +1 -1
  398. package/es-modules/masters/indicators/mfi.src.js +1 -1
  399. package/es-modules/masters/indicators/momentum.src.js +1 -1
  400. package/es-modules/masters/indicators/natr.src.js +1 -1
  401. package/es-modules/masters/indicators/obv.src.js +1 -1
  402. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  403. package/es-modules/masters/indicators/ppo.src.js +1 -1
  404. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  405. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  406. package/es-modules/masters/indicators/psar.src.js +1 -1
  407. package/es-modules/masters/indicators/regressions.src.js +5 -5
  408. package/es-modules/masters/indicators/roc.src.js +1 -1
  409. package/es-modules/masters/indicators/rsi.src.js +1 -1
  410. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  411. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  412. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  413. package/es-modules/masters/indicators/tema.src.js +1 -1
  414. package/es-modules/masters/indicators/trendline.src.js +1 -1
  415. package/es-modules/masters/indicators/trix.src.js +1 -1
  416. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  417. package/es-modules/masters/indicators/vwap.src.js +1 -1
  418. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  419. package/es-modules/masters/indicators/wma.src.js +1 -1
  420. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  421. package/es-modules/masters/modules/accessibility.src.js +1 -1
  422. package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
  423. package/es-modules/masters/modules/annotations.src.js +6 -4
  424. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  425. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  426. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  427. package/es-modules/masters/modules/boost.src.js +6 -2
  428. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  429. package/es-modules/masters/modules/bullet.src.js +1 -1
  430. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  431. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  432. package/es-modules/masters/modules/cylinder.src.js +1 -1
  433. package/es-modules/masters/modules/data.src.js +2 -1
  434. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  435. package/es-modules/masters/modules/debugger.src.js +5 -3
  436. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  437. package/es-modules/masters/modules/dotplot.src.js +1 -1
  438. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  439. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  440. package/es-modules/masters/modules/drilldown.src.js +1 -1
  441. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  442. package/es-modules/masters/modules/export-data.src.js +5 -2
  443. package/es-modules/masters/modules/exporting.src.js +1 -2
  444. package/es-modules/masters/modules/full-screen.src.js +6 -2
  445. package/es-modules/masters/modules/funnel.src.js +1 -1
  446. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  447. package/es-modules/masters/modules/gantt.src.js +3 -2
  448. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  449. package/es-modules/masters/modules/heatmap.src.js +1 -1
  450. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  451. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  452. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  453. package/es-modules/masters/modules/item-series.src.js +1 -1
  454. package/es-modules/masters/modules/lollipop.src.js +1 -1
  455. package/es-modules/masters/modules/map.src.js +2 -2
  456. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  457. package/es-modules/masters/modules/networkgraph.src.js +5 -2
  458. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  459. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  460. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  461. package/es-modules/masters/modules/oldie.src.js +1 -1
  462. package/es-modules/masters/modules/organization.src.js +1 -1
  463. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  464. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  465. package/es-modules/masters/modules/pareto.src.js +1 -1
  466. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  467. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  468. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  469. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  470. package/es-modules/masters/modules/sankey.src.js +1 -1
  471. package/es-modules/masters/modules/series-label.src.js +5 -2
  472. package/es-modules/masters/modules/series-on-point.src.js +16 -0
  473. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  474. package/es-modules/masters/modules/sonification.src.js +2 -6
  475. package/es-modules/masters/modules/static-scale.src.js +1 -1
  476. package/es-modules/masters/modules/stock-tools.src.js +10 -3
  477. package/es-modules/masters/modules/stock.src.js +1 -1
  478. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  479. package/es-modules/masters/modules/sunburst.src.js +1 -1
  480. package/es-modules/masters/modules/tilemap.src.js +1 -1
  481. package/es-modules/masters/modules/timeline.src.js +1 -1
  482. package/es-modules/masters/modules/treegrid.src.js +2 -2
  483. package/es-modules/masters/modules/treemap.src.js +1 -1
  484. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  485. package/es-modules/masters/modules/variwide.src.js +1 -1
  486. package/es-modules/masters/modules/vector.src.js +1 -1
  487. package/es-modules/masters/modules/venn.src.js +1 -1
  488. package/es-modules/masters/modules/windbarb.src.js +1 -1
  489. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  490. package/es-modules/masters/modules/xrange.src.js +5 -2
  491. package/es-modules/masters/themes/avocado.src.js +1 -1
  492. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  493. package/es-modules/masters/themes/brand-light.src.js +1 -1
  494. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  495. package/es-modules/masters/themes/dark-green.src.js +1 -1
  496. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  497. package/es-modules/masters/themes/gray.src.js +1 -1
  498. package/es-modules/masters/themes/grid-light.src.js +1 -1
  499. package/es-modules/masters/themes/grid.src.js +1 -1
  500. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  501. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  502. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  503. package/es-modules/masters/themes/skies.src.js +1 -1
  504. package/es-modules/masters/themes/sunset.src.js +1 -1
  505. package/highcharts-3d.js +98 -99
  506. package/highcharts-3d.js.map +1 -1
  507. package/highcharts-3d.src.js +233 -212
  508. package/highcharts-gantt.js +809 -805
  509. package/highcharts-gantt.js.map +1 -1
  510. package/highcharts-gantt.src.js +3817 -3470
  511. package/highcharts-more.d.ts +15 -8
  512. package/highcharts-more.js +201 -195
  513. package/highcharts-more.js.map +1 -1
  514. package/highcharts-more.src.d.ts +15 -8
  515. package/highcharts-more.src.js +7994 -7461
  516. package/highcharts.d.ts +11364 -1136
  517. package/highcharts.js +593 -591
  518. package/highcharts.js.map +1 -1
  519. package/highcharts.src.d.ts +11364 -1136
  520. package/highcharts.src.js +1408 -1117
  521. package/highmaps.js +762 -758
  522. package/highmaps.js.map +1 -1
  523. package/highmaps.src.js +2237 -1721
  524. package/highstock.js +796 -792
  525. package/highstock.js.map +1 -1
  526. package/highstock.src.js +1617 -1224
  527. package/indicators/acceleration-bands.d.ts +1 -17
  528. package/indicators/acceleration-bands.js +11 -12
  529. package/indicators/acceleration-bands.js.map +1 -1
  530. package/indicators/acceleration-bands.src.d.ts +1 -17
  531. package/indicators/acceleration-bands.src.js +99 -101
  532. package/indicators/accumulation-distribution.js +1 -1
  533. package/indicators/accumulation-distribution.js.map +1 -1
  534. package/indicators/accumulation-distribution.src.js +6 -1
  535. package/indicators/ao.js +6 -6
  536. package/indicators/ao.js.map +1 -1
  537. package/indicators/ao.src.js +25 -16
  538. package/indicators/apo.js +1 -1
  539. package/indicators/apo.js.map +1 -1
  540. package/indicators/apo.src.js +6 -1
  541. package/indicators/aroon-oscillator.d.ts +1 -17
  542. package/indicators/aroon-oscillator.js +10 -10
  543. package/indicators/aroon-oscillator.js.map +1 -1
  544. package/indicators/aroon-oscillator.src.d.ts +1 -17
  545. package/indicators/aroon-oscillator.src.js +95 -101
  546. package/indicators/aroon.d.ts +1 -17
  547. package/indicators/aroon.js +11 -11
  548. package/indicators/aroon.js.map +1 -1
  549. package/indicators/aroon.src.d.ts +1 -17
  550. package/indicators/aroon.src.js +104 -101
  551. package/indicators/atr.js +1 -1
  552. package/indicators/atr.js.map +1 -1
  553. package/indicators/atr.src.js +17 -4
  554. package/indicators/bollinger-bands.d.ts +1 -17
  555. package/indicators/bollinger-bands.js +11 -12
  556. package/indicators/bollinger-bands.js.map +1 -1
  557. package/indicators/bollinger-bands.src.d.ts +1 -17
  558. package/indicators/bollinger-bands.src.js +97 -103
  559. package/indicators/cci.js +1 -1
  560. package/indicators/cci.js.map +1 -1
  561. package/indicators/cci.src.js +17 -4
  562. package/indicators/chaikin.js +8 -8
  563. package/indicators/chaikin.js.map +1 -1
  564. package/indicators/chaikin.src.js +13 -5
  565. package/indicators/cmf.js +1 -1
  566. package/indicators/cmf.js.map +1 -1
  567. package/indicators/cmf.src.js +21 -1
  568. package/indicators/cmo.js +1 -1
  569. package/indicators/cmo.js.map +1 -1
  570. package/indicators/cmo.src.js +16 -2
  571. package/indicators/dema.js +1 -1
  572. package/indicators/dema.js.map +1 -1
  573. package/indicators/dema.src.js +26 -1
  574. package/indicators/disparity-index.js +1 -1
  575. package/indicators/disparity-index.src.js +1 -1
  576. package/indicators/dmi.js +12 -12
  577. package/indicators/dmi.js.map +1 -1
  578. package/indicators/dmi.src.js +104 -105
  579. package/indicators/dpo.js +1 -1
  580. package/indicators/dpo.js.map +1 -1
  581. package/indicators/dpo.src.js +20 -9
  582. package/indicators/ichimoku-kinko-hyo.js +1 -1
  583. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  584. package/indicators/ichimoku-kinko-hyo.src.js +35 -16
  585. package/indicators/indicators-all.d.ts +1 -17
  586. package/indicators/indicators-all.js +200 -199
  587. package/indicators/indicators-all.js.map +1 -1
  588. package/indicators/indicators-all.src.d.ts +1 -17
  589. package/indicators/indicators-all.src.js +882 -284
  590. package/indicators/indicators.js +1 -1
  591. package/indicators/indicators.js.map +1 -1
  592. package/indicators/indicators.src.js +12 -2
  593. package/indicators/keltner-channels.d.ts +1 -17
  594. package/indicators/keltner-channels.js +11 -12
  595. package/indicators/keltner-channels.js.map +1 -1
  596. package/indicators/keltner-channels.src.d.ts +1 -17
  597. package/indicators/keltner-channels.src.js +114 -99
  598. package/indicators/klinger.js +14 -14
  599. package/indicators/klinger.js.map +1 -1
  600. package/indicators/klinger.src.js +101 -102
  601. package/indicators/macd.js +10 -9
  602. package/indicators/macd.js.map +1 -1
  603. package/indicators/macd.src.js +46 -25
  604. package/indicators/mfi.js +1 -1
  605. package/indicators/mfi.js.map +1 -1
  606. package/indicators/mfi.src.js +24 -11
  607. package/indicators/momentum.js +1 -1
  608. package/indicators/momentum.js.map +1 -1
  609. package/indicators/momentum.src.js +31 -3
  610. package/indicators/natr.js +1 -1
  611. package/indicators/natr.js.map +1 -1
  612. package/indicators/natr.src.js +17 -3
  613. package/indicators/obv.js +1 -1
  614. package/indicators/obv.js.map +1 -1
  615. package/indicators/obv.src.js +11 -1
  616. package/indicators/pivot-points.js +1 -1
  617. package/indicators/pivot-points.js.map +1 -1
  618. package/indicators/pivot-points.src.js +32 -19
  619. package/indicators/ppo.js +1 -1
  620. package/indicators/ppo.js.map +1 -1
  621. package/indicators/ppo.src.js +15 -5
  622. package/indicators/price-channel.d.ts +1 -17
  623. package/indicators/price-channel.js +11 -11
  624. package/indicators/price-channel.js.map +1 -1
  625. package/indicators/price-channel.src.d.ts +1 -17
  626. package/indicators/price-channel.src.js +102 -107
  627. package/indicators/price-envelopes.js +1 -1
  628. package/indicators/price-envelopes.js.map +1 -1
  629. package/indicators/price-envelopes.src.js +26 -1
  630. package/indicators/psar.js +1 -1
  631. package/indicators/psar.js.map +1 -1
  632. package/indicators/psar.src.js +17 -4
  633. package/indicators/regressions.js +12 -11
  634. package/indicators/regressions.js.map +1 -1
  635. package/indicators/regressions.src.js +50 -15
  636. package/indicators/roc.js +1 -1
  637. package/indicators/roc.js.map +1 -1
  638. package/indicators/roc.src.js +16 -3
  639. package/indicators/rsi.js +1 -1
  640. package/indicators/rsi.js.map +1 -1
  641. package/indicators/rsi.src.js +21 -3
  642. package/indicators/slow-stochastic.js +1 -1
  643. package/indicators/slow-stochastic.js.map +1 -1
  644. package/indicators/slow-stochastic.src.js +26 -1
  645. package/indicators/stochastic.d.ts +1 -17
  646. package/indicators/stochastic.js +12 -12
  647. package/indicators/stochastic.js.map +1 -1
  648. package/indicators/stochastic.src.d.ts +1 -17
  649. package/indicators/stochastic.src.js +104 -99
  650. package/indicators/supertrend.js +7 -7
  651. package/indicators/supertrend.js.map +1 -1
  652. package/indicators/supertrend.src.js +21 -9
  653. package/indicators/tema.js +1 -1
  654. package/indicators/tema.src.js +1 -1
  655. package/indicators/trendline.js +1 -1
  656. package/indicators/trendline.js.map +1 -1
  657. package/indicators/trendline.src.js +15 -5
  658. package/indicators/trix.js +1 -1
  659. package/indicators/trix.js.map +1 -1
  660. package/indicators/trix.src.js +26 -1
  661. package/indicators/volume-by-price.js +17 -17
  662. package/indicators/volume-by-price.js.map +1 -1
  663. package/indicators/volume-by-price.src.js +38 -10
  664. package/indicators/vwap.js +1 -1
  665. package/indicators/vwap.js.map +1 -1
  666. package/indicators/vwap.src.js +12 -2
  667. package/indicators/williams-r.js +1 -1
  668. package/indicators/williams-r.js.map +1 -1
  669. package/indicators/williams-r.src.js +11 -1
  670. package/indicators/wma.js +1 -1
  671. package/indicators/wma.js.map +1 -1
  672. package/indicators/wma.src.js +31 -3
  673. package/indicators/zigzag.js +1 -1
  674. package/indicators/zigzag.js.map +1 -1
  675. package/indicators/zigzag.src.js +12 -2
  676. package/modules/accessibility.js +246 -242
  677. package/modules/accessibility.js.map +1 -1
  678. package/modules/accessibility.src.js +797 -664
  679. package/modules/annotations-advanced.d.ts +1 -1
  680. package/modules/annotations-advanced.js +193 -192
  681. package/modules/annotations-advanced.js.map +1 -1
  682. package/modules/annotations-advanced.src.d.ts +1 -1
  683. package/modules/annotations-advanced.src.js +9229 -8589
  684. package/modules/annotations.d.ts +1 -1
  685. package/modules/annotations.js +128 -126
  686. package/modules/annotations.js.map +1 -1
  687. package/modules/annotations.src.d.ts +1 -1
  688. package/modules/annotations.src.js +6190 -5528
  689. package/modules/arc-diagram.js +7 -7
  690. package/modules/arc-diagram.js.map +1 -1
  691. package/modules/arc-diagram.src.js +10 -2
  692. package/modules/arrow-symbols.js +1 -1
  693. package/modules/arrow-symbols.src.js +1 -1
  694. package/modules/boost-canvas.d.ts +19 -0
  695. package/modules/boost-canvas.js +81 -15
  696. package/modules/boost-canvas.js.map +1 -1
  697. package/modules/boost-canvas.src.d.ts +19 -0
  698. package/modules/boost-canvas.src.js +3342 -52
  699. package/modules/boost.d.ts +8 -26
  700. package/modules/boost.js +88 -80
  701. package/modules/boost.js.map +1 -1
  702. package/modules/boost.src.d.ts +8 -26
  703. package/modules/boost.src.js +2435 -1889
  704. package/modules/broken-axis.js +2 -2
  705. package/modules/broken-axis.js.map +1 -1
  706. package/modules/broken-axis.src.js +2 -2
  707. package/modules/bullet.js +1 -1
  708. package/modules/bullet.js.map +1 -1
  709. package/modules/bullet.src.js +2 -5
  710. package/modules/coloraxis.js +2 -2
  711. package/modules/coloraxis.js.map +1 -1
  712. package/modules/coloraxis.src.js +9 -5
  713. package/modules/current-date-indicator.js +1 -1
  714. package/modules/current-date-indicator.src.js +2 -2
  715. package/modules/cylinder.js +9 -9
  716. package/modules/cylinder.js.map +1 -1
  717. package/modules/cylinder.src.js +2 -2
  718. package/modules/data.d.ts +12 -12
  719. package/modules/data.js +33 -34
  720. package/modules/data.js.map +1 -1
  721. package/modules/data.src.d.ts +12 -12
  722. package/modules/data.src.js +862 -829
  723. package/modules/datagrouping.d.ts +22 -0
  724. package/modules/datagrouping.js +9 -9
  725. package/modules/datagrouping.js.map +1 -1
  726. package/modules/datagrouping.src.d.ts +22 -0
  727. package/modules/datagrouping.src.js +69 -29
  728. package/modules/debugger.js +8 -6
  729. package/modules/debugger.js.map +1 -1
  730. package/modules/debugger.src.js +85 -40
  731. package/modules/dependency-wheel.js +12 -12
  732. package/modules/dependency-wheel.js.map +1 -1
  733. package/modules/dependency-wheel.src.js +41 -14
  734. package/modules/dotplot.js +1 -1
  735. package/modules/dotplot.src.js +1 -1
  736. package/modules/drag-panes.js +1 -1
  737. package/modules/drag-panes.src.js +2 -2
  738. package/modules/draggable-points.js +5 -5
  739. package/modules/draggable-points.js.map +1 -1
  740. package/modules/draggable-points.src.js +5 -4
  741. package/modules/drilldown.d.ts +0 -10
  742. package/modules/drilldown.js +37 -37
  743. package/modules/drilldown.js.map +1 -1
  744. package/modules/drilldown.src.d.ts +0 -10
  745. package/modules/drilldown.src.js +59 -25
  746. package/modules/dumbbell.d.ts +4 -0
  747. package/modules/dumbbell.js +17 -17
  748. package/modules/dumbbell.js.map +1 -1
  749. package/modules/dumbbell.src.d.ts +4 -0
  750. package/modules/dumbbell.src.js +24 -12
  751. package/modules/export-data.js +25 -22
  752. package/modules/export-data.js.map +1 -1
  753. package/modules/export-data.src.js +641 -469
  754. package/modules/exporting.d.ts +8 -8
  755. package/modules/exporting.js +39 -39
  756. package/modules/exporting.js.map +1 -1
  757. package/modules/exporting.src.d.ts +8 -8
  758. package/modules/exporting.src.js +442 -319
  759. package/modules/full-screen.js +8 -8
  760. package/modules/full-screen.js.map +1 -1
  761. package/modules/full-screen.src.js +196 -78
  762. package/modules/funnel.js +1 -1
  763. package/modules/funnel.src.js +3 -3
  764. package/modules/funnel3d.js +2 -2
  765. package/modules/funnel3d.js.map +1 -1
  766. package/modules/funnel3d.src.js +2 -2
  767. package/modules/gantt.js +219 -217
  768. package/modules/gantt.js.map +1 -1
  769. package/modules/gantt.src.js +2420 -2364
  770. package/modules/grid-axis.js +23 -23
  771. package/modules/grid-axis.js.map +1 -1
  772. package/modules/grid-axis.src.js +890 -891
  773. package/modules/heatmap.js +40 -40
  774. package/modules/heatmap.js.map +1 -1
  775. package/modules/heatmap.src.js +137 -108
  776. package/modules/heikinashi.js +1 -1
  777. package/modules/heikinashi.src.js +1 -1
  778. package/modules/histogram-bellcurve.js +1 -1
  779. package/modules/histogram-bellcurve.src.js +1 -1
  780. package/modules/hollowcandlestick.js +1 -1
  781. package/modules/hollowcandlestick.src.js +9 -9
  782. package/modules/item-series.js +1 -1
  783. package/modules/item-series.src.js +1 -1
  784. package/modules/lollipop.js +6 -6
  785. package/modules/lollipop.js.map +1 -1
  786. package/modules/lollipop.src.js +37 -22
  787. package/modules/map.d.ts +3 -3
  788. package/modules/map.js +171 -169
  789. package/modules/map.js.map +1 -1
  790. package/modules/map.src.d.ts +3 -3
  791. package/modules/map.src.js +830 -605
  792. package/modules/marker-clusters.js +1 -1
  793. package/modules/marker-clusters.js.map +1 -1
  794. package/modules/marker-clusters.src.js +4 -6
  795. package/modules/networkgraph.d.ts +1 -17
  796. package/modules/networkgraph.js +55 -50
  797. package/modules/networkgraph.js.map +1 -1
  798. package/modules/networkgraph.src.d.ts +1 -17
  799. package/modules/networkgraph.src.js +2339 -2008
  800. package/modules/no-data-to-display.js +1 -1
  801. package/modules/no-data-to-display.src.js +2 -2
  802. package/modules/offline-exporting.js +3 -3
  803. package/modules/offline-exporting.js.map +1 -1
  804. package/modules/offline-exporting.src.js +5 -5
  805. package/modules/oldie-polyfills.js +1 -1
  806. package/modules/oldie-polyfills.src.js +1 -1
  807. package/modules/oldie.js +2 -2
  808. package/modules/oldie.src.js +3 -3
  809. package/modules/organization.js +15 -15
  810. package/modules/organization.js.map +1 -1
  811. package/modules/organization.src.js +12 -4
  812. package/modules/overlapping-datalabels.js +1 -1
  813. package/modules/overlapping-datalabels.src.js +1 -1
  814. package/modules/parallel-coordinates.js +11 -11
  815. package/modules/parallel-coordinates.js.map +1 -1
  816. package/modules/parallel-coordinates.src.js +14 -9
  817. package/modules/pareto.js +1 -1
  818. package/modules/pareto.src.js +1 -1
  819. package/modules/pathfinder.js +1 -1
  820. package/modules/pathfinder.src.js +1 -1
  821. package/modules/pattern-fill.js +15 -14
  822. package/modules/pattern-fill.js.map +1 -1
  823. package/modules/pattern-fill.src.js +15 -2
  824. package/modules/price-indicator.js +1 -1
  825. package/modules/price-indicator.src.js +1 -1
  826. package/modules/pyramid3d.js +1 -1
  827. package/modules/pyramid3d.src.js +1 -1
  828. package/modules/sankey.d.ts +1 -17
  829. package/modules/sankey.js +32 -32
  830. package/modules/sankey.js.map +1 -1
  831. package/modules/sankey.src.d.ts +1 -17
  832. package/modules/sankey.src.js +102 -57
  833. package/modules/series-label.js +18 -18
  834. package/modules/series-label.js.map +1 -1
  835. package/modules/series-label.src.js +474 -387
  836. package/modules/series-on-point.js +18 -0
  837. package/modules/series-on-point.js.map +1 -0
  838. package/modules/series-on-point.src.js +468 -0
  839. package/modules/solid-gauge.js +4 -4
  840. package/modules/solid-gauge.js.map +1 -1
  841. package/modules/solid-gauge.src.js +6 -6
  842. package/modules/sonification.d.ts +2 -2
  843. package/modules/sonification.js +1 -1
  844. package/modules/sonification.js.map +1 -1
  845. package/modules/sonification.src.d.ts +2 -2
  846. package/modules/sonification.src.js +4 -8
  847. package/modules/static-scale.js +1 -1
  848. package/modules/static-scale.src.js +1 -1
  849. package/modules/stock-tools.d.ts +1 -23
  850. package/modules/stock-tools.js +109 -179
  851. package/modules/stock-tools.js.map +1 -1
  852. package/modules/stock-tools.src.d.ts +1 -23
  853. package/modules/stock-tools.src.js +2652 -6347
  854. package/modules/stock.d.ts +8 -0
  855. package/modules/stock.js +205 -204
  856. package/modules/stock.js.map +1 -1
  857. package/modules/stock.src.d.ts +8 -0
  858. package/modules/stock.src.js +208 -106
  859. package/modules/streamgraph.js +1 -1
  860. package/modules/streamgraph.src.js +1 -1
  861. package/modules/sunburst.js +73 -73
  862. package/modules/sunburst.js.map +1 -1
  863. package/modules/sunburst.src.js +251 -193
  864. package/modules/tilemap.js +1 -1
  865. package/modules/tilemap.src.js +1 -1
  866. package/modules/timeline.js +1 -1
  867. package/modules/timeline.js.map +1 -1
  868. package/modules/timeline.src.js +6 -4
  869. package/modules/treegrid.js +57 -57
  870. package/modules/treegrid.js.map +1 -1
  871. package/modules/treegrid.src.js +1908 -1901
  872. package/modules/treemap.js +54 -53
  873. package/modules/treemap.js.map +1 -1
  874. package/modules/treemap.src.js +217 -183
  875. package/modules/variable-pie.js +1 -1
  876. package/modules/variable-pie.src.js +1 -1
  877. package/modules/variwide.js +1 -1
  878. package/modules/variwide.src.js +1 -1
  879. package/modules/vector.js +2 -2
  880. package/modules/vector.js.map +1 -1
  881. package/modules/vector.src.js +3 -5
  882. package/modules/venn.js +31 -31
  883. package/modules/venn.js.map +1 -1
  884. package/modules/venn.src.js +82 -111
  885. package/modules/windbarb.js +1 -1
  886. package/modules/windbarb.src.js +1 -1
  887. package/modules/wordcloud.js +23 -23
  888. package/modules/wordcloud.js.map +1 -1
  889. package/modules/wordcloud.src.js +84 -113
  890. package/modules/xrange.js +17 -17
  891. package/modules/xrange.js.map +1 -1
  892. package/modules/xrange.src.js +411 -397
  893. package/package.json +1 -1
  894. package/themes/avocado.js +1 -1
  895. package/themes/avocado.src.js +1 -1
  896. package/themes/brand-dark.js +1 -1
  897. package/themes/brand-dark.src.js +1 -1
  898. package/themes/brand-light.js +1 -1
  899. package/themes/brand-light.src.js +1 -1
  900. package/themes/dark-blue.js +1 -1
  901. package/themes/dark-blue.src.js +1 -1
  902. package/themes/dark-green.js +1 -1
  903. package/themes/dark-green.src.js +1 -1
  904. package/themes/dark-unica.js +1 -1
  905. package/themes/dark-unica.src.js +1 -1
  906. package/themes/gray.js +1 -1
  907. package/themes/gray.src.js +1 -1
  908. package/themes/grid-light.js +1 -1
  909. package/themes/grid-light.src.js +1 -1
  910. package/themes/grid.js +1 -1
  911. package/themes/grid.src.js +1 -1
  912. package/themes/high-contrast-dark.js +2 -2
  913. package/themes/high-contrast-dark.src.js +11 -11
  914. package/themes/high-contrast-light.js +2 -2
  915. package/themes/high-contrast-light.src.js +10 -10
  916. package/themes/sand-signika.js +1 -1
  917. package/themes/sand-signika.src.js +1 -1
  918. package/themes/skies.js +1 -1
  919. package/themes/skies.src.js +1 -1
  920. package/themes/sunset.js +1 -1
  921. package/themes/sunset.src.js +1 -1
  922. package/es-modules/Core/Axis/StackingAxis.js +0 -216
  923. package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
  924. package/es-modules/Core/Axis/TreeGridTick.js +0 -317
  925. package/es-modules/Extensions/Annotations/Annotations.js +0 -1449
  926. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
  927. package/es-modules/Extensions/Annotations/Popup.js +0 -1123
  928. package/es-modules/Extensions/Boost/BoostAttach.js +0 -150
  929. package/es-modules/Extensions/Boost/BoostInit.js +0 -323
  930. package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
  931. package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
  932. package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
  933. package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
  934. package/es-modules/Extensions/FullScreen.js +0 -240
  935. package/es-modules/Extensions/Polar.js +0 -740
  936. package/es-modules/Extensions/Stacking.js +0 -517
  937. package/es-modules/Series/ColorMapMixin.js +0 -84
  938. package/es-modules/Series/DrawPointComposition.js +0 -114
  939. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
  940. package/es-modules/Series/Networkgraph/Integrations.js +0 -348
  941. package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1178
  942. package/es-modules/Series/XRange/XRangeComposition.js +0 -49
@@ -8,44 +8,29 @@
8
8
  *
9
9
  * */
10
10
  'use strict';
11
- import Annotation from './Annotations.js';
12
- import Chart from '../../Core/Chart/Chart.js';
13
11
  import ChartNavigationComposition from '../../Core/Chart/ChartNavigationComposition.js';
12
+ import D from '../../Core/DefaultOptions.js';
13
+ var setOptions = D.setOptions;
14
14
  import F from '../../Core/FormatUtilities.js';
15
15
  var format = F.format;
16
16
  import H from '../../Core/Globals.js';
17
- import D from '../../Core/DefaultOptions.js';
18
- var setOptions = D.setOptions;
17
+ var doc = H.doc, win = H.win;
18
+ import NavigationBindingDefaults from './NavigationBindingsDefaults.js';
19
+ import NBU from './NavigationBindingsUtilities.js';
20
+ var getFieldType = NBU.getFieldType;
19
21
  import U from '../../Core/Utilities.js';
20
- var addEvent = U.addEvent, attr = U.attr, fireEvent = U.fireEvent, isArray = U.isArray, isFunction = U.isFunction, isNumber = U.isNumber, isObject = U.isObject, merge = U.merge, objectEach = U.objectEach, pick = U.pick;
21
- /**
22
- * A config object for navigation bindings in annotations.
22
+ var addEvent = U.addEvent, attr = U.attr, defined = U.defined, fireEvent = U.fireEvent, isArray = U.isArray, isFunction = U.isFunction, isNumber = U.isNumber, isObject = U.isObject, merge = U.merge, objectEach = U.objectEach, pick = U.pick;
23
+ /* *
23
24
  *
24
- * @interface Highcharts.NavigationBindingsOptionsObject
25
- */ /**
26
- * ClassName of the element for a binding.
27
- * @name Highcharts.NavigationBindingsOptionsObject#className
28
- * @type {string|undefined}
29
- */ /**
30
- * Last event to be fired after last step event.
31
- * @name Highcharts.NavigationBindingsOptionsObject#end
32
- * @type {Function|undefined}
33
- */ /**
34
- * Initial event, fired on a button click.
35
- * @name Highcharts.NavigationBindingsOptionsObject#init
36
- * @type {Function|undefined}
37
- */ /**
38
- * Event fired on first click on a chart.
39
- * @name Highcharts.NavigationBindingsOptionsObject#start
40
- * @type {Function|undefined}
41
- */ /**
42
- * Last event to be fired after last step event. Array of step events to be
43
- * called sequentially after each user click.
44
- * @name Highcharts.NavigationBindingsOptionsObject#steps
45
- * @type {Array<Function>|undefined}
46
- */
47
- var doc = H.doc, win = H.win, PREFIX = 'highcharts-';
48
- /* eslint-disable no-invalid-this, valid-jsdoc */
25
+ * Constants
26
+ *
27
+ * */
28
+ var composedClasses = [];
29
+ /* *
30
+ *
31
+ * Functions
32
+ *
33
+ * */
49
34
  /**
50
35
  * IE 9-11 polyfill for Element.closest():
51
36
  * @private
@@ -53,7 +38,8 @@ var doc = H.doc, win = H.win, PREFIX = 'highcharts-';
53
38
  function closestPolyfill(el, s) {
54
39
  var ElementProto = win.Element.prototype, elementMatches = ElementProto.matches ||
55
40
  ElementProto.msMatchesSelector ||
56
- ElementProto.webkitMatchesSelector, ret = null;
41
+ ElementProto.webkitMatchesSelector;
42
+ var ret = null;
57
43
  if (ElementProto.closest) {
58
44
  ret = ElementProto.closest.call(el, s);
59
45
  }
@@ -69,89 +55,163 @@ function closestPolyfill(el, s) {
69
55
  }
70
56
  /**
71
57
  * @private
72
- * @interface bindingsUtils
73
58
  */
74
- var bindingsUtils = {
75
- /**
76
- * Get field type according to value
77
- *
78
- * @private
79
- * @function Highcharts.NavigationBindingsUtilsObject.getFieldType
80
- *
81
- * @param {'boolean'|'number'|'string'} value
82
- * Atomic type (one of: string, number, boolean)
83
- *
84
- * @return {'checkbox'|'number'|'text'}
85
- * Field type (one of: text, number, checkbox)
86
- */
87
- getFieldType: function (value) {
88
- return {
89
- 'string': 'text',
90
- 'number': 'number',
91
- 'boolean': 'checkbox'
92
- }[typeof value];
93
- },
94
- /**
95
- * Update size of background (rect) in some annotations: Measure, Simple
96
- * Rect.
97
- *
98
- * @private
99
- * @function Highcharts.NavigationBindingsUtilsObject.updateRectSize
100
- *
101
- * @param {Highcharts.PointerEventObject} event
102
- * Normalized browser event
103
- *
104
- * @param {Highcharts.Annotation} annotation
105
- * Annotation to be updated
106
- */
107
- updateRectSize: function (event, annotation) {
108
- var chart = annotation.chart, options = annotation.options.typeOptions, xAxis = isNumber(options.xAxis) && chart.xAxis[options.xAxis], yAxis = isNumber(options.yAxis) && chart.yAxis[options.yAxis];
109
- if (xAxis && yAxis) {
110
- var x = xAxis.toValue(event[xAxis.horiz ? 'chartX' : 'chartY']), y = yAxis.toValue(event[yAxis.horiz ? 'chartX' : 'chartY']), width = x - options.point.x, height = options.point.y - y;
111
- annotation.update({
112
- typeOptions: {
113
- background: {
114
- width: chart.inverted ? height : width,
115
- height: chart.inverted ? width : height
59
+ function onAnnotationRemove() {
60
+ if (this.chart.navigationBindings) {
61
+ this.chart.navigationBindings.deselectAnnotation();
62
+ }
63
+ }
64
+ /**
65
+ * @private
66
+ */
67
+ function onChartDestroy() {
68
+ if (this.navigationBindings) {
69
+ this.navigationBindings.destroy();
70
+ }
71
+ }
72
+ /**
73
+ * @private
74
+ */
75
+ function onChartLoad() {
76
+ var options = this.options;
77
+ if (options && options.navigation && options.navigation.bindings) {
78
+ this.navigationBindings = new NavigationBindings(this, options.navigation);
79
+ this.navigationBindings.initEvents();
80
+ this.navigationBindings.initUpdate();
81
+ }
82
+ }
83
+ /**
84
+ * @private
85
+ */
86
+ function onChartRender() {
87
+ var navigationBindings = this.navigationBindings, disabledClassName = 'highcharts-disabled-btn';
88
+ if (this && navigationBindings) {
89
+ // Check if the buttons should be enabled/disabled based on
90
+ // visible series.
91
+ var buttonsEnabled_1 = false;
92
+ this.series.forEach(function (series) {
93
+ if (!series.options.isInternal && series.visible) {
94
+ buttonsEnabled_1 = true;
95
+ }
96
+ });
97
+ if (this.navigationBindings &&
98
+ this.navigationBindings.container &&
99
+ this.navigationBindings.container[0]) {
100
+ var container_1 = this.navigationBindings.container[0];
101
+ objectEach(navigationBindings.boundClassNames, function (value, key) {
102
+ // Get the HTML element coresponding to the className taken
103
+ // from StockToolsBindings.
104
+ var buttonNode = container_1.querySelectorAll('.' + key);
105
+ if (buttonNode) {
106
+ for (var i = 0; i < buttonNode.length; i++) {
107
+ var button = buttonNode[i], cls = button.className;
108
+ if (value.noDataState === 'normal') {
109
+ // If button has noDataState: 'normal', and has
110
+ // disabledClassName, remove this className.
111
+ if (cls.indexOf(disabledClassName) !== -1) {
112
+ button.classList.remove(disabledClassName);
113
+ }
114
+ }
115
+ else if (!buttonsEnabled_1) {
116
+ if (cls.indexOf(disabledClassName) === -1) {
117
+ button.className += ' ' + disabledClassName;
118
+ }
119
+ }
120
+ else {
121
+ // Enable all buttons by deleting the className.
122
+ if (cls.indexOf(disabledClassName) !== -1) {
123
+ button.classList.remove(disabledClassName);
124
+ }
125
+ }
116
126
  }
117
127
  }
118
128
  });
119
129
  }
120
- },
130
+ }
131
+ }
132
+ /**
133
+ * @private
134
+ */
135
+ function onNavigationBindingsClosePopup() {
136
+ this.deselectAnnotation();
137
+ }
138
+ /**
139
+ * @private
140
+ */
141
+ function onNavigationBindingsDeselectButton() {
142
+ this.selectedButtonElement = null;
143
+ }
144
+ /**
145
+ * Show edit-annotation form:
146
+ * @private
147
+ */
148
+ function selectableAnnotation(annotationType) {
149
+ var originalClick = annotationType.prototype.defaultOptions.events &&
150
+ annotationType.prototype.defaultOptions.events.click;
121
151
  /**
122
- * Returns the first xAxis or yAxis that was clicked with its value.
123
- *
152
+ * Select and show popup
124
153
  * @private
125
- * @function Highcharts.NavigationBindingsUtilsObject#getAssignedAxis
126
- *
127
- * @param {Array<Highcharts.PointerAxisCoordinateObject>} coords
128
- * All the chart's x or y axes with a current pointer's axis value.
129
- *
130
- * @return {Highcharts.PointerAxisCoordinateObject}
131
- * Object with a first found axis and its value that pointer
132
- * is currently pointing.
133
154
  */
134
- getAssignedAxis: function (coords) {
135
- return coords.filter(function (coord) {
136
- var extremes = coord.axis.getExtremes(), axisMin = extremes.min, axisMax = extremes.max,
137
- // Correct axis edges when axis has series
138
- // with pointRange (like column)
139
- minPointOffset = pick(coord.axis.minPointOffset, 0);
140
- return isNumber(axisMin) && isNumber(axisMax) &&
141
- coord.value >= (axisMin - minPointOffset) &&
142
- coord.value <= (axisMax + minPointOffset) &&
143
- // don't count navigator axis
144
- !coord.axis.options.isInternal;
145
- })[0]; // If the axes overlap, return the first axis that was found.
155
+ function selectAndShowPopup(eventArguments) {
156
+ var annotation = this, navigation = annotation.chart.navigationBindings, prevAnnotation = navigation.activeAnnotation;
157
+ if (originalClick) {
158
+ originalClick.call(annotation, eventArguments);
159
+ }
160
+ if (prevAnnotation !== annotation) {
161
+ // Select current:
162
+ navigation.deselectAnnotation();
163
+ navigation.activeAnnotation = annotation;
164
+ annotation.setControlPointsVisibility(true);
165
+ fireEvent(navigation, 'showPopup', {
166
+ annotation: annotation,
167
+ formType: 'annotation-toolbar',
168
+ options: navigation.annotationToFields(annotation),
169
+ onSubmit: function (data) {
170
+ if (data.actionType === 'remove') {
171
+ navigation.activeAnnotation = false;
172
+ navigation.chart.removeAnnotation(annotation);
173
+ }
174
+ else {
175
+ var config = {};
176
+ navigation.fieldsToOptions(data.fields, config);
177
+ navigation.deselectAnnotation();
178
+ var typeOptions = config.typeOptions;
179
+ if (annotation.options.type === 'measure') {
180
+ // Manually disable crooshars according to
181
+ // stroke width of the shape:
182
+ typeOptions.crosshairY.enabled = (typeOptions.crosshairY
183
+ .strokeWidth !== 0);
184
+ typeOptions.crosshairX.enabled = (typeOptions.crosshairX
185
+ .strokeWidth !== 0);
186
+ }
187
+ annotation.update(config);
188
+ }
189
+ }
190
+ });
191
+ }
192
+ else {
193
+ // Deselect current:
194
+ fireEvent(navigation, 'closePopup');
195
+ }
196
+ // Let bubble event to chart.click:
197
+ eventArguments.activeAnnotation = true;
146
198
  }
147
- };
199
+ merge(true, annotationType.prototype.defaultOptions.events, {
200
+ click: selectAndShowPopup
201
+ });
202
+ }
203
+ /* *
204
+ *
205
+ * Class
206
+ *
207
+ * */
148
208
  /**
149
209
  * @private
150
210
  */
151
211
  var NavigationBindings = /** @class */ (function () {
152
212
  /* *
153
213
  *
154
- * Constructors
214
+ * Constructor
155
215
  *
156
216
  * */
157
217
  function NavigationBindings(chart, options) {
@@ -160,24 +220,45 @@ var NavigationBindings = /** @class */ (function () {
160
220
  this.chart = chart;
161
221
  this.options = options;
162
222
  this.eventsToUnbind = [];
163
- this.container = doc.getElementsByClassName(this.options.bindingsClassName || '');
223
+ this.container = this.chart.container
224
+ .querySelectorAll('.' + this.options.bindingsClassName);
225
+ if (!this.container.length) {
226
+ this.container = doc
227
+ .querySelectorAll('.' + this.options.bindingsClassName);
228
+ }
164
229
  }
165
- // Private properties added by bindings:
166
- // Active (selected) annotation that is editted through popup/forms
167
- // activeAnnotation: Annotation
168
- // Holder for current step, used on mouse move to update bound object
169
- // mouseMoveEvent: function () {}
170
- // Next event in `step` array to be called on chart's click
171
- // nextEvent: function () {}
172
- // Index in the `step` array of the current event
173
- // stepIndex: 0
174
- // Flag to determine if current binding has steps
175
- // steps: true|false
176
- // Bindings holder for all events
177
- // selectedButton: {}
178
- // Holder for user options, returned from `start` event, and passed on to
179
- // `step`'s' and `end`.
180
- // currentUserDetails: {}
230
+ /* *
231
+ *
232
+ * Static Functions
233
+ *
234
+ * */
235
+ NavigationBindings.compose = function (AnnotationClass, ChartClass) {
236
+ if (composedClasses.indexOf(AnnotationClass) === -1) {
237
+ composedClasses.push(AnnotationClass);
238
+ addEvent(AnnotationClass, 'remove', onAnnotationRemove);
239
+ // Basic shapes:
240
+ selectableAnnotation(AnnotationClass);
241
+ // Advanced annotations:
242
+ objectEach(AnnotationClass.types, function (annotationType) {
243
+ selectableAnnotation(annotationType);
244
+ });
245
+ }
246
+ if (composedClasses.indexOf(ChartClass) === -1) {
247
+ composedClasses.push(ChartClass);
248
+ addEvent(ChartClass, 'destroy', onChartDestroy);
249
+ addEvent(ChartClass, 'load', onChartLoad);
250
+ addEvent(ChartClass, 'render', onChartRender);
251
+ }
252
+ if (composedClasses.indexOf(NavigationBindings) === -1) {
253
+ composedClasses.push(NavigationBindings);
254
+ addEvent(NavigationBindings, 'closePopup', onNavigationBindingsClosePopup);
255
+ addEvent(NavigationBindings, 'deselectButton', onNavigationBindingsDeselectButton);
256
+ }
257
+ if (composedClasses.indexOf(setOptions) === -1) {
258
+ composedClasses.push(setOptions);
259
+ setOptions(NavigationBindingDefaults);
260
+ }
261
+ };
181
262
  /* *
182
263
  *
183
264
  * Functions
@@ -207,7 +288,7 @@ var NavigationBindings = /** @class */ (function () {
207
288
  }
208
289
  }));
209
290
  });
210
- objectEach(options.events || {}, function (callback, eventName) {
291
+ objectEach((options.events || {}), function (callback, eventName) {
211
292
  if (isFunction(callback)) {
212
293
  navigation.eventsToUnbind.push(addEvent(navigation, eventName, callback, { passive: false }));
213
294
  }
@@ -280,12 +361,13 @@ var NavigationBindings = /** @class */ (function () {
280
361
  events.init.call(navigation, button, clickEvent);
281
362
  }
282
363
  if (events.start || events.steps) {
283
- chart.renderer.boxWrapper.addClass(PREFIX + 'draw-mode');
364
+ chart.renderer.boxWrapper.addClass('highcharts-draw-mode');
284
365
  }
285
366
  }
286
367
  else {
287
- chart.stockTools && chart.stockTools.toggleButtonAciveClass(button);
288
- svgContainer.removeClass(PREFIX + 'draw-mode');
368
+ chart.stockTools &&
369
+ chart.stockTools.toggleButtonActiveClass(button);
370
+ svgContainer.removeClass('highcharts-draw-mode');
289
371
  navigation.nextEvent = false;
290
372
  navigation.mouseMoveEvent = false;
291
373
  navigation.selectedButton = null;
@@ -316,7 +398,7 @@ var NavigationBindings = /** @class */ (function () {
316
398
  // Element could be removed in the child action, e.g. button
317
399
  clickEvent.target.parentNode &&
318
400
  // TO DO: Polyfill for IE11?
319
- !closestPolyfill(clickEvent.target, '.' + PREFIX + 'popup')) {
401
+ !closestPolyfill(clickEvent.target, '.highcharts-popup')) {
320
402
  fireEvent(navigation, 'closePopup');
321
403
  }
322
404
  else if (activeAnnotation.cancelClick) {
@@ -341,7 +423,7 @@ var NavigationBindings = /** @class */ (function () {
341
423
  }
342
424
  else {
343
425
  fireEvent(navigation, 'deselectButton', { button: navigation.selectedButtonElement });
344
- svgContainer.removeClass(PREFIX + 'draw-mode');
426
+ svgContainer.removeClass('highcharts-draw-mode');
345
427
  navigation.steps = false;
346
428
  navigation.selectedButton = null;
347
429
  // First click is also the last one:
@@ -360,7 +442,7 @@ var NavigationBindings = /** @class */ (function () {
360
442
  }
361
443
  else {
362
444
  fireEvent(navigation, 'deselectButton', { button: navigation.selectedButtonElement });
363
- svgContainer.removeClass(PREFIX + 'draw-mode');
445
+ svgContainer.removeClass('highcharts-draw-mode');
364
446
  // That was the last step, call end():
365
447
  if (selectedButton.end) {
366
448
  selectedButton.end.call(navigation, clickEvent, navigation.currentUserDetails);
@@ -407,29 +489,30 @@ var NavigationBindings = /** @class */ (function () {
407
489
  */
408
490
  NavigationBindings.prototype.fieldsToOptions = function (fields, config) {
409
491
  objectEach(fields, function (value, field) {
410
- var parsedValue = parseFloat(value), path = field.split('.'), parent = config, pathLength = path.length - 1;
492
+ var parsedValue = parseFloat(value), path = field.split('.'), pathLength = path.length - 1;
411
493
  // If it's a number (not "format" options), parse it:
412
494
  if (isNumber(parsedValue) &&
413
495
  !value.match(/px/g) &&
414
496
  !field.match(/format/g)) {
415
497
  value = parsedValue;
416
498
  }
417
- // Remove empty strings or values like 0
418
- if (value !== '' && value !== 'undefined') {
499
+ // Remove values like 0
500
+ if (value !== 'undefined') {
501
+ var parent_1 = config;
419
502
  path.forEach(function (name, index) {
420
503
  var nextName = pick(path[index + 1], '');
421
504
  if (pathLength === index) {
422
505
  // Last index, put value:
423
- parent[name] = value;
506
+ parent_1[name] = value;
424
507
  }
425
- else if (!parent[name]) {
508
+ else if (!parent_1[name]) {
426
509
  // Create middle property:
427
- parent[name] = nextName.match(/\d/g) ? [] : {};
428
- parent = parent[name];
510
+ parent_1[name] = nextName.match(/\d/g) ? [] : {};
511
+ parent_1 = parent_1[name];
429
512
  }
430
513
  else {
431
514
  // Jump into next property
432
- parent = parent[name];
515
+ parent_1 = parent_1[name];
433
516
  }
434
517
  });
435
518
  }
@@ -460,9 +543,9 @@ var NavigationBindings = /** @class */ (function () {
460
543
  * Annotation options to be displayed in popup box
461
544
  */
462
545
  NavigationBindings.prototype.annotationToFields = function (annotation) {
463
- var options = annotation.options, editables = NavigationBindings.annotationsEditable, nestedEditables = editables.nestedOptions, getFieldType = this.utils.getFieldType, type = pick(options.type, options.shapes && options.shapes[0] &&
546
+ var options = annotation.options, editables = NavigationBindings.annotationsEditable, nestedEditables = editables.nestedOptions, type = pick(options.type, options.shapes && options.shapes[0] &&
464
547
  options.shapes[0].type, options.labels && options.labels[0] &&
465
- options.labels[0].itemType, 'label'), nonEditables = NavigationBindings.annotationsNonEditable[options.langKey] || [], visualOptions = {
548
+ options.labels[0].type, 'label'), nonEditables = NavigationBindings.annotationsNonEditable[options.langKey] || [], visualOptions = {
466
549
  langKey: options.langKey,
467
550
  type: type
468
551
  };
@@ -485,7 +568,7 @@ var NavigationBindings = /** @class */ (function () {
485
568
  * @param {Object} parent
486
569
  * Where new options will be assigned
487
570
  */
488
- function traverse(option, key, parentEditables, parent) {
571
+ function traverse(option, key, parentEditables, parent, parentKey) {
489
572
  var nextParent;
490
573
  if (parentEditables &&
491
574
  option &&
@@ -501,13 +584,13 @@ var NavigationBindings = /** @class */ (function () {
501
584
  option.forEach(function (arrayOption, i) {
502
585
  if (!isObject(arrayOption)) {
503
586
  // Simple arrays, e.g. [String, Number, Boolean]
504
- traverse(arrayOption, 0, nestedEditables[key], parent[key]);
587
+ traverse(arrayOption, 0, nestedEditables[key], parent[key], key);
505
588
  }
506
589
  else {
507
590
  // Advanced arrays, e.g. [Object, Object]
508
591
  parent[key][i] = {};
509
592
  objectEach(arrayOption, function (nestedOption, nestedKey) {
510
- traverse(nestedOption, nestedKey, nestedEditables[key], parent[key][i]);
593
+ traverse(nestedOption, nestedKey, nestedEditables[key], parent[key][i], key);
511
594
  });
512
595
  }
513
596
  });
@@ -525,7 +608,7 @@ var NavigationBindings = /** @class */ (function () {
525
608
  objectEach(option, function (nestedOption, nestedKey) {
526
609
  traverse(nestedOption, nestedKey, key === 0 ?
527
610
  parentEditables :
528
- nestedEditables[key], nextParent);
611
+ nestedEditables[key], nextParent, key);
529
612
  });
530
613
  }
531
614
  else {
@@ -537,10 +620,10 @@ var NavigationBindings = /** @class */ (function () {
537
620
  ];
538
621
  }
539
622
  else if (isArray(parent)) {
540
- parent.push([option, getFieldType(option)]);
623
+ parent.push([option, getFieldType(parentKey, option)]);
541
624
  }
542
625
  else {
543
- parent[key] = [option, getFieldType(option)];
626
+ parent[key] = [option, getFieldType(key, option)];
544
627
  }
545
628
  }
546
629
  }
@@ -549,11 +632,11 @@ var NavigationBindings = /** @class */ (function () {
549
632
  if (key === 'typeOptions') {
550
633
  visualOptions[key] = {};
551
634
  objectEach(options[key], function (typeOption, typeKey) {
552
- traverse(typeOption, typeKey, nestedEditables, visualOptions[key], true);
635
+ traverse(typeOption, typeKey, nestedEditables, visualOptions[key], typeKey);
553
636
  });
554
637
  }
555
638
  else {
556
- traverse(option, key, editables[type], visualOptions);
639
+ traverse(option, key, editables[type], visualOptions, key);
557
640
  }
558
641
  });
559
642
  return visualOptions;
@@ -562,6 +645,7 @@ var NavigationBindings = /** @class */ (function () {
562
645
  * Get all class names for all parents in the element. Iterates until finds
563
646
  * main container.
564
647
  *
648
+ * @private
565
649
  * @function Highcharts.NavigationBindings#getClickedClassNames
566
650
  *
567
651
  * @param {Highcharts.HTMLDOMElement} container
@@ -580,12 +664,8 @@ var NavigationBindings = /** @class */ (function () {
580
664
  if (elemClassName) {
581
665
  classNames = classNames.concat(elemClassName
582
666
  .split(' ')
583
- .map(function (name) {
584
- return [
585
- name,
586
- element
587
- ];
588
- }));
667
+ // eslint-disable-next-line no-loop-func
668
+ .map(function (name) { return ([name, element]); }));
589
669
  }
590
670
  element = element.parentNode;
591
671
  if (element === container) {
@@ -611,7 +691,8 @@ var NavigationBindings = /** @class */ (function () {
611
691
  * Object with events (init, start, steps, and end)
612
692
  */
613
693
  NavigationBindings.prototype.getButtonEvents = function (container, event) {
614
- var navigation = this, classNames = this.getClickedClassNames(container, event), bindings;
694
+ var navigation = this, classNames = this.getClickedClassNames(container, event);
695
+ var bindings;
615
696
  classNames.forEach(function (className) {
616
697
  if (navigation.boundClassNames[className[0]] && !bindings) {
617
698
  bindings = {
@@ -641,10 +722,12 @@ var NavigationBindings = /** @class */ (function () {
641
722
  * @function Highcharts.NavigationBindings#removeEvents
642
723
  */
643
724
  NavigationBindings.prototype.removeEvents = function () {
644
- this.eventsToUnbind.forEach(function (unbinder) {
645
- unbinder();
646
- });
725
+ this.eventsToUnbind.forEach(function (unbinder) { return unbinder(); });
647
726
  };
727
+ /**
728
+ * @private
729
+ * @function Highcharts.NavigationBindings#destroy
730
+ */
648
731
  NavigationBindings.prototype.destroy = function () {
649
732
  this.removeEvents();
650
733
  };
@@ -698,515 +781,41 @@ var NavigationBindings = /** @class */ (function () {
698
781
  };
699
782
  return NavigationBindings;
700
783
  }());
701
- /**
702
- * General utils for bindings
784
+ /* *
703
785
  *
704
- * @private
705
- * @name Highcharts.NavigationBindings.utils
706
- * @type {bindingsUtils}
707
- */
708
- NavigationBindings.prototype.utils = bindingsUtils;
709
- Chart.prototype.initNavigationBindings = function () {
710
- var chart = this, options = chart.options;
711
- if (options && options.navigation && options.navigation.bindings) {
712
- chart.navigationBindings = new NavigationBindings(chart, options.navigation);
713
- chart.navigationBindings.initEvents();
714
- chart.navigationBindings.initUpdate();
715
- }
716
- };
717
- addEvent(Chart, 'load', function () {
718
- this.initNavigationBindings();
719
- });
720
- addEvent(Chart, 'destroy', function () {
721
- if (this.navigationBindings) {
722
- this.navigationBindings.destroy();
723
- }
724
- });
725
- addEvent(NavigationBindings, 'deselectButton', function () {
726
- this.selectedButtonElement = null;
727
- });
728
- addEvent(Annotation, 'remove', function () {
729
- if (this.chart.navigationBindings) {
730
- this.chart.navigationBindings.deselectAnnotation();
731
- }
732
- });
733
- /**
734
- * Show edit-annotation form:
735
- * @private
736
- */
737
- function selectableAnnotation(annotationType) {
738
- var originalClick = annotationType.prototype.defaultOptions.events &&
739
- annotationType.prototype.defaultOptions.events.click;
740
- /**
741
- * @private
742
- */
743
- function selectAndShowPopup(eventArguments) {
744
- var annotation = this, navigation = annotation.chart.navigationBindings, prevAnnotation = navigation.activeAnnotation;
745
- if (originalClick) {
746
- originalClick.call(annotation, eventArguments);
747
- }
748
- if (prevAnnotation !== annotation) {
749
- // Select current:
750
- navigation.deselectAnnotation();
751
- navigation.activeAnnotation = annotation;
752
- annotation.setControlPointsVisibility(true);
753
- fireEvent(navigation, 'showPopup', {
754
- annotation: annotation,
755
- formType: 'annotation-toolbar',
756
- options: navigation.annotationToFields(annotation),
757
- onSubmit: function (data) {
758
- var config = {}, typeOptions;
759
- if (data.actionType === 'remove') {
760
- navigation.activeAnnotation = false;
761
- navigation.chart.removeAnnotation(annotation);
762
- }
763
- else {
764
- navigation.fieldsToOptions(data.fields, config);
765
- navigation.deselectAnnotation();
766
- typeOptions = config.typeOptions;
767
- if (annotation.options.type === 'measure') {
768
- // Manually disable crooshars according to
769
- // stroke width of the shape:
770
- typeOptions.crosshairY.enabled = (typeOptions.crosshairY
771
- .strokeWidth !== 0);
772
- typeOptions.crosshairX.enabled = (typeOptions.crosshairX
773
- .strokeWidth !== 0);
774
- }
775
- annotation.update(config);
776
- }
777
- }
778
- });
779
- }
780
- else {
781
- // Deselect current:
782
- fireEvent(navigation, 'closePopup');
783
- }
784
- // Let bubble event to chart.click:
785
- eventArguments.activeAnnotation = true;
786
- }
787
- merge(true, annotationType.prototype.defaultOptions.events, {
788
- click: selectAndShowPopup
789
- });
790
- }
791
- if (H.Annotation) {
792
- // Basic shapes:
793
- selectableAnnotation(Annotation);
794
- // Advanced annotations:
795
- objectEach(Annotation.types, function (annotationType) {
796
- selectableAnnotation(annotationType);
797
- });
798
- }
799
- setOptions({
800
- /**
801
- * @optionparent lang
802
- *
803
- * @private
804
- */
805
- lang: {
806
- /**
807
- * Configure the Popup strings in the chart. Requires the
808
- * `annotations.js` or `annotations-advanced.src.js` module to be
809
- * loaded.
810
- * @since 7.0.0
811
- * @product highcharts highstock
812
- */
813
- navigation: {
814
- /**
815
- * Translations for all field names used in popup.
816
- *
817
- * @product highcharts highstock
818
- */
819
- popup: {
820
- simpleShapes: 'Simple shapes',
821
- lines: 'Lines',
822
- circle: 'Circle',
823
- ellipse: 'Ellipse',
824
- rectangle: 'Rectangle',
825
- label: 'Label',
826
- shapeOptions: 'Shape options',
827
- typeOptions: 'Details',
828
- fill: 'Fill',
829
- format: 'Text',
830
- strokeWidth: 'Line width',
831
- stroke: 'Line color',
832
- title: 'Title',
833
- name: 'Name',
834
- labelOptions: 'Label options',
835
- labels: 'Labels',
836
- backgroundColor: 'Background color',
837
- backgroundColors: 'Background colors',
838
- borderColor: 'Border color',
839
- borderRadius: 'Border radius',
840
- borderWidth: 'Border width',
841
- style: 'Style',
842
- padding: 'Padding',
843
- fontSize: 'Font size',
844
- color: 'Color',
845
- height: 'Height',
846
- shapes: 'Shape options'
847
- }
848
- }
849
- },
850
- /**
851
- * @optionparent navigation
852
- * @product highcharts highstock
853
- *
854
- * @private
855
- */
856
- navigation: {
857
- /**
858
- * A CSS class name where all bindings will be attached to. Multiple
859
- * charts on the same page should have separate class names to prevent
860
- * duplicating events.
861
- *
862
- * Default value of versions < 7.0.4 `highcharts-bindings-wrapper`
863
- *
864
- * @since 7.0.0
865
- * @type {string}
866
- */
867
- bindingsClassName: 'highcharts-bindings-container',
868
- /**
869
- * Bindings definitions for custom HTML buttons. Each binding implements
870
- * simple event-driven interface:
871
- *
872
- * - `className`: classname used to bind event to
873
- *
874
- * - `init`: initial event, fired on button click
875
- *
876
- * - `start`: fired on first click on a chart
877
- *
878
- * - `steps`: array of sequential events fired one after another on each
879
- * of users clicks
880
- *
881
- * - `end`: last event to be called after last step event
882
- *
883
- * @type {Highcharts.Dictionary<Highcharts.NavigationBindingsOptionsObject>|*}
884
- *
885
- * @sample {highstock} stock/stocktools/stocktools-thresholds
886
- * Custom bindings
887
- * @sample {highcharts} highcharts/annotations/bindings/
888
- * Simple binding
889
- * @sample {highcharts} highcharts/annotations/bindings-custom-annotation/
890
- * Custom annotation binding
891
- *
892
- * @since 7.0.0
893
- * @requires modules/annotations
894
- * @product highcharts highstock
895
- */
896
- bindings: {
897
- /**
898
- * A circle annotation bindings. Includes `start` and one event in
899
- * `steps` array.
900
- *
901
- * @type {Highcharts.NavigationBindingsOptionsObject}
902
- * @default {"className": "highcharts-circle-annotation", "start": function() {}, "steps": [function() {}], "annotationsOptions": {}}
903
- */
904
- circleAnnotation: {
905
- /** @ignore-option */
906
- className: 'highcharts-circle-annotation',
907
- /** @ignore-option */
908
- start: function (e) {
909
- var coords = this.chart.pointer.getCoordinates(e), coordsX = this.utils.getAssignedAxis(coords.xAxis), coordsY = this.utils.getAssignedAxis(coords.yAxis), navigation = this.chart.options.navigation;
910
- // Exit if clicked out of axes area
911
- if (!coordsX || !coordsY) {
912
- return;
913
- }
914
- return this.chart.addAnnotation(merge({
915
- langKey: 'circle',
916
- type: 'basicAnnotation',
917
- shapes: [{
918
- type: 'circle',
919
- point: {
920
- x: coordsX.value,
921
- y: coordsY.value,
922
- xAxis: coordsX.axis.options.index,
923
- yAxis: coordsY.axis.options.index
924
- },
925
- r: 5
926
- }]
927
- }, navigation.annotationsOptions, navigation.bindings.circleAnnotation
928
- .annotationsOptions));
929
- },
930
- /** @ignore-option */
931
- steps: [
932
- function (e, annotation) {
933
- var mockPointOpts = annotation.options.shapes[0]
934
- .point, distance;
935
- if (isNumber(mockPointOpts.xAxis) &&
936
- isNumber(mockPointOpts.yAxis)) {
937
- var inverted = this.chart.inverted, x = this.chart.xAxis[mockPointOpts.xAxis]
938
- .toPixels(mockPointOpts.x), y = this.chart.yAxis[mockPointOpts.yAxis]
939
- .toPixels(mockPointOpts.y);
940
- distance = Math.max(Math.sqrt(Math.pow(inverted ? y - e.chartX : x - e.chartX, 2) +
941
- Math.pow(inverted ? x - e.chartY : y - e.chartY, 2)), 5);
942
- }
943
- annotation.update({
944
- shapes: [{
945
- r: distance
946
- }]
947
- });
948
- }
949
- ]
950
- },
951
- ellipseAnnotation: {
952
- className: 'highcharts-ellipse-annotation',
953
- start: function (e) {
954
- var coords = this.chart.pointer.getCoordinates(e), coordsX = this.utils.getAssignedAxis(coords.xAxis), coordsY = this.utils.getAssignedAxis(coords.yAxis), navigation = this.chart.options.navigation;
955
- if (!coordsX || !coordsY) {
956
- return;
957
- }
958
- return this.chart.addAnnotation(merge({
959
- langKey: 'ellipse',
960
- type: 'basicAnnotation',
961
- shapes: [
962
- {
963
- type: 'ellipse',
964
- xAxis: coordsX.axis.options.index,
965
- yAxis: coordsY.axis.options.index,
966
- points: [{
967
- x: coordsX.value,
968
- y: coordsY.value
969
- }, {
970
- x: coordsX.value,
971
- y: coordsY.value
972
- }],
973
- ry: 1
974
- }
975
- ]
976
- }, navigation.annotationsOptions, navigation.bindings.ellipseAnnotation
977
- .annotationOptions));
978
- },
979
- steps: [
980
- function (e, annotation) {
981
- var target = annotation.shapes[0], position = target.getAbsolutePosition(target.points[1]);
982
- target.translatePoint(e.chartX - position.x, e.chartY - position.y, 1);
983
- target.redraw(false);
984
- },
985
- function (e, annotation) {
986
- var target = annotation.shapes[0], position = target.getAbsolutePosition(target.points[0]), position2 = target.getAbsolutePosition(target.points[1]), newR = target.getDistanceFromLine(position, position2, e.chartX, e.chartY), yAxis = target.getYAxis(), newRY = Math.abs(yAxis.toValue(0) - yAxis.toValue(newR));
987
- target.setYRadius(newRY);
988
- target.redraw(false);
989
- }
990
- ]
991
- },
992
- /**
993
- * A rectangle annotation bindings. Includes `start` and one event
994
- * in `steps` array.
995
- *
996
- * @type {Highcharts.NavigationBindingsOptionsObject}
997
- * @default {"className": "highcharts-rectangle-annotation", "start": function() {}, "steps": [function() {}], "annotationsOptions": {}}
998
- */
999
- rectangleAnnotation: {
1000
- /** @ignore-option */
1001
- className: 'highcharts-rectangle-annotation',
1002
- /** @ignore-option */
1003
- start: function (e) {
1004
- var coords = this.chart.pointer.getCoordinates(e), coordsX = this.utils.getAssignedAxis(coords.xAxis), coordsY = this.utils.getAssignedAxis(coords.yAxis);
1005
- // Exit if clicked out of axes area
1006
- if (!coordsX || !coordsY) {
1007
- return;
1008
- }
1009
- var x = coordsX.value, y = coordsY.value, xAxis = coordsX.axis.options.index, yAxis = coordsY.axis.options.index, navigation = this.chart.options.navigation;
1010
- return this.chart.addAnnotation(merge({
1011
- langKey: 'rectangle',
1012
- type: 'basicAnnotation',
1013
- shapes: [{
1014
- type: 'path',
1015
- points: [
1016
- { xAxis: xAxis, yAxis: yAxis, x: x, y: y },
1017
- { xAxis: xAxis, yAxis: yAxis, x: x, y: y },
1018
- { xAxis: xAxis, yAxis: yAxis, x: x, y: y },
1019
- { xAxis: xAxis, yAxis: yAxis, x: x, y: y },
1020
- { command: 'Z' }
1021
- ]
1022
- }]
1023
- }, navigation
1024
- .annotationsOptions, navigation
1025
- .bindings
1026
- .rectangleAnnotation
1027
- .annotationsOptions));
1028
- },
1029
- /** @ignore-option */
1030
- steps: [
1031
- function (e, annotation) {
1032
- var points = annotation.options.shapes[0].points, coords = this.chart.pointer.getCoordinates(e), coordsX = this.utils.getAssignedAxis(coords.xAxis), coordsY = this.utils.getAssignedAxis(coords.yAxis), x, y;
1033
- if (coordsX && coordsY) {
1034
- x = coordsX.value;
1035
- y = coordsY.value;
1036
- // Top right point
1037
- points[1].x = x;
1038
- // Bottom right point (cursor position)
1039
- points[2].x = x;
1040
- points[2].y = y;
1041
- // Bottom left
1042
- points[3].y = y;
1043
- annotation.update({
1044
- shapes: [{
1045
- points: points
1046
- }]
1047
- });
1048
- }
1049
- }
1050
- ]
1051
- },
1052
- /**
1053
- * A label annotation bindings. Includes `start` event only.
1054
- *
1055
- * @type {Highcharts.NavigationBindingsOptionsObject}
1056
- * @default {"className": "highcharts-label-annotation", "start": function() {}, "steps": [function() {}], "annotationsOptions": {}}
1057
- */
1058
- labelAnnotation: {
1059
- /** @ignore-option */
1060
- className: 'highcharts-label-annotation',
1061
- /** @ignore-option */
1062
- start: function (e) {
1063
- var coords = this.chart.pointer.getCoordinates(e), coordsX = this.utils.getAssignedAxis(coords.xAxis), coordsY = this.utils.getAssignedAxis(coords.yAxis), navigation = this.chart.options.navigation;
1064
- // Exit if clicked out of axes area
1065
- if (!coordsX || !coordsY) {
1066
- return;
1067
- }
1068
- return this.chart.addAnnotation(merge({
1069
- langKey: 'label',
1070
- type: 'basicAnnotation',
1071
- labelOptions: {
1072
- format: '{y:.2f}'
1073
- },
1074
- labels: [{
1075
- point: {
1076
- xAxis: coordsX.axis.options.index,
1077
- yAxis: coordsY.axis.options.index,
1078
- x: coordsX.value,
1079
- y: coordsY.value
1080
- },
1081
- overflow: 'none',
1082
- crop: true
1083
- }]
1084
- }, navigation
1085
- .annotationsOptions, navigation
1086
- .bindings
1087
- .labelAnnotation
1088
- .annotationsOptions));
1089
- }
1090
- }
1091
- },
1092
- /**
1093
- * Path where Highcharts will look for icons. Change this to use icons
1094
- * from a different server.
1095
- *
1096
- * @type {string}
1097
- * @default https://code.highcharts.com/10.0.0/gfx/stock-icons/
1098
- * @since 7.1.3
1099
- * @apioption navigation.iconsURL
1100
- */
1101
- /**
1102
- * A `showPopup` event. Fired when selecting for example an annotation.
1103
- *
1104
- * @type {Function}
1105
- * @apioption navigation.events.showPopup
1106
- */
1107
- /**
1108
- * A `closePopup` event. Fired when Popup should be hidden, for example
1109
- * when clicking on an annotation again.
1110
- *
1111
- * @type {Function}
1112
- * @apioption navigation.events.closePopup
1113
- */
1114
- /**
1115
- * Event fired on a button click.
1116
- *
1117
- * @type {Function}
1118
- * @sample highcharts/annotations/gui/
1119
- * Change icon in a dropddown on event
1120
- * @sample highcharts/annotations/gui-buttons/
1121
- * Change button class on event
1122
- * @apioption navigation.events.selectButton
1123
- */
1124
- /**
1125
- * Event fired when button state should change, for example after
1126
- * adding an annotation.
1127
- *
1128
- * @type {Function}
1129
- * @sample highcharts/annotations/gui/
1130
- * Change icon in a dropddown on event
1131
- * @sample highcharts/annotations/gui-buttons/
1132
- * Change button class on event
1133
- * @apioption navigation.events.deselectButton
1134
- */
1135
- /**
1136
- * Events to communicate between Stock Tools and custom GUI.
1137
- *
1138
- * @since 7.0.0
1139
- * @product highcharts highstock
1140
- * @optionparent navigation.events
1141
- */
1142
- events: {},
1143
- /**
1144
- * Additional options to be merged into all annotations.
1145
- *
1146
- * @sample stock/stocktools/navigation-annotation-options
1147
- * Set red color of all line annotations
1148
- *
1149
- * @type {Highcharts.AnnotationsOptions}
1150
- * @extends annotations
1151
- * @exclude crookedLine, elliottWave, fibonacci, infinityLine,
1152
- * measure, pitchfork, tunnel, verticalLine, basicAnnotation
1153
- * @requires modules/annotations
1154
- * @apioption navigation.annotationsOptions
1155
- */
1156
- annotationsOptions: {
1157
- animation: {
1158
- defer: 0
1159
- }
1160
- }
1161
- }
1162
- });
1163
- addEvent(Chart, 'render', function () {
1164
- var chart = this, navigationBindings = chart.navigationBindings, disabledClassName = 'highcharts-disabled-btn';
1165
- if (chart && navigationBindings) {
1166
- // Check if the buttons should be enabled/disabled based on
1167
- // visible series.
1168
- var buttonsEnabled_1 = false;
1169
- chart.series.forEach(function (series) {
1170
- if (!series.options.isInternal && series.visible) {
1171
- buttonsEnabled_1 = true;
1172
- }
1173
- });
1174
- objectEach(navigationBindings.boundClassNames, function (value, key) {
1175
- if (chart.navigationBindings &&
1176
- chart.navigationBindings.container &&
1177
- chart.navigationBindings.container[0]) {
1178
- // Get the HTML element coresponding to the className taken
1179
- // from StockToolsBindings.
1180
- var buttonNode = chart.navigationBindings.container[0]
1181
- .querySelectorAll('.' + key);
1182
- if (buttonNode) {
1183
- for (var i = 0; i < buttonNode.length; i++) {
1184
- var button = buttonNode[i], cls = button.className;
1185
- if (value.noDataState === 'normal') {
1186
- // If button has noDataState: 'normal', and has
1187
- // disabledClassName, remove this className.
1188
- if (cls.indexOf(disabledClassName) !== -1) {
1189
- button.classList.remove(disabledClassName);
1190
- }
1191
- }
1192
- else if (!buttonsEnabled_1) {
1193
- if (cls.indexOf(disabledClassName) === -1) {
1194
- button.className += ' ' + disabledClassName;
1195
- }
1196
- }
1197
- else {
1198
- // Enable all buttons by deleting the className.
1199
- if (cls.indexOf(disabledClassName) !== -1) {
1200
- button.classList.remove(disabledClassName);
1201
- }
1202
- }
1203
- }
1204
- }
1205
- }
1206
- });
1207
- }
1208
- });
1209
- addEvent(NavigationBindings, 'closePopup', function () {
1210
- this.deselectAnnotation();
1211
- });
786
+ * Default Export
787
+ *
788
+ * */
1212
789
  export default NavigationBindings;
790
+ /* *
791
+ *
792
+ * API Declarations
793
+ *
794
+ * */
795
+ /**
796
+ * A config object for navigation bindings in annotations.
797
+ *
798
+ * @interface Highcharts.NavigationBindingsOptionsObject
799
+ */ /**
800
+ * ClassName of the element for a binding.
801
+ * @name Highcharts.NavigationBindingsOptionsObject#className
802
+ * @type {string|undefined}
803
+ */ /**
804
+ * Last event to be fired after last step event.
805
+ * @name Highcharts.NavigationBindingsOptionsObject#end
806
+ * @type {Function|undefined}
807
+ */ /**
808
+ * Initial event, fired on a button click.
809
+ * @name Highcharts.NavigationBindingsOptionsObject#init
810
+ * @type {Function|undefined}
811
+ */ /**
812
+ * Event fired on first click on a chart.
813
+ * @name Highcharts.NavigationBindingsOptionsObject#start
814
+ * @type {Function|undefined}
815
+ */ /**
816
+ * Last event to be fired after last step event. Array of step events to be
817
+ * called sequentially after each user click.
818
+ * @name Highcharts.NavigationBindingsOptionsObject#steps
819
+ * @type {Array<Function>|undefined}
820
+ */
821
+ (''); // keeps doclets above in JS file