highcharts 10.2.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 (763) 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/Accessibility.js +6 -0
  7. package/es-modules/Accessibility/Components/LegendComponent.js +8 -8
  8. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -2
  9. package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
  10. package/es-modules/Core/Axis/Axis.js +3 -0
  11. package/es-modules/Core/Axis/Axis3D.js +1 -1
  12. package/es-modules/Core/Axis/AxisDefaults.js +1 -1
  13. package/es-modules/Core/Axis/BrokenAxis.js +1 -1
  14. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +4 -0
  15. package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
  16. package/es-modules/Core/Axis/OrdinalAxis.js +2 -2
  17. package/es-modules/Core/Axis/RadialAxis.js +1 -1
  18. package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
  19. package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
  20. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
  21. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
  22. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  23. package/es-modules/Core/Axis/ZAxis.js +73 -70
  24. package/es-modules/Core/Chart/Chart.js +16 -2
  25. package/es-modules/Core/Chart/Chart3D.js +2 -2
  26. package/es-modules/Core/Chart/ChartDefaults.js +151 -2
  27. package/es-modules/Core/Chart/StockChart.js +5 -3
  28. package/es-modules/Core/DefaultOptions.js +2 -1
  29. package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
  30. package/es-modules/Core/Globals.js +2 -1
  31. package/es-modules/{Extensions → Core}/Math3D.js +48 -43
  32. package/es-modules/Core/Navigator.js +24 -7
  33. package/es-modules/Core/Pointer.js +7 -9
  34. package/es-modules/Core/Renderer/HTML/AST.js +4 -1
  35. package/es-modules/Core/Renderer/SVG/SVGElement.js +103 -163
  36. package/es-modules/Core/Renderer/SVG/SVGLabel.js +29 -27
  37. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +3 -3
  38. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  39. package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
  40. package/es-modules/Core/Scrollbar.js +3 -1
  41. package/es-modules/Core/Series/DataLabel.js +8 -6
  42. package/es-modules/Core/Series/Point.js +2 -2
  43. package/es-modules/Core/Series/Series.js +36 -31
  44. package/es-modules/Core/Series/Series3D.js +1 -1
  45. package/es-modules/Core/Series/SeriesDefaults.js +8 -3
  46. package/es-modules/Core/Series/SeriesRegistry.js +6 -29
  47. package/es-modules/Core/Tooltip.js +14 -3
  48. package/es-modules/Core/Utilities.js +1 -3
  49. package/es-modules/Data/DataConverter.js +5 -0
  50. package/es-modules/Data/DataPromise.js +1 -1
  51. package/es-modules/Data/DataSeriesComposition.js +288 -0
  52. package/es-modules/Data/DataSeriesConverter.js +1 -1
  53. package/es-modules/Data/DataTable.js +2 -2
  54. package/es-modules/Data/Modifiers/ChainModifier.js +1 -1
  55. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  56. package/es-modules/Data/Modifiers/GroupModifier.js +1 -1
  57. package/es-modules/Data/Modifiers/InvertModifier.js +1 -1
  58. package/es-modules/Data/Modifiers/RangeModifier.js +1 -1
  59. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +1 -1
  60. package/es-modules/Data/Modifiers/SortModifier.js +1 -1
  61. package/es-modules/Data/Parsers/DataParser.js +1 -1
  62. package/es-modules/Data/Stores/DataStore.js +1 -1
  63. package/es-modules/Extensions/Annotations/Annotation.js +347 -1156
  64. package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
  65. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
  66. package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
  67. package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
  68. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
  69. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
  70. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +90 -61
  71. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
  72. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
  73. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
  74. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
  75. package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
  76. package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
  77. package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -674
  78. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
  79. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
  80. package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
  81. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
  82. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
  83. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
  84. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
  85. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +10 -14
  86. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +11 -19
  87. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +10 -10
  88. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +28 -20
  89. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +63 -63
  90. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +10 -19
  91. package/es-modules/Extensions/Annotations/Types/Measure.js +255 -249
  92. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -17
  93. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +20 -17
  94. package/es-modules/Extensions/Annotations/Types/Tunnel.js +12 -13
  95. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +11 -15
  96. package/es-modules/Extensions/Boost/Boost.js +320 -15
  97. package/es-modules/Extensions/Boost/BoostChart.js +245 -0
  98. package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
  99. package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
  100. package/es-modules/Extensions/Boost/Boostables.js +13 -2
  101. package/es-modules/Extensions/Boost/NamedColors.js +15 -6
  102. package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
  103. package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
  104. package/es-modules/Extensions/Boost/WGLShader.js +370 -376
  105. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
  106. package/es-modules/Extensions/BoostCanvas.js +62 -46
  107. package/es-modules/Extensions/Breadcrumbs.js +4 -0
  108. package/es-modules/Extensions/DataGrouping.js +65 -27
  109. package/es-modules/Extensions/Debugger/Debugger.js +60 -22
  110. package/es-modules/Extensions/DraggablePoints.js +4 -3
  111. package/es-modules/Extensions/Drilldown.js +7 -8
  112. package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +341 -530
  113. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
  114. package/es-modules/Extensions/Exporting/Exporting.js +5 -1
  115. package/es-modules/Extensions/Exporting/ExportingDefaults.js +3 -1
  116. package/es-modules/Extensions/{FullScreen.js → Exporting/Fullscreen.js} +72 -27
  117. package/es-modules/Extensions/MarkerClusters.js +2 -0
  118. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  119. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  120. package/es-modules/Extensions/ParallelCoordinates.js +11 -7
  121. package/es-modules/Extensions/ScrollablePlotArea.js +1 -1
  122. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
  123. package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
  124. package/es-modules/Maps/MapPointer.js +1 -1
  125. package/es-modules/Maps/MapView.js +2 -1
  126. package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
  127. package/es-modules/Series/AreaRange/AreaRangeSeries.js +8 -2
  128. package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
  129. package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
  130. package/es-modules/Series/Bubble/BubbleSeries.js +85 -66
  131. package/es-modules/Series/Column/ColumnSeries.js +2 -0
  132. package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
  133. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +1 -1
  134. package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
  135. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +24 -11
  136. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +16 -2
  137. package/es-modules/Series/DragNodesComposition.js +166 -0
  138. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -1
  139. package/es-modules/Series/Gantt/GanttSeries.js +1 -1
  140. package/es-modules/Series/GraphLayoutComposition.js +130 -0
  141. package/es-modules/Series/Heatmap/HeatmapSeries.js +5 -1
  142. package/es-modules/Series/Lollipop/LollipopPoint.js +21 -11
  143. package/es-modules/Series/Lollipop/LollipopSeries.js +15 -10
  144. package/es-modules/Series/Map/MapSeries.js +6 -1
  145. package/es-modules/Series/MapBubble/MapBubblePoint.js +15 -17
  146. package/es-modules/Series/MapBubble/MapBubbleSeries.js +19 -19
  147. package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
  148. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
  149. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
  150. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
  151. package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
  152. package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
  153. package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
  154. package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
  155. package/es-modules/Series/Organization/OrganizationSeries.js +9 -1
  156. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
  157. package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -77
  158. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +2 -2
  159. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +197 -570
  160. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
  161. package/es-modules/Series/Pie/PieSeries.js +3 -1
  162. package/es-modules/Series/PolarComposition.js +12 -12
  163. package/es-modules/Series/Sankey/SankeySeries.js +13 -1
  164. package/es-modules/Series/Scatter/ScatterSeries.js +4 -1
  165. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +1 -1
  166. package/es-modules/Series/SeriesOnPointComposition.js +5 -1
  167. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +1 -1
  168. package/es-modules/Series/Sunburst/SunburstPoint.js +5 -6
  169. package/es-modules/Series/Sunburst/SunburstSeries.js +24 -2
  170. package/es-modules/Series/Timeline/TimelineSeries.js +2 -0
  171. package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
  172. package/es-modules/Series/Vector/VectorSeries.js +2 -4
  173. package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -1
  174. package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
  175. package/es-modules/Series/XRange/XRangePoint.js +54 -45
  176. package/es-modules/Series/XRange/XRangeSeries.js +121 -273
  177. package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
  178. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +10 -2
  179. package/es-modules/Stock/Indicators/AD/ADIndicator.js +5 -0
  180. package/es-modules/Stock/Indicators/AO/AOIndicator.js +22 -11
  181. package/es-modules/Stock/Indicators/APO/APOIndicator.js +6 -1
  182. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +16 -3
  183. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +15 -2
  184. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +6 -2
  185. package/es-modules/Stock/Indicators/BB/BBIndicator.js +5 -1
  186. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +16 -3
  187. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +20 -0
  188. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +15 -1
  189. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +7 -2
  190. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +25 -0
  191. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +5 -0
  192. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +19 -8
  193. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +10 -0
  194. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +34 -15
  195. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +25 -0
  196. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +12 -1
  197. package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +11 -1
  198. package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +12 -7
  199. package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +11 -1
  200. package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +11 -1
  201. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +21 -10
  202. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +23 -10
  203. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +30 -2
  204. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +16 -1
  205. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +10 -0
  206. package/es-modules/Stock/Indicators/PC/PCIndicator.js +13 -8
  207. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +14 -4
  208. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +16 -3
  209. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +16 -6
  210. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +16 -12
  211. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +25 -0
  212. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +15 -2
  213. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +20 -2
  214. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  215. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +25 -0
  216. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -0
  217. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +17 -3
  218. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +25 -0
  219. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +14 -4
  220. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +32 -3
  221. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +6 -6
  222. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +11 -1
  223. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +30 -2
  224. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +10 -0
  225. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +11 -1
  226. package/es-modules/Stock/StockToolbar.js +568 -0
  227. package/es-modules/Stock/StockTools.js +256 -0
  228. package/es-modules/Stock/StockToolsBindings.js +114 -629
  229. package/es-modules/Stock/StockToolsDefaults.js +1190 -0
  230. package/es-modules/Stock/StockToolsGui.js +150 -1771
  231. package/es-modules/Stock/StockToolsUtilities.js +423 -0
  232. package/es-modules/masters/highcharts-3d.src.js +5 -4
  233. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  234. package/es-modules/masters/highcharts-more.src.js +4 -3
  235. package/es-modules/masters/highcharts.src.js +5 -2
  236. package/es-modules/masters/highmaps.src.js +1 -1
  237. package/es-modules/masters/highstock.src.js +1 -1
  238. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  239. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  240. package/es-modules/masters/indicators/ao.src.js +1 -1
  241. package/es-modules/masters/indicators/apo.src.js +1 -1
  242. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  243. package/es-modules/masters/indicators/aroon.src.js +1 -1
  244. package/es-modules/masters/indicators/atr.src.js +1 -1
  245. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  246. package/es-modules/masters/indicators/cci.src.js +1 -1
  247. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  248. package/es-modules/masters/indicators/cmf.src.js +1 -1
  249. package/es-modules/masters/indicators/cmo.src.js +1 -1
  250. package/es-modules/masters/indicators/dema.src.js +1 -1
  251. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  252. package/es-modules/masters/indicators/dmi.src.js +1 -1
  253. package/es-modules/masters/indicators/dpo.src.js +1 -1
  254. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  255. package/es-modules/masters/indicators/indicators-all.src.js +5 -7
  256. package/es-modules/masters/indicators/indicators.src.js +1 -1
  257. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  258. package/es-modules/masters/indicators/klinger.src.js +1 -1
  259. package/es-modules/masters/indicators/macd.src.js +1 -1
  260. package/es-modules/masters/indicators/mfi.src.js +1 -1
  261. package/es-modules/masters/indicators/momentum.src.js +1 -1
  262. package/es-modules/masters/indicators/natr.src.js +1 -1
  263. package/es-modules/masters/indicators/obv.src.js +1 -1
  264. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  265. package/es-modules/masters/indicators/ppo.src.js +1 -1
  266. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  267. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  268. package/es-modules/masters/indicators/psar.src.js +1 -1
  269. package/es-modules/masters/indicators/regressions.src.js +5 -5
  270. package/es-modules/masters/indicators/roc.src.js +1 -1
  271. package/es-modules/masters/indicators/rsi.src.js +1 -1
  272. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  273. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  274. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  275. package/es-modules/masters/indicators/tema.src.js +1 -1
  276. package/es-modules/masters/indicators/trendline.src.js +1 -1
  277. package/es-modules/masters/indicators/trix.src.js +1 -1
  278. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  279. package/es-modules/masters/indicators/vwap.src.js +1 -1
  280. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  281. package/es-modules/masters/indicators/wma.src.js +1 -1
  282. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  283. package/es-modules/masters/modules/accessibility.src.js +1 -1
  284. package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
  285. package/es-modules/masters/modules/annotations.src.js +6 -4
  286. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  287. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  288. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  289. package/es-modules/masters/modules/boost.src.js +6 -2
  290. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  291. package/es-modules/masters/modules/bullet.src.js +1 -1
  292. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  293. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  294. package/es-modules/masters/modules/cylinder.src.js +1 -1
  295. package/es-modules/masters/modules/data.src.js +1 -1
  296. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  297. package/es-modules/masters/modules/debugger.src.js +5 -3
  298. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  299. package/es-modules/masters/modules/dotplot.src.js +1 -1
  300. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  301. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  302. package/es-modules/masters/modules/drilldown.src.js +1 -1
  303. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  304. package/es-modules/masters/modules/export-data.src.js +5 -2
  305. package/es-modules/masters/modules/exporting.src.js +1 -2
  306. package/es-modules/masters/modules/full-screen.src.js +6 -2
  307. package/es-modules/masters/modules/funnel.src.js +1 -1
  308. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  309. package/es-modules/masters/modules/gantt.src.js +3 -2
  310. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  311. package/es-modules/masters/modules/heatmap.src.js +1 -1
  312. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  313. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  314. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  315. package/es-modules/masters/modules/item-series.src.js +1 -1
  316. package/es-modules/masters/modules/lollipop.src.js +1 -1
  317. package/es-modules/masters/modules/map.src.js +2 -2
  318. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  319. package/es-modules/masters/modules/networkgraph.src.js +5 -2
  320. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  321. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  322. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  323. package/es-modules/masters/modules/oldie.src.js +1 -1
  324. package/es-modules/masters/modules/organization.src.js +1 -1
  325. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  326. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  327. package/es-modules/masters/modules/pareto.src.js +1 -1
  328. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  329. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  330. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  331. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  332. package/es-modules/masters/modules/sankey.src.js +1 -1
  333. package/es-modules/masters/modules/series-label.src.js +1 -1
  334. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  335. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  336. package/es-modules/masters/modules/sonification.src.js +1 -1
  337. package/es-modules/masters/modules/static-scale.src.js +1 -1
  338. package/es-modules/masters/modules/stock-tools.src.js +10 -3
  339. package/es-modules/masters/modules/stock.src.js +1 -1
  340. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  341. package/es-modules/masters/modules/sunburst.src.js +1 -1
  342. package/es-modules/masters/modules/tilemap.src.js +1 -1
  343. package/es-modules/masters/modules/timeline.src.js +1 -1
  344. package/es-modules/masters/modules/treegrid.src.js +2 -2
  345. package/es-modules/masters/modules/treemap.src.js +1 -1
  346. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  347. package/es-modules/masters/modules/variwide.src.js +1 -1
  348. package/es-modules/masters/modules/vector.src.js +1 -1
  349. package/es-modules/masters/modules/venn.src.js +1 -1
  350. package/es-modules/masters/modules/windbarb.src.js +1 -1
  351. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  352. package/es-modules/masters/modules/xrange.src.js +5 -2
  353. package/es-modules/masters/themes/avocado.src.js +1 -1
  354. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  355. package/es-modules/masters/themes/brand-light.src.js +1 -1
  356. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  357. package/es-modules/masters/themes/dark-green.src.js +1 -1
  358. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  359. package/es-modules/masters/themes/gray.src.js +1 -1
  360. package/es-modules/masters/themes/grid-light.src.js +1 -1
  361. package/es-modules/masters/themes/grid.src.js +1 -1
  362. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  363. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  364. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  365. package/es-modules/masters/themes/skies.src.js +1 -1
  366. package/es-modules/masters/themes/sunset.src.js +1 -1
  367. package/highcharts-3d.js +98 -99
  368. package/highcharts-3d.js.map +1 -1
  369. package/highcharts-3d.src.js +232 -211
  370. package/highcharts-gantt.js +808 -809
  371. package/highcharts-gantt.js.map +1 -1
  372. package/highcharts-gantt.src.js +2308 -2136
  373. package/highcharts-more.d.ts +5 -8
  374. package/highcharts-more.js +201 -194
  375. package/highcharts-more.js.map +1 -1
  376. package/highcharts-more.src.d.ts +5 -8
  377. package/highcharts-more.src.js +3671 -3275
  378. package/highcharts.d.ts +1400 -885
  379. package/highcharts.js +593 -595
  380. package/highcharts.js.map +1 -1
  381. package/highcharts.src.d.ts +1400 -885
  382. package/highcharts.src.js +847 -716
  383. package/highmaps.js +762 -763
  384. package/highmaps.js.map +1 -1
  385. package/highmaps.src.js +1288 -1129
  386. package/highstock.js +796 -798
  387. package/highstock.js.map +1 -1
  388. package/highstock.src.js +953 -762
  389. package/indicators/acceleration-bands.js +1 -1
  390. package/indicators/acceleration-bands.js.map +1 -1
  391. package/indicators/acceleration-bands.src.js +11 -3
  392. package/indicators/accumulation-distribution.js +1 -1
  393. package/indicators/accumulation-distribution.js.map +1 -1
  394. package/indicators/accumulation-distribution.src.js +6 -1
  395. package/indicators/ao.js +6 -6
  396. package/indicators/ao.js.map +1 -1
  397. package/indicators/ao.src.js +23 -14
  398. package/indicators/apo.js +1 -1
  399. package/indicators/apo.js.map +1 -1
  400. package/indicators/apo.src.js +6 -1
  401. package/indicators/aroon-oscillator.js +10 -10
  402. package/indicators/aroon-oscillator.js.map +1 -1
  403. package/indicators/aroon-oscillator.src.js +7 -3
  404. package/indicators/aroon.js +1 -1
  405. package/indicators/aroon.js.map +1 -1
  406. package/indicators/aroon.src.js +16 -3
  407. package/indicators/atr.js +1 -1
  408. package/indicators/atr.js.map +1 -1
  409. package/indicators/atr.src.js +17 -4
  410. package/indicators/bollinger-bands.js +1 -1
  411. package/indicators/bollinger-bands.js.map +1 -1
  412. package/indicators/bollinger-bands.src.js +6 -2
  413. package/indicators/cci.js +1 -1
  414. package/indicators/cci.js.map +1 -1
  415. package/indicators/cci.src.js +17 -4
  416. package/indicators/chaikin.js +8 -8
  417. package/indicators/chaikin.js.map +1 -1
  418. package/indicators/chaikin.src.js +13 -5
  419. package/indicators/cmf.js +1 -1
  420. package/indicators/cmf.js.map +1 -1
  421. package/indicators/cmf.src.js +21 -1
  422. package/indicators/cmo.js +1 -1
  423. package/indicators/cmo.js.map +1 -1
  424. package/indicators/cmo.src.js +16 -2
  425. package/indicators/dema.js +1 -1
  426. package/indicators/dema.js.map +1 -1
  427. package/indicators/dema.src.js +26 -1
  428. package/indicators/disparity-index.js +1 -1
  429. package/indicators/disparity-index.src.js +1 -1
  430. package/indicators/dmi.js +1 -1
  431. package/indicators/dmi.js.map +1 -1
  432. package/indicators/dmi.src.js +6 -1
  433. package/indicators/dpo.js +1 -1
  434. package/indicators/dpo.js.map +1 -1
  435. package/indicators/dpo.src.js +20 -9
  436. package/indicators/ichimoku-kinko-hyo.js +1 -1
  437. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  438. package/indicators/ichimoku-kinko-hyo.src.js +35 -16
  439. package/indicators/indicators-all.js +199 -199
  440. package/indicators/indicators-all.js.map +1 -1
  441. package/indicators/indicators-all.src.js +754 -162
  442. package/indicators/indicators.js +1 -1
  443. package/indicators/indicators.js.map +1 -1
  444. package/indicators/indicators.src.js +12 -2
  445. package/indicators/keltner-channels.js +1 -1
  446. package/indicators/keltner-channels.js.map +1 -1
  447. package/indicators/keltner-channels.src.js +26 -1
  448. package/indicators/klinger.js +12 -12
  449. package/indicators/klinger.js.map +1 -1
  450. package/indicators/klinger.src.js +13 -4
  451. package/indicators/macd.js +1 -1
  452. package/indicators/macd.js.map +1 -1
  453. package/indicators/macd.src.js +22 -13
  454. package/indicators/mfi.js +1 -1
  455. package/indicators/mfi.js.map +1 -1
  456. package/indicators/mfi.src.js +24 -11
  457. package/indicators/momentum.js +1 -1
  458. package/indicators/momentum.js.map +1 -1
  459. package/indicators/momentum.src.js +31 -3
  460. package/indicators/natr.js +1 -1
  461. package/indicators/natr.js.map +1 -1
  462. package/indicators/natr.src.js +17 -3
  463. package/indicators/obv.js +1 -1
  464. package/indicators/obv.js.map +1 -1
  465. package/indicators/obv.src.js +11 -1
  466. package/indicators/pivot-points.js +1 -1
  467. package/indicators/pivot-points.js.map +1 -1
  468. package/indicators/pivot-points.src.js +32 -19
  469. package/indicators/ppo.js +1 -1
  470. package/indicators/ppo.js.map +1 -1
  471. package/indicators/ppo.src.js +15 -5
  472. package/indicators/price-channel.js +1 -1
  473. package/indicators/price-channel.js.map +1 -1
  474. package/indicators/price-channel.src.js +14 -9
  475. package/indicators/price-envelopes.js +1 -1
  476. package/indicators/price-envelopes.js.map +1 -1
  477. package/indicators/price-envelopes.src.js +26 -1
  478. package/indicators/psar.js +1 -1
  479. package/indicators/psar.js.map +1 -1
  480. package/indicators/psar.src.js +17 -4
  481. package/indicators/regressions.js +12 -11
  482. package/indicators/regressions.js.map +1 -1
  483. package/indicators/regressions.src.js +50 -15
  484. package/indicators/roc.js +1 -1
  485. package/indicators/roc.js.map +1 -1
  486. package/indicators/roc.src.js +16 -3
  487. package/indicators/rsi.js +1 -1
  488. package/indicators/rsi.js.map +1 -1
  489. package/indicators/rsi.src.js +21 -3
  490. package/indicators/slow-stochastic.js +1 -1
  491. package/indicators/slow-stochastic.js.map +1 -1
  492. package/indicators/slow-stochastic.src.js +26 -1
  493. package/indicators/stochastic.js +1 -1
  494. package/indicators/stochastic.js.map +1 -1
  495. package/indicators/stochastic.src.js +16 -1
  496. package/indicators/supertrend.js +7 -7
  497. package/indicators/supertrend.js.map +1 -1
  498. package/indicators/supertrend.src.js +18 -6
  499. package/indicators/tema.js +1 -1
  500. package/indicators/tema.src.js +1 -1
  501. package/indicators/trendline.js +1 -1
  502. package/indicators/trendline.js.map +1 -1
  503. package/indicators/trendline.src.js +15 -5
  504. package/indicators/trix.js +1 -1
  505. package/indicators/trix.js.map +1 -1
  506. package/indicators/trix.src.js +26 -1
  507. package/indicators/volume-by-price.js +17 -17
  508. package/indicators/volume-by-price.js.map +1 -1
  509. package/indicators/volume-by-price.src.js +38 -10
  510. package/indicators/vwap.js +1 -1
  511. package/indicators/vwap.js.map +1 -1
  512. package/indicators/vwap.src.js +12 -2
  513. package/indicators/williams-r.js +1 -1
  514. package/indicators/williams-r.js.map +1 -1
  515. package/indicators/williams-r.src.js +11 -1
  516. package/indicators/wma.js +1 -1
  517. package/indicators/wma.js.map +1 -1
  518. package/indicators/wma.src.js +31 -3
  519. package/indicators/zigzag.js +1 -1
  520. package/indicators/zigzag.js.map +1 -1
  521. package/indicators/zigzag.src.js +12 -2
  522. package/modules/accessibility.js +183 -182
  523. package/modules/accessibility.js.map +1 -1
  524. package/modules/accessibility.src.js +559 -554
  525. package/modules/annotations-advanced.d.ts +1 -1
  526. package/modules/annotations-advanced.js +193 -192
  527. package/modules/annotations-advanced.js.map +1 -1
  528. package/modules/annotations-advanced.src.d.ts +1 -1
  529. package/modules/annotations-advanced.src.js +9263 -8654
  530. package/modules/annotations.d.ts +1 -1
  531. package/modules/annotations.js +128 -126
  532. package/modules/annotations.js.map +1 -1
  533. package/modules/annotations.src.d.ts +1 -1
  534. package/modules/annotations.src.js +6699 -6063
  535. package/modules/arc-diagram.js +1 -1
  536. package/modules/arc-diagram.src.js +1 -1
  537. package/modules/arrow-symbols.js +1 -1
  538. package/modules/arrow-symbols.src.js +1 -1
  539. package/modules/boost-canvas.d.ts +19 -0
  540. package/modules/boost-canvas.js +81 -16
  541. package/modules/boost-canvas.js.map +1 -1
  542. package/modules/boost-canvas.src.d.ts +19 -0
  543. package/modules/boost-canvas.src.js +3334 -50
  544. package/modules/boost.d.ts +8 -26
  545. package/modules/boost.js +84 -77
  546. package/modules/boost.js.map +1 -1
  547. package/modules/boost.src.d.ts +8 -26
  548. package/modules/boost.src.js +2423 -1888
  549. package/modules/broken-axis.js +2 -2
  550. package/modules/broken-axis.js.map +1 -1
  551. package/modules/broken-axis.src.js +2 -2
  552. package/modules/bullet.js +1 -1
  553. package/modules/bullet.src.js +1 -1
  554. package/modules/coloraxis.js +1 -1
  555. package/modules/coloraxis.js.map +1 -1
  556. package/modules/coloraxis.src.js +5 -1
  557. package/modules/current-date-indicator.js +1 -1
  558. package/modules/current-date-indicator.src.js +1 -1
  559. package/modules/cylinder.js +9 -9
  560. package/modules/cylinder.js.map +1 -1
  561. package/modules/cylinder.src.js +2 -2
  562. package/modules/data.js +1 -1
  563. package/modules/data.src.js +1 -1
  564. package/modules/datagrouping.d.ts +22 -0
  565. package/modules/datagrouping.js +4 -4
  566. package/modules/datagrouping.js.map +1 -1
  567. package/modules/datagrouping.src.d.ts +22 -0
  568. package/modules/datagrouping.src.js +66 -28
  569. package/modules/debugger.js +6 -5
  570. package/modules/debugger.js.map +1 -1
  571. package/modules/debugger.src.js +81 -40
  572. package/modules/dependency-wheel.js +12 -12
  573. package/modules/dependency-wheel.js.map +1 -1
  574. package/modules/dependency-wheel.src.js +41 -14
  575. package/modules/dotplot.js +1 -1
  576. package/modules/dotplot.src.js +1 -1
  577. package/modules/drag-panes.js +1 -1
  578. package/modules/drag-panes.src.js +1 -1
  579. package/modules/draggable-points.js +5 -5
  580. package/modules/draggable-points.js.map +1 -1
  581. package/modules/draggable-points.src.js +5 -4
  582. package/modules/drilldown.d.ts +0 -10
  583. package/modules/drilldown.js +29 -29
  584. package/modules/drilldown.js.map +1 -1
  585. package/modules/drilldown.src.d.ts +0 -10
  586. package/modules/drilldown.src.js +12 -9
  587. package/modules/dumbbell.js +1 -1
  588. package/modules/dumbbell.src.js +1 -1
  589. package/modules/export-data.js +25 -24
  590. package/modules/export-data.js.map +1 -1
  591. package/modules/export-data.src.js +607 -499
  592. package/modules/exporting.js +38 -38
  593. package/modules/exporting.js.map +1 -1
  594. package/modules/exporting.src.js +559 -507
  595. package/modules/full-screen.js +8 -8
  596. package/modules/full-screen.js.map +1 -1
  597. package/modules/full-screen.src.js +76 -26
  598. package/modules/funnel.js +1 -1
  599. package/modules/funnel.src.js +1 -1
  600. package/modules/funnel3d.js +2 -2
  601. package/modules/funnel3d.js.map +1 -1
  602. package/modules/funnel3d.src.js +2 -2
  603. package/modules/gantt.js +217 -216
  604. package/modules/gantt.js.map +1 -1
  605. package/modules/gantt.src.js +1481 -1440
  606. package/modules/grid-axis.js +1 -1
  607. package/modules/grid-axis.src.js +1 -1
  608. package/modules/heatmap.js +1 -1
  609. package/modules/heatmap.js.map +1 -1
  610. package/modules/heatmap.src.js +10 -2
  611. package/modules/heikinashi.js +1 -1
  612. package/modules/heikinashi.src.js +1 -1
  613. package/modules/histogram-bellcurve.js +1 -1
  614. package/modules/histogram-bellcurve.src.js +1 -1
  615. package/modules/hollowcandlestick.js +1 -1
  616. package/modules/hollowcandlestick.src.js +1 -1
  617. package/modules/item-series.js +1 -1
  618. package/modules/item-series.src.js +1 -1
  619. package/modules/lollipop.js +6 -6
  620. package/modules/lollipop.js.map +1 -1
  621. package/modules/lollipop.src.js +37 -22
  622. package/modules/map.d.ts +3 -3
  623. package/modules/map.js +171 -171
  624. package/modules/map.js.map +1 -1
  625. package/modules/map.src.d.ts +3 -3
  626. package/modules/map.src.js +442 -414
  627. package/modules/marker-clusters.js +1 -1
  628. package/modules/marker-clusters.js.map +1 -1
  629. package/modules/marker-clusters.src.js +3 -1
  630. package/modules/networkgraph.js +55 -50
  631. package/modules/networkgraph.js.map +1 -1
  632. package/modules/networkgraph.src.js +2259 -1938
  633. package/modules/no-data-to-display.js +1 -1
  634. package/modules/no-data-to-display.src.js +1 -1
  635. package/modules/offline-exporting.js +2 -2
  636. package/modules/offline-exporting.src.js +2 -2
  637. package/modules/oldie-polyfills.js +1 -1
  638. package/modules/oldie-polyfills.src.js +1 -1
  639. package/modules/oldie.js +2 -2
  640. package/modules/oldie.src.js +2 -2
  641. package/modules/organization.js +15 -15
  642. package/modules/organization.js.map +1 -1
  643. package/modules/organization.src.js +10 -2
  644. package/modules/overlapping-datalabels.js +1 -1
  645. package/modules/overlapping-datalabels.src.js +1 -1
  646. package/modules/parallel-coordinates.js +11 -11
  647. package/modules/parallel-coordinates.js.map +1 -1
  648. package/modules/parallel-coordinates.src.js +13 -8
  649. package/modules/pareto.js +1 -1
  650. package/modules/pareto.src.js +1 -1
  651. package/modules/pathfinder.js +1 -1
  652. package/modules/pathfinder.src.js +1 -1
  653. package/modules/pattern-fill.js +1 -1
  654. package/modules/pattern-fill.src.js +1 -1
  655. package/modules/price-indicator.js +1 -1
  656. package/modules/price-indicator.src.js +1 -1
  657. package/modules/pyramid3d.js +1 -1
  658. package/modules/pyramid3d.src.js +1 -1
  659. package/modules/sankey.js +1 -1
  660. package/modules/sankey.js.map +1 -1
  661. package/modules/sankey.src.js +14 -2
  662. package/modules/series-label.js +5 -5
  663. package/modules/series-label.js.map +1 -1
  664. package/modules/series-label.src.js +3 -3
  665. package/modules/series-on-point.js +1 -1
  666. package/modules/series-on-point.js.map +1 -1
  667. package/modules/series-on-point.src.js +6 -2
  668. package/modules/solid-gauge.js +1 -1
  669. package/modules/solid-gauge.src.js +2 -2
  670. package/modules/sonification.d.ts +2 -2
  671. package/modules/sonification.js +1 -1
  672. package/modules/sonification.src.d.ts +2 -2
  673. package/modules/sonification.src.js +2 -2
  674. package/modules/static-scale.js +1 -1
  675. package/modules/static-scale.src.js +1 -1
  676. package/modules/stock-tools.d.ts +1 -23
  677. package/modules/stock-tools.js +109 -179
  678. package/modules/stock-tools.js.map +1 -1
  679. package/modules/stock-tools.src.d.ts +1 -23
  680. package/modules/stock-tools.src.js +2605 -6335
  681. package/modules/stock.d.ts +8 -0
  682. package/modules/stock.js +105 -105
  683. package/modules/stock.js.map +1 -1
  684. package/modules/stock.src.d.ts +8 -0
  685. package/modules/stock.src.js +105 -45
  686. package/modules/streamgraph.js +1 -1
  687. package/modules/streamgraph.src.js +1 -1
  688. package/modules/sunburst.js +72 -72
  689. package/modules/sunburst.js.map +1 -1
  690. package/modules/sunburst.src.js +38 -12
  691. package/modules/tilemap.js +1 -1
  692. package/modules/tilemap.src.js +1 -1
  693. package/modules/timeline.js +1 -1
  694. package/modules/timeline.js.map +1 -1
  695. package/modules/timeline.src.js +3 -1
  696. package/modules/treegrid.js +57 -57
  697. package/modules/treegrid.js.map +1 -1
  698. package/modules/treegrid.src.js +1022 -1014
  699. package/modules/treemap.js +1 -1
  700. package/modules/treemap.js.map +1 -1
  701. package/modules/treemap.src.js +8 -4
  702. package/modules/variable-pie.js +1 -1
  703. package/modules/variable-pie.src.js +1 -1
  704. package/modules/variwide.js +1 -1
  705. package/modules/variwide.src.js +1 -1
  706. package/modules/vector.js +2 -2
  707. package/modules/vector.js.map +1 -1
  708. package/modules/vector.src.js +3 -5
  709. package/modules/venn.js +1 -1
  710. package/modules/venn.src.js +5 -5
  711. package/modules/windbarb.js +1 -1
  712. package/modules/windbarb.src.js +1 -1
  713. package/modules/wordcloud.js +1 -1
  714. package/modules/wordcloud.src.js +3 -3
  715. package/modules/xrange.js +17 -17
  716. package/modules/xrange.js.map +1 -1
  717. package/modules/xrange.src.js +411 -397
  718. package/package.json +1 -1
  719. package/themes/avocado.js +1 -1
  720. package/themes/avocado.src.js +1 -1
  721. package/themes/brand-dark.js +1 -1
  722. package/themes/brand-dark.src.js +1 -1
  723. package/themes/brand-light.js +1 -1
  724. package/themes/brand-light.src.js +1 -1
  725. package/themes/dark-blue.js +1 -1
  726. package/themes/dark-blue.src.js +1 -1
  727. package/themes/dark-green.js +1 -1
  728. package/themes/dark-green.src.js +1 -1
  729. package/themes/dark-unica.js +1 -1
  730. package/themes/dark-unica.src.js +1 -1
  731. package/themes/gray.js +1 -1
  732. package/themes/gray.src.js +1 -1
  733. package/themes/grid-light.js +1 -1
  734. package/themes/grid-light.src.js +1 -1
  735. package/themes/grid.js +1 -1
  736. package/themes/grid.src.js +1 -1
  737. package/themes/high-contrast-dark.js +1 -1
  738. package/themes/high-contrast-dark.src.js +1 -1
  739. package/themes/high-contrast-light.js +1 -1
  740. package/themes/high-contrast-light.src.js +1 -1
  741. package/themes/sand-signika.js +1 -1
  742. package/themes/sand-signika.src.js +1 -1
  743. package/themes/skies.js +1 -1
  744. package/themes/skies.src.js +1 -1
  745. package/themes/sunset.js +1 -1
  746. package/themes/sunset.src.js +1 -1
  747. package/es-modules/Core/Axis/StackingAxis.js +0 -215
  748. package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
  749. package/es-modules/Core/Axis/TreeGridTick.js +0 -317
  750. package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
  751. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
  752. package/es-modules/Extensions/Annotations/Popup.js +0 -1123
  753. package/es-modules/Extensions/Boost/BoostAttach.js +0 -154
  754. package/es-modules/Extensions/Boost/BoostInit.js +0 -324
  755. package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
  756. package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
  757. package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
  758. package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
  759. package/es-modules/Extensions/Stacking.js +0 -517
  760. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
  761. package/es-modules/Series/Networkgraph/Integrations.js +0 -348
  762. package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1180
  763. package/es-modules/Series/XRange/XRangeComposition.js +0 -49
@@ -9,1185 +9,108 @@
9
9
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * */
12
- import Chart from '../Core/Chart/Chart.js';
13
- import H from '../Core/Globals.js';
14
- import NavigationBindings from '../Extensions/Annotations/NavigationBindings.js';
15
- import D from '../Core/DefaultOptions.js';
16
- var setOptions = D.setOptions;
12
+ 'use strict';
13
+ import O from '../Core/DefaultOptions.js';
14
+ var setOptions = O.setOptions;
15
+ import StockToolsDefaults from './StockToolsDefaults.js';
16
+ import Toolbar from './StockToolbar.js';
17
17
  import U from '../Core/Utilities.js';
18
- var addEvent = U.addEvent, createElement = U.createElement, css = U.css, extend = U.extend, fireEvent = U.fireEvent, getStyle = U.getStyle, isArray = U.isArray, merge = U.merge, pick = U.pick;
19
- var DIV = 'div', SPAN = 'span', UL = 'ul', LI = 'li', PREFIX = 'highcharts-', activeClass = PREFIX + 'active';
20
- setOptions({
21
- /**
22
- * @optionparent lang
23
- */
24
- lang: {
25
- /**
26
- * Configure the stockTools GUI titles(hints) in the chart. Requires
27
- * the `stock-tools.js` module to be loaded.
28
- *
29
- * @product highstock
30
- * @since 7.0.0
31
- */
32
- stockTools: {
33
- gui: {
34
- // Main buttons:
35
- simpleShapes: 'Simple shapes',
36
- lines: 'Lines',
37
- crookedLines: 'Crooked lines',
38
- measure: 'Measure',
39
- advanced: 'Advanced',
40
- toggleAnnotations: 'Toggle annotations',
41
- verticalLabels: 'Vertical labels',
42
- flags: 'Flags',
43
- zoomChange: 'Zoom change',
44
- typeChange: 'Type change',
45
- saveChart: 'Save chart',
46
- indicators: 'Indicators',
47
- currentPriceIndicator: 'Current Price Indicators',
48
- // Other features:
49
- zoomX: 'Zoom X',
50
- zoomY: 'Zoom Y',
51
- zoomXY: 'Zooom XY',
52
- fullScreen: 'Fullscreen',
53
- typeOHLC: 'OHLC',
54
- typeLine: 'Line',
55
- typeCandlestick: 'Candlestick',
56
- typeHLC: 'HLC',
57
- typeHollowCandlestick: 'Hollow Candlestick',
58
- typeHeikinAshi: 'Heikin Ashi',
59
- // Basic shapes:
60
- circle: 'Circle',
61
- ellipse: 'Ellipse',
62
- label: 'Label',
63
- rectangle: 'Rectangle',
64
- // Flags:
65
- flagCirclepin: 'Flag circle',
66
- flagDiamondpin: 'Flag diamond',
67
- flagSquarepin: 'Flag square',
68
- flagSimplepin: 'Flag simple',
69
- // Measures:
70
- measureXY: 'Measure XY',
71
- measureX: 'Measure X',
72
- measureY: 'Measure Y',
73
- // Segment, ray and line:
74
- segment: 'Segment',
75
- arrowSegment: 'Arrow segment',
76
- ray: 'Ray',
77
- arrowRay: 'Arrow ray',
78
- line: 'Line',
79
- arrowInfinityLine: 'Arrow line',
80
- horizontalLine: 'Horizontal line',
81
- verticalLine: 'Vertical line',
82
- infinityLine: 'Infinity line',
83
- // Crooked lines:
84
- crooked3: 'Crooked 3 line',
85
- crooked5: 'Crooked 5 line',
86
- elliott3: 'Elliott 3 line',
87
- elliott5: 'Elliott 5 line',
88
- // Counters:
89
- verticalCounter: 'Vertical counter',
90
- verticalLabel: 'Vertical label',
91
- verticalArrow: 'Vertical arrow',
92
- // Advanced:
93
- fibonacci: 'Fibonacci',
94
- fibonacciTimeZones: 'Fibonacci Time Zones',
95
- pitchfork: 'Pitchfork',
96
- parallelChannel: 'Parallel channel',
97
- timeCycles: 'Time Cycles'
98
- }
99
- },
100
- navigation: {
101
- popup: {
102
- // Annotations:
103
- circle: 'Circle',
104
- ellipse: 'Ellipse',
105
- rectangle: 'Rectangle',
106
- label: 'Label',
107
- segment: 'Segment',
108
- arrowSegment: 'Arrow segment',
109
- ray: 'Ray',
110
- arrowRay: 'Arrow ray',
111
- line: 'Line',
112
- arrowInfinityLine: 'Arrow line',
113
- horizontalLine: 'Horizontal line',
114
- verticalLine: 'Vertical line',
115
- crooked3: 'Crooked 3 line',
116
- crooked5: 'Crooked 5 line',
117
- elliott3: 'Elliott 3 line',
118
- elliott5: 'Elliott 5 line',
119
- verticalCounter: 'Vertical counter',
120
- verticalLabel: 'Vertical label',
121
- verticalArrow: 'Vertical arrow',
122
- fibonacci: 'Fibonacci',
123
- fibonacciTimeZones: 'Fibonacci Time Zones',
124
- pitchfork: 'Pitchfork',
125
- parallelChannel: 'Parallel channel',
126
- infinityLine: 'Infinity line',
127
- measure: 'Measure',
128
- measureXY: 'Measure XY',
129
- measureX: 'Measure X',
130
- measureY: 'Measure Y',
131
- timeCycles: 'Time Cycles',
132
- // Flags:
133
- flags: 'Flags',
134
- // GUI elements:
135
- addButton: 'add',
136
- saveButton: 'save',
137
- editButton: 'edit',
138
- removeButton: 'remove',
139
- series: 'Series',
140
- volume: 'Volume',
141
- connector: 'Connector',
142
- // Field names:
143
- innerBackground: 'Inner background',
144
- outerBackground: 'Outer background',
145
- crosshairX: 'Crosshair X',
146
- crosshairY: 'Crosshair Y',
147
- tunnel: 'Tunnel',
148
- background: 'Background',
149
- // Indicators' searchbox (#16019):
150
- noFilterMatch: 'No match',
151
- // Indicators' params (#15170):
152
- searchIndicators: 'Search Indicators',
153
- clearFilter: '\u2715 clear filter',
154
- index: 'Index',
155
- period: 'Period',
156
- periods: 'Periods',
157
- standardDeviation: 'Standard deviation',
158
- periodTenkan: 'Tenkan period',
159
- periodSenkouSpanB: 'Senkou Span B period',
160
- periodATR: 'ATR period',
161
- multiplierATR: 'ATR multiplier',
162
- shortPeriod: 'Short period',
163
- longPeriod: 'Long period',
164
- signalPeriod: 'Signal period',
165
- decimals: 'Decimals',
166
- algorithm: 'Algorithm',
167
- topBand: 'Top band',
168
- bottomBand: 'Bottom band',
169
- initialAccelerationFactor: 'Initial acceleration factor',
170
- maxAccelerationFactor: 'Max acceleration factor',
171
- increment: 'Increment',
172
- multiplier: 'Multiplier',
173
- ranges: 'Ranges',
174
- highIndex: 'High index',
175
- lowIndex: 'Low index',
176
- deviation: 'Deviation',
177
- xAxisUnit: 'x-axis unit',
178
- factor: 'Factor',
179
- fastAvgPeriod: 'Fast average period',
180
- slowAvgPeriod: 'Slow average period',
181
- average: 'Average',
182
- /**
183
- * Configure the aliases for indicator names.
184
- *
185
- * @product highstock
186
- * @since 9.3.0
187
- */
188
- indicatorAliases: {
189
- // Overlays
190
- /**
191
- * Acceleration Bands alias.
192
- *
193
- * @default ['Acceleration Bands']
194
- * @type {Array<string>}
195
- */
196
- abands: ['Acceleration Bands'],
197
- /**
198
- * Bollinger Bands alias.
199
- *
200
- * @default ['Bollinger Bands']
201
- * @type {Array<string>}
202
- */
203
- bb: ['Bollinger Bands'],
204
- /**
205
- * Double Exponential Moving Average alias.
206
- *
207
- * @default ['Double Exponential Moving Average']
208
- * @type {Array<string>}
209
- */
210
- dema: ['Double Exponential Moving Average'],
211
- /**
212
- * Exponential Moving Average alias.
213
- *
214
- * @default ['Exponential Moving Average']
215
- * @type {Array<string>}
216
- */
217
- ema: ['Exponential Moving Average'],
218
- /**
219
- * Ichimoku Kinko Hyo alias.
220
- *
221
- * @default ['Ichimoku Kinko Hyo']
222
- * @type {Array<string>}
223
- */
224
- ikh: ['Ichimoku Kinko Hyo'],
225
- /**
226
- * Keltner Channels alias.
227
- *
228
- * @default ['Keltner Channels']
229
- * @type {Array<string>}
230
- */
231
- keltnerchannels: ['Keltner Channels'],
232
- /**
233
- * Linear Regression alias.
234
- *
235
- * @default ['Linear Regression']
236
- * @type {Array<string>}
237
- */
238
- linearRegression: ['Linear Regression'],
239
- /**
240
- * Pivot Points alias.
241
- *
242
- * @default ['Pivot Points']
243
- * @type {Array<string>}
244
- */
245
- pivotpoints: ['Pivot Points'],
246
- /**
247
- * Price Channel alias.
248
- *
249
- * @default ['Price Channel']
250
- * @type {Array<string>}
251
- */
252
- pc: ['Price Channel'],
253
- /**
254
- * Price Envelopes alias.
255
- *
256
- * @default ['Price Envelopes']
257
- * @type {Array<string>}
258
- */
259
- priceenvelopes: ['Price Envelopes'],
260
- /**
261
- * Parabolic SAR alias.
262
- *
263
- * @default ['Parabolic SAR']
264
- * @type {Array<string>}
265
- */
266
- psar: ['Parabolic SAR'],
267
- /**
268
- * Simple Moving Average alias.
269
- *
270
- * @default ['Simple Moving Average']
271
- * @type {Array<string>}
272
- */
273
- sma: ['Simple Moving Average'],
274
- /**
275
- * Super Trend alias.
276
- *
277
- * @default ['Super Trend']
278
- * @type {Array<string>}
279
- */
280
- supertrend: ['Super Trend'],
281
- /**
282
- * Triple Exponential Moving Average alias.
283
- *
284
- * @default ['Triple Exponential Moving Average']
285
- * @type {Array<string>}
286
- */
287
- tema: ['Triple Exponential Moving Average'],
288
- /**
289
- * Volume by Price alias.
290
- *
291
- * @default ['Volume by Price']
292
- * @type {Array<string>}
293
- */
294
- vbp: ['Volume by Price'],
295
- /**
296
- * Volume Weighted Moving Average alias.
297
- *
298
- * @default ['Volume Weighted Moving Average']
299
- * @type {Array<string>}
300
- */
301
- vwap: ['Volume Weighted Moving Average'],
302
- /**
303
- * Weighted Moving Average alias.
304
- *
305
- * @default ['Weighted Moving Average']
306
- * @type {Array<string>}
307
- */
308
- wma: ['Weighted Moving Average'],
309
- /**
310
- * Zig Zagalias.
311
- *
312
- * @default ['Zig Zag']
313
- * @type {Array<string>}
314
- */
315
- zigzag: ['Zig Zag'],
316
- // Oscilators
317
- /**
318
- * Absolute price indicator alias.
319
- *
320
- * @default ['Absolute price indicator']
321
- * @type {Array<string>}
322
- */
323
- apo: ['Absolute price indicator'],
324
- /**
325
- * Accumulation/Distribution alias.
326
- *
327
- * @default ['Accumulation/Distribution’]
328
- * @type {Array<string>}
329
- */
330
- ad: ['Accumulation/Distribution'],
331
- /**
332
- * Aroon alias.
333
- *
334
- * @default ['Aroon']
335
- * @type {Array<string>}
336
- */
337
- aroon: ['Aroon'],
338
- /**
339
- * Aroon oscillator alias.
340
- *
341
- * @default ['Aroon oscillator']
342
- * @type {Array<string>}
343
- */
344
- aroonoscillator: ['Aroon oscillator'],
345
- /**
346
- * Average True Range alias.
347
- *
348
- * @default ['Average True Range’]
349
- * @type {Array<string>}
350
- */
351
- atr: ['Average True Range'],
352
- /**
353
- * Awesome oscillator alias.
354
- *
355
- * @default ['Awesome oscillator’]
356
- * @type {Array<string>}
357
- */
358
- ao: ['Awesome oscillator'],
359
- /**
360
- * Commodity Channel Index alias.
361
- *
362
- * @default ['Commodity Channel Index’]
363
- * @type {Array<string>}
364
- */
365
- cci: ['Commodity Channel Index'],
366
- /**
367
- * Chaikin alias.
368
- *
369
- * @default ['Chaikin’]
370
- * @type {Array<string>}
371
- */
372
- chaikin: ['Chaikin'],
373
- /**
374
- * Chaikin Money Flow alias.
375
- *
376
- * @default ['Chaikin Money Flow’]
377
- * @type {Array<string>}
378
- */
379
- cmf: ['Chaikin Money Flow'],
380
- /**
381
- * Chande Momentum Oscillator alias.
382
- *
383
- * @default ['Chande Momentum Oscillator’]
384
- * @type {Array<string>}
385
- */
386
- cmo: ['Chande Momentum Oscillator'],
387
- /**
388
- * Disparity Index alias.
389
- *
390
- * @default ['Disparity Index’]
391
- * @type {Array<string>}
392
- */
393
- disparityindex: ['Disparity Index'],
394
- /**
395
- * Directional Movement Index alias.
396
- *
397
- * @default ['Directional Movement Index’]
398
- * @type {Array<string>}
399
- */
400
- dmi: ['Directional Movement Index'],
401
- /**
402
- * Detrended price oscillator alias.
403
- *
404
- * @default ['Detrended price oscillator’]
405
- * @type {Array<string>}
406
- */
407
- dpo: ['Detrended price oscillator'],
408
- /**
409
- * Klinger Oscillator alias.
410
- *
411
- * @default [‘Klinger Oscillator’]
412
- * @type {Array<string>}
413
- */
414
- klinger: ['Klinger Oscillator'],
415
- /**
416
- * Linear Regression Angle alias.
417
- *
418
- * @default [‘Linear Regression Angle’]
419
- * @type {Array<string>}
420
- */
421
- linearRegressionAngle: ['Linear Regression Angle'],
422
- /**
423
- * Linear Regression Intercept alias.
424
- *
425
- * @default [‘Linear Regression Intercept’]
426
- * @type {Array<string>}
427
- */
428
- linearRegressionIntercept: ['Linear Regression Intercept'],
429
- /**
430
- * Linear Regression Slope alias.
431
- *
432
- * @default [‘Linear Regression Slope’]
433
- * @type {Array<string>}
434
- */
435
- linearRegressionSlope: ['Linear Regression Slope'],
436
- /**
437
- * Moving Average Convergence Divergence alias.
438
- *
439
- * @default ['Moving Average Convergence Divergence’]
440
- * @type {Array<string>}
441
- */
442
- macd: ['Moving Average Convergence Divergence'],
443
- /**
444
- * Money Flow Index alias.
445
- *
446
- * @default ['Money Flow Index’]
447
- * @type {Array<string>}
448
- */
449
- mfi: ['Money Flow Index'],
450
- /**
451
- * Momentum alias.
452
- *
453
- * @default [‘Momentum’]
454
- * @type {Array<string>}
455
- */
456
- momentum: ['Momentum'],
457
- /**
458
- * Normalized Average True Range alias.
459
- *
460
- * @default ['Normalized Average True Range’]
461
- * @type {Array<string>}
462
- */
463
- natr: ['Normalized Average True Range'],
464
- /**
465
- * On-Balance Volume alias.
466
- *
467
- * @default ['On-Balance Volume’]
468
- * @type {Array<string>}
469
- */
470
- obv: ['On-Balance Volume'],
471
- /**
472
- * Percentage Price oscillator alias.
473
- *
474
- * @default ['Percentage Price oscillator’]
475
- * @type {Array<string>}
476
- */
477
- ppo: ['Percentage Price oscillator'],
478
- /**
479
- * Rate of Change alias.
480
- *
481
- * @default ['Rate of Change’]
482
- * @type {Array<string>}
483
- */
484
- roc: ['Rate of Change'],
485
- /**
486
- * Relative Strength Index alias.
487
- *
488
- * @default ['Relative Strength Index’]
489
- * @type {Array<string>}
490
- */
491
- rsi: ['Relative Strength Index'],
492
- /**
493
- * Slow Stochastic alias.
494
- *
495
- * @default [‘Slow Stochastic’]
496
- * @type {Array<string>}
497
- */
498
- slowstochastic: ['Slow Stochastic'],
499
- /**
500
- * Stochastic alias.
501
- *
502
- * @default [‘Stochastic’]
503
- * @type {Array<string>}
504
- */
505
- stochastic: ['Stochastic'],
506
- /**
507
- * TRIX alias.
508
- *
509
- * @default [‘TRIX’]
510
- * @type {Array<string>}
511
- */
512
- trix: ['TRIX'],
513
- /**
514
- * Williams %R alias.
515
- *
516
- * @default [‘Williams %R’]
517
- * @type {Array<string>}
518
- */
519
- williamsr: ['Williams %R']
520
- }
521
- }
522
- }
523
- },
524
- /**
525
- * Configure the stockTools gui strings in the chart. Requires the
526
- * [stockTools module]() to be loaded. For a description of the module
527
- * and information on its features, see [Highcharts StockTools]().
528
- *
529
- * @product highstock
530
- *
531
- * @sample stock/demo/stock-tools-gui Stock Tools GUI
532
- *
533
- * @sample stock/demo/stock-tools-custom-gui Stock Tools customized GUI
534
- *
535
- * @since 7.0.0
536
- * @optionparent stockTools
537
- */
538
- stockTools: {
539
- /**
540
- * Definitions of buttons in Stock Tools GUI.
541
- */
542
- gui: {
543
- /**
544
- * Path where Highcharts will look for icons. Change this to use
545
- * icons from a different server.
546
- *
547
- * Since 7.1.3 use [iconsURL](#navigation.iconsURL) for popup and
548
- * stock tools.
549
- *
550
- * @deprecated
551
- * @apioption stockTools.gui.iconsURL
552
- *
553
- */
554
- /**
555
- * Enable or disable the stockTools gui.
556
- */
557
- enabled: true,
558
- /**
559
- * A CSS class name to apply to the stocktools' div,
560
- * allowing unique CSS styling for each chart.
561
- */
562
- className: 'highcharts-bindings-wrapper',
563
- /**
564
- * A CSS class name to apply to the container of buttons,
565
- * allowing unique CSS styling for each chart.
566
- */
567
- toolbarClassName: 'stocktools-toolbar',
568
- /**
569
- * A collection of strings pointing to config options for the
570
- * toolbar items. Each name refers to a unique key from the
571
- * definitions object.
572
- *
573
- * @type {Array<string>}
574
- * @default [
575
- * 'indicators',
576
- * 'separator',
577
- * 'simpleShapes',
578
- * 'lines',
579
- * 'crookedLines',
580
- * 'measure',
581
- * 'advanced',
582
- * 'toggleAnnotations',
583
- * 'separator',
584
- * 'verticalLabels',
585
- * 'flags',
586
- * 'separator',
587
- * 'zoomChange',
588
- * 'fullScreen',
589
- * 'typeChange',
590
- * 'separator',
591
- * 'currentPriceIndicator',
592
- * 'saveChart'
593
- * ]
594
- */
595
- buttons: [
596
- 'indicators',
597
- 'separator',
598
- 'simpleShapes',
599
- 'lines',
600
- 'crookedLines',
601
- 'measure',
602
- 'advanced',
603
- 'toggleAnnotations',
604
- 'separator',
605
- 'verticalLabels',
606
- 'flags',
607
- 'separator',
608
- 'zoomChange',
609
- 'fullScreen',
610
- 'typeChange',
611
- 'separator',
612
- 'currentPriceIndicator',
613
- 'saveChart'
614
- ],
615
- /**
616
- * An options object of the buttons definitions. Each name refers to
617
- * unique key from buttons array.
618
- */
619
- definitions: {
620
- separator: {
621
- /**
622
- * A predefined background symbol for the button.
623
- */
624
- symbol: 'separator.svg'
625
- },
626
- simpleShapes: {
627
- /**
628
- * A collection of strings pointing to config options for
629
- * the items.
630
- *
631
- * @type {Array}
632
- * @default [
633
- * 'label',
634
- * 'circle',
635
- * 'ellipse',
636
- * 'rectangle'
637
- * ]
638
- *
639
- */
640
- items: [
641
- 'label',
642
- 'circle',
643
- 'ellipse',
644
- 'rectangle'
645
- ],
646
- circle: {
647
- /**
648
- * A predefined background symbol for the button.
649
- *
650
- * @type {string}
651
- *
652
- */
653
- symbol: 'circle.svg'
654
- },
655
- ellipse: {
656
- /**
657
- * A predefined background symbol for the button.
658
- *
659
- * @type {string}
660
- *
661
- */
662
- symbol: 'ellipse.svg'
663
- },
664
- rectangle: {
665
- /**
666
- * A predefined background symbol for the button.
667
- *
668
- * @type {string}
669
- *
670
- */
671
- symbol: 'rectangle.svg'
672
- },
673
- label: {
674
- /**
675
- * A predefined background symbol for the button.
676
- *
677
- * @type {string}
678
- *
679
- */
680
- symbol: 'label.svg'
681
- }
682
- },
683
- flags: {
684
- /**
685
- * A collection of strings pointing to config options for
686
- * the items.
687
- *
688
- * @type {Array}
689
- * @default [
690
- * 'flagCirclepin',
691
- * 'flagDiamondpin',
692
- * 'flagSquarepin',
693
- * 'flagSimplepin'
694
- * ]
695
- *
696
- */
697
- items: [
698
- 'flagCirclepin',
699
- 'flagDiamondpin',
700
- 'flagSquarepin',
701
- 'flagSimplepin'
702
- ],
703
- flagSimplepin: {
704
- /**
705
- * A predefined background symbol for the button.
706
- *
707
- * @type {string}
708
- *
709
- */
710
- symbol: 'flag-basic.svg'
711
- },
712
- flagDiamondpin: {
713
- /**
714
- * A predefined background symbol for the button.
715
- *
716
- * @type {string}
717
- *
718
- */
719
- symbol: 'flag-diamond.svg'
720
- },
721
- flagSquarepin: {
722
- /**
723
- * A predefined background symbol for the button.
724
- *
725
- * @type {string}
726
- */
727
- symbol: 'flag-trapeze.svg'
728
- },
729
- flagCirclepin: {
730
- /**
731
- * A predefined background symbol for the button.
732
- *
733
- * @type {string}
734
- */
735
- symbol: 'flag-elipse.svg'
736
- }
737
- },
738
- lines: {
739
- /**
740
- * A collection of strings pointing to config options for
741
- * the items.
742
- *
743
- * @type {Array}
744
- * @default [
745
- * 'segment',
746
- * 'arrowSegment',
747
- * 'ray',
748
- * 'arrowRay',
749
- * 'line',
750
- * 'arrowInfinityLine',
751
- * 'horizontalLine',
752
- * 'verticalLine'
753
- * ]
754
- */
755
- items: [
756
- 'segment',
757
- 'arrowSegment',
758
- 'ray',
759
- 'arrowRay',
760
- 'line',
761
- 'arrowInfinityLine',
762
- 'horizontalLine',
763
- 'verticalLine'
764
- ],
765
- segment: {
766
- /**
767
- * A predefined background symbol for the button.
768
- *
769
- * @type {string}
770
- */
771
- symbol: 'segment.svg'
772
- },
773
- arrowSegment: {
774
- /**
775
- * A predefined background symbol for the button.
776
- *
777
- * @type {string}
778
- */
779
- symbol: 'arrow-segment.svg'
780
- },
781
- ray: {
782
- /**
783
- * A predefined background symbol for the button.
784
- *
785
- * @type {string}
786
- */
787
- symbol: 'ray.svg'
788
- },
789
- arrowRay: {
790
- /**
791
- * A predefined background symbol for the button.
792
- *
793
- * @type {string}
794
- */
795
- symbol: 'arrow-ray.svg'
796
- },
797
- line: {
798
- /**
799
- * A predefined background symbol for the button.
800
- *
801
- * @type {string}
802
- */
803
- symbol: 'line.svg'
804
- },
805
- arrowInfinityLine: {
806
- /**
807
- * A predefined background symbol for the button.
808
- *
809
- * @type {string}
810
- */
811
- symbol: 'arrow-line.svg'
812
- },
813
- verticalLine: {
814
- /**
815
- * A predefined background symbol for the button.
816
- *
817
- * @type {string}
818
- */
819
- symbol: 'vertical-line.svg'
820
- },
821
- horizontalLine: {
822
- /**
823
- * A predefined background symbol for the button.
824
- *
825
- * @type {string}
826
- */
827
- symbol: 'horizontal-line.svg'
828
- }
829
- },
830
- crookedLines: {
831
- /**
832
- * A collection of strings pointing to config options for
833
- * the items.
834
- *
835
- * @type {Array}
836
- * @default [
837
- * 'elliott3',
838
- * 'elliott5',
839
- * 'crooked3',
840
- * 'crooked5'
841
- * ]
842
- *
843
- */
844
- items: [
845
- 'elliott3',
846
- 'elliott5',
847
- 'crooked3',
848
- 'crooked5'
849
- ],
850
- crooked3: {
851
- /**
852
- * A predefined background symbol for the button.
853
- *
854
- * @type {string}
855
- */
856
- symbol: 'crooked-3.svg'
857
- },
858
- crooked5: {
859
- /**
860
- * A predefined background symbol for the button.
861
- *
862
- * @type {string}
863
- */
864
- symbol: 'crooked-5.svg'
865
- },
866
- elliott3: {
867
- /**
868
- * A predefined background symbol for the button.
869
- *
870
- * @type {string}
871
- */
872
- symbol: 'elliott-3.svg'
873
- },
874
- elliott5: {
875
- /**
876
- * A predefined background symbol for the button.
877
- *
878
- * @type {string}
879
- */
880
- symbol: 'elliott-5.svg'
881
- }
882
- },
883
- verticalLabels: {
884
- /**
885
- * A collection of strings pointing to config options for
886
- * the items.
887
- *
888
- * @type {Array}
889
- * @default [
890
- * 'verticalCounter',
891
- * 'verticalLabel',
892
- * 'verticalArrow'
893
- * ]
894
- */
895
- items: [
896
- 'verticalCounter',
897
- 'verticalLabel',
898
- 'verticalArrow'
899
- ],
900
- verticalCounter: {
901
- /**
902
- * A predefined background symbol for the button.
903
- *
904
- * @type {string}
905
- */
906
- symbol: 'vertical-counter.svg'
907
- },
908
- verticalLabel: {
909
- /**
910
- * A predefined background symbol for the button.
911
- *
912
- * @type {string}
913
- */
914
- symbol: 'vertical-label.svg'
915
- },
916
- verticalArrow: {
917
- /**
918
- * A predefined background symbol for the button.
919
- *
920
- * @type {string}
921
- */
922
- symbol: 'vertical-arrow.svg'
923
- }
924
- },
925
- advanced: {
926
- /**
927
- * A collection of strings pointing to config options for
928
- * the items.
929
- *
930
- * @type {Array}
931
- * @default [
932
- * 'fibonacci',
933
- * 'fibonacciTimeZones',
934
- * 'pitchfork',
935
- * 'parallelChannel',
936
- * 'timeCycles'
937
- * ]
938
- */
939
- items: [
940
- 'fibonacci',
941
- 'fibonacciTimeZones',
942
- 'pitchfork',
943
- 'parallelChannel',
944
- 'timeCycles'
945
- ],
946
- pitchfork: {
947
- /**
948
- * A predefined background symbol for the button.
949
- *
950
- * @type {string}
951
- */
952
- symbol: 'pitchfork.svg'
953
- },
954
- fibonacci: {
955
- /**
956
- * A predefined background symbol for the button.
957
- *
958
- * @type {string}
959
- */
960
- symbol: 'fibonacci.svg'
961
- },
962
- fibonacciTimeZones: {
963
- /**
964
- * A predefined background symbol for the button.
965
- *
966
- * @type {string}
967
- */
968
- symbol: 'fibonacci-timezone.svg'
969
- },
970
- parallelChannel: {
971
- /**
972
- * A predefined background symbol for the button.
973
- *
974
- * @type {string}
975
- */
976
- symbol: 'parallel-channel.svg'
977
- },
978
- timeCycles: {
979
- /**
980
- * A predefined backgroud symbol for the button.
981
- *
982
- * @type {string}
983
- */
984
- symbol: 'time-cycles.svg'
985
- }
986
- },
987
- measure: {
988
- /**
989
- * A collection of strings pointing to config options for
990
- * the items.
991
- *
992
- * @type {Array}
993
- * @default [
994
- * 'measureXY',
995
- * 'measureX',
996
- * 'measureY'
997
- * ]
998
- */
999
- items: [
1000
- 'measureXY',
1001
- 'measureX',
1002
- 'measureY'
1003
- ],
1004
- measureX: {
1005
- /**
1006
- * A predefined background symbol for the button.
1007
- *
1008
- * @type {string}
1009
- */
1010
- symbol: 'measure-x.svg'
1011
- },
1012
- measureY: {
1013
- /**
1014
- * A predefined background symbol for the button.
1015
- *
1016
- * @type {string}
1017
- */
1018
- symbol: 'measure-y.svg'
1019
- },
1020
- measureXY: {
1021
- /**
1022
- * A predefined background symbol for the button.
1023
- *
1024
- * @type {string}
1025
- */
1026
- symbol: 'measure-xy.svg'
1027
- }
1028
- },
1029
- toggleAnnotations: {
1030
- /**
1031
- * A predefined background symbol for the button.
1032
- *
1033
- * @type {string}
1034
- */
1035
- symbol: 'annotations-visible.svg'
1036
- },
1037
- currentPriceIndicator: {
1038
- /**
1039
- * A predefined background symbol for the button.
1040
- *
1041
- * @type {string}
1042
- */
1043
- symbol: 'current-price-show.svg'
1044
- },
1045
- indicators: {
1046
- /**
1047
- * A predefined background symbol for the button.
1048
- *
1049
- * @type {string}
1050
- */
1051
- symbol: 'indicators.svg'
1052
- },
1053
- zoomChange: {
1054
- /**
1055
- * A collection of strings pointing to config options for
1056
- * the items.
1057
- *
1058
- * @type {Array}
1059
- * @default [
1060
- * 'zoomX',
1061
- * 'zoomY',
1062
- * 'zoomXY'
1063
- * ]
1064
- */
1065
- items: [
1066
- 'zoomX',
1067
- 'zoomY',
1068
- 'zoomXY'
1069
- ],
1070
- zoomX: {
1071
- /**
1072
- * A predefined background symbol for the button.
1073
- *
1074
- * @type {string}
1075
- */
1076
- symbol: 'zoom-x.svg'
1077
- },
1078
- zoomY: {
1079
- /**
1080
- * A predefined background symbol for the button.
1081
- *
1082
- * @type {string}
1083
- */
1084
- symbol: 'zoom-y.svg'
1085
- },
1086
- zoomXY: {
1087
- /**
1088
- * A predefined background symbol for the button.
1089
- *
1090
- * @type {string}
1091
- */
1092
- symbol: 'zoom-xy.svg'
1093
- }
1094
- },
1095
- typeChange: {
1096
- /**
1097
- * A collection of strings pointing to config options for
1098
- * the items.
1099
- *
1100
- * @type {Array}
1101
- * @default [
1102
- * 'typeOHLC',
1103
- * 'typeLine',
1104
- * 'typeCandlestick'
1105
- * 'typeHollowCandlestick'
1106
- * ]
1107
- */
1108
- items: [
1109
- 'typeOHLC',
1110
- 'typeLine',
1111
- 'typeCandlestick',
1112
- 'typeHollowCandlestick',
1113
- 'typeHLC',
1114
- 'typeHeikinAshi'
1115
- ],
1116
- typeOHLC: {
1117
- /**
1118
- * A predefined background symbol for the button.
1119
- *
1120
- * @type {string}
1121
- */
1122
- symbol: 'series-ohlc.svg'
1123
- },
1124
- typeLine: {
1125
- /**
1126
- * A predefined background symbol for the button.
1127
- *
1128
- * @type {string}
1129
- */
1130
- symbol: 'series-line.svg'
1131
- },
1132
- typeCandlestick: {
1133
- /**
1134
- * A predefined background symbol for the button.
1135
- *
1136
- * @type {string}
1137
- */
1138
- symbol: 'series-candlestick.svg'
1139
- },
1140
- typeHLC: {
1141
- /**
1142
- * A predefined background symbol for the button.
1143
- *
1144
- * @type {string}
1145
- */
1146
- symbol: 'series-hlc.svg'
1147
- },
1148
- typeHeikinAshi: {
1149
- /**
1150
- * A predefined background symbol for the button.
1151
- *
1152
- * @type {string}
1153
- */
1154
- symbol: 'series-heikin-ashi.svg'
1155
- },
1156
- typeHollowCandlestick: {
1157
- /**
1158
- * A predefined background symbol for the button.
1159
- *
1160
- * @type {string}
1161
- */
1162
- symbol: 'series-hollow-candlestick.svg'
1163
- }
1164
- },
1165
- fullScreen: {
1166
- /**
1167
- * A predefined background symbol for the button.
1168
- *
1169
- * @type {string}
1170
- */
1171
- symbol: 'fullscreen.svg'
1172
- },
1173
- saveChart: {
1174
- /**
1175
- * A predefined background symbol for the button.
1176
- *
1177
- * @type {string}
1178
- */
1179
- symbol: 'save-chart.svg'
1180
- }
18
+ var addEvent = U.addEvent, extend = U.extend, getStyle = U.getStyle, merge = U.merge, pick = U.pick;
19
+ /* *
20
+ *
21
+ * Constants
22
+ *
23
+ * */
24
+ var composedClasses = [];
25
+ /* *
26
+ *
27
+ * Functions
28
+ *
29
+ * */
30
+ /**
31
+ * Verify if Toolbar should be added.
32
+ * @private
33
+ */
34
+ function chartSetStockTools(options) {
35
+ var chartOptions = this.options, lang = chartOptions.lang, guiOptions = merge(chartOptions.stockTools && chartOptions.stockTools.gui, options && options.gui), langOptions = lang && lang.stockTools && lang.stockTools.gui;
36
+ this.stockTools = new Toolbar(guiOptions, langOptions, this);
37
+ if (this.stockTools.guiEnabled) {
38
+ this.isDirtyBox = true;
39
+ }
40
+ }
41
+ /**
42
+ * @private
43
+ */
44
+ function compose(ChartClass, NavigationBindingsClass) {
45
+ if (composedClasses.indexOf(ChartClass) === -1) {
46
+ composedClasses.push(ChartClass);
47
+ addEvent(ChartClass, 'afterGetContainer', onChartAfterGetContainer);
48
+ addEvent(ChartClass, 'beforeRedraw', onChartBeforeRedraw);
49
+ addEvent(ChartClass, 'beforeRender', onChartBeforeRedraw);
50
+ addEvent(ChartClass, 'destroy', onChartDestroy);
51
+ addEvent(ChartClass, 'getMargins', onChartGetMargins, { order: 0 });
52
+ addEvent(ChartClass, 'redraw', onChartRedraw);
53
+ addEvent(ChartClass, 'render', onChartRender);
54
+ ChartClass.prototype.setStockTools = chartSetStockTools;
55
+ }
56
+ if (composedClasses.indexOf(NavigationBindingsClass) === -1) {
57
+ composedClasses.push(NavigationBindingsClass);
58
+ addEvent(NavigationBindingsClass, 'deselectButton', onNavigationBindingsDeselectButton);
59
+ addEvent(NavigationBindingsClass, 'selectButton', onNavigationBindingsSelectButton);
60
+ }
61
+ if (composedClasses.indexOf(setOptions) === -1) {
62
+ composedClasses.push(setOptions);
63
+ setOptions(StockToolsDefaults);
64
+ }
65
+ }
66
+ /**
67
+ * Run HTML generator
68
+ * @private
69
+ */
70
+ function onChartAfterGetContainer() {
71
+ this.setStockTools();
72
+ }
73
+ /**
74
+ * Handle beforeRedraw and beforeRender
75
+ * @private
76
+ */
77
+ function onChartBeforeRedraw() {
78
+ if (this.stockTools) {
79
+ var optionsChart = this.options.chart;
80
+ var listWrapper = this.stockTools.listWrapper, offsetWidth = listWrapper && ((listWrapper.startWidth +
81
+ getStyle(listWrapper, 'padding-left') +
82
+ getStyle(listWrapper, 'padding-right')) || listWrapper.offsetWidth);
83
+ var dirty = false;
84
+ if (offsetWidth && offsetWidth < this.plotWidth) {
85
+ var nextX = pick(optionsChart.spacingLeft, optionsChart.spacing && optionsChart.spacing[3], 0) + offsetWidth;
86
+ var diff = nextX - this.spacingBox.x;
87
+ this.spacingBox.x = nextX;
88
+ this.spacingBox.width -= diff;
89
+ dirty = true;
90
+ }
91
+ else if (offsetWidth === 0) {
92
+ dirty = true;
93
+ }
94
+ if (offsetWidth !== this.stockTools.prevOffsetWidth) {
95
+ this.stockTools.prevOffsetWidth = offsetWidth;
96
+ if (dirty) {
97
+ this.isDirtyLegend = true;
1181
98
  }
1182
99
  }
1183
100
  }
1184
- });
1185
- /* eslint-disable no-invalid-this, valid-jsdoc */
1186
- // Run HTML generator
1187
- addEvent(Chart, 'afterGetContainer', function () {
1188
- this.setStockTools();
1189
- });
1190
- addEvent(Chart, 'getMargins', function () {
101
+ }
102
+ /**
103
+ * @private
104
+ */
105
+ function onChartDestroy() {
106
+ if (this.stockTools) {
107
+ this.stockTools.destroy();
108
+ }
109
+ }
110
+ /**
111
+ * @private
112
+ */
113
+ function onChartGetMargins() {
1191
114
  var listWrapper = this.stockTools && this.stockTools.listWrapper, offsetWidth = listWrapper && ((listWrapper.startWidth +
1192
115
  getStyle(listWrapper, 'padding-left') +
1193
116
  getStyle(listWrapper, 'padding-right')) || listWrapper.offsetWidth);
@@ -1195,622 +118,78 @@ addEvent(Chart, 'getMargins', function () {
1195
118
  this.plotLeft += offsetWidth;
1196
119
  this.spacing[3] += offsetWidth;
1197
120
  }
1198
- }, {
1199
- order: 0
1200
- });
1201
- ['beforeRender', 'beforeRedraw'].forEach(function (event) {
1202
- addEvent(Chart, event, function () {
1203
- if (this.stockTools) {
1204
- var optionsChart = this.options.chart;
1205
- var listWrapper = this.stockTools.listWrapper, offsetWidth = listWrapper && ((listWrapper.startWidth +
1206
- getStyle(listWrapper, 'padding-left') +
1207
- getStyle(listWrapper, 'padding-right')) || listWrapper.offsetWidth);
1208
- var dirty = false;
1209
- if (offsetWidth && offsetWidth < this.plotWidth) {
1210
- var nextX = pick(optionsChart.spacingLeft, optionsChart.spacing && optionsChart.spacing[3], 0) + offsetWidth;
1211
- var diff = nextX - this.spacingBox.x;
1212
- this.spacingBox.x = nextX;
1213
- this.spacingBox.width -= diff;
1214
- dirty = true;
1215
- }
1216
- else if (offsetWidth === 0) {
1217
- dirty = true;
1218
- }
1219
- if (offsetWidth !== this.stockTools.prevOffsetWidth) {
1220
- this.stockTools.prevOffsetWidth = offsetWidth;
1221
- if (dirty) {
1222
- this.isDirtyLegend = true;
1223
- }
1224
- }
1225
- }
1226
- });
1227
- });
1228
- addEvent(Chart, 'destroy', function () {
1229
- if (this.stockTools) {
1230
- this.stockTools.destroy();
1231
- }
1232
- });
1233
- addEvent(Chart, 'redraw', function () {
121
+ }
122
+ /**
123
+ * @private
124
+ */
125
+ function onChartRedraw() {
1234
126
  if (this.stockTools && this.stockTools.guiEnabled) {
1235
127
  this.stockTools.redraw();
1236
128
  }
1237
- });
129
+ }
1238
130
  /**
1239
- * Toolbar Class
131
+ * Check if the correct price indicator button is displayed, #15029.
1240
132
  * @private
1241
- * @class
1242
- * @param {Object}
1243
- * Options of toolbar
1244
- * @param {Highcharts.Chart}
1245
- * Reference to chart
1246
133
  */
1247
- var Toolbar = /** @class */ (function () {
1248
- function Toolbar(options, langOptions, chart) {
1249
- this.arrowDown = void 0;
1250
- this.arrowUp = void 0;
1251
- this.arrowWrapper = void 0;
1252
- this.listWrapper = void 0;
1253
- this.showhideBtn = void 0;
1254
- this.submenu = void 0;
1255
- this.toolbar = void 0;
1256
- this.wrapper = void 0;
1257
- this.chart = chart;
1258
- this.options = options;
1259
- this.lang = langOptions;
1260
- // set url for icons.
1261
- this.iconsURL = this.getIconsURL();
1262
- this.guiEnabled = options.enabled;
1263
- this.visible = pick(options.visible, true);
1264
- this.placed = pick(options.placed, false);
1265
- // General events collection which should be removed upon
1266
- // destroy/update:
1267
- this.eventsToUnbind = [];
1268
- if (this.guiEnabled) {
1269
- this.createHTML();
1270
- this.init();
1271
- this.showHideNavigatorion();
1272
- }
1273
- fireEvent(this, 'afterInit');
1274
- }
1275
- /**
1276
- * Initialize the toolbar. Create buttons and submenu for each option
1277
- * defined in `stockTools.gui`.
1278
- * @private
1279
- */
1280
- Toolbar.prototype.init = function () {
1281
- var _self = this, lang = this.lang, guiOptions = this.options, toolbar = this.toolbar, addSubmenu = _self.addSubmenu, buttons = guiOptions.buttons, defs = guiOptions.definitions, allButtons = toolbar.childNodes, button;
1282
- // create buttons
1283
- buttons.forEach(function (btnName) {
1284
- button = _self.addButton(toolbar, defs, btnName, lang);
1285
- _self.eventsToUnbind.push(addEvent(button.buttonWrapper, 'click', function () {
1286
- _self.eraseActiveButtons(allButtons, button.buttonWrapper);
1287
- }));
1288
- if (isArray(defs[btnName].items)) {
1289
- // create submenu buttons
1290
- addSubmenu.call(_self, button, defs[btnName]);
1291
- }
1292
- });
1293
- };
1294
- /**
1295
- * Create submenu (list of buttons) for the option. In example main button
1296
- * is Line, in submenu will be buttons with types of lines.
1297
- *
1298
- * @private
1299
- *
1300
- * @param {Highcharts.Dictionary<Highcharts.HTMLDOMElement>} parentBtn
1301
- * Button which has submenu
1302
- *
1303
- * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions} button
1304
- * List of all buttons
1305
- */
1306
- Toolbar.prototype.addSubmenu = function (parentBtn, button) {
1307
- var _self = this, submenuArrow = parentBtn.submenuArrow, buttonWrapper = parentBtn.buttonWrapper, buttonWidth = getStyle(buttonWrapper, 'width'), wrapper = this.wrapper, menuWrapper = this.listWrapper, allButtons = this.toolbar.childNodes, topMargin = 0, submenuWrapper;
1308
- // create submenu container
1309
- this.submenu = submenuWrapper = createElement(UL, {
1310
- className: PREFIX + 'submenu-wrapper'
1311
- }, void 0, buttonWrapper);
1312
- // create submenu buttons and select the first one
1313
- this.addSubmenuItems(buttonWrapper, button);
1314
- // show / hide submenu
1315
- _self.eventsToUnbind.push(addEvent(submenuArrow, 'click', function (e) {
1316
- e.stopPropagation();
1317
- // Erase active class on all other buttons
1318
- _self.eraseActiveButtons(allButtons, buttonWrapper);
1319
- // hide menu
1320
- if (buttonWrapper.className.indexOf(PREFIX + 'current') >= 0) {
1321
- menuWrapper.style.width =
1322
- menuWrapper.startWidth + 'px';
1323
- buttonWrapper.classList.remove(PREFIX + 'current');
1324
- submenuWrapper.style.display = 'none';
1325
- }
1326
- else {
1327
- // show menu
1328
- // to calculate height of element
1329
- submenuWrapper.style.display = 'block';
1330
- topMargin = submenuWrapper.offsetHeight -
1331
- buttonWrapper.offsetHeight - 3;
1332
- // calculate position of submenu in the box
1333
- // if submenu is inside, reset top margin
1334
- if (
1335
- // cut on the bottom
1336
- !(submenuWrapper.offsetHeight +
1337
- buttonWrapper.offsetTop >
1338
- wrapper.offsetHeight &&
1339
- // cut on the top
1340
- buttonWrapper.offsetTop > topMargin)) {
1341
- topMargin = 0;
1342
- }
1343
- // apply calculated styles
1344
- css(submenuWrapper, {
1345
- top: -topMargin + 'px',
1346
- left: buttonWidth + 3 + 'px'
1347
- });
1348
- buttonWrapper.className += ' ' + PREFIX + 'current';
1349
- menuWrapper.startWidth = wrapper.offsetWidth;
1350
- menuWrapper.style.width = menuWrapper.startWidth +
1351
- getStyle(menuWrapper, 'padding-left') +
1352
- submenuWrapper.offsetWidth + 3 + 'px';
1353
- }
1354
- }));
1355
- };
1356
- /**
1357
- * Create buttons in submenu
1358
- *
1359
- * @private
1360
- *
1361
- * @param {Highcharts.HTMLDOMElement} buttonWrapper
1362
- * Button where submenu is placed
1363
- *
1364
- * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions} button
1365
- * List of all buttons options
1366
- */
1367
- Toolbar.prototype.addSubmenuItems = function (buttonWrapper, button) {
1368
- var _self = this, submenuWrapper = this.submenu, lang = this.lang, menuWrapper = this.listWrapper, items = button.items, firstSubmenuItem, submenuBtn;
1369
- // add items to submenu
1370
- items.forEach(function (btnName) {
1371
- // add buttons to submenu
1372
- submenuBtn = _self.addButton(submenuWrapper, button, btnName, lang);
1373
- _self.eventsToUnbind.push(addEvent(submenuBtn.mainButton, 'click', function () {
1374
- _self.switchSymbol(this, buttonWrapper, true);
1375
- menuWrapper.style.width =
1376
- menuWrapper.startWidth + 'px';
1377
- submenuWrapper.style.display = 'none';
1378
- }));
1379
- });
1380
- // select first submenu item
1381
- firstSubmenuItem = submenuWrapper
1382
- .querySelectorAll('li > .' + PREFIX + 'menu-item-btn')[0];
1383
- // replace current symbol, in main button, with submenu's button style
1384
- _self.switchSymbol(firstSubmenuItem, false);
1385
- };
1386
- /*
1387
- * Erase active class on all other buttons.
1388
- *
1389
- * @param {Array} - Array of HTML buttons
1390
- * @param {HTMLDOMElement} - Current HTML button
1391
- *
1392
- */
1393
- Toolbar.prototype.eraseActiveButtons = function (buttons, currentButton, submenuItems) {
1394
- [].forEach.call(buttons, function (btn) {
1395
- if (btn !== currentButton) {
1396
- btn.classList.remove(PREFIX + 'current');
1397
- btn.classList.remove(PREFIX + 'active');
1398
- submenuItems =
1399
- btn.querySelectorAll('.' + PREFIX + 'submenu-wrapper');
1400
- // hide submenu
1401
- if (submenuItems.length > 0) {
1402
- submenuItems[0].style.display = 'none';
1403
- }
1404
- }
1405
- });
1406
- };
1407
- /**
1408
- * Create single button. Consist of HTML elements `li`, `span`, and (if
1409
- * exists) submenu container.
1410
- * @private
1411
- * @param {Highcharts.HTMLDOMElement} target
1412
- * HTML reference, where button should be added
1413
- * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions|Highcharts.StockToolsGuiDefinitionsOptions} options
1414
- * All options, by btnName refer to particular button
1415
- * @param {string} btnName
1416
- * of functionality mapped for specific class
1417
- * @param {Highcharts.Dictionary<string>} lang
1418
- * All titles, by btnName refer to particular button
1419
- * @return {Object} - references to all created HTML elements
1420
- */
1421
- Toolbar.prototype.addButton = function (target, options, btnName, lang) {
1422
- if (lang === void 0) { lang = {}; }
1423
- var btnOptions = options[btnName], items = btnOptions.items, classMapping = Toolbar.prototype.classMapping, userClassName = btnOptions.className || '', mainButton, submenuArrow, buttonWrapper;
1424
- // main button wrapper
1425
- buttonWrapper = createElement(LI, {
1426
- className: pick(classMapping[btnName], '') + ' ' + userClassName,
1427
- title: lang[btnName] || btnName
1428
- }, void 0, target);
1429
- // single button
1430
- mainButton = createElement(SPAN, {
1431
- className: PREFIX + 'menu-item-btn'
1432
- }, void 0, buttonWrapper);
1433
- // submenu
1434
- if (items && items.length) {
1435
- // arrow is a hook to show / hide submenu
1436
- submenuArrow = createElement(SPAN, {
1437
- className: PREFIX + 'submenu-item-arrow ' +
1438
- PREFIX + 'arrow-right'
1439
- }, void 0, buttonWrapper);
1440
- submenuArrow.style.backgroundImage = 'url(' +
1441
- this.iconsURL + 'arrow-bottom.svg)';
1442
- }
1443
- else {
1444
- mainButton.style.backgroundImage = 'url(' +
1445
- this.iconsURL + btnOptions.symbol + ')';
1446
- }
1447
- return {
1448
- buttonWrapper: buttonWrapper,
1449
- mainButton: mainButton,
1450
- submenuArrow: submenuArrow
1451
- };
1452
- };
1453
- /*
1454
- * Create navigation's HTML elements: container and arrows.
1455
- *
1456
- */
1457
- Toolbar.prototype.addNavigation = function () {
1458
- var stockToolbar = this, wrapper = stockToolbar.wrapper;
1459
- // arrow wrapper
1460
- stockToolbar.arrowWrapper = createElement(DIV, {
1461
- className: PREFIX + 'arrow-wrapper'
1462
- });
1463
- stockToolbar.arrowUp = createElement(DIV, {
1464
- className: PREFIX + 'arrow-up'
1465
- }, void 0, stockToolbar.arrowWrapper);
1466
- stockToolbar.arrowUp.style.backgroundImage =
1467
- 'url(' + this.iconsURL + 'arrow-right.svg)';
1468
- stockToolbar.arrowDown = createElement(DIV, {
1469
- className: PREFIX + 'arrow-down'
1470
- }, void 0, stockToolbar.arrowWrapper);
1471
- stockToolbar.arrowDown.style.backgroundImage =
1472
- 'url(' + this.iconsURL + 'arrow-right.svg)';
1473
- wrapper.insertBefore(stockToolbar.arrowWrapper, wrapper.childNodes[0]);
1474
- // attach scroll events
1475
- stockToolbar.scrollButtons();
1476
- };
1477
- /*
1478
- * Add events to navigation (two arrows) which allows user to scroll
1479
- * top/down GUI buttons, if container's height is not enough.
1480
- *
1481
- */
1482
- Toolbar.prototype.scrollButtons = function () {
1483
- var targetY = 0, _self = this, wrapper = _self.wrapper, toolbar = _self.toolbar, step = 0.1 * wrapper.offsetHeight; // 0.1 = 10%
1484
- _self.eventsToUnbind.push(addEvent(_self.arrowUp, 'click', function () {
1485
- if (targetY > 0) {
1486
- targetY -= step;
1487
- toolbar.style.marginTop = -targetY + 'px';
1488
- }
1489
- }));
1490
- _self.eventsToUnbind.push(addEvent(_self.arrowDown, 'click', function () {
1491
- if (wrapper.offsetHeight + targetY <=
1492
- toolbar.offsetHeight + step) {
1493
- targetY += step;
1494
- toolbar.style.marginTop = -targetY + 'px';
1495
- }
1496
- }));
1497
- };
1498
- /*
1499
- * Create stockTools HTML main elements.
1500
- *
1501
- */
1502
- Toolbar.prototype.createHTML = function () {
1503
- var stockToolbar = this, chart = stockToolbar.chart, guiOptions = stockToolbar.options, container = chart.container, navigation = chart.options.navigation, bindingsClassName = navigation && navigation.bindingsClassName, listWrapper, toolbar;
1504
- // create main container
1505
- var wrapper = stockToolbar.wrapper = createElement(DIV, {
1506
- className: PREFIX + 'stocktools-wrapper ' +
1507
- guiOptions.className + ' ' + bindingsClassName
1508
- });
1509
- container.appendChild(wrapper);
1510
- // Mimic event behaviour of being outside chart.container
1511
- [
1512
- 'mousedown',
1513
- 'mousemove',
1514
- 'click',
1515
- 'touchstart'
1516
- ].forEach(function (eventType) {
1517
- addEvent(wrapper, eventType, function (e) {
1518
- return e.stopPropagation();
1519
- });
1520
- });
1521
- addEvent(wrapper, 'mouseover', function (e) {
1522
- return chart.pointer.onContainerMouseLeave(e);
1523
- });
1524
- // toolbar
1525
- stockToolbar.toolbar = toolbar = createElement(UL, {
1526
- className: PREFIX + 'stocktools-toolbar ' +
1527
- guiOptions.toolbarClassName
1528
- });
1529
- // add container for list of buttons
1530
- stockToolbar.listWrapper = listWrapper = createElement(DIV, {
1531
- className: PREFIX + 'menu-wrapper'
1532
- });
1533
- wrapper.insertBefore(listWrapper, wrapper.childNodes[0]);
1534
- listWrapper.insertBefore(toolbar, listWrapper.childNodes[0]);
1535
- stockToolbar.showHideToolbar();
1536
- // add navigation which allows user to scroll down / top GUI buttons
1537
- stockToolbar.addNavigation();
1538
- };
1539
- /**
1540
- * Function called in redraw verifies if the navigation should be visible.
1541
- * @private
1542
- */
1543
- Toolbar.prototype.showHideNavigatorion = function () {
1544
- // arrows
1545
- // 50px space for arrows
1546
- if (this.visible &&
1547
- this.toolbar.offsetHeight > (this.wrapper.offsetHeight - 50)) {
1548
- this.arrowWrapper.style.display = 'block';
1549
- }
1550
- else {
1551
- // reset margin if whole toolbar is visible
1552
- this.toolbar.style.marginTop = '0px';
1553
- // hide arrows
1554
- this.arrowWrapper.style.display = 'none';
1555
- }
1556
- };
1557
- /**
1558
- * Create button which shows or hides GUI toolbar.
1559
- * @private
1560
- */
1561
- Toolbar.prototype.showHideToolbar = function () {
1562
- var stockToolbar = this, chart = this.chart, wrapper = stockToolbar.wrapper, toolbar = this.listWrapper, submenu = this.submenu, visible = this.visible, showhideBtn;
1563
- // Show hide toolbar
1564
- this.showhideBtn = showhideBtn = createElement(DIV, {
1565
- className: PREFIX + 'toggle-toolbar ' + PREFIX + 'arrow-left'
1566
- }, void 0, wrapper);
1567
- showhideBtn.style.backgroundImage =
1568
- 'url(' + this.iconsURL + 'arrow-right.svg)';
1569
- if (!visible) {
1570
- // hide
1571
- if (submenu) {
1572
- submenu.style.display = 'none';
1573
- }
1574
- showhideBtn.style.left = '0px';
1575
- stockToolbar.visible = visible = false;
1576
- toolbar.classList.add(PREFIX + 'hide');
1577
- showhideBtn.classList.toggle(PREFIX + 'arrow-right');
1578
- wrapper.style.height = showhideBtn.offsetHeight + 'px';
1579
- }
1580
- else {
1581
- wrapper.style.height = '100%';
1582
- showhideBtn.style.top = getStyle(toolbar, 'padding-top') + 'px';
1583
- showhideBtn.style.left = (wrapper.offsetWidth +
1584
- getStyle(toolbar, 'padding-left')) + 'px';
1585
- }
1586
- // Toggle menu
1587
- stockToolbar.eventsToUnbind.push(addEvent(showhideBtn, 'click', function () {
1588
- chart.update({
1589
- stockTools: {
1590
- gui: {
1591
- visible: !visible,
1592
- placed: true
1593
- }
1594
- }
1595
- });
1596
- }));
1597
- };
1598
- /*
1599
- * In main GUI button, replace icon and class with submenu button's
1600
- * class / symbol.
1601
- *
1602
- * @param {HTMLDOMElement} - submenu button
1603
- * @param {Boolean} - true or false
1604
- *
1605
- */
1606
- Toolbar.prototype.switchSymbol = function (button, redraw) {
1607
- var buttonWrapper = button.parentNode, buttonWrapperClass = buttonWrapper.className,
1608
- // main button in first level og GUI
1609
- mainNavButton = buttonWrapper.parentNode.parentNode;
1610
- // if the button is disabled, don't do anything
1611
- if (buttonWrapperClass.indexOf('highcharts-disabled-btn') > -1) {
1612
- return;
1613
- }
1614
- // set class
1615
- mainNavButton.className = '';
1616
- if (buttonWrapperClass) {
1617
- mainNavButton.classList.add(buttonWrapperClass.trim());
1618
- }
1619
- // set icon
1620
- mainNavButton
1621
- .querySelectorAll('.' + PREFIX + 'menu-item-btn')[0]
1622
- .style.backgroundImage =
1623
- button.style.backgroundImage;
1624
- // set active class
1625
- if (redraw) {
1626
- this.toggleButtonAciveClass(mainNavButton);
1627
- }
1628
- };
1629
- /*
1630
- * Set select state (active class) on button.
1631
- *
1632
- * @param {HTMLDOMElement} - button
1633
- *
1634
- */
1635
- Toolbar.prototype.toggleButtonAciveClass = function (button) {
1636
- if (button.className.indexOf(activeClass) >= 0) {
1637
- button.classList.remove(activeClass);
134
+ function onChartRender() {
135
+ var stockTools = this.stockTools, button = stockTools &&
136
+ stockTools.toolbar &&
137
+ stockTools.toolbar.querySelector('.highcharts-current-price-indicator');
138
+ // Change the initial button background.
139
+ if (stockTools &&
140
+ this.navigationBindings &&
141
+ this.options.series &&
142
+ button) {
143
+ if (this.navigationBindings.constructor.prototype.utils
144
+ .isPriceIndicatorEnabled(this.series)) {
145
+ button.firstChild.style['background-image'] =
146
+ 'url("' + stockTools.getIconsURL() + 'current-price-hide.svg")';
1638
147
  }
1639
148
  else {
1640
- button.classList.add(activeClass);
1641
- }
1642
- };
1643
- /*
1644
- * Remove active class from all buttons except defined.
1645
- *
1646
- * @param {HTMLDOMElement} - button which should not be deactivated
1647
- *
1648
- */
1649
- Toolbar.prototype.unselectAllButtons = function (button) {
1650
- var activeButtons = button.parentNode
1651
- .querySelectorAll('.' + activeClass);
1652
- [].forEach.call(activeButtons, function (activeBtn) {
1653
- if (activeBtn !== button) {
1654
- activeBtn.classList.remove(activeClass);
1655
- }
1656
- });
1657
- };
1658
- /*
1659
- * Update GUI with given options.
1660
- *
1661
- * @param {Object} - general options for Stock Tools
1662
- */
1663
- Toolbar.prototype.update = function (options, redraw) {
1664
- merge(true, this.chart.options.stockTools, options);
1665
- this.destroy();
1666
- this.chart.setStockTools(options);
1667
- // If Stock Tools are updated, then bindings should be updated too:
1668
- if (this.chart.navigationBindings) {
1669
- this.chart.navigationBindings.update();
1670
- }
1671
- this.chart.isDirtyBox = true;
1672
- if (pick(redraw, true)) {
1673
- this.chart.redraw();
1674
- }
1675
- };
1676
- /**
1677
- * Destroy all HTML GUI elements.
1678
- * @private
1679
- */
1680
- Toolbar.prototype.destroy = function () {
1681
- var stockToolsDiv = this.wrapper, parent = stockToolsDiv && stockToolsDiv.parentNode;
1682
- this.eventsToUnbind.forEach(function (unbinder) {
1683
- unbinder();
1684
- });
1685
- // Remove the empty element
1686
- if (parent) {
1687
- parent.removeChild(stockToolsDiv);
149
+ button.firstChild.style['background-image'] =
150
+ 'url("' + stockTools.getIconsURL() + 'current-price-show.svg")';
1688
151
  }
1689
- };
1690
- /**
1691
- * Redraw, GUI requires to verify if the navigation should be visible.
1692
- * @private
1693
- */
1694
- Toolbar.prototype.redraw = function () {
1695
- this.showHideNavigatorion();
1696
- };
1697
- Toolbar.prototype.getIconsURL = function () {
1698
- return this.chart.options.navigation.iconsURL ||
1699
- this.options.iconsURL ||
1700
- 'https://code.highcharts.com/10.2.0/gfx/stock-icons/';
1701
- };
1702
- return Toolbar;
1703
- }());
152
+ }
153
+ }
1704
154
  /**
1705
- * Mapping JSON fields to CSS classes.
1706
155
  * @private
1707
156
  */
1708
- Toolbar.prototype.classMapping = {
1709
- circle: PREFIX + 'circle-annotation',
1710
- ellipse: PREFIX + 'ellipse-annotation',
1711
- rectangle: PREFIX + 'rectangle-annotation',
1712
- label: PREFIX + 'label-annotation',
1713
- segment: PREFIX + 'segment',
1714
- arrowSegment: PREFIX + 'arrow-segment',
1715
- ray: PREFIX + 'ray',
1716
- arrowRay: PREFIX + 'arrow-ray',
1717
- line: PREFIX + 'infinity-line',
1718
- arrowInfinityLine: PREFIX + 'arrow-infinity-line',
1719
- verticalLine: PREFIX + 'vertical-line',
1720
- horizontalLine: PREFIX + 'horizontal-line',
1721
- crooked3: PREFIX + 'crooked3',
1722
- crooked5: PREFIX + 'crooked5',
1723
- elliott3: PREFIX + 'elliott3',
1724
- elliott5: PREFIX + 'elliott5',
1725
- pitchfork: PREFIX + 'pitchfork',
1726
- fibonacci: PREFIX + 'fibonacci',
1727
- fibonacciTimeZones: PREFIX + 'fibonacci-time-zones',
1728
- parallelChannel: PREFIX + 'parallel-channel',
1729
- measureX: PREFIX + 'measure-x',
1730
- measureY: PREFIX + 'measure-y',
1731
- measureXY: PREFIX + 'measure-xy',
1732
- timeCycles: PREFIX + 'time-cycles',
1733
- verticalCounter: PREFIX + 'vertical-counter',
1734
- verticalLabel: PREFIX + 'vertical-label',
1735
- verticalArrow: PREFIX + 'vertical-arrow',
1736
- currentPriceIndicator: PREFIX + 'current-price-indicator',
1737
- indicators: PREFIX + 'indicators',
1738
- flagCirclepin: PREFIX + 'flag-circlepin',
1739
- flagDiamondpin: PREFIX + 'flag-diamondpin',
1740
- flagSquarepin: PREFIX + 'flag-squarepin',
1741
- flagSimplepin: PREFIX + 'flag-simplepin',
1742
- zoomX: PREFIX + 'zoom-x',
1743
- zoomY: PREFIX + 'zoom-y',
1744
- zoomXY: PREFIX + 'zoom-xy',
1745
- typeLine: PREFIX + 'series-type-line',
1746
- typeOHLC: PREFIX + 'series-type-ohlc',
1747
- typeHLC: PREFIX + 'series-type-hlc',
1748
- typeCandlestick: PREFIX + 'series-type-candlestick',
1749
- typeHollowCandlestick: PREFIX + 'series-type-hollowcandlestick',
1750
- typeHeikinAshi: PREFIX + 'series-type-heikinashi',
1751
- fullScreen: PREFIX + 'full-screen',
1752
- toggleAnnotations: PREFIX + 'toggle-annotations',
1753
- saveChart: PREFIX + 'save-chart',
1754
- separator: PREFIX + 'separator'
1755
- };
1756
- extend(Chart.prototype, {
1757
- /**
1758
- * Verify if Toolbar should be added.
1759
- * @private
1760
- * @param {Highcharts.StockToolsOptions} - chart options
1761
- */
1762
- setStockTools: function (options) {
1763
- var chartOptions = this.options, lang = chartOptions.lang, guiOptions = merge(chartOptions.stockTools && chartOptions.stockTools.gui, options && options.gui), langOptions = lang && lang.stockTools && lang.stockTools.gui;
1764
- this.stockTools = new Toolbar(guiOptions, langOptions, this);
1765
- if (this.stockTools.guiEnabled) {
1766
- this.isDirtyBox = true;
1767
- }
1768
- }
1769
- });
1770
- // Comunication with bindings:
1771
- addEvent(NavigationBindings, 'selectButton', function (event) {
1772
- var button = event.button, className = PREFIX + 'submenu-wrapper', gui = this.chart.stockTools;
157
+ function onNavigationBindingsDeselectButton(event) {
158
+ var className = 'highcharts-submenu-wrapper', gui = this.chart.stockTools;
1773
159
  if (gui && gui.guiEnabled) {
1774
- // Unslect other active buttons
1775
- gui.unselectAllButtons(event.button);
1776
- // If clicked on a submenu, select state for it's parent
160
+ var button = event.button;
161
+ // If deselecting a button from a submenu, select state for it's parent
1777
162
  if (button.parentNode.className.indexOf(className) >= 0) {
1778
163
  button = button.parentNode.parentNode;
1779
164
  }
1780
165
  // Set active class on the current button
1781
- gui.toggleButtonAciveClass(button);
166
+ gui.toggleButtonActiveClass(button);
1782
167
  }
1783
- });
1784
- addEvent(NavigationBindings, 'deselectButton', function (event) {
1785
- var button = event.button, className = PREFIX + 'submenu-wrapper', gui = this.chart.stockTools;
168
+ }
169
+ /**
170
+ * Communication with bindings
171
+ * @private
172
+ */
173
+ function onNavigationBindingsSelectButton(event) {
174
+ var className = 'highcharts-submenu-wrapper', gui = this.chart.stockTools;
1786
175
  if (gui && gui.guiEnabled) {
1787
- // If deselecting a button from a submenu, select state for it's parent
176
+ var button = event.button;
177
+ // Unslect other active buttons
178
+ gui.unselectAllButtons(event.button);
179
+ // If clicked on a submenu, select state for it's parent
1788
180
  if (button.parentNode.className.indexOf(className) >= 0) {
1789
181
  button = button.parentNode.parentNode;
1790
182
  }
1791
- gui.toggleButtonAciveClass(button);
1792
- }
1793
- });
1794
- // Check if the correct price indicator button is displayed, #15029.
1795
- addEvent(Chart, 'render', function () {
1796
- var chart = this, stockTools = chart.stockTools, button = stockTools &&
1797
- stockTools.toolbar &&
1798
- stockTools.toolbar.querySelector('.highcharts-current-price-indicator');
1799
- // Change the initial button background.
1800
- if (stockTools &&
1801
- chart.navigationBindings &&
1802
- chart.options.series &&
1803
- button) {
1804
- if (chart.navigationBindings.constructor.prototype.utils
1805
- .isPriceIndicatorEnabled(chart.series)) {
1806
- button.firstChild.style['background-image'] =
1807
- 'url("' + stockTools.getIconsURL() + 'current-price-hide.svg")';
1808
- }
1809
- else {
1810
- button.firstChild.style['background-image'] =
1811
- 'url("' + stockTools.getIconsURL() + 'current-price-show.svg")';
1812
- }
183
+ // Set active class on the current button
184
+ gui.toggleButtonActiveClass(button);
1813
185
  }
1814
- });
1815
- H.Toolbar = Toolbar;
1816
- export default H.Toolbar;
186
+ }
187
+ /* *
188
+ *
189
+ * Default Export
190
+ *
191
+ * */
192
+ var StockToolsGui = {
193
+ compose: compose
194
+ };
195
+ export default StockToolsGui;