highcharts 9.2.2 → 9.3.0

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 (747) hide show
  1. package/README.md +13 -6
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +48 -8
  4. package/css/annotations/popup.scss +70 -22
  5. package/css/highcharts.css +45 -0
  6. package/css/highcharts.scss +40 -0
  7. package/css/themes/dark-unica.css +45 -0
  8. package/css/themes/grid-light.css +45 -0
  9. package/css/themes/sand-signika.css +45 -0
  10. package/es-modules/Accessibility/A11yI18n.js +273 -224
  11. package/es-modules/Accessibility/Accessibility.js +233 -128
  12. package/es-modules/Accessibility/AccessibilityComponent.js +79 -314
  13. package/es-modules/Accessibility/Components/AnnotationsA11y.js +10 -0
  14. package/es-modules/Accessibility/Components/ContainerComponent.js +52 -27
  15. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +46 -23
  16. package/es-modules/Accessibility/Components/LegendComponent.js +97 -65
  17. package/es-modules/Accessibility/Components/MenuComponent.js +59 -40
  18. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -8
  19. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +152 -115
  20. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +133 -68
  21. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +64 -27
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +38 -21
  23. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +380 -325
  24. package/es-modules/Accessibility/Components/ZoomComponent.js +28 -20
  25. package/es-modules/Accessibility/FocusBorder.js +192 -147
  26. package/es-modules/Accessibility/HighContrastMode.js +78 -66
  27. package/es-modules/Accessibility/HighContrastTheme.js +10 -0
  28. package/es-modules/Accessibility/KeyboardNavigation.js +144 -70
  29. package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
  30. package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -1
  31. package/es-modules/Accessibility/Options/LangOptions.js +1 -2
  32. package/es-modules/Accessibility/Options/Options.js +32 -17
  33. package/es-modules/Accessibility/ProxyElement.js +212 -0
  34. package/es-modules/Accessibility/ProxyProvider.js +305 -0
  35. package/es-modules/Accessibility/Utils/Announcer.js +15 -8
  36. package/es-modules/Accessibility/Utils/ChartUtilities.js +41 -16
  37. package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
  38. package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
  39. package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -30
  40. package/es-modules/Core/Axis/Axis.js +37 -30
  41. package/es-modules/Core/Axis/AxisDefaults.js +35 -24
  42. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +54 -4
  43. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
  44. package/es-modules/Core/Axis/OrdinalAxis.js +8 -12
  45. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
  46. package/es-modules/Core/Axis/ScrollbarAxis.js +10 -3
  47. package/es-modules/Core/Axis/TreeGridAxis.js +2 -2
  48. package/es-modules/Core/Axis/TreeGridTick.js +1 -2
  49. package/es-modules/Core/Chart/Chart.js +2 -3
  50. package/es-modules/Core/Chart/ChartDefaults.js +3 -4
  51. package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
  52. package/es-modules/Core/Chart/MapChart.js +10 -22
  53. package/es-modules/Core/Chart/StockChart.js +3 -293
  54. package/es-modules/Core/Color/Palettes.js +22 -0
  55. package/es-modules/Core/DefaultOptions.js +19 -17
  56. package/es-modules/Core/Foundation.js +39 -31
  57. package/es-modules/Core/Globals.js +1 -1
  58. package/es-modules/Core/HttpUtilities.js +3 -3
  59. package/es-modules/Core/Legend/Legend.js +7 -3
  60. package/es-modules/Core/Navigator.js +7 -8
  61. package/es-modules/Core/Pointer.js +39 -36
  62. package/es-modules/Core/Renderer/HTML/AST.js +2 -0
  63. package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -18
  64. package/es-modules/Core/Renderer/SVG/SVGElement.js +3 -4
  65. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +21 -18
  66. package/es-modules/Core/Renderer/SVG/TextBuilder.js +3 -3
  67. package/es-modules/Core/ScrollbarDefaults.js +10 -9
  68. package/es-modules/Core/Series/DataLabel.js +2 -3
  69. package/es-modules/Core/Series/Point.js +5 -3
  70. package/es-modules/Core/Series/Series.js +153 -162
  71. package/es-modules/Core/Series/SeriesDefaults.js +3 -4
  72. package/es-modules/Core/Series/SeriesRegistry.js +1 -2
  73. package/es-modules/Core/Tooltip.js +44 -17
  74. package/es-modules/Core/Utilities.js +15 -7
  75. package/es-modules/Data/DataConverter.js +489 -0
  76. package/es-modules/Data/DataPromise.js +252 -0
  77. package/es-modules/Data/DataSeriesConverter.js +203 -0
  78. package/es-modules/Data/DataTable.js +1204 -0
  79. package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
  80. package/es-modules/Data/Modifiers/DataModifier.js +303 -0
  81. package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
  82. package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
  83. package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
  84. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
  85. package/es-modules/Data/Modifiers/SortModifier.js +249 -0
  86. package/es-modules/Data/Parsers/CSVParser.js +399 -0
  87. package/es-modules/Data/Parsers/DataParser.js +101 -0
  88. package/es-modules/Data/Parsers/GoogleSheetsParser.js +220 -0
  89. package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
  90. package/es-modules/Data/Stores/CSVStore.js +317 -0
  91. package/es-modules/Data/Stores/DataStore.js +276 -0
  92. package/es-modules/Data/Stores/GoogleSheetsStore.js +167 -0
  93. package/es-modules/Data/Stores/HTMLTableStore.js +351 -0
  94. package/es-modules/Extensions/Annotations/Annotations.js +61 -11
  95. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  96. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
  97. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +7 -1
  98. package/es-modules/Extensions/Annotations/NavigationBindings.js +68 -19
  99. package/es-modules/Extensions/Annotations/Popup.js +479 -141
  100. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
  101. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -1
  102. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
  103. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
  104. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
  105. package/es-modules/Extensions/Annotations/Types/Measure.js +14 -8
  106. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +5 -5
  107. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +207 -0
  108. package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -5
  109. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
  110. package/es-modules/Extensions/Boost/BoostOverrides.js +3 -1
  111. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  112. package/es-modules/Extensions/BoostCanvas.js +1 -2
  113. package/es-modules/Extensions/CurrentDateIndication.js +2 -3
  114. package/es-modules/Extensions/DataGrouping.js +31 -18
  115. package/es-modules/Extensions/DownloadURL.js +2 -2
  116. package/es-modules/Extensions/DragPanes.js +1 -2
  117. package/es-modules/Extensions/Drilldown.js +2 -3
  118. package/es-modules/Extensions/Exporting/Exporting.js +8 -7
  119. package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
  120. package/es-modules/Extensions/GeoJSON.js +39 -63
  121. package/es-modules/Extensions/MarkerClusters.js +115 -97
  122. package/es-modules/Extensions/NoDataToDisplay.js +1 -2
  123. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +9 -8
  124. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  125. package/es-modules/Extensions/Oldie/Oldie.js +2 -3
  126. package/es-modules/Extensions/Pane.js +5 -6
  127. package/es-modules/Extensions/RangeSelector.js +3 -4
  128. package/es-modules/Extensions/Sonification/ChartSonify.js +247 -637
  129. package/es-modules/Extensions/Sonification/Earcon.js +136 -102
  130. package/es-modules/Extensions/Sonification/Instrument.js +496 -426
  131. package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
  132. package/es-modules/Extensions/Sonification/Options.js +10 -0
  133. package/es-modules/Extensions/Sonification/PointSonify.js +203 -152
  134. package/es-modules/Extensions/Sonification/SeriesSonify.js +459 -0
  135. package/es-modules/Extensions/Sonification/SignalHandler.js +124 -0
  136. package/es-modules/Extensions/Sonification/Sonification.js +26 -52
  137. package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +62 -84
  138. package/es-modules/Extensions/Sonification/Timeline.js +255 -567
  139. package/es-modules/Extensions/Sonification/TimelineEvent.js +158 -0
  140. package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  141. package/es-modules/Maps/MapNavigation.js +27 -64
  142. package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
  143. package/es-modules/Maps/MapPointer.js +7 -5
  144. package/es-modules/Maps/MapView.js +450 -0
  145. package/es-modules/Maps/MapViewOptionsDefault.js +95 -0
  146. package/es-modules/Maps/Projection.js +433 -0
  147. package/es-modules/Maps/ProjectionDefinition.js +9 -0
  148. package/es-modules/Maps/Projections/EqualEarth.js +42 -0
  149. package/es-modules/Maps/Projections/Miller.js +17 -0
  150. package/es-modules/Maps/Projections/Orthographic.js +26 -0
  151. package/es-modules/Maps/Projections/ProjectionRegistry.js +17 -0
  152. package/es-modules/Maps/Projections/WebMercator.js +25 -0
  153. package/es-modules/Series/AreaRange/AreaRangeSeries.js +4 -5
  154. package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -8
  155. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
  156. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
  157. package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
  158. package/es-modules/Series/Bubble/BubblePoint.js +5 -0
  159. package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
  160. package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -18
  161. package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
  162. package/es-modules/Series/ColorMapComposition.js +109 -0
  163. package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
  164. package/es-modules/Series/Column/ColumnSeries.js +3 -4
  165. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +6 -6
  166. package/es-modules/Series/DataModifyComposition.js +539 -0
  167. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
  168. package/es-modules/Series/DerivedComposition.js +137 -0
  169. package/es-modules/Series/DrawPointComposition.js +111 -0
  170. package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -3
  171. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
  172. package/es-modules/Series/Flags/FlagsSeries.js +18 -25
  173. package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
  174. package/es-modules/Series/Gantt/GanttSeries.js +0 -2
  175. package/es-modules/Series/Gauge/GaugePoint.js +1 -1
  176. package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
  177. package/es-modules/Series/HLC/HLCPoint.js +55 -0
  178. package/es-modules/Series/HLC/HLCSeries.js +383 -0
  179. package/es-modules/Series/Heatmap/HeatmapPoint.js +3 -4
  180. package/es-modules/Series/Heatmap/HeatmapSeries.js +19 -6
  181. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +2 -3
  182. package/es-modules/Series/Histogram/HistogramSeries.js +3 -7
  183. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +9 -10
  184. package/es-modules/Series/Line/LineSeries.js +1 -2
  185. package/es-modules/Series/Map/MapPoint.js +23 -16
  186. package/es-modules/Series/Map/MapSeries.js +268 -309
  187. package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
  188. package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
  189. package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
  190. package/es-modules/Series/MapPoint/MapPointSeries.js +87 -4
  191. package/es-modules/Series/Networkgraph/Networkgraph.js +5 -5
  192. package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +76 -29
  193. package/es-modules/Series/OHLC/OHLCPoint.js +2 -6
  194. package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
  195. package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
  196. package/es-modules/Series/Organization/OrganizationSeries.js +2 -3
  197. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +46 -6
  198. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
  199. package/es-modules/Series/Pie/PieDataLabel.js +1 -2
  200. package/es-modules/Series/Pie/PieSeries.js +6 -7
  201. package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
  202. package/es-modules/Series/Sankey/SankeySeries.js +89 -20
  203. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
  204. package/es-modules/Series/Sunburst/SunburstSeries.js +4 -4
  205. package/es-modules/Series/Tilemap/TilemapPoint.js +2 -3
  206. package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
  207. package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +86 -76
  208. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  209. package/es-modules/Series/Treemap/TreemapSeries.js +8 -8
  210. package/es-modules/Series/Venn/VennPoint.js +16 -7
  211. package/es-modules/Series/Venn/VennSeries.js +5 -8
  212. package/es-modules/Series/Venn/VennUtils.js +550 -439
  213. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -3
  214. package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
  215. package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
  216. package/es-modules/Series/Wordcloud/WordcloudSeries.js +24 -20
  217. package/es-modules/Series/Wordcloud/WordcloudUtils.js +673 -484
  218. package/es-modules/Series/XRange/XRangePoint.js +1 -0
  219. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -6
  220. package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
  221. package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
  222. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -6
  223. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
  224. package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  225. package/es-modules/Stock/Indicators/BB/BBIndicator.js +27 -11
  226. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
  227. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
  228. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +19 -11
  229. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +17 -11
  230. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
  231. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +11 -9
  232. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -16
  233. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +2 -2
  234. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
  235. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
  236. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
  237. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
  238. package/es-modules/{Mixins/MultipleLines.js → Stock/Indicators/MultipleLinesComposition.js} +136 -87
  239. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
  240. package/es-modules/Stock/Indicators/PC/PCIndicator.js +14 -13
  241. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
  242. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
  243. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -32
  244. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
  245. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -8
  246. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
  247. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
  248. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
  249. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +20 -3
  250. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
  251. package/es-modules/Stock/StockToolsBindings.js +144 -42
  252. package/es-modules/Stock/StockToolsGui.js +405 -11
  253. package/es-modules/masters/highcharts-3d.src.js +1 -1
  254. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  255. package/es-modules/masters/highcharts-more.src.js +1 -1
  256. package/es-modules/masters/highcharts.src.js +1 -1
  257. package/es-modules/masters/highmaps.src.js +1 -1
  258. package/es-modules/masters/highstock.src.js +1 -1
  259. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  260. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  261. package/es-modules/masters/indicators/ao.src.js +1 -1
  262. package/es-modules/masters/indicators/apo.src.js +1 -1
  263. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  264. package/es-modules/masters/indicators/aroon.src.js +1 -1
  265. package/es-modules/masters/indicators/atr.src.js +1 -1
  266. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  267. package/es-modules/masters/indicators/cci.src.js +1 -1
  268. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  269. package/es-modules/masters/indicators/cmf.src.js +1 -1
  270. package/es-modules/masters/indicators/cmo.src.js +1 -1
  271. package/es-modules/masters/indicators/dema.src.js +1 -1
  272. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  273. package/es-modules/masters/indicators/dmi.src.js +1 -1
  274. package/es-modules/masters/indicators/dpo.src.js +1 -1
  275. package/es-modules/masters/indicators/ema.src.js +4 -10
  276. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  277. package/es-modules/masters/indicators/indicators-all.src.js +2 -2
  278. package/es-modules/masters/indicators/indicators.src.js +2 -1
  279. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  280. package/es-modules/masters/indicators/klinger.src.js +1 -1
  281. package/es-modules/masters/indicators/macd.src.js +1 -1
  282. package/es-modules/masters/indicators/mfi.src.js +1 -1
  283. package/es-modules/masters/indicators/momentum.src.js +1 -1
  284. package/es-modules/masters/indicators/natr.src.js +1 -1
  285. package/es-modules/masters/indicators/obv.src.js +1 -1
  286. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  287. package/es-modules/masters/indicators/ppo.src.js +1 -1
  288. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  289. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  290. package/es-modules/masters/indicators/psar.src.js +1 -1
  291. package/es-modules/masters/indicators/regressions.src.js +1 -1
  292. package/es-modules/masters/indicators/roc.src.js +1 -1
  293. package/es-modules/masters/indicators/rsi.src.js +1 -1
  294. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  295. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  296. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  297. package/es-modules/masters/indicators/tema.src.js +1 -1
  298. package/es-modules/masters/indicators/trendline.src.js +1 -1
  299. package/es-modules/masters/indicators/trix.src.js +1 -1
  300. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  301. package/es-modules/masters/indicators/vwap.src.js +1 -1
  302. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  303. package/es-modules/masters/indicators/wma.src.js +1 -1
  304. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  305. package/es-modules/masters/modules/accessibility.src.js +16 -2
  306. package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
  307. package/es-modules/masters/modules/annotations.src.js +1 -1
  308. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  309. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  310. package/es-modules/masters/modules/boost.src.js +1 -1
  311. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  312. package/es-modules/masters/modules/bullet.src.js +1 -1
  313. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  314. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  315. package/es-modules/masters/modules/cylinder.src.js +1 -1
  316. package/es-modules/masters/modules/data.src.js +6 -3
  317. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  318. package/es-modules/masters/modules/debugger.src.js +1 -1
  319. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  320. package/es-modules/masters/modules/dotplot.src.js +1 -1
  321. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  322. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  323. package/es-modules/masters/modules/drilldown.src.js +1 -1
  324. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  325. package/es-modules/masters/modules/export-data.src.js +1 -1
  326. package/es-modules/masters/modules/exporting.src.js +1 -1
  327. package/es-modules/masters/modules/full-screen.src.js +1 -1
  328. package/es-modules/masters/modules/funnel.src.js +1 -1
  329. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  330. package/es-modules/masters/modules/gantt.src.js +1 -1
  331. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  332. package/es-modules/masters/modules/heatmap.src.js +1 -2
  333. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  334. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  335. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  336. package/es-modules/masters/modules/item-series.src.js +1 -1
  337. package/es-modules/masters/modules/lollipop.src.js +1 -1
  338. package/es-modules/masters/modules/map.src.js +1 -3
  339. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  340. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  341. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  342. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  343. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  344. package/es-modules/masters/modules/oldie.src.js +1 -1
  345. package/es-modules/masters/modules/organization.src.js +1 -1
  346. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  347. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  348. package/es-modules/masters/modules/pareto.src.js +1 -1
  349. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  350. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  351. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  352. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  353. package/es-modules/masters/modules/sankey.src.js +1 -1
  354. package/es-modules/masters/modules/series-label.src.js +1 -1
  355. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  356. package/es-modules/masters/modules/sonification.src.js +33 -2
  357. package/es-modules/masters/modules/static-scale.src.js +1 -1
  358. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  359. package/es-modules/masters/modules/stock.src.js +4 -1
  360. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  361. package/es-modules/masters/modules/sunburst.src.js +1 -1
  362. package/es-modules/masters/modules/tilemap.src.js +1 -1
  363. package/es-modules/masters/modules/timeline.src.js +1 -1
  364. package/es-modules/masters/modules/treegrid.src.js +1 -1
  365. package/es-modules/masters/modules/treemap.src.js +1 -1
  366. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  367. package/es-modules/masters/modules/variwide.src.js +1 -1
  368. package/es-modules/masters/modules/vector.src.js +1 -1
  369. package/es-modules/masters/modules/venn.src.js +1 -1
  370. package/es-modules/masters/modules/windbarb.src.js +1 -1
  371. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  372. package/es-modules/masters/modules/xrange.src.js +1 -1
  373. package/es-modules/masters/themes/avocado.src.js +1 -1
  374. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  375. package/es-modules/masters/themes/dark-green.src.js +1 -1
  376. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  377. package/es-modules/masters/themes/gray.src.js +1 -1
  378. package/es-modules/masters/themes/grid-light.src.js +1 -1
  379. package/es-modules/masters/themes/grid.src.js +1 -1
  380. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  381. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  382. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  383. package/es-modules/masters/themes/skies.src.js +1 -1
  384. package/es-modules/masters/themes/sunset.src.js +1 -1
  385. package/highcharts-3d.js +1 -1
  386. package/highcharts-3d.src.js +1 -1
  387. package/highcharts-gantt.js +801 -804
  388. package/highcharts-gantt.js.map +1 -1
  389. package/highcharts-gantt.src.js +775 -739
  390. package/highcharts-more.js +194 -193
  391. package/highcharts-more.js.map +1 -1
  392. package/highcharts-more.src.js +207 -119
  393. package/highcharts.d.ts +9670 -4217
  394. package/highcharts.js +585 -588
  395. package/highcharts.js.map +1 -1
  396. package/highcharts.src.d.ts +9670 -4217
  397. package/highcharts.src.js +608 -587
  398. package/highmaps.js +726 -708
  399. package/highmaps.js.map +1 -1
  400. package/highmaps.src.js +2708 -1587
  401. package/highstock.js +788 -783
  402. package/highstock.js.map +1 -1
  403. package/highstock.src.js +1896 -1267
  404. package/indicators/acceleration-bands.js +10 -9
  405. package/indicators/acceleration-bands.js.map +1 -1
  406. package/indicators/acceleration-bands.src.js +156 -112
  407. package/indicators/accumulation-distribution.js +1 -1
  408. package/indicators/accumulation-distribution.src.js +1 -1
  409. package/indicators/ao.js +6 -6
  410. package/indicators/ao.js.map +1 -1
  411. package/indicators/ao.src.js +4 -4
  412. package/indicators/apo.js +5 -6
  413. package/indicators/apo.js.map +1 -1
  414. package/indicators/apo.src.js +16 -84
  415. package/indicators/aroon-oscillator.js +9 -9
  416. package/indicators/aroon-oscillator.js.map +1 -1
  417. package/indicators/aroon-oscillator.src.js +160 -177
  418. package/indicators/aroon.js +9 -9
  419. package/indicators/aroon.js.map +1 -1
  420. package/indicators/aroon.src.js +156 -112
  421. package/indicators/atr.js +1 -1
  422. package/indicators/atr.src.js +1 -1
  423. package/indicators/bollinger-bands.js +10 -9
  424. package/indicators/bollinger-bands.js.map +1 -1
  425. package/indicators/bollinger-bands.src.js +180 -117
  426. package/indicators/cci.js +1 -1
  427. package/indicators/cci.src.js +1 -1
  428. package/indicators/chaikin.js +8 -9
  429. package/indicators/chaikin.js.map +1 -1
  430. package/indicators/chaikin.src.js +8 -76
  431. package/indicators/cmf.js +1 -1
  432. package/indicators/cmf.src.js +1 -1
  433. package/indicators/cmo.js +1 -1
  434. package/indicators/cmo.src.js +1 -1
  435. package/indicators/dema.js +5 -6
  436. package/indicators/dema.js.map +1 -1
  437. package/indicators/dema.src.js +3 -75
  438. package/indicators/disparity-index.js +6 -7
  439. package/indicators/disparity-index.js.map +1 -1
  440. package/indicators/disparity-index.src.js +19 -74
  441. package/indicators/dmi.js +11 -11
  442. package/indicators/dmi.js.map +1 -1
  443. package/indicators/dmi.src.js +173 -116
  444. package/indicators/dpo.js +1 -1
  445. package/indicators/dpo.src.js +1 -1
  446. package/indicators/ema.js +1 -13
  447. package/indicators/ema.js.map +1 -1
  448. package/indicators/ema.src.js +7 -188
  449. package/indicators/ichimoku-kinko-hyo.js +1 -1
  450. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  451. package/indicators/indicators-all.js +197 -203
  452. package/indicators/indicators-all.js.map +1 -1
  453. package/indicators/indicators-all.src.js +649 -720
  454. package/indicators/indicators.js +12 -12
  455. package/indicators/indicators.js.map +1 -1
  456. package/indicators/indicators.src.js +188 -124
  457. package/indicators/keltner-channels.js +10 -10
  458. package/indicators/keltner-channels.js.map +1 -1
  459. package/indicators/keltner-channels.src.js +164 -118
  460. package/indicators/klinger.js +12 -13
  461. package/indicators/klinger.js.map +1 -1
  462. package/indicators/klinger.src.js +161 -184
  463. package/indicators/macd.js +2 -2
  464. package/indicators/macd.js.map +1 -1
  465. package/indicators/macd.src.js +2 -3
  466. package/indicators/mfi.js +1 -1
  467. package/indicators/mfi.src.js +1 -1
  468. package/indicators/momentum.js +1 -1
  469. package/indicators/momentum.src.js +1 -1
  470. package/indicators/natr.js +3 -3
  471. package/indicators/natr.js.map +1 -1
  472. package/indicators/natr.src.js +2 -4
  473. package/indicators/obv.js +1 -1
  474. package/indicators/obv.src.js +1 -1
  475. package/indicators/pivot-points.js +1 -1
  476. package/indicators/pivot-points.src.js +1 -1
  477. package/indicators/ppo.js +5 -6
  478. package/indicators/ppo.js.map +1 -1
  479. package/indicators/ppo.src.js +3 -75
  480. package/indicators/price-channel.js +9 -9
  481. package/indicators/price-channel.js.map +1 -1
  482. package/indicators/price-channel.src.js +207 -168
  483. package/indicators/price-envelopes.js +1 -1
  484. package/indicators/price-envelopes.src.js +1 -1
  485. package/indicators/psar.js +1 -1
  486. package/indicators/psar.src.js +1 -1
  487. package/indicators/regressions.js +1 -1
  488. package/indicators/regressions.src.js +9 -9
  489. package/indicators/roc.js +1 -1
  490. package/indicators/roc.src.js +1 -1
  491. package/indicators/rsi.js +1 -1
  492. package/indicators/rsi.src.js +1 -1
  493. package/indicators/slow-stochastic.js +5 -6
  494. package/indicators/slow-stochastic.js.map +1 -1
  495. package/indicators/slow-stochastic.src.js +2 -72
  496. package/indicators/stochastic.js +10 -10
  497. package/indicators/stochastic.js.map +1 -1
  498. package/indicators/stochastic.src.js +209 -164
  499. package/indicators/supertrend.js +10 -10
  500. package/indicators/supertrend.js.map +1 -1
  501. package/indicators/supertrend.src.js +6 -7
  502. package/indicators/tema.js +6 -7
  503. package/indicators/tema.js.map +1 -1
  504. package/indicators/tema.src.js +28 -75
  505. package/indicators/trendline.js +1 -1
  506. package/indicators/trendline.src.js +1 -1
  507. package/indicators/trix.js +4 -5
  508. package/indicators/trix.js.map +1 -1
  509. package/indicators/trix.src.js +8 -76
  510. package/indicators/volume-by-price.js +16 -16
  511. package/indicators/volume-by-price.js.map +1 -1
  512. package/indicators/volume-by-price.src.js +21 -3
  513. package/indicators/vwap.js +1 -1
  514. package/indicators/vwap.src.js +1 -1
  515. package/indicators/williams-r.js +5 -6
  516. package/indicators/williams-r.js.map +1 -1
  517. package/indicators/williams-r.src.js +41 -51
  518. package/indicators/wma.js +1 -1
  519. package/indicators/wma.src.js +1 -1
  520. package/indicators/zigzag.js +1 -1
  521. package/indicators/zigzag.src.js +1 -1
  522. package/modules/accessibility.d.ts +5 -0
  523. package/modules/accessibility.js +234 -216
  524. package/modules/accessibility.js.map +1 -1
  525. package/modules/accessibility.src.d.ts +5 -0
  526. package/modules/accessibility.src.js +9709 -8608
  527. package/modules/annotations-advanced.d.ts +30 -0
  528. package/modules/annotations-advanced.js +191 -165
  529. package/modules/annotations-advanced.js.map +1 -1
  530. package/modules/annotations-advanced.src.d.ts +30 -0
  531. package/modules/annotations-advanced.src.js +1578 -320
  532. package/modules/annotations.js +121 -107
  533. package/modules/annotations.js.map +1 -1
  534. package/modules/annotations.src.js +958 -229
  535. package/modules/arrow-symbols.js +1 -1
  536. package/modules/arrow-symbols.src.js +1 -1
  537. package/modules/boost-canvas.js +15 -15
  538. package/modules/boost-canvas.js.map +1 -1
  539. package/modules/boost-canvas.src.js +3 -3
  540. package/modules/boost.js +79 -79
  541. package/modules/boost.js.map +1 -1
  542. package/modules/boost.src.js +10 -9
  543. package/modules/broken-axis.js +1 -1
  544. package/modules/broken-axis.src.js +1 -1
  545. package/modules/bullet.js +1 -1
  546. package/modules/bullet.src.js +1 -1
  547. package/modules/coloraxis.js +24 -24
  548. package/modules/coloraxis.js.map +1 -1
  549. package/modules/coloraxis.src.js +69 -98
  550. package/modules/current-date-indicator.js +4 -4
  551. package/modules/current-date-indicator.js.map +1 -1
  552. package/modules/current-date-indicator.src.js +4 -4
  553. package/modules/cylinder.js +1 -1
  554. package/modules/cylinder.src.js +1 -1
  555. package/modules/data.js +19 -19
  556. package/modules/data.js.map +1 -1
  557. package/modules/data.src.js +9 -6
  558. package/modules/datagrouping.js +20 -20
  559. package/modules/datagrouping.js.map +1 -1
  560. package/modules/datagrouping.src.js +33 -19
  561. package/modules/debugger.js +1 -1
  562. package/modules/debugger.src.js +1 -1
  563. package/modules/dependency-wheel.js +11 -11
  564. package/modules/dependency-wheel.js.map +1 -1
  565. package/modules/dependency-wheel.src.js +4 -7
  566. package/modules/dotplot.js +1 -1
  567. package/modules/dotplot.src.js +1 -1
  568. package/modules/drag-panes.js +8 -8
  569. package/modules/drag-panes.js.map +1 -1
  570. package/modules/drag-panes.src.js +3 -3
  571. package/modules/draggable-points.js +1 -1
  572. package/modules/draggable-points.src.js +1 -1
  573. package/modules/drilldown.js +24 -24
  574. package/modules/drilldown.js.map +1 -1
  575. package/modules/drilldown.src.js +4 -4
  576. package/modules/dumbbell.js +17 -17
  577. package/modules/dumbbell.js.map +1 -1
  578. package/modules/dumbbell.src.js +4 -4
  579. package/modules/export-data.js +1 -1
  580. package/modules/export-data.js.map +1 -1
  581. package/modules/export-data.src.js +3 -3
  582. package/modules/exporting.js +39 -38
  583. package/modules/exporting.js.map +1 -1
  584. package/modules/exporting.src.js +98 -67
  585. package/modules/full-screen.js +1 -1
  586. package/modules/full-screen.src.js +1 -1
  587. package/modules/funnel.js +12 -12
  588. package/modules/funnel.js.map +1 -1
  589. package/modules/funnel.src.js +9 -6
  590. package/modules/funnel3d.js +1 -1
  591. package/modules/funnel3d.src.js +1 -1
  592. package/modules/gantt.js +217 -218
  593. package/modules/gantt.js.map +1 -1
  594. package/modules/gantt.src.js +167 -152
  595. package/modules/grid-axis.js +1 -1
  596. package/modules/grid-axis.src.js +1 -1
  597. package/modules/heatmap.js +39 -39
  598. package/modules/heatmap.js.map +1 -1
  599. package/modules/heatmap.src.js +177 -162
  600. package/modules/heikinashi.js +1 -1
  601. package/modules/heikinashi.src.js +4 -4
  602. package/modules/histogram-bellcurve.js +13 -13
  603. package/modules/histogram-bellcurve.js.map +1 -1
  604. package/modules/histogram-bellcurve.src.js +91 -86
  605. package/modules/hollowcandlestick.js +9 -9
  606. package/modules/hollowcandlestick.js.map +1 -1
  607. package/modules/hollowcandlestick.src.js +11 -11
  608. package/modules/item-series.js +1 -1
  609. package/modules/item-series.src.js +1 -1
  610. package/modules/lollipop.js +1 -1
  611. package/modules/lollipop.src.js +1 -1
  612. package/modules/map.d.ts +136 -14
  613. package/modules/map.js +142 -122
  614. package/modules/map.js.map +1 -1
  615. package/modules/map.src.d.ts +136 -14
  616. package/modules/map.src.js +2129 -1029
  617. package/modules/marker-clusters.js +36 -36
  618. package/modules/marker-clusters.js.map +1 -1
  619. package/modules/marker-clusters.src.js +173 -142
  620. package/modules/networkgraph.d.ts +12 -1
  621. package/modules/networkgraph.js +49 -49
  622. package/modules/networkgraph.js.map +1 -1
  623. package/modules/networkgraph.src.d.ts +12 -1
  624. package/modules/networkgraph.src.js +91 -43
  625. package/modules/no-data-to-display.js +5 -5
  626. package/modules/no-data-to-display.js.map +1 -1
  627. package/modules/no-data-to-display.src.js +3 -3
  628. package/modules/offline-exporting.js +17 -17
  629. package/modules/offline-exporting.js.map +1 -1
  630. package/modules/offline-exporting.src.js +13 -13
  631. package/modules/oldie-polyfills.js +1 -1
  632. package/modules/oldie-polyfills.src.js +1 -1
  633. package/modules/oldie.js +26 -26
  634. package/modules/oldie.js.map +1 -1
  635. package/modules/oldie.src.js +4 -4
  636. package/modules/organization.js +13 -13
  637. package/modules/organization.js.map +1 -1
  638. package/modules/organization.src.js +4 -4
  639. package/modules/overlapping-datalabels.js +1 -1
  640. package/modules/overlapping-datalabels.src.js +1 -1
  641. package/modules/parallel-coordinates.js +1 -1
  642. package/modules/parallel-coordinates.src.js +1 -1
  643. package/modules/pareto.js +7 -7
  644. package/modules/pareto.js.map +1 -1
  645. package/modules/pareto.src.js +89 -78
  646. package/modules/pathfinder.js +1 -1
  647. package/modules/pathfinder.src.js +1 -1
  648. package/modules/pattern-fill.js +1 -1
  649. package/modules/pattern-fill.src.js +1 -1
  650. package/modules/price-indicator.js +1 -1
  651. package/modules/price-indicator.src.js +1 -1
  652. package/modules/pyramid3d.js +1 -1
  653. package/modules/pyramid3d.src.js +1 -1
  654. package/modules/sankey.d.ts +12 -1
  655. package/modules/sankey.js +29 -29
  656. package/modules/sankey.js.map +1 -1
  657. package/modules/sankey.src.d.ts +12 -1
  658. package/modules/sankey.src.js +300 -176
  659. package/modules/series-label.js +1 -1
  660. package/modules/series-label.src.js +1 -1
  661. package/modules/solid-gauge.js +1 -1
  662. package/modules/solid-gauge.src.js +1 -1
  663. package/modules/sonification.js +59 -55
  664. package/modules/sonification.js.map +1 -1
  665. package/modules/sonification.src.js +3034 -2553
  666. package/modules/static-scale.js +1 -1
  667. package/modules/static-scale.src.js +1 -1
  668. package/modules/stock-tools.js +177 -164
  669. package/modules/stock-tools.js.map +1 -1
  670. package/modules/stock-tools.src.js +1001 -131
  671. package/modules/stock.d.ts +39 -6
  672. package/modules/stock.js +204 -196
  673. package/modules/stock.js.map +1 -1
  674. package/modules/stock.src.d.ts +39 -6
  675. package/modules/stock.src.js +1689 -1081
  676. package/modules/streamgraph.js +1 -1
  677. package/modules/streamgraph.src.js +1 -1
  678. package/modules/sunburst.js +61 -60
  679. package/modules/sunburst.js.map +1 -1
  680. package/modules/sunburst.src.js +329 -266
  681. package/modules/tilemap.js +17 -17
  682. package/modules/tilemap.js.map +1 -1
  683. package/modules/tilemap.src.js +3 -4
  684. package/modules/timeline.js +18 -18
  685. package/modules/timeline.js.map +1 -1
  686. package/modules/timeline.src.js +5 -5
  687. package/modules/treegrid.js +56 -57
  688. package/modules/treegrid.js.map +1 -1
  689. package/modules/treegrid.src.js +126 -120
  690. package/modules/treemap.js +41 -41
  691. package/modules/treemap.js.map +1 -1
  692. package/modules/treemap.src.js +319 -254
  693. package/modules/variable-pie.js +1 -1
  694. package/modules/variable-pie.src.js +1 -1
  695. package/modules/variwide.js +1 -1
  696. package/modules/variwide.src.js +1 -1
  697. package/modules/vector.js +1 -1
  698. package/modules/vector.src.js +1 -1
  699. package/modules/venn.js +31 -31
  700. package/modules/venn.js.map +1 -1
  701. package/modules/venn.src.js +731 -721
  702. package/modules/windbarb.js +15 -15
  703. package/modules/windbarb.js.map +1 -1
  704. package/modules/windbarb.src.js +90 -62
  705. package/modules/wordcloud.js +23 -24
  706. package/modules/wordcloud.js.map +1 -1
  707. package/modules/wordcloud.src.js +897 -949
  708. package/modules/xrange.js +2 -2
  709. package/modules/xrange.js.map +1 -1
  710. package/modules/xrange.src.js +2 -1
  711. package/package.json +1 -1
  712. package/themes/avocado.js +1 -1
  713. package/themes/avocado.src.js +1 -1
  714. package/themes/dark-blue.js +1 -1
  715. package/themes/dark-blue.src.js +1 -1
  716. package/themes/dark-green.js +1 -1
  717. package/themes/dark-green.src.js +1 -1
  718. package/themes/dark-unica.js +1 -1
  719. package/themes/dark-unica.src.js +1 -1
  720. package/themes/gray.js +1 -1
  721. package/themes/gray.src.js +1 -1
  722. package/themes/grid-light.js +1 -1
  723. package/themes/grid-light.src.js +1 -1
  724. package/themes/grid.js +1 -1
  725. package/themes/grid.src.js +1 -1
  726. package/themes/high-contrast-dark.js +1 -1
  727. package/themes/high-contrast-dark.src.js +1 -1
  728. package/themes/high-contrast-light.js +1 -1
  729. package/themes/high-contrast-light.src.js +1 -1
  730. package/themes/sand-signika.js +1 -1
  731. package/themes/sand-signika.src.js +1 -1
  732. package/themes/skies.js +1 -1
  733. package/themes/skies.src.js +1 -1
  734. package/themes/sunset.js +1 -1
  735. package/themes/sunset.src.js +1 -1
  736. package/es-modules/Core/Axis/MapAxis.js +0 -157
  737. package/es-modules/Core/Color/Palette.js +0 -82
  738. package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
  739. package/es-modules/Mixins/ColorMapSeries.js +0 -82
  740. package/es-modules/Mixins/ColorSeries.js +0 -77
  741. package/es-modules/Mixins/DerivedSeries.js +0 -118
  742. package/es-modules/Mixins/DrawPoint.js +0 -81
  743. package/es-modules/Mixins/IndicatorRequired.js +0 -56
  744. package/es-modules/Mixins/Navigation.js +0 -54
  745. package/es-modules/Mixins/NelderMead.js +0 -132
  746. package/es-modules/Mixins/Polygon.js +0 -259
  747. package/es-modules/Mixins/ReduceArray.js +0 -54
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highstock JS v9.2.2 (2021-08-24)
2
+ * @license Highstock JS v9.3.0 (2021-10-21)
3
3
  *
4
4
  * All technical indicators for Highcharts Stock
5
5
  *
@@ -28,68 +28,6 @@
28
28
  obj[path] = fn.apply(null, args);
29
29
  }
30
30
  }
31
- _registerModule(_modules, 'Mixins/IndicatorRequired.js', [_modules['Core/Utilities.js']], function (U) {
32
- /**
33
- *
34
- * (c) 2010-2021 Daniel Studencki
35
- *
36
- * License: www.highcharts.com/license
37
- *
38
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
39
- *
40
- * */
41
- var error = U.error;
42
- /* eslint-disable no-invalid-this, valid-jsdoc */
43
- var requiredIndicatorMixin = {
44
- /**
45
- * Check whether given indicator is loaded,
46
- else throw error.
47
- * @private
48
- * @param {Highcharts.Indicator} indicator
49
- * Indicator constructor function.
50
- * @param {string} requiredIndicator
51
- * Required indicator type.
52
- * @param {string} type
53
- * Type of indicator where function was called (parent).
54
- * @param {Highcharts.IndicatorCallbackFunction} callback
55
- * Callback which is triggered if the given indicator is loaded.
56
- * Takes indicator as an argument.
57
- * @param {string} errMessage
58
- * Error message that will be logged in console.
59
- * @return {boolean}
60
- * Returns false when there is no required indicator loaded.
61
- */
62
- isParentLoaded: function (indicator,
63
- requiredIndicator,
64
- type,
65
- callback,
66
- errMessage) {
67
- if (indicator) {
68
- return callback ? callback(indicator) : true;
69
- }
70
- error(errMessage || this.generateMessage(type, requiredIndicator));
71
- return false;
72
- },
73
- /**
74
- * @private
75
- * @param {string} indicatorType
76
- * Indicator type
77
- * @param {string} required
78
- * Required indicator
79
- * @return {string}
80
- * Error message
81
- */
82
- generateMessage: function (indicatorType, required) {
83
- return 'Error: "' + indicatorType +
84
- '" indicator type requires "' + required +
85
- '" indicator loaded before. Please read docs: ' +
86
- 'https://api.highcharts.com/highstock/plotOptions.' +
87
- indicatorType;
88
- }
89
- };
90
-
91
- return requiredIndicatorMixin;
92
- });
93
31
  _registerModule(_modules, 'Stock/Indicators/SMA/SMAComposition.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
94
32
  /* *
95
33
  *
@@ -102,37 +40,9 @@
102
40
  ohlcProto = SeriesRegistry.seriesTypes.ohlc.prototype;
103
41
  var addEvent = U.addEvent,
104
42
  extend = U.extend;
105
- /* *
106
- *
107
- * Composition
108
- *
109
- * */
110
- addEvent(Series, 'init', function (eventOptions) {
111
- // eslint-disable-next-line no-invalid-this
112
- var series = this,
113
- options = eventOptions.options;
114
- if (options.useOhlcData &&
115
- options.id !== 'highcharts-navigator-series') {
116
- extend(series, {
117
- pointValKey: ohlcProto.pointValKey,
118
- // keys: ohlcProto.keys, // @todo potentially nonsense
119
- pointArrayMap: ohlcProto.pointArrayMap,
120
- toYData: ohlcProto.toYData
121
- });
122
- }
123
- });
124
- addEvent(Series, 'afterSetOptions', function (e) {
125
- var options = e.options,
126
- dataGrouping = options.dataGrouping;
127
- if (dataGrouping &&
128
- options.useOhlcData &&
129
- options.id !== 'highcharts-navigator-series') {
130
- dataGrouping.approximation = 'ohlc';
131
- }
132
- });
133
43
 
134
44
  });
135
- _registerModule(_modules, 'Stock/Indicators/SMA/SMAIndicator.js', [_modules['Core/Chart/Chart.js'], _modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Chart, RequiredIndicatorMixin, SeriesRegistry, U) {
45
+ _registerModule(_modules, 'Stock/Indicators/SMA/SMAIndicator.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Chart, SeriesRegistry, U) {
136
46
  /* *
137
47
  *
138
48
  * License: www.highcharts.com/license
@@ -164,7 +74,6 @@
164
74
  merge = U.merge,
165
75
  pick = U.pick,
166
76
  splat = U.splat;
167
- var generateMessage = RequiredIndicatorMixin.generateMessage;
168
77
  /* *
169
78
  *
170
79
  * Class
@@ -278,12 +187,7 @@
278
187
  * @private
279
188
  */
280
189
  SMAIndicator.prototype.init = function (chart, options) {
281
- var indicator = this,
282
- requiredIndicators = indicator.requireIndicators();
283
- // Check whether all required indicators are loaded.
284
- if (!requiredIndicators.allLoaded) {
285
- return error(generateMessage(indicator.type, requiredIndicators.needed));
286
- }
190
+ var indicator = this;
287
191
  _super.prototype.init.call(indicator, chart, options);
288
192
  // Only after series are linked indicator can be processed.
289
193
  var linkedSeriesUnbiner = addEvent(Chart, 'afterLinkSeries',
@@ -409,31 +313,16 @@
409
313
  compareToMain = series.options.compareToMain,
410
314
  linkedParent = series.linkedParent;
411
315
  _super.prototype.processData.apply(series, arguments);
412
- if (linkedParent && linkedParent.compareValue && compareToMain) {
413
- series.compareValue = linkedParent.compareValue;
316
+ if (series.dataModify &&
317
+ linkedParent &&
318
+ linkedParent.dataModify &&
319
+ linkedParent.dataModify.compareValue &&
320
+ compareToMain) {
321
+ series.dataModify.compareValue =
322
+ linkedParent.dataModify.compareValue;
414
323
  }
415
324
  return;
416
325
  };
417
- /**
418
- * @private
419
- */
420
- SMAIndicator.prototype.requireIndicators = function () {
421
- var obj = {
422
- allLoaded: true
423
- };
424
- // Check whether all required indicators are loaded, else return
425
- // the object with missing indicator's name.
426
- this.requiredIndicators.forEach(function (indicator) {
427
- if (SeriesRegistry.seriesTypes[indicator]) {
428
- SeriesRegistry.seriesTypes[indicator].prototype.requireIndicators();
429
- }
430
- else {
431
- obj.allLoaded = false;
432
- obj.needed = indicator;
433
- }
434
- });
435
- return obj;
436
- };
437
326
  /**
438
327
  * The parameter allows setting line series type and use OHLC indicators.
439
328
  * Data in OHLC format is required.
@@ -504,7 +393,7 @@
504
393
  * example using OHLC data, index=2 means the indicator will be
505
394
  * calculated using Low values.
506
395
  */
507
- index: 0,
396
+ index: 3,
508
397
  /**
509
398
  * The base period for indicator calculations. This is the number of
510
399
  * data points which are taken into account for the indicator
@@ -524,8 +413,6 @@
524
413
  hasDerivedData: true,
525
414
  nameComponents: ['period'],
526
415
  nameSuffixes: [],
527
- // Defines on which other indicators is this indicator based on.
528
- requiredIndicators: [],
529
416
  useCommonDataGrouping: true
530
417
  });
531
418
  SeriesRegistry.registerSeriesType('sma', SMAIndicator);
@@ -554,6 +441,183 @@
554
441
 
555
442
  return SMAIndicator;
556
443
  });
444
+ _registerModule(_modules, 'Stock/Indicators/EMA/EMAIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
445
+ /* *
446
+ *
447
+ * License: www.highcharts.com/license
448
+ *
449
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
450
+ *
451
+ * */
452
+ var __extends = (this && this.__extends) || (function () {
453
+ var extendStatics = function (d,
454
+ b) {
455
+ extendStatics = Object.setPrototypeOf ||
456
+ ({ __proto__: [] } instanceof Array && function (d,
457
+ b) { d.__proto__ = b; }) ||
458
+ function (d,
459
+ b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
460
+ return extendStatics(d, b);
461
+ };
462
+ return function (d, b) {
463
+ extendStatics(d, b);
464
+ function __() { this.constructor = d; }
465
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
466
+ };
467
+ })();
468
+ var SMAIndicator = SeriesRegistry.seriesTypes.sma;
469
+ var correctFloat = U.correctFloat,
470
+ isArray = U.isArray,
471
+ merge = U.merge;
472
+ /* *
473
+ *
474
+ * Class
475
+ *
476
+ * */
477
+ /**
478
+ * The EMA series type.
479
+ *
480
+ * @private
481
+ * @class
482
+ * @name Highcharts.seriesTypes.ema
483
+ *
484
+ * @augments Highcharts.Series
485
+ */
486
+ var EMAIndicator = /** @class */ (function (_super) {
487
+ __extends(EMAIndicator, _super);
488
+ function EMAIndicator() {
489
+ var _this = _super !== null && _super.apply(this,
490
+ arguments) || this;
491
+ /* *
492
+ *
493
+ * Properties
494
+ *
495
+ * */
496
+ _this.data = void 0;
497
+ _this.options = void 0;
498
+ _this.points = void 0;
499
+ return _this;
500
+ }
501
+ /* *
502
+ *
503
+ * Functions
504
+ *
505
+ * */
506
+ EMAIndicator.prototype.accumulatePeriodPoints = function (period, index, yVal) {
507
+ var sum = 0,
508
+ i = 0,
509
+ y = 0;
510
+ while (i < period) {
511
+ y = index < 0 ? yVal[i] : yVal[i][index];
512
+ sum = sum + y;
513
+ i++;
514
+ }
515
+ return sum;
516
+ };
517
+ EMAIndicator.prototype.calculateEma = function (xVal, yVal, i, EMApercent, calEMA, index, SMA) {
518
+ var x = xVal[i - 1],
519
+ yValue = index < 0 ?
520
+ yVal[i - 1] :
521
+ yVal[i - 1][index],
522
+ y;
523
+ y = typeof calEMA === 'undefined' ?
524
+ SMA : correctFloat((yValue * EMApercent) +
525
+ (calEMA * (1 - EMApercent)));
526
+ return [x, y];
527
+ };
528
+ EMAIndicator.prototype.getValues = function (series, params) {
529
+ var period = params.period,
530
+ xVal = series.xData,
531
+ yVal = series.yData,
532
+ yValLen = yVal ? yVal.length : 0,
533
+ EMApercent = 2 / (period + 1),
534
+ sum = 0,
535
+ EMA = [],
536
+ xData = [],
537
+ yData = [],
538
+ index = -1,
539
+ SMA = 0,
540
+ calEMA,
541
+ EMAPoint,
542
+ i;
543
+ // Check period, if bigger than points length, skip
544
+ if (yValLen < period) {
545
+ return;
546
+ }
547
+ // Switch index for OHLC / Candlestick / Arearange
548
+ if (isArray(yVal[0])) {
549
+ index = params.index ? params.index : 0;
550
+ }
551
+ // Accumulate first N-points
552
+ sum = this.accumulatePeriodPoints(period, index, yVal);
553
+ // first point
554
+ SMA = sum / period;
555
+ // Calculate value one-by-one for each period in visible data
556
+ for (i = period; i < yValLen + 1; i++) {
557
+ EMAPoint = this.calculateEma(xVal, yVal, i, EMApercent, calEMA, index, SMA);
558
+ EMA.push(EMAPoint);
559
+ xData.push(EMAPoint[0]);
560
+ yData.push(EMAPoint[1]);
561
+ calEMA = EMAPoint[1];
562
+ }
563
+ return {
564
+ values: EMA,
565
+ xData: xData,
566
+ yData: yData
567
+ };
568
+ };
569
+ /**
570
+ * Exponential moving average indicator (EMA). This series requires the
571
+ * `linkedTo` option to be set.
572
+ *
573
+ * @sample stock/indicators/ema
574
+ * Exponential moving average indicator
575
+ *
576
+ * @extends plotOptions.sma
577
+ * @since 6.0.0
578
+ * @product highstock
579
+ * @requires stock/indicators/indicators
580
+ * @optionparent plotOptions.ema
581
+ */
582
+ EMAIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
583
+ params: {
584
+ /**
585
+ * The point index which indicator calculations will base. For
586
+ * example using OHLC data, index=2 means the indicator will be
587
+ * calculated using Low values.
588
+ *
589
+ * By default index value used to be set to 0. Since
590
+ * Highcharts Stock 7 by default index is set to 3
591
+ * which means that the ema indicator will be
592
+ * calculated using Close values.
593
+ */
594
+ index: 3,
595
+ period: 9 // @merge 14 in v6.2
596
+ }
597
+ });
598
+ return EMAIndicator;
599
+ }(SMAIndicator));
600
+ SeriesRegistry.registerSeriesType('ema', EMAIndicator);
601
+ /* *
602
+ *
603
+ * Default Export
604
+ *
605
+ * */
606
+ /**
607
+ * A `EMA` series. If the [type](#series.ema.type) option is not
608
+ * specified, it is inherited from [chart.type](#chart.type).
609
+ *
610
+ * @extends series,plotOptions.ema
611
+ * @since 6.0.0
612
+ * @product highstock
613
+ * @excluding dataParser, dataURL
614
+ * @requires stock/indicators/indicators
615
+ * @apioption series.ema
616
+ */
617
+ ''; // adds doclet above to the transpiled file
618
+
619
+ return EMAIndicator;
620
+ });
557
621
  _registerModule(_modules, 'Stock/Indicators/AD/ADIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
558
622
  /* *
559
623
  *
@@ -737,7 +801,7 @@
737
801
 
738
802
  return ADIndicator;
739
803
  });
740
- _registerModule(_modules, 'Stock/Indicators/AO/AOIndicator.js', [_modules['Core/Globals.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js'], _modules['Core/Color/Palette.js']], function (H, SeriesRegistry, U, palette) {
804
+ _registerModule(_modules, 'Stock/Indicators/AO/AOIndicator.js', [_modules['Core/Globals.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (H, SeriesRegistry, U) {
741
805
  /* *
742
806
  *
743
807
  * License: www.highcharts.com/license
@@ -919,7 +983,7 @@
919
983
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
920
984
  * @since 7.0.0
921
985
  */
922
- greaterBarColor: palette.positiveColor,
986
+ greaterBarColor: "#06b535" /* positiveColor */,
923
987
  /**
924
988
  * Color of the Awesome oscillator series bar that is lower than the
925
989
  * previous one. Note that if a `color` is defined, the `color`
@@ -931,7 +995,7 @@
931
995
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
932
996
  * @since 7.0.0
933
997
  */
934
- lowerBarColor: palette.negativeColor,
998
+ lowerBarColor: "#f21313" /* negativeColor */,
935
999
  threshold: 0,
936
1000
  groupPadding: 0.2,
937
1001
  pointPadding: 0.2,
@@ -980,7 +1044,7 @@
980
1044
 
981
1045
  return AOIndicator;
982
1046
  });
983
- _registerModule(_modules, 'Mixins/MultipleLines.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
1047
+ _registerModule(_modules, 'Stock/Indicators/MultipleLinesComposition.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
984
1048
  /**
985
1049
  *
986
1050
  * (c) 2010-2021 Wojciech Chmiel
@@ -990,118 +1054,96 @@
990
1054
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
991
1055
  *
992
1056
  * */
1057
+ var SMAIndicator = SeriesRegistry.seriesTypes.sma;
993
1058
  var defined = U.defined,
994
1059
  error = U.error,
995
1060
  merge = U.merge;
996
- var SMA = H.seriesTypes.sma;
1061
+ /* *
1062
+ *
1063
+ * Composition
1064
+ *
1065
+ * */
997
1066
  /**
998
- * Mixin useful for all indicators that have more than one line.
999
- * Merge it with your implementation where you will provide
1000
- * getValues method appropriate to your indicator and pointArrayMap,
1001
- * pointValKey, linesApiNames properites. Notice that pointArrayMap
1002
- * should be consistent with amount of lines calculated in getValues method.
1067
+ * Composition useful for all indicators that have more than one line. Compose
1068
+ * it with your implementation where you will provide the `getValues` method
1069
+ * appropriate to your indicator and `pointArrayMap`, `pointValKey`,
1070
+ * `linesApiNames` properties. Notice that `pointArrayMap` should be consistent
1071
+ * with the amount of lines calculated in the `getValues` method.
1003
1072
  *
1004
1073
  * @private
1005
1074
  * @mixin multipleLinesMixin
1006
1075
  */
1007
- var multipleLinesMixin = {
1008
- /* eslint-disable valid-jsdoc */
1009
- /**
1010
- * Lines ids. Required to plot appropriate amount of lines.
1011
- * Notice that pointArrayMap should have more elements than
1012
- * linesApiNames, because it contains main line and additional lines ids.
1013
- * Also it should be consistent with amount of lines calculated in
1014
- * getValues method from your implementation.
1015
- *
1016
- * @private
1017
- * @name multipleLinesMixin.pointArrayMap
1018
- * @type {Array<string>}
1019
- */
1020
- pointArrayMap: ['top', 'bottom'],
1021
- /**
1022
- * Main line id.
1023
- *
1024
- * @private
1025
- * @name multipleLinesMixin.pointValKey
1026
- * @type {string}
1027
- */
1028
- pointValKey: 'top',
1029
- /**
1030
- * Additional lines DOCS names. Elements of linesApiNames array should
1031
- * be consistent with DOCS line names defined in your implementation.
1032
- * Notice that linesApiNames should have decreased amount of elements
1033
- * relative to pointArrayMap (without pointValKey).
1034
- *
1035
- * @private
1036
- * @name multipleLinesMixin.linesApiNames
1037
- * @type {Array<string>}
1038
- */
1039
- linesApiNames: ['bottomLine'],
1040
- /**
1041
- * Create translatedLines Collection based on pointArrayMap.
1042
- *
1043
- * @private
1044
- * @function multipleLinesMixin.getTranslatedLinesNames
1045
- * @param {string} [excludedValue]
1046
- * Main line id
1047
- * @return {Array<string>}
1048
- * Returns translated lines names without excluded value.
1049
- */
1050
- getTranslatedLinesNames: function (excludedValue) {
1051
- var translatedLines = [];
1052
- (this.pointArrayMap || []).forEach(function (propertyName) {
1053
- if (propertyName !== excludedValue) {
1054
- translatedLines.push('plot' +
1055
- propertyName.charAt(0).toUpperCase() +
1056
- propertyName.slice(1));
1057
- }
1058
- });
1059
- return translatedLines;
1060
- },
1076
+ var MultipleLinesComposition;
1077
+ (function (MultipleLinesComposition) {
1078
+ /* *
1079
+ *
1080
+ * Declarations
1081
+ *
1082
+ * */
1083
+ /* *
1084
+ *
1085
+ * Constants
1086
+ *
1087
+ * */
1088
+ var composedClasses = [];
1061
1089
  /**
1090
+ * Additional lines DOCS names. Elements of linesApiNames array should
1091
+ * be consistent with DOCS line names defined in your implementation.
1092
+ * Notice that linesApiNames should have decreased amount of elements
1093
+ * relative to pointArrayMap (without pointValKey).
1094
+ *
1062
1095
  * @private
1063
- * @function multipleLinesMixin.toYData
1064
- * @param {Highcharts.Point} point
1065
- * Indicator point
1066
- * @return {Array<number>}
1067
- * Returns point Y value for all lines
1096
+ * @name multipleLinesMixin.linesApiNames
1097
+ * @type {Array<string>}
1068
1098
  */
1069
- toYData: function (point) {
1070
- var pointColl = [];
1071
- (this.pointArrayMap || []).forEach(function (propertyName) {
1072
- pointColl.push(point[propertyName]);
1073
- });
1074
- return pointColl;
1075
- },
1099
+ var linesApiNames = ['bottomLine'];
1076
1100
  /**
1077
- * Add lines plot pixel values.
1101
+ * Lines ids. Required to plot appropriate amount of lines.
1102
+ * Notice that pointArrayMap should have more elements than
1103
+ * linesApiNames, because it contains main line and additional lines ids.
1104
+ * Also it should be consistent with amount of lines calculated in
1105
+ * getValues method from your implementation.
1078
1106
  *
1079
1107
  * @private
1080
- * @function multipleLinesMixin.translate
1081
- * @return {void}
1108
+ * @name multipleLinesMixin.pointArrayMap
1109
+ * @type {Array<string>}
1082
1110
  */
1083
- translate: function () {
1084
- var indicator = this,
1085
- pointArrayMap = indicator.pointArrayMap,
1086
- LinesNames = [],
1087
- value;
1088
- var modfidyValue = indicator.modifyValue;
1089
- LinesNames = indicator.getTranslatedLinesNames();
1090
- SMA.prototype.translate.apply(indicator, arguments);
1091
- indicator.points.forEach(function (point) {
1092
- pointArrayMap.forEach(function (propertyName, i) {
1093
- value = point[propertyName];
1094
- // If the modifier, like for example compare exists,
1095
- // modified the original value by that method, #15867.
1096
- if (modfidyValue) {
1097
- value = modfidyValue.call(indicator, value);
1098
- }
1099
- if (value !== null) {
1100
- point[LinesNames[i]] = indicator.yAxis.toPixels(value, true);
1101
- }
1102
- });
1103
- });
1104
- },
1111
+ var pointArrayMap = ['top', 'bottom'];
1112
+ /**
1113
+ * Main line id.
1114
+ *
1115
+ * @private
1116
+ * @name multipleLinesMixin.pointValKey
1117
+ * @type {string}
1118
+ */
1119
+ var pointValKey = 'top';
1120
+ /* *
1121
+ *
1122
+ * Functions
1123
+ *
1124
+ * */
1125
+ /* eslint-disable valid-jsdoc */
1126
+ /**
1127
+ * @private
1128
+ */
1129
+ function compose(IndicatorClass) {
1130
+ if (composedClasses.indexOf(IndicatorClass) === -1) {
1131
+ composedClasses.push(IndicatorClass);
1132
+ var proto = IndicatorClass.prototype;
1133
+ proto.linesApiNames = (proto.linesApiNames ||
1134
+ linesApiNames.slice());
1135
+ proto.pointArrayMap = (proto.pointArrayMap ||
1136
+ pointArrayMap.slice());
1137
+ proto.pointValKey = (proto.pointValKey ||
1138
+ pointValKey);
1139
+ proto.drawGraph = drawGraph;
1140
+ proto.toYData = toYData;
1141
+ proto.translate = translate;
1142
+ proto.getTranslatedLinesNames = getTranslatedLinesNames;
1143
+ }
1144
+ return IndicatorClass;
1145
+ }
1146
+ MultipleLinesComposition.compose = compose;
1105
1147
  /**
1106
1148
  * Draw main and additional lines.
1107
1149
  *
@@ -1109,12 +1151,11 @@
1109
1151
  * @function multipleLinesMixin.drawGraph
1110
1152
  * @return {void}
1111
1153
  */
1112
- drawGraph: function () {
1154
+ function drawGraph() {
1113
1155
  var indicator = this,
1114
1156
  pointValKey = indicator.pointValKey,
1115
1157
  linesApiNames = indicator.linesApiNames,
1116
1158
  mainLinePoints = indicator.points,
1117
- pointsLength = mainLinePoints.length,
1118
1159
  mainLineOptions = indicator.options,
1119
1160
  mainLinePath = indicator.graph,
1120
1161
  gappedExtend = {
@@ -1124,7 +1165,8 @@
1124
1165
  },
1125
1166
  // additional lines point place holders:
1126
1167
  secondaryLines = [],
1127
- secondaryLinesNames = indicator.getTranslatedLinesNames(pointValKey),
1168
+ secondaryLinesNames = indicator.getTranslatedLinesNames(pointValKey);
1169
+ var pointsLength = mainLinePoints.length,
1128
1170
  point;
1129
1171
  // Generate points for additional lines:
1130
1172
  secondaryLinesNames.forEach(function (plotLine, index) {
@@ -1155,7 +1197,7 @@
1155
1197
  ' at mixin/multiple-line.js:34');
1156
1198
  }
1157
1199
  indicator.graph = indicator['graph' + lineName];
1158
- SMA.prototype.drawGraph.call(indicator);
1200
+ SMAIndicator.prototype.drawGraph.call(indicator);
1159
1201
  // Now save lines:
1160
1202
  indicator['graph' + lineName] = indicator.graph;
1161
1203
  }
@@ -1169,13 +1211,82 @@
1169
1211
  indicator.points = mainLinePoints;
1170
1212
  indicator.options = mainLineOptions;
1171
1213
  indicator.graph = mainLinePath;
1172
- SMA.prototype.drawGraph.call(indicator);
1214
+ SMAIndicator.prototype.drawGraph.call(indicator);
1173
1215
  }
1174
- };
1216
+ /**
1217
+ * Create translatedLines Collection based on pointArrayMap.
1218
+ *
1219
+ * @private
1220
+ * @function multipleLinesMixin.getTranslatedLinesNames
1221
+ * @param {string} [excludedValue]
1222
+ * Main line id
1223
+ * @return {Array<string>}
1224
+ * Returns translated lines names without excluded value.
1225
+ */
1226
+ function getTranslatedLinesNames(excludedValue) {
1227
+ var translatedLines = [];
1228
+ (this.pointArrayMap || []).forEach(function (propertyName) {
1229
+ if (propertyName !== excludedValue) {
1230
+ translatedLines.push('plot' +
1231
+ propertyName.charAt(0).toUpperCase() +
1232
+ propertyName.slice(1));
1233
+ }
1234
+ });
1235
+ return translatedLines;
1236
+ }
1237
+ /**
1238
+ * @private
1239
+ * @function multipleLinesMixin.toYData
1240
+ * @param {Highcharts.Point} point
1241
+ * Indicator point
1242
+ * @return {Array<number>}
1243
+ * Returns point Y value for all lines
1244
+ */
1245
+ function toYData(point) {
1246
+ var pointColl = [];
1247
+ (this.pointArrayMap || []).forEach(function (propertyName) {
1248
+ pointColl.push(point[propertyName]);
1249
+ });
1250
+ return pointColl;
1251
+ }
1252
+ /**
1253
+ * Add lines plot pixel values.
1254
+ *
1255
+ * @private
1256
+ * @function multipleLinesMixin.translate
1257
+ * @return {void}
1258
+ */
1259
+ function translate() {
1260
+ var indicator = this,
1261
+ pointArrayMap = indicator.pointArrayMap;
1262
+ var LinesNames = [],
1263
+ value;
1264
+ LinesNames = indicator.getTranslatedLinesNames();
1265
+ SMAIndicator.prototype.translate.apply(indicator, arguments);
1266
+ indicator.points.forEach(function (point) {
1267
+ pointArrayMap.forEach(function (propertyName, i) {
1268
+ value = point[propertyName];
1269
+ // If the modifier, like for example compare exists,
1270
+ // modified the original value by that method, #15867.
1271
+ if (indicator.dataModify) {
1272
+ value = indicator.dataModify.modifyValue(value);
1273
+ }
1274
+ if (value !== null) {
1275
+ point[LinesNames[i]] = indicator.yAxis.toPixels(value, true);
1276
+ }
1277
+ });
1278
+ });
1279
+ }
1280
+ })(MultipleLinesComposition || (MultipleLinesComposition = {}));
1281
+ /* *
1282
+ *
1283
+ * Default Export
1284
+ *
1285
+ * */
1175
1286
 
1176
- return multipleLinesMixin;
1287
+ return MultipleLinesComposition;
1177
1288
  });
1178
- _registerModule(_modules, 'Stock/Indicators/Aroon/AroonIndicator.js', [_modules['Mixins/MultipleLines.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesMixin, SeriesRegistry, U) {
1289
+ _registerModule(_modules, 'Stock/Indicators/Aroon/AroonIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
1179
1290
  /* *
1180
1291
  *
1181
1292
  * License: www.highcharts.com/license
@@ -1364,12 +1475,9 @@
1364
1475
  linesApiNames: ['aroonDown'],
1365
1476
  nameBase: 'Aroon',
1366
1477
  pointArrayMap: ['y', 'aroonDown'],
1367
- pointValKey: 'y',
1368
- drawGraph: MultipleLinesMixin.drawGraph,
1369
- getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
1370
- toYData: MultipleLinesMixin.toYData,
1371
- translate: MultipleLinesMixin.translate
1478
+ pointValKey: 'y'
1372
1479
  });
1480
+ MultipleLinesComposition.compose(AroonIndicator);
1373
1481
  SeriesRegistry.registerSeriesType('aroon', AroonIndicator);
1374
1482
  /* *
1375
1483
  *
@@ -1394,7 +1502,7 @@
1394
1502
 
1395
1503
  return AroonIndicator;
1396
1504
  });
1397
- _registerModule(_modules, 'Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js', [_modules['Mixins/MultipleLines.js'], _modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (multipleLinesMixin, requiredIndicator, SeriesRegistry, U) {
1505
+ _registerModule(_modules, 'Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
1398
1506
  /* *
1399
1507
  *
1400
1508
  * License: www.highcharts.com/license
@@ -1439,6 +1547,11 @@
1439
1547
  var AroonOscillatorIndicator = /** @class */ (function (_super) {
1440
1548
  __extends(AroonOscillatorIndicator, _super);
1441
1549
  function AroonOscillatorIndicator() {
1550
+ /* *
1551
+ *
1552
+ * Static Properties
1553
+ *
1554
+ * */
1442
1555
  var _this = _super !== null && _super.apply(this,
1443
1556
  arguments) || this;
1444
1557
  /* *
@@ -1481,14 +1594,6 @@
1481
1594
  yData: yData
1482
1595
  };
1483
1596
  };
1484
- AroonOscillatorIndicator.prototype.init = function () {
1485
- var args = arguments,
1486
- ctx = this;
1487
- requiredIndicator.isParentLoaded(AROON, 'aroon', ctx.type, function (indicator) {
1488
- indicator.prototype.init.apply(ctx, args);
1489
- return;
1490
- });
1491
- };
1492
1597
  /**
1493
1598
  * Aroon Oscillator. This series requires the `linkedTo` option to be set
1494
1599
  * and should be loaded after the `stock/indicators/indicators.js` and
@@ -1516,12 +1621,13 @@
1516
1621
  });
1517
1622
  return AroonOscillatorIndicator;
1518
1623
  }(AroonIndicator));
1519
- extend(AroonOscillatorIndicator.prototype, merge(multipleLinesMixin, {
1624
+ extend(AroonOscillatorIndicator.prototype, {
1520
1625
  nameBase: 'Aroon Oscillator',
1626
+ linesApiNames: [],
1521
1627
  pointArrayMap: ['y'],
1522
- pointValKey: 'y',
1523
- linesApiNames: []
1524
- }));
1628
+ pointValKey: 'y'
1629
+ });
1630
+ MultipleLinesComposition.compose(AroonIndicator);
1525
1631
  SeriesRegistry.registerSeriesType('aroonoscillator', AroonOscillatorIndicator);
1526
1632
  /* *
1527
1633
  *
@@ -1733,7 +1839,7 @@
1733
1839
 
1734
1840
  return ATRIndicator;
1735
1841
  });
1736
- _registerModule(_modules, 'Stock/Indicators/BB/BBIndicator.js', [_modules['Mixins/MultipleLines.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesMixin, SeriesRegistry, U) {
1842
+ _registerModule(_modules, 'Stock/Indicators/BB/BBIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
1737
1843
  /**
1738
1844
  *
1739
1845
  * License: www.highcharts.com/license
@@ -1761,6 +1867,11 @@
1761
1867
  var extend = U.extend,
1762
1868
  isArray = U.isArray,
1763
1869
  merge = U.merge;
1870
+ /* *
1871
+ *
1872
+ * Functions
1873
+ *
1874
+ * */
1764
1875
  /* eslint-disable valid-jsdoc */
1765
1876
  // Utils:
1766
1877
  /**
@@ -1780,7 +1891,11 @@
1780
1891
  std = Math.sqrt(variance);
1781
1892
  return std;
1782
1893
  }
1783
- /* eslint-enable valid-jsdoc */
1894
+ /* *
1895
+ *
1896
+ * Class
1897
+ *
1898
+ * */
1784
1899
  /**
1785
1900
  * Bollinger Bands series type.
1786
1901
  *
@@ -1793,18 +1908,28 @@
1793
1908
  var BBIndicator = /** @class */ (function (_super) {
1794
1909
  __extends(BBIndicator, _super);
1795
1910
  function BBIndicator() {
1911
+ /* *
1912
+ *
1913
+ * Static Properties
1914
+ *
1915
+ * */
1796
1916
  var _this = _super !== null && _super.apply(this,
1797
1917
  arguments) || this;
1798
1918
  /* *
1799
- *
1800
- * Prototype Properties
1801
- *
1802
- * */
1919
+ *
1920
+ * Properties
1921
+ *
1922
+ * */
1803
1923
  _this.data = void 0;
1804
1924
  _this.options = void 0;
1805
1925
  _this.points = void 0;
1806
1926
  return _this;
1807
1927
  }
1928
+ /* *
1929
+ *
1930
+ * Functions
1931
+ *
1932
+ * */
1808
1933
  BBIndicator.prototype.init = function () {
1809
1934
  SeriesRegistry.seriesTypes.sma.prototype.init.apply(this, arguments);
1810
1935
  // Set default color for lines:
@@ -1942,12 +2067,9 @@
1942
2067
  pointArrayMap: ['top', 'middle', 'bottom'],
1943
2068
  pointValKey: 'middle',
1944
2069
  nameComponents: ['period', 'standardDeviation'],
1945
- linesApiNames: ['topLine', 'bottomLine'],
1946
- drawGraph: MultipleLinesMixin.drawGraph,
1947
- getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
1948
- translate: MultipleLinesMixin.translate,
1949
- toYData: MultipleLinesMixin.toYData
2070
+ linesApiNames: ['topLine', 'bottomLine']
1950
2071
  });
2072
+ MultipleLinesComposition.compose(BBIndicator);
1951
2073
  SeriesRegistry.registerSeriesType('bb', BBIndicator);
1952
2074
  /* *
1953
2075
  *
@@ -2390,7 +2512,7 @@
2390
2512
 
2391
2513
  return CMFIndicator;
2392
2514
  });
2393
- _registerModule(_modules, 'Stock/Indicators/DMI/DMIIndicator.js', [_modules['Mixins/MultipleLines.js'], _modules['Core/Color/Palette.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesMixin, palette, SeriesRegistry, U) {
2515
+ _registerModule(_modules, 'Stock/Indicators/DMI/DMIIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
2394
2516
  /* *
2395
2517
  * (c) 2010-2021 Rafal Sebestjanski
2396
2518
  *
@@ -2439,7 +2561,20 @@
2439
2561
  var DMIIndicator = /** @class */ (function (_super) {
2440
2562
  __extends(DMIIndicator, _super);
2441
2563
  function DMIIndicator() {
2442
- return _super !== null && _super.apply(this, arguments) || this;
2564
+ /* *
2565
+ *
2566
+ * Static Properties
2567
+ *
2568
+ * */
2569
+ var _this = _super !== null && _super.apply(this,
2570
+ arguments) || this;
2571
+ /* *
2572
+ *
2573
+ * Properties
2574
+ *
2575
+ * */
2576
+ _this.options = void 0;
2577
+ return _this;
2443
2578
  }
2444
2579
  /* *
2445
2580
  *
@@ -2609,7 +2744,7 @@
2609
2744
  *
2610
2745
  * @type {Highcharts.ColorString}
2611
2746
  */
2612
- lineColor: palette.positiveColor // green-ish
2747
+ lineColor: "#06b535" /* positiveColor */ // green-ish
2613
2748
  }
2614
2749
  },
2615
2750
  /**
@@ -2629,7 +2764,7 @@
2629
2764
  *
2630
2765
  * @type {Highcharts.ColorString}
2631
2766
  */
2632
- lineColor: palette.negativeColor // red-ish
2767
+ lineColor: "#f21313" /* negativeColor */ // red-ish
2633
2768
  }
2634
2769
  },
2635
2770
  dataGrouping: {
@@ -2640,15 +2775,12 @@
2640
2775
  }(SMAIndicator));
2641
2776
  extend(DMIIndicator.prototype, {
2642
2777
  nameBase: 'DMI',
2778
+ linesApiNames: ['plusDILine', 'minusDILine'],
2643
2779
  pointArrayMap: ['y', 'plusDI', 'minusDI'],
2644
2780
  parallelArrays: ['x', 'y', 'plusDI', 'minusDI'],
2645
- pointValKey: 'y',
2646
- linesApiNames: ['plusDILine', 'minusDILine'],
2647
- drawGraph: MultipleLinesMixin.drawGraph,
2648
- getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
2649
- translate: MultipleLinesMixin.translate,
2650
- toYData: MultipleLinesMixin.toYData
2781
+ pointValKey: 'y'
2651
2782
  });
2783
+ MultipleLinesComposition.compose(DMIIndicator);
2652
2784
  SeriesRegistry.registerSeriesType('dmi', DMIIndicator);
2653
2785
  /* *
2654
2786
  *
@@ -2785,261 +2917,82 @@
2785
2917
  periodIndex = j + period - 1;
2786
2918
  rangeIndex = j + range - 1;
2787
2919
  // adding the last period point
2788
- sum = accumulatePoints(sum, yVal, periodIndex, index);
2789
- price = pick(yVal[rangeIndex][index], yVal[rangeIndex]);
2790
- oscillator = price - sum / period;
2791
- // substracting the first period point
2792
- sum = accumulatePoints(sum, yVal, j, index, true);
2793
- DPO.push([xVal[rangeIndex], oscillator]);
2794
- xData.push(xVal[rangeIndex]);
2795
- yData.push(oscillator);
2796
- }
2797
- return {
2798
- values: DPO,
2799
- xData: xData,
2800
- yData: yData
2801
- };
2802
- };
2803
- /**
2804
- * Detrended Price Oscillator. This series requires the `linkedTo` option to
2805
- * be set and should be loaded after the `stock/indicators/indicators.js`.
2806
- *
2807
- * @sample {highstock} stock/indicators/dpo
2808
- * Detrended Price Oscillator
2809
- *
2810
- * @extends plotOptions.sma
2811
- * @since 7.0.0
2812
- * @product highstock
2813
- * @excluding allAreas, colorAxis, compare, compareBase, joinBy, keys,
2814
- * navigatorOptions, pointInterval, pointIntervalUnit,
2815
- * pointPlacement, pointRange, pointStart, showInNavigator,
2816
- * stacking
2817
- * @requires stock/indicators/indicators
2818
- * @requires stock/indicators/dpo
2819
- * @optionparent plotOptions.dpo
2820
- */
2821
- DPOIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
2822
- /**
2823
- * Parameters used in calculation of Detrended Price Oscillator series
2824
- * points.
2825
- */
2826
- params: {
2827
- index: 0,
2828
- /**
2829
- * Period for Detrended Price Oscillator
2830
- */
2831
- period: 21
2832
- }
2833
- });
2834
- return DPOIndicator;
2835
- }(SMAIndicator));
2836
- extend(DPOIndicator.prototype, {
2837
- nameBase: 'DPO'
2838
- });
2839
- SeriesRegistry.registerSeriesType('dpo', DPOIndicator);
2840
- /* *
2841
- *
2842
- * Default Export
2843
- *
2844
- * */
2845
- /**
2846
- * A Detrended Price Oscillator. If the [type](#series.dpo.type) option is not
2847
- * specified, it is inherited from [chart.type](#chart.type).
2848
- *
2849
- * @extends series,plotOptions.dpo
2850
- * @since 7.0.0
2851
- * @product highstock
2852
- * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,
2853
- * joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
2854
- * pointPlacement, pointRange, pointStart, showInNavigator, stacking
2855
- * @requires stock/indicators/indicators
2856
- * @requires stock/indicators/dpo
2857
- * @apioption series.dpo
2858
- */
2859
- ''; // to include the above in the js output'
2860
-
2861
- return DPOIndicator;
2862
- });
2863
- _registerModule(_modules, 'Stock/Indicators/EMA/EMAIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
2864
- /* *
2865
- *
2866
- * License: www.highcharts.com/license
2867
- *
2868
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
2869
- *
2870
- * */
2871
- var __extends = (this && this.__extends) || (function () {
2872
- var extendStatics = function (d,
2873
- b) {
2874
- extendStatics = Object.setPrototypeOf ||
2875
- ({ __proto__: [] } instanceof Array && function (d,
2876
- b) { d.__proto__ = b; }) ||
2877
- function (d,
2878
- b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
2879
- return extendStatics(d, b);
2880
- };
2881
- return function (d, b) {
2882
- extendStatics(d, b);
2883
- function __() { this.constructor = d; }
2884
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2885
- };
2886
- })();
2887
- var SMAIndicator = SeriesRegistry.seriesTypes.sma;
2888
- var correctFloat = U.correctFloat,
2889
- isArray = U.isArray,
2890
- merge = U.merge;
2891
- /* *
2892
- *
2893
- * Class
2894
- *
2895
- * */
2896
- /**
2897
- * The EMA series type.
2898
- *
2899
- * @private
2900
- * @class
2901
- * @name Highcharts.seriesTypes.ema
2902
- *
2903
- * @augments Highcharts.Series
2904
- */
2905
- var EMAIndicator = /** @class */ (function (_super) {
2906
- __extends(EMAIndicator, _super);
2907
- function EMAIndicator() {
2908
- var _this = _super !== null && _super.apply(this,
2909
- arguments) || this;
2910
- /* *
2911
- *
2912
- * Properties
2913
- *
2914
- * */
2915
- _this.data = void 0;
2916
- _this.options = void 0;
2917
- _this.points = void 0;
2918
- return _this;
2919
- }
2920
- /* *
2921
- *
2922
- * Functions
2923
- *
2924
- * */
2925
- EMAIndicator.prototype.accumulatePeriodPoints = function (period, index, yVal) {
2926
- var sum = 0,
2927
- i = 0,
2928
- y = 0;
2929
- while (i < period) {
2930
- y = index < 0 ? yVal[i] : yVal[i][index];
2931
- sum = sum + y;
2932
- i++;
2933
- }
2934
- return sum;
2935
- };
2936
- EMAIndicator.prototype.calculateEma = function (xVal, yVal, i, EMApercent, calEMA, index, SMA) {
2937
- var x = xVal[i - 1],
2938
- yValue = index < 0 ?
2939
- yVal[i - 1] :
2940
- yVal[i - 1][index],
2941
- y;
2942
- y = typeof calEMA === 'undefined' ?
2943
- SMA : correctFloat((yValue * EMApercent) +
2944
- (calEMA * (1 - EMApercent)));
2945
- return [x, y];
2946
- };
2947
- EMAIndicator.prototype.getValues = function (series, params) {
2948
- var period = params.period,
2949
- xVal = series.xData,
2950
- yVal = series.yData,
2951
- yValLen = yVal ? yVal.length : 0,
2952
- EMApercent = 2 / (period + 1),
2953
- sum = 0,
2954
- EMA = [],
2955
- xData = [],
2956
- yData = [],
2957
- index = -1,
2958
- SMA = 0,
2959
- calEMA,
2960
- EMAPoint,
2961
- i;
2962
- // Check period, if bigger than points length, skip
2963
- if (yValLen < period) {
2964
- return;
2965
- }
2966
- // Switch index for OHLC / Candlestick / Arearange
2967
- if (isArray(yVal[0])) {
2968
- index = params.index ? params.index : 0;
2969
- }
2970
- // Accumulate first N-points
2971
- sum = this.accumulatePeriodPoints(period, index, yVal);
2972
- // first point
2973
- SMA = sum / period;
2974
- // Calculate value one-by-one for each period in visible data
2975
- for (i = period; i < yValLen + 1; i++) {
2976
- EMAPoint = this.calculateEma(xVal, yVal, i, EMApercent, calEMA, index, SMA);
2977
- EMA.push(EMAPoint);
2978
- xData.push(EMAPoint[0]);
2979
- yData.push(EMAPoint[1]);
2980
- calEMA = EMAPoint[1];
2920
+ sum = accumulatePoints(sum, yVal, periodIndex, index);
2921
+ price = pick(yVal[rangeIndex][index], yVal[rangeIndex]);
2922
+ oscillator = price - sum / period;
2923
+ // substracting the first period point
2924
+ sum = accumulatePoints(sum, yVal, j, index, true);
2925
+ DPO.push([xVal[rangeIndex], oscillator]);
2926
+ xData.push(xVal[rangeIndex]);
2927
+ yData.push(oscillator);
2981
2928
  }
2982
2929
  return {
2983
- values: EMA,
2930
+ values: DPO,
2984
2931
  xData: xData,
2985
2932
  yData: yData
2986
2933
  };
2987
2934
  };
2988
2935
  /**
2989
- * Exponential moving average indicator (EMA). This series requires the
2990
- * `linkedTo` option to be set.
2936
+ * Detrended Price Oscillator. This series requires the `linkedTo` option to
2937
+ * be set and should be loaded after the `stock/indicators/indicators.js`.
2991
2938
  *
2992
- * @sample stock/indicators/ema
2993
- * Exponential moving average indicator
2939
+ * @sample {highstock} stock/indicators/dpo
2940
+ * Detrended Price Oscillator
2994
2941
  *
2995
2942
  * @extends plotOptions.sma
2996
- * @since 6.0.0
2943
+ * @since 7.0.0
2997
2944
  * @product highstock
2945
+ * @excluding allAreas, colorAxis, compare, compareBase, joinBy, keys,
2946
+ * navigatorOptions, pointInterval, pointIntervalUnit,
2947
+ * pointPlacement, pointRange, pointStart, showInNavigator,
2948
+ * stacking
2998
2949
  * @requires stock/indicators/indicators
2999
- * @requires stock/indicators/ema
3000
- * @optionparent plotOptions.ema
2950
+ * @requires stock/indicators/dpo
2951
+ * @optionparent plotOptions.dpo
3001
2952
  */
3002
- EMAIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
2953
+ DPOIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
2954
+ /**
2955
+ * Parameters used in calculation of Detrended Price Oscillator series
2956
+ * points.
2957
+ */
3003
2958
  params: {
2959
+ index: 0,
3004
2960
  /**
3005
- * The point index which indicator calculations will base. For
3006
- * example using OHLC data, index=2 means the indicator will be
3007
- * calculated using Low values.
3008
- *
3009
- * By default index value used to be set to 0. Since
3010
- * Highcharts Stock 7 by default index is set to 3
3011
- * which means that the ema indicator will be
3012
- * calculated using Close values.
2961
+ * Period for Detrended Price Oscillator
3013
2962
  */
3014
- index: 3,
3015
- period: 9 // @merge 14 in v6.2
2963
+ period: 21
3016
2964
  }
3017
2965
  });
3018
- return EMAIndicator;
2966
+ return DPOIndicator;
3019
2967
  }(SMAIndicator));
3020
- SeriesRegistry.registerSeriesType('ema', EMAIndicator);
2968
+ extend(DPOIndicator.prototype, {
2969
+ nameBase: 'DPO'
2970
+ });
2971
+ SeriesRegistry.registerSeriesType('dpo', DPOIndicator);
3021
2972
  /* *
3022
2973
  *
3023
2974
  * Default Export
3024
2975
  *
3025
2976
  * */
3026
2977
  /**
3027
- * A `EMA` series. If the [type](#series.ema.type) option is not
2978
+ * A Detrended Price Oscillator. If the [type](#series.dpo.type) option is not
3028
2979
  * specified, it is inherited from [chart.type](#chart.type).
3029
2980
  *
3030
- * @extends series,plotOptions.ema
3031
- * @since 6.0.0
2981
+ * @extends series,plotOptions.dpo
2982
+ * @since 7.0.0
3032
2983
  * @product highstock
3033
- * @excluding dataParser, dataURL
2984
+ * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,
2985
+ * joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
2986
+ * pointPlacement, pointRange, pointStart, showInNavigator, stacking
3034
2987
  * @requires stock/indicators/indicators
3035
- * @requires stock/indicators/ema
3036
- * @apioption series.ema
2988
+ * @requires stock/indicators/dpo
2989
+ * @apioption series.dpo
3037
2990
  */
3038
- ''; // adds doclet above to the transpiled file
2991
+ ''; // to include the above in the js output'
3039
2992
 
3040
- return EMAIndicator;
2993
+ return DPOIndicator;
3041
2994
  });
3042
- _registerModule(_modules, 'Stock/Indicators/Chaikin/ChaikinIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, SeriesRegistry, U) {
2995
+ _registerModule(_modules, 'Stock/Indicators/Chaikin/ChaikinIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
3043
2996
  /* *
3044
2997
  *
3045
2998
  * License: www.highcharts.com/license
@@ -3087,6 +3040,11 @@
3087
3040
  var ChaikinIndicator = /** @class */ (function (_super) {
3088
3041
  __extends(ChaikinIndicator, _super);
3089
3042
  function ChaikinIndicator() {
3043
+ /* *
3044
+ *
3045
+ * Static Properties
3046
+ *
3047
+ * */
3090
3048
  var _this = _super !== null && _super.apply(this,
3091
3049
  arguments) || this;
3092
3050
  /* *
@@ -3104,14 +3062,6 @@
3104
3062
  * Functions
3105
3063
  *
3106
3064
  * */
3107
- ChaikinIndicator.prototype.init = function () {
3108
- var args = arguments,
3109
- ctx = this;
3110
- RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
3111
- indicator.prototype.init.apply(ctx, args);
3112
- return;
3113
- });
3114
- };
3115
3065
  ChaikinIndicator.prototype.getValues = function (series, params) {
3116
3066
  var periods = params.periods,
3117
3067
  period = params.period,
@@ -3168,8 +3118,7 @@
3168
3118
  };
3169
3119
  /**
3170
3120
  * Chaikin Oscillator. This series requires the `linkedTo` option to
3171
- * be set and should be loaded after the `stock/indicators/indicators.js`
3172
- * and `stock/indicators/ema.js`.
3121
+ * be set and should be loaded after the `stock/indicators/indicators.js`.
3173
3122
  *
3174
3123
  * @sample {highstock} stock/indicators/chaikin
3175
3124
  * Chaikin Oscillator
@@ -3181,7 +3130,6 @@
3181
3130
  * pointInterval, pointIntervalUnit, pointPlacement,
3182
3131
  * pointRange, pointStart, showInNavigator, stacking
3183
3132
  * @requires stock/indicators/indicators
3184
- * @requires stock/indicators/ema
3185
3133
  * @requires stock/indicators/chaikin
3186
3134
  * @optionparent plotOptions.chaikin
3187
3135
  */
@@ -3238,7 +3186,6 @@
3238
3186
  * navigatorOptions, pointInterval, pointIntervalUnit,
3239
3187
  * pointPlacement, pointRange, pointStart, stacking, showInNavigator
3240
3188
  * @requires stock/indicators/indicators
3241
- * @requires stock/indicators/ema
3242
3189
  * @requires stock/indicators/chaikin
3243
3190
  * @apioption series.chaikin
3244
3191
  */
@@ -3428,7 +3375,7 @@
3428
3375
 
3429
3376
  return CMOIndicator;
3430
3377
  });
3431
- _registerModule(_modules, 'Stock/Indicators/DEMA/DEMAIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, SeriesRegistry, U) {
3378
+ _registerModule(_modules, 'Stock/Indicators/DEMA/DEMAIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
3432
3379
  /* *
3433
3380
  *
3434
3381
  * License: www.highcharts.com/license
@@ -3476,14 +3423,6 @@
3476
3423
  _this.points = void 0;
3477
3424
  return _this;
3478
3425
  }
3479
- DEMAIndicator.prototype.init = function () {
3480
- var args = arguments,
3481
- ctx = this;
3482
- RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
3483
- indicator.prototype.init.apply(ctx, args);
3484
- return;
3485
- });
3486
- };
3487
3426
  DEMAIndicator.prototype.getEMA = function (yVal, prevEMA, SMA, index, i, xVal) {
3488
3427
  return EMAIndicator.prototype.calculateEma(xVal || [], yVal, typeof i === 'undefined' ? 1 : i, this.EMApercent, prevEMA, typeof index === 'undefined' ? -1 : index, SMA);
3489
3428
  };
@@ -3562,7 +3501,7 @@
3562
3501
  /**
3563
3502
  * Double exponential moving average (DEMA) indicator. This series requires
3564
3503
  * `linkedTo` option to be set and should be loaded after the
3565
- * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
3504
+ * `stock/indicators/indicators.js`.
3566
3505
  *
3567
3506
  * @sample {highstock} stock/indicators/dema
3568
3507
  * DEMA indicator
@@ -3575,7 +3514,6 @@
3575
3514
  * pointPlacement, pointRange, pointStart, showInNavigator,
3576
3515
  * stacking
3577
3516
  * @requires stock/indicators/indicators
3578
- * @requires stock/indicators/ema
3579
3517
  * @requires stock/indicators/dema
3580
3518
  * @optionparent plotOptions.dema
3581
3519
  */
@@ -3599,7 +3537,6 @@
3599
3537
  * joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
3600
3538
  * pointPlacement, pointRange, pointStart, showInNavigator, stacking
3601
3539
  * @requires stock/indicators/indicators
3602
- * @requires stock/indicators/ema
3603
3540
  * @requires stock/indicators/dema
3604
3541
  * @apioption series.dema
3605
3542
  */
@@ -3607,7 +3544,7 @@
3607
3544
 
3608
3545
  return DEMAIndicator;
3609
3546
  });
3610
- _registerModule(_modules, 'Stock/Indicators/TEMA/TEMAIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, SeriesRegistry, U) {
3547
+ _registerModule(_modules, 'Stock/Indicators/TEMA/TEMAIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
3611
3548
  /* *
3612
3549
  *
3613
3550
  * License: www.highcharts.com/license
@@ -3635,6 +3572,11 @@
3635
3572
  var correctFloat = U.correctFloat,
3636
3573
  isArray = U.isArray,
3637
3574
  merge = U.merge;
3575
+ /* *
3576
+ *
3577
+ * Class
3578
+ *
3579
+ * */
3638
3580
  /**
3639
3581
  * The TEMA series type.
3640
3582
  *
@@ -3647,22 +3589,29 @@
3647
3589
  var TEMAIndicator = /** @class */ (function (_super) {
3648
3590
  __extends(TEMAIndicator, _super);
3649
3591
  function TEMAIndicator() {
3592
+ /* *
3593
+ *
3594
+ * Static Properties
3595
+ *
3596
+ * */
3650
3597
  var _this = _super !== null && _super.apply(this,
3651
3598
  arguments) || this;
3599
+ /* *
3600
+ *
3601
+ * Properties
3602
+ *
3603
+ * */
3652
3604
  _this.EMApercent = void 0;
3653
3605
  _this.data = void 0;
3654
3606
  _this.options = void 0;
3655
3607
  _this.points = void 0;
3656
3608
  return _this;
3657
3609
  }
3658
- TEMAIndicator.prototype.init = function () {
3659
- var args = arguments,
3660
- ctx = this;
3661
- RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
3662
- indicator.prototype.init.apply(ctx, args);
3663
- return;
3664
- });
3665
- };
3610
+ /* *
3611
+ *
3612
+ * Functions
3613
+ *
3614
+ * */
3666
3615
  TEMAIndicator.prototype.getEMA = function (yVal, prevEMA, SMA, index, i, xVal) {
3667
3616
  return EMAIndicator.prototype.calculateEma(xVal || [], yVal, typeof i === 'undefined' ? 1 : i, this.EMApercent, prevEMA, typeof index === 'undefined' ? -1 : index, SMA);
3668
3617
  };
@@ -3776,7 +3725,7 @@
3776
3725
  /**
3777
3726
  * Triple exponential moving average (TEMA) indicator. This series requires
3778
3727
  * `linkedTo` option to be set and should be loaded after the
3779
- * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
3728
+ * `stock/indicators/indicators.js`.
3780
3729
  *
3781
3730
  * @sample {highstock} stock/indicators/tema
3782
3731
  * TEMA indicator
@@ -3789,7 +3738,6 @@
3789
3738
  * pointPlacement, pointRange, pointStart, showInNavigator,
3790
3739
  * stacking
3791
3740
  * @requires stock/indicators/indicators
3792
- * @requires stock/indicators/ema
3793
3741
  * @requires stock/indicators/tema
3794
3742
  * @optionparent plotOptions.tema
3795
3743
  */
@@ -3802,6 +3750,11 @@
3802
3750
  * Default Export
3803
3751
  *
3804
3752
  * */
3753
+ /* *
3754
+ *
3755
+ * API Options
3756
+ *
3757
+ * */
3805
3758
  /**
3806
3759
  * A `TEMA` series. If the [type](#series.tema.type) option is not
3807
3760
  * specified, it is inherited from [chart.type](#chart.type).
@@ -3813,7 +3766,6 @@
3813
3766
  * joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
3814
3767
  * pointPlacement, pointRange, pointStart, showInNavigator, stacking
3815
3768
  * @requires stock/indicators/indicators
3816
- * @requires stock/indicators/ema
3817
3769
  * @requires stock/indicators/tema
3818
3770
  * @apioption series.tema
3819
3771
  */
@@ -3821,7 +3773,7 @@
3821
3773
 
3822
3774
  return TEMAIndicator;
3823
3775
  });
3824
- _registerModule(_modules, 'Stock/Indicators/TRIX/TRIXIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, SeriesRegistry, U) {
3776
+ _registerModule(_modules, 'Stock/Indicators/TRIX/TRIXIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
3825
3777
  /* *
3826
3778
  *
3827
3779
  * License: www.highcharts.com/license
@@ -3867,14 +3819,6 @@
3867
3819
  _this.points = void 0;
3868
3820
  return _this;
3869
3821
  }
3870
- TRIXIndicator.prototype.init = function () {
3871
- var args = arguments,
3872
- ctx = this;
3873
- RequiredIndicatorMixin.isParentLoaded(SeriesRegistry.seriesTypes.tema, 'tema', ctx.type, function (indicator) {
3874
- indicator.prototype.init.apply(ctx, args);
3875
- return;
3876
- });
3877
- };
3878
3822
  // TRIX is calculated using TEMA so we just extend getTemaPoint method.
3879
3823
  TRIXIndicator.prototype.getTemaPoint = function (xVal, tripledPeriod, EMAlevels, i) {
3880
3824
  if (i > tripledPeriod) {
@@ -3890,11 +3834,8 @@
3890
3834
  * Triple exponential average (TRIX) oscillator. This series requires
3891
3835
  * `linkedTo` option to be set.
3892
3836
  *
3893
- * Requires https://code.highcharts.com/stock/indicators/ema.js
3894
- * and https://code.highcharts.com/stock/indicators/tema.js.
3895
- *
3896
3837
  * @sample {highstock} stock/indicators/trix
3897
- * TRIX indicator
3838
+ * TRIX indicator
3898
3839
  *
3899
3840
  * @extends plotOptions.tema
3900
3841
  * @since 7.0.0
@@ -3903,6 +3844,9 @@
3903
3844
  * navigatorOptions, pointInterval, pointIntervalUnit,
3904
3845
  * pointPlacement, pointRange, pointStart, showInNavigator,
3905
3846
  * stacking
3847
+ * @requires stock/indicators/indicators
3848
+ * @requires stock/indicators/tema
3849
+ * @requires stock/indicators/trix
3906
3850
  * @optionparent plotOptions.trix
3907
3851
  */
3908
3852
  TRIXIndicator.defaultOptions = merge(TEMAIndicator.defaultOptions);
@@ -3924,13 +3868,15 @@
3924
3868
  * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,
3925
3869
  * joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,
3926
3870
  * pointPlacement, pointRange, pointStart, showInNavigator, stacking
3871
+ * @requires stock/indicators/indicators
3872
+ * @requires stock/indicators/tema
3927
3873
  * @apioption series.trix
3928
3874
  */
3929
3875
  ''; // to include the above in the js output
3930
3876
 
3931
3877
  return TRIXIndicator;
3932
3878
  });
3933
- _registerModule(_modules, 'Stock/Indicators/APO/APOIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, SeriesRegistry, U) {
3879
+ _registerModule(_modules, 'Stock/Indicators/APO/APOIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
3934
3880
  /* *
3935
3881
  *
3936
3882
  * License: www.highcharts.com/license
@@ -3975,23 +3921,28 @@
3975
3921
  var APOIndicator = /** @class */ (function (_super) {
3976
3922
  __extends(APOIndicator, _super);
3977
3923
  function APOIndicator() {
3924
+ /* *
3925
+ *
3926
+ * Static Properties
3927
+ *
3928
+ * */
3978
3929
  var _this = _super !== null && _super.apply(this,
3979
3930
  arguments) || this;
3980
3931
  /* *
3981
- *
3982
- * Properties
3983
- *
3984
- * */
3932
+ *
3933
+ * Properties
3934
+ *
3935
+ * */
3985
3936
  _this.data = void 0;
3986
3937
  _this.options = void 0;
3987
3938
  _this.points = void 0;
3988
3939
  return _this;
3989
3940
  }
3990
3941
  /* *
3991
- *
3992
- * Functions
3993
- *
3994
- * */
3942
+ *
3943
+ * Functions
3944
+ *
3945
+ * */
3995
3946
  APOIndicator.prototype.getValues = function (series, params) {
3996
3947
  var periods = params.periods,
3997
3948
  index = params.index,
@@ -4038,18 +3989,9 @@
4038
3989
  yData: yData
4039
3990
  };
4040
3991
  };
4041
- APOIndicator.prototype.init = function () {
4042
- var args = arguments,
4043
- ctx = this;
4044
- RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
4045
- indicator.prototype.init.apply(ctx, args);
4046
- return;
4047
- });
4048
- };
4049
3992
  /**
4050
3993
  * Absolute Price Oscillator. This series requires the `linkedTo` option to
4051
- * be set and should be loaded after the `stock/indicators/indicators.js`
4052
- * and `stock/indicators/ema.js`.
3994
+ * be set and should be loaded after the `stock/indicators/indicators.js`.
4053
3995
  *
4054
3996
  * @sample {highstock} stock/indicators/apo
4055
3997
  * Absolute Price Oscillator
@@ -4061,7 +4003,6 @@
4061
4003
  * pointInterval, pointIntervalUnit, pointPlacement,
4062
4004
  * pointRange, pointStart, showInNavigator, stacking
4063
4005
  * @requires stock/indicators/indicators
4064
- * @requires stock/indicators/ema
4065
4006
  * @requires stock/indicators/apo
4066
4007
  * @optionparent plotOptions.apo
4067
4008
  */
@@ -4107,7 +4048,6 @@
4107
4048
  * navigatorOptions, pointInterval, pointIntervalUnit,
4108
4049
  * pointPlacement, pointRange, pointStart, showInNavigator, stacking
4109
4050
  * @requires stock/indicators/indicators
4110
- * @requires stock/indicators/ema
4111
4051
  * @requires stock/indicators/apo
4112
4052
  * @apioption series.apo
4113
4053
  */
@@ -4868,7 +4808,7 @@
4868
4808
 
4869
4809
  return IKHIndicator;
4870
4810
  });
4871
- _registerModule(_modules, 'Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js', [_modules['Mixins/MultipleLines.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesMixin, SeriesRegistry, U) {
4811
+ _registerModule(_modules, 'Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
4872
4812
  /* *
4873
4813
  *
4874
4814
  * License: www.highcharts.com/license
@@ -4892,10 +4832,7 @@
4892
4832
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
4893
4833
  };
4894
4834
  })();
4895
- var _a = SeriesRegistry.seriesTypes,
4896
- SMAIndicator = _a.sma,
4897
- EMAIndicator = _a.ema,
4898
- ATRIndicator = _a.atr;
4835
+ var SMAIndicator = SeriesRegistry.seriesTypes.sma;
4899
4836
  var correctFloat = U.correctFloat,
4900
4837
  extend = U.extend,
4901
4838
  merge = U.merge;
@@ -5002,6 +4939,12 @@
5002
4939
  */
5003
4940
  KeltnerChannelsIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
5004
4941
  params: {
4942
+ /**
4943
+ * The point index which indicator calculations will base. For
4944
+ * example using OHLC data, index=2 means the indicator will be
4945
+ * calculated using Low values.
4946
+ */
4947
+ index: 0,
5005
4948
  period: 20,
5006
4949
  /**
5007
4950
  * The ATR period.
@@ -5058,17 +5001,13 @@
5058
5001
  return KeltnerChannelsIndicator;
5059
5002
  }(SMAIndicator));
5060
5003
  extend(KeltnerChannelsIndicator.prototype, {
5061
- pointArrayMap: ['top', 'middle', 'bottom'],
5062
- pointValKey: 'middle',
5063
5004
  nameBase: 'Keltner Channels',
5064
5005
  nameComponents: ['period', 'periodATR', 'multiplierATR'],
5065
5006
  linesApiNames: ['topLine', 'bottomLine'],
5066
- requiredIndicators: ['ema', 'atr'],
5067
- drawGraph: MultipleLinesMixin.drawGraph,
5068
- getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
5069
- translate: MultipleLinesMixin.translate,
5070
- toYData: MultipleLinesMixin.toYData
5007
+ pointArrayMap: ['top', 'middle', 'bottom'],
5008
+ pointValKey: 'middle'
5071
5009
  });
5010
+ MultipleLinesComposition.compose(KeltnerChannelsIndicator);
5072
5011
  SeriesRegistry.registerSeriesType('keltnerchannels', KeltnerChannelsIndicator);
5073
5012
  /* *
5074
5013
  *
@@ -5094,7 +5033,7 @@
5094
5033
 
5095
5034
  return KeltnerChannelsIndicator;
5096
5035
  });
5097
- _registerModule(_modules, 'Stock/Indicators/Klinger/KlingerIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Mixins/MultipleLines.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, MultipleLinesMixin, SeriesRegistry, U) {
5036
+ _registerModule(_modules, 'Stock/Indicators/Klinger/KlingerIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
5098
5037
  /* *
5099
5038
  *
5100
5039
  * License: www.highcharts.com/license
@@ -5138,6 +5077,11 @@
5138
5077
  var KlingerIndicator = /** @class */ (function (_super) {
5139
5078
  __extends(KlingerIndicator, _super);
5140
5079
  function KlingerIndicator() {
5080
+ /* *
5081
+ *
5082
+ * Static Properties
5083
+ *
5084
+ * */
5141
5085
  var _this = _super !== null && _super.apply(this,
5142
5086
  arguments) || this;
5143
5087
  /* *
@@ -5156,15 +5100,6 @@
5156
5100
  * Functions
5157
5101
  *
5158
5102
  * */
5159
- KlingerIndicator.prototype.init = function () {
5160
- var args = arguments,
5161
- ctx = this;
5162
- // Check if the EMA module is added.
5163
- RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
5164
- indicator.prototype.init.apply(ctx, args);
5165
- return;
5166
- });
5167
- };
5168
5103
  KlingerIndicator.prototype.calculateTrend = function (yVal, i) {
5169
5104
  var isUpward = yVal[i][1] + yVal[i][2] + yVal[i][3] >
5170
5105
  yVal[i - 1][1] + yVal[i - 1][2] + yVal[i - 1][3];
@@ -5370,12 +5305,9 @@
5370
5305
  nameComponents: ['fastAvgPeriod', 'slowAvgPeriod'],
5371
5306
  pointArrayMap: ['y', 'signal'],
5372
5307
  parallelArrays: ['x', 'y', 'signal'],
5373
- pointValKey: 'y',
5374
- drawGraph: MultipleLinesMixin.drawGraph,
5375
- getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
5376
- translate: MultipleLinesMixin.translate,
5377
- toYData: MultipleLinesMixin.toYData
5308
+ pointValKey: 'y'
5378
5309
  });
5310
+ MultipleLinesComposition.compose(KlingerIndicator);
5379
5311
  SeriesRegistry.registerSeriesType('klinger', KlingerIndicator);
5380
5312
  /* *
5381
5313
  *
@@ -5390,7 +5322,6 @@
5390
5322
  * @since 9.1.0
5391
5323
  * @product highstock
5392
5324
  * @requires stock/indicators/indicators
5393
- * @requires stock/indicators/ema
5394
5325
  * @requires stock/indicators/klinger
5395
5326
  * @apioption series.klinger
5396
5327
  */
@@ -5688,7 +5619,7 @@
5688
5619
  /**
5689
5620
  * Moving Average Convergence Divergence (MACD). This series requires
5690
5621
  * `linkedTo` option to be set and should be loaded after the
5691
- * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
5622
+ * `stock/indicators/indicators.js`.
5692
5623
  *
5693
5624
  * @sample stock/indicators/macd
5694
5625
  * MACD indicator
@@ -5793,7 +5724,6 @@
5793
5724
  }(SMAIndicator));
5794
5725
  extend(MACDIndicator.prototype, {
5795
5726
  nameComponents: ['longPeriod', 'shortPeriod', 'signalPeriod'],
5796
- requiredIndicators: ['ema'],
5797
5727
  // "y" value is treated as Histogram data
5798
5728
  pointArrayMap: ['y', 'signal', 'MACD'],
5799
5729
  parallelArrays: ['x', 'y', 'signal', 'MACD'],
@@ -6287,9 +6217,6 @@
6287
6217
  });
6288
6218
  return NATRIndicator;
6289
6219
  }(ATRIndicator));
6290
- extend(NATRIndicator.prototype, {
6291
- requiredIndicators: ['atr']
6292
- });
6293
6220
  SeriesRegistry.registerSeriesType('natr', NATRIndicator);
6294
6221
  /* *
6295
6222
  *
@@ -6305,6 +6232,7 @@
6305
6232
  * @product highstock
6306
6233
  * @excluding dataParser, dataURL
6307
6234
  * @requires stock/indicators/indicators
6235
+ * @requires stock/indicators/atr
6308
6236
  * @requires stock/indicators/natr
6309
6237
  * @apioption series.natr
6310
6238
  */
@@ -6943,7 +6871,7 @@
6943
6871
 
6944
6872
  return PivotPointsIndicator;
6945
6873
  });
6946
- _registerModule(_modules, 'Stock/Indicators/PPO/PPOIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, SeriesRegistry, U) {
6874
+ _registerModule(_modules, 'Stock/Indicators/PPO/PPOIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
6947
6875
  /* *
6948
6876
  *
6949
6877
  * License: www.highcharts.com/license
@@ -7006,14 +6934,6 @@
7006
6934
  * Functions
7007
6935
  *
7008
6936
  * */
7009
- PPOIndicator.prototype.init = function () {
7010
- var args = arguments,
7011
- ctx = this;
7012
- RequiredIndicatorMixin.isParentLoaded(EMAIndicator, 'ema', ctx.type, function (indicator) {
7013
- indicator.prototype.init.apply(ctx, args);
7014
- return;
7015
- });
7016
- };
7017
6937
  PPOIndicator.prototype.getValues = function (series, params) {
7018
6938
  var periods = params.periods,
7019
6939
  index = params.index,
@@ -7065,7 +6985,7 @@
7065
6985
  /**
7066
6986
  * Percentage Price Oscillator. This series requires the
7067
6987
  * `linkedTo` option to be set and should be loaded after the
7068
- * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
6988
+ * `stock/indicators/indicators.js`.
7069
6989
  *
7070
6990
  * @sample {highstock} stock/indicators/ppo
7071
6991
  * Percentage Price Oscillator
@@ -7077,7 +6997,6 @@
7077
6997
  * pointInterval, pointIntervalUnit, pointPlacement,
7078
6998
  * pointRange, pointStart, showInNavigator, stacking
7079
6999
  * @requires stock/indicators/indicators
7080
- * @requires stock/indicators/ema
7081
7000
  * @requires stock/indicators/ppo
7082
7001
  * @optionparent plotOptions.ppo
7083
7002
  */
@@ -7122,7 +7041,6 @@
7122
7041
  * navigatorOptions, pointInterval, pointIntervalUnit,
7123
7042
  * pointPlacement, pointRange, pointStart, showInNavigator, stacking
7124
7043
  * @requires stock/indicators/indicators
7125
- * @requires stock/indicators/ema
7126
7044
  * @requires stock/indicators/ppo
7127
7045
  * @apioption series.ppo
7128
7046
  */
@@ -7130,7 +7048,7 @@
7130
7048
 
7131
7049
  return PPOIndicator;
7132
7050
  });
7133
- _registerModule(_modules, 'Mixins/ReduceArray.js', [], function () {
7051
+ _registerModule(_modules, 'Stock/Indicators/ArrayUtilities.js', [], function () {
7134
7052
  /**
7135
7053
  *
7136
7054
  * (c) 2010-2021 Pawel Fus & Daniel Studencki
@@ -7140,55 +7058,46 @@
7140
7058
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
7141
7059
  *
7142
7060
  * */
7143
- var reduceArrayMixin = {
7144
- /**
7145
- * Get min value of array filled by OHLC data.
7146
- * @private
7147
- * @param {Array<*>} arr Array of OHLC points (arrays).
7148
- * @param {string} index Index of "low" value in point array.
7149
- * @return {number} Returns min value.
7150
- */
7151
- minInArray: function (arr,
7152
- index) {
7153
- return arr.reduce(function (min,
7154
- target) {
7155
- return Math.min(min,
7156
- target[index]);
7157
- }, Number.MAX_VALUE);
7158
- },
7159
- /**
7160
- * Get max value of array filled by OHLC data.
7161
- * @private
7162
- * @param {Array<*>} arr Array of OHLC points (arrays).
7163
- * @param {string} index Index of "high" value in point array.
7164
- * @return {number} Returns max value.
7165
- */
7166
- maxInArray: function (arr, index) {
7167
- return arr.reduce(function (max, target) {
7168
- return Math.max(max, target[index]);
7169
- }, -Number.MAX_VALUE);
7170
- },
7171
- /**
7172
- * Get extremes of array filled by OHLC data.
7173
- * @private
7174
- * @param {Array<*>} arr Array of OHLC points (arrays).
7175
- * @param {string} minIndex Index of "low" value in point array.
7176
- * @param {string} maxIndex Index of "high" value in point array.
7177
- * @return {Array<number,number>} Returns array with min and max value.
7178
- */
7179
- getArrayExtremes: function (arr, minIndex, maxIndex) {
7180
- return arr.reduce(function (prev, target) {
7181
- return [
7182
- Math.min(prev[0], target[minIndex]),
7183
- Math.max(prev[1], target[maxIndex])
7184
- ];
7185
- }, [Number.MAX_VALUE, -Number.MAX_VALUE]);
7186
- }
7187
- };
7061
+ /* *
7062
+ *
7063
+ * Functions
7064
+ *
7065
+ * */
7066
+ /**
7067
+ * Get extremes of array filled by OHLC data.
7068
+ *
7069
+ * @private
7070
+ *
7071
+ * @param {Array<Array<number>>} arr
7072
+ * Array of OHLC points (arrays).
7073
+ *
7074
+ * @param {number} minIndex
7075
+ * Index of "low" value in point array.
7076
+ *
7077
+ * @param {number} maxIndex
7078
+ * Index of "high" value in point array.
7079
+ *
7080
+ * @return {Array<number,number>}
7081
+ * Returns array with min and max value.
7082
+ */
7083
+ function getArrayExtremes(arr, minIndex, maxIndex) {
7084
+ return arr.reduce(function (prev, target) { return [
7085
+ Math.min(prev[0], target[minIndex]),
7086
+ Math.max(prev[1], target[maxIndex])
7087
+ ]; }, [Number.MAX_VALUE, -Number.MAX_VALUE]);
7088
+ }
7089
+ /* *
7090
+ *
7091
+ * Default Export
7092
+ *
7093
+ * */
7094
+ var ArrayUtilities = {
7095
+ getArrayExtremes: getArrayExtremes
7096
+ };
7188
7097
 
7189
- return reduceArrayMixin;
7098
+ return ArrayUtilities;
7190
7099
  });
7191
- _registerModule(_modules, 'Stock/Indicators/PC/PCIndicator.js', [_modules['Core/Color/Palette.js'], _modules['Mixins/MultipleLines.js'], _modules['Mixins/ReduceArray.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (palette, MultipleLinesMixin, ReduceArrayMixin, SeriesRegistry, U) {
7100
+ _registerModule(_modules, 'Stock/Indicators/PC/PCIndicator.js', [_modules['Stock/Indicators/ArrayUtilities.js'], _modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Color/Palettes.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AU, MultipleLinesComposition, Palettes, SeriesRegistry, U) {
7192
7101
  /* *
7193
7102
  *
7194
7103
  * License: www.highcharts.com/license
@@ -7215,7 +7124,6 @@
7215
7124
  var SMAIndicator = SeriesRegistry.seriesTypes.sma;
7216
7125
  var merge = U.merge,
7217
7126
  extend = U.extend;
7218
- var getArrayExtremes = ReduceArrayMixin.getArrayExtremes;
7219
7127
  /* *
7220
7128
  *
7221
7129
  * Class
@@ -7233,6 +7141,11 @@
7233
7141
  var PCIndicator = /** @class */ (function (_super) {
7234
7142
  __extends(PCIndicator, _super);
7235
7143
  function PCIndicator() {
7144
+ /* *
7145
+ *
7146
+ * Static Properties
7147
+ *
7148
+ * */
7236
7149
  var _this = _super !== null && _super.apply(this,
7237
7150
  arguments) || this;
7238
7151
  /* *
@@ -7275,7 +7188,7 @@
7275
7188
  for (i = period; i <= yValLen; i++) {
7276
7189
  date = xVal[i - 1];
7277
7190
  slicedY = yVal.slice(i - period, i);
7278
- extremes = getArrayExtremes(slicedY, low, high);
7191
+ extremes = AU.getArrayExtremes(slicedY, low, high);
7279
7192
  TL = extremes[1];
7280
7193
  BL = extremes[0];
7281
7194
  ML = (TL + BL) / 2;
@@ -7324,7 +7237,7 @@
7324
7237
  *
7325
7238
  * @type {Highcharts.ColorString}
7326
7239
  */
7327
- lineColor: palette.colors[2],
7240
+ lineColor: Palettes.colors[2],
7328
7241
  /**
7329
7242
  * Pixel width of the line.
7330
7243
  */
@@ -7339,7 +7252,7 @@
7339
7252
  *
7340
7253
  * @type {Highcharts.ColorString}
7341
7254
  */
7342
- lineColor: palette.colors[8],
7255
+ lineColor: Palettes.colors[8],
7343
7256
  /**
7344
7257
  * Pixel width of the line.
7345
7258
  */
@@ -7353,16 +7266,13 @@
7353
7266
  return PCIndicator;
7354
7267
  }(SMAIndicator));
7355
7268
  extend(PCIndicator.prototype, {
7356
- getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
7357
- drawGraph: MultipleLinesMixin.drawGraph,
7358
- toYData: MultipleLinesMixin.toYData,
7359
- pointArrayMap: ['top', 'middle', 'bottom'],
7360
- pointValKey: 'middle',
7361
7269
  nameBase: 'Price Channel',
7362
7270
  nameComponents: ['period'],
7363
7271
  linesApiNames: ['topLine', 'bottomLine'],
7364
- translate: MultipleLinesMixin.translate
7272
+ pointArrayMap: ['top', 'middle', 'bottom'],
7273
+ pointValKey: 'middle'
7365
7274
  });
7275
+ MultipleLinesComposition.compose(PCIndicator);
7366
7276
  SeriesRegistry.registerSeriesType('pc', PCIndicator);
7367
7277
  /* *
7368
7278
  *
@@ -8346,7 +8256,7 @@
8346
8256
 
8347
8257
  return RSIIndicator;
8348
8258
  });
8349
- _registerModule(_modules, 'Stock/Indicators/Stochastic/StochasticIndicator.js', [_modules['Mixins/MultipleLines.js'], _modules['Mixins/ReduceArray.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesMixin, ReduceArrayMixin, SeriesRegistry, U) {
8259
+ _registerModule(_modules, 'Stock/Indicators/Stochastic/StochasticIndicator.js', [_modules['Stock/Indicators/ArrayUtilities.js'], _modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AU, MultipleLinesComposition, SeriesRegistry, U) {
8350
8260
  /* *
8351
8261
  *
8352
8262
  * License: www.highcharts.com/license
@@ -8374,6 +8284,11 @@
8374
8284
  var extend = U.extend,
8375
8285
  isArray = U.isArray,
8376
8286
  merge = U.merge;
8287
+ /* *
8288
+ *
8289
+ * Class
8290
+ *
8291
+ * */
8377
8292
  /**
8378
8293
  * The Stochastic series type.
8379
8294
  *
@@ -8386,6 +8301,11 @@
8386
8301
  var StochasticIndicator = /** @class */ (function (_super) {
8387
8302
  __extends(StochasticIndicator, _super);
8388
8303
  function StochasticIndicator() {
8304
+ /* *
8305
+ *
8306
+ * Static Properties
8307
+ *
8308
+ * */
8389
8309
  var _this = _super !== null && _super.apply(this,
8390
8310
  arguments) || this;
8391
8311
  _this.data = void 0;
@@ -8438,7 +8358,7 @@
8438
8358
  for (i = periodK - 1; i < yValLen; i++) {
8439
8359
  slicedY = yVal.slice(i - periodK + 1, i + 1);
8440
8360
  // Calculate %K
8441
- extremes = ReduceArrayMixin.getArrayExtremes(slicedY, low, high);
8361
+ extremes = AU.getArrayExtremes(slicedY, low, high);
8442
8362
  LL = extremes[0]; // Lowest low in %K periods
8443
8363
  CL = yVal[i][close] - LL;
8444
8364
  HL = extremes[1] - LL;
@@ -8537,12 +8457,9 @@
8537
8457
  pointArrayMap: ['y', 'smoothed'],
8538
8458
  parallelArrays: ['x', 'y', 'smoothed'],
8539
8459
  pointValKey: 'y',
8540
- linesApiNames: ['smoothedLine'],
8541
- drawGraph: MultipleLinesMixin.drawGraph,
8542
- getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
8543
- translate: MultipleLinesMixin.translate,
8544
- toYData: MultipleLinesMixin.toYData
8460
+ linesApiNames: ['smoothedLine']
8545
8461
  });
8462
+ MultipleLinesComposition.compose(StochasticIndicator);
8546
8463
  SeriesRegistry.registerSeriesType('stochastic', StochasticIndicator);
8547
8464
  /* *
8548
8465
  *
@@ -8567,7 +8484,7 @@
8567
8484
 
8568
8485
  return StochasticIndicator;
8569
8486
  });
8570
- _registerModule(_modules, 'Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, SeriesRegistry, U) {
8487
+ _registerModule(_modules, 'Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
8571
8488
  /* *
8572
8489
  *
8573
8490
  * License: www.highcharts.com/license
@@ -8614,14 +8531,6 @@
8614
8531
  _this.points = void 0;
8615
8532
  return _this;
8616
8533
  }
8617
- SlowStochasticIndicator.prototype.init = function () {
8618
- var args = arguments,
8619
- ctx = this;
8620
- RequiredIndicatorMixin.isParentLoaded(seriesTypes.stochastic, 'stochastic', ctx.type, function (indicator) {
8621
- indicator.prototype.init.apply(ctx, args);
8622
- return;
8623
- });
8624
- };
8625
8534
  SlowStochasticIndicator.prototype.getValues = function (series, params) {
8626
8535
  var periods = params.periods,
8627
8536
  fastValues = seriesTypes.stochastic.prototype.getValues.call(this,
@@ -8718,7 +8627,7 @@
8718
8627
 
8719
8628
  return SlowStochasticIndicator;
8720
8629
  });
8721
- _registerModule(_modules, 'Stock/Indicators/Supertrend/SupertrendIndicator.js', [_modules['Core/Color/Palette.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js'], _modules['Core/Chart/StockChart.js']], function (palette, SeriesRegistry, U, StockChart) {
8630
+ _registerModule(_modules, 'Stock/Indicators/Supertrend/SupertrendIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js'], _modules['Core/Chart/StockChart.js']], function (SeriesRegistry, U, StockChart) {
8722
8631
  /* *
8723
8632
  *
8724
8633
  * License: www.highcharts.com/license
@@ -9169,7 +9078,7 @@
9169
9078
  *
9170
9079
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
9171
9080
  */
9172
- risingTrendColor: palette.positiveColor,
9081
+ risingTrendColor: "#06b535" /* positiveColor */,
9173
9082
  /**
9174
9083
  * Color of the Supertrend series line that is above the main series.
9175
9084
  *
@@ -9178,7 +9087,7 @@
9178
9087
  *
9179
9088
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
9180
9089
  */
9181
- fallingTrendColor: palette.negativeColor,
9090
+ fallingTrendColor: "#f21313" /* negativeColor */,
9182
9091
  /**
9183
9092
  * The styles for the Supertrend line that intersect main series.
9184
9093
  *
@@ -9196,7 +9105,7 @@
9196
9105
  *
9197
9106
  * @type {Highcharts.ColorString}
9198
9107
  */
9199
- lineColor: palette.neutralColor80,
9108
+ lineColor: "#333333" /* neutralColor80 */,
9200
9109
  /**
9201
9110
  * The dash or dot style of the grid lines. For possible
9202
9111
  * values, see
@@ -9218,8 +9127,7 @@
9218
9127
  }(SMAIndicator));
9219
9128
  extend(SupertrendIndicator.prototype, {
9220
9129
  nameBase: 'Supertrend',
9221
- nameComponents: ['multiplier', 'period'],
9222
- requiredIndicators: ['atr']
9130
+ nameComponents: ['multiplier', 'period']
9223
9131
  });
9224
9132
  SeriesRegistry.registerSeriesType('supertrend', SupertrendIndicator);
9225
9133
  /* *
@@ -9334,6 +9242,7 @@
9334
9242
  arrayMax = U.arrayMax,
9335
9243
  arrayMin = U.arrayMin,
9336
9244
  correctFloat = U.correctFloat,
9245
+ defined = U.defined,
9337
9246
  error = U.error,
9338
9247
  extend = U.extend,
9339
9248
  isArray = U.isArray,
@@ -9641,7 +9550,15 @@
9641
9550
  j = 1,
9642
9551
  rangeStep,
9643
9552
  zoneStartsLength;
9644
- if (!lowRange || !highRange) {
9553
+ // If the compare mode is set on the main series, change the VBP
9554
+ // zones to fit new extremes, #16277.
9555
+ var mainSeries = indicator.linkedParent;
9556
+ if (!indicator.options.compareToMain &&
9557
+ mainSeries.dataModify) {
9558
+ lowRange = mainSeries.dataModify.modifyValue(lowRange);
9559
+ highRange = mainSeries.dataModify.modifyValue(highRange);
9560
+ }
9561
+ if (!defined(lowRange) || !defined(highRange)) {
9645
9562
  if (this.points.length) {
9646
9563
  this.setData([]);
9647
9564
  this.zoneStarts = [];
@@ -9711,6 +9628,15 @@
9711
9628
  yValues[i - 1][3] :
9712
9629
  yValues[i - 1]) :
9713
9630
  value;
9631
+ // If the compare mode is set on the main series,
9632
+ // change the VBP zones to fit new extremes, #16277.
9633
+ var mainSeries = indicator.linkedParent;
9634
+ if (!indicator.options.compareToMain &&
9635
+ mainSeries.dataModify) {
9636
+ value = mainSeries.dataModify.modifyValue(value);
9637
+ previousValue = mainSeries.dataModify
9638
+ .modifyValue(previousValue);
9639
+ }
9714
9640
  // Checks if this is the point with the
9715
9641
  // lowest close value and if so, adds it calculations
9716
9642
  if (value <= zone.start && zone.index === 0) {
@@ -9905,7 +9831,7 @@
9905
9831
  * @extends series,plotOptions.vbp
9906
9832
  * @since 6.0.0
9907
9833
  * @product highstock
9908
- * @excluding dataParser, dataURL
9834
+ * @excluding dataParser, dataURL, compare, compareBase, compareStart
9909
9835
  * @requires stock/indicators/indicators
9910
9836
  * @requires stock/indicators/volume-by-price
9911
9837
  * @apioption series.vbp
@@ -10120,7 +10046,7 @@
10120
10046
 
10121
10047
  return VWAPIndicator;
10122
10048
  });
10123
- _registerModule(_modules, 'Stock/Indicators/WilliamsR/WilliamsRIndicator.js', [_modules['Mixins/ReduceArray.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (ReduceArrayMixin, SeriesRegistry, U) {
10049
+ _registerModule(_modules, 'Stock/Indicators/WilliamsR/WilliamsRIndicator.js', [_modules['Stock/Indicators/ArrayUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AU, SeriesRegistry, U) {
10124
10050
  /* *
10125
10051
  *
10126
10052
  * License: www.highcharts.com/license
@@ -10144,7 +10070,6 @@
10144
10070
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10145
10071
  };
10146
10072
  })();
10147
- var getArrayExtremes = ReduceArrayMixin.getArrayExtremes;
10148
10073
  var SMAIndicator = SeriesRegistry.seriesTypes.sma;
10149
10074
  var extend = U.extend,
10150
10075
  isArray = U.isArray,
@@ -10197,7 +10122,7 @@
10197
10122
  // with (+1)
10198
10123
  for (i = period - 1; i < yValLen; i++) {
10199
10124
  slicedY = yVal.slice(i - period + 1, i + 1);
10200
- extremes = getArrayExtremes(slicedY, low, high);
10125
+ extremes = AU.getArrayExtremes(slicedY, low, high);
10201
10126
  LL = extremes[0];
10202
10127
  HH = extremes[1];
10203
10128
  CC = yVal[i][close];
@@ -10899,7 +10824,7 @@
10899
10824
  * @since 7.0.0
10900
10825
  * @product highstock
10901
10826
  * @requires stock/indicators/indicators
10902
- * @requires stock/indicators/linearregression
10827
+ * @requires stock/indicators/regressions
10903
10828
  * @optionparent plotOptions.linearregression
10904
10829
  */
10905
10830
  LinearRegressionIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
@@ -10978,7 +10903,7 @@
10978
10903
  * @product highstock
10979
10904
  * @excluding dataParser,dataURL
10980
10905
  * @requires stock/indicators/indicators
10981
- * @requires stock/indicators/linearregression
10906
+ * @requires stock/indicators/regressions
10982
10907
  * @apioption series.linearregression
10983
10908
  */
10984
10909
  ''; // to include the above in the js output
@@ -11062,7 +10987,7 @@
11062
10987
  * @since 7.0.0
11063
10988
  * @product highstock
11064
10989
  * @requires stock/indicators/indicators
11065
- * @requires stock/indicators/linearregression
10990
+ * @requires stock/indicators/regressions
11066
10991
  * @optionparent plotOptions.linearregressionslope
11067
10992
  */
11068
10993
  LinearRegressionSlopesIndicator.defaultOptions = merge(LinearRegressionIndicator.defaultOptions);
@@ -11087,7 +11012,7 @@
11087
11012
  * @product highstock
11088
11013
  * @excluding dataParser,dataURL
11089
11014
  * @requires stock/indicators/indicators
11090
- * @requires stock/indicators/linearregressionslope
11015
+ * @requires stock/indicators/regressions
11091
11016
  * @apioption series.linearregressionslope
11092
11017
  */
11093
11018
  ''; // to include the above in the js output
@@ -11171,7 +11096,7 @@
11171
11096
  * @since 7.0.0
11172
11097
  * @product highstock
11173
11098
  * @requires stock/indicators/indicators
11174
- * @requires stock/indicators/linearregressionintercept
11099
+ * @requires stock/indicators/regressions
11175
11100
  * @optionparent plotOptions.linearregressionintercept
11176
11101
  */
11177
11102
  LinearRegressionInterceptIndicator.defaultOptions = merge(LinearRegressionIndicator.defaultOptions);
@@ -11196,7 +11121,7 @@
11196
11121
  * @product highstock
11197
11122
  * @excluding dataParser,dataURL
11198
11123
  * @requires stock/indicators/indicators
11199
- * @requires stock/indicators/linearregressionintercept
11124
+ * @requires stock/indicators/regressions
11200
11125
  * @apioption series.linearregressionintercept
11201
11126
  */
11202
11127
  ''; // to include the above in the js output
@@ -11290,7 +11215,7 @@
11290
11215
  * @since 7.0.0
11291
11216
  * @product highstock
11292
11217
  * @requires stock/indicators/indicators
11293
- * @requires stock/indicators/linearregressionangle
11218
+ * @requires stock/indicators/regressions
11294
11219
  * @optionparent plotOptions.linearregressionangle
11295
11220
  */
11296
11221
  LinearRegressionAngleIndicator.defaultOptions = merge(LinearRegressionIndicator.defaultOptions, {
@@ -11320,14 +11245,14 @@
11320
11245
  * @product highstock
11321
11246
  * @excluding dataParser,dataURL
11322
11247
  * @requires stock/indicators/indicators
11323
- * @requires stock/indicators/linearregressionangle
11248
+ * @requires stock/indicators/regressions
11324
11249
  * @apioption series.linearregressionangle
11325
11250
  */
11326
11251
  ''; // to include the above in the js output
11327
11252
 
11328
11253
  return LinearRegressionAngleIndicator;
11329
11254
  });
11330
- _registerModule(_modules, 'Stock/Indicators/ABands/ABandsIndicator.js', [_modules['Mixins/MultipleLines.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesMixin, SeriesRegistry, U) {
11255
+ _registerModule(_modules, 'Stock/Indicators/ABands/ABandsIndicator.js', [_modules['Stock/Indicators/MultipleLinesComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (MultipleLinesComposition, SeriesRegistry, U) {
11331
11256
  /* *
11332
11257
  *
11333
11258
  * License: www.highcharts.com/license
@@ -11545,16 +11470,13 @@
11545
11470
  return ABandsIndicator;
11546
11471
  }(SMAIndicator));
11547
11472
  extend(ABandsIndicator.prototype, {
11548
- drawGraph: MultipleLinesMixin.drawGraph,
11549
- getTranslatedLinesNames: MultipleLinesMixin.getTranslatedLinesNames,
11550
11473
  linesApiNames: ['topLine', 'bottomLine'],
11551
11474
  nameBase: 'Acceleration Bands',
11552
11475
  nameComponents: ['period', 'factor'],
11553
11476
  pointArrayMap: ['top', 'middle', 'bottom'],
11554
- pointValKey: 'middle',
11555
- toYData: MultipleLinesMixin.toYData,
11556
- translate: MultipleLinesMixin.translate
11477
+ pointValKey: 'middle'
11557
11478
  });
11479
+ MultipleLinesComposition.compose(ABandsIndicator);
11558
11480
  SeriesRegistry.registerSeriesType('abands', ABandsIndicator);
11559
11481
  /* *
11560
11482
  *
@@ -11754,7 +11676,7 @@
11754
11676
 
11755
11677
  return TrendLineIndicator;
11756
11678
  });
11757
- _registerModule(_modules, 'Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js', [_modules['Mixins/IndicatorRequired.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (RequiredIndicatorMixin, SeriesRegistry, U) {
11679
+ _registerModule(_modules, 'Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
11758
11680
  /* *
11759
11681
  * (c) 2010-2021 Rafal Sebestjanski
11760
11682
  *
@@ -11804,6 +11726,11 @@
11804
11726
  var DisparityIndexIndicator = /** @class */ (function (_super) {
11805
11727
  __extends(DisparityIndexIndicator, _super);
11806
11728
  function DisparityIndexIndicator() {
11729
+ /* *
11730
+ *
11731
+ * Static Properties
11732
+ *
11733
+ * */
11807
11734
  var _this = _super !== null && _super.apply(this,
11808
11735
  arguments) || this;
11809
11736
  /* *
@@ -11827,13 +11754,8 @@
11827
11754
  ctx = this, // Disparity Index indicator
11828
11755
  params = args[1].params, // options.params
11829
11756
  averageType = params && params.average ? params.average : void 0;
11830
- ctx.averageIndicator =
11831
- SeriesRegistry.seriesTypes[averageType] || SMAIndicator;
11832
- // Check if the required average indicator modules is loaded
11833
- RequiredIndicatorMixin.isParentLoaded(ctx.averageIndicator, averageType, ctx.type, function (indicator) {
11834
- indicator.prototype.init.apply(ctx, args);
11835
- return;
11836
- });
11757
+ ctx.averageIndicator = SeriesRegistry.seriesTypes[averageType] || SMAIndicator;
11758
+ ctx.averageIndicator.prototype.init.apply(ctx, args);
11837
11759
  };
11838
11760
  DisparityIndexIndicator.prototype.calculateDisparityIndex = function (curPrice, periodAverage) {
11839
11761
  return correctFloat(curPrice - periodAverage) / periodAverage * 100;
@@ -11899,10 +11821,12 @@
11899
11821
  params: {
11900
11822
  /**
11901
11823
  * The average used to calculate the Disparity Index indicator.
11902
- * By default it uses SMA. To use other averages, e.g. EMA,
11903
- * the `stock/indicators/ema.js` file needs to be loaded.
11824
+ * By default it uses SMA, with EMA as an option. To use other
11825
+ * averages, e.g. TEMA, the `stock/indicators/tema.js` file needs to
11826
+ * be loaded.
11904
11827
  *
11905
- * If value is different than ema|dema|tema|wma, then sma is used.
11828
+ * If value is different than `ema`, `dema`, `tema` or `wma`,
11829
+ * then sma is used.
11906
11830
  */
11907
11831
  average: 'sma',
11908
11832
  index: 3
@@ -11926,6 +11850,11 @@
11926
11850
  * Default Export
11927
11851
  *
11928
11852
  * */
11853
+ /* *
11854
+ *
11855
+ * API Options
11856
+ *
11857
+ * */
11929
11858
  /**
11930
11859
  * The Disparity Index indicator series.
11931
11860
  * If the [type](#series.disparityindex.type) option is not