@amcharts/amcharts5 5.14.3 → 5.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) 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/StockChart.js +1 -1
  25. package/.internal/charts/stock/StockChart.js.map +1 -1
  26. package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
  27. package/.internal/charts/stock/StockChartDefaultTheme.js +6 -0
  28. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  29. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  30. package/.internal/charts/stock/drawing/DrawingSeries.js +2 -2
  31. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  32. package/.internal/charts/stock/drawing/IconSeries.js +1 -1
  33. package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
  34. package/.internal/charts/stock/indicators/AccelerationBands.d.ts +0 -3
  35. package/.internal/charts/stock/indicators/AccelerationBands.d.ts.map +1 -1
  36. package/.internal/charts/stock/indicators/AccelerationBands.js +19 -19
  37. package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -1
  38. package/.internal/charts/stock/indicators/AccumulationDistribution.d.ts.map +1 -1
  39. package/.internal/charts/stock/indicators/AccumulationDistribution.js +33 -31
  40. package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
  41. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +1 -1
  42. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
  43. package/.internal/charts/stock/indicators/Aroon.js +2 -2
  44. package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
  45. package/.internal/charts/stock/indicators/AverageTrueRange.js +1 -1
  46. package/.internal/charts/stock/indicators/AverageTrueRange.js.map +1 -1
  47. package/.internal/charts/stock/indicators/AwesomeOscillator.js +1 -1
  48. package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
  49. package/.internal/charts/stock/indicators/BollingerBands.js +2 -2
  50. package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
  51. package/.internal/charts/stock/indicators/BullBearPower.js +1 -1
  52. package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -1
  53. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +1 -1
  54. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
  55. package/.internal/charts/stock/indicators/ChaikinOscillator.js +1 -1
  56. package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
  57. package/.internal/charts/stock/indicators/CommodityChannelIndex.js +1 -1
  58. package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
  59. package/.internal/charts/stock/indicators/DisparityIndex.js +1 -1
  60. package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
  61. package/.internal/charts/stock/indicators/HeikinAshi.js +1 -1
  62. package/.internal/charts/stock/indicators/HeikinAshi.js.map +1 -1
  63. package/.internal/charts/stock/indicators/Indicator.d.ts.map +1 -1
  64. package/.internal/charts/stock/indicators/Indicator.js +139 -91
  65. package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
  66. package/.internal/charts/stock/indicators/MACD.js +3 -3
  67. package/.internal/charts/stock/indicators/MACD.js.map +1 -1
  68. package/.internal/charts/stock/indicators/MACross.js +2 -2
  69. package/.internal/charts/stock/indicators/MACross.js.map +1 -1
  70. package/.internal/charts/stock/indicators/MedianPrice.js +1 -1
  71. package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
  72. package/.internal/charts/stock/indicators/Momentum.js +1 -1
  73. package/.internal/charts/stock/indicators/Momentum.js.map +1 -1
  74. package/.internal/charts/stock/indicators/MovingAverage.js +1 -1
  75. package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
  76. package/.internal/charts/stock/indicators/MovingAverageDeviation.js +1 -1
  77. package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
  78. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +2 -2
  79. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
  80. package/.internal/charts/stock/indicators/OnBalanceVolume.js +1 -1
  81. package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
  82. package/.internal/charts/stock/indicators/PVT.js +1 -1
  83. package/.internal/charts/stock/indicators/PVT.js.map +1 -1
  84. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +3 -3
  85. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  86. package/.internal/charts/stock/indicators/StandardDeviation.js +1 -1
  87. package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
  88. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +2 -2
  89. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
  90. package/.internal/charts/stock/indicators/StochasticOscillator.js +2 -2
  91. package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
  92. package/.internal/charts/stock/indicators/SuperTrend.js +2 -2
  93. package/.internal/charts/stock/indicators/SuperTrend.js.map +1 -1
  94. package/.internal/charts/stock/indicators/Trix.js +2 -2
  95. package/.internal/charts/stock/indicators/Trix.js.map +1 -1
  96. package/.internal/charts/stock/indicators/TypicalPrice.js +1 -1
  97. package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
  98. package/.internal/charts/stock/indicators/VWAP.js +1 -1
  99. package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
  100. package/.internal/charts/stock/indicators/Volume.d.ts.map +1 -1
  101. package/.internal/charts/stock/indicators/Volume.js +1 -1
  102. package/.internal/charts/stock/indicators/Volume.js.map +1 -1
  103. package/.internal/charts/stock/indicators/VolumeProfile.d.ts.map +1 -1
  104. package/.internal/charts/stock/indicators/VolumeProfile.js +1 -0
  105. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  106. package/.internal/charts/stock/indicators/WilliamsR.js +1 -1
  107. package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
  108. package/.internal/charts/stock/indicators/ZigZag.js +1 -1
  109. package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
  110. package/.internal/charts/stock/toolbar/DateRangeSelector.d.ts.map +1 -1
  111. package/.internal/charts/stock/toolbar/DateRangeSelector.js +1 -1
  112. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  113. package/.internal/charts/stock/toolbar/DrawingControl.d.ts +1 -0
  114. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  115. package/.internal/charts/stock/toolbar/DrawingControl.js +8 -1
  116. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  117. package/.internal/charts/venn/Venn.d.ts +1 -0
  118. package/.internal/charts/venn/Venn.d.ts.map +1 -1
  119. package/.internal/charts/venn/Venn.js +7 -0
  120. package/.internal/charts/venn/Venn.js.map +1 -1
  121. package/.internal/charts/xy/XYChart.d.ts +1 -0
  122. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  123. package/.internal/charts/xy/XYChart.js +8 -0
  124. package/.internal/charts/xy/XYChart.js.map +1 -1
  125. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  126. package/.internal/charts/xy/axes/AxisRenderer.js +6 -1
  127. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  128. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  129. package/.internal/charts/xy/axes/DateAxis.js +18 -14
  130. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  131. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  132. package/.internal/charts/xy/axes/GaplessDateAxis.js +6 -4
  133. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  134. package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
  135. package/.internal/charts/xy/series/BaseColumnSeries.js +19 -19
  136. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  137. package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
  138. package/.internal/charts/xy/series/CandlestickSeries.js +0 -1
  139. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  140. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  141. package/.internal/charts/xy/series/LineSeries.js +10 -8
  142. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  143. package/.internal/charts/xy/series/XYSeries.d.ts +2 -0
  144. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  145. package/.internal/charts/xy/series/XYSeries.js +28 -28
  146. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  147. package/.internal/core/Registry.d.ts +7 -1
  148. package/.internal/core/Registry.d.ts.map +1 -1
  149. package/.internal/core/Registry.js +14 -3
  150. package/.internal/core/Registry.js.map +1 -1
  151. package/.internal/core/Root.d.ts.map +1 -1
  152. package/.internal/core/Root.js +43 -4
  153. package/.internal/core/Root.js.map +1 -1
  154. package/.internal/core/render/Component.d.ts +5 -0
  155. package/.internal/core/render/Component.d.ts.map +1 -1
  156. package/.internal/core/render/Component.js +44 -0
  157. package/.internal/core/render/Component.js.map +1 -1
  158. package/.internal/core/render/Container.d.ts +1 -1
  159. package/.internal/core/render/Container.d.ts.map +1 -1
  160. package/.internal/core/render/Container.js +7 -2
  161. package/.internal/core/render/Container.js.map +1 -1
  162. package/.internal/core/render/Series.d.ts +9 -0
  163. package/.internal/core/render/Series.d.ts.map +1 -1
  164. package/.internal/core/render/Series.js +89 -74
  165. package/.internal/core/render/Series.js.map +1 -1
  166. package/.internal/plugins/exporting/ExportingMenu.d.ts +6 -0
  167. package/.internal/plugins/exporting/ExportingMenu.d.ts.map +1 -1
  168. package/.internal/plugins/exporting/ExportingMenu.js +2 -2
  169. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  170. package/.internal/plugins/json/ChartSerializer.d.ts +82 -0
  171. package/.internal/plugins/json/ChartSerializer.d.ts.map +1 -0
  172. package/.internal/plugins/json/ChartSerializer.js +782 -0
  173. package/.internal/plugins/json/ChartSerializer.js.map +1 -0
  174. package/.internal/plugins/json/Json.d.ts.map +1 -1
  175. package/.internal/plugins/json/Json.js +158 -54
  176. package/.internal/plugins/json/Json.js.map +1 -1
  177. package/.internal/plugins/json/Serializer.d.ts +40 -6
  178. package/.internal/plugins/json/Serializer.d.ts.map +1 -1
  179. package/.internal/plugins/json/Serializer.js +97 -24
  180. package/.internal/plugins/json/Serializer.js.map +1 -1
  181. package/CHANGELOG.md +37 -0
  182. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  183. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  184. package/examples/javascript/flow-chord/package.json +1 -1
  185. package/examples/javascript/flow-chord-directed/package.json +1 -1
  186. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  187. package/examples/javascript/flow-sankey/package.json +1 -1
  188. package/examples/javascript/gantt/package.json +1 -1
  189. package/examples/javascript/gantt-multilevel/package.json +1 -1
  190. package/examples/javascript/gantt-simple/package.json +1 -1
  191. package/examples/javascript/gauge/package.json +1 -1
  192. package/examples/javascript/gauge-bands/package.json +1 -1
  193. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  194. package/examples/javascript/hierarchy-pack/package.json +1 -1
  195. package/examples/javascript/hierarchy-partition/package.json +1 -1
  196. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  197. package/examples/javascript/hierarchy-tree/package.json +1 -1
  198. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  199. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  200. package/examples/javascript/jest/package.json +1 -1
  201. package/examples/javascript/json-pie/package.json +1 -1
  202. package/examples/javascript/json-xy/package.json +1 -1
  203. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  204. package/examples/javascript/map-clustered-points/package.json +1 -1
  205. package/examples/javascript/map-day-and-night/package.json +1 -1
  206. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  207. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  208. package/examples/javascript/map-with-bubbles/package.json +1 -1
  209. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  210. package/examples/javascript/misc-40-charts/package.json +1 -1
  211. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  212. package/examples/javascript/pie-chart/package.json +1 -1
  213. package/examples/javascript/pie-donut-chart/package.json +1 -1
  214. package/examples/javascript/pie-variable-radius/package.json +1 -1
  215. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  216. package/examples/javascript/radar-heat-map/package.json +1 -1
  217. package/examples/javascript/radar-line/package.json +1 -1
  218. package/examples/javascript/radar-time-line/package.json +1 -1
  219. package/examples/javascript/sliced-funnel/package.json +1 -1
  220. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  221. package/examples/javascript/sliced-pyramid/package.json +1 -1
  222. package/examples/javascript/stock-chart/package.json +1 -1
  223. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  224. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  225. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  226. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  227. package/examples/javascript/stock-chart-live/package.json +1 -1
  228. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  229. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  230. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  231. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  232. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  233. package/examples/javascript/venn-diagram/package.json +1 -1
  234. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  235. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  236. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  237. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  238. package/examples/javascript/xy-bubble/package.json +1 -1
  239. package/examples/javascript/xy-candlestick/package.json +1 -1
  240. package/examples/javascript/xy-clustered-column/package.json +1 -1
  241. package/examples/javascript/xy-column/package.json +1 -1
  242. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  243. package/examples/javascript/xy-data-grouping/package.json +1 -1
  244. package/examples/javascript/xy-draggable-range/package.json +1 -1
  245. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  246. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  247. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  248. package/examples/javascript/xy-line/package.json +1 -1
  249. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  250. package/examples/javascript/xy-live-data/package.json +1 -1
  251. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  252. package/examples/javascript/xy-ohlc/package.json +1 -1
  253. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  254. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  255. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  256. package/examples/javascript/xy-stacked-column/package.json +1 -1
  257. package/examples/javascript/xy-stacked-step/package.json +1 -1
  258. package/examples/javascript/xy-stock/package.json +1 -1
  259. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  260. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  261. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  262. package/examples/typescript/flow-chord/package.json +1 -1
  263. package/examples/typescript/flow-chord-directed/package.json +1 -1
  264. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  265. package/examples/typescript/flow-sankey/package.json +1 -1
  266. package/examples/typescript/gantt/package.json +1 -1
  267. package/examples/typescript/gantt-multilevel/package.json +1 -1
  268. package/examples/typescript/gantt-simple/package.json +1 -1
  269. package/examples/typescript/gauge/package.json +1 -1
  270. package/examples/typescript/gauge-bands/package.json +1 -1
  271. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  272. package/examples/typescript/hierarchy-pack/package.json +1 -1
  273. package/examples/typescript/hierarchy-partition/package.json +1 -1
  274. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  275. package/examples/typescript/hierarchy-tree/package.json +1 -1
  276. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  277. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  278. package/examples/typescript/jest/package.json +1 -1
  279. package/examples/typescript/json-pie/package.json +1 -1
  280. package/examples/typescript/json-xy/package.json +1 -1
  281. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  282. package/examples/typescript/map-clustered-points/package.json +1 -1
  283. package/examples/typescript/map-day-and-night/package.json +1 -1
  284. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  285. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  286. package/examples/typescript/map-with-bubbles/package.json +1 -1
  287. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  288. package/examples/typescript/misc-40-charts/package.json +1 -1
  289. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  290. package/examples/typescript/pie-chart/package.json +1 -1
  291. package/examples/typescript/pie-donut-chart/package.json +1 -1
  292. package/examples/typescript/pie-variable-radius/package.json +1 -1
  293. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  294. package/examples/typescript/radar-heat-map/package.json +1 -1
  295. package/examples/typescript/radar-line/package.json +1 -1
  296. package/examples/typescript/radar-time-line/package.json +1 -1
  297. package/examples/typescript/sliced-funnel/package.json +1 -1
  298. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  299. package/examples/typescript/sliced-pyramid/package.json +1 -1
  300. package/examples/typescript/stock-chart/package.json +1 -1
  301. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  302. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  303. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  304. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  305. package/examples/typescript/stock-chart-live/package.json +1 -1
  306. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  307. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  308. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  309. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  310. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  311. package/examples/typescript/venn-diagram/package.json +1 -1
  312. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  313. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  314. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  315. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  316. package/examples/typescript/xy-bubble/package.json +1 -1
  317. package/examples/typescript/xy-candlestick/package.json +1 -1
  318. package/examples/typescript/xy-clustered-column/package.json +1 -1
  319. package/examples/typescript/xy-column/package.json +1 -1
  320. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  321. package/examples/typescript/xy-data-grouping/package.json +1 -1
  322. package/examples/typescript/xy-draggable-range/package.json +1 -1
  323. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  324. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  325. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  326. package/examples/typescript/xy-line/package.json +1 -1
  327. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  328. package/examples/typescript/xy-live-data/package.json +1 -1
  329. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  330. package/examples/typescript/xy-ohlc/package.json +1 -1
  331. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  332. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  333. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  334. package/examples/typescript/xy-stacked-column/package.json +1 -1
  335. package/examples/typescript/xy-stacked-step/package.json +1 -1
  336. package/examples/typescript/xy-stock/package.json +1 -1
  337. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  338. package/package.json +4 -4
  339. package/plugins/json.d.ts +1 -0
  340. package/plugins/json.d.ts.map +1 -1
  341. package/plugins/json.js +1 -0
  342. package/plugins/json.js.map +1 -1
@@ -89,28 +89,8 @@ export class Series extends Component {
89
89
  this.valueFields.push("value", "customValue");
90
90
  super._afterNew();
91
91
  this.setPrivate("customData", {});
92
- this._disposers.push(this.bullets.events.onAll((change) => {
93
- if (change.type === "clear") {
94
- this._handleBullets(this.dataItems);
95
- }
96
- else if (change.type === "push") {
97
- this._handleBullets(this.dataItems);
98
- }
99
- else if (change.type === "setIndex") {
100
- this._handleBullets(this.dataItems);
101
- }
102
- else if (change.type === "insertIndex") {
103
- this._handleBullets(this.dataItems);
104
- }
105
- else if (change.type === "removeIndex") {
106
- this._handleBullets(this.dataItems);
107
- }
108
- else if (change.type === "moveIndex") {
109
- this._handleBullets(this.dataItems);
110
- }
111
- else {
112
- throw new Error("Unknown IListEvent type");
113
- }
92
+ this._disposers.push(this.bullets.events.onAll(() => {
93
+ this._handleBullets(this.dataItems);
114
94
  }));
115
95
  }
116
96
  _dispose() {
@@ -196,6 +176,8 @@ export class Series extends Component {
196
176
  }
197
177
  _prepareChildren() {
198
178
  super._prepareChildren();
179
+ const dataItems = this.dataItems;
180
+ const count = dataItems.length;
199
181
  let startIndex = this.startIndex();
200
182
  let endIndex = this.endIndex();
201
183
  if (this.isDirty("name")) {
@@ -217,7 +199,7 @@ export class Series extends Component {
217
199
  if (calculateAggregates) {
218
200
  if (this._valuesDirty && !this._dataProcessed) {
219
201
  if (!this._aggregatesCalculated) {
220
- this._calculateAggregates(0, this.dataItems.length);
202
+ this._calculateAggregates(0, count);
221
203
  this._aggregatesCalculated = true;
222
204
  if (startIndex != 0) {
223
205
  this._psi = undefined;
@@ -225,7 +207,7 @@ export class Series extends Component {
225
207
  }
226
208
  }
227
209
  if ((this._psi != startIndex || this._pei != endIndex || this.isPrivateDirty("adjustedStartIndex")) && !this._selectionAggregatesCalculated) {
228
- if (startIndex === 0 && endIndex === this.dataItems.length && this._aggregatesCalculated) {
210
+ if (startIndex === 0 && endIndex === count && this._aggregatesCalculated) {
229
211
  // void
230
212
  }
231
213
  else {
@@ -264,11 +246,11 @@ export class Series extends Component {
264
246
  if (this.bullets.length > 0) {
265
247
  let startIndex = this.startIndex();
266
248
  let endIndex = this.endIndex();
267
- if (endIndex < this.dataItems.length) {
249
+ if (endIndex < count) {
268
250
  endIndex++;
269
251
  }
270
252
  for (let i = startIndex; i < endIndex; i++) {
271
- let dataItem = this.dataItems[i];
253
+ let dataItem = dataItems[i];
272
254
  if (!dataItem.bullets) {
273
255
  this._makeBullets(dataItem);
274
256
  }
@@ -288,6 +270,12 @@ export class Series extends Component {
288
270
  if (!fields) {
289
271
  throw new Error("No value fields are set for the series.");
290
272
  }
273
+ const excludeFromAggregate = this.get("excludeFromAggregate");
274
+ if (excludeFromAggregate) {
275
+ fields = fields.filter((field) => {
276
+ return excludeFromAggregate.indexOf(field) == -1;
277
+ });
278
+ }
291
279
  const sum = {};
292
280
  const absSum = {};
293
281
  const count = {};
@@ -297,13 +285,16 @@ export class Series extends Component {
297
285
  const close = {};
298
286
  const average = {};
299
287
  const previous = {};
300
- $array.each(fields, (key) => {
288
+ for (let f = 0, flen = fields.length; f < flen; f++) {
289
+ let key = fields[f];
301
290
  sum[key] = 0;
302
291
  absSum[key] = 0;
303
292
  count[key] = 0;
304
- });
305
- const len = this.dataItems.length;
306
- $array.each(fields, (key) => {
293
+ }
294
+ const dataItems = this.dataItems;
295
+ const len = dataItems.length;
296
+ for (let f = 0, flen = fields.length; f < flen; f++) {
297
+ let key = fields[f];
307
298
  let change = key + "Change";
308
299
  let changePercent = key + "ChangePercent";
309
300
  let changePrevious = key + "ChangePrevious";
@@ -311,40 +302,38 @@ export class Series extends Component {
311
302
  let changeSelection = key + "ChangeSelection";
312
303
  let changeSelectionPercent = key + "ChangeSelectionPercent";
313
304
  let openKey = "valueY";
314
- if (key == "valueX" || key == "openValueX" || key == "lowValueX" || key == "highValueX") {
305
+ if (key === "valueX" || key.endsWith("ValueX")) {
315
306
  openKey = "valueX";
316
307
  }
317
308
  const baseValueSeries = this.getPrivate("baseValueSeries");
318
309
  const adjustedStartIndex = this.getPrivate("adjustedStartIndex", startIndex);
319
- // Function to calculate changes for a single data item
320
- const calculateChangesForItem = (dataItem, key) => {
321
- if (dataItem) {
322
- let value = dataItem.get(key);
323
- if (value != null) {
324
- dataItem.setRaw((changePrevious), value - previous[openKey]);
325
- dataItem.setRaw((changePreviousPercent), (value - previous[openKey]) / previous[openKey] * 100);
326
- dataItem.setRaw((changeSelection), value - open[openKey]);
327
- dataItem.setRaw((changeSelectionPercent), (value - open[openKey]) / open[openKey] * 100);
328
- previous[key] = value;
329
- }
310
+ const calculateChangesForItem = (dataItem, value, key) => {
311
+ if (startIndex === 0) {
312
+ const openValue = open[openKey];
313
+ const changeValue = value - openValue;
314
+ dataItem.setRaw((change), changeValue);
315
+ dataItem.setRaw((changePercent), changeValue / openValue * 100);
330
316
  }
317
+ const changePreviousValue = value - previous[openKey];
318
+ const changeSelectionValue = value - open[openKey];
319
+ dataItem.setRaw((changePrevious), changePreviousValue);
320
+ dataItem.setRaw((changePreviousPercent), changePreviousValue / previous[openKey] * 100);
321
+ dataItem.setRaw((changeSelection), changeSelectionValue);
322
+ dataItem.setRaw((changeSelectionPercent), changeSelectionValue / open[openKey] * 100);
323
+ previous[key] = value;
331
324
  };
325
+ // find first non-null value to initialize open, low, high instead of checking in loop
332
326
  for (let i = adjustedStartIndex; i < endIndex; i++) {
333
- const dataItem = this.dataItems[i];
327
+ const dataItem = dataItems[i];
334
328
  if (dataItem) {
335
329
  let value = dataItem.get(key);
336
330
  if (value != null) {
337
- count[key]++;
338
- sum[key] += value;
339
- absSum[key] += Math.abs(value);
340
- average[key] = sum[key] / count[key];
341
- if (low[key] > value || low[key] == null) {
331
+ if (low[key] == null) {
342
332
  low[key] = value;
343
333
  }
344
- if (high[key] < value || high[key] == null) {
334
+ if (high[key] == null) {
345
335
  high[key] = value;
346
336
  }
347
- close[key] = value;
348
337
  if (open[key] == null) {
349
338
  open[key] = value;
350
339
  previous[key] = value;
@@ -352,44 +341,68 @@ export class Series extends Component {
352
341
  open[openKey] = baseValueSeries._getBase(openKey);
353
342
  }
354
343
  }
355
- if (startIndex === 0) {
356
- dataItem.setRaw((change), value - open[openKey]);
357
- dataItem.setRaw((changePercent), (value - open[openKey]) / open[openKey] * 100);
344
+ // stop cycle
345
+ break;
346
+ }
347
+ }
348
+ }
349
+ for (let i = adjustedStartIndex; i < endIndex; i++) {
350
+ const dataItem = dataItems[i];
351
+ if (dataItem) {
352
+ let value = dataItem._settings[key];
353
+ if (value != null) {
354
+ count[key]++;
355
+ sum[key] += value;
356
+ absSum[key] += Math.abs(value);
357
+ if (low[key] > value) {
358
+ low[key] = value;
359
+ }
360
+ if (high[key] < value) {
361
+ high[key] = value;
358
362
  }
359
- calculateChangesForItem(dataItem, key);
363
+ close[key] = value;
364
+ calculateChangesForItem(dataItem, value, key);
360
365
  }
361
366
  }
362
367
  }
363
- // Calculate for endIndex item
368
+ average[key] = sum[key] / count[key];
364
369
  if (endIndex < len) {
365
- calculateChangesForItem(this.dataItems[endIndex], key);
370
+ const dataItem = dataItems[endIndex];
371
+ if (dataItem) {
372
+ let value = dataItem.get(key);
373
+ if (value != null) {
374
+ calculateChangesForItem(dataItem, value, key);
375
+ }
376
+ }
366
377
  }
367
- // Calculate for endIndex+1 item if available
368
378
  if (endIndex + 1 < len) {
369
- calculateChangesForItem(this.dataItems[endIndex + 1], key);
379
+ const dataItem = dataItems[endIndex + 1];
380
+ if (dataItem) {
381
+ let value = dataItem.get(key);
382
+ if (value != null) {
383
+ calculateChangesForItem(dataItem, value, key);
384
+ }
385
+ }
370
386
  }
371
387
  if (startIndex > 0) {
372
388
  startIndex--;
373
389
  }
374
390
  delete previous[key];
375
391
  for (let i = startIndex; i < adjustedStartIndex; i++) {
376
- const dataItem = this.dataItems[i];
392
+ const dataItem = dataItems[i];
377
393
  if (dataItem) {
378
394
  let value = dataItem.get(key);
379
395
  if (previous[key] == null) {
380
396
  previous[key] = value;
381
397
  }
382
398
  if (value != null) {
383
- dataItem.setRaw((changePrevious), value - previous[openKey]);
384
- dataItem.setRaw((changePreviousPercent), (value - previous[openKey]) / previous[openKey] * 100);
385
- dataItem.setRaw((changeSelection), value - open[openKey]);
386
- dataItem.setRaw((changeSelectionPercent), (value - open[openKey]) / open[openKey] * 100);
387
- previous[key] = value;
399
+ calculateChangesForItem(dataItem, value, key);
388
400
  }
389
401
  }
390
402
  }
391
- });
392
- $array.each(fields, (key) => {
403
+ }
404
+ for (let f = 0, flen = fields.length; f < flen; f++) {
405
+ let key = fields[f];
393
406
  this.setPrivate((key + "AverageSelection"), average[key]);
394
407
  this.setPrivate((key + "CountSelection"), count[key]);
395
408
  this.setPrivate((key + "SumSelection"), sum[key]);
@@ -398,9 +411,10 @@ export class Series extends Component {
398
411
  this.setPrivate((key + "HighSelection"), high[key]);
399
412
  this.setPrivate((key + "OpenSelection"), open[key]);
400
413
  this.setPrivate((key + "CloseSelection"), close[key]);
401
- });
414
+ }
402
415
  if (startIndex === 0 && endIndex === len) {
403
- $array.each(fields, (key) => {
416
+ for (let f = 0, flen = fields.length; f < flen; f++) {
417
+ let key = fields[f];
404
418
  this.setPrivate((key + "Average"), average[key]);
405
419
  this.setPrivate((key + "Count"), count[key]);
406
420
  this.setPrivate((key + "Sum"), sum[key]);
@@ -409,7 +423,7 @@ export class Series extends Component {
409
423
  this.setPrivate((key + "High"), high[key]);
410
424
  this.setPrivate((key + "Open"), open[key]);
411
425
  this.setPrivate((key + "Close"), close[key]);
412
- });
426
+ }
413
427
  }
414
428
  }
415
429
  _updateChildren() {
@@ -479,8 +493,9 @@ export class Series extends Component {
479
493
  });
480
494
  });
481
495
  }
482
- if (this.get("visible")) {
483
- let count = this.dataItems.length;
496
+ if (this.get("visible") && this.bullets.length > 0) {
497
+ const dataItems = this.dataItems;
498
+ let count = dataItems.length;
484
499
  let startIndex = this.startIndex();
485
500
  let endIndex = this.endIndex();
486
501
  if (endIndex < count) {
@@ -490,13 +505,13 @@ export class Series extends Component {
490
505
  startIndex--;
491
506
  }
492
507
  for (let i = 0; i < startIndex; i++) {
493
- this._hideBullets(this.dataItems[i]);
508
+ this._hideBullets(dataItems[i]);
494
509
  }
495
510
  for (let i = startIndex; i < endIndex; i++) {
496
- this._positionBullets(this.dataItems[i]);
511
+ this._positionBullets(dataItems[i]);
497
512
  }
498
513
  for (let i = endIndex; i < count; i++) {
499
- this._hideBullets(this.dataItems[i]);
514
+ this._hideBullets(dataItems[i]);
500
515
  }
501
516
  }
502
517
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Series.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Series.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Root } from \"../../core/Root\";\nimport type { Chart } from \"./Chart\";\nimport type { Bullet } from \"./Bullet\";\nimport type { Graphics } from \"../../core/render/Graphics\";\nimport type { ILegendDataItem } from \"./Legend\";\nimport type { Template } from \"../../core/util/Template\";\nimport type { Sprite } from \"../../core/render/Sprite\";\nimport type { Pattern } from \"./patterns/Pattern\";\n\nimport { Component, IComponentSettings, IComponentPrivate, DataItem, IComponentEvents, IComponentDataItem } from \"../../core/render/Component\";\nimport { List } from \"../../core/util/List\";\nimport { Color } from \"../../core/util/Color\";\nimport { percentInterpolate } from \"../../core/util/Animation\";\nimport { Percent } from \"../../core/util/Percent\";\nimport { p100 } from \"../../core/util/Percent\";\nimport { Container } from \"../../core/render/Container\";\nimport { Label } from \"../../core/render/Label\";\n//import { Animations } from \"../../core/util/Animation\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\nimport * as $time from \"../../core/util/Time\";\n\n/**\n * Defines interface for a heat rule.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/heat-rules/} for more info\n */\nexport interface IHeatRule {\n\n\t/**\n\t * Target template.\n\t */\n\ttarget: Template<any>;\n\n\t/**\n\t * The setting value to use for items if the lowest value.\n\t */\n\tmin?: any;\n\n\t/**\n\t * The setting value to use for items if the highest value.\n\t */\n\tmax?: any;\n\n\t/**\n\t * The setting value to use for items which do not have value at all.\n\t */\n\tneutral?: any;\n\n\t/**\n\t * Which data field to use when determining item's value.\n\t */\n\tdataField: string;\n\n\t/**\n\t * A setting key to set.\n\t */\n\tkey?: string;\n\n\t/**\n\t * Custom lowest value.\n\t */\n\tminValue?: number;\n\n\t/**\n\t * Custom highest value.\n\t */\n\tmaxValue?: number;\n\n\t/**\n\t * Use logarithmic scale when calculating intermediate setting values.\n\t *\n\t * @default false\n\t */\n\tlogarithmic?: boolean;\n\n\t/**\n\t * A custom function that will set target element's settings.\n\t *\n\t * Can be used to do custom manipulation on complex objects requiring more\n\t * than modifying a setting.\n\t */\n\tcustomFunction?: (target: Sprite, minValue: number, maxValue: number, value?: any) => void;\n\n}\n\n\nexport interface ISeriesDataItem extends IComponentDataItem {\n\tid?: string;\n\tvalue?: number;\n\tvalueWorking?:number;\n\tvalueChange?: number;\n\tvalueChangePercent?: number;\n\tvalueChangeSelection?: number;\n\tvalueChangeSelectionPercent?: number;\n\tvalueChangePrevious?: number;\n\tvalueChangePreviousPercent?: number;\n\tvalueWorkingOpen?: number;\n\tvalueWorkingClose?: number;\n\n\tcustomValue?: number;\n\tcustomValueWorking?:number;\n\tcustomValueChange?: number;\n\tcustomValueChangePercent?: number;\n\tcustomValueChangeSelection?: number;\n\tcustomValueChangeSelectionPercent?: number;\n\tcustomValueChangePrevious?: number;\n\tcustomValueChangePreviousPercent?: number;\n}\n\nexport interface ISeriesSettings extends IComponentSettings {\n\n\t/**\n\t * Name of the series.\n\t */\n\tname?: string;\n\n\t/**\n\t * A key to look up in data for an id of the data item.\n\t */\n\tidField?: string;\n\n\t/**\n\t * A key to look up in data for a numeric value of the data item.\n\t *\n\t * Some series use it to display its elements. It can also be used in heat\n\t * rules.\n\t */\n\tvalueField?: string;\n\n\t/**\n\t * A key to look up in data for a numeric customValue of the data item.\n\t *\n\t * Usually used for storing additional numeric information and heat rules.\n\t */\n\tcustomValueField?: string;\t\n\n\t/**\n\t * A text template to be used for label in legend.\n\t */\n\tlegendLabelText?: string;\n\n\t/**\n\t * A text template to be used for value label in legend.\n\t */\n\tlegendValueText?: string;\n\n\t/**\n\t * If set to `true` the series initial animation will be played item by item\n\t * rather than all at once.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animation_of_series} for more info\n\t */\n\tsequencedInterpolation?:boolean;\n\n\t/**\n\t * A delay in milliseconds to wait before starting animation of next data\n\t * item.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animation_of_series} for more info\n\t */\n\tsequencedDelay?:number;\n\n\t/**\n\t * A list of heat rules to apply on series elements.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/heat-rules/} for more info\n\t */\n\theatRules?:IHeatRule[];\n\n\t/**\n\t * If set to `true`, series will calculate aggregate values, e.g. change\n\t * percent, high, low, etc.\n\t *\n\t * Do not enable unless you are using such aggregate values in tooltips,\n\t * display data fields, heat rules, or similar.\n\t */\n\tcalculateAggregates?: boolean;\n\n\t/**\n\t * Series stroke color.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/series/#Series_colors} for more info\n\t */\n\tstroke?: Color;\n\n\t/**\n\t * Series fill color.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/series/#Series_colors} for more info\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Series fill pattern.\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\t/**\n\t * A data item representing series in a [[Legend]].\n\t *\n\t * @readonly\n\t */\n\tlegendDataItem?: DataItem<ILegendDataItem>;\n\n}\n\nexport interface ISeriesPrivate extends IComponentPrivate {\n\n\t/**\n\t * @ignore\n\t */\n\tchart?: Chart;\n\tstartIndex?: number;\n\tendIndex?: number;\n\tadjustedStartIndex?:number;\n\n\tvalueAverage?: number;\n\tvalueCount?: number;\n\tvalueSum?: number;\n\tvalueAbsoluteSum?: number;\n\tvalueLow?: number;\n\tvalueHigh?: number;\n\tvalueOpen?: number;\n\tvalueClose?: number;\n\n\tcustomValueAverage?: number;\n\tcustomValueCount?: number;\n\tcustomValueSum?: number;\n\tcustomValueAbsoluteSum?: number;\n\tcustomValueLow?: number;\n\tcustomValueHigh?: number;\n\tcustomValueOpen?: number;\n\tcustomValueClose?: number;\t\n\n\tbaseValueSeries?: Series;\n}\n\nexport interface ISeriesEvents extends IComponentEvents {\n\n}\n\n/**\n * A base class for all series.\n */\nexport abstract class Series extends Component {\n\tpublic static className: string = \"Series\";\n\tpublic static classNames: Array<string> = Component.classNames.concat([Series.className]);\n\n\tdeclare public _settings: ISeriesSettings;\n\tdeclare public _privateSettings: ISeriesPrivate;\n\tdeclare public _dataItemSettings: ISeriesDataItem;\n\tdeclare public _events: ISeriesEvents;\n\n\tprotected _aggregatesCalculated: boolean = false;\n\tprotected _selectionAggregatesCalculated: boolean = false;\n\tprotected _dataProcessed: boolean = false;\n\n\tprotected _psi: number | undefined;\n\tprotected _pei: number | undefined;\n\n\tprotected _baseSeriesDirty: boolean = false;\n\n\t/**\n\t * A chart series belongs to.\n\t */\n\tpublic chart:Chart | undefined;\n\n\t/**\n\t * List of bullets to use for the series.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/bullets/} for more info\n\t */\n\tpublic bullets: List<<D extends DataItem<this[\"_dataItemSettings\"]>>(root: Root, series:Series, dataItem: D) => Bullet | undefined> = new List();\n\n\t/**\n\t * A [[Container]] series' bullets are stored in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly bulletsContainer: Container = Container.new(this._root, {width:p100, height:p100, position:\"absolute\"});\n\n\tprotected _afterNew() {\n\t\tthis.valueFields.push(\"value\", \"customValue\");\n\n\t\tsuper._afterNew();\n\n\t\tthis.setPrivate(\"customData\", {});\n\n\t\tthis._disposers.push(this.bullets.events.onAll((change) => {\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\tthis._handleBullets(this.dataItems);\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tthis._handleBullets(this.dataItems);\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tthis._handleBullets(this.dataItems);\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tthis._handleBullets(this.dataItems);\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tthis._handleBullets(this.dataItems);\n\t\t\t} else if (change.type === \"moveIndex\") {\n\t\t\t\tthis._handleBullets(this.dataItems);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IListEvent type\");\n\t\t\t}\n\t\t}));\n\t}\n\n\tprotected _dispose(){\n\t\tthis.bulletsContainer.dispose(); // can be in a different parent\n\t\tsuper._dispose();\n\t}\n\n\tpublic startIndex():number {\n\t\tlet len = this.dataItems.length;\n\t\treturn Math.min(this.getPrivate(\"startIndex\", 0), len);\n\t}\n\n\tpublic endIndex():number {\n\t\tlet len = this.dataItems.length;\n\t\treturn Math.max(0, Math.min(this.getPrivate(\"endIndex\", len), len));\n\t}\n\n\tprotected _handleBullets(dataItems:Array<DataItem<this[\"_dataItemSettings\"]>>){\n\t\t$array.each(dataItems, (dataItem)=>{\n\t\t\tconst bullets = dataItem.bullets;\n\t\t\tif(bullets){\n\t\t\t\t$array.each(bullets, (bullet)=>{\n\t\t\t\t\tbullet.dispose();\n\t\t\t\t})\n\n\t\t\t\tdataItem.bullets = undefined;\n\t\t\t}\n\t\t})\n\n\t\tthis.markDirtyValues();\n\t}\n\n\n\tprotected _makeBullets(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tif(this._shouldMakeBullet(dataItem)){\n\t\t\tdataItem.bullets = [];\n\n\t\t\tthis.bullets.each((bulletFunction) => {\n\t\t\t\tthis._makeBullet(dataItem, bulletFunction);\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _shouldMakeBullet(_dataItem: DataItem<this[\"_dataItemSettings\"]>):boolean{\n\t\treturn true;\n\t}\n\n\tprotected _makeBullet(dataItem: DataItem<this[\"_dataItemSettings\"]>, bulletFunction:(root: Root, series:Series, dataItem: DataItem<this[\"_dataItemSettings\"]>) => Bullet | undefined, index?:number):Bullet | undefined{\n\t\tconst bullet = bulletFunction(this._root, this, dataItem);\n\t\tif(bullet){\n\t\t\tbullet._index = index;\n\t\t\tthis._makeBulletReal(dataItem, bullet);\n\t\t}\n\t\treturn bullet;\n\t}\n\n\tprotected _makeBulletReal(dataItem: DataItem<this[\"_dataItemSettings\"]>, bullet:Bullet){\n\t\tlet sprite = bullet.get(\"sprite\");\n\n\t\tif (sprite) {\n\t\t\tsprite._setDataItem(dataItem);\n\t\t\tsprite.setRaw(\"position\", \"absolute\");\n\t\t\tthis.bulletsContainer.children.push(sprite);\n\t\t}\n\t\tbullet.series = this;\n\t\tdataItem.bullets!.push(bullet);\n\t}\n\n\t/**\n\t * Adds bullet directly to a data item.\n\t *\n\t * Please note: method accepts [[Bullet]] instance as a paramter, not a\n\t * reference to a function.\n\t *\n\t * You should add Bullet instance, not a method like you do it on series.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/bullets/#Adding_directly_to_data_item} for more info\n\t * @since 5.6.0\n\t *\n\t * @param dataItem Target data item\n\t * @param bullet Bullet instance\n\t */\n\tpublic addBullet(dataItem:DataItem<this[\"_dataItemSettings\"]>, bullet:Bullet){\n\t\tif(!dataItem.bullets){\n\t\t\tdataItem.bullets = [];\n\t\t}\n\t\tif(bullet){\n\t\t\tthis._makeBulletReal(dataItem, bullet);\n\t\t}\n\t}\t\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._aggregatesCalculated = false;\n\t\tthis._baseSeriesDirty = false;\n\t\tthis._selectionAggregatesCalculated = false;\n\t}\n\n\tpublic _prepareChildren(){\n\t\tsuper._prepareChildren();\n\n\t\tlet startIndex = this.startIndex();\n\t\tlet endIndex = this.endIndex();\n\n\t\tif(this.isDirty(\"name\")){\n\t\t\tthis.updateLegendValue();\n\t\t}\n\n\t\tif(this.isDirty(\"heatRules\")){\n\t\t\tthis._valuesDirty = true;\n\t\t}\n\n\t\tif(this.isPrivateDirty(\"baseValueSeries\")){\n\t\t\tconst baseValueSeries = this.getPrivate(\"baseValueSeries\");\n\t\t\tif(baseValueSeries){\n\t\t\t\tthis._disposers.push(baseValueSeries.onPrivate(\"startIndex\", ()=>{\n\t\t\t\t\tthis._baseSeriesDirty = true;\n\t\t\t\t\tthis.markDirtyValues();\n\t\t\t\t}))\n\t\t\t}\n\t\t}\n\n\t\tconst calculateAggregates = this.get(\"calculateAggregates\");\n\t\tif(calculateAggregates){\n\t\t\tif (this._valuesDirty && !this._dataProcessed) {\n\t\t\t\tif (!this._aggregatesCalculated) {\n\t\t\t\t\tthis._calculateAggregates(0, this.dataItems.length);\n\t\t\t\t\tthis._aggregatesCalculated = true;\n\t\t\t\t\tif(startIndex != 0){\n\t\t\t\t\t\tthis._psi = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ((this._psi != startIndex || this._pei != endIndex || this.isPrivateDirty(\"adjustedStartIndex\")) && !this._selectionAggregatesCalculated) {\n\t\t\t\tif (startIndex === 0 && endIndex === this.dataItems.length && this._aggregatesCalculated) {\n\t\t\t\t\t// void\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._calculateAggregates(startIndex, endIndex);\n\t\t\t\t}\n\n\t\t\t\tthis._selectionAggregatesCalculated = true;\n\t\t\t}\n\t\t}\n\n\t\tif(this.isDirty(\"tooltip\")){\n\t\t\tlet tooltip = this.get(\"tooltip\");\n\t\t\tif(tooltip){\n\t\t\t\ttooltip.hide(0);\n\t\t\t\ttooltip.set(\"tooltipTarget\", this);\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"fill\") || this.isDirty(\"stroke\")) {\n\n\t\t\tlet markerRectangle: Graphics | undefined;\n\t\t\tconst legendDataItem = this.get(\"legendDataItem\");\n\t\t\tif (legendDataItem) {\n\t\t\t\tmarkerRectangle = legendDataItem.get(\"markerRectangle\");\n\n\t\t\t\tif (markerRectangle) {\n\t\t\t\t\tif(this.isVisible()){\n\t\t\t\t\t\tif (this.isDirty(\"stroke\")) {\n\t\t\t\t\t\t\tlet stroke = this.get(\"stroke\");\n\t\t\t\t\t\t\tmarkerRectangle.set(\"stroke\", stroke);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.isDirty(\"fill\")) {\n\t\t\t\t\t\t\tlet fill = this.get(\"fill\");\n\t\t\t\t\t\t\tmarkerRectangle.set(\"fill\", fill);\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\tthis.updateLegendMarker(undefined);\n\t\t}\n\n\n\t\tif (this.bullets.length > 0) {\n\t\t\tlet startIndex = this.startIndex();\n\t\t\tlet endIndex = this.endIndex();\n\n\t\t\tif(endIndex < this.dataItems.length){\n\t\t\t\tendIndex++;\n\t\t\t}\n\n\t\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\t\tlet dataItem = this.dataItems[i];\n\t\t\t\tif (!dataItem.bullets) {\n\t\t\t\t\tthis._makeBullets(dataItem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\tpublic _handleRemoved(){\n\t\t\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic _adjustStartIndex(index:number):number{\n\t\treturn index;\n\t}\n\n\tprotected _calculateAggregates(startIndex: number, endIndex: number) {\n\t\tlet fields = this._valueFields;\n\n\t\tif (!fields) {\n\t\t\tthrow new Error(\"No value fields are set for the series.\");\n\t\t}\n\n\t\tconst sum: { [index: string]: number } = {};\n\t\tconst absSum: { [index: string]: number } = {};\n\t\tconst count: { [index: string]: number } = {};\n\t\tconst low: { [index: string]: number } = {};\n\t\tconst high: { [index: string]: number } = {};\n\t\tconst open: { [index: string]: number } = {};\n\t\tconst close: { [index: string]: number } = {};\n\t\tconst average: { [index: string]: number } = {};\n\t\tconst previous: { [index: string]: number } = {};\n\n\t\t$array.each(fields, (key) => {\n\t\t\tsum[key] = 0;\n\t\t\tabsSum[key] = 0;\n\t\t\tcount[key] = 0;\n\t\t})\n\n\t\tconst len = this.dataItems.length;\n\n\t\t$array.each(fields, (key) => {\n\t\t\tlet change = key + \"Change\";\n\t\t\tlet changePercent = key + \"ChangePercent\";\n\t\t\tlet changePrevious = key + \"ChangePrevious\";\n\t\t\tlet changePreviousPercent = key + \"ChangePreviousPercent\";\n\t\t\tlet changeSelection = key + \"ChangeSelection\";\n\t\t\tlet changeSelectionPercent = key + \"ChangeSelectionPercent\";\n\n\t\t\tlet openKey = \"valueY\";\n\n\t\t\tif(key == \"valueX\" || key == \"openValueX\" || key == \"lowValueX\" || key == \"highValueX\"){\n\t\t\t\topenKey = \"valueX\";\n\t\t\t}\n\n\t\t\tconst baseValueSeries = this.getPrivate(\"baseValueSeries\");\n\t\t\tconst adjustedStartIndex = this.getPrivate(\"adjustedStartIndex\", startIndex);\n\t\t\t\n\t\t\t// Function to calculate changes for a single data item\n\t\t\tconst calculateChangesForItem = (dataItem: any, key: string) => {\n\t\t\t\tif (dataItem) {\n\t\t\t\t\tlet value = dataItem.get(<any>key);\n\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\tdataItem.setRaw(<any>(changePrevious), value - previous[openKey]);\n\t\t\t\t\t\tdataItem.setRaw(<any>(changePreviousPercent), (value - previous[openKey]) / previous[openKey] * 100);\n\t\t\t\t\t\tdataItem.setRaw(<any>(changeSelection), value - open[openKey]);\n\t\t\t\t\t\tdataItem.setRaw(<any>(changeSelectionPercent), (value - open[openKey]) / open[openKey] * 100);\n\t\t\t\t\t\tprevious[key] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\t\t\t\n\n\t\t\tfor (let i = adjustedStartIndex; i < endIndex; i++) {\n\t\t\t\tconst dataItem = this.dataItems[i];\n\t\t\t\tif(dataItem){\n\t\t\t\t\tlet value = dataItem.get(<any>key)\n\n\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\tcount[key]++;\n\t\t\t\t\t\tsum[key] += value;\n\n\t\t\t\t\t\tabsSum[key] += Math.abs(value);\n\n\t\t\t\t\t\taverage[key] = sum[key] / count[key];\n\n\t\t\t\t\t\tif (low[key] > value || low[key] == null) {\n\t\t\t\t\t\t\tlow[key] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (high[key] < value || high[key] == null) {\n\t\t\t\t\t\t\thigh[key] = value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tclose[key] = value;\n\n\t\t\t\t\t\tif (open[key] == null) {\n\t\t\t\t\t\t\topen[key] = value;\n\t\t\t\t\t\t\tprevious[key] = value;\n\n\t\t\t\t\t\t\tif(baseValueSeries){\n\t\t\t\t\t\t\t\topen[openKey] = baseValueSeries._getBase(openKey);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (startIndex === 0) {\n\t\t\t\t\t\t\tdataItem.setRaw(<any>(change), value - open[openKey]);\n\t\t\t\t\t\t\tdataItem.setRaw(<any>(changePercent), (value - open[openKey]) / open[openKey] * 100);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcalculateChangesForItem(dataItem, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Calculate for endIndex item\n\t\t\tif (endIndex < len) {\n\t\t\t\tcalculateChangesForItem(this.dataItems[endIndex], key);\n\t\t\t}\n\t\t\t\n\t\t\t// Calculate for endIndex+1 item if available\n\t\t\tif (endIndex + 1 < len) {\n\t\t\t\tcalculateChangesForItem(this.dataItems[endIndex + 1], key);\n\t\t\t}\n\n\t\t\tif (startIndex > 0) {\n\t\t\t\tstartIndex--;\n\t\t\t}\n\n\t\t\tdelete previous[key];\n\n\t\t\tfor (let i = startIndex; i < adjustedStartIndex; i++) {\n\t\t\t\tconst dataItem = this.dataItems[i];\n\t\t\t\tif(dataItem) {\n\t\t\t\t\tlet value = dataItem.get(<any>key);\n\n\t\t\t\t\tif (previous[key] == null) {\n\t\t\t\t\t\tprevious[key] = value;\n\t\t\t\t\t}\t\t\t\t\n\t\t\n\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\tdataItem.setRaw(<any>(changePrevious), value - previous[openKey]);\n\t\t\t\t\t\tdataItem.setRaw(<any>(changePreviousPercent), (value - previous[openKey]) / previous[openKey] * 100);\n\t\t\t\t\t\tdataItem.setRaw(<any>(changeSelection), value - open[openKey]);\n\t\t\t\t\t\tdataItem.setRaw(<any>(changeSelectionPercent), (value - open[openKey]) / open[openKey] * 100);\n\t\t\n\t\t\t\t\t\tprevious[key] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\t$array.each(fields, (key) => {\n\t\t\tthis.setPrivate(<any>(key + \"AverageSelection\"), average[key]);\n\t\t\tthis.setPrivate(<any>(key + \"CountSelection\"), count[key]);\n\t\t\tthis.setPrivate(<any>(key + \"SumSelection\"), sum[key]);\n\t\t\tthis.setPrivate(<any>(key + \"AbsoluteSumSelection\"), absSum[key]);\n\t\t\tthis.setPrivate(<any>(key + \"LowSelection\"), low[key]);\n\t\t\tthis.setPrivate(<any>(key + \"HighSelection\"), high[key]);\n\t\t\tthis.setPrivate(<any>(key + \"OpenSelection\"), open[key]);\n\t\t\tthis.setPrivate(<any>(key + \"CloseSelection\"), close[key]);\n\t\t})\n\n\t\tif (startIndex === 0 && endIndex === len) {\n\t\t\t$array.each(fields, (key) => {\n\t\t\t\tthis.setPrivate(<any>(key + \"Average\"), average[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Count\"), count[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Sum\"), sum[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"AbsoluteSum\"), absSum[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Low\"), low[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"High\"), high[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Open\"), open[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Close\"), close[key]);\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\tthis._psi = this.startIndex();\n\t\tthis._pei = this.endIndex();\n\n\t\tif(this.isDirty(\"visible\")){\n\t\t\tthis.bulletsContainer.set(\"visible\", this.get(\"visible\"));\n\t\t}\n\n\n\t\t// Apply heat rules\n\t\tconst rules = this.get(\"heatRules\");\n\n\t\tif (this._valuesDirty && rules && rules.length > 0) {\n\t\t\t$array.each(rules, (rule) => {\n\t\t\t\tconst minValue = rule.minValue || this.getPrivate(<any>(rule.dataField + \"Low\")) || 0;\n\t\t\t\tconst maxValue = rule.maxValue || this.getPrivate(<any>(rule.dataField + \"High\")) || 0;\n\n\t\t\t\t$array.each(rule.target._entities, (target) => {\n\n\t\t\t\t\tconst value = target.dataItem.get(rule.dataField);\n\n\t\t\t\t\tif (!$type.isNumber(value)) {\n\t\t\t\t\t\tif(rule.neutral){\n\t\t\t\t\t\t\ttarget.set(rule.key, rule.neutral);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst states = target.states;\n\t\t\t\t\t\tif(states){\n\t\t\t\t\t\t\tconst defaultState = states.lookup(\"default\");\n\t\t\t\t\t\t\tif(defaultState && rule.neutral){\n\t\t\t\t\t\t\t\tdefaultState.set(rule.key, rule.neutral);\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!rule.customFunction){\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (rule.customFunction) {\n\t\t\t\t\t\trule.customFunction.call(this, target, minValue, maxValue, value);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet percent: number;\n\t\t\t\t\t\tif (rule.logarithmic) {\n\t\t\t\t\t\t\tpercent = (Math.log(value) * Math.LOG10E - Math.log(minValue) * Math.LOG10E) / ((Math.log(maxValue) * Math.LOG10E - Math.log(minValue) * Math.LOG10E));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpercent = (value - minValue) / (maxValue - minValue);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($type.isNumber(value) && (!$type.isNumber(percent) || Math.abs(percent) == Infinity)) {\n\t\t\t\t\t\t\tpercent = 0.5;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// fixes problems if all values are the same\n\t\t\t\t\t\tlet propertyValue;\n\t\t\t\t\t\tif ($type.isNumber(rule.min)) {\n\t\t\t\t\t\t\tpropertyValue = rule.min + (rule.max - rule.min) * percent;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (rule.min instanceof Color) {\n\t\t\t\t\t\t\tpropertyValue = Color.interpolate(percent, rule.min, rule.max);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (rule.min instanceof Percent) {\n\t\t\t\t\t\t\tpropertyValue = percentInterpolate(percent, rule.min, rule.max);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttarget.set(rule.key, propertyValue);\n\t\t\t\t\t\tconst states = target.states;\n\t\t\t\t\t\tif(states){\n\t\t\t\t\t\t\tconst defaultState = states.lookup(\"default\");\n\t\t\t\t\t\t\tif(defaultState){\n\t\t\t\t\t\t\t\tdefaultState.set(rule.key, propertyValue);\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\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\n\t\tif(this.get(\"visible\")){\n\t\t\tlet count = this.dataItems.length;\n\t\t\tlet startIndex = this.startIndex();\n\t\t\tlet endIndex = this.endIndex();\n\n\t\t\tif(endIndex < count){\n\t\t\t\tendIndex++;\n\t\t\t}\n\t\t\tif(startIndex > 0){\n\t\t\t\tstartIndex--;\n\t\t\t}\n\n\t\t\tfor (let i = 0; i < startIndex; i++) {\n\t\t\t\tthis._hideBullets(this.dataItems[i]);\n\t\t\t}\n\n\t\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\t\tthis._positionBullets(this.dataItems[i]);\n\t\t\t}\n\n\t\t\tfor (let i = endIndex; i < count; i++) {\n\t\t\t\tthis._hideBullets(this.dataItems[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _positionBullets(dataItem: DataItem<this[\"_dataItemSettings\"]>){\n\t\tif(dataItem.bullets){\n\t\t\t$array.each(dataItem.bullets, (bullet) => {\n\t\t\t\tthis._positionBullet(bullet);\n\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\n\t\t\t\tif(bullet.get(\"dynamic\")){\n\n\t\t\t\t\tif(sprite){\n\t\t\t\t\t\tsprite._markDirtyKey(\"fill\" as any);\n\t\t\t\t\t\tsprite.markDirtySize();\n\t\t\t\t\t}\n\t\t\t\t\tif(sprite instanceof Container){\n\t\t\t\t\t\tsprite.walkChildren((child)=>{\n\t\t\t\t\t\t\tchild._markDirtyKey(\"fill\" as any);\n\t\t\t\t\t\t\tchild.markDirtySize();\n\n\t\t\t\t\t\t\tif(child instanceof Label){\n\t\t\t\t\t\t\t\tchild.text.markDirtyText();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(sprite instanceof Label && sprite.get(\"populateText\" as any)){\n\t\t\t\t\tsprite.text.markDirtyText();\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _hideBullets(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tif (dataItem.bullets) {\n\t\t\t$array.each(dataItem.bullets, (bullet) => {\n\t\t\t\tlet sprite = bullet.get(\"sprite\");\n\t\t\t\tif (sprite) {\n\t\t\t\t\tsprite.setPrivate(\"visible\", false);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic _positionBullet(_bullet: Bullet) {\n\t}\n\n\tpublic _placeBulletsContainer(chart:Chart){\n\t\tchart.bulletsContainer.children.moveValue(this.bulletsContainer);\n\t}\n\n\tpublic _removeBulletsContainer(){\n\t\tconst bulletsContainer = this.bulletsContainer;\n\t\tif(bulletsContainer.parent){\n\t\t\tbulletsContainer.parent.children.removeValue(bulletsContainer)\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\t//super.disposeDataItem(dataItem); // does nothing\n\n\t\tconst bullets = dataItem.bullets;\n\n\t\tif(bullets){\n\t\t\t$array.each(bullets, (bullet)=>{\n\t\t\t\tbullet.dispose();\n\t\t\t})\n\t\t\tdataItem.bullets = undefined;\n\t\t}\n\t}\n\n\tprotected _getItemReaderLabel(): string {\n\t\treturn \"\";\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\tconst bullets = dataItem.bullets;\n\t\tif(bullets){\n\t\t\t$array.each(bullets, (bullet)=>{\n\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\t\t\t\tif(sprite){\n\t\t\t\t\tpromises.push(sprite.show(duration));\n\t\t\t\t}\n\t\t\t})\n\t\t}\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 bullets = dataItem.bullets;\n\t\tif(bullets){\n\t\t\t$array.each(bullets, (bullet)=>{\n\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\t\t\t\tif(sprite){\t\t\t\t\t\n\t\t\t\t\tpromises.push(sprite.hide(duration));\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tawait Promise.all(promises);\n\t}\n\n\n\tprotected async _sequencedShowHide(show: boolean, duration?: number): Promise<void> {\n\t\tif (this.get(\"sequencedInterpolation\")) {\n\n\t\t\tif (!$type.isNumber(duration)) {\n\t\t\t\tduration = this.get(\"interpolationDuration\", 0);\n\t\t\t}\n\n\t\t\tif (duration > 0) {\n\t\t\t\tconst startIndex = this.startIndex();\n\t\t\t\tconst endIndex = this.endIndex();\n\n\t\t\t\tawait Promise.all($array.map(this.dataItems, async (dataItem, i) => {\n\t\t\t\t\tlet realDuration = duration || 0;\n\n\t\t\t\t\tif (i < startIndex - 10 || i > endIndex + 10) {\n\t\t\t\t\t\trealDuration = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t//let delay = this.get(\"sequencedDelay\", 0) * i + realDuration * (i - startIndex) / (endIndex - startIndex);\n\t\t\t\t\tlet delay = this.get(\"sequencedDelay\", 0) + realDuration / (endIndex - startIndex);\n\n\t\t\t\t\tawait $time.sleep(delay * (i - startIndex));\n\n\t\t\t\t\tif (show) {\n\t\t\t\t\t\tawait this.showDataItem(dataItem, realDuration);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tawait this.hideDataItem(dataItem, realDuration);\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tawait Promise.all($array.map(this.dataItems, (dataItem) => {\n\t\t\t\t\tif (show) {\n\t\t\t\t\t\treturn this.showDataItem(dataItem, 0);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn this.hideDataItem(dataItem, 0);\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLegendValue(dataItem?: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tif(dataItem){\n\t\t\tconst legendDataItem = dataItem.get(\"legendDataItem\" as any) as DataItem<ILegendDataItem>;\n\n\t\t\tif (legendDataItem) {\n\t\t\t\tconst valueLabel = legendDataItem.get(\"valueLabel\");\n\t\t\t\tif (valueLabel) {\n\t\t\t\t\tconst text = valueLabel.text;\n\t\t\t\t\tlet txt = \"\";\n\t\t\t\t\tvalueLabel._setDataItem(dataItem);\n\t\t\t\t\ttxt = this.get(\"legendValueText\", text.get(\"text\", \"\"));\n\n\t\t\t\t\tvalueLabel.set(\"text\", txt);\n\t\t\t\t\ttext.markDirtyText();\n\t\t\t\t}\n\n\t\t\t\tconst label = legendDataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tconst text = label.text;\n\t\t\t\t\tlet txt = \"\";\n\t\t\t\t\tlabel._setDataItem(dataItem);\n\t\t\t\t\ttxt = this.get(\"legendLabelText\", text.get(\"text\", \"\"));\n\n\t\t\t\t\tlabel.set(\"text\", txt);\n\t\t\t\t\ttext.markDirtyText();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLegendMarker(_dataItem?: DataItem<this[\"_dataItemSettings\"]>) {\n\t}\n\n\tprotected _onHide(){\n\t\tsuper._onHide();\n\n\t\tconst tooltip = this.getTooltip();\n\t\tif(tooltip){\n\t\t\ttooltip.hide();\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hoverDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>) {}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic unhoverDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>) {}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic _getBase(key: any): number {\n\t\tconst dataItem = this.dataItems[this.startIndex()];\n\t\tif (dataItem) {\n\t\t\treturn dataItem.get(key);\n\t\t}\n\t\treturn 0;\n\t}\n}\n"]}
1
+ {"version":3,"file":"Series.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Series.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Root } from \"../../core/Root\";\nimport type { Chart } from \"./Chart\";\nimport type { Bullet } from \"./Bullet\";\nimport type { Graphics } from \"../../core/render/Graphics\";\nimport type { ILegendDataItem } from \"./Legend\";\nimport type { Template } from \"../../core/util/Template\";\nimport type { Sprite } from \"../../core/render/Sprite\";\nimport type { Pattern } from \"./patterns/Pattern\";\n\nimport { Component, IComponentSettings, IComponentPrivate, DataItem, IComponentEvents, IComponentDataItem } from \"../../core/render/Component\";\nimport { List } from \"../../core/util/List\";\nimport { Color } from \"../../core/util/Color\";\nimport { percentInterpolate } from \"../../core/util/Animation\";\nimport { Percent } from \"../../core/util/Percent\";\nimport { p100 } from \"../../core/util/Percent\";\nimport { Container } from \"../../core/render/Container\";\nimport { Label } from \"../../core/render/Label\";\n//import { Animations } from \"../../core/util/Animation\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $type from \"../../core/util/Type\";\nimport * as $time from \"../../core/util/Time\";\n\n/**\n * Defines interface for a heat rule.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/heat-rules/} for more info\n */\nexport interface IHeatRule {\n\n\t/**\n\t * Target template.\n\t */\n\ttarget: Template<any>;\n\n\t/**\n\t * The setting value to use for items if the lowest value.\n\t */\n\tmin?: any;\n\n\t/**\n\t * The setting value to use for items if the highest value.\n\t */\n\tmax?: any;\n\n\t/**\n\t * The setting value to use for items which do not have value at all.\n\t */\n\tneutral?: any;\n\n\t/**\n\t * Which data field to use when determining item's value.\n\t */\n\tdataField: string;\n\n\t/**\n\t * A setting key to set.\n\t */\n\tkey?: string;\n\n\t/**\n\t * Custom lowest value.\n\t */\n\tminValue?: number;\n\n\t/**\n\t * Custom highest value.\n\t */\n\tmaxValue?: number;\n\n\t/**\n\t * Use logarithmic scale when calculating intermediate setting values.\n\t *\n\t * @default false\n\t */\n\tlogarithmic?: boolean;\n\n\t/**\n\t * A custom function that will set target element's settings.\n\t *\n\t * Can be used to do custom manipulation on complex objects requiring more\n\t * than modifying a setting.\n\t */\n\tcustomFunction?: (target: Sprite, minValue: number, maxValue: number, value?: any) => void;\n\n}\n\n\nexport interface ISeriesDataItem extends IComponentDataItem {\n\tid?: string;\n\tvalue?: number;\n\tvalueWorking?:number;\n\tvalueChange?: number;\n\tvalueChangePercent?: number;\n\tvalueChangeSelection?: number;\n\tvalueChangeSelectionPercent?: number;\n\tvalueChangePrevious?: number;\n\tvalueChangePreviousPercent?: number;\n\tvalueWorkingOpen?: number;\n\tvalueWorkingClose?: number;\n\n\tcustomValue?: number;\n\tcustomValueWorking?:number;\n\tcustomValueChange?: number;\n\tcustomValueChangePercent?: number;\n\tcustomValueChangeSelection?: number;\n\tcustomValueChangeSelectionPercent?: number;\n\tcustomValueChangePrevious?: number;\n\tcustomValueChangePreviousPercent?: number;\n}\n\nexport interface ISeriesSettings extends IComponentSettings {\n\n\t/**\n\t * Name of the series.\n\t */\n\tname?: string;\n\n\t/**\n\t * A key to look up in data for an id of the data item.\n\t */\n\tidField?: string;\n\n\t/**\n\t * A key to look up in data for a numeric value of the data item.\n\t *\n\t * Some series use it to display its elements. It can also be used in heat\n\t * rules.\n\t */\n\tvalueField?: string;\n\n\t/**\n\t * A key to look up in data for a numeric customValue of the data item.\n\t *\n\t * Usually used for storing additional numeric information and heat rules.\n\t */\n\tcustomValueField?: string;\n\n\t/**\n\t * A text template to be used for label in legend.\n\t */\n\tlegendLabelText?: string;\n\n\t/**\n\t * A text template to be used for value label in legend.\n\t */\n\tlegendValueText?: string;\n\n\t/**\n\t * If set to `true` the series initial animation will be played item by item\n\t * rather than all at once.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animation_of_series} for more info\n\t */\n\tsequencedInterpolation?:boolean;\n\n\t/**\n\t * A delay in milliseconds to wait before starting animation of next data\n\t * item.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animation_of_series} for more info\n\t */\n\tsequencedDelay?:number;\n\n\t/**\n\t * A list of heat rules to apply on series elements.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/heat-rules/} for more info\n\t */\n\theatRules?:IHeatRule[];\n\n\t/**\n\t * If set to `true`, series will calculate aggregate values, e.g. change\n\t * percent, high, low, etc.\n\t *\n\t * Do not enable unless you are using such aggregate values in tooltips,\n\t * display data fields, heat rules, or similar.\n\t */\n\tcalculateAggregates?: boolean;\n\n\t/**\n\t * Series stroke color.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/series/#Series_colors} for more info\n\t */\n\tstroke?: Color;\n\n\t/**\n\t * Series fill color.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/series/#Series_colors} for more info\n\t */\n\tfill?: Color;\n\n\t/**\n\t * Series fill pattern.\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\t/**\n\t * A data item representing series in a [[Legend]].\n\t *\n\t * @readonly\n\t */\n\tlegendDataItem?: DataItem<ILegendDataItem>;\n\n\t/**\n\t * A list of field names to exclude from automatic aggregation\n\t * when `calculateAggregates` is enabled. Use it to optimize\n\t * performance by disabling automatic aggregation for data\n\t * fields where aggregate values are not needed.\n\t *\n\t * @since 5.14.4\n\t */\n\texcludeFromAggregate?: Array<string>;\n}\n\nexport interface ISeriesPrivate extends IComponentPrivate {\n\n\t/**\n\t * @ignore\n\t */\n\tchart?: Chart;\n\tstartIndex?: number;\n\tendIndex?: number;\n\tadjustedStartIndex?:number;\n\n\tvalueAverage?: number;\n\tvalueCount?: number;\n\tvalueSum?: number;\n\tvalueAbsoluteSum?: number;\n\tvalueLow?: number;\n\tvalueHigh?: number;\n\tvalueOpen?: number;\n\tvalueClose?: number;\n\n\tcustomValueAverage?: number;\n\tcustomValueCount?: number;\n\tcustomValueSum?: number;\n\tcustomValueAbsoluteSum?: number;\n\tcustomValueLow?: number;\n\tcustomValueHigh?: number;\n\tcustomValueOpen?: number;\n\tcustomValueClose?: number;\n\n\tbaseValueSeries?: Series;\n}\n\nexport interface ISeriesEvents extends IComponentEvents {\n\n}\n\n/**\n * A base class for all series.\n */\nexport abstract class Series extends Component {\n\tpublic static className: string = \"Series\";\n\tpublic static classNames: Array<string> = Component.classNames.concat([Series.className]);\n\n\tdeclare public _settings: ISeriesSettings;\n\tdeclare public _privateSettings: ISeriesPrivate;\n\tdeclare public _dataItemSettings: ISeriesDataItem;\n\tdeclare public _events: ISeriesEvents;\n\n\tprotected _aggregatesCalculated: boolean = false;\n\tprotected _selectionAggregatesCalculated: boolean = false;\n\tprotected _dataProcessed: boolean = false;\n\n\tprotected _psi: number | undefined;\n\tprotected _pei: number | undefined;\n\n\tprotected _baseSeriesDirty: boolean = false;\n\n\t/**\n\t * A chart series belongs to.\n\t */\n\tpublic chart:Chart | undefined;\n\n\t/**\n\t * List of bullets to use for the series.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/bullets/} for more info\n\t */\n\tpublic bullets: List<<D extends DataItem<this[\"_dataItemSettings\"]>>(root: Root, series:Series, dataItem: D) => Bullet | undefined> = new List();\n\n\t/**\n\t * A [[Container]] series' bullets are stored in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly bulletsContainer: Container = Container.new(this._root, {width:p100, height:p100, position:\"absolute\"});\n\n\tprotected _afterNew() {\n\t\tthis.valueFields.push(\"value\", \"customValue\");\n\n\t\tsuper._afterNew();\n\n\t\tthis.setPrivate(\"customData\", {});\n\n\t\tthis._disposers.push(this.bullets.events.onAll(() => {\n\t\t\tthis._handleBullets(this.dataItems);\n\t\t}));\n\t}\n\n\tprotected _dispose(){\n\t\tthis.bulletsContainer.dispose(); // can be in a different parent\n\t\tsuper._dispose();\n\t}\n\n\tpublic startIndex():number {\n\t\tlet len = this.dataItems.length;\n\t\treturn Math.min(this.getPrivate(\"startIndex\", 0), len);\n\t}\n\n\tpublic endIndex():number {\n\t\tlet len = this.dataItems.length;\n\t\treturn Math.max(0, Math.min(this.getPrivate(\"endIndex\", len), len));\n\t}\n\n\tprotected _handleBullets(dataItems:Array<DataItem<this[\"_dataItemSettings\"]>>){\n\t\t$array.each(dataItems, (dataItem)=>{\n\t\t\tconst bullets = dataItem.bullets;\n\t\t\tif(bullets){\n\t\t\t\t$array.each(bullets, (bullet)=>{\n\t\t\t\t\tbullet.dispose();\n\t\t\t\t})\n\n\t\t\t\tdataItem.bullets = undefined;\n\t\t\t}\n\t\t})\n\n\t\tthis.markDirtyValues();\n\t}\n\n\n\tprotected _makeBullets(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tif(this._shouldMakeBullet(dataItem)){\n\t\t\tdataItem.bullets = [];\n\n\t\t\tthis.bullets.each((bulletFunction) => {\n\t\t\t\tthis._makeBullet(dataItem, bulletFunction);\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _shouldMakeBullet(_dataItem: DataItem<this[\"_dataItemSettings\"]>):boolean{\n\t\treturn true;\n\t}\n\n\tprotected _makeBullet(dataItem: DataItem<this[\"_dataItemSettings\"]>, bulletFunction:(root: Root, series:Series, dataItem: DataItem<this[\"_dataItemSettings\"]>) => Bullet | undefined, index?:number):Bullet | undefined{\n\t\tconst bullet = bulletFunction(this._root, this, dataItem);\n\t\tif(bullet){\n\t\t\tbullet._index = index;\n\t\t\tthis._makeBulletReal(dataItem, bullet);\n\t\t}\n\t\treturn bullet;\n\t}\n\n\tprotected _makeBulletReal(dataItem: DataItem<this[\"_dataItemSettings\"]>, bullet:Bullet){\n\t\tlet sprite = bullet.get(\"sprite\");\n\n\t\tif (sprite) {\n\t\t\tsprite._setDataItem(dataItem);\n\t\t\tsprite.setRaw(\"position\", \"absolute\");\n\t\t\tthis.bulletsContainer.children.push(sprite);\n\t\t}\n\t\tbullet.series = this;\n\t\tdataItem.bullets!.push(bullet);\n\t}\n\n\t/**\n\t * Adds bullet directly to a data item.\n\t *\n\t * Please note: method accepts [[Bullet]] instance as a paramter, not a\n\t * reference to a function.\n\t *\n\t * You should add Bullet instance, not a method like you do it on series.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/bullets/#Adding_directly_to_data_item} for more info\n\t * @since 5.6.0\n\t *\n\t * @param dataItem Target data item\n\t * @param bullet Bullet instance\n\t */\n\tpublic addBullet(dataItem:DataItem<this[\"_dataItemSettings\"]>, bullet:Bullet){\n\t\tif(!dataItem.bullets){\n\t\t\tdataItem.bullets = [];\n\t\t}\n\t\tif(bullet){\n\t\t\tthis._makeBulletReal(dataItem, bullet);\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._aggregatesCalculated = false;\n\t\tthis._baseSeriesDirty = false;\n\t\tthis._selectionAggregatesCalculated = false;\n\t}\n\n\tpublic _prepareChildren(){\n\t\tsuper._prepareChildren();\n\n\t\tconst dataItems = this.dataItems;\n\t\tconst count = dataItems.length;\n\n\t\tlet startIndex = this.startIndex();\n\t\tlet endIndex = this.endIndex();\n\n\t\tif(this.isDirty(\"name\")){\n\t\t\tthis.updateLegendValue();\n\t\t}\n\n\t\tif(this.isDirty(\"heatRules\")){\n\t\t\tthis._valuesDirty = true;\n\t\t}\n\n\t\tif(this.isPrivateDirty(\"baseValueSeries\")){\n\t\t\tconst baseValueSeries = this.getPrivate(\"baseValueSeries\");\n\t\t\tif(baseValueSeries){\n\t\t\t\tthis._disposers.push(baseValueSeries.onPrivate(\"startIndex\", ()=>{\n\t\t\t\t\tthis._baseSeriesDirty = true;\n\t\t\t\t\tthis.markDirtyValues();\n\t\t\t\t}))\n\t\t\t}\n\t\t}\n\n\t\tconst calculateAggregates = this.get(\"calculateAggregates\");\n\t\tif(calculateAggregates){\n\t\t\tif (this._valuesDirty && !this._dataProcessed) {\n\t\t\t\tif (!this._aggregatesCalculated) {\n\t\t\t\t\tthis._calculateAggregates(0, count);\t\t\t\t\t\n\t\t\t\t\tthis._aggregatesCalculated = true;\n\t\t\t\t\tif(startIndex != 0){\n\t\t\t\t\t\tthis._psi = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ((this._psi != startIndex || this._pei != endIndex || this.isPrivateDirty(\"adjustedStartIndex\")) && !this._selectionAggregatesCalculated) {\n\t\t\t\tif (startIndex === 0 && endIndex === count && this._aggregatesCalculated) {\n\t\t\t\t\t// void\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._calculateAggregates(startIndex, endIndex);\n\t\t\t\t}\n\t\t\t\tthis._selectionAggregatesCalculated = true;\n\t\t\t}\n\t\t}\n\n\t\tif(this.isDirty(\"tooltip\")){\n\t\t\tlet tooltip = this.get(\"tooltip\");\n\t\t\tif(tooltip){\n\t\t\t\ttooltip.hide(0);\n\t\t\t\ttooltip.set(\"tooltipTarget\", this);\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"fill\") || this.isDirty(\"stroke\")) {\n\n\t\t\tlet markerRectangle: Graphics | undefined;\n\t\t\tconst legendDataItem = this.get(\"legendDataItem\");\n\t\t\tif (legendDataItem) {\n\t\t\t\tmarkerRectangle = legendDataItem.get(\"markerRectangle\");\n\n\t\t\t\tif (markerRectangle) {\n\t\t\t\t\tif(this.isVisible()){\n\t\t\t\t\t\tif (this.isDirty(\"stroke\")) {\n\t\t\t\t\t\t\tlet stroke = this.get(\"stroke\");\n\t\t\t\t\t\t\tmarkerRectangle.set(\"stroke\", stroke);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.isDirty(\"fill\")) {\n\t\t\t\t\t\t\tlet fill = this.get(\"fill\");\n\t\t\t\t\t\t\tmarkerRectangle.set(\"fill\", fill);\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\tthis.updateLegendMarker(undefined);\n\t\t}\n\n\n\t\tif (this.bullets.length > 0) {\n\t\t\tlet startIndex = this.startIndex();\n\t\t\tlet endIndex = this.endIndex();\n\n\t\t\tif(endIndex < count){\n\t\t\t\tendIndex++;\n\t\t\t}\n\n\t\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\t\tlet dataItem = dataItems[i];\n\t\t\t\tif (!dataItem.bullets) {\n\t\t\t\t\tthis._makeBullets(dataItem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\tpublic _handleRemoved(){\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic _adjustStartIndex(index:number):number{\n\t\treturn index;\n\t}\n\n\tprotected _calculateAggregates(startIndex: number, endIndex: number) {\n\n\t\tlet fields = this._valueFields;\n\t\tif (!fields) {\n\t\t\tthrow new Error(\"No value fields are set for the series.\");\n\t\t}\n\n\t\tconst excludeFromAggregate = this.get(\"excludeFromAggregate\");\n\t\tif(excludeFromAggregate){\n\t\t\tfields = fields.filter((field)=>{\n\t\t\t\treturn excludeFromAggregate.indexOf(field) == -1;\n\t\t\t});\n\t\t}\n\n\t\tconst sum: { [index: string]: number } = {};\n\t\tconst absSum: { [index: string]: number } = {};\n\t\tconst count: { [index: string]: number } = {};\n\t\tconst low: { [index: string]: number } = {};\n\t\tconst high: { [index: string]: number } = {};\n\t\tconst open: { [index: string]: number } = {};\n\t\tconst close: { [index: string]: number } = {};\n\t\tconst average: { [index: string]: number } = {};\n\t\tconst previous: { [index: string]: number } = {};\n\n\t\tfor(let f = 0, flen = fields.length; f < flen; f++){\n\t\t\tlet key = fields[f];\n\t\t\tsum[key] = 0;\n\t\t\tabsSum[key] = 0;\n\t\t\tcount[key] = 0;\n\t\t}\n\n\t\tconst dataItems = this.dataItems;\n\t\tconst len = dataItems.length;\n\n\t\tfor(let f = 0, flen = fields.length; f < flen; f++){\n\t\t\tlet key = fields[f];\n\t\t\tlet change = key + \"Change\";\n\t\t\tlet changePercent = key + \"ChangePercent\";\n\t\t\tlet changePrevious = key + \"ChangePrevious\";\n\t\t\tlet changePreviousPercent = key + \"ChangePreviousPercent\";\n\t\t\tlet changeSelection = key + \"ChangeSelection\";\n\t\t\tlet changeSelectionPercent = key + \"ChangeSelectionPercent\";\n\n\t\t\tlet openKey = \"valueY\";\n\n\t\t\tif (key === \"valueX\" || key.endsWith(\"ValueX\")) {\n\t\t\t\topenKey = \"valueX\";\n\t\t\t}\n\n\t\t\tconst baseValueSeries = this.getPrivate(\"baseValueSeries\");\n\t\t\tconst adjustedStartIndex = this.getPrivate(\"adjustedStartIndex\", startIndex);\n\n\t\t\tconst calculateChangesForItem = (dataItem: any, value:number, key: string) => {\n\t\t\t\tif (startIndex === 0) {\n\t\t\t\t\tconst openValue = open[openKey];\n\t\t\t\t\tconst changeValue = value - openValue;\n\t\t\t\t\tdataItem.setRaw(<any>(change), changeValue);\n\t\t\t\t\tdataItem.setRaw(<any>(changePercent), changeValue / openValue * 100);\n\t\t\t\t}\n\n\t\t\t\tconst changePreviousValue = value - previous[openKey];\n\t\t\t\tconst changeSelectionValue = value - open[openKey];\n\t\t\t\tdataItem.setRaw(<any>(changePrevious), changePreviousValue);\n\t\t\t\tdataItem.setRaw(<any>(changePreviousPercent), changePreviousValue / previous[openKey] * 100);\n\t\t\t\tdataItem.setRaw(<any>(changeSelection), changeSelectionValue);\n\t\t\t\tdataItem.setRaw(<any>(changeSelectionPercent), changeSelectionValue / open[openKey] * 100);\n\t\t\t\tprevious[key] = value;\n\t\t\t};\n\n\t\t\t// find first non-null value to initialize open, low, high instead of checking in loop\n\t\t\tfor (let i = adjustedStartIndex; i < endIndex; i++) {\n\t\t\t\tconst dataItem = dataItems[i];\n\t\t\t\tif(dataItem){\n\t\t\t\t\tlet value = dataItem.get(<any>key)\n\t\t\t\t\tif(value != null){\n\t\t\t\t\t\tif(low[key] == null){\n\t\t\t\t\t\t\tlow[key] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(high[key] == null){\n\t\t\t\t\t\t\thigh[key] = value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (open[key] == null) {\n\t\t\t\t\t\t\topen[key] = value;\n\t\t\t\t\t\t\tprevious[key] = value;\n\n\t\t\t\t\t\t\tif(baseValueSeries){\n\t\t\t\t\t\t\t\topen[openKey] = baseValueSeries._getBase(openKey);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// stop cycle\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tfor (let i = adjustedStartIndex; i < endIndex; i++) {\n\t\t\t\tconst dataItem = dataItems[i];\n\t\t\t\tif(dataItem){\n\t\t\t\t\tlet value = (dataItem._settings as any)[key];\n\n\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\tcount[key]++;\n\t\t\t\t\t\tsum[key] += value;\n\n\t\t\t\t\t\tabsSum[key] += Math.abs(value);\n\n\t\t\t\t\t\tif (low[key] > value) {\n\t\t\t\t\t\t\tlow[key] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (high[key] < value) {\n\t\t\t\t\t\t\thigh[key] = value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tclose[key] = value;\n\t\t\t\t\t\tcalculateChangesForItem(dataItem, value, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\taverage[key] = sum[key] / count[key];\n\n\t\t\tif (endIndex < len) {\n\t\t\t\tconst dataItem = dataItems[endIndex];\n\t\t\t\tif(dataItem){\n\t\t\t\t\tlet value = dataItem.get(<any>key);\n\t\t\t\t\tif(value != null){\n\t\t\t\t\t\tcalculateChangesForItem(dataItem, value, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (endIndex + 1 < len) {\n\t\t\t\tconst dataItem = dataItems[endIndex + 1];\n\t\t\t\tif(dataItem){\n\t\t\t\t\tlet value = dataItem.get(<any>key);\n\t\t\t\t\tif(value != null){\n\t\t\t\t\t\tcalculateChangesForItem(dataItem, value, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (startIndex > 0) {\n\t\t\t\tstartIndex--;\n\t\t\t}\n\n\t\t\tdelete previous[key];\n\n\t\t\tfor (let i = startIndex; i < adjustedStartIndex; i++) {\n\t\t\t\tconst dataItem = dataItems[i];\n\t\t\t\tif(dataItem) {\n\t\t\t\t\tlet value = dataItem.get(<any>key);\n\n\t\t\t\t\tif (previous[key] == null) {\n\t\t\t\t\t\tprevious[key] = value;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (value != null) {\n\t\t\t\t\t\tcalculateChangesForItem(dataItem, value, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor(let f = 0, flen = fields.length; f < flen; f++){\n\t\t\tlet key = fields[f];\n\t\t\tthis.setPrivate(<any>(key + \"AverageSelection\"), average[key]);\n\t\t\tthis.setPrivate(<any>(key + \"CountSelection\"), count[key]);\n\t\t\tthis.setPrivate(<any>(key + \"SumSelection\"), sum[key]);\n\t\t\tthis.setPrivate(<any>(key + \"AbsoluteSumSelection\"), absSum[key]);\n\t\t\tthis.setPrivate(<any>(key + \"LowSelection\"), low[key]);\n\t\t\tthis.setPrivate(<any>(key + \"HighSelection\"), high[key]);\n\t\t\tthis.setPrivate(<any>(key + \"OpenSelection\"), open[key]);\n\t\t\tthis.setPrivate(<any>(key + \"CloseSelection\"), close[key]);\n\t\t}\n\n\t\tif (startIndex === 0 && endIndex === len) {\n\t\t\tfor(let f = 0, flen = fields.length; f < flen; f++){\n\t\t\t\tlet key = fields[f];\n\t\t\t\tthis.setPrivate(<any>(key + \"Average\"), average[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Count\"), count[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Sum\"), sum[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"AbsoluteSum\"), absSum[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Low\"), low[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"High\"), high[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Open\"), open[key]);\n\t\t\t\tthis.setPrivate(<any>(key + \"Close\"), close[key]);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\n\t\tthis._psi = this.startIndex();\n\t\tthis._pei = this.endIndex();\n\n\t\tif(this.isDirty(\"visible\")){\n\t\t\tthis.bulletsContainer.set(\"visible\", this.get(\"visible\"));\n\t\t}\n\n\n\t\t// Apply heat rules\n\t\tconst rules = this.get(\"heatRules\");\n\n\t\tif (this._valuesDirty && rules && rules.length > 0) {\n\t\t\t$array.each(rules, (rule) => {\n\t\t\t\tconst minValue = rule.minValue || this.getPrivate(<any>(rule.dataField + \"Low\")) || 0;\n\t\t\t\tconst maxValue = rule.maxValue || this.getPrivate(<any>(rule.dataField + \"High\")) || 0;\n\n\t\t\t\t$array.each(rule.target._entities, (target) => {\n\n\t\t\t\t\tconst value = target.dataItem.get(rule.dataField);\n\n\t\t\t\t\tif (!$type.isNumber(value)) {\n\t\t\t\t\t\tif(rule.neutral){\n\t\t\t\t\t\t\ttarget.set(rule.key, rule.neutral);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst states = target.states;\n\t\t\t\t\t\tif(states){\n\t\t\t\t\t\t\tconst defaultState = states.lookup(\"default\");\n\t\t\t\t\t\t\tif(defaultState && rule.neutral){\n\t\t\t\t\t\t\t\tdefaultState.set(rule.key, rule.neutral);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!rule.customFunction){\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (rule.customFunction) {\n\t\t\t\t\t\trule.customFunction.call(this, target, minValue, maxValue, value);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet percent: number;\n\t\t\t\t\t\tif (rule.logarithmic) {\n\t\t\t\t\t\t\tpercent = (Math.log(value) * Math.LOG10E - Math.log(minValue) * Math.LOG10E) / ((Math.log(maxValue) * Math.LOG10E - Math.log(minValue) * Math.LOG10E));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpercent = (value - minValue) / (maxValue - minValue);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($type.isNumber(value) && (!$type.isNumber(percent) || Math.abs(percent) == Infinity)) {\n\t\t\t\t\t\t\tpercent = 0.5;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// fixes problems if all values are the same\n\t\t\t\t\t\tlet propertyValue;\n\t\t\t\t\t\tif ($type.isNumber(rule.min)) {\n\t\t\t\t\t\t\tpropertyValue = rule.min + (rule.max - rule.min) * percent;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (rule.min instanceof Color) {\n\t\t\t\t\t\t\tpropertyValue = Color.interpolate(percent, rule.min, rule.max);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (rule.min instanceof Percent) {\n\t\t\t\t\t\t\tpropertyValue = percentInterpolate(percent, rule.min, rule.max);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttarget.set(rule.key, propertyValue);\n\t\t\t\t\t\tconst states = target.states;\n\t\t\t\t\t\tif(states){\n\t\t\t\t\t\t\tconst defaultState = states.lookup(\"default\");\n\t\t\t\t\t\t\tif(defaultState){\n\t\t\t\t\t\t\t\tdefaultState.set(rule.key, propertyValue);\n\t\t\t\t\t\t\t}\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\n\t\tif(this.get(\"visible\") && this.bullets.length > 0){\n\t\t\tconst dataItems = this.dataItems;\n\t\t\tlet count = dataItems.length;\n\t\t\tlet startIndex = this.startIndex();\n\t\t\tlet endIndex = this.endIndex();\n\n\t\t\tif(endIndex < count){\n\t\t\t\tendIndex++;\n\t\t\t}\n\t\t\tif(startIndex > 0){\n\t\t\t\tstartIndex--;\n\t\t\t}\n\n\t\t\tfor (let i = 0; i < startIndex; i++) {\n\t\t\t\tthis._hideBullets(dataItems[i]);\n\t\t\t}\n\n\t\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\t\tthis._positionBullets(dataItems[i]);\n\t\t\t}\n\n\t\t\tfor (let i = endIndex; i < count; i++) {\n\t\t\t\tthis._hideBullets(dataItems[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _positionBullets(dataItem: DataItem<this[\"_dataItemSettings\"]>){\n\t\tif(dataItem.bullets){\n\t\t\t$array.each(dataItem.bullets, (bullet) => {\n\t\t\t\tthis._positionBullet(bullet);\n\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\n\t\t\t\tif(bullet.get(\"dynamic\")){\n\n\t\t\t\t\tif(sprite){\n\t\t\t\t\t\tsprite._markDirtyKey(\"fill\" as any);\n\t\t\t\t\t\tsprite.markDirtySize();\n\t\t\t\t\t}\n\t\t\t\t\tif(sprite instanceof Container){\n\t\t\t\t\t\tsprite.walkChildren((child)=>{\n\t\t\t\t\t\t\tchild._markDirtyKey(\"fill\" as any);\n\t\t\t\t\t\t\tchild.markDirtySize();\n\n\t\t\t\t\t\t\tif(child instanceof Label){\n\t\t\t\t\t\t\t\tchild.text.markDirtyText();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(sprite instanceof Label && sprite.get(\"populateText\" as any)){\n\t\t\t\t\tsprite.text.markDirtyText();\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected _hideBullets(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tif (dataItem.bullets) {\n\t\t\t$array.each(dataItem.bullets, (bullet) => {\n\t\t\t\tlet sprite = bullet.get(\"sprite\");\n\t\t\t\tif (sprite) {\n\t\t\t\t\tsprite.setPrivate(\"visible\", false);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic _positionBullet(_bullet: Bullet) {\n\t}\n\n\tpublic _placeBulletsContainer(chart:Chart){\n\t\tchart.bulletsContainer.children.moveValue(this.bulletsContainer);\n\t}\n\n\tpublic _removeBulletsContainer(){\n\t\tconst bulletsContainer = this.bulletsContainer;\n\t\tif(bulletsContainer.parent){\n\t\t\tbulletsContainer.parent.children.removeValue(bulletsContainer)\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\t//super.disposeDataItem(dataItem); // does nothing\n\n\t\tconst bullets = dataItem.bullets;\n\n\t\tif(bullets){\n\t\t\t$array.each(bullets, (bullet)=>{\n\t\t\t\tbullet.dispose();\n\t\t\t})\n\t\t\tdataItem.bullets = undefined;\n\t\t}\n\t}\n\n\tprotected _getItemReaderLabel(): string {\n\t\treturn \"\";\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\tconst bullets = dataItem.bullets;\n\t\tif(bullets){\n\t\t\t$array.each(bullets, (bullet)=>{\n\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\t\t\t\tif(sprite){\n\t\t\t\t\tpromises.push(sprite.show(duration));\n\t\t\t\t}\n\t\t\t})\n\t\t}\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 bullets = dataItem.bullets;\n\t\tif(bullets){\n\t\t\t$array.each(bullets, (bullet)=>{\n\t\t\t\tconst sprite = bullet.get(\"sprite\");\n\t\t\t\tif(sprite){\n\t\t\t\t\tpromises.push(sprite.hide(duration));\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tawait Promise.all(promises);\n\t}\n\n\n\tprotected async _sequencedShowHide(show: boolean, duration?: number): Promise<void> {\n\t\tif (this.get(\"sequencedInterpolation\")) {\n\n\t\t\tif (!$type.isNumber(duration)) {\n\t\t\t\tduration = this.get(\"interpolationDuration\", 0);\n\t\t\t}\n\n\t\t\tif (duration > 0) {\n\t\t\t\tconst startIndex = this.startIndex();\n\t\t\t\tconst endIndex = this.endIndex();\n\n\t\t\t\tawait Promise.all($array.map(this.dataItems, async (dataItem, i) => {\n\t\t\t\t\tlet realDuration = duration || 0;\n\n\t\t\t\t\tif (i < startIndex - 10 || i > endIndex + 10) {\n\t\t\t\t\t\trealDuration = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t//let delay = this.get(\"sequencedDelay\", 0) * i + realDuration * (i - startIndex) / (endIndex - startIndex);\n\t\t\t\t\tlet delay = this.get(\"sequencedDelay\", 0) + realDuration / (endIndex - startIndex);\n\n\t\t\t\t\tawait $time.sleep(delay * (i - startIndex));\n\n\t\t\t\t\tif (show) {\n\t\t\t\t\t\tawait this.showDataItem(dataItem, realDuration);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tawait this.hideDataItem(dataItem, realDuration);\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tawait Promise.all($array.map(this.dataItems, (dataItem) => {\n\t\t\t\t\tif (show) {\n\t\t\t\t\t\treturn this.showDataItem(dataItem, 0);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn this.hideDataItem(dataItem, 0);\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLegendValue(dataItem?: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tif(dataItem){\n\t\t\tconst legendDataItem = dataItem.get(\"legendDataItem\" as any) as DataItem<ILegendDataItem>;\n\n\t\t\tif (legendDataItem) {\n\t\t\t\tconst valueLabel = legendDataItem.get(\"valueLabel\");\n\t\t\t\tif (valueLabel) {\n\t\t\t\t\tconst text = valueLabel.text;\n\t\t\t\t\tlet txt = \"\";\n\t\t\t\t\tvalueLabel._setDataItem(dataItem);\n\t\t\t\t\ttxt = this.get(\"legendValueText\", text.get(\"text\", \"\"));\n\n\t\t\t\t\tvalueLabel.set(\"text\", txt);\n\t\t\t\t\ttext.markDirtyText();\n\t\t\t\t}\n\n\t\t\t\tconst label = legendDataItem.get(\"label\");\n\t\t\t\tif (label) {\n\t\t\t\t\tconst text = label.text;\n\t\t\t\t\tlet txt = \"\";\n\t\t\t\t\tlabel._setDataItem(dataItem);\n\t\t\t\t\ttxt = this.get(\"legendLabelText\", text.get(\"text\", \"\"));\n\n\t\t\t\t\tlabel.set(\"text\", txt);\n\t\t\t\t\ttext.markDirtyText();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLegendMarker(_dataItem?: DataItem<this[\"_dataItemSettings\"]>) {\n\t}\n\n\tprotected _onHide(){\n\t\tsuper._onHide();\n\n\t\tconst tooltip = this.getTooltip();\n\t\tif(tooltip){\n\t\t\ttooltip.hide();\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hoverDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>) {}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic unhoverDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>) {}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic _getBase(key: any): number {\n\t\tconst dataItem = this.dataItems[this.startIndex()];\n\t\tif (dataItem) {\n\t\t\treturn dataItem.get(key);\n\t\t}\n\t\treturn 0;\n\t}\n}\n"]}
@@ -87,6 +87,12 @@ export interface IExportingMenuSettings extends IEntitySettings {
87
87
  * @default true
88
88
  */
89
89
  deactivateRoot?: boolean;
90
+ /**
91
+ * ARIA label for the menu.
92
+ *
93
+ * @since 5.14.4
94
+ */
95
+ ariaLabel?: string;
90
96
  }
91
97
  export interface IExportingMenuPrivate extends IEntityPrivate {
92
98
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ExportingMenu.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/ExportingMenu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExportingMenu.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/ExportingMenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9E,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAO/F,MAAM,WAAW,kBAAkB;IAElC;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAExC;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAE5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAE9D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CAEnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAE5D;;OAEG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAE7B;;OAEG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAE/B;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IAC1D,aAAa,EAAE,EAAE,CAAA;IACjB,YAAY,EAAE,EAAE,CAAA;IAChB,YAAY,EAAE,EAAE,CAAA;CAChB;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IACxC,OAAc,SAAS,EAAE,MAAM,CAAmB;IAClD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuD;IAE/E,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,OAAO,EAAE,oBAAoB,CAAC;IAE7C,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,aAAa,CAAC,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAAwB;IAE9C,OAAO,CAAC,YAAY,CAAC,CAAY;IACjC,OAAO,CAAC,WAAW,CAAC,CAAqB;IAElC,MAAM,EAAE,OAAO,CAAS;IAE/B,OAAO,CAAC,OAAO,CAAkB;IAEjC,SAAS,CAAC,SAAS;IA0LZ,aAAa;IAmCpB,SAAS,CAAC,QAAQ,IAAI,IAAI;IAQ1B,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACI,WAAW,IAAI,IAAI;IA2E1B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,eAAe;IAavB;;;;OAIG;IACI,cAAc,IAAI,IAAI;IAU7B;;OAEG;IACI,IAAI,IAAI,IAAI;IAcnB;;OAEG;IACI,KAAK,IAAI,IAAI;IAapB;;OAEG;IACI,MAAM,IAAI,IAAI;CAUrB"}
@@ -148,7 +148,7 @@ export class ExportingMenu extends Entity {
148
148
  this._applyClassNames();
149
149
  iconElement.innerHTML = '<svg fill="none" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z"/></svg>';
150
150
  iconElement.setAttribute("tabindex", this._root.tabindex.toString());
151
- iconElement.setAttribute("aria-label", this._t("Export") + "; " + this._t("Press ENTER to open"));
151
+ iconElement.setAttribute("aria-label", this.get("ariaLabel", this._t("Export") + "; " + this._t("Press ENTER to open")));
152
152
  iconElement.setAttribute("role", "button");
153
153
  if ($utils.supports("keyboardevents")) {
154
154
  this._disposers.push($utils.addEventListener(document, "keydown", (ev) => {
@@ -308,7 +308,7 @@ export class ExportingMenu extends Entity {
308
308
  li.className += " am5exporting-format-" + item.format;
309
309
  }
310
310
  const a = document.createElement("a");
311
- let ariaLabel = this._t("Export");
311
+ let ariaLabel = this._t("Export ");
312
312
  if (item.label) {
313
313
  a.innerHTML = item.label;
314
314
  ariaLabel += " " + item.label;