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
@@ -1,1123 +0,0 @@
1
- /* *
2
- *
3
- * Popup generator for Stock tools
4
- *
5
- * (c) 2009-2021 Sebastian Bochan
6
- *
7
- * License: www.highcharts.com/license
8
- *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
- *
11
- * */
12
- import AST from '../../Core/Renderer/HTML/AST.js';
13
- import H from '../../Core/Globals.js';
14
- var doc = H.doc, isFirefox = H.isFirefox;
15
- import NavigationBindings from './NavigationBindings.js';
16
- import D from '../../Core/DefaultOptions.js';
17
- var getOptions = D.getOptions;
18
- import Pointer from '../../Core/Pointer.js';
19
- import U from '../../Core/Utilities.js';
20
- var addEvent = U.addEvent, createElement = U.createElement, defined = U.defined, fireEvent = U.fireEvent, isArray = U.isArray, isObject = U.isObject, objectEach = U.objectEach, pick = U.pick, stableSort = U.stableSort, wrap = U.wrap;
21
- var indexFilter = /\d/g, PREFIX = 'highcharts-', A = 'a', DIV = 'div', INPUT = 'input', LABEL = 'label', BUTTON = 'button', SELECT = 'select', OPTION = 'option', SPAN = 'span', UL = 'ul', LI = 'li', H3 = 'h3';
22
- /**
23
- * Enum for properties which should have dropdown list.
24
- * @private
25
- */
26
- var DropdownProperties;
27
- (function (DropdownProperties) {
28
- DropdownProperties[DropdownProperties["params.algorithm"] = 0] = "params.algorithm";
29
- DropdownProperties[DropdownProperties["params.average"] = 1] = "params.average";
30
- })(DropdownProperties || (DropdownProperties = {}));
31
- /**
32
- * List of available algorithms for the specific indicator.
33
- * @private
34
- */
35
- var dropdownParameters = {
36
- 'algorithm-pivotpoints': ['standard', 'fibonacci', 'camarilla'],
37
- 'average-disparityindex': ['sma', 'ema', 'dema', 'tema', 'wma']
38
- };
39
- /* eslint-disable no-invalid-this, valid-jsdoc */
40
- // onContainerMouseDown blocks internal popup events, due to e.preventDefault.
41
- // Related issue #4606
42
- wrap(Pointer.prototype, 'onContainerMouseDown', function (proceed, e) {
43
- // elements is not in popup
44
- if (!this.inClass(e.target, PREFIX + 'popup')) {
45
- proceed.apply(this, Array.prototype.slice.call(arguments, 1));
46
- }
47
- });
48
- H.Popup = function (parentDiv, iconsURL, chart) {
49
- this.init(parentDiv, iconsURL, chart);
50
- };
51
- H.Popup.prototype = {
52
- /**
53
- * Initialize the popup. Create base div and add close button.
54
- * @private
55
- * @param {Highcharts.HTMLDOMElement} parentDiv
56
- * Container where popup should be placed
57
- * @param {string} iconsURL
58
- * Icon URL
59
- */
60
- init: function (parentDiv, iconsURL, chart) {
61
- this.chart = chart;
62
- // create popup div
63
- this.container = createElement(DIV, {
64
- className: PREFIX + 'popup highcharts-no-tooltip'
65
- }, void 0, parentDiv);
66
- addEvent(this.container, 'mousedown', function () {
67
- var activeAnnotation = chart &&
68
- chart.navigationBindings &&
69
- chart.navigationBindings.activeAnnotation;
70
- if (activeAnnotation) {
71
- activeAnnotation.cancelClick = true;
72
- var unbind_1 = addEvent(H.doc, 'click', function () {
73
- setTimeout(function () {
74
- activeAnnotation.cancelClick = false;
75
- }, 0);
76
- unbind_1();
77
- });
78
- }
79
- });
80
- this.lang = this.getLangpack();
81
- this.iconsURL = iconsURL;
82
- // add close button
83
- this.addCloseBtn();
84
- },
85
- /**
86
- * Create HTML element and attach click event (close popup).
87
- * @private
88
- */
89
- addCloseBtn: function () {
90
- var _self = this, closeBtn;
91
- var iconsURL = this.iconsURL;
92
- // create close popup btn
93
- closeBtn = createElement(DIV, {
94
- className: PREFIX + 'popup-close'
95
- }, void 0, this.container);
96
- closeBtn.style['background-image'] = 'url(' +
97
- (iconsURL.match(/png|svg|jpeg|jpg|gif/ig) ?
98
- iconsURL : iconsURL + 'close.svg') + ')';
99
- ['click', 'touchstart'].forEach(function (eventName) {
100
- addEvent(closeBtn, eventName, function () {
101
- if (_self.chart) {
102
- fireEvent(_self.chart.navigationBindings, 'closePopup');
103
- }
104
- else {
105
- _self.closePopup();
106
- }
107
- });
108
- });
109
- },
110
- /**
111
- * Create two columns (divs) in HTML.
112
- * @private
113
- * @param {Highcharts.HTMLDOMElement} container
114
- * Container of columns
115
- * @return {Highcharts.Dictionary<Highcharts.HTMLDOMElement>}
116
- * Reference to two HTML columns (lhsCol, rhsCol)
117
- */
118
- addColsContainer: function (container) {
119
- var rhsCol, lhsCol;
120
- // left column
121
- lhsCol = createElement(DIV, {
122
- className: PREFIX + 'popup-lhs-col'
123
- }, void 0, container);
124
- // right column
125
- rhsCol = createElement(DIV, {
126
- className: PREFIX + 'popup-rhs-col'
127
- }, void 0, container);
128
- // wrapper content
129
- createElement(DIV, {
130
- className: PREFIX + 'popup-rhs-col-wrapper'
131
- }, void 0, rhsCol);
132
- return {
133
- lhsCol: lhsCol,
134
- rhsCol: rhsCol
135
- };
136
- },
137
- /**
138
- * Create input with label.
139
- *
140
- * @private
141
- *
142
- * @param {string} option
143
- * Chain of fields i.e params.styles.fontSize separeted by the dot.
144
- *
145
- * @param {string} indicatorType
146
- * Type of the indicator i.e. sma, ema...
147
- *
148
- * @param {HTMLDOMElement} parentDiv
149
- * HTML parent element.
150
- *
151
- * @param {Highcharts.InputAttributes} inputAttributes
152
- * Attributes of the input.
153
- *
154
- * @return {HTMLInputElement}
155
- * Return created input element.
156
- */
157
- addInput: function (option, indicatorType, parentDiv, inputAttributes) {
158
- var optionParamList = option.split('.'), optionName = optionParamList[optionParamList.length - 1], lang = this.lang, inputName = PREFIX + indicatorType + '-' + pick(inputAttributes.htmlFor, optionName);
159
- var input;
160
- if (!inputName.match(indexFilter)) {
161
- // add label
162
- createElement(LABEL, {
163
- htmlFor: inputName,
164
- className: inputAttributes.labelClassName
165
- }, void 0, parentDiv).appendChild(doc.createTextNode(lang[optionName] || optionName));
166
- }
167
- // add input
168
- input = createElement(INPUT, {
169
- name: inputName,
170
- value: inputAttributes.value,
171
- type: inputAttributes.type,
172
- className: PREFIX + 'popup-field'
173
- }, void 0, parentDiv);
174
- input.setAttribute(PREFIX + 'data-name', option);
175
- return input;
176
- },
177
- /**
178
- * Create button.
179
- * @private
180
- * @param {Highcharts.HTMLDOMElement} parentDiv
181
- * Container where elements should be added
182
- * @param {string} label
183
- * Text placed as button label
184
- * @param {string} type
185
- * add | edit | remove
186
- * @param {Function} callback
187
- * On click callback
188
- * @param {Highcharts.HTMLDOMElement} fieldsDiv
189
- * Container where inputs are generated
190
- * @return {Highcharts.HTMLDOMElement}
191
- * HTML button
192
- */
193
- addButton: function (parentDiv, label, type, fieldsDiv, callback) {
194
- var _self = this, closePopup = this.closePopup, getFields = this.getFields, button;
195
- button = createElement(BUTTON, void 0, void 0, parentDiv);
196
- button.appendChild(doc.createTextNode(label));
197
- if (callback) {
198
- ['click', 'touchstart'].forEach(function (eventName) {
199
- addEvent(button, eventName, function () {
200
- closePopup.call(_self);
201
- return callback(getFields(fieldsDiv, type));
202
- });
203
- });
204
- }
205
- return button;
206
- },
207
- /**
208
- * Get values from all inputs and selections then create JSON.
209
- *
210
- * @private
211
- *
212
- * @param {Highcharts.HTMLDOMElement} parentDiv
213
- * The container where inputs and selections are created.
214
- *
215
- * @param {string} type
216
- * Type of the popup bookmark (add|edit|remove).
217
- */
218
- getFields: function (parentDiv, type) {
219
- var inputList = Array.prototype.slice.call(parentDiv.querySelectorAll(INPUT)), selectList = Array.prototype.slice.call(parentDiv.querySelectorAll(SELECT)), optionSeries = '#' + PREFIX + 'select-series > option:checked', optionVolume = '#' + PREFIX + 'select-volume > option:checked', linkedTo = parentDiv.querySelectorAll(optionSeries)[0], volumeTo = parentDiv.querySelectorAll(optionVolume)[0];
220
- var fieldsOutput;
221
- fieldsOutput = {
222
- actionType: type,
223
- linkedTo: linkedTo && linkedTo.getAttribute('value') || '',
224
- fields: {}
225
- };
226
- inputList.forEach(function (input) {
227
- var param = input.getAttribute(PREFIX + 'data-name'), seriesId = input.getAttribute(PREFIX + 'data-series-id');
228
- // params
229
- if (seriesId) {
230
- fieldsOutput.seriesId = input.value;
231
- }
232
- else if (param) {
233
- fieldsOutput.fields[param] = input.value;
234
- }
235
- else {
236
- // type like sma / ema
237
- fieldsOutput.type = input.value;
238
- }
239
- });
240
- selectList.forEach(function (select) {
241
- var id = select.id;
242
- // Get inputs only for the parameters, not for series and volume.
243
- if (id !== PREFIX + 'select-series' &&
244
- id !== PREFIX + 'select-volume') {
245
- var parameter = id.split('highcharts-select-')[1];
246
- fieldsOutput.fields[parameter] = select.value;
247
- }
248
- });
249
- if (volumeTo) {
250
- fieldsOutput.fields['params.volumeSeriesID'] = volumeTo
251
- .getAttribute('value') || '';
252
- }
253
- return fieldsOutput;
254
- },
255
- /**
256
- * Reset content of the current popup and show.
257
- * @private
258
- */
259
- showPopup: function () {
260
- var popupDiv = this.container, toolbarClass = PREFIX + 'annotation-toolbar', popupCloseBtn = popupDiv
261
- .querySelectorAll('.' + PREFIX + 'popup-close')[0];
262
- this.formType = void 0;
263
- // reset content
264
- popupDiv.innerHTML = AST.emptyHTML;
265
- // reset toolbar styles if exists
266
- if (popupDiv.className.indexOf(toolbarClass) >= 0) {
267
- popupDiv.classList.remove(toolbarClass);
268
- // reset toolbar inline styles
269
- popupDiv.removeAttribute('style');
270
- }
271
- // add close button
272
- popupDiv.appendChild(popupCloseBtn);
273
- popupDiv.style.display = 'block';
274
- popupDiv.style.height = '';
275
- },
276
- /**
277
- * Hide popup.
278
- * @private
279
- */
280
- closePopup: function () {
281
- var container = pick(this.popup && this.popup.container, this.container);
282
- container.style.display = 'none';
283
- },
284
- /**
285
- * Create content and show popup.
286
- * @private
287
- * @param {string} - type of popup i.e indicators
288
- * @param {Highcharts.Chart} - chart
289
- * @param {Highcharts.AnnotationsOptions} - options
290
- * @param {Function} - on click callback
291
- */
292
- showForm: function (type, chart, options, callback) {
293
- if (!chart) {
294
- return;
295
- }
296
- this.popup = chart.navigationBindings.popup;
297
- // show blank popup
298
- this.showPopup();
299
- // indicator form
300
- if (type === 'indicators') {
301
- this.indicators.addForm.call(this, chart, options, callback);
302
- }
303
- // annotation small toolbar
304
- if (type === 'annotation-toolbar') {
305
- this.annotations.addToolbar.call(this, chart, options, callback);
306
- }
307
- // annotation edit form
308
- if (type === 'annotation-edit') {
309
- this.annotations.addForm.call(this, chart, options, callback);
310
- }
311
- // flags form - add / edit
312
- if (type === 'flag') {
313
- this.annotations.addForm.call(this, chart, options, callback, true);
314
- }
315
- this.formType = type;
316
- // Explicit height is needed to make inner elements scrollable
317
- this.container.style.height = this.container.offsetHeight + 'px';
318
- },
319
- /**
320
- * Return lang definitions for popup.
321
- * @private
322
- * @return {Highcharts.Dictionary<string>} - elements translations.
323
- */
324
- getLangpack: function () {
325
- return getOptions().lang.navigation.popup;
326
- },
327
- annotations: {
328
- /**
329
- * Create annotation simple form. It contains two buttons
330
- * (edit / remove) and text label.
331
- * @private
332
- * @param {Highcharts.Chart} - chart
333
- * @param {Highcharts.AnnotationsOptions} - options
334
- * @param {Function} - on click callback
335
- */
336
- addToolbar: function (chart, options, callback) {
337
- var _self = this, lang = this.lang, popupDiv = this.popup.container, showForm = this.showForm, toolbarClass = PREFIX + 'annotation-toolbar', button;
338
- // set small size
339
- if (popupDiv.className.indexOf(toolbarClass) === -1) {
340
- popupDiv.className += ' ' + toolbarClass;
341
- }
342
- // set position
343
- if (chart) {
344
- popupDiv.style.top = chart.plotTop + 10 + 'px';
345
- }
346
- // create label
347
- createElement(SPAN, void 0, void 0, popupDiv).appendChild(doc.createTextNode(pick(
348
- // Advanced annotations:
349
- lang[options.langKey] || options.langKey,
350
- // Basic shapes:
351
- options.shapes && options.shapes[0].type, '')));
352
- // add buttons
353
- button = this.addButton(popupDiv, lang.removeButton || 'remove', 'remove', popupDiv, callback);
354
- button.className += ' ' + PREFIX + 'annotation-remove-button';
355
- button.style['background-image'] = 'url(' +
356
- this.iconsURL + 'destroy.svg)';
357
- button = this.addButton(popupDiv, lang.editButton || 'edit', 'edit', popupDiv, function () {
358
- showForm.call(_self, 'annotation-edit', chart, options, callback);
359
- });
360
- button.className += ' ' + PREFIX + 'annotation-edit-button';
361
- button.style['background-image'] = 'url(' +
362
- this.iconsURL + 'edit.svg)';
363
- },
364
- /**
365
- * Create annotation simple form.
366
- * It contains fields with param names.
367
- * @private
368
- * @param {Highcharts.Chart} chart
369
- * Chart
370
- * @param {Object} options
371
- * Options
372
- * @param {Function} callback
373
- * On click callback
374
- * @param {boolean} [isInit]
375
- * If it is a form declared for init annotation
376
- */
377
- addForm: function (chart, options, callback, isInit) {
378
- var popupDiv = this.popup.container, lang = this.lang, bottomRow, lhsCol;
379
- if (!chart) {
380
- return;
381
- }
382
- // create title of annotations
383
- lhsCol = createElement('h2', {
384
- className: PREFIX + 'popup-main-title'
385
- }, void 0, popupDiv);
386
- lhsCol.appendChild(doc.createTextNode(lang[options.langKey] || options.langKey || ''));
387
- // left column
388
- lhsCol = createElement(DIV, {
389
- className: (PREFIX + 'popup-lhs-col ' + PREFIX + 'popup-lhs-full')
390
- }, void 0, popupDiv);
391
- bottomRow = createElement(DIV, {
392
- className: PREFIX + 'popup-bottom-row'
393
- }, void 0, popupDiv);
394
- this.annotations.addFormFields.call(this, lhsCol, chart, '', options, [], true);
395
- this.addButton(bottomRow, isInit ?
396
- (lang.addButton || 'add') :
397
- (lang.saveButton || 'save'), isInit ? 'add' : 'save', popupDiv, callback);
398
- },
399
- /**
400
- * Create annotation's form fields.
401
- * @private
402
- * @param {Highcharts.HTMLDOMElement} parentDiv
403
- * Div where inputs are placed
404
- * @param {Highcharts.Chart} chart
405
- * Chart
406
- * @param {string} parentNode
407
- * Name of parent to create chain of names
408
- * @param {Highcharts.AnnotationsOptions} options
409
- * Options
410
- * @param {Array<unknown>} storage
411
- * Array where all items are stored
412
- * @param {boolean} [isRoot]
413
- * Recursive flag for root
414
- */
415
- addFormFields: function (parentDiv, chart, parentNode, options, storage, isRoot) {
416
- var _self = this, addFormFields = this.annotations.addFormFields, addInput = this.addInput, lang = this.lang, parentFullName, titleName;
417
- if (!chart) {
418
- return;
419
- }
420
- objectEach(options, function (value, option) {
421
- // create name like params.styles.fontSize
422
- parentFullName = parentNode !== '' ?
423
- parentNode + '.' + option : option;
424
- if (isObject(value)) {
425
- if (
426
- // value is object of options
427
- !isArray(value) ||
428
- // array of objects with params. i.e labels in Fibonacci
429
- (isArray(value) && isObject(value[0]))) {
430
- titleName = lang[option] || option;
431
- if (!titleName.match(indexFilter)) {
432
- storage.push([
433
- true,
434
- titleName,
435
- parentDiv
436
- ]);
437
- }
438
- addFormFields.call(_self, parentDiv, chart, parentFullName, value, storage, false);
439
- }
440
- else {
441
- storage.push([
442
- _self,
443
- parentFullName,
444
- 'annotation',
445
- parentDiv,
446
- value
447
- ]);
448
- }
449
- }
450
- });
451
- if (isRoot) {
452
- stableSort(storage, function (a) {
453
- return a[1].match(/format/g) ? -1 : 1;
454
- });
455
- if (isFirefox) {
456
- storage.reverse(); // (#14691)
457
- }
458
- storage.forEach(function (genInput) {
459
- if (genInput[0] === true) {
460
- createElement(SPAN, {
461
- className: PREFIX + 'annotation-title'
462
- }, void 0, genInput[2]).appendChild(doc.createTextNode(genInput[1]));
463
- }
464
- else {
465
- genInput[4] = {
466
- value: genInput[4][0],
467
- type: genInput[4][1]
468
- };
469
- addInput.apply(genInput[0], genInput.splice(1));
470
- }
471
- });
472
- }
473
- }
474
- },
475
- indicators: {
476
- /**
477
- * Create indicator's form. It contains two tabs (ADD and EDIT) with
478
- * content.
479
- * @private
480
- */
481
- addForm: function (chart, _options, callback) {
482
- var tabsContainers, indicators = this.indicators, lang = this.lang, buttonParentDiv;
483
- if (!chart) {
484
- return;
485
- }
486
- // add tabs
487
- this.tabs.init.call(this, chart);
488
- // get all tabs content divs
489
- tabsContainers = this.popup.container
490
- .querySelectorAll('.' + PREFIX + 'tab-item-content');
491
- // ADD tab
492
- this.addColsContainer(tabsContainers[0]);
493
- indicators.addSearchBox.call(this, chart, tabsContainers[0]);
494
- indicators.addIndicatorList.call(this, chart, tabsContainers[0], 'add');
495
- buttonParentDiv = tabsContainers[0]
496
- .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0];
497
- this.addButton(buttonParentDiv, lang.addButton || 'add', 'add', buttonParentDiv, callback);
498
- // EDIT tab
499
- this.addColsContainer(tabsContainers[1]);
500
- indicators.addIndicatorList.call(this, chart, tabsContainers[1], 'edit');
501
- buttonParentDiv = tabsContainers[1]
502
- .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0];
503
- this.addButton(buttonParentDiv, lang.saveButton || 'save', 'edit', buttonParentDiv, callback);
504
- this.addButton(buttonParentDiv, lang.removeButton || 'remove', 'remove', buttonParentDiv, callback);
505
- },
506
- /**
507
- * Filter object of series which are not indicators.
508
- * If the filter string exists, check against it.
509
- *
510
- * @private
511
- *
512
- * @param {Highcharts.FilteredSeries} series
513
- * All series are available in the plotOptions.
514
- *
515
- * @param {string|undefined} filter
516
- * Applied filter string from the input.
517
- * For the first iteration, it's an empty string.
518
- *
519
- * @return {Array<Highcharts.FilteredSeries>} filteredSeriesArray
520
- * Returns array of filtered series based on filter string.
521
- */
522
- filterSeries: function (series, filter) {
523
- var popup = this, indicators = popup.indicators, lang = popup.chart && popup.chart.options.lang, indicatorAliases = lang &&
524
- lang.navigation &&
525
- lang.navigation.popup &&
526
- lang.navigation.popup.indicatorAliases;
527
- var filteredSeriesArray = [], filteredSeries;
528
- objectEach(series, function (series, value) {
529
- var seriesOptions = series.options;
530
- // Allow only indicators.
531
- if (series.params || seriesOptions &&
532
- seriesOptions.params) {
533
- var _a = indicators.getNameType(series, value), indicatorFullName = _a.indicatorFullName, indicatorType = _a.indicatorType;
534
- if (filter) {
535
- // Replace invalid characters.
536
- var validFilter = filter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
537
- var regex = new RegExp(validFilter, 'i'), alias = indicatorAliases &&
538
- indicatorAliases[indicatorType] &&
539
- indicatorAliases[indicatorType].join(' ') || '';
540
- if (indicatorFullName.match(regex) ||
541
- alias.match(regex)) {
542
- filteredSeries = {
543
- indicatorFullName: indicatorFullName,
544
- indicatorType: indicatorType,
545
- series: series
546
- };
547
- filteredSeriesArray.push(filteredSeries);
548
- }
549
- }
550
- else {
551
- filteredSeries = {
552
- indicatorFullName: indicatorFullName,
553
- indicatorType: indicatorType,
554
- series: series
555
- };
556
- filteredSeriesArray.push(filteredSeries);
557
- }
558
- }
559
- });
560
- return filteredSeriesArray;
561
- },
562
- /**
563
- * Filter an array of series and map its names and types.
564
- *
565
- * @private
566
- *
567
- * @param {Highcharts.FilteredSeries} series
568
- * All series that are available in the plotOptions.
569
- *
570
- * @return {Array<Highcharts.FilteredSeries>} filteredSeriesArray
571
- * Returns array of filtered series based on filter string.
572
- */
573
- filterSeriesArray: function (series) {
574
- var filteredSeriesArray = [], filteredSeries;
575
- // Allow only indicators.
576
- series.forEach(function (series) {
577
- var seriesOptions = series.options;
578
- if (series.is('sma')) {
579
- filteredSeries = {
580
- indicatorFullName: series.name,
581
- indicatorType: series.type,
582
- series: series
583
- };
584
- filteredSeriesArray.push(filteredSeries);
585
- }
586
- });
587
- return filteredSeriesArray;
588
- },
589
- /**
590
- * Create HTML list of all indicators (ADD mode) or added indicators
591
- * (EDIT mode).
592
- *
593
- * @private
594
- *
595
- * @param {Highcharts.AnnotationChart} chart
596
- * The chart object.
597
- *
598
- * @param {string} [optionName]
599
- * Name of the option into which selection is being added.
600
- *
601
- * @param {HTMLDOMElement} [parentDiv]
602
- * HTML parent element.
603
- *
604
- * @param {string} listType
605
- * Type of list depending on the selected bookmark.
606
- * Might be 'add' or 'edit'.
607
- *
608
- * @param {string|undefined} filter
609
- * Applied filter string from the input.
610
- * For the first iteration, it's an empty string.
611
- */
612
- addIndicatorList: function (chart, parentDiv, listType, filter) {
613
- var popup = this, indicators = popup.indicators, lang = popup.lang, lhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-lhs-col')[0], rhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0], isEdit = listType === 'edit', addFormFields = this.indicators.addFormFields, series = (isEdit ?
614
- chart.series : // EDIT mode
615
- chart.options.plotOptions || {} // ADD mode
616
- );
617
- if (!chart && series) {
618
- return;
619
- }
620
- var rhsColWrapper, indicatorList, item, filteredSeriesArray = [];
621
- // Filter and sort the series.
622
- if (!isEdit && !isArray(series)) {
623
- // Apply filters only for the 'add' indicator list.
624
- filteredSeriesArray = indicators.filterSeries.call(this, series, filter);
625
- }
626
- else if (isArray(series)) {
627
- filteredSeriesArray = indicators.filterSeriesArray.call(this, series);
628
- }
629
- // Sort indicators alphabeticaly.
630
- stableSort(filteredSeriesArray, function (a, b) {
631
- var seriesAName = a.indicatorFullName.toLowerCase(), seriesBName = b.indicatorFullName.toLowerCase();
632
- return (seriesAName < seriesBName) ?
633
- -1 : (seriesAName > seriesBName) ? 1 : 0;
634
- });
635
- // If the list exists remove it from the DOM
636
- // in order to create a new one with different filters.
637
- if (lhsCol.children[1]) {
638
- lhsCol.children[1].remove();
639
- }
640
- // Create wrapper for list.
641
- indicatorList = createElement(UL, {
642
- className: PREFIX + 'indicator-list'
643
- }, void 0, lhsCol);
644
- rhsColWrapper = rhsCol.querySelectorAll('.' + PREFIX + 'popup-rhs-col-wrapper')[0];
645
- filteredSeriesArray.forEach(function (seriesSet) {
646
- var indicatorFullName = seriesSet.indicatorFullName, indicatorType = seriesSet.indicatorType, series = seriesSet.series;
647
- item = createElement(LI, {
648
- className: PREFIX + 'indicator-list'
649
- }, void 0, indicatorList);
650
- item.appendChild(doc.createTextNode(indicatorFullName));
651
- ['click', 'touchstart'].forEach(function (eventName) {
652
- addEvent(item, eventName, function () {
653
- var button = rhsColWrapper.parentNode
654
- .children[1];
655
- addFormFields.call(popup, chart, series, indicatorType, rhsColWrapper);
656
- if (button) {
657
- button.style.display = 'block';
658
- }
659
- // add hidden input with series.id
660
- if (isEdit && series.options) {
661
- createElement(INPUT, {
662
- type: 'hidden',
663
- name: PREFIX + 'id-' + indicatorType,
664
- value: series.options.id
665
- }, void 0, rhsColWrapper).setAttribute(PREFIX + 'data-series-id', series.options.id);
666
- }
667
- });
668
- });
669
- });
670
- // select first item from the list
671
- if (indicatorList.childNodes.length > 0) {
672
- indicatorList.childNodes[0].click();
673
- }
674
- else if (!isEdit) {
675
- AST.setElementHTML(rhsColWrapper.parentNode.children[0], lang.noFilterMatch || '');
676
- rhsColWrapper.parentNode.children[1]
677
- .style.display = 'none';
678
- }
679
- },
680
- /**
681
- * Add searchbox HTML element and its' label.
682
- *
683
- * @private
684
- *
685
- * @param {Highcharts.AnnotationChart} chart
686
- * The chart object.
687
- *
688
- * @param {HTMLDOMElement} parentDiv
689
- * HTML parent element.
690
- */
691
- addSearchBox: function (chart, parentDiv) {
692
- var popup = this, lhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-lhs-col')[0], options = 'searchIndicators', inputAttributes = {
693
- value: '',
694
- type: 'text',
695
- htmlFor: 'search-indicators',
696
- labelClassName: 'highcharts-input-search-indicators-label'
697
- }, clearFilterText = this.lang.clearFilter, inputWrapper = createElement(DIV, {
698
- className: 'highcharts-input-wrapper'
699
- }, void 0, lhsCol);
700
- var handleInputChange = function (inputText) {
701
- // Apply some filters.
702
- popup.indicators.addIndicatorList.call(popup, chart, popup.container, 'add', inputText);
703
- };
704
- // Add input field with the label and button.
705
- var input = this.addInput(options, INPUT, inputWrapper, inputAttributes), button = createElement(A, {
706
- textContent: clearFilterText
707
- }, void 0, inputWrapper);
708
- input.classList.add('highcharts-input-search-indicators');
709
- button.classList.add('clear-filter-button');
710
- // Add input change events.
711
- addEvent(input, 'input', function (e) {
712
- handleInputChange(this.value);
713
- // Show clear filter button.
714
- if (this.value.length) {
715
- button.style.display = 'inline-block';
716
- }
717
- else {
718
- button.style.display = 'none';
719
- }
720
- });
721
- // Add clear filter click event.
722
- ['click', 'touchstart'].forEach(function (eventName) {
723
- addEvent(button, eventName, function () {
724
- // Clear the input.
725
- input.value = '';
726
- handleInputChange('');
727
- // Hide clear filter button- no longer nececary.
728
- button.style.display = 'none';
729
- });
730
- });
731
- },
732
- /**
733
- * Add selection HTML element and its' label.
734
- *
735
- * @private
736
- *
737
- * @param {string} indicatorType
738
- * Type of the indicator i.e. sma, ema...
739
- *
740
- * @param {string} [optionName]
741
- * Name of the option into which selection is being added.
742
- *
743
- * @param {HTMLDOMElement} [parentDiv]
744
- * HTML parent element.
745
- */
746
- addSelection: function (indicatorType, optionName, parentDiv) {
747
- var optionParamList = optionName.split('.'), labelText = optionParamList[optionParamList.length - 1];
748
- var selectName = PREFIX + optionName + '-type-' + indicatorType, lang = this.lang, selectBox;
749
- // Add a label for the selection box.
750
- createElement(LABEL, {
751
- htmlFor: selectName
752
- }, null, parentDiv).appendChild(doc.createTextNode(lang[labelText] || optionName));
753
- // Create a selection box.
754
- selectBox = createElement(SELECT, {
755
- name: selectName,
756
- className: PREFIX + 'popup-field',
757
- id: PREFIX + 'select-' + optionName
758
- }, null, parentDiv);
759
- selectBox.setAttribute('id', PREFIX + 'select-' + optionName);
760
- return selectBox;
761
- },
762
- /**
763
- * Get and add selection options.
764
- *
765
- * @private
766
- *
767
- * @param {Highcharts.AnnotationChart} chart
768
- * The chart object.
769
- *
770
- * @param {string} [optionName]
771
- * Name of the option into which selection is being added.
772
- *
773
- * @param {HTMLSelectElement} [selectBox]
774
- * HTML select box element to which the options are being added.
775
- *
776
- * @param {string|undefined} indicatorType
777
- * Type of the indicator i.e. sma, ema...
778
- *
779
- * @param {string|undefined} parameterName
780
- * Name of the parameter which should be applied.
781
- *
782
- * @param {string|undefined} selectedOption
783
- * Default value in dropdown.
784
- */
785
- addSelectionOptions: function (chart, optionName, selectBox, indicatorType, parameterName, selectedOption, currentSeries) {
786
- var popup = this;
787
- // Get and apply selection options for the possible series.
788
- if (optionName === 'series' || optionName === 'volume') {
789
- // List all series which have id - mandatory for indicator.
790
- chart.series.forEach(function (series) {
791
- var seriesOptions = series.options, seriesName = seriesOptions.name ||
792
- seriesOptions.params ?
793
- series.name :
794
- seriesOptions.id || '';
795
- if (seriesOptions.id !== PREFIX + 'navigator-series' &&
796
- seriesOptions.id !== (currentSeries &&
797
- currentSeries.options &&
798
- currentSeries.options.id)) {
799
- if (!defined(selectedOption) &&
800
- optionName === 'volume' &&
801
- series.type === 'column') {
802
- selectedOption = seriesOptions.id;
803
- }
804
- createElement(OPTION, {
805
- value: seriesOptions.id
806
- }, void 0, selectBox).appendChild(doc.createTextNode(seriesName));
807
- }
808
- });
809
- }
810
- else if (indicatorType && parameterName) {
811
- // Get and apply options for the possible parameters.
812
- var dropdownKey = parameterName + '-' + indicatorType, parameterOption = dropdownParameters[dropdownKey];
813
- parameterOption.forEach(function (element) {
814
- createElement(OPTION, {
815
- value: element
816
- }, void 0, selectBox).appendChild(doc.createTextNode(element));
817
- });
818
- }
819
- // Add the default dropdown value if defined.
820
- if (defined(selectedOption)) {
821
- selectBox.value = selectedOption;
822
- }
823
- },
824
- /**
825
- * Extract full name and type of requested indicator.
826
- *
827
- * @private
828
- *
829
- * @param {Highcharts.Series} series
830
- * Series which name is needed(EDITmode - defaultOptions.series,
831
- * ADDmode - indicator series).
832
- *
833
- * @param {string} [indicatorType]
834
- * Type of the indicator i.e. sma, ema...
835
- *
836
- * @return {Highcharts.Dictionary<string>}
837
- * Full name and series type.
838
- */
839
- getNameType: function (series, indicatorType) {
840
- var options = series.options, seriesTypes = H.seriesTypes;
841
- // add mode
842
- var seriesName = (seriesTypes[indicatorType] &&
843
- seriesTypes[indicatorType].prototype.nameBase) ||
844
- indicatorType.toUpperCase(), seriesType = indicatorType;
845
- // edit
846
- if (options && options.type) {
847
- seriesType = series.options.type;
848
- seriesName = series.name;
849
- }
850
- return {
851
- indicatorFullName: seriesName,
852
- indicatorType: seriesType
853
- };
854
- },
855
- /**
856
- * Create the selection box for the series,
857
- * add options and apply the default one.
858
- *
859
- * @private
860
- *
861
- * @param {string} indicatorType
862
- * Type of the indicator i.e. sma, ema...
863
- *
864
- * @param {string} [optionName]
865
- * Name of the option into which selection is being added.
866
- *
867
- * @param {Highcharts.AnnotationChart} chart
868
- * The chart object.
869
- *
870
- * @param {HTMLDOMElement} [parentDiv]
871
- * HTML parent element.
872
- *
873
- * @param {string|undefined} selectedOption
874
- * Default value in dropdown.
875
- */
876
- listAllSeries: function (indicatorType, optionName, chart, parentDiv, currentSeries, selectedOption) {
877
- var popup = this, indicators = popup.indicators;
878
- // Won't work without the chart.
879
- if (!chart) {
880
- return;
881
- }
882
- // Add selection boxes.
883
- var selectBox = indicators.addSelection.call(popup, indicatorType, optionName, parentDiv);
884
- // Add possible dropdown options.
885
- indicators.addSelectionOptions.call(popup, chart, optionName, selectBox, void 0, void 0, void 0, currentSeries);
886
- // Add the default dropdown value if defined.
887
- if (defined(selectedOption)) {
888
- selectBox.value = selectedOption;
889
- }
890
- },
891
- /**
892
- * Create typical inputs for chosen indicator. Fields are extracted from
893
- * defaultOptions (ADD mode) or current indicator (ADD mode). Two extra
894
- * fields are added:
895
- * - hidden input - contains indicator type (required for callback)
896
- * - select - list of series which can be linked with indicator
897
- * @private
898
- * @param {Highcharts.Chart} chart
899
- * Chart
900
- * @param {Highcharts.Series} series
901
- * Indicator
902
- * @param {string} seriesType
903
- * Indicator type like: sma, ema, etc.
904
- * @param {Highcharts.HTMLDOMElement} rhsColWrapper
905
- * Element where created HTML list is added
906
- */
907
- addFormFields: function (chart, series, seriesType, rhsColWrapper) {
908
- var fields = series.params || series.options.params, getNameType = this.indicators.getNameType;
909
- // reset current content
910
- rhsColWrapper.innerHTML = AST.emptyHTML;
911
- // create title (indicator name in the right column)
912
- createElement(H3, {
913
- className: PREFIX + 'indicator-title'
914
- }, void 0, rhsColWrapper).appendChild(doc.createTextNode(getNameType(series, seriesType).indicatorFullName));
915
- // input type
916
- createElement(INPUT, {
917
- type: 'hidden',
918
- name: PREFIX + 'type-' + seriesType,
919
- value: seriesType
920
- }, void 0, rhsColWrapper);
921
- // list all series with id
922
- this.indicators.listAllSeries.call(this, seriesType, 'series', chart, rhsColWrapper, series, series.linkedParent && series.linkedParent.options.id);
923
- if (fields.volumeSeriesID) {
924
- this.indicators.listAllSeries.call(this, seriesType, 'volume', chart, rhsColWrapper, series, series.linkedParent && fields.volumeSeriesID);
925
- }
926
- // add param fields
927
- this.indicators.addParamInputs.call(this, chart, 'params', fields, seriesType, rhsColWrapper);
928
- },
929
- /**
930
- * Recurent function which lists all fields, from params object and
931
- * create them as inputs. Each input has unique `data-name` attribute,
932
- * which keeps chain of fields i.e params.styles.fontSize.
933
- * @private
934
- * @param {Highcharts.Chart} chart
935
- * Chart
936
- * @param {string} parentNode
937
- * Name of parent to create chain of names
938
- * @param {Highcharts.PopupFieldsDictionary<string>} fields
939
- * Params which are based for input create
940
- * @param {string} type
941
- * Indicator type like: sma, ema, etc.
942
- * @param {Highcharts.HTMLDOMElement} parentDiv
943
- * Element where created HTML list is added
944
- */
945
- addParamInputs: function (chart, parentNode, fields, type, parentDiv) {
946
- var popup = this, indicators = popup.indicators;
947
- var addParamInputs = this.indicators.addParamInputs, addInput = this.addInput, parentFullName;
948
- if (!chart) {
949
- return;
950
- }
951
- objectEach(fields, function (value, fieldName) {
952
- // create name like params.styles.fontSize
953
- parentFullName = parentNode + '.' + fieldName;
954
- if (defined(value) && // skip if field is unnecessary, #15362
955
- parentFullName) {
956
- if (isObject(value)) {
957
- // (15733) 'Periods' has an arrayed value. Label must be
958
- // created here.
959
- addInput.call(popup, parentFullName, type, parentDiv, {});
960
- addParamInputs.call(popup, chart, parentFullName, value, type, parentDiv);
961
- }
962
- // If the option is listed in dropdown enum,
963
- // add the selection box for it.
964
- if (parentFullName in DropdownProperties) {
965
- // Add selection boxes.
966
- var selectBox = indicators.addSelection.call(popup, type, parentFullName, parentDiv);
967
- // Add possible dropdown options.
968
- indicators.addSelectionOptions.call(popup, chart, parentNode, selectBox, type, fieldName, value);
969
- }
970
- else if (
971
- // Skip volume field which is created by addFormFields.
972
- parentFullName !== 'params.volumeSeriesID' &&
973
- !isArray(value) // Skip params declared in array.
974
- ) {
975
- addInput.call(popup, parentFullName, type, parentDiv, {
976
- value: value,
977
- type: 'text'
978
- } // all inputs are text type
979
- );
980
- }
981
- }
982
- });
983
- },
984
- /**
985
- * Get amount of indicators added to chart.
986
- * @private
987
- * @return {number} - Amount of indicators
988
- */
989
- getAmount: function () {
990
- var series = this.series, counter = 0;
991
- series.forEach(function (serie) {
992
- var seriesOptions = serie.options;
993
- if (serie.params ||
994
- seriesOptions && seriesOptions.params) {
995
- counter++;
996
- }
997
- });
998
- return counter;
999
- }
1000
- },
1001
- tabs: {
1002
- /**
1003
- * Init tabs. Create tab menu items, tabs containers
1004
- * @private
1005
- * @param {Highcharts.Chart} chart
1006
- * Reference to current chart
1007
- */
1008
- init: function (chart) {
1009
- var tabs = this.tabs, indicatorsCount = this.indicators.getAmount.call(chart), firstTab; // run by default
1010
- if (!chart) {
1011
- return;
1012
- }
1013
- // create menu items
1014
- firstTab = tabs.addMenuItem.call(this, 'add');
1015
- tabs.addMenuItem.call(this, 'edit', indicatorsCount);
1016
- // create tabs containers
1017
- tabs.addContentItem.call(this, 'add');
1018
- tabs.addContentItem.call(this, 'edit');
1019
- tabs.switchTabs.call(this, indicatorsCount);
1020
- // activate first tab
1021
- tabs.selectTab.call(this, firstTab, 0);
1022
- },
1023
- /**
1024
- * Create tab menu item
1025
- * @private
1026
- * @param {string} tabName
1027
- * `add` or `edit`
1028
- * @param {number} [disableTab]
1029
- * Disable tab when 0
1030
- * @return {Highcharts.HTMLDOMElement}
1031
- * Created HTML tab-menu element
1032
- */
1033
- addMenuItem: function (tabName, disableTab) {
1034
- var popupDiv = this.popup.container, className = PREFIX + 'tab-item', lang = this.lang, menuItem;
1035
- if (disableTab === 0) {
1036
- className += ' ' + PREFIX + 'tab-disabled';
1037
- }
1038
- // tab 1
1039
- menuItem = createElement(SPAN, {
1040
- className: className
1041
- }, void 0, popupDiv);
1042
- menuItem.appendChild(doc.createTextNode(lang[tabName + 'Button'] || tabName));
1043
- menuItem.setAttribute(PREFIX + 'data-tab-type', tabName);
1044
- return menuItem;
1045
- },
1046
- /**
1047
- * Create tab content
1048
- * @private
1049
- * @return {HTMLDOMElement} - created HTML tab-content element
1050
- */
1051
- addContentItem: function () {
1052
- var popupDiv = this.popup.container;
1053
- return createElement(DIV, {
1054
- // #12100
1055
- className: PREFIX + 'tab-item-content ' +
1056
- PREFIX + 'no-mousewheel'
1057
- }, void 0, popupDiv);
1058
- },
1059
- /**
1060
- * Add click event to each tab
1061
- * @private
1062
- * @param {number} disableTab
1063
- * Disable tab when 0
1064
- */
1065
- switchTabs: function (disableTab) {
1066
- var _self = this, popupDiv = this.popup.container, tabs = popupDiv.querySelectorAll('.' + PREFIX + 'tab-item'), dataParam;
1067
- tabs.forEach(function (tab, i) {
1068
- dataParam = tab.getAttribute(PREFIX + 'data-tab-type');
1069
- if (dataParam === 'edit' && disableTab === 0) {
1070
- return;
1071
- }
1072
- ['click', 'touchstart'].forEach(function (eventName) {
1073
- addEvent(tab, eventName, function () {
1074
- // reset class on other elements
1075
- _self.tabs.deselectAll.call(_self);
1076
- _self.tabs.selectTab.call(_self, this, i);
1077
- });
1078
- });
1079
- });
1080
- },
1081
- /**
1082
- * Set tab as visible
1083
- * @private
1084
- * @param {globals.Element} - current tab
1085
- * @param {number} - Index of tab in menu
1086
- */
1087
- selectTab: function (tab, index) {
1088
- var allTabs = this.popup.container
1089
- .querySelectorAll('.' + PREFIX + 'tab-item-content');
1090
- tab.className += ' ' + PREFIX + 'tab-item-active';
1091
- allTabs[index].className += ' ' + PREFIX + 'tab-item-show';
1092
- },
1093
- /**
1094
- * Set all tabs as invisible.
1095
- * @private
1096
- */
1097
- deselectAll: function () {
1098
- var popupDiv = this.popup.container, tabs = popupDiv
1099
- .querySelectorAll('.' + PREFIX + 'tab-item'), tabsContent = popupDiv
1100
- .querySelectorAll('.' + PREFIX + 'tab-item-content'), i;
1101
- for (i = 0; i < tabs.length; i++) {
1102
- tabs[i].classList.remove(PREFIX + 'tab-item-active');
1103
- tabsContent[i].classList.remove(PREFIX + 'tab-item-show');
1104
- }
1105
- }
1106
- }
1107
- };
1108
- addEvent(NavigationBindings, 'showPopup', function (config) {
1109
- if (!this.popup) {
1110
- // Add popup to main container
1111
- this.popup = new H.Popup(this.chart.container, (this.chart.options.navigation.iconsURL ||
1112
- (this.chart.options.stockTools &&
1113
- this.chart.options.stockTools.gui.iconsURL) ||
1114
- 'https://code.highcharts.com/10.2.0/gfx/stock-icons/'), this.chart);
1115
- }
1116
- this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit);
1117
- });
1118
- addEvent(NavigationBindings, 'closePopup', function () {
1119
- if (this.popup) {
1120
- this.popup.closePopup();
1121
- }
1122
- });
1123
- export default H.Popup;