@amcharts/amcharts5 5.15.6 → 5.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/.internal/charts/flow/ArcDiagram.js +4 -24
  2. package/.internal/charts/flow/ArcDiagram.js.map +1 -1
  3. package/.internal/charts/flow/ArcDiagramLink.js +3 -30
  4. package/.internal/charts/flow/ArcDiagramLink.js.map +1 -1
  5. package/.internal/charts/flow/ArcDiagramNodes.js +5 -39
  6. package/.internal/charts/flow/ArcDiagramNodes.js.map +1 -1
  7. package/.internal/charts/flow/Chord.d.ts.map +1 -1
  8. package/.internal/charts/flow/Chord.js +22 -59
  9. package/.internal/charts/flow/Chord.js.map +1 -1
  10. package/.internal/charts/flow/ChordDirected.js +5 -30
  11. package/.internal/charts/flow/ChordDirected.js.map +1 -1
  12. package/.internal/charts/flow/ChordLink.js +2 -33
  13. package/.internal/charts/flow/ChordLink.js.map +1 -1
  14. package/.internal/charts/flow/ChordLinkDirected.js +2 -12
  15. package/.internal/charts/flow/ChordLinkDirected.js.map +1 -1
  16. package/.internal/charts/flow/ChordNodes.js +6 -45
  17. package/.internal/charts/flow/ChordNodes.js.map +1 -1
  18. package/.internal/charts/flow/ChordNonRibbon.js +2 -12
  19. package/.internal/charts/flow/ChordNonRibbon.js.map +1 -1
  20. package/.internal/charts/flow/Flow.js +8 -48
  21. package/.internal/charts/flow/Flow.js.map +1 -1
  22. package/.internal/charts/flow/FlowLink.js +2 -33
  23. package/.internal/charts/flow/FlowLink.js.map +1 -1
  24. package/.internal/charts/flow/FlowNode.js +2 -24
  25. package/.internal/charts/flow/FlowNode.js.map +1 -1
  26. package/.internal/charts/flow/FlowNodes.js +5 -30
  27. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  28. package/.internal/charts/flow/Sankey.js +7 -48
  29. package/.internal/charts/flow/Sankey.js.map +1 -1
  30. package/.internal/charts/flow/SankeyLink.js +4 -24
  31. package/.internal/charts/flow/SankeyLink.js.map +1 -1
  32. package/.internal/charts/flow/SankeyNodes.js +3 -27
  33. package/.internal/charts/flow/SankeyNodes.js.map +1 -1
  34. package/.internal/charts/funnel/FunnelSeries.js +8 -48
  35. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  36. package/.internal/charts/funnel/FunnelSlice.js +15 -90
  37. package/.internal/charts/funnel/FunnelSlice.js.map +1 -1
  38. package/.internal/charts/funnel/PictorialStackedSeries.js +5 -30
  39. package/.internal/charts/funnel/PictorialStackedSeries.js.map +1 -1
  40. package/.internal/charts/funnel/PyramidSeries.js +3 -24
  41. package/.internal/charts/funnel/PyramidSeries.js.map +1 -1
  42. package/.internal/charts/funnel/SlicedChart.js +2 -12
  43. package/.internal/charts/funnel/SlicedChart.js.map +1 -1
  44. package/.internal/charts/gantt/Gantt.js +57 -188
  45. package/.internal/charts/gantt/Gantt.js.map +1 -1
  46. package/.internal/charts/gantt/GanttCategoryAxis.js +9 -110
  47. package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
  48. package/.internal/charts/gantt/GanttCategoryAxisRenderer.js +27 -72
  49. package/.internal/charts/gantt/GanttCategoryAxisRenderer.js.map +1 -1
  50. package/.internal/charts/gantt/GanttDateAxis.js +2 -24
  51. package/.internal/charts/gantt/GanttDateAxis.js.map +1 -1
  52. package/.internal/charts/gantt/GanttDateAxisRenderer.js +2 -12
  53. package/.internal/charts/gantt/GanttDateAxisRenderer.js.map +1 -1
  54. package/.internal/charts/gantt/GanttSeries.js +49 -173
  55. package/.internal/charts/gantt/GanttSeries.js.map +1 -1
  56. package/.internal/charts/hierarchy/BreadcrumbBar.js +8 -29
  57. package/.internal/charts/hierarchy/BreadcrumbBar.js.map +1 -1
  58. package/.internal/charts/hierarchy/ForceDirected.js +10 -60
  59. package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
  60. package/.internal/charts/hierarchy/Hierarchy.js +11 -64
  61. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  62. package/.internal/charts/hierarchy/HierarchyLink.js +3 -24
  63. package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
  64. package/.internal/charts/hierarchy/HierarchyNode.js +2 -30
  65. package/.internal/charts/hierarchy/HierarchyNode.js.map +1 -1
  66. package/.internal/charts/hierarchy/LinkedHierarchy.js +18 -58
  67. package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
  68. package/.internal/charts/hierarchy/LinkedHierarchyNode.js +2 -12
  69. package/.internal/charts/hierarchy/LinkedHierarchyNode.js.map +1 -1
  70. package/.internal/charts/hierarchy/Pack.js +7 -38
  71. package/.internal/charts/hierarchy/Pack.js.map +1 -1
  72. package/.internal/charts/hierarchy/Partition.js +7 -32
  73. package/.internal/charts/hierarchy/Partition.js.map +1 -1
  74. package/.internal/charts/hierarchy/Sunburst.js +10 -40
  75. package/.internal/charts/hierarchy/Sunburst.js.map +1 -1
  76. package/.internal/charts/hierarchy/Tree.js +4 -30
  77. package/.internal/charts/hierarchy/Tree.js.map +1 -1
  78. package/.internal/charts/hierarchy/Treemap.d.ts +1 -1
  79. package/.internal/charts/hierarchy/Treemap.d.ts.map +1 -1
  80. package/.internal/charts/hierarchy/Treemap.js +17 -45
  81. package/.internal/charts/hierarchy/Treemap.js.map +1 -1
  82. package/.internal/charts/hierarchy/VoronoiTreemap.js +7 -32
  83. package/.internal/charts/hierarchy/VoronoiTreemap.js.map +1 -1
  84. package/.internal/charts/map/ClusteredPointSeries.d.ts +0 -2
  85. package/.internal/charts/map/ClusteredPointSeries.d.ts.map +1 -1
  86. package/.internal/charts/map/ClusteredPointSeries.js +128 -127
  87. package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
  88. package/.internal/charts/map/GraticuleSeries.js +3 -18
  89. package/.internal/charts/map/GraticuleSeries.js.map +1 -1
  90. package/.internal/charts/map/MapChart.d.ts +39 -1
  91. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  92. package/.internal/charts/map/MapChart.js +168 -187
  93. package/.internal/charts/map/MapChart.js.map +1 -1
  94. package/.internal/charts/map/MapLine.js +3 -18
  95. package/.internal/charts/map/MapLine.js.map +1 -1
  96. package/.internal/charts/map/MapLineSeries.js +4 -24
  97. package/.internal/charts/map/MapLineSeries.js.map +1 -1
  98. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  99. package/.internal/charts/map/MapPointSeries.js +5 -24
  100. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  101. package/.internal/charts/map/MapPolygon.js +3 -27
  102. package/.internal/charts/map/MapPolygon.js.map +1 -1
  103. package/.internal/charts/map/MapPolygonSeries.js +4 -24
  104. package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
  105. package/.internal/charts/map/MapSeries.js +7 -42
  106. package/.internal/charts/map/MapSeries.js.map +1 -1
  107. package/.internal/charts/map/ZoomControl.js +2 -12
  108. package/.internal/charts/map/ZoomControl.js.map +1 -1
  109. package/.internal/charts/percent/PercentChart.js +2 -12
  110. package/.internal/charts/percent/PercentChart.js.map +1 -1
  111. package/.internal/charts/percent/PercentSeries.js +11 -66
  112. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  113. package/.internal/charts/pie/PieChart.js +3 -18
  114. package/.internal/charts/pie/PieChart.js.map +1 -1
  115. package/.internal/charts/pie/PieSeries.js +2 -12
  116. package/.internal/charts/pie/PieSeries.js.map +1 -1
  117. package/.internal/charts/radar/AxisRendererCircular.js +9 -34
  118. package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
  119. package/.internal/charts/radar/AxisRendererRadial.js +6 -26
  120. package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
  121. package/.internal/charts/radar/ClockHand.js +4 -24
  122. package/.internal/charts/radar/ClockHand.js.map +1 -1
  123. package/.internal/charts/radar/RadarChart.js +5 -30
  124. package/.internal/charts/radar/RadarChart.js.map +1 -1
  125. package/.internal/charts/radar/RadarColumnSeries.js +6 -21
  126. package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
  127. package/.internal/charts/radar/RadarCursor.js +3 -18
  128. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  129. package/.internal/charts/radar/RadarLineSeries.js +2 -12
  130. package/.internal/charts/radar/RadarLineSeries.js.map +1 -1
  131. package/.internal/charts/radar/SmoothedRadarLineSeries.js +2 -12
  132. package/.internal/charts/radar/SmoothedRadarLineSeries.js.map +1 -1
  133. package/.internal/charts/stock/PanelControls.js +26 -56
  134. package/.internal/charts/stock/PanelControls.js.map +1 -1
  135. package/.internal/charts/stock/SettingsModal.js +3 -30
  136. package/.internal/charts/stock/SettingsModal.js.map +1 -1
  137. package/.internal/charts/stock/StockChart.js +11 -108
  138. package/.internal/charts/stock/StockChart.js.map +1 -1
  139. package/.internal/charts/stock/StockLegend.js +14 -34
  140. package/.internal/charts/stock/StockLegend.js.map +1 -1
  141. package/.internal/charts/stock/StockPanel.js +3 -38
  142. package/.internal/charts/stock/StockPanel.js.map +1 -1
  143. package/.internal/charts/stock/drawing/AverageSeries.js +3 -18
  144. package/.internal/charts/stock/drawing/AverageSeries.js.map +1 -1
  145. package/.internal/charts/stock/drawing/CalloutSeries.js +3 -18
  146. package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
  147. package/.internal/charts/stock/drawing/DoodleSeries.js +5 -42
  148. package/.internal/charts/stock/drawing/DoodleSeries.js.map +1 -1
  149. package/.internal/charts/stock/drawing/DrawingSeries.js +32 -200
  150. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  151. package/.internal/charts/stock/drawing/EllipseSeries.js +7 -42
  152. package/.internal/charts/stock/drawing/EllipseSeries.js.map +1 -1
  153. package/.internal/charts/stock/drawing/FibonacciSeries.js +7 -42
  154. package/.internal/charts/stock/drawing/FibonacciSeries.js.map +1 -1
  155. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js +3 -18
  156. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js.map +1 -1
  157. package/.internal/charts/stock/drawing/HorizontalLineSeries.js +3 -18
  158. package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
  159. package/.internal/charts/stock/drawing/HorizontalRaySeries.js +3 -18
  160. package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
  161. package/.internal/charts/stock/drawing/IconSeries.js +3 -24
  162. package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
  163. package/.internal/charts/stock/drawing/LabelSeries.js +5 -36
  164. package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
  165. package/.internal/charts/stock/drawing/LineArrowSeries.js +4 -24
  166. package/.internal/charts/stock/drawing/LineArrowSeries.js.map +1 -1
  167. package/.internal/charts/stock/drawing/Measure.js +6 -36
  168. package/.internal/charts/stock/drawing/Measure.js.map +1 -1
  169. package/.internal/charts/stock/drawing/ParallelChannelSeries.js +5 -30
  170. package/.internal/charts/stock/drawing/ParallelChannelSeries.js.map +1 -1
  171. package/.internal/charts/stock/drawing/PolylineSeries.js +4 -24
  172. package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
  173. package/.internal/charts/stock/drawing/QuadrantLineSeries.js +3 -18
  174. package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
  175. package/.internal/charts/stock/drawing/RectangleSeries.js +4 -24
  176. package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
  177. package/.internal/charts/stock/drawing/RegressionSeries.js +3 -18
  178. package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
  179. package/.internal/charts/stock/drawing/SimpleLineSeries.js +9 -54
  180. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  181. package/.internal/charts/stock/drawing/TrendLineSeries.js +3 -18
  182. package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
  183. package/.internal/charts/stock/drawing/VerticalLineSeries.js +3 -18
  184. package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
  185. package/.internal/charts/stock/indicators/AccelerationBands.js +23 -56
  186. package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -1
  187. package/.internal/charts/stock/indicators/AccumulationDistribution.js +11 -26
  188. package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
  189. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +15 -42
  190. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
  191. package/.internal/charts/stock/indicators/Aroon.js +15 -30
  192. package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
  193. package/.internal/charts/stock/indicators/AverageTrueRange.js +11 -26
  194. package/.internal/charts/stock/indicators/AverageTrueRange.js.map +1 -1
  195. package/.internal/charts/stock/indicators/AwesomeOscillator.js +11 -26
  196. package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
  197. package/.internal/charts/stock/indicators/BollingerBands.js +33 -66
  198. package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
  199. package/.internal/charts/stock/indicators/BullBearPower.js +11 -26
  200. package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -1
  201. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +11 -26
  202. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
  203. package/.internal/charts/stock/indicators/ChaikinOscillator.js +15 -30
  204. package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
  205. package/.internal/charts/stock/indicators/ChartIndicator.js +3 -54
  206. package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
  207. package/.internal/charts/stock/indicators/CommodityChannelIndex.js +2 -12
  208. package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
  209. package/.internal/charts/stock/indicators/DisparityIndex.js +21 -36
  210. package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
  211. package/.internal/charts/stock/indicators/HeikinAshi.js +11 -26
  212. package/.internal/charts/stock/indicators/HeikinAshi.js.map +1 -1
  213. package/.internal/charts/stock/indicators/Indicator.js +4 -42
  214. package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
  215. package/.internal/charts/stock/indicators/MACD.js +31 -64
  216. package/.internal/charts/stock/indicators/MACD.js.map +1 -1
  217. package/.internal/charts/stock/indicators/MACross.js +19 -34
  218. package/.internal/charts/stock/indicators/MACross.js.map +1 -1
  219. package/.internal/charts/stock/indicators/MedianPrice.js +11 -26
  220. package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
  221. package/.internal/charts/stock/indicators/Momentum.js +18 -33
  222. package/.internal/charts/stock/indicators/Momentum.js.map +1 -1
  223. package/.internal/charts/stock/indicators/MovingAverage.js +25 -40
  224. package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
  225. package/.internal/charts/stock/indicators/MovingAverageDeviation.js +33 -48
  226. package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
  227. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +42 -75
  228. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
  229. package/.internal/charts/stock/indicators/OnBalanceVolume.js +7 -22
  230. package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
  231. package/.internal/charts/stock/indicators/OverboughtOversold.js +19 -64
  232. package/.internal/charts/stock/indicators/OverboughtOversold.js.map +1 -1
  233. package/.internal/charts/stock/indicators/PVT.js +7 -22
  234. package/.internal/charts/stock/indicators/PVT.js.map +1 -1
  235. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +2 -24
  236. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  237. package/.internal/charts/stock/indicators/StandardDeviation.js +16 -31
  238. package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
  239. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +2 -24
  240. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
  241. package/.internal/charts/stock/indicators/StochasticOscillator.js +2 -24
  242. package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
  243. package/.internal/charts/stock/indicators/SuperTrend.js +19 -52
  244. package/.internal/charts/stock/indicators/SuperTrend.js.map +1 -1
  245. package/.internal/charts/stock/indicators/Trix.js +20 -49
  246. package/.internal/charts/stock/indicators/Trix.js.map +1 -1
  247. package/.internal/charts/stock/indicators/TypicalPrice.js +11 -26
  248. package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
  249. package/.internal/charts/stock/indicators/VWAP.js +16 -31
  250. package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
  251. package/.internal/charts/stock/indicators/Volume.js +11 -26
  252. package/.internal/charts/stock/indicators/Volume.js.map +1 -1
  253. package/.internal/charts/stock/indicators/VolumeProfile.js +32 -65
  254. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  255. package/.internal/charts/stock/indicators/WilliamsR.js +2 -12
  256. package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
  257. package/.internal/charts/stock/indicators/ZigZag.js +15 -30
  258. package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
  259. package/.internal/charts/stock/toolbar/ColorControl.js +2 -12
  260. package/.internal/charts/stock/toolbar/ColorControl.js.map +1 -1
  261. package/.internal/charts/stock/toolbar/ComparisonControl.js +2 -12
  262. package/.internal/charts/stock/toolbar/ComparisonControl.js.map +1 -1
  263. package/.internal/charts/stock/toolbar/DataSaveControl.js +2 -12
  264. package/.internal/charts/stock/toolbar/DataSaveControl.js.map +1 -1
  265. package/.internal/charts/stock/toolbar/DateRangeSelector.js +2 -12
  266. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  267. package/.internal/charts/stock/toolbar/DrawingControl.js +4 -24
  268. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  269. package/.internal/charts/stock/toolbar/DrawingToolControl.js +2 -12
  270. package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
  271. package/.internal/charts/stock/toolbar/Dropdown.js +2 -12
  272. package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
  273. package/.internal/charts/stock/toolbar/DropdownColors.js +2 -12
  274. package/.internal/charts/stock/toolbar/DropdownColors.js.map +1 -1
  275. package/.internal/charts/stock/toolbar/DropdownControl.js +2 -12
  276. package/.internal/charts/stock/toolbar/DropdownControl.js.map +1 -1
  277. package/.internal/charts/stock/toolbar/DropdownList.js +2 -21
  278. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  279. package/.internal/charts/stock/toolbar/DropdownListControl.js +2 -12
  280. package/.internal/charts/stock/toolbar/DropdownListControl.js.map +1 -1
  281. package/.internal/charts/stock/toolbar/IconControl.js +2 -12
  282. package/.internal/charts/stock/toolbar/IconControl.js.map +1 -1
  283. package/.internal/charts/stock/toolbar/IndicatorControl.js +2 -12
  284. package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
  285. package/.internal/charts/stock/toolbar/IntervalControl.js +2 -12
  286. package/.internal/charts/stock/toolbar/IntervalControl.js.map +1 -1
  287. package/.internal/charts/stock/toolbar/PeriodSelector.js +2 -27
  288. package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
  289. package/.internal/charts/stock/toolbar/ResetControl.js +2 -12
  290. package/.internal/charts/stock/toolbar/ResetControl.js.map +1 -1
  291. package/.internal/charts/stock/toolbar/SeriesTypeControl.js +2 -12
  292. package/.internal/charts/stock/toolbar/SeriesTypeControl.js.map +1 -1
  293. package/.internal/charts/stock/toolbar/SettingsControl.js +2 -12
  294. package/.internal/charts/stock/toolbar/SettingsControl.js.map +1 -1
  295. package/.internal/charts/stock/toolbar/StockControl.js +2 -12
  296. package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
  297. package/.internal/charts/stock/toolbar/StockIcons.js +52 -57
  298. package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
  299. package/.internal/charts/stock/toolbar/StockToolbar.js +2 -21
  300. package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
  301. package/.internal/charts/timeline/AxisRendererCurveX.js +11 -46
  302. package/.internal/charts/timeline/AxisRendererCurveX.js.map +1 -1
  303. package/.internal/charts/timeline/AxisRendererCurveY.js +6 -26
  304. package/.internal/charts/timeline/AxisRendererCurveY.js.map +1 -1
  305. package/.internal/charts/timeline/CurveChart.js +3 -18
  306. package/.internal/charts/timeline/CurveChart.js.map +1 -1
  307. package/.internal/charts/timeline/CurveColumnSeries.js +6 -21
  308. package/.internal/charts/timeline/CurveColumnSeries.js.map +1 -1
  309. package/.internal/charts/timeline/CurveCursor.js +2 -12
  310. package/.internal/charts/timeline/CurveCursor.js.map +1 -1
  311. package/.internal/charts/timeline/CurveLineSeries.js +2 -12
  312. package/.internal/charts/timeline/CurveLineSeries.js.map +1 -1
  313. package/.internal/charts/timeline/SerpentineChart.js +2 -12
  314. package/.internal/charts/timeline/SerpentineChart.js.map +1 -1
  315. package/.internal/charts/timeline/SpiralChart.js +2 -12
  316. package/.internal/charts/timeline/SpiralChart.js.map +1 -1
  317. package/.internal/charts/venn/Venn.js +8 -54
  318. package/.internal/charts/venn/Venn.js.map +1 -1
  319. package/.internal/charts/wordcloud/WordCloud.d.ts +1 -1
  320. package/.internal/charts/wordcloud/WordCloud.d.ts.map +1 -1
  321. package/.internal/charts/wordcloud/WordCloud.js +26 -89
  322. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  323. package/.internal/charts/xy/XYChart.js +23 -149
  324. package/.internal/charts/xy/XYChart.js.map +1 -1
  325. package/.internal/charts/xy/XYChartScrollbar.js +15 -35
  326. package/.internal/charts/xy/XYChartScrollbar.js.map +1 -1
  327. package/.internal/charts/xy/XYCursor.js +16 -93
  328. package/.internal/charts/xy/XYCursor.js.map +1 -1
  329. package/.internal/charts/xy/axes/Axis.js +27 -166
  330. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  331. package/.internal/charts/xy/axes/AxisBullet.js +2 -24
  332. package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
  333. package/.internal/charts/xy/axes/AxisLabel.js +3 -18
  334. package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
  335. package/.internal/charts/xy/axes/AxisLabelRadial.js +3 -18
  336. package/.internal/charts/xy/axes/AxisLabelRadial.js.map +1 -1
  337. package/.internal/charts/xy/axes/AxisRenderer.js +21 -131
  338. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  339. package/.internal/charts/xy/axes/AxisRendererX.js +3 -18
  340. package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
  341. package/.internal/charts/xy/axes/AxisRendererY.js +3 -24
  342. package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
  343. package/.internal/charts/xy/axes/AxisTick.js +3 -18
  344. package/.internal/charts/xy/axes/AxisTick.js.map +1 -1
  345. package/.internal/charts/xy/axes/CategoryAxis.js +4 -24
  346. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  347. package/.internal/charts/xy/axes/CategoryDateAxis.js +4 -24
  348. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  349. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  350. package/.internal/charts/xy/axes/DateAxis.js +16 -57
  351. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  352. package/.internal/charts/xy/axes/DurationAxis.js +5 -30
  353. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  354. package/.internal/charts/xy/axes/EditableAxisLabel.js +3 -18
  355. package/.internal/charts/xy/axes/EditableAxisLabel.js.map +1 -1
  356. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  357. package/.internal/charts/xy/axes/GaplessDateAxis.js +16 -40
  358. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  359. package/.internal/charts/xy/axes/Grid.js +2 -12
  360. package/.internal/charts/xy/axes/Grid.js.map +1 -1
  361. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  362. package/.internal/charts/xy/axes/ValueAxis.js +15 -73
  363. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  364. package/.internal/charts/xy/series/BaseColumnSeries.js +5 -30
  365. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  366. package/.internal/charts/xy/series/Candlestick.js +2 -12
  367. package/.internal/charts/xy/series/Candlestick.js.map +1 -1
  368. package/.internal/charts/xy/series/CandlestickSeries.js +7 -22
  369. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  370. package/.internal/charts/xy/series/ColumnSeries.js +8 -33
  371. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  372. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  373. package/.internal/charts/xy/series/LineSeries.js +21 -95
  374. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  375. package/.internal/charts/xy/series/OHLC.js +2 -12
  376. package/.internal/charts/xy/series/OHLC.js.map +1 -1
  377. package/.internal/charts/xy/series/OHLCSeries.js +7 -22
  378. package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
  379. package/.internal/charts/xy/series/SmoothedXLineSeries.js +2 -12
  380. package/.internal/charts/xy/series/SmoothedXLineSeries.js.map +1 -1
  381. package/.internal/charts/xy/series/SmoothedXYLineSeries.js +2 -12
  382. package/.internal/charts/xy/series/SmoothedXYLineSeries.js.map +1 -1
  383. package/.internal/charts/xy/series/SmoothedYLineSeries.js +2 -12
  384. package/.internal/charts/xy/series/SmoothedYLineSeries.js.map +1 -1
  385. package/.internal/charts/xy/series/StepLineSeries.js +2 -12
  386. package/.internal/charts/xy/series/StepLineSeries.js.map +1 -1
  387. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  388. package/.internal/charts/xy/series/XYSeries.js +45 -286
  389. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  390. package/.internal/core/Registry.js +5 -30
  391. package/.internal/core/Registry.js.map +1 -1
  392. package/.internal/core/Root.d.ts +1 -1
  393. package/.internal/core/Root.d.ts.map +1 -1
  394. package/.internal/core/Root.js +49 -407
  395. package/.internal/core/Root.js.map +1 -1
  396. package/.internal/core/Theme.js +1 -12
  397. package/.internal/core/Theme.js.map +1 -1
  398. package/.internal/core/render/Bullet.js +2 -31
  399. package/.internal/core/render/Bullet.js.map +1 -1
  400. package/.internal/core/render/Button.js +2 -12
  401. package/.internal/core/render/Button.js.map +1 -1
  402. package/.internal/core/render/Chart.js +4 -24
  403. package/.internal/core/render/Chart.js.map +1 -1
  404. package/.internal/core/render/Circle.js +2 -12
  405. package/.internal/core/render/Circle.js.map +1 -1
  406. package/.internal/core/render/Component.js +11 -135
  407. package/.internal/core/render/Component.js.map +1 -1
  408. package/.internal/core/render/ConfirmButton.js +2 -21
  409. package/.internal/core/render/ConfirmButton.js.map +1 -1
  410. package/.internal/core/render/Container.js +13 -108
  411. package/.internal/core/render/Container.js.map +1 -1
  412. package/.internal/core/render/EditableLabel.js +2 -21
  413. package/.internal/core/render/EditableLabel.js.map +1 -1
  414. package/.internal/core/render/Ellipse.js +2 -12
  415. package/.internal/core/render/Ellipse.js.map +1 -1
  416. package/.internal/core/render/Graphics.js +4 -24
  417. package/.internal/core/render/Graphics.js.map +1 -1
  418. package/.internal/core/render/GridLayout.js +2 -12
  419. package/.internal/core/render/GridLayout.js.map +1 -1
  420. package/.internal/core/render/HeatLegend.js +9 -44
  421. package/.internal/core/render/HeatLegend.js.map +1 -1
  422. package/.internal/core/render/HorizontalLayout.js +2 -12
  423. package/.internal/core/render/HorizontalLayout.js.map +1 -1
  424. package/.internal/core/render/Label.js +41 -62
  425. package/.internal/core/render/Label.js.map +1 -1
  426. package/.internal/core/render/Layout.js +2 -12
  427. package/.internal/core/render/Layout.js.map +1 -1
  428. package/.internal/core/render/Legend.js +22 -57
  429. package/.internal/core/render/Legend.js.map +1 -1
  430. package/.internal/core/render/Line.js +2 -12
  431. package/.internal/core/render/Line.js.map +1 -1
  432. package/.internal/core/render/Link.js +10 -40
  433. package/.internal/core/render/Link.js.map +1 -1
  434. package/.internal/core/render/MonotoneXTension.js +8 -54
  435. package/.internal/core/render/MonotoneXTension.js.map +1 -1
  436. package/.internal/core/render/MonotoneYTension.js +8 -54
  437. package/.internal/core/render/MonotoneYTension.js.map +1 -1
  438. package/.internal/core/render/NumericStepper.js +6 -36
  439. package/.internal/core/render/NumericStepper.js.map +1 -1
  440. package/.internal/core/render/OrthogonalLine.js +2 -12
  441. package/.internal/core/render/OrthogonalLine.js.map +1 -1
  442. package/.internal/core/render/Picture.js +3 -18
  443. package/.internal/core/render/Picture.js.map +1 -1
  444. package/.internal/core/render/PointedRectangle.js +2 -12
  445. package/.internal/core/render/PointedRectangle.js.map +1 -1
  446. package/.internal/core/render/Polygon.js +2 -21
  447. package/.internal/core/render/Polygon.js.map +1 -1
  448. package/.internal/core/render/ProgressPie.js +8 -38
  449. package/.internal/core/render/ProgressPie.js.map +1 -1
  450. package/.internal/core/render/RadialLabel.js +3 -18
  451. package/.internal/core/render/RadialLabel.js.map +1 -1
  452. package/.internal/core/render/RadialText.js +3 -18
  453. package/.internal/core/render/RadialText.js.map +1 -1
  454. package/.internal/core/render/Rectangle.js +2 -12
  455. package/.internal/core/render/Rectangle.js.map +1 -1
  456. package/.internal/core/render/RoundedRectangle.js +2 -12
  457. package/.internal/core/render/RoundedRectangle.js.map +1 -1
  458. package/.internal/core/render/Scrollbar.js +9 -60
  459. package/.internal/core/render/Scrollbar.js.map +1 -1
  460. package/.internal/core/render/SerialChart.js +4 -24
  461. package/.internal/core/render/SerialChart.js.map +1 -1
  462. package/.internal/core/render/Series.js +8 -69
  463. package/.internal/core/render/Series.js.map +1 -1
  464. package/.internal/core/render/Slice.js +5 -30
  465. package/.internal/core/render/Slice.js.map +1 -1
  466. package/.internal/core/render/Slider.js +2 -12
  467. package/.internal/core/render/Slider.js.map +1 -1
  468. package/.internal/core/render/Sprite.js +86 -249
  469. package/.internal/core/render/Sprite.js.map +1 -1
  470. package/.internal/core/render/SpriteResizer.js +11 -72
  471. package/.internal/core/render/SpriteResizer.js.map +1 -1
  472. package/.internal/core/render/Star.js +2 -12
  473. package/.internal/core/render/Star.js.map +1 -1
  474. package/.internal/core/render/Text.js +35 -66
  475. package/.internal/core/render/Text.js.map +1 -1
  476. package/.internal/core/render/Tick.js +2 -12
  477. package/.internal/core/render/Tick.js.map +1 -1
  478. package/.internal/core/render/Tooltip.js +7 -78
  479. package/.internal/core/render/Tooltip.js.map +1 -1
  480. package/.internal/core/render/Triangle.js +2 -12
  481. package/.internal/core/render/Triangle.js.map +1 -1
  482. package/.internal/core/render/VerticalLayout.js +2 -12
  483. package/.internal/core/render/VerticalLayout.js.map +1 -1
  484. package/.internal/core/render/ZoomTools.js +5 -42
  485. package/.internal/core/render/ZoomTools.js.map +1 -1
  486. package/.internal/core/render/ZoomableContainer.js +17 -82
  487. package/.internal/core/render/ZoomableContainer.js.map +1 -1
  488. package/.internal/core/render/backend/CanvasRenderer.js +142 -1205
  489. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  490. package/.internal/core/render/gradients/Gradient.js +2 -12
  491. package/.internal/core/render/gradients/Gradient.js.map +1 -1
  492. package/.internal/core/render/gradients/LinearGradient.js +2 -12
  493. package/.internal/core/render/gradients/LinearGradient.js.map +1 -1
  494. package/.internal/core/render/gradients/RadialGradient.js +2 -12
  495. package/.internal/core/render/gradients/RadialGradient.js.map +1 -1
  496. package/.internal/core/render/patterns/CirclePattern.js +2 -12
  497. package/.internal/core/render/patterns/CirclePattern.js.map +1 -1
  498. package/.internal/core/render/patterns/GrainPattern.js +5 -30
  499. package/.internal/core/render/patterns/GrainPattern.js.map +1 -1
  500. package/.internal/core/render/patterns/LinePattern.js +2 -12
  501. package/.internal/core/render/patterns/LinePattern.js.map +1 -1
  502. package/.internal/core/render/patterns/PathPattern.js +2 -12
  503. package/.internal/core/render/patterns/PathPattern.js.map +1 -1
  504. package/.internal/core/render/patterns/Pattern.js +5 -36
  505. package/.internal/core/render/patterns/Pattern.js.map +1 -1
  506. package/.internal/core/render/patterns/PicturePattern.js +2 -21
  507. package/.internal/core/render/patterns/PicturePattern.js.map +1 -1
  508. package/.internal/core/render/patterns/RectanglePattern.js +2 -12
  509. package/.internal/core/render/patterns/RectanglePattern.js.map +1 -1
  510. package/.internal/core/util/Animation.js +6 -54
  511. package/.internal/core/util/Animation.js.map +1 -1
  512. package/.internal/core/util/Array.d.ts.map +1 -1
  513. package/.internal/core/util/Array.js +5 -2
  514. package/.internal/core/util/Array.js.map +1 -1
  515. package/.internal/core/util/Benchmark.js +3 -18
  516. package/.internal/core/util/Benchmark.js.map +1 -1
  517. package/.internal/core/util/Children.js +1 -18
  518. package/.internal/core/util/Children.js.map +1 -1
  519. package/.internal/core/util/Color.js +0 -6
  520. package/.internal/core/util/Color.js.map +1 -1
  521. package/.internal/core/util/ColorSet.js +2 -12
  522. package/.internal/core/util/ColorSet.js.map +1 -1
  523. package/.internal/core/util/Counter.js +2 -18
  524. package/.internal/core/util/Counter.js.map +1 -1
  525. package/.internal/core/util/Data.js +0 -26
  526. package/.internal/core/util/Data.js.map +1 -1
  527. package/.internal/core/util/DataProcessor.js +5 -30
  528. package/.internal/core/util/DataProcessor.js.map +1 -1
  529. package/.internal/core/util/Disposer.js +2 -66
  530. package/.internal/core/util/Disposer.js.map +1 -1
  531. package/.internal/core/util/DurationFormatter.js +8 -13
  532. package/.internal/core/util/DurationFormatter.js.map +1 -1
  533. package/.internal/core/util/Entity.js +31 -271
  534. package/.internal/core/util/Entity.js.map +1 -1
  535. package/.internal/core/util/EventDispatcher.js +0 -45
  536. package/.internal/core/util/EventDispatcher.js.map +1 -1
  537. package/.internal/core/util/InterfaceColors.js +2 -12
  538. package/.internal/core/util/InterfaceColors.js.map +1 -1
  539. package/.internal/core/util/List.js +3 -39
  540. package/.internal/core/util/List.js.map +1 -1
  541. package/.internal/core/util/Matrix.js +0 -36
  542. package/.internal/core/util/Matrix.js.map +1 -1
  543. package/.internal/core/util/Modal.js +2 -12
  544. package/.internal/core/util/Modal.js.map +1 -1
  545. package/.internal/core/util/PatternSet.js +2 -12
  546. package/.internal/core/util/PatternSet.js.map +1 -1
  547. package/.internal/core/util/Percent.js +0 -9
  548. package/.internal/core/util/Percent.js.map +1 -1
  549. package/.internal/core/util/ResizeSensor.js +5 -54
  550. package/.internal/core/util/ResizeSensor.js.map +1 -1
  551. package/.internal/core/util/States.js +2 -30
  552. package/.internal/core/util/States.js.map +1 -1
  553. package/.internal/core/util/Template.js +10 -96
  554. package/.internal/core/util/Template.js.map +1 -1
  555. package/.internal/core/util/TextFormatter.js +1 -6
  556. package/.internal/core/util/TextFormatter.js.map +1 -1
  557. package/.internal/core/util/Throttler.js +2 -18
  558. package/.internal/core/util/Throttler.js.map +1 -1
  559. package/.internal/core/util/Timezone.js +0 -18
  560. package/.internal/core/util/Timezone.js.map +1 -1
  561. package/.internal/core/util/Utils.js +0 -21
  562. package/.internal/core/util/Utils.js.map +1 -1
  563. package/.internal/core/util/Value.js +1 -18
  564. package/.internal/core/util/Value.js.map +1 -1
  565. package/.internal/plugins/colorPicker/ColorPicker.js +96 -235
  566. package/.internal/plugins/colorPicker/ColorPicker.js.map +1 -1
  567. package/.internal/plugins/colorPicker/ColorPickerButton.js +8 -34
  568. package/.internal/plugins/colorPicker/ColorPickerButton.js.map +1 -1
  569. package/.internal/plugins/exporting/Annotator.js +3 -36
  570. package/.internal/plugins/exporting/Annotator.js.map +1 -1
  571. package/.internal/plugins/exporting/Exporting.js +2 -12
  572. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  573. package/.internal/plugins/exporting/ExportingMenu.js +6 -66
  574. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  575. package/.internal/plugins/json/ChartSerializer.js +8 -48
  576. package/.internal/plugins/json/ChartSerializer.js.map +1 -1
  577. package/.internal/plugins/json/Json.js +3 -24
  578. package/.internal/plugins/json/Json.js.map +1 -1
  579. package/.internal/plugins/json/Serializer.js +3 -18
  580. package/.internal/plugins/json/Serializer.js.map +1 -1
  581. package/.internal/plugins/sliceGrouper/SliceGrouper.js +2 -24
  582. package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -1
  583. package/.internal/themes/ResponsiveTheme.js +8 -54
  584. package/.internal/themes/ResponsiveTheme.js.map +1 -1
  585. package/CHANGELOG.md +19 -0
  586. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  587. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  588. package/examples/javascript/flow-chord/package.json +1 -1
  589. package/examples/javascript/flow-chord-directed/package.json +1 -1
  590. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  591. package/examples/javascript/flow-sankey/package.json +1 -1
  592. package/examples/javascript/gantt/package.json +1 -1
  593. package/examples/javascript/gantt-multilevel/package.json +1 -1
  594. package/examples/javascript/gantt-simple/package.json +1 -1
  595. package/examples/javascript/gauge/package.json +1 -1
  596. package/examples/javascript/gauge-bands/package.json +1 -1
  597. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  598. package/examples/javascript/hierarchy-pack/package.json +1 -1
  599. package/examples/javascript/hierarchy-partition/package.json +1 -1
  600. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  601. package/examples/javascript/hierarchy-tree/package.json +1 -1
  602. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  603. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  604. package/examples/javascript/jest/package.json +1 -1
  605. package/examples/javascript/json-pie/package.json +1 -1
  606. package/examples/javascript/json-xy/package.json +1 -1
  607. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  608. package/examples/javascript/map-clustered-points/package.json +1 -1
  609. package/examples/javascript/map-day-and-night/package.json +1 -1
  610. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  611. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  612. package/examples/javascript/map-with-bubbles/package.json +1 -1
  613. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  614. package/examples/javascript/misc-40-charts/package.json +1 -1
  615. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  616. package/examples/javascript/pie-chart/package.json +1 -1
  617. package/examples/javascript/pie-donut-chart/package.json +1 -1
  618. package/examples/javascript/pie-variable-radius/package.json +1 -1
  619. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  620. package/examples/javascript/radar-heat-map/package.json +1 -1
  621. package/examples/javascript/radar-line/package.json +1 -1
  622. package/examples/javascript/radar-time-line/package.json +1 -1
  623. package/examples/javascript/sliced-funnel/package.json +1 -1
  624. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  625. package/examples/javascript/sliced-pyramid/package.json +1 -1
  626. package/examples/javascript/stock-chart/package.json +1 -1
  627. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  628. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  629. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  630. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  631. package/examples/javascript/stock-chart-live/package.json +1 -1
  632. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  633. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  634. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  635. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  636. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  637. package/examples/javascript/venn-diagram/package.json +1 -1
  638. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  639. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  640. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  641. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  642. package/examples/javascript/xy-bubble/package.json +1 -1
  643. package/examples/javascript/xy-candlestick/package.json +1 -1
  644. package/examples/javascript/xy-clustered-column/package.json +1 -1
  645. package/examples/javascript/xy-column/package.json +1 -1
  646. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  647. package/examples/javascript/xy-data-grouping/package.json +1 -1
  648. package/examples/javascript/xy-draggable-range/package.json +1 -1
  649. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  650. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  651. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  652. package/examples/javascript/xy-line/package.json +1 -1
  653. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  654. package/examples/javascript/xy-live-data/package.json +1 -1
  655. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  656. package/examples/javascript/xy-ohlc/package.json +1 -1
  657. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  658. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  659. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  660. package/examples/javascript/xy-stacked-column/package.json +1 -1
  661. package/examples/javascript/xy-stacked-step/package.json +1 -1
  662. package/examples/javascript/xy-stock/package.json +1 -1
  663. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  664. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  665. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  666. package/examples/typescript/flow-chord/package.json +1 -1
  667. package/examples/typescript/flow-chord-directed/package.json +1 -1
  668. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  669. package/examples/typescript/flow-sankey/package.json +1 -1
  670. package/examples/typescript/gantt/package.json +1 -1
  671. package/examples/typescript/gantt-multilevel/package.json +1 -1
  672. package/examples/typescript/gantt-simple/package.json +1 -1
  673. package/examples/typescript/gauge/package.json +1 -1
  674. package/examples/typescript/gauge-bands/package.json +1 -1
  675. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  676. package/examples/typescript/hierarchy-pack/package.json +1 -1
  677. package/examples/typescript/hierarchy-partition/package.json +1 -1
  678. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  679. package/examples/typescript/hierarchy-tree/package.json +1 -1
  680. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  681. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  682. package/examples/typescript/jest/package.json +1 -1
  683. package/examples/typescript/json-pie/package.json +1 -1
  684. package/examples/typescript/json-xy/package.json +1 -1
  685. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  686. package/examples/typescript/map-clustered-points/package.json +1 -1
  687. package/examples/typescript/map-day-and-night/package.json +1 -1
  688. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  689. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  690. package/examples/typescript/map-with-bubbles/package.json +1 -1
  691. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  692. package/examples/typescript/misc-40-charts/package.json +1 -1
  693. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  694. package/examples/typescript/pie-chart/package.json +1 -1
  695. package/examples/typescript/pie-donut-chart/package.json +1 -1
  696. package/examples/typescript/pie-variable-radius/package.json +1 -1
  697. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  698. package/examples/typescript/radar-heat-map/package.json +1 -1
  699. package/examples/typescript/radar-line/package.json +1 -1
  700. package/examples/typescript/radar-time-line/package.json +1 -1
  701. package/examples/typescript/sliced-funnel/package.json +1 -1
  702. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  703. package/examples/typescript/sliced-pyramid/package.json +1 -1
  704. package/examples/typescript/stock-chart/package.json +1 -1
  705. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  706. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  707. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  708. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  709. package/examples/typescript/stock-chart-live/package.json +1 -1
  710. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  711. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  712. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  713. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  714. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  715. package/examples/typescript/venn-diagram/package.json +1 -1
  716. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  717. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  718. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  719. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  720. package/examples/typescript/xy-bubble/package.json +1 -1
  721. package/examples/typescript/xy-candlestick/package.json +1 -1
  722. package/examples/typescript/xy-clustered-column/package.json +1 -1
  723. package/examples/typescript/xy-column/package.json +1 -1
  724. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  725. package/examples/typescript/xy-data-grouping/package.json +1 -1
  726. package/examples/typescript/xy-draggable-range/package.json +1 -1
  727. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  728. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  729. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  730. package/examples/typescript/xy-line/package.json +1 -1
  731. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  732. package/examples/typescript/xy-live-data/package.json +1 -1
  733. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  734. package/examples/typescript/xy-ohlc/package.json +1 -1
  735. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  736. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  737. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  738. package/examples/typescript/xy-stacked-column/package.json +1 -1
  739. package/examples/typescript/xy-stacked-step/package.json +1 -1
  740. package/examples/typescript/xy-stock/package.json +1 -1
  741. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  742. package/package.json +1 -1
@@ -9,16 +9,11 @@ import * as $type from "../../../core/util/Type";
9
9
  export class PVT extends ChartIndicator {
10
10
  constructor() {
11
11
  super(...arguments);
12
- Object.defineProperty(this, "_editableSettings", {
13
- enumerable: true,
14
- configurable: true,
15
- writable: true,
16
- value: [{
17
- key: "seriesColor",
18
- name: this.root.language.translateAny("Color"),
19
- type: "color"
20
- }]
21
- });
12
+ this._editableSettings = [{
13
+ key: "seriesColor",
14
+ name: this.root.language.translateAny("Color"),
15
+ type: "color"
16
+ }];
22
17
  }
23
18
  _afterNew() {
24
19
  this._themeTags.push("pvt");
@@ -70,16 +65,6 @@ export class PVT extends ChartIndicator {
70
65
  }
71
66
  }
72
67
  }
73
- Object.defineProperty(PVT, "className", {
74
- enumerable: true,
75
- configurable: true,
76
- writable: true,
77
- value: "PVT"
78
- });
79
- Object.defineProperty(PVT, "classNames", {
80
- enumerable: true,
81
- configurable: true,
82
- writable: true,
83
- value: ChartIndicator.classNames.concat([PVT.className])
84
- });
68
+ PVT.className = "PVT";
69
+ PVT.classNames = ChartIndicator.classNames.concat([PVT.className]);
85
70
  //# sourceMappingURL=PVT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PVT.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/PVT.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { XYSeries } from \"../../xy/series/XYSeries\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IPVTSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * Chart's main volume series.\r\n\t */\r\n\tvolumeSeries: XYSeries;\r\n\r\n}\r\n\r\nexport interface IPVTPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IPVTEvents extends IChartIndicatorEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class PVT extends ChartIndicator {\r\n\tpublic static className: string = \"PVT\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([PVT.className]);\r\n\r\n\tdeclare public _settings: IPVTSettings;\r\n\tdeclare public _privateSettings: IPVTPrivate;\r\n\tdeclare public _events: IPVTEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"seriesColor\",\r\n\t\tname: this.root.language.translateAny(\"Color\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis._themeTags.push(\"pvt\");\r\n\t\tsuper._afterNew();\r\n\t\tthis.yAxis.set(\"numberFormat\", \"#.###a\");\r\n\t}\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\treturn this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tthemeTags: [\"indicator\"],\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"pvt\",\r\n\t\t\tstroke: this.get(\"seriesColor\"),\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\r\n\t\t\tthis.setRaw(\"field\", \"close\");\r\n\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tconst volumeSeries = this.get(\"volumeSeries\");\r\n\r\n\t\t\tlet data: Array<any> = this._getDataArray(dataItems);\r\n\t\t\tlet previous = 0;\r\n\t\t\tlet len = data.length;\r\n\r\n\t\t\t//PVT = [((CurrentClose - PreviousClose) / PreviousClose) x Volume] + PreviousPVT\r\n\r\n\t\t\tif (volumeSeries && len > 1) {\r\n\t\t\t\tlet cy = data[0].value_y as number;\r\n\r\n\t\t\t\tfor (let i = 1; i < len; i++) {\r\n\t\t\t\t\tconst dataItem = data[i];\r\n\r\n\t\t\t\t\tlet c = dataItem.value_y;\r\n\r\n\t\t\t\t\tif (c != null && $type.isNumber(c) && c != 0) {\r\n\t\t\t\t\t\tconst volumeDI = volumeSeries.dataItems[i];\r\n\t\t\t\t\t\tlet volume = 0;\r\n\t\t\t\t\t\tif (volumeDI) {\r\n\t\t\t\t\t\t\tvolume = volumeDI.get(\"valueY\", 1);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet pvt = (((c - cy) / cy) * volume) + previous;\r\n\r\n\t\t\t\t\t\tdataItem.pvt = pvt;\r\n\r\n\t\t\t\t\t\tprevious = pvt;\r\n\t\t\t\t\t\tcy = c;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"PVT.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/PVT.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { XYSeries } from \"../../xy/series/XYSeries\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IPVTSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * Chart's main volume series.\r\n\t */\r\n\tvolumeSeries: XYSeries;\r\n\r\n}\r\n\r\nexport interface IPVTPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IPVTEvents extends IChartIndicatorEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class PVT extends ChartIndicator {\r\n\tpublic static className: string = \"PVT\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([PVT.className]);\r\n\r\n\tdeclare public _settings: IPVTSettings;\r\n\tdeclare public _privateSettings: IPVTPrivate;\r\n\tdeclare public _events: IPVTEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"seriesColor\",\r\n\t\tname: this.root.language.translateAny(\"Color\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis._themeTags.push(\"pvt\");\r\n\t\tsuper._afterNew();\r\n\t\tthis.yAxis.set(\"numberFormat\", \"#.###a\");\r\n\t}\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\treturn this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tthemeTags: [\"indicator\"],\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"pvt\",\r\n\t\t\tstroke: this.get(\"seriesColor\"),\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\r\n\t\t\tthis.setRaw(\"field\", \"close\");\r\n\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tconst volumeSeries = this.get(\"volumeSeries\");\r\n\r\n\t\t\tlet data: Array<any> = this._getDataArray(dataItems);\r\n\t\t\tlet previous = 0;\r\n\t\t\tlet len = data.length;\r\n\r\n\t\t\t//PVT = [((CurrentClose - PreviousClose) / PreviousClose) x Volume] + PreviousPVT\r\n\r\n\t\t\tif (volumeSeries && len > 1) {\r\n\t\t\t\tlet cy = data[0].value_y as number;\r\n\r\n\t\t\t\tfor (let i = 1; i < len; i++) {\r\n\t\t\t\t\tconst dataItem = data[i];\r\n\r\n\t\t\t\t\tlet c = dataItem.value_y;\r\n\r\n\t\t\t\t\tif (c != null && $type.isNumber(c) && c != 0) {\r\n\t\t\t\t\t\tconst volumeDI = volumeSeries.dataItems[i];\r\n\t\t\t\t\t\tlet volume = 0;\r\n\t\t\t\t\t\tif (volumeDI) {\r\n\t\t\t\t\t\t\tvolume = volumeDI.get(\"valueY\", 1);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet pvt = (((c - cy) / cy) * volume) + previous;\r\n\r\n\t\t\t\t\t\tdataItem.pvt = pvt;\r\n\r\n\t\t\t\t\t\tprevious = pvt;\r\n\t\t\t\t\t\tcy = c;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
@@ -8,18 +8,6 @@ import * as $type from "../../../core/util/Type";
8
8
  * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info
9
9
  */
10
10
  export class RelativeStrengthIndex extends OverboughtOversold {
11
- constructor() {
12
- super(...arguments);
13
- /**
14
- * Indicator series.
15
- */
16
- Object.defineProperty(this, "smaSeries", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- }
23
11
  _afterNew() {
24
12
  this._themeTags.push("rsi");
25
13
  super._afterNew();
@@ -133,16 +121,6 @@ export class RelativeStrengthIndex extends OverboughtOversold {
133
121
  }
134
122
  }
135
123
  }
136
- Object.defineProperty(RelativeStrengthIndex, "className", {
137
- enumerable: true,
138
- configurable: true,
139
- writable: true,
140
- value: "RelativeStrengthIndex"
141
- });
142
- Object.defineProperty(RelativeStrengthIndex, "classNames", {
143
- enumerable: true,
144
- configurable: true,
145
- writable: true,
146
- value: OverboughtOversold.classNames.concat([RelativeStrengthIndex.className])
147
- });
124
+ RelativeStrengthIndex.className = "RelativeStrengthIndex";
125
+ RelativeStrengthIndex.classNames = OverboughtOversold.classNames.concat([RelativeStrengthIndex.className]);
148
126
  //# sourceMappingURL=RelativeStrengthIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RelativeStrengthIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IRelativeStrengthIndexSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * EMA period.\r\n\t */\r\n\tsmaPeriod?: number;\r\n\r\n\t/**\r\n\t * A color for \"ema\" line.\r\n\t */\r\n\tsmaColor?: Color;\r\n}\r\n\r\nexport interface IRelativeStrengthIndexPrivate extends IOverboughtOversoldPrivate { }\r\n\r\nexport interface IRelativeStrengthIndexEvents extends IOverboughtOversoldEvents { }\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class RelativeStrengthIndex extends OverboughtOversold {\r\n\tpublic static className: string = \"RelativeStrengthIndex\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([RelativeStrengthIndex.className]);\r\n\r\n\tdeclare public _settings: IRelativeStrengthIndexSettings;\r\n\tdeclare public _privateSettings: IRelativeStrengthIndexPrivate;\r\n\tdeclare public _events: IRelativeStrengthIndexEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic smaSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\r\n\t\tthis._themeTags.push(\"rsi\");\r\n\t\tsuper._afterNew();\r\n\t\tthis._editableSettings.unshift({\r\n\t\t\tkey: \"period\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"field\",\r\n\t\t\tname: this.root.language.translateAny(\"Field\"),\r\n\t\t\ttype: \"dropdown\",\r\n\t\t\toptions: [\"open\", \"close\", \"low\", \"high\", \"hl/2\", \"hlc/3\", \"hlcc/4\", \"ohlc/4\"]\r\n\t\t}, {\r\n\t\t\tkey: \"smaPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"smaColor\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t})\r\n\r\n\t\tconst smaSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"sma\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"sma\"]\r\n\t\t}))\r\n\r\n\t\tthis.smaSeries = smaSeries;\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\t\tif (this.isDirty(\"smaColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.smaSeries, this.get(\"smaColor\"), \"smaColor\")\r\n\t\t}\r\n\t\tif (this.isDirty(\"smaPeriod\")) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(\"smaPeriod\", this.get(\"smaPeriod\"));\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\t\t\tconst data: Array<any> = [];\r\n\t\t\tlet i = 0;\r\n\t\t\tlet averageGain = 0;\r\n\t\t\tlet averageLoss = 0;\r\n\t\t\tlet prevAverageGain = 0;\r\n\t\t\tlet prevAverageLoss = 0;\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tlet rsi = null;\r\n\t\t\t\ti++;\r\n\t\r\n\t\t\t\tif (i == period + 1) {\r\n\t\t\t\t\tfor (let j = 1; j <= period; j++) {\r\n\t\t\t\t\t\tlet value = this._getValue(dataItems[j]);\r\n\t\t\t\t\t\tlet prevValue = this._getValue(dataItems[j - 1]);\r\n\t\t\t\t\t\tif (value != undefined && prevValue != undefined) {\r\n\t\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\t\tif (change >= 0) {\r\n\t\t\t\t\t\t\t\taverageGain += change / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\taverageLoss += Math.abs(change) / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\r\n\t\t\t\t\tif($type.isNaN(rsi)){\r\n\t\t\t\t\t\trsi = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (i > period) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\t\t\t\t\tlet prevValue = this._getValue(dataItems[i - 2]);\r\n\t\t\t\t\tif (value != null && prevValue != null) {\r\n\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\tlet gain = 0;\r\n\t\t\t\t\t\tlet loss = 0;\r\n\r\n\t\t\t\t\t\tif (change > 0) {\r\n\t\t\t\t\t\t\tgain = change;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tloss = -change;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\taverageGain = (prevAverageGain * (period - 1) + gain) / period;\r\n\t\t\t\t\t\taverageLoss = (prevAverageLoss * (period - 1) + loss) / period;\r\n\r\n\t\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\r\n\r\n\t\t\t\t\t\tif(isNaN(rsi)){\r\n\t\t\t\t\t\t\trsi = 0;\r\n\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdata.push({ valueX: dataItem.get(\"valueX\"), valueS: rsi });\r\n\r\n\t\t\t\tprevAverageGain = averageGain;\r\n\t\t\t\tprevAverageLoss = averageLoss;\r\n\t\t\t})\r\n\t\t\tthis.series.updateData(data);\r\n\r\n\t\t\tperiod = this.get(\"smaPeriod\", 3);\r\n\t\t\tthis._sma(data, period, \"valueS\", \"sma\");\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t\tthis.smaSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"RelativeStrengthIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IRelativeStrengthIndexSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * EMA period.\r\n\t */\r\n\tsmaPeriod?: number;\r\n\r\n\t/**\r\n\t * A color for \"ema\" line.\r\n\t */\r\n\tsmaColor?: Color;\r\n}\r\n\r\nexport interface IRelativeStrengthIndexPrivate extends IOverboughtOversoldPrivate { }\r\n\r\nexport interface IRelativeStrengthIndexEvents extends IOverboughtOversoldEvents { }\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class RelativeStrengthIndex extends OverboughtOversold {\r\n\tpublic static className: string = \"RelativeStrengthIndex\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([RelativeStrengthIndex.className]);\r\n\r\n\tdeclare public _settings: IRelativeStrengthIndexSettings;\r\n\tdeclare public _privateSettings: IRelativeStrengthIndexPrivate;\r\n\tdeclare public _events: IRelativeStrengthIndexEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic smaSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\r\n\t\tthis._themeTags.push(\"rsi\");\r\n\t\tsuper._afterNew();\r\n\t\tthis._editableSettings.unshift({\r\n\t\t\tkey: \"period\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"field\",\r\n\t\t\tname: this.root.language.translateAny(\"Field\"),\r\n\t\t\ttype: \"dropdown\",\r\n\t\t\toptions: [\"open\", \"close\", \"low\", \"high\", \"hl/2\", \"hlc/3\", \"hlcc/4\", \"ohlc/4\"]\r\n\t\t}, {\r\n\t\t\tkey: \"smaPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"smaColor\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t})\r\n\r\n\t\tconst smaSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"sma\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"sma\"]\r\n\t\t}))\r\n\r\n\t\tthis.smaSeries = smaSeries;\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\t\tif (this.isDirty(\"smaColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.smaSeries, this.get(\"smaColor\"), \"smaColor\")\r\n\t\t}\r\n\t\tif (this.isDirty(\"smaPeriod\")) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(\"smaPeriod\", this.get(\"smaPeriod\"));\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\t\t\tconst data: Array<any> = [];\r\n\t\t\tlet i = 0;\r\n\t\t\tlet averageGain = 0;\r\n\t\t\tlet averageLoss = 0;\r\n\t\t\tlet prevAverageGain = 0;\r\n\t\t\tlet prevAverageLoss = 0;\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tlet rsi = null;\r\n\t\t\t\ti++;\r\n\t\r\n\t\t\t\tif (i == period + 1) {\r\n\t\t\t\t\tfor (let j = 1; j <= period; j++) {\r\n\t\t\t\t\t\tlet value = this._getValue(dataItems[j]);\r\n\t\t\t\t\t\tlet prevValue = this._getValue(dataItems[j - 1]);\r\n\t\t\t\t\t\tif (value != undefined && prevValue != undefined) {\r\n\t\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\t\tif (change >= 0) {\r\n\t\t\t\t\t\t\t\taverageGain += change / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\taverageLoss += Math.abs(change) / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\r\n\t\t\t\t\tif($type.isNaN(rsi)){\r\n\t\t\t\t\t\trsi = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (i > period) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\t\t\t\t\tlet prevValue = this._getValue(dataItems[i - 2]);\r\n\t\t\t\t\tif (value != null && prevValue != null) {\r\n\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\tlet gain = 0;\r\n\t\t\t\t\t\tlet loss = 0;\r\n\r\n\t\t\t\t\t\tif (change > 0) {\r\n\t\t\t\t\t\t\tgain = change;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tloss = -change;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\taverageGain = (prevAverageGain * (period - 1) + gain) / period;\r\n\t\t\t\t\t\taverageLoss = (prevAverageLoss * (period - 1) + loss) / period;\r\n\r\n\t\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\r\n\r\n\t\t\t\t\t\tif(isNaN(rsi)){\r\n\t\t\t\t\t\t\trsi = 0;\r\n\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdata.push({ valueX: dataItem.get(\"valueX\"), valueS: rsi });\r\n\r\n\t\t\t\tprevAverageGain = averageGain;\r\n\t\t\t\tprevAverageLoss = averageLoss;\r\n\t\t\t})\r\n\t\t\tthis.series.updateData(data);\r\n\r\n\t\t\tperiod = this.get(\"smaPeriod\", 3);\r\n\t\t\tthis._sma(data, period, \"valueS\", \"sma\");\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t\tthis.smaSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
@@ -9,25 +9,20 @@ import * as $array from "../../../core/util/Array";
9
9
  export class StandardDeviation extends ChartIndicator {
10
10
  constructor() {
11
11
  super(...arguments);
12
- Object.defineProperty(this, "_editableSettings", {
13
- enumerable: true,
14
- configurable: true,
15
- writable: true,
16
- value: [{
17
- key: "period",
18
- name: this.root.language.translateAny("Period"),
19
- type: "number"
20
- }, {
21
- key: "seriesColor",
22
- name: this.root.language.translateAny("Color"),
23
- type: "color"
24
- }, {
25
- key: "field",
26
- name: this.root.language.translateAny("Field"),
27
- type: "dropdown",
28
- options: ["open", "close", "low", "high", "hl/2", "hlc/3", "hlcc/4", "ohlc/4"]
29
- }]
30
- });
12
+ this._editableSettings = [{
13
+ key: "period",
14
+ name: this.root.language.translateAny("Period"),
15
+ type: "number"
16
+ }, {
17
+ key: "seriesColor",
18
+ name: this.root.language.translateAny("Color"),
19
+ type: "color"
20
+ }, {
21
+ key: "field",
22
+ name: this.root.language.translateAny("Field"),
23
+ type: "dropdown",
24
+ options: ["open", "close", "low", "high", "hl/2", "hlc/3", "hlcc/4", "ohlc/4"]
25
+ }];
31
26
  }
32
27
  _afterNew() {
33
28
  this._themeTags.push("standarddeviation");
@@ -75,16 +70,6 @@ export class StandardDeviation extends ChartIndicator {
75
70
  }
76
71
  }
77
72
  }
78
- Object.defineProperty(StandardDeviation, "className", {
79
- enumerable: true,
80
- configurable: true,
81
- writable: true,
82
- value: "StandardDeviation"
83
- });
84
- Object.defineProperty(StandardDeviation, "classNames", {
85
- enumerable: true,
86
- configurable: true,
87
- writable: true,
88
- value: ChartIndicator.classNames.concat([StandardDeviation.className])
89
- });
73
+ StandardDeviation.className = "StandardDeviation";
74
+ StandardDeviation.classNames = ChartIndicator.classNames.concat([StandardDeviation.className]);
90
75
  //# sourceMappingURL=StandardDeviation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StandardDeviation.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StandardDeviation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IStandardDeviationSettings extends IChartIndicatorSettings {\r\n}\r\n\r\nexport interface IStandardDeviationPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IStandardDeviationEvents extends IChartIndicatorEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class StandardDeviation extends ChartIndicator {\r\n\tpublic static className: string = \"StandardDeviation\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([StandardDeviation.className]);\r\n\r\n\tdeclare public _settings: IStandardDeviationSettings;\r\n\tdeclare public _privateSettings: IStandardDeviationPrivate;\r\n\tdeclare public _events: IStandardDeviationEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"period\",\r\n\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"seriesColor\",\r\n\t\tname: this.root.language.translateAny(\"Color\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"field\",\r\n\t\tname: this.root.language.translateAny(\"Field\"),\r\n\t\ttype: \"dropdown\",\r\n\t\toptions: [\"open\", \"close\", \"low\", \"high\", \"hl/2\", \"hlc/3\", \"hlcc/4\", \"ohlc/4\"]\r\n\t}];\r\n\r\n\tpublic _afterNew(){\r\n\t\tthis._themeTags.push(\"standarddeviation\");\r\n\t\tsuper._afterNew();\r\n\t}\t\t\t\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\treturn this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tthemeTags: [\"indicator\"],\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"deviation\",\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tsuper.prepareData();\r\n\r\n\t\tif (this.series) {\r\n\r\n\t\t\tlet period = this.get(\"period\", 20);\r\n\t\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\t\tconst dataItems = stockSeries.dataItems;\r\n\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\r\n\t\t\tthis._sma(data, period, \"value_y\", \"ma\");\r\n\r\n\t\t\tlet i = 0;\r\n\r\n\t\t\t$array.each(data, (dataItem: any) => {\r\n\t\t\t\tif (i >= period - 1) {\r\n\t\t\t\t\tlet mean = dataItem.ma;\r\n\r\n\t\t\t\t\tlet stdSum = 0;\r\n\t\t\t\t\tfor (let j = i - period + 1; j <= i; j++) {\r\n\t\t\t\t\t\tlet di = dataItems[j];\r\n\t\t\t\t\t\tlet diValue = this._getValue(di);\r\n\t\t\t\t\t\tif (diValue != null) {\r\n\t\t\t\t\t\t\tstdSum += Math.pow(diValue - mean, 2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet std = Math.sqrt(stdSum / period);\r\n\r\n\t\t\t\t\tdataItem.deviation = std;\r\n\t\t\t\t}\r\n\t\t\t\ti++;\r\n\t\t\t})\r\n\t\t\tthis.series.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"StandardDeviation.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StandardDeviation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IStandardDeviationSettings extends IChartIndicatorSettings {\r\n}\r\n\r\nexport interface IStandardDeviationPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IStandardDeviationEvents extends IChartIndicatorEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class StandardDeviation extends ChartIndicator {\r\n\tpublic static className: string = \"StandardDeviation\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([StandardDeviation.className]);\r\n\r\n\tdeclare public _settings: IStandardDeviationSettings;\r\n\tdeclare public _privateSettings: IStandardDeviationPrivate;\r\n\tdeclare public _events: IStandardDeviationEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"period\",\r\n\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"seriesColor\",\r\n\t\tname: this.root.language.translateAny(\"Color\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"field\",\r\n\t\tname: this.root.language.translateAny(\"Field\"),\r\n\t\ttype: \"dropdown\",\r\n\t\toptions: [\"open\", \"close\", \"low\", \"high\", \"hl/2\", \"hlc/3\", \"hlcc/4\", \"ohlc/4\"]\r\n\t}];\r\n\r\n\tpublic _afterNew(){\r\n\t\tthis._themeTags.push(\"standarddeviation\");\r\n\t\tsuper._afterNew();\r\n\t}\t\t\t\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\treturn this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tthemeTags: [\"indicator\"],\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"deviation\",\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tsuper.prepareData();\r\n\r\n\t\tif (this.series) {\r\n\r\n\t\t\tlet period = this.get(\"period\", 20);\r\n\t\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\t\tconst dataItems = stockSeries.dataItems;\r\n\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\r\n\t\t\tthis._sma(data, period, \"value_y\", \"ma\");\r\n\r\n\t\t\tlet i = 0;\r\n\r\n\t\t\t$array.each(data, (dataItem: any) => {\r\n\t\t\t\tif (i >= period - 1) {\r\n\t\t\t\t\tlet mean = dataItem.ma;\r\n\r\n\t\t\t\t\tlet stdSum = 0;\r\n\t\t\t\t\tfor (let j = i - period + 1; j <= i; j++) {\r\n\t\t\t\t\t\tlet di = dataItems[j];\r\n\t\t\t\t\t\tlet diValue = this._getValue(di);\r\n\t\t\t\t\t\tif (diValue != null) {\r\n\t\t\t\t\t\t\tstdSum += Math.pow(diValue - mean, 2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet std = Math.sqrt(stdSum / period);\r\n\r\n\t\t\t\t\tdataItem.deviation = std;\r\n\t\t\t\t}\r\n\t\t\t\ti++;\r\n\t\t\t})\r\n\t\t\tthis.series.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
@@ -9,18 +9,6 @@ import * as $type from "../../../core/util/Type";
9
9
  * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info
10
10
  */
11
11
  export class StochasticMomentumIndex extends OverboughtOversold {
12
- constructor() {
13
- super(...arguments);
14
- /**
15
- * Indicator series.
16
- */
17
- Object.defineProperty(this, "emaSeries", {
18
- enumerable: true,
19
- configurable: true,
20
- writable: true,
21
- value: void 0
22
- });
23
- }
24
12
  _afterNew() {
25
13
  this._themeTags.push("stochasticmomentum");
26
14
  super._afterNew();
@@ -129,16 +117,6 @@ export class StochasticMomentumIndex extends OverboughtOversold {
129
117
  }
130
118
  }
131
119
  }
132
- Object.defineProperty(StochasticMomentumIndex, "className", {
133
- enumerable: true,
134
- configurable: true,
135
- writable: true,
136
- value: "StochasticMomentumIndex"
137
- });
138
- Object.defineProperty(StochasticMomentumIndex, "classNames", {
139
- enumerable: true,
140
- configurable: true,
141
- writable: true,
142
- value: OverboughtOversold.classNames.concat([StochasticMomentumIndex.className])
143
- });
120
+ StochasticMomentumIndex.className = "StochasticMomentumIndex";
121
+ StochasticMomentumIndex.classNames = OverboughtOversold.classNames.concat([StochasticMomentumIndex.className]);
144
122
  //# sourceMappingURL=StochasticMomentumIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StochasticMomentumIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StochasticMomentumIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IStochasticMomentumIndexSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * A color for \"ema\" line.\r\n\t */\r\n\temaColor?: Color;\r\n\r\n\t/**\r\n\t * K period.\r\n\t */\r\n\tkPeriod?: number;\r\n\r\n\t/**\r\n\t * D period.\r\n\t */\r\n\tdPeriod?: number;\r\n\r\n\t/**\r\n\t * EMA period.\r\n\t */\r\n\temaPeriod?: number;\r\n}\r\n\r\nexport interface IStochasticMomentumIndexPrivate extends IOverboughtOversoldPrivate {\r\n}\r\n\r\nexport interface IStochasticMomentumIndexEvents extends IOverboughtOversoldEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @since 5.5.3\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class StochasticMomentumIndex extends OverboughtOversold {\r\n\tpublic static className: string = \"StochasticMomentumIndex\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([StochasticMomentumIndex.className]);\r\n\r\n\tdeclare public _settings: IStochasticMomentumIndexSettings;\r\n\tdeclare public _privateSettings: IStochasticMomentumIndexPrivate;\r\n\tdeclare public _events: IStochasticMomentumIndexEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic emaSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"stochasticmomentum\");\r\n\r\n\t\tsuper._afterNew();\r\n\t\tthis._editableSettings.unshift(\r\n\t\t\t{\r\n\t\t\t\tkey: \"period\",\r\n\t\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\t\ttype: \"number\"\r\n\t\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"dPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"D period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"emaPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"EMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"emaColor\",\r\n\t\t\tname: this.root.language.translateAny(\"EMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}\r\n\t\t);\r\n\r\n\t\tconst emaSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"ema\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"ema\"]\r\n\t\t}))\r\n\r\n\t\tthis.emaSeries = emaSeries;\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tif (this.isDirty(\"dPeriod\") || this.isDirty(\"emaPeriod\")) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(\"dPeriod\", this.get(\"dPeriod\"));\r\n\t\t\tthis.setCustomData(\"emaPeriod\", this.get(\"emaPeriod\"));\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"emaColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.emaSeries, this.get(\"emaColor\"), \"emaColor\")\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * https://www.barchart.com/education/technical-indicators/stochastic_momentum_index\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet kPeriod = this.get(\"period\", 10);\r\n\t\t\tlet data: Array<any> = [];\r\n\t\t\tlet index = 0;\r\n\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tconst valueX = dataItem.get(\"valueX\");\r\n\t\t\t\tlet lp = Infinity;\r\n\t\t\t\tlet hp = -lp;\r\n\t\t\t\tlet hhh;\r\n\t\t\t\tlet dhl;\r\n\r\n\t\t\t\tif (index >= kPeriod - 1) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\r\n\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\tfor (let j = index; j > index - kPeriod; j--) {\r\n\t\t\t\t\t\t\tlet h = dataItems[j].get(\"highValueY\");\r\n\t\t\t\t\t\t\tlet l = dataItems[j].get(\"lowValueY\");\r\n\r\n\t\t\t\t\t\t\tif (h != null && l != null) {\r\n\t\t\t\t\t\t\t\tif (l < lp) {\r\n\t\t\t\t\t\t\t\t\tlp = l;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (h > hp) {\r\n\t\t\t\t\t\t\t\t\thp = h;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet c = (hp + lp) / 2;\r\n\t\t\t\t\t\thhh = value - c;\r\n\t\t\t\t\t\tdhl = hp - lp;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hhh == null || $type.isNaN(hhh) || hhh === 0) {\r\n\t\t\t\t\tdata.push({ valueX: valueX });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdata.push({ valueX: valueX, hhh: hhh, dhl: dhl });\r\n\t\t\t\t}\r\n\t\t\t\tindex++;\r\n\t\t\t})\r\n\r\n\t\t\tlet dPeriod = this.get(\"dPeriod\", 3);\r\n\t\t\tthis._ema(data, dPeriod, \"hhh\", \"hhh_ema\");\r\n\t\t\tthis._ema(data, dPeriod, \"hhh_ema\", \"hhh_ema2\");\r\n\r\n\t\t\tthis._ema(data, dPeriod, \"dhl\", \"dhl_ema\");\r\n\t\t\tthis._ema(data, dPeriod, \"dhl_ema\", \"dhl_ema2\");\r\n\r\n\t\t\t$array.each(data, (d) => {\r\n\t\t\t\tlet hhh = d.hhh_ema2;\r\n\t\t\t\tlet dhl = d.dhl_ema2;\r\n\r\n\t\t\t\tif (hhh != null && dhl != null) {\r\n\t\t\t\t\td.valueS = d.hhh_ema2 / d.dhl_ema2 * 200;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tlet emaPeriod = this.get(\"emaPeriod\", 3);\r\n\t\t\tthis._sma(data, emaPeriod, \"valueS\", \"ema\");\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t\tthis.emaSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"StochasticMomentumIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StochasticMomentumIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IStochasticMomentumIndexSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * A color for \"ema\" line.\r\n\t */\r\n\temaColor?: Color;\r\n\r\n\t/**\r\n\t * K period.\r\n\t */\r\n\tkPeriod?: number;\r\n\r\n\t/**\r\n\t * D period.\r\n\t */\r\n\tdPeriod?: number;\r\n\r\n\t/**\r\n\t * EMA period.\r\n\t */\r\n\temaPeriod?: number;\r\n}\r\n\r\nexport interface IStochasticMomentumIndexPrivate extends IOverboughtOversoldPrivate {\r\n}\r\n\r\nexport interface IStochasticMomentumIndexEvents extends IOverboughtOversoldEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @since 5.5.3\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class StochasticMomentumIndex extends OverboughtOversold {\r\n\tpublic static className: string = \"StochasticMomentumIndex\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([StochasticMomentumIndex.className]);\r\n\r\n\tdeclare public _settings: IStochasticMomentumIndexSettings;\r\n\tdeclare public _privateSettings: IStochasticMomentumIndexPrivate;\r\n\tdeclare public _events: IStochasticMomentumIndexEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic emaSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"stochasticmomentum\");\r\n\r\n\t\tsuper._afterNew();\r\n\t\tthis._editableSettings.unshift(\r\n\t\t\t{\r\n\t\t\t\tkey: \"period\",\r\n\t\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\t\ttype: \"number\"\r\n\t\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"dPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"D period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"emaPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"EMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"emaColor\",\r\n\t\t\tname: this.root.language.translateAny(\"EMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}\r\n\t\t);\r\n\r\n\t\tconst emaSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"ema\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"ema\"]\r\n\t\t}))\r\n\r\n\t\tthis.emaSeries = emaSeries;\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tif (this.isDirty(\"dPeriod\") || this.isDirty(\"emaPeriod\")) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(\"dPeriod\", this.get(\"dPeriod\"));\r\n\t\t\tthis.setCustomData(\"emaPeriod\", this.get(\"emaPeriod\"));\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"emaColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.emaSeries, this.get(\"emaColor\"), \"emaColor\")\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * https://www.barchart.com/education/technical-indicators/stochastic_momentum_index\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet kPeriod = this.get(\"period\", 10);\r\n\t\t\tlet data: Array<any> = [];\r\n\t\t\tlet index = 0;\r\n\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tconst valueX = dataItem.get(\"valueX\");\r\n\t\t\t\tlet lp = Infinity;\r\n\t\t\t\tlet hp = -lp;\r\n\t\t\t\tlet hhh;\r\n\t\t\t\tlet dhl;\r\n\r\n\t\t\t\tif (index >= kPeriod - 1) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\r\n\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\tfor (let j = index; j > index - kPeriod; j--) {\r\n\t\t\t\t\t\t\tlet h = dataItems[j].get(\"highValueY\");\r\n\t\t\t\t\t\t\tlet l = dataItems[j].get(\"lowValueY\");\r\n\r\n\t\t\t\t\t\t\tif (h != null && l != null) {\r\n\t\t\t\t\t\t\t\tif (l < lp) {\r\n\t\t\t\t\t\t\t\t\tlp = l;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (h > hp) {\r\n\t\t\t\t\t\t\t\t\thp = h;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet c = (hp + lp) / 2;\r\n\t\t\t\t\t\thhh = value - c;\r\n\t\t\t\t\t\tdhl = hp - lp;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hhh == null || $type.isNaN(hhh) || hhh === 0) {\r\n\t\t\t\t\tdata.push({ valueX: valueX });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdata.push({ valueX: valueX, hhh: hhh, dhl: dhl });\r\n\t\t\t\t}\r\n\t\t\t\tindex++;\r\n\t\t\t})\r\n\r\n\t\t\tlet dPeriod = this.get(\"dPeriod\", 3);\r\n\t\t\tthis._ema(data, dPeriod, \"hhh\", \"hhh_ema\");\r\n\t\t\tthis._ema(data, dPeriod, \"hhh_ema\", \"hhh_ema2\");\r\n\r\n\t\t\tthis._ema(data, dPeriod, \"dhl\", \"dhl_ema\");\r\n\t\t\tthis._ema(data, dPeriod, \"dhl_ema\", \"dhl_ema2\");\r\n\r\n\t\t\t$array.each(data, (d) => {\r\n\t\t\t\tlet hhh = d.hhh_ema2;\r\n\t\t\t\tlet dhl = d.dhl_ema2;\r\n\r\n\t\t\t\tif (hhh != null && dhl != null) {\r\n\t\t\t\t\td.valueS = d.hhh_ema2 / d.dhl_ema2 * 200;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tlet emaPeriod = this.get(\"emaPeriod\", 3);\r\n\t\t\tthis._sma(data, emaPeriod, \"valueS\", \"ema\");\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t\tthis.emaSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
@@ -8,18 +8,6 @@ import * as $type from "../../../core/util/Type";
8
8
  * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info
9
9
  */
10
10
  export class StochasticOscillator extends OverboughtOversold {
11
- constructor() {
12
- super(...arguments);
13
- /**
14
- * Indicator series.
15
- */
16
- Object.defineProperty(this, "slowSeries", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- }
23
11
  _afterNew() {
24
12
  this._themeTags.push("stochastic");
25
13
  super._afterNew();
@@ -115,16 +103,6 @@ export class StochasticOscillator extends OverboughtOversold {
115
103
  }
116
104
  }
117
105
  }
118
- Object.defineProperty(StochasticOscillator, "className", {
119
- enumerable: true,
120
- configurable: true,
121
- writable: true,
122
- value: "StochasticOscillator"
123
- });
124
- Object.defineProperty(StochasticOscillator, "classNames", {
125
- enumerable: true,
126
- configurable: true,
127
- writable: true,
128
- value: OverboughtOversold.classNames.concat([StochasticOscillator.className])
129
- });
106
+ StochasticOscillator.className = "StochasticOscillator";
107
+ StochasticOscillator.classNames = OverboughtOversold.classNames.concat([StochasticOscillator.className]);
130
108
  //# sourceMappingURL=StochasticOscillator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StochasticOscillator.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StochasticOscillator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;AAC9I,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AA0BjD;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IAA5D;;QAQC;;WAEG;QACH;;;;;WAA+B;IAmHhC,CAAC;IAjHU,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnC,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC7B;YACC,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,QAAQ;SACd,EAAE;YACH,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,OAAO;SACb,EAAE;YACF,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;YACjD,IAAI,EAAE,QAAQ;SACd,EAAC;YACD,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;YACnD,IAAI,EAAE,QAAQ;SACd,EAAG;YACH,GAAG,EAAE,WAAW;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;YACnD,IAAI,EAAE,OAAO;SACb,CACA,CAAA;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACpE,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,iBAAiB,EAAE,IAAI;YACvB,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,CAAA;QAEH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAGM,eAAe;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;SACzD;QAED,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAA;SAC5E;IACF,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;YACpD,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,IAAI,GAAe,EAAE,CAAC;YAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,CAAC;gBACN,IAAI,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAErC,IAAI,KAAK,IAAI,IAAI,EAAE;wBAClB,IAAI,EAAE,GAAG,QAAQ,CAAC;wBAClB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;wBACb,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC5C,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BACvC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;4BAEtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;gCAC3B,IAAI,CAAC,GAAG,EAAE,EAAE;oCACX,EAAE,GAAG,CAAC,CAAC;iCACP;gCACD,IAAI,CAAC,GAAG,EAAE,EAAE;oCACX,EAAE,GAAG,CAAC,CAAC;iCACP;6BACD;yBACD;wBACD,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;qBACnC;iBACD;gBAED,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;iBAC9B;qBACI;oBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC1C;gBACD,KAAK,EAAE,CAAC;YACT,CAAC,CAAC,CAAA;YAEF,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE7C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACjC;IACF,CAAC;;AA5HD;;;;WAAkC,sBAAsB;GAAC;AACzD;;;;WAA0C,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IStochasticOscillatorSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * A color for \"slow\" section.\r\n\t */\r\n\tslowColor?: Color;\r\n\r\n\t/**\r\n\t * Smoothing \"k\" parameter.\r\n\t */\r\n\tkSmoothing?: number;\r\n\r\n\t/**\r\n\t * Smoothing \"d\" parameter.\r\n\t */\r\n\tdSmoothing?: number;\r\n}\r\n\r\nexport interface IStochasticOscillatorPrivate extends IOverboughtOversoldPrivate {\r\n}\r\n\r\nexport interface IStochasticOscillatorEvents extends IOverboughtOversoldEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class StochasticOscillator extends OverboughtOversold {\r\n\tpublic static className: string = \"StochasticOscillator\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([StochasticOscillator.className]);\r\n\r\n\tdeclare public _settings: IStochasticOscillatorSettings;\r\n\tdeclare public _privateSettings: IStochasticOscillatorPrivate;\r\n\tdeclare public _events: IStochasticOscillatorEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic slowSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"stochastic\");\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis._editableSettings.unshift(\r\n\t\t\t{\r\n\t\t\t\tkey: \"period\",\r\n\t\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\t\ttype: \"number\"\r\n\t\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"kSmoothing\",\r\n\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t},{\r\n\t\t\tkey: \"dSmoothing\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"slowColor\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}\r\n\t\t)\r\n\r\n\t\tthis.yAxis.setAll({ min: 0, max: 100, strictMinMax: true });\r\n\r\n\t\tconst slowSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"slow\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"slow\"]\r\n\t\t}))\r\n\r\n\t\tthis.slowSeries = slowSeries;\r\n\t}\r\n\r\n\r\n\tpublic _updateChildren() {\r\n\t\tif (this.isDirty(\"kSmoothing\") || this.isDirty(\"dSmoothing\")) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(\"dSmoothing\", this.get(\"dSmoothing\"));\r\n\t\t\tthis.setCustomData(\"kSmoothing\", this.get(\"kSmoothing\"));\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"slowColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.slowSeries, this.get(\"slowColor\"), \"slowColor\")\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\t\t\tlet data: Array<any> = [];\r\n\t\t\tlet index = 0;\r\n\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tconst valueX = dataItem.get(\"valueX\");\r\n\t\t\t\tlet k;\r\n\t\t\t\tif (index >= period - 1) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\r\n\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\tlet lp = Infinity;\r\n\t\t\t\t\t\tlet hp = -lp;\r\n\t\t\t\t\t\tfor (let j = index; j > index - period; j--) {\r\n\t\t\t\t\t\t\tlet h = dataItems[j].get(\"highValueY\");\r\n\t\t\t\t\t\t\tlet l = dataItems[j].get(\"lowValueY\");\r\n\r\n\t\t\t\t\t\t\tif (h != null && l != null) {\r\n\t\t\t\t\t\t\t\tif (l < lp) {\r\n\t\t\t\t\t\t\t\t\tlp = l;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (h > hp) {\r\n\t\t\t\t\t\t\t\t\thp = h;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tk = (value - lp) / (hp - lp) * 100;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (k == null || $type.isNaN(k)) {\r\n\t\t\t\t\tdata.push({ valueX: valueX });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdata.push({ valueX: valueX, value_y: k });\r\n\t\t\t\t}\r\n\t\t\t\tindex++;\r\n\t\t\t})\r\n\r\n\t\t\tperiod = this.get(\"kSmoothing\", 1);\r\n\t\t\tthis._sma(data, period, \"value_y\", \"valueS\");\r\n\r\n\t\t\tperiod = this.get(\"dSmoothing\", 3);\r\n\t\t\tthis._sma(data, period, \"valueS\", \"slow\");\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t\tthis.slowSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"StochasticOscillator.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StochasticOscillator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;AAC9I,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AA0BjD;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IAajD,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnC,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC7B;YACC,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,QAAQ;SACd,EAAE;YACH,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,OAAO;SACb,EAAE;YACF,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;YACjD,IAAI,EAAE,QAAQ;SACd,EAAC;YACD,GAAG,EAAE,YAAY;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;YACnD,IAAI,EAAE,QAAQ;SACd,EAAG;YACH,GAAG,EAAE,WAAW;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;YACnD,IAAI,EAAE,OAAO;SACb,CACA,CAAA;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACpE,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,iBAAiB,EAAE,IAAI;YACvB,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,CAAA;QAEH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAGM,eAAe;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;SACzD;QAED,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAA;SAC5E;IACF,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;YACpD,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,IAAI,GAAe,EAAE,CAAC;YAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,CAAC;gBACN,IAAI,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAErC,IAAI,KAAK,IAAI,IAAI,EAAE;wBAClB,IAAI,EAAE,GAAG,QAAQ,CAAC;wBAClB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;wBACb,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC5C,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BACvC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;4BAEtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;gCAC3B,IAAI,CAAC,GAAG,EAAE,EAAE;oCACX,EAAE,GAAG,CAAC,CAAC;iCACP;gCACD,IAAI,CAAC,GAAG,EAAE,EAAE;oCACX,EAAE,GAAG,CAAC,CAAC;iCACP;6BACD;yBACD;wBACD,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;qBACnC;iBACD;gBAED,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;iBAC9B;qBACI;oBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC1C;gBACD,KAAK,EAAE,CAAC;YACT,CAAC,CAAC,CAAA;YAEF,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE7C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACjC;IACF,CAAC;;AA5Ha,8BAAS,GAAW,sBAAsB,CAAC;AAC3C,+BAAU,GAAkB,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC","sourcesContent":["import type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IStochasticOscillatorSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * A color for \"slow\" section.\r\n\t */\r\n\tslowColor?: Color;\r\n\r\n\t/**\r\n\t * Smoothing \"k\" parameter.\r\n\t */\r\n\tkSmoothing?: number;\r\n\r\n\t/**\r\n\t * Smoothing \"d\" parameter.\r\n\t */\r\n\tdSmoothing?: number;\r\n}\r\n\r\nexport interface IStochasticOscillatorPrivate extends IOverboughtOversoldPrivate {\r\n}\r\n\r\nexport interface IStochasticOscillatorEvents extends IOverboughtOversoldEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class StochasticOscillator extends OverboughtOversold {\r\n\tpublic static className: string = \"StochasticOscillator\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([StochasticOscillator.className]);\r\n\r\n\tdeclare public _settings: IStochasticOscillatorSettings;\r\n\tdeclare public _privateSettings: IStochasticOscillatorPrivate;\r\n\tdeclare public _events: IStochasticOscillatorEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic slowSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"stochastic\");\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis._editableSettings.unshift(\r\n\t\t\t{\r\n\t\t\t\tkey: \"period\",\r\n\t\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\t\ttype: \"number\"\r\n\t\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"kSmoothing\",\r\n\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t},{\r\n\t\t\tkey: \"dSmoothing\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"slowColor\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}\r\n\t\t)\r\n\r\n\t\tthis.yAxis.setAll({ min: 0, max: 100, strictMinMax: true });\r\n\r\n\t\tconst slowSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"slow\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"slow\"]\r\n\t\t}))\r\n\r\n\t\tthis.slowSeries = slowSeries;\r\n\t}\r\n\r\n\r\n\tpublic _updateChildren() {\r\n\t\tif (this.isDirty(\"kSmoothing\") || this.isDirty(\"dSmoothing\")) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(\"dSmoothing\", this.get(\"dSmoothing\"));\r\n\t\t\tthis.setCustomData(\"kSmoothing\", this.get(\"kSmoothing\"));\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"slowColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.slowSeries, this.get(\"slowColor\"), \"slowColor\")\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\t\t\tlet data: Array<any> = [];\r\n\t\t\tlet index = 0;\r\n\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tconst valueX = dataItem.get(\"valueX\");\r\n\t\t\t\tlet k;\r\n\t\t\t\tif (index >= period - 1) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\r\n\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\tlet lp = Infinity;\r\n\t\t\t\t\t\tlet hp = -lp;\r\n\t\t\t\t\t\tfor (let j = index; j > index - period; j--) {\r\n\t\t\t\t\t\t\tlet h = dataItems[j].get(\"highValueY\");\r\n\t\t\t\t\t\t\tlet l = dataItems[j].get(\"lowValueY\");\r\n\r\n\t\t\t\t\t\t\tif (h != null && l != null) {\r\n\t\t\t\t\t\t\t\tif (l < lp) {\r\n\t\t\t\t\t\t\t\t\tlp = l;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (h > hp) {\r\n\t\t\t\t\t\t\t\t\thp = h;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tk = (value - lp) / (hp - lp) * 100;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (k == null || $type.isNaN(k)) {\r\n\t\t\t\t\tdata.push({ valueX: valueX });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdata.push({ valueX: valueX, value_y: k });\r\n\t\t\t\t}\r\n\t\t\t\tindex++;\r\n\t\t\t})\r\n\r\n\t\t\tperiod = this.get(\"kSmoothing\", 1);\r\n\t\t\tthis._sma(data, period, \"value_y\", \"valueS\");\r\n\r\n\t\t\tperiod = this.get(\"dSmoothing\", 3);\r\n\t\t\tthis._sma(data, period, \"valueS\", \"slow\");\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t\tthis.slowSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
@@ -10,46 +10,23 @@ import * as $array from "../../../core/util/Array";
10
10
  export class SuperTrend extends Indicator {
11
11
  constructor() {
12
12
  super(...arguments);
13
- /**
14
- * Indicator series for the upper band.
15
- */
16
- Object.defineProperty(this, "upperBandSeries", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- /**
23
- * Indicator series for the lower band.
24
- */
25
- Object.defineProperty(this, "lowerBandSeries", {
26
- enumerable: true,
27
- configurable: true,
28
- writable: true,
29
- value: void 0
30
- });
31
- Object.defineProperty(this, "_editableSettings", {
32
- enumerable: true,
33
- configurable: true,
34
- writable: true,
35
- value: [{
36
- key: "period",
37
- name: this.root.language.translateAny("Period"),
38
- type: "number"
39
- }, {
40
- key: "multiplier",
41
- name: this.root.language.translateAny("Multiplier"),
42
- type: "number"
43
- }, {
44
- key: "upperColor",
45
- name: this.root.language.translateAny("Upper"),
46
- type: "color"
47
- }, {
48
- key: "lowerColor",
49
- name: this.root.language.translateAny("Lower"),
50
- type: "color"
51
- }]
52
- });
13
+ this._editableSettings = [{
14
+ key: "period",
15
+ name: this.root.language.translateAny("Period"),
16
+ type: "number"
17
+ }, {
18
+ key: "multiplier",
19
+ name: this.root.language.translateAny("Multiplier"),
20
+ type: "number"
21
+ }, {
22
+ key: "upperColor",
23
+ name: this.root.language.translateAny("Upper"),
24
+ type: "color"
25
+ }, {
26
+ key: "lowerColor",
27
+ name: this.root.language.translateAny("Lower"),
28
+ type: "color"
29
+ }];
53
30
  }
54
31
  _afterNew() {
55
32
  super._afterNew();
@@ -268,16 +245,6 @@ export class SuperTrend extends Indicator {
268
245
  });
269
246
  }
270
247
  }
271
- Object.defineProperty(SuperTrend, "className", {
272
- enumerable: true,
273
- configurable: true,
274
- writable: true,
275
- value: "SuperTrend"
276
- });
277
- Object.defineProperty(SuperTrend, "classNames", {
278
- enumerable: true,
279
- configurable: true,
280
- writable: true,
281
- value: Indicator.classNames.concat([SuperTrend.className])
282
- });
248
+ SuperTrend.className = "SuperTrend";
249
+ SuperTrend.classNames = Indicator.classNames.concat([SuperTrend.className]);
283
250
  //# sourceMappingURL=SuperTrend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SuperTrend.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/SuperTrend.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAsF,MAAM,aAAa,CAAC;AAC5H,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAcnD;;;;GAIG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAAzC;;QAQC;;WAEG;QACH;;;;;WAAoC;QAEpC;;WAEG;QACH;;;;;WAAoC;QAOpC;;;;mBAAwD,CAAC;oBACxD,GAAG,EAAE,QAAQ;oBACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;oBAC/C,IAAI,EAAE,QAAQ;iBACd,EAAE;oBACF,GAAG,EAAE,YAAY;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;oBACnD,IAAI,EAAE,QAAQ;iBACd,EAAE;oBACF,GAAG,EAAE,YAAY;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC9C,IAAI,EAAE,OAAO;iBACb,EAAE;oBACF,GAAG,EAAE,YAAY;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC9C,IAAI,EAAE,OAAO;iBACb,CAAC;WAAC;IAkPJ,CAAC;IA/OU,SAAS;QAClB,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAEhC,IAAI,KAAK,EAAE;YAEV,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC3D,WAAW,EAAE,QAAQ;gBACrB,WAAW,EAAE,IAAI;gBACjB,iBAAiB,EAAE,IAAI;gBACvB,mBAAmB,EAAE,IAAI;gBACzB,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC/B,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC/B,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;gBACtC,IAAI,EAAE,aAAa;aACnB,CAAC,CAAC,CAAA;YAEH,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBACpE,WAAW,EAAE,QAAQ;gBACrB,WAAW,EAAE,OAAO;gBACpB,eAAe,EAAE,aAAa;gBAC9B,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC/B,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC/B,iBAAiB,EAAE,IAAI;gBACvB,mBAAmB,EAAE,IAAI;gBACzB,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,QAAQ;gBACtB,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC;aAC/C,CAAC,CAAC,CAAA;YAEH,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACpD,eAAe,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAE3D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YAEvC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBACpE,WAAW,EAAE,QAAQ;gBACrB,WAAW,EAAE,OAAO;gBACpB,eAAe,EAAE,aAAa;gBAC9B,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC/B,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC/B,iBAAiB,EAAE,IAAI;gBACvB,mBAAmB,EAAE,IAAI;gBACzB,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,QAAQ;gBACtB,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC;aAC/C,CAAC,CAAC,CAAA;YAEH,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACpD,eAAe,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YAEvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAChC;IACF,CAAC;IAEM,eAAe;QACrB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC7C,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAEtD,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;SAC9D;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC7C,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAEtD,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;SAC9D;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;SACzD;IACF,CAAC;IAES,aAAa,CAAC,SAA+B;QACtD,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClK,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;YAExC,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEzC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,SAA6B,CAAC;YAClC,IAAI,OAA2B,CAAC;YAChC,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAG3C,IAAI,GAAuB,CAAC;YAC5B,IAAI,cAAc,GAAY,KAAK,CAAC;YACpC,IAAI,cAAkC,CAAC;YACvC,IAAI,aAAiC,CAAC;YACtC,IAAI,aAAiC,CAAC;YACtC,IAAI,SAA6B,CAAC;YAClC,IAAI,SAA6B,CAAC;YAClC,IAAI,UAA8B,CAAC;YAGnC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAE9B,IAAI,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAEtC,IAAI,UAAU,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE;oBAC5C,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;oBAC7I,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;oBAEjB,IAAI,CAAC,IAAI,MAAM,EAAE;wBAChB,IAAI,CAAC,IAAI,MAAM,EAAE;4BAChB,IAAI,GAAG,GAAG,CAAC,CAAC;4BACZ,IAAI,CAAC,GAAG,CAAC,CAAC;4BACV,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gCAChC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gCAClB,CAAC,EAAE,CAAC;gCACJ,IAAI,CAAC,IAAI,MAAM,EAAE;oCAChB,MAAM;iCACN;6BACD;4BACD,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;yBACnB;6BACI;4BACJ,IAAI,OAAO,IAAI,IAAI,EAAE;gCACpB,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC;6BAC7C;yBACD;wBAED,OAAO,GAAG,GAAG,CAAC;wBAEd,IAAI,cAAc,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBACjG,IAAI,cAAc,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBAEjG,iBAAiB;wBACjB,IAAI,CAAC,KAAK,MAAM,EAAE;4BACjB,SAAS,GAAG,cAAc,CAAC;4BAC3B,SAAS,GAAG,cAAc,CAAC;yBAC3B;6BAAM;4BACN,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC;gCACtF,CAAC,CAAC,cAAc;gCAChB,CAAC,CAAC,aAAa,CAAC;4BACjB,SAAS,GAAG,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC;gCACtF,CAAC,CAAC,cAAc;gCAChB,CAAC,CAAC,aAAa,CAAC;yBACjB;wBAID,IAAI,CAAC,KAAK,MAAM,EAAE;4BACjB,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;yBACrE;6BAAM;4BACN,IAAI,cAAc,KAAK,aAAa,IAAI,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;gCACxE,UAAU,GAAG,SAAS,CAAC;gCACvB,cAAc,GAAG,KAAK,CAAC,CAAC,YAAY;6BACpC;iCAAM,IAAI,cAAc,KAAK,aAAa,IAAI,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE;gCAC9E,UAAU,GAAG,SAAS,CAAC;gCACvB,cAAc,GAAG,IAAI,CAAC,CAAC,UAAU;6BACjC;iCAAM,IAAI,cAAc,KAAK,aAAa,IAAI,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;gCAC/E,UAAU,GAAG,SAAS,CAAC;gCACvB,cAAc,GAAG,IAAI,CAAC,CAAC,UAAU;6BACjC;iCAAM,IAAI,cAAc,KAAK,aAAa,IAAI,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE;gCAC9E,UAAU,GAAG,SAAS,CAAC;gCACvB,cAAc,GAAG,KAAK,CAAC,CAAC,YAAY;6BACpC;iCAAM;gCACN,UAAU,GAAG,cAAc,CAAC;6BAC5B;yBACD;wBAED,IAAI,cAAc,EAAE;4BACnB,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;4BAC5B,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;yBAC3B;6BACI;4BACJ,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;4BAC5B,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;yBAC3B;wBAED,aAAa,GAAG,SAAS,CAAC;wBAC1B,aAAa,GAAG,SAAS,CAAC;wBAC1B,cAAc,GAAG,UAAU,CAAC;qBAC5B;iBACD;gBAED,KAAK,EAAE,CAAC;gBACR,SAAS,GAAG,UAAU,CAAC;YACxB,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACtC;IACF,CAAC;IACS,QAAQ;QACjB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,KAAK,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEY,IAAI,CAAC,QAAiB;;;;;YAClC,OAAO,OAAO,CAAC,GAAG,CAAC;gBAClB,OAAM,IAAI,YAAC,QAAQ;gBACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnC,CAAC,CAAC;QACJ,CAAC;KAAA;IAEY,IAAI,CAAC,QAAiB;;;;;YAClC,OAAO,OAAO,CAAC,GAAG,CAAC;gBAClB,OAAM,IAAI,YAAC,QAAQ;gBACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnC,CAAC,CAAC;QACJ,CAAC;KAAA;;AAtRD;;;;WAAkC,YAAY;GAAC;AAC/C;;;;WAA0C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import { Indicator, IIndicatorSettings, IIndicatorPrivate, IIndicatorEvents, IIndicatorEditableSetting } from \"./Indicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport type { Color } from \"../../../core/util/Color\";\r\nimport type { DataItem } from \"../../../..\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface ISuperTrendSettings extends IIndicatorSettings {\r\n\tupperColor?: Color;\r\n\tlowerColor?: Color;\r\n\tmultiplier?: number;\r\n}\r\n\r\nexport interface ISuperTrendPrivate extends IIndicatorPrivate {\r\n}\r\n\r\nexport interface ISuperTrendEvents extends IIndicatorEvents {\r\n}\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class SuperTrend extends Indicator {\r\n\tpublic static className: string = \"SuperTrend\";\r\n\tpublic static classNames: Array<string> = Indicator.classNames.concat([SuperTrend.className]);\r\n\r\n\tdeclare public _settings: ISuperTrendSettings;\r\n\tdeclare public _privateSettings: ISuperTrendPrivate;\r\n\tdeclare public _events: ISuperTrendEvents;\r\n\r\n\t/**\r\n\t * Indicator series for the upper band.\r\n\t */\r\n\tpublic upperBandSeries!: LineSeries;\r\n\r\n\t/**\r\n\t * Indicator series for the lower band.\r\n\t */\r\n\tpublic lowerBandSeries!: LineSeries;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"period\",\r\n\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"multiplier\",\r\n\t\tname: this.root.language.translateAny(\"Multiplier\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"upperColor\",\r\n\t\tname: this.root.language.translateAny(\"Upper\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"lowerColor\",\r\n\t\tname: this.root.language.translateAny(\"Lower\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\tconst chart = stockSeries.chart;\r\n\r\n\t\tif (chart) {\r\n\r\n\t\t\tconst series = chart.series.push(LineSeries.new(this._root, {\r\n\t\t\t\tvalueXField: \"valueX\",\r\n\t\t\t\tvalueYField: \"ma\",\r\n\t\t\t\tgroupDataDisabled: true,\r\n\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\txAxis: stockSeries.get(\"xAxis\"),\r\n\t\t\t\tyAxis: stockSeries.get(\"yAxis\"),\r\n\t\t\t\tthemeTags: [\"indicator\", \"supertrend\"],\r\n\t\t\t\tname: \"Super Trend\",\r\n\t\t\t}))\r\n\r\n\t\t\tseries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\t\t\tthis.series = series;\r\n\r\n\t\t\tconst upperBandSeries = chart.series.push(LineSeries.new(this._root, {\r\n\t\t\t\tvalueXField: \"valueX\",\r\n\t\t\t\tvalueYField: \"upper\",\r\n\t\t\t\topenValueYField: \"value_close\",\r\n\t\t\t\txAxis: stockSeries.get(\"xAxis\"),\r\n\t\t\t\tyAxis: stockSeries.get(\"yAxis\"),\r\n\t\t\t\tgroupDataDisabled: true,\r\n\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\tconnect: false,\r\n\t\t\t\tautoGapCount: Infinity,\r\n\t\t\t\tthemeTags: [\"indicator\", \"supertrend\", \"upper\"]\r\n\t\t\t}))\r\n\r\n\t\t\tupperBandSeries.fills.template.set(\"visible\", true);\r\n\t\t\tupperBandSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\r\n\t\t\tthis.upperBandSeries = upperBandSeries;\r\n\r\n\t\t\tconst lowerBandSeries = chart.series.push(LineSeries.new(this._root, {\r\n\t\t\t\tvalueXField: \"valueX\",\r\n\t\t\t\tvalueYField: \"lower\",\r\n\t\t\t\topenValueYField: \"value_close\",\r\n\t\t\t\txAxis: stockSeries.get(\"xAxis\"),\r\n\t\t\t\tyAxis: stockSeries.get(\"yAxis\"),\r\n\t\t\t\tgroupDataDisabled: true,\r\n\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\tconnect: false,\r\n\t\t\t\tautoGapCount: Infinity,\r\n\t\t\t\tthemeTags: [\"indicator\", \"supertrend\", \"lower\"]\r\n\t\t\t}))\r\n\r\n\t\t\tlowerBandSeries.fills.template.set(\"visible\", true);\r\n\t\t\tlowerBandSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\t\t\tthis.lowerBandSeries = lowerBandSeries;\r\n\r\n\t\t\tthis._handleLegend(this.series);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\t\tif (this.isDirty(\"upperColor\")) {\r\n\t\t\tconst color = this.get(\"upperColor\");\r\n\t\t\tconst upperBandSeries = this.upperBandSeries;\r\n\t\t\tupperBandSeries.set(\"stroke\", color);\r\n\t\t\tupperBandSeries.set(\"fill\", color);\r\n\t\t\tupperBandSeries.strokes.template.set(\"stroke\", color);\r\n\r\n\t\t\tthis._updateSeriesColor(upperBandSeries, color, \"upperColor\");\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"lowerColor\")) {\r\n\t\t\tconst color = this.get(\"lowerColor\");\r\n\t\t\tconst lowerBandSeries = this.lowerBandSeries;\r\n\t\t\tlowerBandSeries.set(\"stroke\", color);\r\n\t\t\tlowerBandSeries.set(\"fill\", color);\r\n\t\t\tlowerBandSeries.strokes.template.set(\"stroke\", color);\r\n\r\n\t\t\tthis._updateSeriesColor(lowerBandSeries, color, \"lowerColor\");\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"multiplier\")) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(\"multiplier\", this.get(\"multiplier\"));\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _getDataArray(dataItems: Array<DataItem<any>>): Array<any> {\r\n\t\tconst data: Array<any> = [];\r\n\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\tdata.push({ valueX: dataItem.get(\"valueX\"), value_close: dataItem.get(\"valueY\"), value_high: dataItem.get(\"highValueY\"), value_low: dataItem.get(\"lowValueY\") });\r\n\t\t})\r\n\t\treturn data;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tlet period = this.get(\"period\", 10);\r\n\t\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\t\tconst dataItems = stockSeries.dataItems;\r\n\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\r\n\t\t\tlet i = 0;\r\n\t\t\tlet index = 0;\r\n\t\t\tlet tr = 0;\r\n\t\t\tlet prevClose: number | undefined;\r\n\t\t\tlet prevATR: number | undefined;\r\n\t\t\tlet multiplier = this.get(\"multiplier\", 3);\r\n\r\n\r\n\t\t\tlet atr: number | undefined;\r\n\t\t\tlet trendDirection: boolean = false;\r\n\t\t\tlet prevSuperTrend: number | undefined;\r\n\t\t\tlet prevUpperBand: number | undefined;\r\n\t\t\tlet prevLowerBand: number | undefined;\r\n\t\t\tlet upperBand: number | undefined;\r\n\t\t\tlet lowerBand: number | undefined;\r\n\t\t\tlet superTrend: number | undefined;\r\n\r\n\r\n\t\t\t$array.each(data, (dataItem) => {\r\n\r\n\t\t\t\tlet valueClose = dataItem.value_close;\r\n\r\n\t\t\t\tif (valueClose != null && prevClose != null) {\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\ttr = Math.max(dataItem.value_high - dataItem.value_low, Math.abs(dataItem.value_high - prevClose), Math.abs(dataItem.value_low - prevClose));\r\n\t\t\t\t\tdataItem.tr = tr;\r\n\r\n\t\t\t\t\tif (i >= period) {\r\n\t\t\t\t\t\tif (i == period) {\r\n\t\t\t\t\t\t\tlet sum = 0;\r\n\t\t\t\t\t\t\tlet k = 0;\r\n\t\t\t\t\t\t\tfor (let j = index; j >= 0; j--) {\r\n\t\t\t\t\t\t\t\tsum += data[j].tr;\r\n\t\t\t\t\t\t\t\tk++;\r\n\t\t\t\t\t\t\t\tif (k == period) {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tatr = sum / period;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (prevATR != null) {\r\n\t\t\t\t\t\t\t\tatr = (prevATR * (period - 1) + tr) / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tprevATR = atr;\r\n\r\n\t\t\t\t\t\tlet basicUpperBand = (dataItem.value_high + dataItem.value_low) / 2 + (multiplier * Number(atr));\r\n\t\t\t\t\t\tlet basicLowerBand = (dataItem.value_high + dataItem.value_low) / 2 - (multiplier * Number(atr));\r\n\r\n\t\t\t\t\t\t// Adjusted bands\r\n\t\t\t\t\t\tif (i === period) {\r\n\t\t\t\t\t\t\tupperBand = basicUpperBand;\r\n\t\t\t\t\t\t\tlowerBand = basicLowerBand;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tupperBand = basicUpperBand < Number(prevUpperBand) || prevClose > Number(prevUpperBand)\r\n\t\t\t\t\t\t\t\t? basicUpperBand\r\n\t\t\t\t\t\t\t\t: prevUpperBand;\r\n\t\t\t\t\t\t\tlowerBand = basicLowerBand > Number(prevLowerBand) || prevClose < Number(prevLowerBand)\r\n\t\t\t\t\t\t\t\t? basicLowerBand\r\n\t\t\t\t\t\t\t\t: prevLowerBand;\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t\t\tif (i === period) {\r\n\t\t\t\t\t\t\tsuperTrend = valueClose <= Number(upperBand) ? upperBand : lowerBand;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (prevSuperTrend === prevUpperBand && valueClose <= Number(upperBand)) {\r\n\t\t\t\t\t\t\t\tsuperTrend = upperBand;\r\n\t\t\t\t\t\t\t\ttrendDirection = false; // downtrend\r\n\t\t\t\t\t\t\t} else if (prevSuperTrend === prevUpperBand && valueClose > Number(upperBand)) {\r\n\t\t\t\t\t\t\t\tsuperTrend = lowerBand;\r\n\t\t\t\t\t\t\t\ttrendDirection = true; // uptrend\r\n\t\t\t\t\t\t\t} else if (prevSuperTrend === prevLowerBand && valueClose >= Number(lowerBand)) {\r\n\t\t\t\t\t\t\t\tsuperTrend = lowerBand;\r\n\t\t\t\t\t\t\t\ttrendDirection = true; // uptrend\r\n\t\t\t\t\t\t\t} else if (prevSuperTrend === prevLowerBand && valueClose < Number(lowerBand)) {\r\n\t\t\t\t\t\t\t\tsuperTrend = upperBand;\r\n\t\t\t\t\t\t\t\ttrendDirection = false; // downtrend\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tsuperTrend = prevSuperTrend;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (trendDirection) {\r\n\t\t\t\t\t\t\tdataItem.lower = superTrend;\r\n\t\t\t\t\t\t\tdataItem.upper = undefined;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tdataItem.upper = superTrend;\r\n\t\t\t\t\t\t\tdataItem.lower = undefined;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tprevLowerBand = lowerBand;\r\n\t\t\t\t\t\tprevUpperBand = upperBand;\r\n\t\t\t\t\t\tprevSuperTrend = superTrend;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tindex++;\r\n\t\t\t\tprevClose = valueClose;\r\n\t\t\t})\r\n\r\n\t\t\tthis.upperBandSeries.updateData(data);\r\n\t\t\tthis.lowerBandSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n\tprotected _dispose() {\r\n\t\tthis.upperBandSeries.dispose();\r\n\t\tthis.lowerBandSeries.dispose();\r\n\t\tsuper._dispose();\r\n\t}\r\n\r\n\tpublic async hide(duration?: number): Promise<any> {\r\n\t\treturn Promise.all([\r\n\t\t\tsuper.hide(duration),\r\n\t\t\tthis.upperBandSeries.hide(duration),\r\n\t\t\tthis.lowerBandSeries.hide(duration)\r\n\t\t]);\r\n\t}\r\n\r\n\tpublic async show(duration?: number): Promise<any> {\r\n\t\treturn Promise.all([\r\n\t\t\tsuper.show(duration),\r\n\t\t\tthis.upperBandSeries.show(duration),\r\n\t\t\tthis.lowerBandSeries.show(duration)\r\n\t\t]);\r\n\t}\r\n\r\n}"]}
1
+ {"version":3,"file":"SuperTrend.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/SuperTrend.ts"],"names":[],"mappings":"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","sourcesContent":["import { Indicator, IIndicatorSettings, IIndicatorPrivate, IIndicatorEvents, IIndicatorEditableSetting } from \"./Indicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport type { Color } from \"../../../core/util/Color\";\r\nimport type { DataItem } from \"../../../..\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface ISuperTrendSettings extends IIndicatorSettings {\r\n\tupperColor?: Color;\r\n\tlowerColor?: Color;\r\n\tmultiplier?: number;\r\n}\r\n\r\nexport interface ISuperTrendPrivate extends IIndicatorPrivate {\r\n}\r\n\r\nexport interface ISuperTrendEvents extends IIndicatorEvents {\r\n}\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class SuperTrend extends Indicator {\r\n\tpublic static className: string = \"SuperTrend\";\r\n\tpublic static classNames: Array<string> = Indicator.classNames.concat([SuperTrend.className]);\r\n\r\n\tdeclare public _settings: ISuperTrendSettings;\r\n\tdeclare public _privateSettings: ISuperTrendPrivate;\r\n\tdeclare public _events: ISuperTrendEvents;\r\n\r\n\t/**\r\n\t * Indicator series for the upper band.\r\n\t */\r\n\tpublic upperBandSeries!: LineSeries;\r\n\r\n\t/**\r\n\t * Indicator series for the lower band.\r\n\t */\r\n\tpublic lowerBandSeries!: LineSeries;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"period\",\r\n\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"multiplier\",\r\n\t\tname: this.root.language.translateAny(\"Multiplier\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"upperColor\",\r\n\t\tname: this.root.language.translateAny(\"Upper\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"lowerColor\",\r\n\t\tname: this.root.language.translateAny(\"Lower\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\tconst chart = stockSeries.chart;\r\n\r\n\t\tif (chart) {\r\n\r\n\t\t\tconst series = chart.series.push(LineSeries.new(this._root, {\r\n\t\t\t\tvalueXField: \"valueX\",\r\n\t\t\t\tvalueYField: \"ma\",\r\n\t\t\t\tgroupDataDisabled: true,\r\n\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\txAxis: stockSeries.get(\"xAxis\"),\r\n\t\t\t\tyAxis: stockSeries.get(\"yAxis\"),\r\n\t\t\t\tthemeTags: [\"indicator\", \"supertrend\"],\r\n\t\t\t\tname: \"Super Trend\",\r\n\t\t\t}))\r\n\r\n\t\t\tseries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\t\t\tthis.series = series;\r\n\r\n\t\t\tconst upperBandSeries = chart.series.push(LineSeries.new(this._root, {\r\n\t\t\t\tvalueXField: \"valueX\",\r\n\t\t\t\tvalueYField: \"upper\",\r\n\t\t\t\topenValueYField: \"value_close\",\r\n\t\t\t\txAxis: stockSeries.get(\"xAxis\"),\r\n\t\t\t\tyAxis: stockSeries.get(\"yAxis\"),\r\n\t\t\t\tgroupDataDisabled: true,\r\n\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\tconnect: false,\r\n\t\t\t\tautoGapCount: Infinity,\r\n\t\t\t\tthemeTags: [\"indicator\", \"supertrend\", \"upper\"]\r\n\t\t\t}))\r\n\r\n\t\t\tupperBandSeries.fills.template.set(\"visible\", true);\r\n\t\t\tupperBandSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\r\n\t\t\tthis.upperBandSeries = upperBandSeries;\r\n\r\n\t\t\tconst lowerBandSeries = chart.series.push(LineSeries.new(this._root, {\r\n\t\t\t\tvalueXField: \"valueX\",\r\n\t\t\t\tvalueYField: \"lower\",\r\n\t\t\t\topenValueYField: \"value_close\",\r\n\t\t\t\txAxis: stockSeries.get(\"xAxis\"),\r\n\t\t\t\tyAxis: stockSeries.get(\"yAxis\"),\r\n\t\t\t\tgroupDataDisabled: true,\r\n\t\t\t\tcalculateAggregates: true,\r\n\t\t\t\tconnect: false,\r\n\t\t\t\tautoGapCount: Infinity,\r\n\t\t\t\tthemeTags: [\"indicator\", \"supertrend\", \"lower\"]\r\n\t\t\t}))\r\n\r\n\t\t\tlowerBandSeries.fills.template.set(\"visible\", true);\r\n\t\t\tlowerBandSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\t\t\tthis.lowerBandSeries = lowerBandSeries;\r\n\r\n\t\t\tthis._handleLegend(this.series);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\t\tif (this.isDirty(\"upperColor\")) {\r\n\t\t\tconst color = this.get(\"upperColor\");\r\n\t\t\tconst upperBandSeries = this.upperBandSeries;\r\n\t\t\tupperBandSeries.set(\"stroke\", color);\r\n\t\t\tupperBandSeries.set(\"fill\", color);\r\n\t\t\tupperBandSeries.strokes.template.set(\"stroke\", color);\r\n\r\n\t\t\tthis._updateSeriesColor(upperBandSeries, color, \"upperColor\");\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"lowerColor\")) {\r\n\t\t\tconst color = this.get(\"lowerColor\");\r\n\t\t\tconst lowerBandSeries = this.lowerBandSeries;\r\n\t\t\tlowerBandSeries.set(\"stroke\", color);\r\n\t\t\tlowerBandSeries.set(\"fill\", color);\r\n\t\t\tlowerBandSeries.strokes.template.set(\"stroke\", color);\r\n\r\n\t\t\tthis._updateSeriesColor(lowerBandSeries, color, \"lowerColor\");\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"multiplier\")) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(\"multiplier\", this.get(\"multiplier\"));\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _getDataArray(dataItems: Array<DataItem<any>>): Array<any> {\r\n\t\tconst data: Array<any> = [];\r\n\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\tdata.push({ valueX: dataItem.get(\"valueX\"), value_close: dataItem.get(\"valueY\"), value_high: dataItem.get(\"highValueY\"), value_low: dataItem.get(\"lowValueY\") });\r\n\t\t})\r\n\t\treturn data;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tlet period = this.get(\"period\", 10);\r\n\t\t\tconst stockSeries = this.get(\"stockSeries\");\r\n\t\t\tconst dataItems = stockSeries.dataItems;\r\n\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\r\n\t\t\tlet i = 0;\r\n\t\t\tlet index = 0;\r\n\t\t\tlet tr = 0;\r\n\t\t\tlet prevClose: number | undefined;\r\n\t\t\tlet prevATR: number | undefined;\r\n\t\t\tlet multiplier = this.get(\"multiplier\", 3);\r\n\r\n\r\n\t\t\tlet atr: number | undefined;\r\n\t\t\tlet trendDirection: boolean = false;\r\n\t\t\tlet prevSuperTrend: number | undefined;\r\n\t\t\tlet prevUpperBand: number | undefined;\r\n\t\t\tlet prevLowerBand: number | undefined;\r\n\t\t\tlet upperBand: number | undefined;\r\n\t\t\tlet lowerBand: number | undefined;\r\n\t\t\tlet superTrend: number | undefined;\r\n\r\n\r\n\t\t\t$array.each(data, (dataItem) => {\r\n\r\n\t\t\t\tlet valueClose = dataItem.value_close;\r\n\r\n\t\t\t\tif (valueClose != null && prevClose != null) {\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\ttr = Math.max(dataItem.value_high - dataItem.value_low, Math.abs(dataItem.value_high - prevClose), Math.abs(dataItem.value_low - prevClose));\r\n\t\t\t\t\tdataItem.tr = tr;\r\n\r\n\t\t\t\t\tif (i >= period) {\r\n\t\t\t\t\t\tif (i == period) {\r\n\t\t\t\t\t\t\tlet sum = 0;\r\n\t\t\t\t\t\t\tlet k = 0;\r\n\t\t\t\t\t\t\tfor (let j = index; j >= 0; j--) {\r\n\t\t\t\t\t\t\t\tsum += data[j].tr;\r\n\t\t\t\t\t\t\t\tk++;\r\n\t\t\t\t\t\t\t\tif (k == period) {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tatr = sum / period;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (prevATR != null) {\r\n\t\t\t\t\t\t\t\tatr = (prevATR * (period - 1) + tr) / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tprevATR = atr;\r\n\r\n\t\t\t\t\t\tlet basicUpperBand = (dataItem.value_high + dataItem.value_low) / 2 + (multiplier * Number(atr));\r\n\t\t\t\t\t\tlet basicLowerBand = (dataItem.value_high + dataItem.value_low) / 2 - (multiplier * Number(atr));\r\n\r\n\t\t\t\t\t\t// Adjusted bands\r\n\t\t\t\t\t\tif (i === period) {\r\n\t\t\t\t\t\t\tupperBand = basicUpperBand;\r\n\t\t\t\t\t\t\tlowerBand = basicLowerBand;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tupperBand = basicUpperBand < Number(prevUpperBand) || prevClose > Number(prevUpperBand)\r\n\t\t\t\t\t\t\t\t? basicUpperBand\r\n\t\t\t\t\t\t\t\t: prevUpperBand;\r\n\t\t\t\t\t\t\tlowerBand = basicLowerBand > Number(prevLowerBand) || prevClose < Number(prevLowerBand)\r\n\t\t\t\t\t\t\t\t? basicLowerBand\r\n\t\t\t\t\t\t\t\t: prevLowerBand;\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t\t\tif (i === period) {\r\n\t\t\t\t\t\t\tsuperTrend = valueClose <= Number(upperBand) ? upperBand : lowerBand;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (prevSuperTrend === prevUpperBand && valueClose <= Number(upperBand)) {\r\n\t\t\t\t\t\t\t\tsuperTrend = upperBand;\r\n\t\t\t\t\t\t\t\ttrendDirection = false; // downtrend\r\n\t\t\t\t\t\t\t} else if (prevSuperTrend === prevUpperBand && valueClose > Number(upperBand)) {\r\n\t\t\t\t\t\t\t\tsuperTrend = lowerBand;\r\n\t\t\t\t\t\t\t\ttrendDirection = true; // uptrend\r\n\t\t\t\t\t\t\t} else if (prevSuperTrend === prevLowerBand && valueClose >= Number(lowerBand)) {\r\n\t\t\t\t\t\t\t\tsuperTrend = lowerBand;\r\n\t\t\t\t\t\t\t\ttrendDirection = true; // uptrend\r\n\t\t\t\t\t\t\t} else if (prevSuperTrend === prevLowerBand && valueClose < Number(lowerBand)) {\r\n\t\t\t\t\t\t\t\tsuperTrend = upperBand;\r\n\t\t\t\t\t\t\t\ttrendDirection = false; // downtrend\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tsuperTrend = prevSuperTrend;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (trendDirection) {\r\n\t\t\t\t\t\t\tdataItem.lower = superTrend;\r\n\t\t\t\t\t\t\tdataItem.upper = undefined;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tdataItem.upper = superTrend;\r\n\t\t\t\t\t\t\tdataItem.lower = undefined;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tprevLowerBand = lowerBand;\r\n\t\t\t\t\t\tprevUpperBand = upperBand;\r\n\t\t\t\t\t\tprevSuperTrend = superTrend;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tindex++;\r\n\t\t\t\tprevClose = valueClose;\r\n\t\t\t})\r\n\r\n\t\t\tthis.upperBandSeries.updateData(data);\r\n\t\t\tthis.lowerBandSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n\tprotected _dispose() {\r\n\t\tthis.upperBandSeries.dispose();\r\n\t\tthis.lowerBandSeries.dispose();\r\n\t\tsuper._dispose();\r\n\t}\r\n\r\n\tpublic async hide(duration?: number): Promise<any> {\r\n\t\treturn Promise.all([\r\n\t\t\tsuper.hide(duration),\r\n\t\t\tthis.upperBandSeries.hide(duration),\r\n\t\t\tthis.lowerBandSeries.hide(duration)\r\n\t\t]);\r\n\t}\r\n\r\n\tpublic async show(duration?: number): Promise<any> {\r\n\t\treturn Promise.all([\r\n\t\t\tsuper.show(duration),\r\n\t\t\tthis.upperBandSeries.show(duration),\r\n\t\t\tthis.lowerBandSeries.show(duration)\r\n\t\t]);\r\n\t}\r\n\r\n}"]}