@amcharts/amcharts5 5.5.1 → 5.5.2

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 (282) hide show
  1. package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
  2. package/.internal/charts/stock/StockChartDefaultTheme.js +40 -11
  3. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  4. package/.internal/charts/stock/drawing/AverageSeries.d.ts +1 -7
  5. package/.internal/charts/stock/drawing/AverageSeries.d.ts.map +1 -1
  6. package/.internal/charts/stock/drawing/AverageSeries.js +7 -8
  7. package/.internal/charts/stock/drawing/AverageSeries.js.map +1 -1
  8. package/.internal/charts/stock/drawing/CalloutSeries.d.ts +0 -14
  9. package/.internal/charts/stock/drawing/CalloutSeries.d.ts.map +1 -1
  10. package/.internal/charts/stock/drawing/CalloutSeries.js +0 -8
  11. package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
  12. package/.internal/charts/stock/drawing/DoodleSeries.js +2 -2
  13. package/.internal/charts/stock/drawing/DoodleSeries.js.map +1 -1
  14. package/.internal/charts/stock/drawing/DrawingSeries.d.ts +15 -1
  15. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  16. package/.internal/charts/stock/drawing/DrawingSeries.js +54 -15
  17. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  18. package/.internal/charts/stock/drawing/EllipseSeries.d.ts.map +1 -1
  19. package/.internal/charts/stock/drawing/EllipseSeries.js +4 -3
  20. package/.internal/charts/stock/drawing/EllipseSeries.js.map +1 -1
  21. package/.internal/charts/stock/drawing/FibonacciSeries.d.ts +0 -3
  22. package/.internal/charts/stock/drawing/FibonacciSeries.d.ts.map +1 -1
  23. package/.internal/charts/stock/drawing/FibonacciSeries.js +6 -52
  24. package/.internal/charts/stock/drawing/FibonacciSeries.js.map +1 -1
  25. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.d.ts +1 -2
  26. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.d.ts.map +1 -1
  27. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js +6 -4
  28. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js.map +1 -1
  29. package/.internal/charts/stock/drawing/HorizontalLineSeries.js +1 -1
  30. package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
  31. package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts +1 -8
  32. package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts.map +1 -1
  33. package/.internal/charts/stock/drawing/HorizontalRaySeries.js +11 -20
  34. package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
  35. package/.internal/charts/stock/drawing/IconSeries.d.ts +0 -1
  36. package/.internal/charts/stock/drawing/IconSeries.d.ts.map +1 -1
  37. package/.internal/charts/stock/drawing/IconSeries.js +0 -5
  38. package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
  39. package/.internal/charts/stock/drawing/Measure.d.ts +41 -0
  40. package/.internal/charts/stock/drawing/Measure.d.ts.map +1 -0
  41. package/.internal/charts/stock/drawing/Measure.js +207 -0
  42. package/.internal/charts/stock/drawing/Measure.js.map +1 -0
  43. package/.internal/charts/stock/drawing/PolylineSeries.d.ts +5 -0
  44. package/.internal/charts/stock/drawing/PolylineSeries.d.ts.map +1 -1
  45. package/.internal/charts/stock/drawing/PolylineSeries.js +36 -1
  46. package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
  47. package/.internal/charts/stock/drawing/QuadrantLineSeries.d.ts +0 -7
  48. package/.internal/charts/stock/drawing/QuadrantLineSeries.d.ts.map +1 -1
  49. package/.internal/charts/stock/drawing/QuadrantLineSeries.js +7 -18
  50. package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
  51. package/.internal/charts/stock/drawing/RectangleSeries.d.ts +14 -11
  52. package/.internal/charts/stock/drawing/RectangleSeries.d.ts.map +1 -1
  53. package/.internal/charts/stock/drawing/RectangleSeries.js +80 -121
  54. package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
  55. package/.internal/charts/stock/drawing/RegressionSeries.d.ts +0 -7
  56. package/.internal/charts/stock/drawing/RegressionSeries.d.ts.map +1 -1
  57. package/.internal/charts/stock/drawing/RegressionSeries.js +0 -3
  58. package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
  59. package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts +1 -1
  60. package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts.map +1 -1
  61. package/.internal/charts/stock/drawing/SimpleLineSeries.js +11 -9
  62. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  63. package/.internal/charts/stock/drawing/TrendLineSeries.d.ts +0 -7
  64. package/.internal/charts/stock/drawing/TrendLineSeries.d.ts.map +1 -1
  65. package/.internal/charts/stock/drawing/TrendLineSeries.js +0 -3
  66. package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
  67. package/.internal/charts/stock/drawing/VerticalLineSeries.js +1 -1
  68. package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
  69. package/.internal/charts/stock/indicators/RelativeStrengthIndex.d.ts +1 -0
  70. package/.internal/charts/stock/indicators/RelativeStrengthIndex.d.ts.map +1 -1
  71. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +19 -11
  72. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  73. package/.internal/charts/stock/toolbar/DrawingControl.d.ts +14 -0
  74. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  75. package/.internal/charts/stock/toolbar/DrawingControl.js +109 -68
  76. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  77. package/.internal/charts/stock/toolbar/DrawingToolControl.d.ts +1 -1
  78. package/.internal/charts/stock/toolbar/DrawingToolControl.d.ts.map +1 -1
  79. package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
  80. package/.internal/charts/stock/toolbar/DropdownList.d.ts +2 -0
  81. package/.internal/charts/stock/toolbar/DropdownList.d.ts.map +1 -1
  82. package/.internal/charts/stock/toolbar/DropdownList.js +11 -0
  83. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  84. package/.internal/charts/stock/toolbar/DropdownListControl.d.ts +1 -0
  85. package/.internal/charts/stock/toolbar/DropdownListControl.d.ts.map +1 -1
  86. package/.internal/charts/stock/toolbar/DropdownListControl.js +1 -0
  87. package/.internal/charts/stock/toolbar/DropdownListControl.js.map +1 -1
  88. package/.internal/charts/stock/toolbar/StockIcons.d.ts.map +1 -1
  89. package/.internal/charts/stock/toolbar/StockIcons.js +3 -2
  90. package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
  91. package/.internal/charts/xy/XYChart.js +1 -1
  92. package/.internal/charts/xy/XYChart.js.map +1 -1
  93. package/.internal/charts/xy/axes/CategoryDateAxis.d.ts.map +1 -1
  94. package/.internal/charts/xy/axes/CategoryDateAxis.js +2 -4
  95. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  96. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  97. package/.internal/charts/xy/axes/DateAxis.js +2 -4
  98. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  99. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  100. package/.internal/charts/xy/axes/GaplessDateAxis.js +3 -5
  101. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  102. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  103. package/.internal/charts/xy/axes/ValueAxis.js +2 -4
  104. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  105. package/.internal/charts/xy/series/BaseColumnSeries.d.ts +2 -0
  106. package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
  107. package/.internal/charts/xy/series/BaseColumnSeries.js +21 -3
  108. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  109. package/.internal/core/Classes.d.ts +7 -5
  110. package/.internal/core/Classes.d.ts.map +1 -1
  111. package/.internal/core/Classes.js.map +1 -1
  112. package/.internal/core/Registry.js +1 -1
  113. package/.internal/core/Registry.js.map +1 -1
  114. package/.internal/core/render/Series.d.ts +22 -0
  115. package/.internal/core/render/Series.d.ts.map +1 -1
  116. package/.internal/core/render/Series.js +1 -1
  117. package/.internal/core/render/Series.js.map +1 -1
  118. package/.internal/core/render/Sprite.js.map +1 -1
  119. package/.internal/core/render/backend/CanvasRenderer.d.ts +3 -3
  120. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  121. package/.internal/core/render/backend/CanvasRenderer.js +16 -15
  122. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  123. package/.internal/core/util/Percent.d.ts +2 -1
  124. package/.internal/core/util/Percent.d.ts.map +1 -1
  125. package/.internal/core/util/Percent.js +2 -1
  126. package/.internal/core/util/Percent.js.map +1 -1
  127. package/.internal/plugins/exporting/Exporting.js +6 -7
  128. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  129. package/.internal/plugins/json/Classes-script.d.ts +16 -0
  130. package/.internal/plugins/json/Classes-script.d.ts.map +1 -1
  131. package/.internal/plugins/json/Classes-script.js +8 -0
  132. package/.internal/plugins/json/Classes-script.js.map +1 -1
  133. package/.internal/plugins/json/Classes.d.ts +16 -0
  134. package/.internal/plugins/json/Classes.d.ts.map +1 -1
  135. package/.internal/plugins/json/Classes.js +8 -0
  136. package/.internal/plugins/json/Classes.js.map +1 -1
  137. package/CHANGELOG.md +22 -0
  138. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  139. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  140. package/examples/javascript/flow-chord/package.json +1 -1
  141. package/examples/javascript/flow-chord-directed/package.json +1 -1
  142. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  143. package/examples/javascript/flow-sankey/package.json +1 -1
  144. package/examples/javascript/gauge/package.json +1 -1
  145. package/examples/javascript/gauge-bands/package.json +1 -1
  146. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  147. package/examples/javascript/hierarchy-pack/package.json +1 -1
  148. package/examples/javascript/hierarchy-partition/package.json +1 -1
  149. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  150. package/examples/javascript/hierarchy-tree/package.json +1 -1
  151. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  152. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  153. package/examples/javascript/jest/package.json +1 -1
  154. package/examples/javascript/json-pie/package.json +1 -1
  155. package/examples/javascript/json-xy/package.json +1 -1
  156. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  157. package/examples/javascript/map-day-and-night/package.json +1 -1
  158. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  159. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  160. package/examples/javascript/map-with-bubbles/package.json +1 -1
  161. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  162. package/examples/javascript/misc-40-charts/package.json +1 -1
  163. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  164. package/examples/javascript/pie-chart/package.json +1 -1
  165. package/examples/javascript/pie-donut-chart/package.json +1 -1
  166. package/examples/javascript/pie-variable-radius/package.json +1 -1
  167. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  168. package/examples/javascript/radar-heat-map/package.json +1 -1
  169. package/examples/javascript/radar-line/package.json +1 -1
  170. package/examples/javascript/radar-time-line/package.json +1 -1
  171. package/examples/javascript/sliced-funnel/package.json +1 -1
  172. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  173. package/examples/javascript/sliced-pyramid/package.json +1 -1
  174. package/examples/javascript/stock-chart/package.json +1 -1
  175. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  176. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  177. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  178. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  179. package/examples/javascript/stock-chart-live/package.json +1 -1
  180. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  181. package/examples/javascript/venn-diagram/package.json +1 -1
  182. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  183. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  184. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  185. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  186. package/examples/javascript/xy-bubble/package.json +1 -1
  187. package/examples/javascript/xy-candlestick/package.json +1 -1
  188. package/examples/javascript/xy-clustered-column/package.json +1 -1
  189. package/examples/javascript/xy-column/package.json +1 -1
  190. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  191. package/examples/javascript/xy-data-grouping/package.json +1 -1
  192. package/examples/javascript/xy-draggable-range/package.json +1 -1
  193. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  194. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  195. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  196. package/examples/javascript/xy-line/package.json +1 -1
  197. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  198. package/examples/javascript/xy-live-data/package.json +1 -1
  199. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  200. package/examples/javascript/xy-ohlc/package.json +1 -1
  201. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  202. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  203. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  204. package/examples/javascript/xy-stacked-column/package.json +1 -1
  205. package/examples/javascript/xy-stacked-step/package.json +1 -1
  206. package/examples/javascript/xy-stock/package.json +1 -1
  207. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  208. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  209. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  210. package/examples/typescript/flow-chord/package.json +1 -1
  211. package/examples/typescript/flow-chord-directed/package.json +1 -1
  212. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  213. package/examples/typescript/flow-sankey/package.json +1 -1
  214. package/examples/typescript/gauge/package.json +1 -1
  215. package/examples/typescript/gauge-bands/package.json +1 -1
  216. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  217. package/examples/typescript/hierarchy-pack/package.json +1 -1
  218. package/examples/typescript/hierarchy-partition/package.json +1 -1
  219. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  220. package/examples/typescript/hierarchy-tree/package.json +1 -1
  221. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  222. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  223. package/examples/typescript/jest/package.json +1 -1
  224. package/examples/typescript/json-pie/package.json +1 -1
  225. package/examples/typescript/json-xy/package.json +1 -1
  226. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  227. package/examples/typescript/map-day-and-night/package.json +1 -1
  228. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  229. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  230. package/examples/typescript/map-with-bubbles/package.json +1 -1
  231. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  232. package/examples/typescript/misc-40-charts/package.json +1 -1
  233. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  234. package/examples/typescript/pie-chart/package.json +1 -1
  235. package/examples/typescript/pie-donut-chart/package.json +1 -1
  236. package/examples/typescript/pie-variable-radius/package.json +1 -1
  237. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  238. package/examples/typescript/radar-heat-map/package.json +1 -1
  239. package/examples/typescript/radar-line/package.json +1 -1
  240. package/examples/typescript/radar-time-line/package.json +1 -1
  241. package/examples/typescript/sliced-funnel/package.json +1 -1
  242. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  243. package/examples/typescript/sliced-pyramid/package.json +1 -1
  244. package/examples/typescript/stock-chart/package.json +1 -1
  245. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  246. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  247. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  248. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  249. package/examples/typescript/stock-chart-live/package.json +1 -1
  250. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  251. package/examples/typescript/venn-diagram/package.json +1 -1
  252. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  253. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  254. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  255. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  256. package/examples/typescript/xy-bubble/package.json +1 -1
  257. package/examples/typescript/xy-candlestick/package.json +1 -1
  258. package/examples/typescript/xy-clustered-column/package.json +1 -1
  259. package/examples/typescript/xy-column/package.json +1 -1
  260. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  261. package/examples/typescript/xy-data-grouping/package.json +1 -1
  262. package/examples/typescript/xy-draggable-range/package.json +1 -1
  263. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  264. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  265. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  266. package/examples/typescript/xy-line/package.json +1 -1
  267. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  268. package/examples/typescript/xy-live-data/package.json +1 -1
  269. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  270. package/examples/typescript/xy-ohlc/package.json +1 -1
  271. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  272. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  273. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  274. package/examples/typescript/xy-stacked-column/package.json +1 -1
  275. package/examples/typescript/xy-stacked-step/package.json +1 -1
  276. package/examples/typescript/xy-stock/package.json +1 -1
  277. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  278. package/package.json +1 -1
  279. package/stock.d.ts +2 -0
  280. package/stock.d.ts.map +1 -1
  281. package/stock.js +2 -0
  282. package/stock.js.map +1 -1
@@ -21,8 +21,8 @@ export class VerticalLineSeries extends SimpleLineSeries {
21
21
  if (diP1 && diP2 && movePoint) {
22
22
  const yAxis = this.get("yAxis");
23
23
  const xAxis = this.get("xAxis");
24
- const valueY = this._getYValue(yAxis.positionToValue(yAxis.coordinateToPosition(movePoint.y)));
25
24
  const valueX = this._getXValue(xAxis.positionToValue(xAxis.coordinateToPosition(movePoint.x)));
25
+ const valueY = this._getYValue(yAxis.positionToValue(yAxis.coordinateToPosition(movePoint.y)), valueX);
26
26
  this._setContext(diP1, "valueY", valueY, true);
27
27
  this._setContext(diP2, "valueY", valueY + 0.0001, true);
28
28
  this._setContext(diP1, "valueX", valueX);
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalLineSeries.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/VerticalLineSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ISpritePointerEvent } from \"../../../core/render/Sprite\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { Line } from \"../../../core/render/Line\";\r\nimport { SimpleLineSeries, ISimpleLineSeriesSettings, ISimpleLineSeriesPrivate, ISimpleLineSeriesDataItem } from \"./SimpleLineSeries\";\r\nimport type { Template } from \"../../../core/util/Template\";\r\n\r\nexport interface IVerticalLineSeriesDataItem extends ISimpleLineSeriesDataItem {\r\n}\r\n\r\nexport interface IVerticalLineSeriesSettings extends ISimpleLineSeriesSettings {\r\n}\r\n\r\nexport interface IVerticalLineSeriesPrivate extends ISimpleLineSeriesPrivate {\r\n}\r\n\r\nexport class VerticalLineSeries extends SimpleLineSeries {\r\n\tpublic static className: string = \"VerticalLineSeries\";\r\n\tpublic static classNames: Array<string> = SimpleLineSeries.classNames.concat([VerticalLineSeries.className]);\r\n\r\n\tdeclare public _settings: IVerticalLineSeriesSettings;\r\n\tdeclare public _privateSettings: IVerticalLineSeriesPrivate;\r\n\tdeclare public _dataItemSettings: IVerticalLineSeriesDataItem;\r\n\r\n\tprotected _tag = \"vertical\";\r\n\r\n\tprotected _handleBulletDragged(event: ISpritePointerEvent) {\r\n\t\tsuper._handleBulletDragged(event);\r\n\r\n\t\tconst dataItem = event.target.dataItem as DataItem<IVerticalLineSeriesDataItem>;\r\n\t\tconst dataContext = dataItem.dataContext as any;\r\n\r\n\t\tif (dataContext) {\r\n\t\t\tconst index = dataContext.index;\r\n\t\t\tconst diP1 = this._di[index][\"p1\"];\r\n\t\t\tconst diP2 = this._di[index][\"p2\"];\r\n\r\n\t\t\tconst movePoint = this._movePointerPoint;\r\n\r\n\t\t\tif (diP1 && diP2 && movePoint) {\r\n\t\t\t\tconst yAxis = this.get(\"yAxis\");\r\n\t\t\t\tconst xAxis = this.get(\"xAxis\");\r\n\r\n\t\t\t\tconst valueY = this._getYValue(yAxis.positionToValue(yAxis.coordinateToPosition(movePoint.y)));\r\n\t\t\t\tconst valueX = this._getXValue(xAxis.positionToValue(xAxis.coordinateToPosition(movePoint.x)));\r\n\r\n\t\t\t\tthis._setContext(diP1, \"valueY\", valueY, true);\r\n\t\t\t\tthis._setContext(diP2, \"valueY\", valueY + 0.0001, true);\r\n\r\n\t\t\t\tthis._setContext(diP1, \"valueX\", valueX);\r\n\t\t\t\tthis._setContext(diP2, \"valueX\", valueX);\r\n\r\n\t\t\t\tthis._setXLocation(diP1, valueX);\r\n\t\t\t\tthis._setXLocation(diP2, valueX);\r\n\r\n\t\t\t\tthis._positionBullets(diP1);\r\n\t\t\t\tthis._positionBullets(diP2);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _updateSegment(index: number) {\r\n\t\tif (this._di[index]) {\r\n\t\t\tconst diP1 = this._di[index][\"p1\"];\r\n\t\t\tconst diP2 = this._di[index][\"p2\"];\r\n\t\t\tif (diP1 && diP2) {\r\n\t\t\t\tthis._setContext(diP2, \"valueY\", diP1.get(\"valueY\", 0) + 0.0001, true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handlePointerMoveReal() {\r\n\r\n\t}\r\n\r\n\tprotected _updateExtensionLine(line: Line, template: Template<any>) {\r\n\t\tline.setAll({\r\n\t\t\tstroke: template.get(\"stroke\"),\r\n\t\t\tstrokeWidth: template.get(\"strokeWidth\"),\r\n\t\t\tstrokeDasharray: template.get(\"strokeDasharray\"),\r\n\t\t\tstrokeOpacity: template.get(\"strokeOpacity\")\r\n\t\t})\r\n\t}\t\r\n\r\n\tprotected _handlePointerClickReal(event: ISpritePointerEvent) {\r\n\t\tif (this._drawingEnabled) {\r\n\t\t\tif (!this._isDragging) {\r\n\t\t\t\tthis._index++;\r\n\t\t\t\tthis._addPoints(event, this._index);\r\n\t\t\t\tthis._isDrawing = false;\r\n\t\t\t\tthis._updateSegment(this._index);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"VerticalLineSeries.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/VerticalLineSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ISpritePointerEvent } from \"../../../core/render/Sprite\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { Line } from \"../../../core/render/Line\";\r\nimport { SimpleLineSeries, ISimpleLineSeriesSettings, ISimpleLineSeriesPrivate, ISimpleLineSeriesDataItem } from \"./SimpleLineSeries\";\r\nimport type { Template } from \"../../../core/util/Template\";\r\n\r\nexport interface IVerticalLineSeriesDataItem extends ISimpleLineSeriesDataItem {\r\n}\r\n\r\nexport interface IVerticalLineSeriesSettings extends ISimpleLineSeriesSettings {\r\n}\r\n\r\nexport interface IVerticalLineSeriesPrivate extends ISimpleLineSeriesPrivate {\r\n}\r\n\r\nexport class VerticalLineSeries extends SimpleLineSeries {\r\n\tpublic static className: string = \"VerticalLineSeries\";\r\n\tpublic static classNames: Array<string> = SimpleLineSeries.classNames.concat([VerticalLineSeries.className]);\r\n\r\n\tdeclare public _settings: IVerticalLineSeriesSettings;\r\n\tdeclare public _privateSettings: IVerticalLineSeriesPrivate;\r\n\tdeclare public _dataItemSettings: IVerticalLineSeriesDataItem;\r\n\r\n\tprotected _tag = \"vertical\";\r\n\r\n\tprotected _handleBulletDragged(event: ISpritePointerEvent) {\r\n\t\tsuper._handleBulletDragged(event);\r\n\r\n\t\tconst dataItem = event.target.dataItem as DataItem<IVerticalLineSeriesDataItem>;\r\n\t\tconst dataContext = dataItem.dataContext as any;\r\n\r\n\t\tif (dataContext) {\r\n\t\t\tconst index = dataContext.index;\r\n\t\t\tconst diP1 = this._di[index][\"p1\"];\r\n\t\t\tconst diP2 = this._di[index][\"p2\"];\r\n\r\n\t\t\tconst movePoint = this._movePointerPoint;\r\n\r\n\t\t\tif (diP1 && diP2 && movePoint) {\r\n\t\t\t\tconst yAxis = this.get(\"yAxis\");\r\n\t\t\t\tconst xAxis = this.get(\"xAxis\");\r\n\r\n\t\t\t\tconst valueX = this._getXValue(xAxis.positionToValue(xAxis.coordinateToPosition(movePoint.x)));\r\n\t\t\t\tconst valueY = this._getYValue(yAxis.positionToValue(yAxis.coordinateToPosition(movePoint.y)), valueX);\r\n\r\n\t\t\t\tthis._setContext(diP1, \"valueY\", valueY, true);\r\n\t\t\t\tthis._setContext(diP2, \"valueY\", valueY + 0.0001, true);\r\n\r\n\t\t\t\tthis._setContext(diP1, \"valueX\", valueX);\r\n\t\t\t\tthis._setContext(diP2, \"valueX\", valueX);\r\n\r\n\t\t\t\tthis._setXLocation(diP1, valueX);\r\n\t\t\t\tthis._setXLocation(diP2, valueX);\r\n\r\n\t\t\t\tthis._positionBullets(diP1);\r\n\t\t\t\tthis._positionBullets(diP2);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _updateSegment(index: number) {\r\n\t\tif (this._di[index]) {\r\n\t\t\tconst diP1 = this._di[index][\"p1\"];\r\n\t\t\tconst diP2 = this._di[index][\"p2\"];\r\n\t\t\tif (diP1 && diP2) {\r\n\t\t\t\tthis._setContext(diP2, \"valueY\", diP1.get(\"valueY\", 0) + 0.0001, true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _handlePointerMoveReal() {\r\n\r\n\t}\r\n\r\n\tprotected _updateExtensionLine(line: Line, template: Template<any>) {\r\n\t\tline.setAll({\r\n\t\t\tstroke: template.get(\"stroke\"),\r\n\t\t\tstrokeWidth: template.get(\"strokeWidth\"),\r\n\t\t\tstrokeDasharray: template.get(\"strokeDasharray\"),\r\n\t\t\tstrokeOpacity: template.get(\"strokeOpacity\")\r\n\t\t})\r\n\t}\r\n\r\n\tprotected _handlePointerClickReal(event: ISpritePointerEvent) {\r\n\t\tif (this._drawingEnabled) {\r\n\t\t\tif (!this._isDragging) {\r\n\t\t\t\tthis._index++;\r\n\t\t\t\tthis._addPoints(event, this._index);\r\n\t\t\t\tthis._isDrawing = false;\r\n\t\t\t\tthis._updateSegment(this._index);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"]}
@@ -38,6 +38,7 @@ export declare class RelativeStrengthIndex extends ChartIndicator {
38
38
  _privateSettings: IRelativeStrengthIndexPrivate;
39
39
  _events: IRelativeStrengthIndexEvents;
40
40
  overBought: DataItem<IValueAxisDataItem>;
41
+ middle: DataItem<IValueAxisDataItem>;
41
42
  overSold: DataItem<IValueAxisDataItem>;
42
43
  overSoldRange: ILineSeriesAxisRange;
43
44
  overBoughtRange: ILineSeriesAxisRange;
@@ -1 +1 @@
1
- {"version":3,"file":"RelativeStrengthIndex.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAI9E,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAE9E;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;CAEtB;AAED,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;CAC5E;AAED,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;CAC1E;AAGD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;IACxD,OAAc,SAAS,EAAE,MAAM,CAA2B;IAC1D,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuE;IAE/F,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,OAAO,EAAE,4BAA4B,CAAC;IAE9C,UAAU,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1C,QAAQ,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAExC,aAAa,EAAG,oBAAoB,CAAC;IACrC,eAAe,EAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACY,MAAM,EAAE,UAAU,CAAC;IAE3B,iBAAiB,EAAE,yBAAyB,EAAE,CAyCjD;IAEJ,SAAS,CAAC,SAAS,EAAE,MAAM,CAAS;IAEpC,SAAS,CAAC,SAAS;IAqDZ,aAAa,IAAI,UAAU;IAY3B,eAAe;IAsDtB;;OAEG;IACI,WAAW;CA+DlB"}
1
+ {"version":3,"file":"RelativeStrengthIndex.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAI9E,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAE9E;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;CAEtB;AAED,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;CAC5E;AAED,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;CAC1E;AAGD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;IACxD,OAAc,SAAS,EAAE,MAAM,CAA2B;IAC1D,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuE;IAE/F,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,OAAO,EAAE,4BAA4B,CAAC;IAE9C,UAAU,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1C,MAAM,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACtC,QAAQ,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAExC,aAAa,EAAG,oBAAoB,CAAC;IACrC,eAAe,EAAG,oBAAoB,CAAC;IAG9C;;OAEG;IACY,MAAM,EAAE,UAAU,CAAC;IAE3B,iBAAiB,EAAE,yBAAyB,EAAE,CAgCjD;IAEJ,SAAS,CAAC,SAAS,EAAE,MAAM,CAAS;IAEpC,SAAS,CAAC,SAAS;IAiEZ,aAAa,IAAI,UAAU;IAY3B,eAAe;IA6DtB;;OAEG;IACI,WAAW;CA+DlB"}
@@ -15,6 +15,12 @@ export class RelativeStrengthIndex extends ChartIndicator {
15
15
  writable: true,
16
16
  value: void 0
17
17
  });
18
+ Object.defineProperty(this, "middle", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
18
24
  Object.defineProperty(this, "overSold", {
19
25
  enumerable: true,
20
26
  configurable: true,
@@ -61,15 +67,6 @@ export class RelativeStrengthIndex extends ChartIndicator {
61
67
  name: this.root.language.translateAny("Oversold"),
62
68
  type: "number"
63
69
  },
64
- {
65
- key: "overBought",
66
- name: this.root.language.translateAny("Overbought"),
67
- type: "number"
68
- }, {
69
- key: "overSold",
70
- name: this.root.language.translateAny("Oversold"),
71
- type: "number"
72
- },
73
70
  {
74
71
  key: "overBoughtColor",
75
72
  name: this.root.language.translateAny("Overbought"),
@@ -91,6 +88,12 @@ export class RelativeStrengthIndex extends ChartIndicator {
91
88
  _afterNew() {
92
89
  super._afterNew();
93
90
  this.yAxis.setAll({ min: 0, max: 100, strictMinMax: true });
91
+ this.middle = this.yAxis.createAxisRange(this.yAxis.makeDataItem({}));
92
+ const middleLabel = this.middle.get("label");
93
+ if (middleLabel) {
94
+ middleLabel.setAll({ themeTags: ["overbought"], visible: true, location: 0 });
95
+ middleLabel._applyThemes();
96
+ }
94
97
  // overbought range
95
98
  const overBought = this.yAxis.makeDataItem({});
96
99
  this.overBought = overBought;
@@ -144,20 +147,21 @@ export class RelativeStrengthIndex extends ChartIndicator {
144
147
  }
145
148
  _updateChildren() {
146
149
  super._updateChildren();
150
+ const numberFormatter = this.getNumberFormatter();
147
151
  const overSoldValue = this.get("overSold", 20);
148
152
  const overBoughtValue = this.get("overBought", 80);
149
153
  if (this.isDirty("overBought")) {
150
154
  this.overBought.set("value", overBoughtValue);
151
155
  const label = this.overBought.get("label");
152
156
  if (label) {
153
- label.set("text", this.getNumberFormatter().format(overBoughtValue));
157
+ label.set("text", numberFormatter.format(overBoughtValue));
154
158
  }
155
159
  }
156
160
  if (this.isDirty("overSold")) {
157
161
  this.overSold.set("value", overSoldValue);
158
162
  const label = this.overSold.get("label");
159
163
  if (label) {
160
- label.set("text", this.getNumberFormatter().format(overSoldValue));
164
+ label.set("text", numberFormatter.format(overSoldValue));
161
165
  }
162
166
  }
163
167
  if (this.isDirty("overSoldColor")) {
@@ -180,6 +184,10 @@ export class RelativeStrengthIndex extends ChartIndicator {
180
184
  this.overBoughtRange.fills.template.set("fill", color);
181
185
  this.overBoughtRange.strokes.template.set("stroke", color);
182
186
  }
187
+ const middleValue = overSoldValue + (overBoughtValue - overSoldValue) / 2;
188
+ this.middle.set("value", middleValue);
189
+ this.middle.get("grid").setAll({ forceHidden: false, strokeOpacity: .4, strokeDasharray: [2, 2] });
190
+ this.middle.get("label").setAll({ forceHidden: false, text: numberFormatter.format(middleValue) });
183
191
  this.series.get("yAxis").set("baseValue", overSoldValue + (overBoughtValue - overSoldValue) / 2);
184
192
  }
185
193
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"RelativeStrengthIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { IValueAxisDataItem } from \"../../xy/axes/ValueAxis\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries, ILineSeriesAxisRange } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IRelativeStrengthIndexSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * A value for \"overbought\" threshold.\r\n\t */\r\n\toverBought?: number;\r\n\r\n\t/**\r\n\t * A value for \"oversold\" threshold.\r\n\t */\r\n\toverSold?: number;\r\n\r\n\t/**\r\n\t * A color for \"overbought\" section.\r\n\t */\r\n\toverBoughtColor?: Color;\r\n\r\n\t/**\r\n\t * A color for \"oversold\" section.\r\n\t */\r\n\toverSoldColor?: Color;\r\n\r\n}\r\n\r\nexport interface IRelativeStrengthIndexPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IRelativeStrengthIndexEvents 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 RelativeStrengthIndex extends ChartIndicator {\r\n\tpublic static className: string = \"RelativeStrengthIndex\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([RelativeStrengthIndex.className]);\r\n\r\n\tdeclare public _settings: IRelativeStrengthIndexSettings;\r\n\tdeclare public _privateSettings: IRelativeStrengthIndexPrivate;\r\n\tdeclare public _events: IRelativeStrengthIndexEvents;\r\n\r\n\tpublic overBought!: DataItem<IValueAxisDataItem>;\r\n\tpublic overSold!: DataItem<IValueAxisDataItem>;\r\n\r\n\tpublic overSoldRange!: ILineSeriesAxisRange;\r\n\tpublic overBoughtRange!: ILineSeriesAxisRange;\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\t{\r\n\t\t\tkey: \"period\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"field\",\r\n\t\t\tname: this.root.language.translateAny(\"Field\"),\r\n\t\t\ttype: \"dropdown\",\r\n\t\t\toptions: [\"open\", \"close\", \"low\", \"high\", \"hl/2\", \"hlc/3\", \"hlcc/4\", \"ohlc/4\"]\r\n\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Color\"),\r\n\t\t\ttype: \"color\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"overBought\",\r\n\t\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"overSold\",\r\n\t\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\t\ttype: \"number\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"overBought\",\r\n\t\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"overSold\",\r\n\t\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\t\ttype: \"number\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"overBoughtColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"overSoldColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}];\r\n\r\n\tprotected _themeTag: string = \"rsi\";\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis.yAxis.setAll({ min: 0, max: 100, strictMinMax: true });\r\n\r\n\t\t// overbought range\r\n\t\tconst overBought = this.yAxis.makeDataItem({});\r\n\t\tthis.overBought = overBought;\r\n\r\n\t\toverBought.set(\"endValue\", 100);\r\n\t\tconst overBoughtRange = this.series.createAxisRange(overBought);\r\n\t\tthis.overBoughtRange = overBoughtRange;\r\n\t\tconst overBoughtFills = overBoughtRange.fills;\r\n\t\tif (overBoughtFills) {\r\n\t\t\toverBoughtFills.template.set(\"themeTags\", [\"overbought\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overBoughtGrid = overBought.get(\"grid\");\r\n\t\tif (overBoughtGrid) {\r\n\t\t\toverBoughtGrid.setAll({ themeTags: [\"overbought\"], visible: true });\r\n\t\t\toverBoughtGrid._applyThemes();\r\n\t\t}\r\n\r\n\t\tconst overBoughtLabel = overBought.get(\"label\");\r\n\t\tif (overBoughtLabel) {\r\n\t\t\toverBoughtLabel.setAll({ themeTags: [\"overbought\"], visible: true, location: 0 });\r\n\t\t\toverBoughtLabel._applyThemes();\r\n\t\t}\r\n\r\n\t\tconst overSold = this.yAxis.makeDataItem({});\r\n\t\tthis.overSold = overSold;\r\n\r\n\t\toverSold.set(\"endValue\", 0);\r\n\t\tconst overSoldRange = this.series.createAxisRange(overSold);\r\n\t\tthis.overSoldRange = overSoldRange;\r\n\t\tconst overSoldFills = overSoldRange.fills;\r\n\t\tif (overSoldFills) {\r\n\t\t\toverSoldFills.template.set(\"themeTags\", [\"oversold\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overSoldGrid = overSold.get(\"grid\");\r\n\t\tif (overSoldGrid) {\r\n\t\t\toverSoldGrid.setAll({ themeTags: [\"oversold\"], visible: true });\r\n\t\t\toverSoldGrid._applyThemes();\r\n\t\t}\r\n\r\n\t\tconst overSoldLabel = overSold.get(\"label\");\r\n\t\tif (overSoldLabel) {\r\n\t\t\toverSoldLabel.setAll({ themeTags: [\"oversold\"], visible: true, location: 0 });\r\n\t\t\toverSoldLabel._applyThemes();\r\n\t\t}\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: \"valueY\",\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\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tconst overSoldValue = this.get(\"overSold\", 20);\r\n\t\tconst overBoughtValue = this.get(\"overBought\", 80);\r\n\r\n\t\tif (this.isDirty(\"overBought\")) {\r\n\t\t\tthis.overBought.set(\"value\", overBoughtValue);\r\n\r\n\t\t\tconst label = this.overBought.get(\"label\");\r\n\t\t\tif (label) {\r\n\t\t\t\tlabel.set(\"text\", this.getNumberFormatter().format(overBoughtValue));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overSold\")) {\r\n\t\t\tthis.overSold.set(\"value\", overSoldValue);\r\n\r\n\t\t\tconst label = this.overSold.get(\"label\");\r\n\t\t\tif (label) {\r\n\t\t\t\tlabel.set(\"text\", this.getNumberFormatter().format(overSoldValue));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overSoldColor\")) {\r\n\t\t\tconst color = this.get(\"overSoldColor\");\r\n\t\t\tconst label = this.overSold.get(\"label\");\r\n\r\n\t\t\tif (label) {\r\n\t\t\t\tlabel.set(\"fill\", color);\r\n\t\t\t}\r\n\r\n\t\t\tthis.overSold.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overSoldRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overSoldRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overBoughtColor\")) {\r\n\t\t\tconst color = this.get(\"overBoughtColor\");\r\n\t\t\tconst label = this.overBought.get(\"label\");\r\n\r\n\t\t\tif (label) {\r\n\t\t\t\tlabel.set(\"fill\", color);\r\n\t\t\t}\r\n\r\n\t\t\tthis.overBought.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overBoughtRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overBoughtRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\r\n\t\tthis.series.get(\"yAxis\").set(\"baseValue\", overSoldValue + (overBoughtValue - overSoldValue) / 2);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tconst period = this.get(\"period\", 14);\r\n\t\t\tconst data: Array<any> = [];\r\n\t\t\tlet i = 0;\r\n\t\t\tlet averageGain = 0;\r\n\t\t\tlet averageLoss = 0;\r\n\t\t\tlet prevAverageGain = 0;\r\n\t\t\tlet prevAverageLoss = 0;\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tlet rsi = null;\r\n\t\t\t\ti++;\r\n\r\n\t\t\t\tif (i == period + 1) {\r\n\t\t\t\t\tfor (let j = 1; j <= period; j++) {\r\n\t\t\t\t\t\tlet value = this._getValue(dataItems[j]);\r\n\t\t\t\t\t\tlet prevValue = this._getValue(dataItems[j - 1]);\r\n\t\t\t\t\t\tif (value != undefined && prevValue != undefined) {\r\n\t\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\t\tif (change > 0) {\r\n\t\t\t\t\t\t\t\taverageGain += change / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\taverageLoss += Math.abs(change) / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\t\t\t\t}\r\n\t\t\t\telse if (i > period) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\t\t\t\t\tlet prevValue = this._getValue(dataItems[i - 2]);\r\n\t\t\t\t\tif (value != null && prevValue != null) {\r\n\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\tlet gain = 0;\r\n\t\t\t\t\t\tlet loss = 0;\r\n\r\n\t\t\t\t\t\tif (change > 0) {\r\n\t\t\t\t\t\t\tgain = change;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tloss = -change;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\taverageGain = (prevAverageGain * (period - 1) + gain) / period;\r\n\t\t\t\t\t\taverageLoss = (prevAverageLoss * (period - 1) + loss) / period;\r\n\r\n\t\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdata.push({ valueX: dataItem.get(\"valueX\"), valueY: rsi });\r\n\r\n\t\t\t\tprevAverageGain = averageGain;\r\n\t\t\t\tprevAverageLoss = averageLoss;\r\n\t\t\t})\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"RelativeStrengthIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { IValueAxisDataItem } from \"../../xy/axes/ValueAxis\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries, ILineSeriesAxisRange } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IRelativeStrengthIndexSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * A value for \"overbought\" threshold.\r\n\t */\r\n\toverBought?: number;\r\n\r\n\t/**\r\n\t * A value for \"oversold\" threshold.\r\n\t */\r\n\toverSold?: number;\r\n\r\n\t/**\r\n\t * A color for \"overbought\" section.\r\n\t */\r\n\toverBoughtColor?: Color;\r\n\r\n\t/**\r\n\t * A color for \"oversold\" section.\r\n\t */\r\n\toverSoldColor?: Color;\r\n\r\n}\r\n\r\nexport interface IRelativeStrengthIndexPrivate extends IChartIndicatorPrivate {\r\n}\r\n\r\nexport interface IRelativeStrengthIndexEvents 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 RelativeStrengthIndex extends ChartIndicator {\r\n\tpublic static className: string = \"RelativeStrengthIndex\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([RelativeStrengthIndex.className]);\r\n\r\n\tdeclare public _settings: IRelativeStrengthIndexSettings;\r\n\tdeclare public _privateSettings: IRelativeStrengthIndexPrivate;\r\n\tdeclare public _events: IRelativeStrengthIndexEvents;\r\n\r\n\tpublic overBought!: DataItem<IValueAxisDataItem>;\r\n\tpublic middle!: DataItem<IValueAxisDataItem>;\r\n\tpublic overSold!: DataItem<IValueAxisDataItem>;\r\n\r\n\tpublic overSoldRange!: ILineSeriesAxisRange;\r\n\tpublic overBoughtRange!: ILineSeriesAxisRange;\r\n\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\t{\r\n\t\t\tkey: \"period\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"field\",\r\n\t\t\tname: this.root.language.translateAny(\"Field\"),\r\n\t\t\ttype: \"dropdown\",\r\n\t\t\toptions: [\"open\", \"close\", \"low\", \"high\", \"hl/2\", \"hlc/3\", \"hlcc/4\", \"ohlc/4\"]\r\n\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Color\"),\r\n\t\t\ttype: \"color\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"overBought\",\r\n\t\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"overSold\",\r\n\t\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\t\ttype: \"number\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"overBoughtColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"overSoldColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}];\r\n\r\n\tprotected _themeTag: string = \"rsi\";\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis.yAxis.setAll({ min: 0, max: 100, strictMinMax: true });\r\n\r\n\t\tthis.middle = this.yAxis.createAxisRange(this.yAxis.makeDataItem({}));\r\n\r\n\t\tconst middleLabel = this.middle.get(\"label\");\r\n\t\tif (middleLabel) {\r\n\t\t\tmiddleLabel.setAll({ themeTags: [\"overbought\"], visible: true, location: 0 });\r\n\t\t\tmiddleLabel._applyThemes();\r\n\t\t}\r\n\r\n\t\t// overbought range\r\n\t\tconst overBought = this.yAxis.makeDataItem({});\r\n\t\tthis.overBought = overBought;\r\n\r\n\r\n\r\n\t\toverBought.set(\"endValue\", 100);\r\n\t\tconst overBoughtRange = this.series.createAxisRange(overBought);\r\n\t\tthis.overBoughtRange = overBoughtRange;\r\n\t\tconst overBoughtFills = overBoughtRange.fills;\r\n\t\tif (overBoughtFills) {\r\n\t\t\toverBoughtFills.template.set(\"themeTags\", [\"overbought\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overBoughtGrid = overBought.get(\"grid\");\r\n\t\tif (overBoughtGrid) {\r\n\t\t\toverBoughtGrid.setAll({ themeTags: [\"overbought\"], visible: true });\r\n\t\t\toverBoughtGrid._applyThemes();\r\n\t\t}\r\n\r\n\t\tconst overBoughtLabel = overBought.get(\"label\");\r\n\t\tif (overBoughtLabel) {\r\n\t\t\toverBoughtLabel.setAll({ themeTags: [\"overbought\"], visible: true, location: 0 });\r\n\t\t\toverBoughtLabel._applyThemes();\r\n\t\t}\r\n\r\n\t\tconst overSold = this.yAxis.makeDataItem({});\r\n\t\tthis.overSold = overSold;\r\n\r\n\t\toverSold.set(\"endValue\", 0);\r\n\t\tconst overSoldRange = this.series.createAxisRange(overSold);\r\n\t\tthis.overSoldRange = overSoldRange;\r\n\t\tconst overSoldFills = overSoldRange.fills;\r\n\t\tif (overSoldFills) {\r\n\t\t\toverSoldFills.template.set(\"themeTags\", [\"oversold\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overSoldGrid = overSold.get(\"grid\");\r\n\t\tif (overSoldGrid) {\r\n\t\t\toverSoldGrid.setAll({ themeTags: [\"oversold\"], visible: true });\r\n\t\t\toverSoldGrid._applyThemes();\r\n\t\t}\r\n\r\n\t\tconst overSoldLabel = overSold.get(\"label\");\r\n\t\tif (overSoldLabel) {\r\n\t\t\toverSoldLabel.setAll({ themeTags: [\"oversold\"], visible: true, location: 0 });\r\n\t\t\toverSoldLabel._applyThemes();\r\n\t\t}\r\n\r\n\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: \"valueY\",\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\r\n\t\tsuper._updateChildren();\r\n\t\tconst numberFormatter = this.getNumberFormatter();\r\n\r\n\t\tconst overSoldValue = this.get(\"overSold\", 20);\r\n\t\tconst overBoughtValue = this.get(\"overBought\", 80);\r\n\r\n\t\tif (this.isDirty(\"overBought\")) {\r\n\t\t\tthis.overBought.set(\"value\", overBoughtValue);\r\n\r\n\t\t\tconst label = this.overBought.get(\"label\");\r\n\t\t\tif (label) {\r\n\t\t\t\tlabel.set(\"text\", numberFormatter.format(overBoughtValue));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overSold\")) {\r\n\t\t\tthis.overSold.set(\"value\", overSoldValue);\r\n\r\n\t\t\tconst label = this.overSold.get(\"label\");\r\n\t\t\tif (label) {\r\n\t\t\t\tlabel.set(\"text\", numberFormatter.format(overSoldValue));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overSoldColor\")) {\r\n\t\t\tconst color = this.get(\"overSoldColor\");\r\n\t\t\tconst label = this.overSold.get(\"label\");\r\n\r\n\t\t\tif (label) {\r\n\t\t\t\tlabel.set(\"fill\", color);\r\n\t\t\t}\r\n\r\n\t\t\tthis.overSold.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overSoldRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overSoldRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overBoughtColor\")) {\r\n\t\t\tconst color = this.get(\"overBoughtColor\");\r\n\t\t\tconst label = this.overBought.get(\"label\");\r\n\r\n\t\t\tif (label) {\r\n\t\t\t\tlabel.set(\"fill\", color);\r\n\t\t\t}\r\n\r\n\t\t\tthis.overBought.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overBoughtRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overBoughtRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\r\n\t\tconst middleValue = overSoldValue + (overBoughtValue - overSoldValue) / 2;\r\n\t\tthis.middle.set(\"value\", middleValue);\r\n\r\n\t\tthis.middle.get(\"grid\")!.setAll({ forceHidden: false, strokeOpacity: .4, strokeDasharray: [2, 2] });\r\n\t\tthis.middle.get(\"label\")!.setAll({ forceHidden: false, text: numberFormatter.format(middleValue) })\r\n\r\n\t\tthis.series.get(\"yAxis\").set(\"baseValue\", overSoldValue + (overBoughtValue - overSoldValue) / 2);\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tconst period = this.get(\"period\", 14);\r\n\t\t\tconst data: Array<any> = [];\r\n\t\t\tlet i = 0;\r\n\t\t\tlet averageGain = 0;\r\n\t\t\tlet averageLoss = 0;\r\n\t\t\tlet prevAverageGain = 0;\r\n\t\t\tlet prevAverageLoss = 0;\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tlet rsi = null;\r\n\t\t\t\ti++;\r\n\r\n\t\t\t\tif (i == period + 1) {\r\n\t\t\t\t\tfor (let j = 1; j <= period; j++) {\r\n\t\t\t\t\t\tlet value = this._getValue(dataItems[j]);\r\n\t\t\t\t\t\tlet prevValue = this._getValue(dataItems[j - 1]);\r\n\t\t\t\t\t\tif (value != undefined && prevValue != undefined) {\r\n\t\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\t\tif (change > 0) {\r\n\t\t\t\t\t\t\t\taverageGain += change / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\taverageLoss += Math.abs(change) / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\t\t\t\t}\r\n\t\t\t\telse if (i > period) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\t\t\t\t\tlet prevValue = this._getValue(dataItems[i - 2]);\r\n\t\t\t\t\tif (value != null && prevValue != null) {\r\n\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\tlet gain = 0;\r\n\t\t\t\t\t\tlet loss = 0;\r\n\r\n\t\t\t\t\t\tif (change > 0) {\r\n\t\t\t\t\t\t\tgain = change;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tloss = -change;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\taverageGain = (prevAverageGain * (period - 1) + gain) / period;\r\n\t\t\t\t\t\taverageLoss = (prevAverageLoss * (period - 1) + loss) / period;\r\n\r\n\t\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdata.push({ valueX: dataItem.get(\"valueX\"), valueY: rsi });\r\n\r\n\t\t\t\tprevAverageGain = averageGain;\r\n\t\t\t\tprevAverageLoss = averageLoss;\r\n\t\t\t})\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
@@ -1,6 +1,7 @@
1
1
  import type { XYSeries } from "../../xy/series/XYSeries";
2
2
  import type { Color } from "../../../core/util/Color";
3
3
  import type { ColorSet } from "../../../core/util/ColorSet";
4
+ import { Template } from "../../../core/util/Template";
4
5
  import { StockControl, IStockControlSettings, IStockControlPrivate, IStockControlEvents } from "./StockControl";
5
6
  import { DrawingToolControl, DrawingTools } from "./DrawingToolControl";
6
7
  import { ColorControl } from "./ColorControl";
@@ -18,6 +19,15 @@ export interface IDrawingControlSettings extends IStockControlSettings {
18
19
  * Default tool.
19
20
  */
20
21
  tool?: DrawingTools;
22
+ /**
23
+ * Default settings for drawing tools.
24
+ *
25
+ * @since 5.5.2
26
+ * @see {@link https://www.amcharts.com/docs/v5/charts/stock/toolbar/drawing-control/#Tool_settings} for more info
27
+ */
28
+ toolSettings?: {
29
+ [index: string]: any;
30
+ };
21
31
  /**
22
32
  * Target series for drawing.
23
33
  */
@@ -119,6 +129,9 @@ export interface IDrawingControlPrivate extends IStockControlPrivate {
119
129
  italicControl?: StockControl;
120
130
  iconControl?: IconControl;
121
131
  snapControl?: StockControl;
132
+ toolTemplates?: {
133
+ [index: string]: Template<any>;
134
+ };
122
135
  }
123
136
  export interface IDrawingControlEvents extends IStockControlEvents {
124
137
  }
@@ -135,6 +148,7 @@ export declare class DrawingControl extends StockControl {
135
148
  _events: IDrawingControlEvents;
136
149
  private _drawingSeries;
137
150
  private _currentEnabledSeries;
151
+ private _initedPanels;
138
152
  protected _afterNew(): void;
139
153
  protected _initElements(): void;
140
154
  protected _isInited(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingControl.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DrawingControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DrawingControl.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DrawingControl.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { color } from "../../../core/util/Color";
2
+ import { Template } from "../../../core/util/Template";
2
3
  import { StockControl } from "./StockControl";
3
4
  import { DrawingToolControl } from "./DrawingToolControl";
4
5
  import { ColorControl } from "./ColorControl";
@@ -23,6 +24,7 @@ import { RectangleSeries } from "../drawing/RectangleSeries";
23
24
  import { RegressionSeries } from "../drawing/RegressionSeries";
24
25
  import { TrendLineSeries } from "../drawing/TrendLineSeries";
25
26
  import { VerticalLineSeries } from "../drawing/VerticalLineSeries";
27
+ import { Measure } from "../drawing/Measure";
26
28
  import { JsonParser } from "../../../plugins/json/Json";
27
29
  import { Serializer } from "../../../plugins/json/Serializer";
28
30
  import * as $array from "../../../core/util/Array";
@@ -49,6 +51,12 @@ export class DrawingControl extends StockControl {
49
51
  writable: true,
50
52
  value: []
51
53
  });
54
+ Object.defineProperty(this, "_initedPanels", {
55
+ enumerable: true,
56
+ configurable: true,
57
+ writable: true,
58
+ value: []
59
+ });
52
60
  }
53
61
  _afterNew() {
54
62
  super._afterNew();
@@ -495,7 +503,7 @@ export class DrawingControl extends StockControl {
495
503
  boldControl: ["Callout", "Label"],
496
504
  italicControl: ["Callout", "Label"],
497
505
  iconControl: ["Arrows &amp; Icons"],
498
- snapControl: ["Callout", "Arrows &amp; Icons"],
506
+ snapControl: ["Callout", "Arrows &amp; Icons", "Line", "Polyline", "Label", "Callout", "Horizontal Line", "Horizontal Ray", "Vertical Line", "Quadrant Line", "Rectangle", "Measure", "Fibonacci"],
499
507
  };
500
508
  $object.each(controls, (control, tools) => {
501
509
  const controlElement = this.getPrivate(control);
@@ -512,108 +520,134 @@ export class DrawingControl extends StockControl {
512
520
  _maybeInitToolSeries(tool) {
513
521
  let seriesList = this._drawingSeries[tool];
514
522
  if (!seriesList) {
515
- // Get target series
516
- const chartSeries = this.get("series", []);
517
- const stockChart = this.get("stockChart");
518
- if (chartSeries.length == 0) {
519
- // No target series set, take first series out of each chart
520
- stockChart.panels.each((panel) => {
521
- if (panel.series.length > 0) {
522
- chartSeries.push(panel.series.getIndex(0));
523
- }
524
- });
525
- }
526
- // Populate the list
527
523
  seriesList = [];
524
+ }
525
+ // Get target series
526
+ const chartSeries = this.get("series", []);
527
+ const stockChart = this.get("stockChart");
528
+ if (chartSeries.length == 0) {
529
+ // No target series set, take first series out of each chart
530
+ stockChart.panels.each((panel) => {
531
+ if ((seriesList.length === 0 || this._initedPanels.indexOf(panel) === -1) && (panel.series.length > 0)) {
532
+ chartSeries.push(panel.series.getIndex(0));
533
+ this._initedPanels.push(panel);
534
+ }
535
+ });
536
+ }
537
+ if (chartSeries.length > 0) {
538
+ const toolSettings = this.get("toolSettings", {});
539
+ // Populate the list
528
540
  $array.each(chartSeries, (chartSeries) => {
529
541
  let series;
530
542
  const xAxis = chartSeries.get("xAxis");
531
543
  const yAxis = chartSeries.get("yAxis");
532
544
  const panel = chartSeries.chart;
545
+ let template;
546
+ if (toolSettings[tool]) {
547
+ template = Template.new(toolSettings[tool]);
548
+ const toolTemplates = this.getPrivate("toolTemplates", {});
549
+ toolTemplates[tool] = template;
550
+ this.setPrivate("toolTemplates", toolTemplates);
551
+ }
533
552
  switch (tool) {
553
+ case "Arrows &amp; Icons":
554
+ const icon = this.get("drawingIcon", this.get("drawingIcons")[0]);
555
+ series = IconSeries.new(this._root, {
556
+ series: chartSeries,
557
+ xAxis: xAxis,
558
+ yAxis: yAxis,
559
+ iconSvgPath: icon.svgPath,
560
+ iconScale: icon.scale,
561
+ iconCenterX: icon.centerX,
562
+ iconCenterY: icon.centerY,
563
+ }, template);
564
+ break;
534
565
  case "Average":
535
566
  series = AverageSeries.new(this._root, {
536
567
  series: chartSeries,
537
568
  xAxis: xAxis,
538
- yAxis: yAxis,
539
- field: "value"
540
- });
569
+ yAxis: yAxis
570
+ }, template);
541
571
  break;
542
572
  case "Callout":
543
573
  series = CalloutSeries.new(this._root, {
574
+ series: chartSeries,
544
575
  xAxis: xAxis,
545
576
  yAxis: yAxis
546
- });
577
+ }, template);
547
578
  break;
548
579
  case "Doodle":
549
580
  series = DoodleSeries.new(this._root, {
581
+ series: chartSeries,
550
582
  xAxis: xAxis,
551
583
  yAxis: yAxis
552
- });
584
+ }, template);
553
585
  series.fills.template.setAll({
554
586
  forceHidden: true
555
587
  });
556
588
  break;
557
589
  case "Ellipse":
558
590
  series = EllipseSeries.new(this._root, {
591
+ series: chartSeries,
559
592
  xAxis: xAxis,
560
593
  yAxis: yAxis
561
- });
594
+ }, template);
562
595
  break;
563
596
  case "Fibonacci":
564
597
  series = FibonacciSeries.new(this._root, {
598
+ series: chartSeries,
565
599
  xAxis: xAxis,
566
600
  yAxis: yAxis
567
- });
601
+ }, template);
568
602
  break;
569
603
  case "Fibonacci Timezone":
570
604
  series = FibonacciTimezoneSeries.new(this._root, {
605
+ series: chartSeries,
571
606
  xAxis: xAxis,
572
607
  yAxis: yAxis
573
- });
608
+ }, template);
574
609
  break;
575
610
  case "Horizontal Line":
576
611
  series = HorizontalLineSeries.new(this._root, {
612
+ series: chartSeries,
577
613
  xAxis: xAxis,
578
614
  yAxis: yAxis
579
- });
615
+ }, template);
580
616
  break;
581
617
  case "Horizontal Ray":
582
618
  series = HorizontalRaySeries.new(this._root, {
583
619
  series: chartSeries,
584
620
  xAxis: xAxis,
585
- yAxis: yAxis,
586
- field: "value"
587
- });
588
- break;
589
- case "Arrows &amp; Icons":
590
- const icon = this.get("drawingIcon", this.get("drawingIcons")[0]);
591
- series = IconSeries.new(this._root, {
592
- xAxis: xAxis,
593
- yAxis: yAxis,
594
- iconSvgPath: icon.svgPath,
595
- iconScale: icon.scale,
596
- iconCenterX: icon.centerX,
597
- iconCenterY: icon.centerY,
598
- });
621
+ yAxis: yAxis
622
+ }, template);
599
623
  break;
600
624
  case "Label":
601
625
  series = LabelSeries.new(this._root, {
626
+ series: chartSeries,
602
627
  xAxis: xAxis,
603
628
  yAxis: yAxis
604
- });
629
+ }, template);
605
630
  break;
606
631
  case "Line":
607
632
  series = SimpleLineSeries.new(this._root, {
633
+ series: chartSeries,
608
634
  xAxis: xAxis,
609
635
  yAxis: yAxis
610
- });
636
+ }, template);
637
+ break;
638
+ case "Measure":
639
+ series = Measure.new(this._root, {
640
+ series: chartSeries,
641
+ xAxis: xAxis,
642
+ yAxis: yAxis
643
+ }, template);
611
644
  break;
612
645
  case "Polyline":
613
646
  series = PolylineSeries.new(this._root, {
647
+ series: chartSeries,
614
648
  xAxis: xAxis,
615
649
  yAxis: yAxis
616
- });
650
+ }, template);
617
651
  series.fills.template.setAll({
618
652
  forceHidden: true
619
653
  });
@@ -622,37 +656,36 @@ export class DrawingControl extends StockControl {
622
656
  series = QuadrantLineSeries.new(this._root, {
623
657
  series: chartSeries,
624
658
  xAxis: xAxis,
625
- yAxis: yAxis,
626
- field: "value"
627
- });
659
+ yAxis: yAxis
660
+ }, template);
628
661
  break;
629
662
  case "Rectangle":
630
663
  series = RectangleSeries.new(this._root, {
664
+ series: chartSeries,
631
665
  xAxis: xAxis,
632
666
  yAxis: yAxis
633
- });
667
+ }, template);
634
668
  break;
635
669
  case "Regression":
636
670
  series = RegressionSeries.new(this._root, {
637
671
  series: chartSeries,
638
672
  xAxis: xAxis,
639
- yAxis: yAxis,
640
- field: "value"
641
- });
673
+ yAxis: yAxis
674
+ }, template);
642
675
  break;
643
676
  case "Trend Line":
644
677
  series = TrendLineSeries.new(this._root, {
645
678
  series: chartSeries,
646
679
  xAxis: xAxis,
647
- yAxis: yAxis,
648
- field: "value"
649
- });
680
+ yAxis: yAxis
681
+ }, template);
650
682
  break;
651
683
  case "Vertical Line":
652
684
  series = VerticalLineSeries.new(this._root, {
685
+ series: chartSeries,
653
686
  xAxis: xAxis,
654
687
  yAxis: yAxis
655
- });
688
+ }, template);
656
689
  break;
657
690
  }
658
691
  if (series) {
@@ -751,10 +784,8 @@ export class DrawingControl extends StockControl {
751
784
  const snap = this.get("snapToData", false);
752
785
  $object.each(this._drawingSeries, (_tool, seriesList) => {
753
786
  $array.each(seriesList, (series) => {
754
- if (series instanceof IconSeries || series instanceof CalloutSeries) {
755
- series.setAll({
756
- snapToData: snap
757
- });
787
+ if (series.getPrivate("allowChangeSnap")) {
788
+ series.set("snapToData", snap);
758
789
  }
759
790
  });
760
791
  });
@@ -834,22 +865,32 @@ export class DrawingControl extends StockControl {
834
865
  $array.each(data, (drawing) => {
835
866
  // Panel
836
867
  let panel = stockChart.panels.getIndex(drawing.__panelIndex || 0);
837
- const tool = drawing.__tool;
838
- this._maybeInitToolSeries(tool);
839
- // Get series
840
- let drawingSeries;
841
- $array.each(this._drawingSeries[tool] || [], (series) => {
842
- if (series.chart === panel) {
843
- drawingSeries = series;
868
+ if (panel) {
869
+ const tool = drawing.__tool;
870
+ this._maybeInitToolSeries(tool);
871
+ // Get series
872
+ let drawingSeries;
873
+ $array.each(this._drawingSeries[tool] || [], (series) => {
874
+ if (series.chart === panel) {
875
+ drawingSeries = series;
876
+ }
877
+ });
878
+ if (!drawing.settings) {
879
+ drawing.settings = {};
844
880
  }
845
- });
846
- if (!drawing.settings) {
847
- drawing.settings = {};
881
+ // Parse
882
+ JsonParser.new(this._root).parse(drawing.__drawing).then((drawingData) => {
883
+ drawingSeries.data.pushAll(drawingData);
884
+ });
885
+ }
886
+ else {
887
+ // Wait until panel becomes available
888
+ stockChart.panels.events.once("push", (ev) => {
889
+ ev.newValue.series.events.once("push", (_ev) => {
890
+ this.unserializeDrawings(drawing);
891
+ });
892
+ });
848
893
  }
849
- // Parse
850
- JsonParser.new(this._root).parse(drawing.__drawing).then((drawingData) => {
851
- drawingSeries.data.pushAll(drawingData);
852
- });
853
894
  });
854
895
  }
855
896
  }