@amcharts/amcharts5 5.14.4 → 5.15.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 (315) hide show
  1. package/.internal/charts/flow/FlowNodes.d.ts +1 -0
  2. package/.internal/charts/flow/FlowNodes.d.ts.map +1 -1
  3. package/.internal/charts/flow/FlowNodes.js +7 -0
  4. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  5. package/.internal/charts/gantt/Gantt.d.ts +1 -0
  6. package/.internal/charts/gantt/Gantt.d.ts.map +1 -1
  7. package/.internal/charts/gantt/Gantt.js +7 -0
  8. package/.internal/charts/gantt/Gantt.js.map +1 -1
  9. package/.internal/charts/gantt/GanttCategoryAxis.d.ts +1 -0
  10. package/.internal/charts/gantt/GanttCategoryAxis.d.ts.map +1 -1
  11. package/.internal/charts/gantt/GanttCategoryAxis.js +7 -0
  12. package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
  13. package/.internal/charts/hierarchy/Hierarchy.d.ts +1 -0
  14. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  15. package/.internal/charts/hierarchy/Hierarchy.js +7 -0
  16. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  17. package/.internal/charts/map/ClusteredPointSeries.d.ts +2 -2
  18. package/.internal/charts/map/ClusteredPointSeries.d.ts.map +1 -1
  19. package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
  20. package/.internal/charts/percent/PercentSeries.d.ts +1 -0
  21. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  22. package/.internal/charts/percent/PercentSeries.js +7 -0
  23. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  24. package/.internal/charts/stock/indicators/AccelerationBands.js +3 -3
  25. package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -1
  26. package/.internal/charts/stock/indicators/AccumulationDistribution.js +1 -1
  27. package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
  28. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +1 -1
  29. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
  30. package/.internal/charts/stock/indicators/Aroon.js +2 -2
  31. package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
  32. package/.internal/charts/stock/indicators/AverageTrueRange.js +1 -1
  33. package/.internal/charts/stock/indicators/AverageTrueRange.js.map +1 -1
  34. package/.internal/charts/stock/indicators/AwesomeOscillator.js +1 -1
  35. package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
  36. package/.internal/charts/stock/indicators/BollingerBands.js +2 -2
  37. package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
  38. package/.internal/charts/stock/indicators/BullBearPower.js +1 -1
  39. package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -1
  40. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +1 -1
  41. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
  42. package/.internal/charts/stock/indicators/ChaikinOscillator.js +1 -1
  43. package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
  44. package/.internal/charts/stock/indicators/CommodityChannelIndex.js +1 -1
  45. package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
  46. package/.internal/charts/stock/indicators/DisparityIndex.js +1 -1
  47. package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
  48. package/.internal/charts/stock/indicators/HeikinAshi.js +1 -1
  49. package/.internal/charts/stock/indicators/HeikinAshi.js.map +1 -1
  50. package/.internal/charts/stock/indicators/MACD.js +3 -3
  51. package/.internal/charts/stock/indicators/MACD.js.map +1 -1
  52. package/.internal/charts/stock/indicators/MACross.js +2 -2
  53. package/.internal/charts/stock/indicators/MACross.js.map +1 -1
  54. package/.internal/charts/stock/indicators/MedianPrice.js +1 -1
  55. package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
  56. package/.internal/charts/stock/indicators/Momentum.js +1 -1
  57. package/.internal/charts/stock/indicators/Momentum.js.map +1 -1
  58. package/.internal/charts/stock/indicators/MovingAverage.js +1 -1
  59. package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
  60. package/.internal/charts/stock/indicators/MovingAverageDeviation.js +1 -1
  61. package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
  62. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +2 -2
  63. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
  64. package/.internal/charts/stock/indicators/OnBalanceVolume.js +1 -1
  65. package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
  66. package/.internal/charts/stock/indicators/PVT.js +1 -1
  67. package/.internal/charts/stock/indicators/PVT.js.map +1 -1
  68. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +3 -3
  69. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  70. package/.internal/charts/stock/indicators/StandardDeviation.js +1 -1
  71. package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
  72. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +2 -2
  73. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
  74. package/.internal/charts/stock/indicators/StochasticOscillator.js +2 -2
  75. package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
  76. package/.internal/charts/stock/indicators/SuperTrend.js +2 -2
  77. package/.internal/charts/stock/indicators/SuperTrend.js.map +1 -1
  78. package/.internal/charts/stock/indicators/Trix.js +2 -2
  79. package/.internal/charts/stock/indicators/Trix.js.map +1 -1
  80. package/.internal/charts/stock/indicators/TypicalPrice.js +1 -1
  81. package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
  82. package/.internal/charts/stock/indicators/VWAP.js +1 -1
  83. package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
  84. package/.internal/charts/stock/indicators/Volume.d.ts.map +1 -1
  85. package/.internal/charts/stock/indicators/Volume.js +1 -1
  86. package/.internal/charts/stock/indicators/Volume.js.map +1 -1
  87. package/.internal/charts/stock/indicators/VolumeProfile.d.ts.map +1 -1
  88. package/.internal/charts/stock/indicators/VolumeProfile.js +1 -0
  89. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  90. package/.internal/charts/stock/indicators/WilliamsR.js +1 -1
  91. package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
  92. package/.internal/charts/stock/indicators/ZigZag.js +1 -1
  93. package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
  94. package/.internal/charts/stock/toolbar/DrawingControl.d.ts +1 -0
  95. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  96. package/.internal/charts/stock/toolbar/DrawingControl.js +8 -1
  97. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  98. package/.internal/charts/venn/Venn.d.ts +1 -0
  99. package/.internal/charts/venn/Venn.d.ts.map +1 -1
  100. package/.internal/charts/venn/Venn.js +7 -0
  101. package/.internal/charts/venn/Venn.js.map +1 -1
  102. package/.internal/charts/xy/XYChart.d.ts +1 -0
  103. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  104. package/.internal/charts/xy/XYChart.js +8 -0
  105. package/.internal/charts/xy/XYChart.js.map +1 -1
  106. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  107. package/.internal/charts/xy/axes/AxisRenderer.js +6 -1
  108. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  109. package/.internal/charts/xy/axes/DateAxis.js +10 -10
  110. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  111. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  112. package/.internal/charts/xy/axes/GaplessDateAxis.js +5 -4
  113. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  114. package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
  115. package/.internal/charts/xy/series/BaseColumnSeries.js +19 -19
  116. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  117. package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
  118. package/.internal/charts/xy/series/CandlestickSeries.js +0 -1
  119. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  120. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  121. package/.internal/charts/xy/series/LineSeries.js +8 -6
  122. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  123. package/.internal/charts/xy/series/XYSeries.d.ts +2 -0
  124. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  125. package/.internal/charts/xy/series/XYSeries.js +22 -8
  126. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  127. package/.internal/core/Registry.js +1 -1
  128. package/.internal/core/Registry.js.map +1 -1
  129. package/.internal/core/Root.d.ts.map +1 -1
  130. package/.internal/core/Root.js +35 -2
  131. package/.internal/core/Root.js.map +1 -1
  132. package/.internal/core/render/Component.d.ts +5 -0
  133. package/.internal/core/render/Component.d.ts.map +1 -1
  134. package/.internal/core/render/Component.js +41 -0
  135. package/.internal/core/render/Component.js.map +1 -1
  136. package/.internal/core/render/Container.d.ts +1 -1
  137. package/.internal/core/render/Container.d.ts.map +1 -1
  138. package/.internal/core/render/Container.js +3 -3
  139. package/.internal/core/render/Container.js.map +1 -1
  140. package/.internal/core/render/Series.d.ts.map +1 -1
  141. package/.internal/core/render/Series.js +12 -9
  142. package/.internal/core/render/Series.js.map +1 -1
  143. package/.internal/plugins/json/ChartSerializer.d.ts +82 -0
  144. package/.internal/plugins/json/ChartSerializer.d.ts.map +1 -0
  145. package/.internal/plugins/json/ChartSerializer.js +782 -0
  146. package/.internal/plugins/json/ChartSerializer.js.map +1 -0
  147. package/.internal/plugins/json/Json.d.ts.map +1 -1
  148. package/.internal/plugins/json/Json.js +178 -54
  149. package/.internal/plugins/json/Json.js.map +1 -1
  150. package/.internal/plugins/json/Serializer.d.ts +40 -6
  151. package/.internal/plugins/json/Serializer.d.ts.map +1 -1
  152. package/.internal/plugins/json/Serializer.js +97 -24
  153. package/.internal/plugins/json/Serializer.js.map +1 -1
  154. package/CHANGELOG.md +22 -0
  155. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  156. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  157. package/examples/javascript/flow-chord/package.json +1 -1
  158. package/examples/javascript/flow-chord-directed/package.json +1 -1
  159. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  160. package/examples/javascript/flow-sankey/package.json +1 -1
  161. package/examples/javascript/gantt/package.json +1 -1
  162. package/examples/javascript/gantt-multilevel/package.json +1 -1
  163. package/examples/javascript/gantt-simple/package.json +1 -1
  164. package/examples/javascript/gauge/package.json +1 -1
  165. package/examples/javascript/gauge-bands/package.json +1 -1
  166. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  167. package/examples/javascript/hierarchy-pack/package.json +1 -1
  168. package/examples/javascript/hierarchy-partition/package.json +1 -1
  169. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  170. package/examples/javascript/hierarchy-tree/package.json +1 -1
  171. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  172. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  173. package/examples/javascript/jest/package.json +1 -1
  174. package/examples/javascript/json-pie/package.json +1 -1
  175. package/examples/javascript/json-xy/package.json +1 -1
  176. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  177. package/examples/javascript/map-clustered-points/package.json +1 -1
  178. package/examples/javascript/map-day-and-night/package.json +1 -1
  179. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  180. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  181. package/examples/javascript/map-with-bubbles/package.json +1 -1
  182. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  183. package/examples/javascript/misc-40-charts/package.json +1 -1
  184. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  185. package/examples/javascript/pie-chart/package.json +1 -1
  186. package/examples/javascript/pie-donut-chart/package.json +1 -1
  187. package/examples/javascript/pie-variable-radius/package.json +1 -1
  188. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  189. package/examples/javascript/radar-heat-map/package.json +1 -1
  190. package/examples/javascript/radar-line/package.json +1 -1
  191. package/examples/javascript/radar-time-line/package.json +1 -1
  192. package/examples/javascript/sliced-funnel/package.json +1 -1
  193. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  194. package/examples/javascript/sliced-pyramid/package.json +1 -1
  195. package/examples/javascript/stock-chart/package.json +1 -1
  196. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  197. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  198. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  199. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  200. package/examples/javascript/stock-chart-live/package.json +1 -1
  201. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  202. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  203. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  204. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  205. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  206. package/examples/javascript/venn-diagram/package.json +1 -1
  207. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  208. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  209. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  210. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  211. package/examples/javascript/xy-bubble/package.json +1 -1
  212. package/examples/javascript/xy-candlestick/package.json +1 -1
  213. package/examples/javascript/xy-clustered-column/package.json +1 -1
  214. package/examples/javascript/xy-column/package.json +1 -1
  215. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  216. package/examples/javascript/xy-data-grouping/package.json +1 -1
  217. package/examples/javascript/xy-draggable-range/package.json +1 -1
  218. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  219. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  220. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  221. package/examples/javascript/xy-line/package.json +1 -1
  222. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  223. package/examples/javascript/xy-live-data/package.json +1 -1
  224. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  225. package/examples/javascript/xy-ohlc/package.json +1 -1
  226. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  227. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  228. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  229. package/examples/javascript/xy-stacked-column/package.json +1 -1
  230. package/examples/javascript/xy-stacked-step/package.json +1 -1
  231. package/examples/javascript/xy-stock/package.json +1 -1
  232. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  233. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  234. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  235. package/examples/typescript/flow-chord/package.json +1 -1
  236. package/examples/typescript/flow-chord-directed/package.json +1 -1
  237. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  238. package/examples/typescript/flow-sankey/package.json +1 -1
  239. package/examples/typescript/gantt/package.json +1 -1
  240. package/examples/typescript/gantt-multilevel/package.json +1 -1
  241. package/examples/typescript/gantt-simple/package.json +1 -1
  242. package/examples/typescript/gauge/package.json +1 -1
  243. package/examples/typescript/gauge-bands/package.json +1 -1
  244. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  245. package/examples/typescript/hierarchy-pack/package.json +1 -1
  246. package/examples/typescript/hierarchy-partition/package.json +1 -1
  247. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  248. package/examples/typescript/hierarchy-tree/package.json +1 -1
  249. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  250. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  251. package/examples/typescript/jest/package.json +1 -1
  252. package/examples/typescript/json-pie/package.json +1 -1
  253. package/examples/typescript/json-xy/package.json +1 -1
  254. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  255. package/examples/typescript/map-clustered-points/package.json +1 -1
  256. package/examples/typescript/map-day-and-night/package.json +1 -1
  257. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  258. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  259. package/examples/typescript/map-with-bubbles/package.json +1 -1
  260. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  261. package/examples/typescript/misc-40-charts/package.json +1 -1
  262. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  263. package/examples/typescript/pie-chart/package.json +1 -1
  264. package/examples/typescript/pie-donut-chart/package.json +1 -1
  265. package/examples/typescript/pie-variable-radius/package.json +1 -1
  266. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  267. package/examples/typescript/radar-heat-map/package.json +1 -1
  268. package/examples/typescript/radar-line/package.json +1 -1
  269. package/examples/typescript/radar-time-line/package.json +1 -1
  270. package/examples/typescript/sliced-funnel/package.json +1 -1
  271. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  272. package/examples/typescript/sliced-pyramid/package.json +1 -1
  273. package/examples/typescript/stock-chart/package.json +1 -1
  274. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  275. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  276. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  277. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  278. package/examples/typescript/stock-chart-live/package.json +1 -1
  279. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  280. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  281. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  282. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  283. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  284. package/examples/typescript/venn-diagram/package.json +1 -1
  285. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  286. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  287. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  288. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  289. package/examples/typescript/xy-bubble/package.json +1 -1
  290. package/examples/typescript/xy-candlestick/package.json +1 -1
  291. package/examples/typescript/xy-clustered-column/package.json +1 -1
  292. package/examples/typescript/xy-column/package.json +1 -1
  293. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  294. package/examples/typescript/xy-data-grouping/package.json +1 -1
  295. package/examples/typescript/xy-draggable-range/package.json +1 -1
  296. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  297. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  298. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  299. package/examples/typescript/xy-line/package.json +1 -1
  300. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  301. package/examples/typescript/xy-live-data/package.json +1 -1
  302. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  303. package/examples/typescript/xy-ohlc/package.json +1 -1
  304. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  305. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  306. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  307. package/examples/typescript/xy-stacked-column/package.json +1 -1
  308. package/examples/typescript/xy-stacked-step/package.json +1 -1
  309. package/examples/typescript/xy-stock/package.json +1 -1
  310. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  311. package/package.json +4 -4
  312. package/plugins/json.d.ts +1 -0
  313. package/plugins/json.d.ts.map +1 -1
  314. package/plugins/json.js +1 -0
  315. package/plugins/json.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PercentSeries.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/percent/PercentSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { Graphics } from \"../../core/render/Graphics\";\nimport type { Label } from \"../../core/render/Label\";\nimport type { Tick } from \"../../core/render/Tick\";\nimport type { ListTemplate } from \"../../core/util/List\";\nimport type { ColorSet } from \"../../core/util/ColorSet\";\nimport type { ILegendDataItem } from \"../../core/render/Legend\";\nimport type { Color } from \"../../core/util/Color\";\nimport type { PercentChart } from \"./PercentChart\";\nimport type { PatternSet } from \"../../core/util/PatternSet\";\nimport type { Pattern } from \"../../core/render/patterns/Pattern\";\n\nimport { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate } from \"../../core/render/Series\";\nimport { Container } from \"../../core/render/Container\";\nimport { visualSettings } from \"../../core/render/Graphics\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\n\nexport interface IPercentSeriesDataItem extends ISeriesDataItem {\n\n\t/**\n\t * Percent of the series value total.\n\t */\n\tvaluePercentTotal: number;\n\n\t/**\n\t * Category.\n\t */\n\tcategory: string;\n\n\t/**\n\t * Slice visual element.\n\t */\n\tslice: Graphics;\n\n\t/**\n\t * Slice label.\n\t */\n\tlabel: Label;\n\n\t/**\n\t * Slice tick.\n\t */\n\ttick: Tick;\n\n\t/**\n\t * A related legend data item.\n\t */\n\tlegendDataItem: DataItem<ILegendDataItem>;\n\n\t/**\n\t * Fill color used for the slice and related elements, e.g. legend marker.\n\t */\n\tfill: Color;\n\n\t/**\n\t * Pattern used for the slice and related elements, e.g. legend marker.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/} for more info\n\t * @since 5.10.0\n\t */\n\tfillPattern: Pattern;\n\n}\n\n//type IPercentSeriesDataItemSettings = { [K in keyof IPercentSeriesDataItem]?: string; };\n\nexport interface IPercentSeriesSettings extends ISeriesSettings {\n\n\t/**\n\t * A [[ColorSet]] to use when asigning colors for slices.\n\t */\n\tcolors?: ColorSet;\n\n\t/**\n\t * A [[PatternSet]] to use when asigning patterns for slices.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/#Pattern_sets} for more info\n\t * @since 5.10.0\n\t */\n\tpatterns?: PatternSet;\n\n\t/**\n\t * A field in data that holds category names.\n\t */\n\tcategoryField?: string;\n\n\t/**\n\t * Should slice labels be aligned in columns/rows?\n\t */\n\talignLabels?: boolean;\n\n\t/**\n\t * A field that holds color for slice fill.\n\t */\n\tfillField?: string;\n\n}\n\nexport interface IPercentSeriesPrivate extends ISeriesPrivate {\n\n\t/**\n\t * Calculate average value in series.\n\t */\n\tvalueAverage?: number;\n\n\t/**\n\t * Count of items in series.\n\t */\n\tvalueCount?: number;\n\n\t/**\n\t * Sum of values in series.\n\t */\n\tvalueSum?: number;\n\n\t/**\n\t * Sum of all absolute values in series.\n\t */\n\tvalueAbsoluteSum?: number;\n\n\t/**\n\t * Lowest value in series.\n\t */\n\tvalueLow?: number;\n\n\t/**\n\t * Highest value in series.\n\t */\n\tvalueHigh?: number;\n\n}\n\n/**\n * A base class for any percent chart series.\n */\nexport abstract class PercentSeries extends Series {\n\tpublic static className: string = \"PercentSeries\";\n\tpublic static classNames: Array<string> = Series.classNames.concat([PercentSeries.className]);\n\n\tdeclare public _settings: IPercentSeriesSettings;\n\tdeclare public _privateSettings: IPercentSeriesPrivate;\n\tdeclare public _dataItemSettings: IPercentSeriesDataItem;\n\n\tdeclare public _sliceType: Graphics;\n\tdeclare public _labelType: Label;\n\tdeclare public _tickType: Tick;\n\n\tpublic readonly slicesContainer = this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }));\n\tpublic readonly labelsContainer = this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }));\n\tpublic readonly ticksContainer = this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }));\n\n\tprotected _lLabels: Array<{ label: Label, y: number }> = [];\n\tprotected _rLabels: Array<{ label: Label, y: number }> = [];\n\tprotected _hLabels: Array<{ label: Label, y: number }> = [];\n\n\t/**\n\t * A [[ListTemplate]] of all slices in series.\n\t *\n\t * `slices.template` can also be used to configure slices.\n\t */\n\tpublic readonly slices: ListTemplate<this[\"_sliceType\"]> = this.addDisposer(this._makeSlices());\n\n\tprotected abstract _makeSlices(): ListTemplate<this[\"_sliceType\"]>;\n\n\tpublic abstract chart: PercentChart | undefined;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeSlice(dataItem: DataItem<this[\"_dataItemSettings\"]>): this[\"_sliceType\"] {\n\t\tconst slice = this.slicesContainer.children.push(this.slices.make());\n\n\t\tslice.on(\"fill\", () => {\n\t\t\tthis.updateLegendMarker(dataItem);\n\t\t})\n\n\t\tslice.on(\"fillPattern\", () => {\n\t\t\tthis.updateLegendMarker(dataItem);\n\t\t})\n\n\t\tslice.on(\"stroke\", () => {\n\t\t\tthis.updateLegendMarker(dataItem);\n\t\t})\n\n\t\tslice._setDataItem(dataItem);\n\t\tdataItem.set(\"slice\", slice);\n\t\tthis.slices.push(slice);\n\n\t\treturn slice;\n\t}\n\n\t/**\n\t * A [[ListTemplate]] of all slice labels in series.\n\t *\n\t * `labels.template` can also be used to configure slice labels.\n\t */\n\tpublic readonly labels: ListTemplate<this[\"_labelType\"]> = this.addDisposer(this._makeLabels());\n\n\tprotected abstract _makeLabels(): ListTemplate<this[\"_labelType\"]>;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeLabel(dataItem: DataItem<this[\"_dataItemSettings\"]>): this[\"_labelType\"] {\n\t\tconst label = this.labelsContainer.children.push(this.labels.make());\n\t\tlabel._setDataItem(dataItem);\n\t\tdataItem.set(\"label\", label);\n\t\tthis.labels.push(label);\n\t\treturn label;\n\t}\n\n\t/**\n\t * A [[ListTemplate]] of all slice ticks in series.\n\t *\n\t * `ticks.template` can also be used to configure slice ticks.\n\t */\n\tpublic readonly ticks: ListTemplate<this[\"_tickType\"]> = this.addDisposer(this._makeTicks());\n\n\tprotected abstract _makeTicks(): ListTemplate<this[\"_tickType\"]>;\n\n\n\tprotected _shouldMakeBullet(dataItem: DataItem<this[\"_dataItemSettings\"]>): boolean {\n\t\tif (dataItem.get(\"value\") != null) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeTick(dataItem: DataItem<this[\"_dataItemSettings\"]>): this[\"_tickType\"] {\n\t\tconst tick = this.ticksContainer.children.push(this.ticks.make());\n\t\ttick._setDataItem(dataItem);\n\t\tdataItem.set(\"tick\", tick);\n\t\tthis.ticks.push(tick);\n\t\treturn tick;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis.fields.push(\"category\", \"fill\");\n\t\tsuper._afterNew();\n\t}\n\n\tprotected _onDataClear() {\n\t\tconst colors = this.get(\"colors\");\n\t\tif (colors) {\n\t\t\tcolors.reset();\n\t\t}\n\t\tconst patterns = this.get(\"patterns\");\n\t\tif (patterns) {\n\t\t\tpatterns.reset();\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tthis._lLabels = [];\n\t\tthis._rLabels = [];\n\t\tthis._hLabels = [];\n\n\t\tif (this._valuesDirty) {\n\t\t\tlet sum = 0;\n\t\t\tlet absSum = 0;\n\t\t\tlet valueHigh = 0;\n\t\t\tlet valueLow = Infinity;\n\t\t\tlet count = 0;\n\t\t\t$array.each(this._dataItems, (dataItem) => {\n\t\t\t\tlet valueWorking = dataItem.get(\"valueWorking\", 0);\n\t\t\t\tsum += valueWorking;\n\t\t\t\tabsSum += Math.abs(valueWorking);\n\t\t\t});\n\n\t\t\t$array.each(this._dataItems, (dataItem) => {\n\t\t\t\tlet value = dataItem.get(\"valueWorking\", 0);\n\n\t\t\t\tif (value > valueHigh) {\n\t\t\t\t\tvalueHigh = value;\n\t\t\t\t}\n\n\t\t\t\tif (value < valueLow) {\n\t\t\t\t\tvalueLow = value;\n\t\t\t\t}\n\n\t\t\t\tcount++;\n\n\t\t\t\tlet percentTotal = value / absSum;\n\n\t\t\t\tif (absSum == 0) {\n\t\t\t\t\tpercentTotal = 0;\n\t\t\t\t}\n\n\t\t\t\tdataItem.setRaw(\"valuePercentTotal\", percentTotal * 100);\n\t\t\t});\n\n\t\t\tthis.setPrivateRaw(\"valueLow\", valueLow);\n\t\t\tthis.setPrivateRaw(\"valueHigh\", valueHigh);\n\t\t\tthis.setPrivateRaw(\"valueSum\", sum);\n\t\t\tthis.setPrivateRaw(\"valueAverage\", sum / count);\n\t\t\tthis.setPrivateRaw(\"valueAbsoluteSum\", absSum);\n\t\t}\n\t}\n\n\t/**\n\t * Shows hidden series.\n\t *\n\t * @param duration Animation duration in milliseconds\n\t * @return Animation promise\n\t */\n\tpublic async show(duration?: number): Promise<void> {\n\t\tlet promises: Array<Promise<any>> = [];\n\t\tpromises.push(super.show(duration))\n\n\t\tpromises.push(this._sequencedShowHide(true, duration));\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * Hide whole series.\n\t *\n\t * @param duration Animation duration in milliseconds\n\t * @return Animation promise\n\t */\n\tpublic async hide(duration?: number): Promise<void> {\n\t\tlet promises: Array<Promise<any>> = [];\n\t\tpromises.push(super.hide(duration))\n\n\t\tpromises.push(this._sequencedShowHide(false, duration));\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\t\tif (this._valuesDirty) {\n\t\t\t$array.each(this._dataItems, (dataItem) => {\n\t\t\t\tdataItem.get(\"label\").text.markDirtyText();\n\t\t\t});\n\t\t}\n\n\t\tif (this.isDirty(\"legendLabelText\") || this.isDirty(\"legendValueText\")) {\n\t\t\t$array.each(this._dataItems, (dataItem) => {\n\t\t\t\tthis.updateLegendValue(dataItem);\n\t\t\t});\n\t\t}\n\n\t\tthis._arrange();\n\t}\n\n\tprotected _arrange() {\n\t\tthis._arrangeDown(this._lLabels);\n\t\tthis._arrangeUp(this._lLabels);\n\n\t\tthis._arrangeDown(this._rLabels);\n\t\tthis._arrangeUp(this._rLabels);\n\n\t\tthis._arrangeLeft(this._hLabels);\n\t\tthis._arrangeRight(this._hLabels);\n\n\t\t$array.each(this.dataItems, (dataItem) => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\t}\n\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\t\tthis._arrange();\n\t}\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.processDataItem(dataItem);\n\n\t\tif (dataItem.get(\"fill\") == null) {\n\t\t\tlet colors = this.get(\"colors\");\n\t\t\tif (colors) {\n\t\t\t\tdataItem.setRaw(\"fill\", colors.next());\n\t\t\t}\n\t\t}\n\n\t\tif (dataItem.get(\"fillPattern\") == null) {\n\t\t\tlet patterns = this.get(\"patterns\");\n\t\t\tif (patterns) {\n\t\t\t\tdataItem.setRaw(\"fillPattern\", patterns.next());\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Shows series's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async showDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, duration?: number): Promise<void> {\n\t\tconst promises = [super.showDataItem(dataItem, duration)];\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = this.get(\"stateAnimationDuration\", 0);\n\t\t}\n\n\t\tconst easing = this.get(\"stateAnimationEasing\");\n\n\t\tlet value = dataItem.get(\"value\");\n\n\t\tconst animation = dataItem.animate({ key: \"valueWorking\", to: value, duration: duration, easing: easing });\n\t\tif (animation) {\n\t\t\tpromises.push(animation.waitForStop());\n\t\t}\n\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\tpromises.push(tick.show(duration));\n\t\t}\n\t\tconst label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tpromises.push(label.show(duration));\n\t\t}\n\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tif (slice) {\n\t\t\tpromises.push(slice.show(duration));\n\t\t}\n\n\t\tif (slice.get(\"active\")) {\n\t\t\tslice.states.applyAnimate(\"active\");\n\t\t}\n\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * Hides series's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async hideDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, duration?: number): Promise<void> {\n\t\tconst promises = [super.hideDataItem(dataItem, duration)];\n\t\tconst hiddenState = this.states.create(\"hidden\", {})\n\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = hiddenState.get(\"stateAnimationDuration\", this.get(\"stateAnimationDuration\", 0));\n\t\t}\n\n\t\tconst easing = hiddenState.get(\"stateAnimationEasing\", this.get(\"stateAnimationEasing\"));\n\n\t\tconst animation = dataItem.animate({ key: \"valueWorking\", to: 0, duration: duration, easing: easing });\n\t\tif (animation) {\n\t\t\tpromises.push(animation.waitForStop());\n\t\t}\n\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\tpromises.push(tick.hide(duration));\n\t\t}\n\t\tconst label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tpromises.push(label.hide(duration));\n\t\t}\n\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tslice.hideTooltip();\n\n\t\tif (slice) {\n\t\t\tpromises.push(slice.hide(duration));\n\t\t}\n\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tlet label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tthis.labels.removeValue(label);\n\t\t\tlabel.dispose();\n\t\t}\n\t\tlet tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\tthis.ticks.removeValue(tick);\n\t\t\ttick.dispose();\n\t\t}\n\t\tlet slice = dataItem.get(\"slice\");\n\t\tif (slice) {\n\t\t\tthis.slices.removeValue(slice);\n\t\t\tslice.dispose();\n\t\t}\n\t}\n\n\t/**\n\t * Triggers hover on a series data item.\n\t *\n\t * @since 5.0.7\n\t * @param dataItem Target data item\n\t */\n\tpublic hoverDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tif (slice && !slice.isHidden()) {\n\t\t\tslice.hover();\n\t\t}\n\t}\n\n\t/**\n\t * Triggers un-hover on a series data item.\n\t *\n\t * @since 5.0.7\n\t * @param dataItem Target data item\n\t */\n\tpublic unhoverDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tif (slice) {\n\t\t\tslice.unhover();\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLegendMarker(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tif (dataItem) {\n\t\t\tconst slice = dataItem.get(\"slice\");\n\n\t\t\tif (slice) {\n\t\t\t\tconst legendDataItem = dataItem.get(\"legendDataItem\");\n\t\t\t\tif (legendDataItem) {\n\t\t\t\t\tconst markerRectangle = legendDataItem.get(\"markerRectangle\");\n\t\t\t\t\t$array.each(visualSettings, (setting: any) => {\n\t\t\t\t\t\tif (slice.get(setting) != null) {\n\t\t\t\t\t\t\tmarkerRectangle.set(setting, slice.get(setting));\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _arrangeDown(labels?: Array<{ label: Label, y: number }>) {\n\t\tif (labels) {\n\n\t\t\tlet next = this._getNextDown();\n\n\t\t\tlabels.sort((a, b) => {\n\t\t\t\tif (a.y > b.y) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (a.y < b.y) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(labels, (l) => {\n\t\t\t\tconst bounds = l.label.adjustedLocalBounds();\n\t\t\t\tlet labelTop = bounds.top;\n\t\t\t\tif (l.y + labelTop < next) {\n\t\t\t\t\tl.y = next - labelTop;\n\t\t\t\t}\n\t\t\t\tl.label.set(\"y\", l.y);\n\n\t\t\t\tnext = l.y + bounds.bottom;\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _getNextUp() {\n\t\treturn this.labelsContainer.maxHeight();\n\t}\n\n\tprotected _getNextDown() {\n\t\treturn 0;\n\t}\n\n\tprotected _arrangeUp(labels?: Array<{ label: Label, y: number }>) {\n\t\tif (labels) {\n\t\t\tlet next = this._getNextUp();\n\n\t\t\tlabels.sort((a, b) => {\n\t\t\t\tif (a.y < b.y) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (a.y > b.y) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(labels, (l) => {\n\t\t\t\tconst bounds = l.label.adjustedLocalBounds();\n\t\t\t\tlet labelBottom = bounds.bottom;\n\t\t\t\tif (l.y + labelBottom > next) {\n\t\t\t\t\tl.y = next - labelBottom;\n\t\t\t\t}\n\t\t\t\tl.label.set(\"y\", l.y);\n\t\t\t\tnext = l.y + bounds.top;\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _arrangeRight(labels?: Array<{ label: Label, y: number }>) {\n\t\tif (labels) {\n\n\t\t\tlet next = 0;\n\n\t\t\tlabels.sort((a, b) => {\n\t\t\t\tif (a.y > b.y) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (a.y < b.y) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(labels, (l) => {\n\t\t\t\tconst bounds = l.label.adjustedLocalBounds();\n\t\t\t\tlet labelLeft = bounds.left;\n\t\t\t\tif (l.y + labelLeft < next) {\n\t\t\t\t\tl.y = next - labelLeft;\n\t\t\t\t}\n\t\t\t\tl.label.set(\"x\", l.y);\n\n\t\t\t\tnext = l.y + bounds.right;\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _arrangeLeft(labels?: Array<{ label: Label, y: number }>) {\n\t\tif (labels) {\n\t\t\tlet next = this.labelsContainer.maxWidth();\n\n\t\t\tlabels.sort((a, b) => {\n\t\t\t\tif (a.y < b.y) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (a.y > b.y) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(labels, (l) => {\n\t\t\t\tconst bounds = l.label.adjustedLocalBounds();\n\t\t\t\tlet labelRight = bounds.right;\n\t\t\t\tif (l.y + labelRight > next) {\n\t\t\t\t\tl.y = next - labelRight;\n\t\t\t\t}\n\t\t\t\tl.label.set(\"x\", l.y);\n\t\t\t\tnext = l.y + bounds.left;\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic _updateSize() {\n\t\tsuper._updateSize();\n\t\tthis.markDirty();\n\t}\n\n\tprotected _updateTick(_dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\n\t}\n\n\tprotected _dispose() {\n\t\tsuper._dispose();\n\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\tchart.series.removeValue(this);\n\t\t}\n\t}\n\n\n}\n"]}
1
+ {"version":3,"file":"PercentSeries.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/percent/PercentSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { Graphics } from \"../../core/render/Graphics\";\nimport type { Label } from \"../../core/render/Label\";\nimport type { Tick } from \"../../core/render/Tick\";\nimport type { ListTemplate } from \"../../core/util/List\";\nimport type { ColorSet } from \"../../core/util/ColorSet\";\nimport type { ILegendDataItem } from \"../../core/render/Legend\";\nimport type { Color } from \"../../core/util/Color\";\nimport type { PercentChart } from \"./PercentChart\";\nimport type { PatternSet } from \"../../core/util/PatternSet\";\nimport type { Pattern } from \"../../core/render/patterns/Pattern\";\n\nimport { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate } from \"../../core/render/Series\";\nimport { Container } from \"../../core/render/Container\";\nimport { visualSettings } from \"../../core/render/Graphics\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\n\nexport interface IPercentSeriesDataItem extends ISeriesDataItem {\n\n\t/**\n\t * Percent of the series value total.\n\t */\n\tvaluePercentTotal: number;\n\n\t/**\n\t * Category.\n\t */\n\tcategory: string;\n\n\t/**\n\t * Slice visual element.\n\t */\n\tslice: Graphics;\n\n\t/**\n\t * Slice label.\n\t */\n\tlabel: Label;\n\n\t/**\n\t * Slice tick.\n\t */\n\ttick: Tick;\n\n\t/**\n\t * A related legend data item.\n\t */\n\tlegendDataItem: DataItem<ILegendDataItem>;\n\n\t/**\n\t * Fill color used for the slice and related elements, e.g. legend marker.\n\t */\n\tfill: Color;\n\n\t/**\n\t * Pattern used for the slice and related elements, e.g. legend marker.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/} for more info\n\t * @since 5.10.0\n\t */\n\tfillPattern: Pattern;\n\n}\n\n//type IPercentSeriesDataItemSettings = { [K in keyof IPercentSeriesDataItem]?: string; };\n\nexport interface IPercentSeriesSettings extends ISeriesSettings {\n\n\t/**\n\t * A [[ColorSet]] to use when asigning colors for slices.\n\t */\n\tcolors?: ColorSet;\n\n\t/**\n\t * A [[PatternSet]] to use when asigning patterns for slices.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/patterns/#Pattern_sets} for more info\n\t * @since 5.10.0\n\t */\n\tpatterns?: PatternSet;\n\n\t/**\n\t * A field in data that holds category names.\n\t */\n\tcategoryField?: string;\n\n\t/**\n\t * Should slice labels be aligned in columns/rows?\n\t */\n\talignLabels?: boolean;\n\n\t/**\n\t * A field that holds color for slice fill.\n\t */\n\tfillField?: string;\n\n}\n\nexport interface IPercentSeriesPrivate extends ISeriesPrivate {\n\n\t/**\n\t * Calculate average value in series.\n\t */\n\tvalueAverage?: number;\n\n\t/**\n\t * Count of items in series.\n\t */\n\tvalueCount?: number;\n\n\t/**\n\t * Sum of values in series.\n\t */\n\tvalueSum?: number;\n\n\t/**\n\t * Sum of all absolute values in series.\n\t */\n\tvalueAbsoluteSum?: number;\n\n\t/**\n\t * Lowest value in series.\n\t */\n\tvalueLow?: number;\n\n\t/**\n\t * Highest value in series.\n\t */\n\tvalueHigh?: number;\n\n}\n\n/**\n * A base class for any percent chart series.\n */\nexport abstract class PercentSeries extends Series {\n\tpublic static className: string = \"PercentSeries\";\n\tpublic static classNames: Array<string> = Series.classNames.concat([PercentSeries.className]);\n\n\tdeclare public _settings: IPercentSeriesSettings;\n\tdeclare public _privateSettings: IPercentSeriesPrivate;\n\tdeclare public _dataItemSettings: IPercentSeriesDataItem;\n\n\tdeclare public _sliceType: Graphics;\n\tdeclare public _labelType: Label;\n\tdeclare public _tickType: Tick;\n\n\tpublic readonly slicesContainer = this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }));\n\tpublic readonly labelsContainer = this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }));\n\tpublic readonly ticksContainer = this.children.push(Container.new(this._root, { position: \"absolute\", isMeasured: false }));\n\n\tprotected _lLabels: Array<{ label: Label, y: number }> = [];\n\tprotected _rLabels: Array<{ label: Label, y: number }> = [];\n\tprotected _hLabels: Array<{ label: Label, y: number }> = [];\n\n\t/**\n\t * A [[ListTemplate]] of all slices in series.\n\t *\n\t * `slices.template` can also be used to configure slices.\n\t */\n\tpublic readonly slices: ListTemplate<this[\"_sliceType\"]> = this.addDisposer(this._makeSlices());\n\n\tprotected abstract _makeSlices(): ListTemplate<this[\"_sliceType\"]>;\n\n\tpublic abstract chart: PercentChart | undefined;\n\n\tpublic _applyThemes(force: boolean = false): boolean {\n\t\tconst colors = this.get(\"colors\");\n\t\tif (colors) {\n\t\t\tcolors.reset();\n\t\t}\n\t\treturn super._applyThemes(force);\t\t\n\t}\t\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeSlice(dataItem: DataItem<this[\"_dataItemSettings\"]>): this[\"_sliceType\"] {\n\t\tconst slice = this.slicesContainer.children.push(this.slices.make());\n\n\t\tslice.on(\"fill\", () => {\n\t\t\tthis.updateLegendMarker(dataItem);\n\t\t})\n\n\t\tslice.on(\"fillPattern\", () => {\n\t\t\tthis.updateLegendMarker(dataItem);\n\t\t})\n\n\t\tslice.on(\"stroke\", () => {\n\t\t\tthis.updateLegendMarker(dataItem);\n\t\t})\n\n\t\tslice._setDataItem(dataItem);\n\t\tdataItem.set(\"slice\", slice);\n\t\tthis.slices.push(slice);\n\n\t\treturn slice;\n\t}\n\n\t/**\n\t * A [[ListTemplate]] of all slice labels in series.\n\t *\n\t * `labels.template` can also be used to configure slice labels.\n\t */\n\tpublic readonly labels: ListTemplate<this[\"_labelType\"]> = this.addDisposer(this._makeLabels());\n\n\tprotected abstract _makeLabels(): ListTemplate<this[\"_labelType\"]>;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeLabel(dataItem: DataItem<this[\"_dataItemSettings\"]>): this[\"_labelType\"] {\n\t\tconst label = this.labelsContainer.children.push(this.labels.make());\n\t\tlabel._setDataItem(dataItem);\n\t\tdataItem.set(\"label\", label);\n\t\tthis.labels.push(label);\n\t\treturn label;\n\t}\n\n\t/**\n\t * A [[ListTemplate]] of all slice ticks in series.\n\t *\n\t * `ticks.template` can also be used to configure slice ticks.\n\t */\n\tpublic readonly ticks: ListTemplate<this[\"_tickType\"]> = this.addDisposer(this._makeTicks());\n\n\tprotected abstract _makeTicks(): ListTemplate<this[\"_tickType\"]>;\n\n\n\tprotected _shouldMakeBullet(dataItem: DataItem<this[\"_dataItemSettings\"]>): boolean {\n\t\tif (dataItem.get(\"value\") != null) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeTick(dataItem: DataItem<this[\"_dataItemSettings\"]>): this[\"_tickType\"] {\n\t\tconst tick = this.ticksContainer.children.push(this.ticks.make());\n\t\ttick._setDataItem(dataItem);\n\t\tdataItem.set(\"tick\", tick);\n\t\tthis.ticks.push(tick);\n\t\treturn tick;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis.fields.push(\"category\", \"fill\");\n\t\tsuper._afterNew();\n\t}\n\n\tprotected _onDataClear() {\n\t\tconst colors = this.get(\"colors\");\n\t\tif (colors) {\n\t\t\tcolors.reset();\n\t\t}\n\t\tconst patterns = this.get(\"patterns\");\n\t\tif (patterns) {\n\t\t\tpatterns.reset();\n\t\t}\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tthis._lLabels = [];\n\t\tthis._rLabels = [];\n\t\tthis._hLabels = [];\n\n\t\tif (this._valuesDirty) {\n\t\t\tlet sum = 0;\n\t\t\tlet absSum = 0;\n\t\t\tlet valueHigh = 0;\n\t\t\tlet valueLow = Infinity;\n\t\t\tlet count = 0;\n\t\t\t$array.each(this._dataItems, (dataItem) => {\n\t\t\t\tlet valueWorking = dataItem.get(\"valueWorking\", 0);\n\t\t\t\tsum += valueWorking;\n\t\t\t\tabsSum += Math.abs(valueWorking);\n\t\t\t});\n\n\t\t\t$array.each(this._dataItems, (dataItem) => {\n\t\t\t\tlet value = dataItem.get(\"valueWorking\", 0);\n\n\t\t\t\tif (value > valueHigh) {\n\t\t\t\t\tvalueHigh = value;\n\t\t\t\t}\n\n\t\t\t\tif (value < valueLow) {\n\t\t\t\t\tvalueLow = value;\n\t\t\t\t}\n\n\t\t\t\tcount++;\n\n\t\t\t\tlet percentTotal = value / absSum;\n\n\t\t\t\tif (absSum == 0) {\n\t\t\t\t\tpercentTotal = 0;\n\t\t\t\t}\n\n\t\t\t\tdataItem.setRaw(\"valuePercentTotal\", percentTotal * 100);\n\t\t\t});\n\n\t\t\tthis.setPrivateRaw(\"valueLow\", valueLow);\n\t\t\tthis.setPrivateRaw(\"valueHigh\", valueHigh);\n\t\t\tthis.setPrivateRaw(\"valueSum\", sum);\n\t\t\tthis.setPrivateRaw(\"valueAverage\", sum / count);\n\t\t\tthis.setPrivateRaw(\"valueAbsoluteSum\", absSum);\n\t\t}\n\t}\n\n\t/**\n\t * Shows hidden series.\n\t *\n\t * @param duration Animation duration in milliseconds\n\t * @return Animation promise\n\t */\n\tpublic async show(duration?: number): Promise<void> {\n\t\tlet promises: Array<Promise<any>> = [];\n\t\tpromises.push(super.show(duration))\n\n\t\tpromises.push(this._sequencedShowHide(true, duration));\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * Hide whole series.\n\t *\n\t * @param duration Animation duration in milliseconds\n\t * @return Animation promise\n\t */\n\tpublic async hide(duration?: number): Promise<void> {\n\t\tlet promises: Array<Promise<any>> = [];\n\t\tpromises.push(super.hide(duration))\n\n\t\tpromises.push(this._sequencedShowHide(false, duration));\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\t\tif (this._valuesDirty) {\n\t\t\t$array.each(this._dataItems, (dataItem) => {\n\t\t\t\tdataItem.get(\"label\").text.markDirtyText();\n\t\t\t});\n\t\t}\n\n\t\tif (this.isDirty(\"legendLabelText\") || this.isDirty(\"legendValueText\")) {\n\t\t\t$array.each(this._dataItems, (dataItem) => {\n\t\t\t\tthis.updateLegendValue(dataItem);\n\t\t\t});\n\t\t}\n\n\t\tthis._arrange();\n\t}\n\n\tprotected _arrange() {\n\t\tthis._arrangeDown(this._lLabels);\n\t\tthis._arrangeUp(this._lLabels);\n\n\t\tthis._arrangeDown(this._rLabels);\n\t\tthis._arrangeUp(this._rLabels);\n\n\t\tthis._arrangeLeft(this._hLabels);\n\t\tthis._arrangeRight(this._hLabels);\n\n\t\t$array.each(this.dataItems, (dataItem) => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\t}\n\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\t\tthis._arrange();\n\t}\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.processDataItem(dataItem);\n\n\t\tif (dataItem.get(\"fill\") == null) {\n\t\t\tlet colors = this.get(\"colors\");\n\t\t\tif (colors) {\n\t\t\t\tdataItem.setRaw(\"fill\", colors.next());\n\t\t\t}\n\t\t}\n\n\t\tif (dataItem.get(\"fillPattern\") == null) {\n\t\t\tlet patterns = this.get(\"patterns\");\n\t\t\tif (patterns) {\n\t\t\t\tdataItem.setRaw(\"fillPattern\", patterns.next());\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Shows series's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async showDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, duration?: number): Promise<void> {\n\t\tconst promises = [super.showDataItem(dataItem, duration)];\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = this.get(\"stateAnimationDuration\", 0);\n\t\t}\n\n\t\tconst easing = this.get(\"stateAnimationEasing\");\n\n\t\tlet value = dataItem.get(\"value\");\n\n\t\tconst animation = dataItem.animate({ key: \"valueWorking\", to: value, duration: duration, easing: easing });\n\t\tif (animation) {\n\t\t\tpromises.push(animation.waitForStop());\n\t\t}\n\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\tpromises.push(tick.show(duration));\n\t\t}\n\t\tconst label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tpromises.push(label.show(duration));\n\t\t}\n\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tif (slice) {\n\t\t\tpromises.push(slice.show(duration));\n\t\t}\n\n\t\tif (slice.get(\"active\")) {\n\t\t\tslice.states.applyAnimate(\"active\");\n\t\t}\n\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * Hides series's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async hideDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, duration?: number): Promise<void> {\n\t\tconst promises = [super.hideDataItem(dataItem, duration)];\n\t\tconst hiddenState = this.states.create(\"hidden\", {})\n\n\t\tif (!$type.isNumber(duration)) {\n\t\t\tduration = hiddenState.get(\"stateAnimationDuration\", this.get(\"stateAnimationDuration\", 0));\n\t\t}\n\n\t\tconst easing = hiddenState.get(\"stateAnimationEasing\", this.get(\"stateAnimationEasing\"));\n\n\t\tconst animation = dataItem.animate({ key: \"valueWorking\", to: 0, duration: duration, easing: easing });\n\t\tif (animation) {\n\t\t\tpromises.push(animation.waitForStop());\n\t\t}\n\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\tpromises.push(tick.hide(duration));\n\t\t}\n\t\tconst label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tpromises.push(label.hide(duration));\n\t\t}\n\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tslice.hideTooltip();\n\n\t\tif (slice) {\n\t\t\tpromises.push(slice.hide(duration));\n\t\t}\n\n\t\tawait Promise.all(promises);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tlet label = dataItem.get(\"label\");\n\t\tif (label) {\n\t\t\tthis.labels.removeValue(label);\n\t\t\tlabel.dispose();\n\t\t}\n\t\tlet tick = dataItem.get(\"tick\");\n\t\tif (tick) {\n\t\t\tthis.ticks.removeValue(tick);\n\t\t\ttick.dispose();\n\t\t}\n\t\tlet slice = dataItem.get(\"slice\");\n\t\tif (slice) {\n\t\t\tthis.slices.removeValue(slice);\n\t\t\tslice.dispose();\n\t\t}\n\t}\n\n\t/**\n\t * Triggers hover on a series data item.\n\t *\n\t * @since 5.0.7\n\t * @param dataItem Target data item\n\t */\n\tpublic hoverDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tif (slice && !slice.isHidden()) {\n\t\t\tslice.hover();\n\t\t}\n\t}\n\n\t/**\n\t * Triggers un-hover on a series data item.\n\t *\n\t * @since 5.0.7\n\t * @param dataItem Target data item\n\t */\n\tpublic unhoverDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tif (slice) {\n\t\t\tslice.unhover();\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLegendMarker(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tif (dataItem) {\n\t\t\tconst slice = dataItem.get(\"slice\");\n\n\t\t\tif (slice) {\n\t\t\t\tconst legendDataItem = dataItem.get(\"legendDataItem\");\n\t\t\t\tif (legendDataItem) {\n\t\t\t\t\tconst markerRectangle = legendDataItem.get(\"markerRectangle\");\n\t\t\t\t\t$array.each(visualSettings, (setting: any) => {\n\t\t\t\t\t\tif (slice.get(setting) != null) {\n\t\t\t\t\t\t\tmarkerRectangle.set(setting, slice.get(setting));\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _arrangeDown(labels?: Array<{ label: Label, y: number }>) {\n\t\tif (labels) {\n\n\t\t\tlet next = this._getNextDown();\n\n\t\t\tlabels.sort((a, b) => {\n\t\t\t\tif (a.y > b.y) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (a.y < b.y) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(labels, (l) => {\n\t\t\t\tconst bounds = l.label.adjustedLocalBounds();\n\t\t\t\tlet labelTop = bounds.top;\n\t\t\t\tif (l.y + labelTop < next) {\n\t\t\t\t\tl.y = next - labelTop;\n\t\t\t\t}\n\t\t\t\tl.label.set(\"y\", l.y);\n\n\t\t\t\tnext = l.y + bounds.bottom;\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _getNextUp() {\n\t\treturn this.labelsContainer.maxHeight();\n\t}\n\n\tprotected _getNextDown() {\n\t\treturn 0;\n\t}\n\n\tprotected _arrangeUp(labels?: Array<{ label: Label, y: number }>) {\n\t\tif (labels) {\n\t\t\tlet next = this._getNextUp();\n\n\t\t\tlabels.sort((a, b) => {\n\t\t\t\tif (a.y < b.y) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (a.y > b.y) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(labels, (l) => {\n\t\t\t\tconst bounds = l.label.adjustedLocalBounds();\n\t\t\t\tlet labelBottom = bounds.bottom;\n\t\t\t\tif (l.y + labelBottom > next) {\n\t\t\t\t\tl.y = next - labelBottom;\n\t\t\t\t}\n\t\t\t\tl.label.set(\"y\", l.y);\n\t\t\t\tnext = l.y + bounds.top;\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _arrangeRight(labels?: Array<{ label: Label, y: number }>) {\n\t\tif (labels) {\n\n\t\t\tlet next = 0;\n\n\t\t\tlabels.sort((a, b) => {\n\t\t\t\tif (a.y > b.y) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (a.y < b.y) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(labels, (l) => {\n\t\t\t\tconst bounds = l.label.adjustedLocalBounds();\n\t\t\t\tlet labelLeft = bounds.left;\n\t\t\t\tif (l.y + labelLeft < next) {\n\t\t\t\t\tl.y = next - labelLeft;\n\t\t\t\t}\n\t\t\t\tl.label.set(\"x\", l.y);\n\n\t\t\t\tnext = l.y + bounds.right;\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _arrangeLeft(labels?: Array<{ label: Label, y: number }>) {\n\t\tif (labels) {\n\t\t\tlet next = this.labelsContainer.maxWidth();\n\n\t\t\tlabels.sort((a, b) => {\n\t\t\t\tif (a.y < b.y) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (a.y > b.y) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t$array.each(labels, (l) => {\n\t\t\t\tconst bounds = l.label.adjustedLocalBounds();\n\t\t\t\tlet labelRight = bounds.right;\n\t\t\t\tif (l.y + labelRight > next) {\n\t\t\t\t\tl.y = next - labelRight;\n\t\t\t\t}\n\t\t\t\tl.label.set(\"x\", l.y);\n\t\t\t\tnext = l.y + bounds.left;\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic _updateSize() {\n\t\tsuper._updateSize();\n\t\tthis.markDirty();\n\t}\n\n\tprotected _updateTick(_dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\n\t}\n\n\tprotected _dispose() {\n\t\tsuper._dispose();\n\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\tchart.series.removeValue(this);\n\t\t}\n\t}\n\n\n}\n"]}
@@ -155,9 +155,9 @@ export class AccelerationBands extends Indicator {
155
155
  this._sma(data, period, "_lower", "lower");
156
156
  this._sma(data, period, "_upper", "upper");
157
157
  this._sma(data, period, "_average", "average");
158
- this.upperBandSeries.data.setAll(data);
159
- this.lowerBandSeries.data.setAll(data);
160
- this.series.data.setAll(data);
158
+ this.upperBandSeries.updateData(data);
159
+ this.lowerBandSeries.updateData(data);
160
+ this.series.updateData(data);
161
161
  }
162
162
  }
163
163
  _dispose() {
@@ -1 +1 @@
1
- {"version":3,"file":"AccelerationBands.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AccelerationBands.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { Indicator, IIndicatorSettings, IIndicatorPrivate, IIndicatorEvents } from \"./Indicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nexport interface IAccelerationBandsSettings extends IIndicatorSettings {\r\n /**\r\n * A color for upper section.\r\n */\r\n upperColor?: Color;\r\n\r\n /**\r\n * A color for lower section.\r\n */\r\n lowerColor?: Color;\r\n\r\n\r\n factor?: number;\r\n}\r\n\r\nexport interface IAccelerationBandsPrivate extends IIndicatorPrivate {\r\n}\r\n\r\nexport interface IAccelerationBandsEvents extends IIndicatorEvents {\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 AccelerationBands extends Indicator {\r\n public static className: string = \"AccelerationBands\";\r\n public static classNames: Array<string> = Indicator.classNames.concat([AccelerationBands.className]);\r\n\r\n declare public _settings: IAccelerationBandsSettings;\r\n declare public _privateSettings: IAccelerationBandsPrivate;\r\n declare public _events: IAccelerationBandsEvents;\r\n\r\n /**\r\n * Indicator series for the upper band.\r\n */\r\n public upperBandSeries!: LineSeries;\r\n\r\n /**\r\n * Indicator series for the lower band.\r\n */\r\n public lowerBandSeries!: LineSeries;\r\n\r\n public _editableSettings: IIndicatorEditableSetting[] = [{\r\n key: \"period\",\r\n name: this.root.language.translateAny(\"Period\"),\r\n type: \"number\"\r\n }, {\r\n key: \"factor\",\r\n name: this.root.language.translateAny(\"Factor\"),\r\n type: \"number\"\r\n }, {\r\n key: \"upperColor\",\r\n name: this.root.language.translateAny(\"Upper\"),\r\n type: \"color\"\r\n }, {\r\n key: \"seriesColor\",\r\n name: this.root.language.translateAny(\"Average\"),\r\n type: \"color\"\r\n }, {\r\n key: \"lowerColor\",\r\n name: this.root.language.translateAny(\"Lower\"),\r\n type: \"color\"\r\n }];\r\n\r\n protected _afterNew() {\r\n\r\n const stockSeries = this.get(\"stockSeries\");\r\n const chart = stockSeries.chart;\r\n\r\n if (chart) {\r\n\r\n const series = chart.series.push(LineSeries.new(this._root, {\r\n valueXField: \"valueX\",\r\n valueYField: \"average\",\r\n groupDataDisabled: true,\r\n calculateAggregates: true,\r\n xAxis: stockSeries.get(\"xAxis\"),\r\n yAxis: stockSeries.get(\"yAxis\"),\r\n themeTags: [\"indicator\", \"accelerationbands\", \"average\"]\r\n }))\r\n\r\n series.setPrivate(\"baseValueSeries\", stockSeries);\r\n this.series = series;\r\n\r\n const upperBandSeries = chart.series.push(LineSeries.new(this._root, {\r\n valueXField: \"valueX\",\r\n valueYField: \"upper\",\r\n openValueYField: \"lower\",\r\n calculateAggregates: true,\r\n xAxis: stockSeries.get(\"xAxis\"),\r\n yAxis: stockSeries.get(\"yAxis\"),\r\n groupDataDisabled: true,\r\n themeTags: [\"indicator\", \"accelerationbands\", \"upper\"]\r\n }))\r\n\r\n upperBandSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\r\n this.upperBandSeries = upperBandSeries;\r\n\r\n const lowerBandSeries = chart.series.push(LineSeries.new(this._root, {\r\n valueXField: \"valueX\",\r\n valueYField: \"lower\",\r\n calculateAggregates: true,\r\n xAxis: stockSeries.get(\"xAxis\"),\r\n yAxis: stockSeries.get(\"yAxis\"),\r\n groupDataDisabled: true,\r\n themeTags: [\"indicator\", \"accelerationbands\", \"lower\"]\r\n }))\r\n\r\n lowerBandSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n this.lowerBandSeries = lowerBandSeries;\r\n }\r\n\r\n this._handleLegend(this.series);\r\n\r\n super._afterNew();\r\n this.series.addTag(\"accelerationbands\");\r\n this.series._applyThemes();\r\n }\r\n\r\n public _prepareChildren() {\r\n\r\n if (this.isDirty(\"factor\")) {\r\n this.markDataDirty();\r\n this.setCustomData(\"factor\", this.get(\"factor\"));\r\n }\r\n\r\n super._prepareChildren();\r\n }\r\n\r\n public _updateChildren() {\r\n super._updateChildren();\r\n const upperColor = \"upperColor\";\r\n if (this.isDirty(upperColor)) {\r\n const color = this.get(upperColor);\r\n const upperBandSeries = this.upperBandSeries;\r\n upperBandSeries.set(\"stroke\", color);\r\n upperBandSeries.set(\"fill\", color);\r\n upperBandSeries.strokes.template.set(\"stroke\", color);\r\n\r\n this._updateSeriesColor(upperBandSeries, color, upperColor);\r\n }\r\n\r\n const lowerColor = \"lowerColor\";\r\n if (this.isDirty(lowerColor)) {\r\n const color = this.get(lowerColor);\r\n const lowerBandSeries = this.lowerBandSeries;\r\n lowerBandSeries.set(\"stroke\", color);\r\n lowerBandSeries.strokes.template.set(\"stroke\", color);\r\n\r\n this._updateSeriesColor(lowerBandSeries, color, lowerColor);\r\n }\r\n }\r\n\r\n public prepareData() {\r\n super.prepareData();\r\n\r\n if (this.series) {\r\n\r\n let period = this.get(\"period\", 20);\r\n\r\n const stockSeries = this.get(\"stockSeries\");\r\n const dataItems = stockSeries.dataItems;\r\n\r\n let data = this._getDataArray(dataItems);\r\n let factor = this.get(\"factor\", 0.001);\r\n\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const dataItem = data[i];\r\n const stockDataItem = dataItems[i];\r\n\r\n if (stockDataItem) {\r\n const low = stockDataItem.get(\"lowValueY\") as number;\r\n const high = stockDataItem.get(\"highValueY\") as number;\r\n\r\n if (low == null || high == null) {\r\n continue;\r\n }\r\n\r\n const sum = high + low;\r\n if (sum === 0) {\r\n continue;\r\n }\r\n const ff = (((high - low) / (sum / 2)) * 1000) * factor;\r\n dataItem._lower = (high * (1 + 2 * ff));\r\n dataItem._upper = (low * (1 - 2 * ff));\r\n dataItem._average = dataItem._lower + (dataItem._upper - dataItem._lower) / 2;\r\n }\r\n }\r\n\r\n this._sma(data, period, \"_lower\", \"lower\");\r\n this._sma(data, period, \"_upper\", \"upper\");\r\n this._sma(data, period, \"_average\", \"average\");\r\n\r\n this.upperBandSeries.data.setAll(data);\r\n this.lowerBandSeries.data.setAll(data);\r\n this.series.data.setAll(data);\r\n }\r\n }\r\n\r\n protected _dispose() {\r\n this.upperBandSeries.dispose();\r\n this.lowerBandSeries.dispose();\r\n super._dispose();\r\n }\r\n\r\n public async hide(duration?: number): Promise<any> {\r\n return Promise.all([\r\n super.hide(duration),\r\n this.upperBandSeries.hide(duration),\r\n this.lowerBandSeries.hide(duration)\r\n ]);\r\n }\r\n\r\n public async show(duration?: number): Promise<any> {\r\n return Promise.all([\r\n super.show(duration),\r\n this.upperBandSeries.show(duration),\r\n this.lowerBandSeries.show(duration)\r\n ]);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"AccelerationBands.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AccelerationBands.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { Indicator, IIndicatorSettings, IIndicatorPrivate, IIndicatorEvents } from \"./Indicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nexport interface IAccelerationBandsSettings extends IIndicatorSettings {\r\n /**\r\n * A color for upper section.\r\n */\r\n upperColor?: Color;\r\n\r\n /**\r\n * A color for lower section.\r\n */\r\n lowerColor?: Color;\r\n\r\n\r\n factor?: number;\r\n}\r\n\r\nexport interface IAccelerationBandsPrivate extends IIndicatorPrivate {\r\n}\r\n\r\nexport interface IAccelerationBandsEvents extends IIndicatorEvents {\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 AccelerationBands extends Indicator {\r\n public static className: string = \"AccelerationBands\";\r\n public static classNames: Array<string> = Indicator.classNames.concat([AccelerationBands.className]);\r\n\r\n declare public _settings: IAccelerationBandsSettings;\r\n declare public _privateSettings: IAccelerationBandsPrivate;\r\n declare public _events: IAccelerationBandsEvents;\r\n\r\n /**\r\n * Indicator series for the upper band.\r\n */\r\n public upperBandSeries!: LineSeries;\r\n\r\n /**\r\n * Indicator series for the lower band.\r\n */\r\n public lowerBandSeries!: LineSeries;\r\n\r\n public _editableSettings: IIndicatorEditableSetting[] = [{\r\n key: \"period\",\r\n name: this.root.language.translateAny(\"Period\"),\r\n type: \"number\"\r\n }, {\r\n key: \"factor\",\r\n name: this.root.language.translateAny(\"Factor\"),\r\n type: \"number\"\r\n }, {\r\n key: \"upperColor\",\r\n name: this.root.language.translateAny(\"Upper\"),\r\n type: \"color\"\r\n }, {\r\n key: \"seriesColor\",\r\n name: this.root.language.translateAny(\"Average\"),\r\n type: \"color\"\r\n }, {\r\n key: \"lowerColor\",\r\n name: this.root.language.translateAny(\"Lower\"),\r\n type: \"color\"\r\n }];\r\n\r\n protected _afterNew() {\r\n\r\n const stockSeries = this.get(\"stockSeries\");\r\n const chart = stockSeries.chart;\r\n\r\n if (chart) {\r\n\r\n const series = chart.series.push(LineSeries.new(this._root, {\r\n valueXField: \"valueX\",\r\n valueYField: \"average\",\r\n groupDataDisabled: true,\r\n calculateAggregates: true,\r\n xAxis: stockSeries.get(\"xAxis\"),\r\n yAxis: stockSeries.get(\"yAxis\"),\r\n themeTags: [\"indicator\", \"accelerationbands\", \"average\"]\r\n }))\r\n\r\n series.setPrivate(\"baseValueSeries\", stockSeries);\r\n this.series = series;\r\n\r\n const upperBandSeries = chart.series.push(LineSeries.new(this._root, {\r\n valueXField: \"valueX\",\r\n valueYField: \"upper\",\r\n openValueYField: \"lower\",\r\n calculateAggregates: true,\r\n xAxis: stockSeries.get(\"xAxis\"),\r\n yAxis: stockSeries.get(\"yAxis\"),\r\n groupDataDisabled: true,\r\n themeTags: [\"indicator\", \"accelerationbands\", \"upper\"]\r\n }))\r\n\r\n upperBandSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n\r\n this.upperBandSeries = upperBandSeries;\r\n\r\n const lowerBandSeries = chart.series.push(LineSeries.new(this._root, {\r\n valueXField: \"valueX\",\r\n valueYField: \"lower\",\r\n calculateAggregates: true,\r\n xAxis: stockSeries.get(\"xAxis\"),\r\n yAxis: stockSeries.get(\"yAxis\"),\r\n groupDataDisabled: true,\r\n themeTags: [\"indicator\", \"accelerationbands\", \"lower\"]\r\n }))\r\n\r\n lowerBandSeries.setPrivate(\"baseValueSeries\", stockSeries);\r\n this.lowerBandSeries = lowerBandSeries;\r\n }\r\n\r\n this._handleLegend(this.series);\r\n\r\n super._afterNew();\r\n this.series.addTag(\"accelerationbands\");\r\n this.series._applyThemes();\r\n }\r\n\r\n public _prepareChildren() {\r\n\r\n if (this.isDirty(\"factor\")) {\r\n this.markDataDirty();\r\n this.setCustomData(\"factor\", this.get(\"factor\"));\r\n }\r\n\r\n super._prepareChildren();\r\n }\r\n\r\n public _updateChildren() {\r\n super._updateChildren();\r\n const upperColor = \"upperColor\";\r\n if (this.isDirty(upperColor)) {\r\n const color = this.get(upperColor);\r\n const upperBandSeries = this.upperBandSeries;\r\n upperBandSeries.set(\"stroke\", color);\r\n upperBandSeries.set(\"fill\", color);\r\n upperBandSeries.strokes.template.set(\"stroke\", color);\r\n\r\n this._updateSeriesColor(upperBandSeries, color, upperColor);\r\n }\r\n\r\n const lowerColor = \"lowerColor\";\r\n if (this.isDirty(lowerColor)) {\r\n const color = this.get(lowerColor);\r\n const lowerBandSeries = this.lowerBandSeries;\r\n lowerBandSeries.set(\"stroke\", color);\r\n lowerBandSeries.strokes.template.set(\"stroke\", color);\r\n\r\n this._updateSeriesColor(lowerBandSeries, color, lowerColor);\r\n }\r\n }\r\n\r\n public prepareData() {\r\n super.prepareData();\r\n\r\n if (this.series) {\r\n\r\n let period = this.get(\"period\", 20);\r\n\r\n const stockSeries = this.get(\"stockSeries\");\r\n const dataItems = stockSeries.dataItems;\r\n\r\n let data = this._getDataArray(dataItems);\r\n let factor = this.get(\"factor\", 0.001);\r\n\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const dataItem = data[i];\r\n const stockDataItem = dataItems[i];\r\n\r\n if (stockDataItem) {\r\n const low = stockDataItem.get(\"lowValueY\") as number;\r\n const high = stockDataItem.get(\"highValueY\") as number;\r\n\r\n if (low == null || high == null) {\r\n continue;\r\n }\r\n\r\n const sum = high + low;\r\n if (sum === 0) {\r\n continue;\r\n }\r\n const ff = (((high - low) / (sum / 2)) * 1000) * factor;\r\n dataItem._lower = (high * (1 + 2 * ff));\r\n dataItem._upper = (low * (1 - 2 * ff));\r\n dataItem._average = dataItem._lower + (dataItem._upper - dataItem._lower) / 2;\r\n }\r\n }\r\n\r\n this._sma(data, period, \"_lower\", \"lower\");\r\n this._sma(data, period, \"_upper\", \"upper\");\r\n this._sma(data, period, \"_average\", \"average\");\r\n\r\n this.upperBandSeries.updateData(data);\r\n this.lowerBandSeries.updateData(data);\r\n this.series.updateData(data);\r\n }\r\n }\r\n\r\n protected _dispose() {\r\n this.upperBandSeries.dispose();\r\n this.lowerBandSeries.dispose();\r\n super._dispose();\r\n }\r\n\r\n public async hide(duration?: number): Promise<any> {\r\n return Promise.all([\r\n super.hide(duration),\r\n this.upperBandSeries.hide(duration),\r\n this.lowerBandSeries.hide(duration)\r\n ]);\r\n }\r\n\r\n public async show(duration?: number): Promise<any> {\r\n return Promise.all([\r\n super.show(duration),\r\n this.upperBandSeries.show(duration),\r\n this.lowerBandSeries.show(duration)\r\n ]);\r\n }\r\n}\r\n"]}
@@ -85,7 +85,7 @@ export class AccumulationDistribution extends ChartIndicator {
85
85
  data[i].ad = ad;
86
86
  prevAD = ad;
87
87
  }
88
- this.series.data.setAll(data);
88
+ this.series.updateData(data);
89
89
  }
90
90
  }
91
91
  Object.defineProperty(AccumulationDistribution, "className", {
@@ -1 +1 @@
1
- {"version":3,"file":"AccumulationDistribution.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AccumulationDistribution.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\n\r\nexport interface IAccumulationDistributionSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * Main volume series of the [[StockChart]].\r\n\t */\r\n\tvolumeSeries?: XYSeries;\r\n\r\n\t/**\r\n\t * Use volume series (if set)?\r\n\t */\r\n\tuseVolume?: boolean;\r\n\r\n}\r\n\r\nexport interface IAccumulationDistributionPrivate extends IChartIndicatorPrivate {\r\n\r\n}\r\n\r\nexport interface IAccumulationDistributionEvents extends IChartIndicatorEvents {\r\n\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 AccumulationDistribution extends ChartIndicator {\r\n\tpublic static className: string = \"AccumulationDistribution\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([AccumulationDistribution.className]);\r\n\r\n\tdeclare public _settings: IAccumulationDistributionSettings;\r\n\tdeclare public _privateSettings: IAccumulationDistributionPrivate;\r\n\tdeclare public _events: IAccumulationDistributionEvents;\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\t\tkey: \"useVolume\",\r\n\t\tname: this.root.language.translateAny(\"Use Volume\"),\r\n\t\ttype: \"checkbox\"\r\n\t}];\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis._themeTags.push(\"accumulationdistribution\");\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: \"ad\",\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\tpublic _prepareChildren() {\r\n\t\tconst useVolume = \"useVolume\";\r\n\t\tif (this.isDirty(useVolume)) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(useVolume, this.get(useVolume) ? \"Y\" : \"N\");\r\n\t\t}\r\n\t\tsuper._prepareChildren();\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\treturn;\r\n\t\t}\r\n\r\n\t\tconst stockSeries = this.get(\"stockSeries\") as any;\r\n\t\tconst dataItems = stockSeries?.dataItems ?? [];\r\n\t\tconst volumeSeries = this.get(\"volumeSeries\") as XYSeries | undefined;\r\n\t\tthis.setRaw(\"field\", \"close\");\r\n\r\n\t\tconst data: Array<any> = this._getDataArray(dataItems);\r\n\t\tconst useVolume = !!this.get(\"useVolume\");\r\n\t\tconst volItems = useVolume && volumeSeries ? volumeSeries.dataItems : undefined;\r\n\r\n\t\tlet prevAD = 0;\r\n\t\tfor (let i = 0, len = dataItems.length; i < len; i++) {\r\n\t\t\tconst dataItem = dataItems[i];\r\n\t\t\tconst close = dataItem.get(\"valueY\") as number | undefined;\r\n\t\t\tif (close == null) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst low = dataItem.get(\"lowValueY\", close) as number;\r\n\t\t\tconst high = dataItem.get(\"highValueY\", close) as number;\r\n\t\t\tconst range = high - low;\r\n\r\n\t\t\tconst mf = range === 0 ? 0 : ((close - low) - (high - close)) / range;\r\n\r\n\t\t\tlet volume = 1;\r\n\t\t\tif (volItems) {\r\n\t\t\t\tconst vdi = volItems[i];\r\n\t\t\t\tif (vdi) {\r\n\t\t\t\t\tconst v = vdi.get(\"valueY\");\r\n\t\t\t\t\tvolume = v != null ? (v as number) : 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst ad = prevAD + mf * volume;\r\n\t\t\tdata[i].ad = ad;\r\n\t\t\tprevAD = ad;\r\n\t\t}\r\n\r\n\t\tthis.series.data.setAll(data);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"AccumulationDistribution.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AccumulationDistribution.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAA0E,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAyBxD;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAA5D;;QAaC;;;;mBAAwD,CAAC;oBACxD,GAAG,EAAE,aAAa;oBAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC9C,IAAI,EAAE,OAAO;iBACb,EAAE;oBACF,GAAG,EAAE,WAAW;oBAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;oBACnD,IAAI,EAAE,UAAU;iBAChB,CAAC;WAAC;IA4EJ,CAAC;IA1EO,SAAS;QACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACjD,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACxD,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAC/B,IAAI,EAAE,SAAS;SACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,gBAAgB;QACtB,MAAM,SAAS,GAAG,WAAW,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC/D;QACD,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,WAAW;;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACjB,OAAO;SACP;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAQ,CAAC;QACnD,MAAM,SAAS,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,mCAAI,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAyB,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9B,MAAM,IAAI,GAAe,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhF,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAuB,CAAC;YAC3D,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,SAAS;aACT;YAED,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAW,CAAC;YACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAW,CAAC;YACzD,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;YAEzB,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;YAEtE,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,QAAQ,EAAE;gBACb,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,GAAG,EAAE;oBACR,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5B,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAE,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvC;aACD;YAED,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YAChB,MAAM,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;;AA/FD;;;;WAAkC,0BAA0B;GAAC;AAC7D;;;;WAA0C,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;GAAC","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\n\r\nexport interface IAccumulationDistributionSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * Main volume series of the [[StockChart]].\r\n\t */\r\n\tvolumeSeries?: XYSeries;\r\n\r\n\t/**\r\n\t * Use volume series (if set)?\r\n\t */\r\n\tuseVolume?: boolean;\r\n\r\n}\r\n\r\nexport interface IAccumulationDistributionPrivate extends IChartIndicatorPrivate {\r\n\r\n}\r\n\r\nexport interface IAccumulationDistributionEvents extends IChartIndicatorEvents {\r\n\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 AccumulationDistribution extends ChartIndicator {\r\n\tpublic static className: string = \"AccumulationDistribution\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([AccumulationDistribution.className]);\r\n\r\n\tdeclare public _settings: IAccumulationDistributionSettings;\r\n\tdeclare public _privateSettings: IAccumulationDistributionPrivate;\r\n\tdeclare public _events: IAccumulationDistributionEvents;\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\t\tkey: \"useVolume\",\r\n\t\tname: this.root.language.translateAny(\"Use Volume\"),\r\n\t\ttype: \"checkbox\"\r\n\t}];\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis._themeTags.push(\"accumulationdistribution\");\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: \"ad\",\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\tpublic _prepareChildren() {\r\n\t\tconst useVolume = \"useVolume\";\r\n\t\tif (this.isDirty(useVolume)) {\r\n\t\t\tthis.markDataDirty();\r\n\t\t\tthis.setCustomData(useVolume, this.get(useVolume) ? \"Y\" : \"N\");\r\n\t\t}\r\n\t\tsuper._prepareChildren();\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\treturn;\r\n\t\t}\r\n\r\n\t\tconst stockSeries = this.get(\"stockSeries\") as any;\r\n\t\tconst dataItems = stockSeries?.dataItems ?? [];\r\n\t\tconst volumeSeries = this.get(\"volumeSeries\") as XYSeries | undefined;\r\n\t\tthis.setRaw(\"field\", \"close\");\r\n\r\n\t\tconst data: Array<any> = this._getDataArray(dataItems);\r\n\t\tconst useVolume = !!this.get(\"useVolume\");\r\n\t\tconst volItems = useVolume && volumeSeries ? volumeSeries.dataItems : undefined;\r\n\r\n\t\tlet prevAD = 0;\r\n\t\tfor (let i = 0, len = dataItems.length; i < len; i++) {\r\n\t\t\tconst dataItem = dataItems[i];\r\n\t\t\tconst close = dataItem.get(\"valueY\") as number | undefined;\r\n\t\t\tif (close == null) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst low = dataItem.get(\"lowValueY\", close) as number;\r\n\t\t\tconst high = dataItem.get(\"highValueY\", close) as number;\r\n\t\t\tconst range = high - low;\r\n\r\n\t\t\tconst mf = range === 0 ? 0 : ((close - low) - (high - close)) / range;\r\n\r\n\t\t\tlet volume = 1;\r\n\t\t\tif (volItems) {\r\n\t\t\t\tconst vdi = volItems[i];\r\n\t\t\t\tif (vdi) {\r\n\t\t\t\t\tconst v = vdi.get(\"valueY\");\r\n\t\t\t\t\tvolume = v != null ? (v as number) : 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst ad = prevAD + mf * volume;\r\n\t\t\tdata[i].ad = ad;\r\n\t\t\tprevAD = ad;\r\n\t\t}\r\n\r\n\t\tthis.series.updateData(data);\r\n\t}\r\n}\r\n"]}
@@ -142,7 +142,7 @@ export class AccumulativeSwingIndex extends ChartIndicator {
142
142
  }
143
143
  }
144
144
  }
145
- this.series.data.setAll(data);
145
+ this.series.updateData(data);
146
146
  }
147
147
  }
148
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccumulativeSwingIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AccumulativeSwingIndex.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAA0E,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AA4BjD;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IAA1D;;QAaC;;;;mBAAwD,CAAC;oBACxD,GAAG,EAAE,eAAe;oBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC;oBACvD,IAAI,EAAE,OAAO;iBACb,EAAE;oBACF,GAAG,EAAE,eAAe;oBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC;oBACvD,IAAI,EAAE,OAAO;iBACb,EAAE;oBACF,GAAG,EAAE,gBAAgB;oBACrB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC;oBACzD,IAAI,EAAE,QAAQ;iBACd,CAAC;WAAC;QAEH;;;;;WAA4C;QAC5C;;;;;WAAsD;IAqIvD,CAAC;IAnIO,SAAS;QACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC/C,KAAK,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,aAAa;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAChE,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,KAAK;SAClB,CAAC,CAAC,CAAA;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;YACnC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,gBAAgB;QACtB,MAAM,cAAc,GAAG,gBAAgB,CAAC;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;SACrB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YAClC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YAClC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YAChC,IAAI,SAAS,EAAE;gBACd,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC9B,IAAI,KAAK,EAAE;oBACV,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;iBAClC;gBACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;gBAClC,IAAI,OAAO,EAAE;oBACZ,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;iBACtC;aACD;SACD;QACD,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;YAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9B,IAAI,IAAI,GAAe,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAErD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YAExC,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClF,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAElF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBAEzB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,aAAa,CAAC;gBAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;oBACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAEnC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;wBACtB,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBAEpC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;wBACtC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;wBACrC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;wBACtC,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;wBAExC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;wBACf,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAE9B,IAAI,EAAE,GAAG,CAAC,CAAC;wBACX,IAAI,EAAE,GAAG,CAAC,EAAE;4BACX,EAAE,GAAG,EAAE,CAAC;yBACR;wBACD,IAAI,EAAE,GAAG,CAAC,EAAE;4BACX,EAAE,GAAG,EAAE,CAAC;yBACR;wBAED,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBAEzB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;wBAE3B,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAE7B,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAEnE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;4BACzB,GAAG,IAAI,IAAI,CAAC;yBACZ;wBAGD,IAAI,KAAK,GAAG,aAAa,CAAC;wBAC1B,IAAI,GAAG,GAAG,CAAC,EAAE;4BACZ,KAAK,GAAG,aAAa,CAAC;yBACtB;wBAED,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;wBAClB,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;qBAC3B;iBACD;aACD;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC9B;IACF,CAAC;;AA/JD;;;;WAAkC,wBAAwB;GAAC;AAC3D;;;;WAA0C,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { ILineSeriesAxisRange } from \"../../xy/series/LineSeries\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { IValueAxisDataItem } from \"../../xy/axes/ValueAxis\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\nimport { Color } from \"../../../core/util/Color\";\r\n\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IAccumulativeSwingIndexSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * A \"limit move\" value.\r\n\t */\r\n\tlimitMoveValue?: number;\r\n\r\n\t/**\r\n\t * Positive color.\r\n\t */\r\n\tpositiveColor?: Color;\r\n\r\n\t/**\r\n\t * Negative color.\r\n\t */\r\n\tnegativeColor?: Color;\r\n\r\n}\r\n\r\nexport interface IAccumulativeSwingIndexPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IAccumulativeSwingIndexEvents 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 AccumulativeSwingIndex extends ChartIndicator {\r\n\tpublic static className: string = \"AccumulativeSwingIndex\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([AccumulativeSwingIndex.className]);\r\n\r\n\tdeclare public _settings: IAccumulativeSwingIndexSettings;\r\n\tdeclare public _privateSettings: IAccumulativeSwingIndexPrivate;\r\n\tdeclare public _events: IAccumulativeSwingIndexEvents;\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: \"positiveColor\",\r\n\t\tname: this.root.language.translateAny(\"Positive color\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"negativeColor\",\r\n\t\tname: this.root.language.translateAny(\"Negative color\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"limitMoveValue\",\r\n\t\tname: this.root.language.translateAny(\"Limit move value\"),\r\n\t\ttype: \"number\"\r\n\t}];\r\n\r\n\tprotected _axisRange?: ILineSeriesAxisRange;\r\n\tprotected _axisRangeDI?: DataItem<IValueAxisDataItem>;\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis._themeTags.push(\"accumulativeswingindex\");\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\tconst series = 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: \"asi\"\r\n\t\t}))\r\n\r\n\t\tconst dataItem = this.yAxis.makeDataItem({})\r\n\t\tthis._axisRangeDI = dataItem;\r\n\t\tdataItem.set(\"value\", 0);\r\n\t\tdataItem.set(\"endValue\", -100);\r\n\t\tthis._axisRange = series.createAxisRange(dataItem);\r\n\r\n\t\tthis.yAxis.onPrivate(\"min\", (min) => {\r\n\t\t\tdataItem.set(\"endValue\", min);\r\n\t\t})\r\n\r\n\t\treturn series;\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tconst limitMoveValue = \"limitMoveValue\";\r\n\t\tif (this.isDirty(limitMoveValue)) {\r\n\t\t\tthis.setCustomData(limitMoveValue, this.get(limitMoveValue));\r\n\t\t\tthis.markDataDirty();\r\n\t\t}\r\n\r\n\t\tconst series = this.series;\r\n\t\tif (this.isDirty(\"positiveColor\")) {\r\n\t\t\tlet color = this.get(\"positiveColor\");\r\n\t\t\tseries.setAll({ fill: color, stroke: color });\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"negativeColor\")) {\r\n\t\t\tlet color = this.get(\"negativeColor\");\r\n\t\t\tlet axisRange = this._axisRange;\r\n\t\t\tif (axisRange) {\r\n\t\t\t\tconst fills = axisRange.fills;\r\n\t\t\t\tif (fills) {\r\n\t\t\t\t\tfills.template.set(\"fill\", color);\r\n\t\t\t\t}\r\n\t\t\t\tconst strokes = axisRange.strokes;\r\n\t\t\t\tif (strokes) {\r\n\t\t\t\t\tstrokes.template.set(\"stroke\", color);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tsuper._prepareChildren();\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\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tthis.setRaw(\"field\", \"close\");\r\n\t\t\tlet data: Array<any> = this._getDataArray(dataItems);\r\n\r\n\t\t\tlet t = this.get(\"limitMoveValue\", 0.5);\r\n\r\n\t\t\tlet asi = 0;\r\n\r\n\t\t\tlet negativeColor = this.get(\"negativeColor\", Color.fromHex(0xff0000)).toCSSHex();\r\n\t\t\tlet positiveColor = this.get(\"positiveColor\", Color.fromHex(0x00ff00)).toCSSHex();\r\n\r\n\t\t\tif (dataItems.length > 2) {\r\n\r\n\t\t\t\tdata[0].asi = 0;\r\n\t\t\t\tdata[0].swingColor = positiveColor;\r\n\r\n\t\t\t\tfor (let i = 1, len = dataItems.length; i < len; i++) {\r\n\t\t\t\t\tconst dataItem = dataItems[i];\r\n\t\t\t\t\tconst yDataItem = dataItems[i - 1];\r\n\r\n\t\t\t\t\tlet c = dataItem.get(\"valueY\");\r\n\t\t\t\t\tif ($type.isNumber(c)) {\r\n\t\t\t\t\t\tlet cy = yDataItem.get(\"valueY\", c);\r\n\r\n\t\t\t\t\t\tlet h = dataItem.get(\"highValueY\", c);\r\n\t\t\t\t\t\tlet l = dataItem.get(\"lowValueY\", c);\r\n\t\t\t\t\t\tlet o = dataItem.get(\"openValueY\", c);\r\n\t\t\t\t\t\tlet oy = yDataItem.get(\"openValueY\", c);\r\n\r\n\t\t\t\t\t\tlet hl = h - l;\r\n\t\t\t\t\t\tlet hc = Math.abs(h - cy);\r\n\t\t\t\t\t\tlet lc = Math.abs(l - cy);\r\n\t\t\t\t\t\tlet tr = Math.max(hc, lc, hl);\r\n\r\n\t\t\t\t\t\tlet er = 0;\r\n\t\t\t\t\t\tif (cy > h) {\r\n\t\t\t\t\t\t\ter = hc;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (cy < l) {\r\n\t\t\t\t\t\t\ter = lc;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet k = Math.max(hc, lc);\r\n\r\n\t\t\t\t\t\tlet sh = Math.abs(cy - oy);\r\n\r\n\t\t\t\t\t\tlet r = tr - er / 2 + sh / 4;\r\n\r\n\t\t\t\t\t\tlet dasi = 50 * (c - cy + (c - o) / 2 + (cy - oy) / 4) / r * k / t;\r\n\r\n\t\t\t\t\t\tif ($type.isNumber(dasi)) {\r\n\t\t\t\t\t\t\tasi += dasi;\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tlet color = positiveColor;\r\n\t\t\t\t\t\tif (asi < 0) {\r\n\t\t\t\t\t\t\tcolor = negativeColor;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdata[i].asi = asi;\r\n\t\t\t\t\t\tdata[i].swingColor = color;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"AccumulativeSwingIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AccumulativeSwingIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { ILineSeriesAxisRange } from \"../../xy/series/LineSeries\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { IValueAxisDataItem } from \"../../xy/axes/ValueAxis\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\nimport { Color } from \"../../../core/util/Color\";\r\n\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\nexport interface IAccumulativeSwingIndexSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * A \"limit move\" value.\r\n\t */\r\n\tlimitMoveValue?: number;\r\n\r\n\t/**\r\n\t * Positive color.\r\n\t */\r\n\tpositiveColor?: Color;\r\n\r\n\t/**\r\n\t * Negative color.\r\n\t */\r\n\tnegativeColor?: Color;\r\n\r\n}\r\n\r\nexport interface IAccumulativeSwingIndexPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IAccumulativeSwingIndexEvents 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 AccumulativeSwingIndex extends ChartIndicator {\r\n\tpublic static className: string = \"AccumulativeSwingIndex\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([AccumulativeSwingIndex.className]);\r\n\r\n\tdeclare public _settings: IAccumulativeSwingIndexSettings;\r\n\tdeclare public _privateSettings: IAccumulativeSwingIndexPrivate;\r\n\tdeclare public _events: IAccumulativeSwingIndexEvents;\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: \"positiveColor\",\r\n\t\tname: this.root.language.translateAny(\"Positive color\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"negativeColor\",\r\n\t\tname: this.root.language.translateAny(\"Negative color\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"limitMoveValue\",\r\n\t\tname: this.root.language.translateAny(\"Limit move value\"),\r\n\t\ttype: \"number\"\r\n\t}];\r\n\r\n\tprotected _axisRange?: ILineSeriesAxisRange;\r\n\tprotected _axisRangeDI?: DataItem<IValueAxisDataItem>;\r\n\r\n\tpublic _afterNew() {\r\n\t\tthis._themeTags.push(\"accumulativeswingindex\");\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\tconst series = 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: \"asi\"\r\n\t\t}))\r\n\r\n\t\tconst dataItem = this.yAxis.makeDataItem({})\r\n\t\tthis._axisRangeDI = dataItem;\r\n\t\tdataItem.set(\"value\", 0);\r\n\t\tdataItem.set(\"endValue\", -100);\r\n\t\tthis._axisRange = series.createAxisRange(dataItem);\r\n\r\n\t\tthis.yAxis.onPrivate(\"min\", (min) => {\r\n\t\t\tdataItem.set(\"endValue\", min);\r\n\t\t})\r\n\r\n\t\treturn series;\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tconst limitMoveValue = \"limitMoveValue\";\r\n\t\tif (this.isDirty(limitMoveValue)) {\r\n\t\t\tthis.setCustomData(limitMoveValue, this.get(limitMoveValue));\r\n\t\t\tthis.markDataDirty();\r\n\t\t}\r\n\r\n\t\tconst series = this.series;\r\n\t\tif (this.isDirty(\"positiveColor\")) {\r\n\t\t\tlet color = this.get(\"positiveColor\");\r\n\t\t\tseries.setAll({ fill: color, stroke: color });\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"negativeColor\")) {\r\n\t\t\tlet color = this.get(\"negativeColor\");\r\n\t\t\tlet axisRange = this._axisRange;\r\n\t\t\tif (axisRange) {\r\n\t\t\t\tconst fills = axisRange.fills;\r\n\t\t\t\tif (fills) {\r\n\t\t\t\t\tfills.template.set(\"fill\", color);\r\n\t\t\t\t}\r\n\t\t\t\tconst strokes = axisRange.strokes;\r\n\t\t\t\tif (strokes) {\r\n\t\t\t\t\tstrokes.template.set(\"stroke\", color);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tsuper._prepareChildren();\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\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tthis.setRaw(\"field\", \"close\");\r\n\t\t\tlet data: Array<any> = this._getDataArray(dataItems);\r\n\r\n\t\t\tlet t = this.get(\"limitMoveValue\", 0.5);\r\n\r\n\t\t\tlet asi = 0;\r\n\r\n\t\t\tlet negativeColor = this.get(\"negativeColor\", Color.fromHex(0xff0000)).toCSSHex();\r\n\t\t\tlet positiveColor = this.get(\"positiveColor\", Color.fromHex(0x00ff00)).toCSSHex();\r\n\r\n\t\t\tif (dataItems.length > 2) {\r\n\r\n\t\t\t\tdata[0].asi = 0;\r\n\t\t\t\tdata[0].swingColor = positiveColor;\r\n\r\n\t\t\t\tfor (let i = 1, len = dataItems.length; i < len; i++) {\r\n\t\t\t\t\tconst dataItem = dataItems[i];\r\n\t\t\t\t\tconst yDataItem = dataItems[i - 1];\r\n\r\n\t\t\t\t\tlet c = dataItem.get(\"valueY\");\r\n\t\t\t\t\tif ($type.isNumber(c)) {\r\n\t\t\t\t\t\tlet cy = yDataItem.get(\"valueY\", c);\r\n\r\n\t\t\t\t\t\tlet h = dataItem.get(\"highValueY\", c);\r\n\t\t\t\t\t\tlet l = dataItem.get(\"lowValueY\", c);\r\n\t\t\t\t\t\tlet o = dataItem.get(\"openValueY\", c);\r\n\t\t\t\t\t\tlet oy = yDataItem.get(\"openValueY\", c);\r\n\r\n\t\t\t\t\t\tlet hl = h - l;\r\n\t\t\t\t\t\tlet hc = Math.abs(h - cy);\r\n\t\t\t\t\t\tlet lc = Math.abs(l - cy);\r\n\t\t\t\t\t\tlet tr = Math.max(hc, lc, hl);\r\n\r\n\t\t\t\t\t\tlet er = 0;\r\n\t\t\t\t\t\tif (cy > h) {\r\n\t\t\t\t\t\t\ter = hc;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (cy < l) {\r\n\t\t\t\t\t\t\ter = lc;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet k = Math.max(hc, lc);\r\n\r\n\t\t\t\t\t\tlet sh = Math.abs(cy - oy);\r\n\r\n\t\t\t\t\t\tlet r = tr - er / 2 + sh / 4;\r\n\r\n\t\t\t\t\t\tlet dasi = 50 * (c - cy + (c - o) / 2 + (cy - oy) / 4) / r * k / t;\r\n\r\n\t\t\t\t\t\tif ($type.isNumber(dasi)) {\r\n\t\t\t\t\t\t\tasi += dasi;\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tlet color = positiveColor;\r\n\t\t\t\t\t\tif (asi < 0) {\r\n\t\t\t\t\t\t\tcolor = negativeColor;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdata[i].asi = asi;\r\n\t\t\t\t\t\tdata[i].swingColor = color;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.series.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
@@ -99,8 +99,8 @@ export class Aroon extends ChartIndicator {
99
99
  dataItem.down = (period - (i - li)) / period * 100;
100
100
  i++;
101
101
  });
102
- this.series.data.setAll(data);
103
- this.downSeries.data.setAll(data);
102
+ this.series.updateData(data);
103
+ this.downSeries.updateData(data);
104
104
  }
105
105
  }
106
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Aroon.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/Aroon.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport { Color } from \"../../../core/util/Color\";\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 IAroonSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * Color for ups.\r\n\t */\r\n\tupColor?: Color;\r\n\r\n\t/**\r\n\t * Color for downs.\r\n\t */\r\n\tdownColor?: Color;\r\n\r\n}\r\n\r\nexport interface IAroonPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IAroonEvents 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 Aroon extends ChartIndicator {\r\n\tpublic static className: string = \"Aroon\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([Aroon.className]);\r\n\r\n\tdeclare public _settings: IAroonSettings;\r\n\tdeclare public _privateSettings: IAroonPrivate;\r\n\tdeclare public _events: IAroonEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\t/**\r\n\t * Indicator series for downs.\r\n\t */\r\n\tdeclare public downSeries: 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: \"upColor\",\r\n\t\tname: this.root.language.translateAny(\"Aroon up\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"downColor\",\r\n\t\tname: this.root.language.translateAny(\"Aroon down\"),\r\n\t\ttype: \"color\"\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: \"up\",\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"aroon\");\r\n\t\tsuper._afterNew();\r\n\t\tthis.downSeries = 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: \"down\",\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\r\n\t\tthis.yAxis.setAll({ min: -1, max: 101, strictMinMax: true, numberFormat: \"#'%'\" });\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tconst upColor = \"upColor\";\r\n\t\tif (this.isDirty(upColor)) {\r\n\t\t\tlet color = this.get(upColor, Color.fromHex(0x00ff00));\r\n\t\t\tthis._updateSeriesColor(this.series, color);\r\n\t\t\tthis.setCustomData(upColor, color);\r\n\t\t}\r\n\r\n\t\tconst downColor = \"downColor\";\r\n\t\tif (this.isDirty(downColor)) {\r\n\t\t\tlet color = this.get(downColor, Color.fromHex(0xff0000));\r\n\t\t\tthis._updateSeriesColor(this.downSeries, color);\r\n\t\t\tthis.setCustomData(downColor, color);\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.set(\"field\", \"close\");\r\n\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\r\n\t\t\tlet i = 0;\r\n\t\t\t$array.each(data, (dataItem) => {\r\n\t\t\t\tlet b = Math.max(0, i - period);\r\n\t\t\t\tlet h = -Infinity;\r\n\t\t\t\tlet l = Infinity;\r\n\r\n\t\t\t\tlet li = 0;\r\n\t\t\t\tlet hi = 0;\r\n\r\n\t\t\t\tfor (let j = b; j <= i; j++) {\r\n\t\t\t\t\tlet vh = dataItems[j].get(\"highValueY\", 0);\r\n\t\t\t\t\tif (vh >= h) {\r\n\t\t\t\t\t\th = vh;\r\n\t\t\t\t\t\thi = j;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet vl = dataItems[j].get(\"lowValueY\", 0);\r\n\t\t\t\t\tif (vl <= l) {\r\n\t\t\t\t\t\tl = vl;\r\n\t\t\t\t\t\tli = j;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdataItem.up = (period - (i - hi)) / period * 100;\r\n\t\t\t\tdataItem.down = (period - (i - li)) / period * 100;\r\n\r\n\t\t\t\ti++;\r\n\t\t\t})\r\n\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t\tthis.downSeries.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"Aroon.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/Aroon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,cAAc,EAA0E,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAuBnD;;;;GAIG;AACH,MAAM,OAAO,KAAM,SAAQ,cAAc;IAAzC;;QAkBC;;;;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,SAAS;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;oBACjD,IAAI,EAAE,OAAO;iBACb,EAAE;oBACF,GAAG,EAAE,WAAW;oBAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;oBACnD,IAAI,EAAE,OAAO;iBACb,CAAC;WAAC;IA2FJ,CAAC;IAzFO,aAAa;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACxD,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,SAAS;SACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAES,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACnE,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,SAAS;SACf,CAAC,CAAC,CAAA;QAEH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAEM,eAAe;QACrB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,OAAO,GAAI,SAAS,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACnC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SACrC;IACF,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;YAEhB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;YACpD,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEpC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAEjB,IAAI,EAAE,GAAG,CAAC,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,CAAC;gBAEX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC5B,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;oBAC3C,IAAI,EAAE,IAAI,CAAC,EAAE;wBACZ,CAAC,GAAG,EAAE,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;qBACP;oBAED,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC1C,IAAI,EAAE,IAAI,CAAC,EAAE;wBACZ,CAAC,GAAG,EAAE,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;qBACP;iBACD;gBAED,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC;gBACjD,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC;gBAEnD,CAAC,EAAE,CAAC;YACL,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACjC;IACF,CAAC;;AAvHD;;;;WAAkC,OAAO;GAAC;AAC1C;;;;WAA0C,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport { Color } from \"../../../core/util/Color\";\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 IAroonSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * Color for ups.\r\n\t */\r\n\tupColor?: Color;\r\n\r\n\t/**\r\n\t * Color for downs.\r\n\t */\r\n\tdownColor?: Color;\r\n\r\n}\r\n\r\nexport interface IAroonPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IAroonEvents 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 Aroon extends ChartIndicator {\r\n\tpublic static className: string = \"Aroon\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([Aroon.className]);\r\n\r\n\tdeclare public _settings: IAroonSettings;\r\n\tdeclare public _privateSettings: IAroonPrivate;\r\n\tdeclare public _events: IAroonEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\t/**\r\n\t * Indicator series for downs.\r\n\t */\r\n\tdeclare public downSeries: 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: \"upColor\",\r\n\t\tname: this.root.language.translateAny(\"Aroon up\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"downColor\",\r\n\t\tname: this.root.language.translateAny(\"Aroon down\"),\r\n\t\ttype: \"color\"\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: \"up\",\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"aroon\");\r\n\t\tsuper._afterNew();\r\n\t\tthis.downSeries = 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: \"down\",\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\r\n\t\tthis.yAxis.setAll({ min: -1, max: 101, strictMinMax: true, numberFormat: \"#'%'\" });\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tconst upColor = \"upColor\";\r\n\t\tif (this.isDirty(upColor)) {\r\n\t\t\tlet color = this.get(upColor, Color.fromHex(0x00ff00));\r\n\t\t\tthis._updateSeriesColor(this.series, color);\r\n\t\t\tthis.setCustomData(upColor, color);\r\n\t\t}\r\n\r\n\t\tconst downColor = \"downColor\";\r\n\t\tif (this.isDirty(downColor)) {\r\n\t\t\tlet color = this.get(downColor, Color.fromHex(0xff0000));\r\n\t\t\tthis._updateSeriesColor(this.downSeries, color);\r\n\t\t\tthis.setCustomData(downColor, color);\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.set(\"field\", \"close\");\r\n\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\r\n\t\t\tlet i = 0;\r\n\t\t\t$array.each(data, (dataItem) => {\r\n\t\t\t\tlet b = Math.max(0, i - period);\r\n\t\t\t\tlet h = -Infinity;\r\n\t\t\t\tlet l = Infinity;\r\n\r\n\t\t\t\tlet li = 0;\r\n\t\t\t\tlet hi = 0;\r\n\r\n\t\t\t\tfor (let j = b; j <= i; j++) {\r\n\t\t\t\t\tlet vh = dataItems[j].get(\"highValueY\", 0);\r\n\t\t\t\t\tif (vh >= h) {\r\n\t\t\t\t\t\th = vh;\r\n\t\t\t\t\t\thi = j;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet vl = dataItems[j].get(\"lowValueY\", 0);\r\n\t\t\t\t\tif (vl <= l) {\r\n\t\t\t\t\t\tl = vl;\r\n\t\t\t\t\t\tli = j;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdataItem.up = (period - (i - hi)) / period * 100;\r\n\t\t\t\tdataItem.down = (period - (i - li)) / period * 100;\r\n\r\n\t\t\t\ti++;\r\n\t\t\t})\r\n\r\n\t\t\tthis.series.updateData(data);\r\n\t\t\tthis.downSeries.updateData(data);\r\n\t\t}\r\n\t}\r\n}"]}
@@ -90,7 +90,7 @@ export class AverageTrueRange extends ChartIndicator {
90
90
  prevClose = valueClose;
91
91
  index++;
92
92
  });
93
- this.series.data.setAll(data);
93
+ this.series.updateData(data);
94
94
  }
95
95
  }
96
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AverageTrueRange.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AverageTrueRange.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\nimport type { DataItem } from \"../../../..\";\r\n\r\nexport interface IAverageTrueRangeSettings extends IChartIndicatorSettings {\r\n}\r\n\r\nexport interface IAverageTrueRangePrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IAverageTrueRangeEvents 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 AverageTrueRange extends ChartIndicator {\r\n public static className: string = \"AverageTrueRange\";\r\n public static classNames: Array<string> = ChartIndicator.classNames.concat([AverageTrueRange.className]);\r\n\r\n declare public _settings: IAverageTrueRangeSettings;\r\n declare public _privateSettings: IAverageTrueRangePrivate;\r\n declare public _events: IAverageTrueRangeEvents;\r\n\r\n /**\r\n * Indicator series.\r\n */\r\n declare public series: LineSeries;\r\n\r\n public _editableSettings: IIndicatorEditableSetting[] = [{\r\n key: \"period\",\r\n name: this.root.language.translateAny(\"Period\"),\r\n type: \"number\"\r\n }, {\r\n key: \"seriesColor\",\r\n name: this.root.language.translateAny(\"Color\"),\r\n type: \"color\"\r\n }];\r\n\r\n public _afterNew() {\r\n this._themeTags.push(\"averagetruerange\");\r\n super._afterNew();\r\n }\r\n\r\n public _createSeries(): LineSeries {\r\n return this.panel.series.push(LineSeries.new(this._root, {\r\n themeTags: [\"indicator\"],\r\n xAxis: this.xAxis,\r\n yAxis: this.yAxis,\r\n valueXField: \"valueX\",\r\n valueYField: \"atr\",\r\n fill: undefined\r\n }))\r\n }\r\n\r\n protected _getDataArray(dataItems: Array<DataItem<any>>): Array<any> {\r\n const data: Array<any> = [];\r\n $array.each(dataItems, (dataItem) => {\r\n data.push({ valueX: dataItem.get(\"valueX\"), value_close: dataItem.get(\"valueY\"), value_high: dataItem.get(\"highValueY\"), value_low: dataItem.get(\"lowValueY\") });\r\n })\r\n return data;\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n public prepareData() {\r\n super.prepareData();\r\n\r\n if (this.series) {\r\n\r\n let period = this.get(\"period\", 20);\r\n const stockSeries = this.get(\"stockSeries\");\r\n const dataItems = stockSeries.dataItems;\r\n\r\n let data = this._getDataArray(dataItems);\r\n\r\n let i = 0;\r\n let index = 0;\r\n let tr = 0;\r\n let prevClose: number | undefined;\r\n let prevATR: number | undefined;\r\n\r\n $array.each(data, (dataItem) => {\r\n\r\n let valueClose = dataItem.value_close;\r\n\r\n if (valueClose != null && prevClose != null) {\r\n i++;\r\n tr = Math.max(dataItem.value_high - dataItem.value_low, Math.abs(dataItem.value_high - prevClose), Math.abs(dataItem.value_low - prevClose));\r\n dataItem.tr = tr;\r\n\r\n if (i >= period) {\r\n if (i == period) {\r\n let sum = 0;\r\n let k = 0;\r\n for (let j = index; j >= 0; j--) {\r\n sum += data[j].tr;\r\n k++;\r\n if (k == period) {\r\n break;\r\n }\r\n }\r\n dataItem.atr = sum / period;\r\n }\r\n else {\r\n if (prevATR != null) {\r\n dataItem.atr = (prevATR * (period - 1) + tr) / period;\r\n }\r\n }\r\n\r\n prevATR = dataItem.atr;\r\n }\r\n }\r\n prevClose = valueClose;\r\n index++;\r\n })\r\n\r\n this.series.data.setAll(data);\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"AverageTrueRange.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AverageTrueRange.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\nimport type { DataItem } from \"../../../..\";\r\n\r\nexport interface IAverageTrueRangeSettings extends IChartIndicatorSettings {\r\n}\r\n\r\nexport interface IAverageTrueRangePrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IAverageTrueRangeEvents 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 AverageTrueRange extends ChartIndicator {\r\n public static className: string = \"AverageTrueRange\";\r\n public static classNames: Array<string> = ChartIndicator.classNames.concat([AverageTrueRange.className]);\r\n\r\n declare public _settings: IAverageTrueRangeSettings;\r\n declare public _privateSettings: IAverageTrueRangePrivate;\r\n declare public _events: IAverageTrueRangeEvents;\r\n\r\n /**\r\n * Indicator series.\r\n */\r\n declare public series: LineSeries;\r\n\r\n public _editableSettings: IIndicatorEditableSetting[] = [{\r\n key: \"period\",\r\n name: this.root.language.translateAny(\"Period\"),\r\n type: \"number\"\r\n }, {\r\n key: \"seriesColor\",\r\n name: this.root.language.translateAny(\"Color\"),\r\n type: \"color\"\r\n }];\r\n\r\n public _afterNew() {\r\n this._themeTags.push(\"averagetruerange\");\r\n super._afterNew();\r\n }\r\n\r\n public _createSeries(): LineSeries {\r\n return this.panel.series.push(LineSeries.new(this._root, {\r\n themeTags: [\"indicator\"],\r\n xAxis: this.xAxis,\r\n yAxis: this.yAxis,\r\n valueXField: \"valueX\",\r\n valueYField: \"atr\",\r\n fill: undefined\r\n }))\r\n }\r\n\r\n protected _getDataArray(dataItems: Array<DataItem<any>>): Array<any> {\r\n const data: Array<any> = [];\r\n $array.each(dataItems, (dataItem) => {\r\n data.push({ valueX: dataItem.get(\"valueX\"), value_close: dataItem.get(\"valueY\"), value_high: dataItem.get(\"highValueY\"), value_low: dataItem.get(\"lowValueY\") });\r\n })\r\n return data;\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n public prepareData() {\r\n super.prepareData();\r\n\r\n if (this.series) {\r\n\r\n let period = this.get(\"period\", 20);\r\n const stockSeries = this.get(\"stockSeries\");\r\n const dataItems = stockSeries.dataItems;\r\n\r\n let data = this._getDataArray(dataItems);\r\n\r\n let i = 0;\r\n let index = 0;\r\n let tr = 0;\r\n let prevClose: number | undefined;\r\n let prevATR: number | undefined;\r\n\r\n $array.each(data, (dataItem) => {\r\n\r\n let valueClose = dataItem.value_close;\r\n\r\n if (valueClose != null && prevClose != null) {\r\n i++;\r\n tr = Math.max(dataItem.value_high - dataItem.value_low, Math.abs(dataItem.value_high - prevClose), Math.abs(dataItem.value_low - prevClose));\r\n dataItem.tr = tr;\r\n\r\n if (i >= period) {\r\n if (i == period) {\r\n let sum = 0;\r\n let k = 0;\r\n for (let j = index; j >= 0; j--) {\r\n sum += data[j].tr;\r\n k++;\r\n if (k == period) {\r\n break;\r\n }\r\n }\r\n dataItem.atr = sum / period;\r\n }\r\n else {\r\n if (prevATR != null) {\r\n dataItem.atr = (prevATR * (period - 1) + tr) / period;\r\n }\r\n }\r\n\r\n prevATR = dataItem.atr;\r\n }\r\n }\r\n prevClose = valueClose;\r\n index++;\r\n })\r\n\r\n this.series.updateData(data);\r\n }\r\n }\r\n}"]}
@@ -82,7 +82,7 @@ export class AwesomeOscillator extends ChartIndicator {
82
82
  po = o;
83
83
  }
84
84
  });
85
- this.series.data.setAll(data);
85
+ this.series.updateData(data);
86
86
  }
87
87
  }
88
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AwesomeOscillator.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AwesomeOscillator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\n\r\nimport { Color } from \"../../../core/util/Color\";\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { ColumnSeries } from \"../../xy/series/ColumnSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IAwesomeOscillatorSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * Increasing color.\r\n\t */\r\n\tincreasingColor?: Color;\r\n\r\n\t/**\r\n\t * Decreasing color.\r\n\t */\r\n\tdecreasingColor?: Color;\r\n\r\n}\r\n\r\nexport interface IAwesomeOscillatorPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IAwesomeOscillatorEvents 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 AwesomeOscillator extends ChartIndicator {\r\n\tpublic static className: string = \"AwesomeOscillator\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([AwesomeOscillator.className]);\r\n\r\n\tdeclare public _settings: IAwesomeOscillatorSettings;\r\n\tdeclare public _privateSettings: IAwesomeOscillatorPrivate;\r\n\tdeclare public _events: IAwesomeOscillatorEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: ColumnSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"increasingColor\",\r\n\t\tname: this.root.language.translateAny(\"Increasing\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"decreasingColor\",\r\n\t\tname: this.root.language.translateAny(\"Decreasing\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\r\n\tpublic _afterNew(){\r\n\t\tthis._themeTags.push(\"awesomeoscillator\");\r\n\t\tsuper._afterNew();\r\n\t}\t\r\n\r\n\tpublic _createSeries(): ColumnSeries {\r\n\t\treturn this.panel.series.push(ColumnSeries.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: \"ao\",\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\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tconst increasingColor= \"increasingColor\";\r\n\t\tconst decreasingColor= \"decreasingColor\";\r\n\r\n\t\tif (this.isDirty(increasingColor) || this.isDirty(decreasingColor)) {\r\n\t\t\tconst template = this.series.columns.template;\r\n\t\t\tconst increasing = this.get(increasingColor);\r\n\t\t\tconst decreasing = this.get(decreasingColor);\r\n\t\t\ttemplate.states.create(\"riseFromPrevious\", { fill: increasing, stroke: increasing });\r\n\t\t\ttemplate.states.create(\"dropFromPrevious\", { fill: decreasing, stroke: decreasing });\r\n\t\t\tthis.markDataDirty();\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\tthis.set(\"field\", \"hl/2\");\r\n\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\r\n\t\t\tlet decreasingColor = this.get(\"decreasingColor\", Color.fromHex(0xff0000)).toCSSHex();\r\n\t\t\tlet increasingColor = this.get(\"increasingColor\", Color.fromHex(0x00ff00)).toCSSHex();\r\n\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\t\t\tlet period = 5;\r\n\t\t\tthis._sma(data, 5, \"value_y\", \"sma5\");\r\n\r\n\t\t\tperiod = 34;\r\n\t\t\tthis._sma(data, 34, \"value_y\", \"sma34\");\r\n\r\n\t\t\tlet po = -Infinity;\r\n\t\t\tlet i = 0;\r\n\t\t\t$array.each(data, (dataItem) => {\r\n\t\t\t\ti++;\r\n\t\t\t\tif (i >= period) {\r\n\t\t\t\t\tlet o = dataItem.sma5 - dataItem.sma34\r\n\t\t\t\t\tlet color = increasingColor;\r\n\r\n\t\t\t\t\tif (o < po) {\r\n\t\t\t\t\t\tcolor = decreasingColor;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdataItem.ao = o;\r\n\t\t\t\t\tdataItem.oscillatorColor = color;\r\n\t\t\t\t\tpo = o;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"AwesomeOscillator.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/AwesomeOscillator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\n\r\nimport { Color } from \"../../../core/util/Color\";\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { ColumnSeries } from \"../../xy/series/ColumnSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IAwesomeOscillatorSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * Increasing color.\r\n\t */\r\n\tincreasingColor?: Color;\r\n\r\n\t/**\r\n\t * Decreasing color.\r\n\t */\r\n\tdecreasingColor?: Color;\r\n\r\n}\r\n\r\nexport interface IAwesomeOscillatorPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IAwesomeOscillatorEvents 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 AwesomeOscillator extends ChartIndicator {\r\n\tpublic static className: string = \"AwesomeOscillator\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([AwesomeOscillator.className]);\r\n\r\n\tdeclare public _settings: IAwesomeOscillatorSettings;\r\n\tdeclare public _privateSettings: IAwesomeOscillatorPrivate;\r\n\tdeclare public _events: IAwesomeOscillatorEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: ColumnSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"increasingColor\",\r\n\t\tname: this.root.language.translateAny(\"Increasing\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"decreasingColor\",\r\n\t\tname: this.root.language.translateAny(\"Decreasing\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\r\n\tpublic _afterNew(){\r\n\t\tthis._themeTags.push(\"awesomeoscillator\");\r\n\t\tsuper._afterNew();\r\n\t}\t\r\n\r\n\tpublic _createSeries(): ColumnSeries {\r\n\t\treturn this.panel.series.push(ColumnSeries.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: \"ao\",\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\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tconst increasingColor= \"increasingColor\";\r\n\t\tconst decreasingColor= \"decreasingColor\";\r\n\r\n\t\tif (this.isDirty(increasingColor) || this.isDirty(decreasingColor)) {\r\n\t\t\tconst template = this.series.columns.template;\r\n\t\t\tconst increasing = this.get(increasingColor);\r\n\t\t\tconst decreasing = this.get(decreasingColor);\r\n\t\t\ttemplate.states.create(\"riseFromPrevious\", { fill: increasing, stroke: increasing });\r\n\t\t\ttemplate.states.create(\"dropFromPrevious\", { fill: decreasing, stroke: decreasing });\r\n\t\t\tthis.markDataDirty();\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\tthis.set(\"field\", \"hl/2\");\r\n\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\r\n\t\t\tlet decreasingColor = this.get(\"decreasingColor\", Color.fromHex(0xff0000)).toCSSHex();\r\n\t\t\tlet increasingColor = this.get(\"increasingColor\", Color.fromHex(0x00ff00)).toCSSHex();\r\n\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\t\t\tlet period = 5;\r\n\t\t\tthis._sma(data, 5, \"value_y\", \"sma5\");\r\n\r\n\t\t\tperiod = 34;\r\n\t\t\tthis._sma(data, 34, \"value_y\", \"sma34\");\r\n\r\n\t\t\tlet po = -Infinity;\r\n\t\t\tlet i = 0;\r\n\t\t\t$array.each(data, (dataItem) => {\r\n\t\t\t\ti++;\r\n\t\t\t\tif (i >= period) {\r\n\t\t\t\t\tlet o = dataItem.sma5 - dataItem.sma34\r\n\t\t\t\t\tlet color = increasingColor;\r\n\r\n\t\t\t\t\tif (o < po) {\r\n\t\t\t\t\t\tcolor = decreasingColor;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdataItem.ao = o;\r\n\t\t\t\t\tdataItem.oscillatorColor = color;\r\n\t\t\t\t\tpo = o;\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}"]}
@@ -156,8 +156,8 @@ export class BollingerBands extends MovingAverage {
156
156
  }
157
157
  i++;
158
158
  });
159
- this.upperBandSeries.data.setAll(smaData);
160
- this.lowerBandSeries.data.setAll(smaData);
159
+ this.upperBandSeries.updateData(smaData);
160
+ this.lowerBandSeries.updateData(smaData);
161
161
  }
162
162
  }
163
163
  _dispose() {