@amcharts/amcharts5 5.5.6 → 5.6.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 (307) hide show
  1. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  2. package/.internal/charts/hierarchy/Hierarchy.js +3 -1
  3. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  4. package/.internal/charts/hierarchy/Treemap.d.ts.map +1 -1
  5. package/.internal/charts/hierarchy/Treemap.js +4 -1
  6. package/.internal/charts/hierarchy/Treemap.js.map +1 -1
  7. package/.internal/charts/map/ClusteredPointSeries.d.ts +44 -0
  8. package/.internal/charts/map/ClusteredPointSeries.d.ts.map +1 -1
  9. package/.internal/charts/map/ClusteredPointSeries.js +110 -1
  10. package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
  11. package/.internal/charts/map/MapChartDefaultTheme.d.ts.map +1 -1
  12. package/.internal/charts/map/MapChartDefaultTheme.js +6 -0
  13. package/.internal/charts/map/MapChartDefaultTheme.js.map +1 -1
  14. package/.internal/charts/pie/PieSeries.d.ts.map +1 -1
  15. package/.internal/charts/pie/PieSeries.js +14 -10
  16. package/.internal/charts/pie/PieSeries.js.map +1 -1
  17. package/.internal/charts/stock/StockChart.d.ts.map +1 -1
  18. package/.internal/charts/stock/StockChart.js +15 -2
  19. package/.internal/charts/stock/StockChart.js.map +1 -1
  20. package/.internal/charts/stock/indicators/ChartIndicator.d.ts.map +1 -1
  21. package/.internal/charts/stock/indicators/ChartIndicator.js +2 -0
  22. package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
  23. package/.internal/charts/stock/toolbar/Dropdown.d.ts +1 -1
  24. package/.internal/charts/stock/toolbar/Dropdown.js +1 -1
  25. package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
  26. package/.internal/charts/stock/toolbar/DropdownList.d.ts +1 -1
  27. package/.internal/charts/stock/toolbar/DropdownList.js +1 -1
  28. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  29. package/.internal/charts/stock/toolbar/StockControl.d.ts +1 -1
  30. package/.internal/charts/stock/toolbar/StockControl.js +1 -1
  31. package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
  32. package/.internal/charts/stock/toolbar/StockToolbar.d.ts +3 -1
  33. package/.internal/charts/stock/toolbar/StockToolbar.d.ts.map +1 -1
  34. package/.internal/charts/stock/toolbar/StockToolbar.js +3 -1
  35. package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
  36. package/.internal/charts/wordcloud/WordCloud.d.ts +0 -1
  37. package/.internal/charts/wordcloud/WordCloud.d.ts.map +1 -1
  38. package/.internal/charts/wordcloud/WordCloud.js +7 -26
  39. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  40. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  41. package/.internal/charts/xy/XYChartDefaultTheme.js +12 -0
  42. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  43. package/.internal/charts/xy/axes/Axis.d.ts +5 -1
  44. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  45. package/.internal/charts/xy/axes/Axis.js +79 -5
  46. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  47. package/.internal/charts/xy/axes/AxisRenderer.d.ts +17 -0
  48. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  49. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  50. package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
  51. package/.internal/charts/xy/axes/CategoryAxis.js +22 -2
  52. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  53. package/.internal/charts/xy/axes/DateAxis.d.ts +10 -0
  54. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  55. package/.internal/charts/xy/axes/DateAxis.js +100 -1
  56. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  57. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +7 -0
  58. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  59. package/.internal/charts/xy/axes/GaplessDateAxis.js +215 -48
  60. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  61. package/.internal/charts/xy/axes/ValueAxis.d.ts +4 -0
  62. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  63. package/.internal/charts/xy/axes/ValueAxis.js +68 -8
  64. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  65. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  66. package/.internal/charts/xy/series/LineSeries.js +3 -0
  67. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  68. package/.internal/charts/xy/series/XYSeries.d.ts +3 -0
  69. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  70. package/.internal/charts/xy/series/XYSeries.js +116 -25
  71. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  72. package/.internal/core/Registry.js +1 -1
  73. package/.internal/core/Registry.js.map +1 -1
  74. package/.internal/core/Root.d.ts +7 -0
  75. package/.internal/core/Root.d.ts.map +1 -1
  76. package/.internal/core/Root.js +5 -4
  77. package/.internal/core/Root.js.map +1 -1
  78. package/.internal/core/render/Bullet.d.ts +24 -0
  79. package/.internal/core/render/Bullet.d.ts.map +1 -1
  80. package/.internal/core/render/Bullet.js.map +1 -1
  81. package/.internal/core/render/Container.d.ts +1 -1
  82. package/.internal/core/render/Container.d.ts.map +1 -1
  83. package/.internal/core/render/Container.js +3 -3
  84. package/.internal/core/render/Container.js.map +1 -1
  85. package/.internal/core/render/Polygon.d.ts.map +1 -1
  86. package/.internal/core/render/Polygon.js +4 -0
  87. package/.internal/core/render/Polygon.js.map +1 -1
  88. package/.internal/core/render/Series.d.ts +16 -0
  89. package/.internal/core/render/Series.d.ts.map +1 -1
  90. package/.internal/core/render/Series.js +52 -27
  91. package/.internal/core/render/Series.js.map +1 -1
  92. package/.internal/core/render/backend/CanvasRenderer.js +17 -17
  93. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  94. package/.internal/core/util/Entity.d.ts +1 -1
  95. package/.internal/core/util/Entity.d.ts.map +1 -1
  96. package/.internal/core/util/Entity.js +4 -4
  97. package/.internal/core/util/Entity.js.map +1 -1
  98. package/.internal/core/util/Math.d.ts +35 -0
  99. package/.internal/core/util/Math.d.ts.map +1 -1
  100. package/.internal/core/util/Math.js +49 -0
  101. package/.internal/core/util/Math.js.map +1 -1
  102. package/.internal/core/util/Time.d.ts.map +1 -1
  103. package/.internal/core/util/Time.js +14 -11
  104. package/.internal/core/util/Time.js.map +1 -1
  105. package/.internal/plugins/json/Json.d.ts.map +1 -1
  106. package/.internal/plugins/json/Json.js +3 -0
  107. package/.internal/plugins/json/Json.js.map +1 -1
  108. package/.internal/themes/ResponsiveTheme.d.ts +6 -1
  109. package/.internal/themes/ResponsiveTheme.d.ts.map +1 -1
  110. package/.internal/themes/ResponsiveTheme.js +50 -24
  111. package/.internal/themes/ResponsiveTheme.js.map +1 -1
  112. package/CHANGELOG.md +35 -1
  113. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  114. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  115. package/examples/javascript/flow-chord/package.json +1 -1
  116. package/examples/javascript/flow-chord-directed/package.json +1 -1
  117. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  118. package/examples/javascript/flow-sankey/package.json +1 -1
  119. package/examples/javascript/gauge/package.json +1 -1
  120. package/examples/javascript/gauge-bands/package.json +1 -1
  121. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  122. package/examples/javascript/hierarchy-pack/package.json +1 -1
  123. package/examples/javascript/hierarchy-partition/package.json +1 -1
  124. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  125. package/examples/javascript/hierarchy-tree/package.json +1 -1
  126. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  127. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  128. package/examples/javascript/jest/package.json +1 -1
  129. package/examples/javascript/json-pie/package.json +1 -1
  130. package/examples/javascript/json-xy/index.js +3 -2
  131. package/examples/javascript/json-xy/package.json +1 -1
  132. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  133. package/examples/javascript/map-clustered-points/package.json +1 -1
  134. package/examples/javascript/map-day-and-night/package.json +1 -1
  135. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  136. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  137. package/examples/javascript/map-with-bubbles/package.json +1 -1
  138. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  139. package/examples/javascript/misc-40-charts/package.json +1 -1
  140. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  141. package/examples/javascript/pie-chart/package.json +1 -1
  142. package/examples/javascript/pie-donut-chart/package.json +1 -1
  143. package/examples/javascript/pie-variable-radius/package.json +1 -1
  144. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  145. package/examples/javascript/radar-heat-map/package.json +1 -1
  146. package/examples/javascript/radar-line/package.json +1 -1
  147. package/examples/javascript/radar-time-line/index.js +2 -1
  148. package/examples/javascript/radar-time-line/package.json +1 -1
  149. package/examples/javascript/sliced-funnel/package.json +1 -1
  150. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  151. package/examples/javascript/sliced-pyramid/package.json +1 -1
  152. package/examples/javascript/stock-chart/index.js +3 -1
  153. package/examples/javascript/stock-chart/package.json +1 -1
  154. package/examples/javascript/stock-chart-comparing-stocks/index.js +3 -1
  155. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  156. package/examples/javascript/stock-chart-data-granularity/index.js +3 -1
  157. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  158. package/examples/javascript/stock-chart-data-grouping/index.js +6 -2
  159. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  160. package/examples/javascript/stock-chart-intraday/index.js +3 -1
  161. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  162. package/examples/javascript/stock-chart-live/index.js +3 -1
  163. package/examples/javascript/stock-chart-live/package.json +1 -1
  164. package/examples/javascript/stock-chart-volume-separate-panel/index.js +6 -2
  165. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  166. package/examples/javascript/venn-diagram/package.json +1 -1
  167. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  168. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  169. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  170. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/index.js +3 -1
  171. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  172. package/examples/javascript/xy-bubble/package.json +1 -1
  173. package/examples/javascript/xy-candlestick/index.js +1 -0
  174. package/examples/javascript/xy-candlestick/package.json +1 -1
  175. package/examples/javascript/xy-clustered-column/package.json +1 -1
  176. package/examples/javascript/xy-column/index.js +3 -1
  177. package/examples/javascript/xy-column/package.json +1 -1
  178. package/examples/javascript/xy-comparing-series-google-analytics-style/index.js +3 -1
  179. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  180. package/examples/javascript/xy-data-grouping/index.js +1 -0
  181. package/examples/javascript/xy-data-grouping/package.json +1 -1
  182. package/examples/javascript/xy-draggable-range/index.js +3 -1
  183. package/examples/javascript/xy-draggable-range/package.json +1 -1
  184. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/index.js +3 -1
  185. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  186. package/examples/javascript/xy-dumbbell plot/index.js +2 -1
  187. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  188. package/examples/javascript/xy-evenly-spaced-date-axis/index.js +4 -5
  189. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  190. package/examples/javascript/xy-line/index.js +1 -0
  191. package/examples/javascript/xy-line/package.json +1 -1
  192. package/examples/javascript/xy-line-highlight-on-legend-hover/index.js +3 -1
  193. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  194. package/examples/javascript/xy-live-data/package.json +1 -1
  195. package/examples/javascript/xy-multiple-synced-value-axes/index.js +4 -2
  196. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  197. package/examples/javascript/xy-ohlc/index.js +3 -1
  198. package/examples/javascript/xy-ohlc/package.json +1 -1
  199. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  200. package/examples/javascript/xy-smoothed-line/index.js +3 -1
  201. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  202. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  203. package/examples/javascript/xy-stacked-column/package.json +1 -1
  204. package/examples/javascript/xy-stacked-step/index.js +7 -2
  205. package/examples/javascript/xy-stacked-step/package.json +1 -1
  206. package/examples/javascript/xy-stock/index.js +4 -1
  207. package/examples/javascript/xy-stock/package.json +1 -1
  208. package/examples/javascript/xy-stock-comparing/index.js +3 -1
  209. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  210. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  211. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  212. package/examples/typescript/flow-chord/package.json +1 -1
  213. package/examples/typescript/flow-chord-directed/package.json +1 -1
  214. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  215. package/examples/typescript/flow-sankey/package.json +1 -1
  216. package/examples/typescript/gauge/package.json +1 -1
  217. package/examples/typescript/gauge-bands/package.json +1 -1
  218. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  219. package/examples/typescript/hierarchy-pack/package.json +1 -1
  220. package/examples/typescript/hierarchy-partition/package.json +1 -1
  221. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  222. package/examples/typescript/hierarchy-tree/package.json +1 -1
  223. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  224. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  225. package/examples/typescript/jest/package.json +1 -1
  226. package/examples/typescript/json-pie/package.json +1 -1
  227. package/examples/typescript/json-xy/index.ts +3 -2
  228. package/examples/typescript/json-xy/package.json +1 -1
  229. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  230. package/examples/typescript/map-clustered-points/package.json +1 -1
  231. package/examples/typescript/map-day-and-night/package.json +1 -1
  232. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  233. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  234. package/examples/typescript/map-with-bubbles/package.json +1 -1
  235. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  236. package/examples/typescript/misc-40-charts/package.json +1 -1
  237. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  238. package/examples/typescript/pie-chart/package.json +1 -1
  239. package/examples/typescript/pie-donut-chart/package.json +1 -1
  240. package/examples/typescript/pie-variable-radius/package.json +1 -1
  241. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  242. package/examples/typescript/radar-heat-map/package.json +1 -1
  243. package/examples/typescript/radar-line/package.json +1 -1
  244. package/examples/typescript/radar-time-line/index.ts +2 -1
  245. package/examples/typescript/radar-time-line/package.json +1 -1
  246. package/examples/typescript/sliced-funnel/package.json +1 -1
  247. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  248. package/examples/typescript/sliced-pyramid/package.json +1 -1
  249. package/examples/typescript/stock-chart/index.ts +3 -1
  250. package/examples/typescript/stock-chart/package.json +1 -1
  251. package/examples/typescript/stock-chart-comparing-stocks/index.ts +3 -1
  252. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  253. package/examples/typescript/stock-chart-data-granularity/index.ts +3 -1
  254. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  255. package/examples/typescript/stock-chart-data-grouping/index.ts +6 -2
  256. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  257. package/examples/typescript/stock-chart-intraday/index.ts +3 -1
  258. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  259. package/examples/typescript/stock-chart-live/index.ts +3 -1
  260. package/examples/typescript/stock-chart-live/package.json +1 -1
  261. package/examples/typescript/stock-chart-volume-separate-panel/index.ts +6 -2
  262. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  263. package/examples/typescript/venn-diagram/package.json +1 -1
  264. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  265. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  266. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  267. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/index.ts +3 -1
  268. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  269. package/examples/typescript/xy-bubble/package.json +1 -1
  270. package/examples/typescript/xy-candlestick/index.ts +1 -0
  271. package/examples/typescript/xy-candlestick/package.json +1 -1
  272. package/examples/typescript/xy-clustered-column/package.json +1 -1
  273. package/examples/typescript/xy-column/index.ts +3 -1
  274. package/examples/typescript/xy-column/package.json +1 -1
  275. package/examples/typescript/xy-comparing-series-google-analytics-style/index.ts +3 -1
  276. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  277. package/examples/typescript/xy-data-grouping/index.ts +1 -0
  278. package/examples/typescript/xy-data-grouping/package.json +1 -1
  279. package/examples/typescript/xy-draggable-range/index.ts +3 -1
  280. package/examples/typescript/xy-draggable-range/package.json +1 -1
  281. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/index.ts +3 -1
  282. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  283. package/examples/typescript/xy-dumbbell plot/index.ts +2 -1
  284. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  285. package/examples/typescript/xy-evenly-spaced-date-axis/index.ts +4 -5
  286. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  287. package/examples/typescript/xy-line/index.ts +1 -0
  288. package/examples/typescript/xy-line/package.json +1 -1
  289. package/examples/typescript/xy-line-highlight-on-legend-hover/index.ts +3 -1
  290. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  291. package/examples/typescript/xy-live-data/package.json +1 -1
  292. package/examples/typescript/xy-multiple-synced-value-axes/index.ts +4 -2
  293. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  294. package/examples/typescript/xy-ohlc/index.ts +3 -1
  295. package/examples/typescript/xy-ohlc/package.json +1 -1
  296. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  297. package/examples/typescript/xy-smoothed-line/index.ts +3 -1
  298. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  299. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  300. package/examples/typescript/xy-stacked-column/package.json +1 -1
  301. package/examples/typescript/xy-stacked-step/index.ts +7 -2
  302. package/examples/typescript/xy-stacked-step/package.json +1 -1
  303. package/examples/typescript/xy-stock/index.ts +4 -1
  304. package/examples/typescript/xy-stock/package.json +1 -1
  305. package/examples/typescript/xy-stock-comparing/index.ts +3 -1
  306. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  307. package/package.json +1 -1
@@ -4,6 +4,8 @@ import { Container } from "../../core/render/Container";
4
4
  import { Label } from "../../core/render/Label";
5
5
  import * as $array from "../../core/util/Array";
6
6
  import * as $object from "../../core/util/Object";
7
+ import * as d3hierarchy from "d3-hierarchy";
8
+ import * as $math from "../../core/util/Math";
7
9
  /**
8
10
  * A version of [[MapPointSeries]] which can automatically group closely located
9
11
  * bullets into groups.
@@ -39,6 +41,30 @@ export class ClusteredPointSeries extends MapPointSeries {
39
41
  writable: true,
40
42
  value: []
41
43
  });
44
+ Object.defineProperty(this, "_scatterIndex", {
45
+ enumerable: true,
46
+ configurable: true,
47
+ writable: true,
48
+ value: 0
49
+ });
50
+ Object.defineProperty(this, "_scatters", {
51
+ enumerable: true,
52
+ configurable: true,
53
+ writable: true,
54
+ value: []
55
+ });
56
+ Object.defineProperty(this, "_packLayout", {
57
+ enumerable: true,
58
+ configurable: true,
59
+ writable: true,
60
+ value: d3hierarchy.pack()
61
+ });
62
+ Object.defineProperty(this, "_spiral", {
63
+ enumerable: true,
64
+ configurable: true,
65
+ writable: true,
66
+ value: []
67
+ });
42
68
  }
43
69
  _afterNew() {
44
70
  this.fields.push("groupId");
@@ -47,6 +73,9 @@ export class ClusteredPointSeries extends MapPointSeries {
47
73
  }
48
74
  _updateChildren() {
49
75
  super._updateChildren();
76
+ if (this.isDirty("scatterRadius")) {
77
+ this._spiral = $math.spiralPoints(0, 0, 300, 300, 0, 3, 3, 0, 0);
78
+ }
50
79
  const groups = {};
51
80
  // distribute to groups
52
81
  $array.each(this.dataItems, (dataItem) => {
@@ -56,6 +85,8 @@ export class ClusteredPointSeries extends MapPointSeries {
56
85
  }
57
86
  groups[groupId].push(dataItem);
58
87
  });
88
+ this._scatterIndex = -1;
89
+ this._scatters = [];
59
90
  this._clusterIndex = -1;
60
91
  this._clusters = [];
61
92
  $array.each(this.clusteredDataItems, (dataItem) => {
@@ -64,6 +95,9 @@ export class ClusteredPointSeries extends MapPointSeries {
64
95
  $array.each(this.dataItems, (dataItem) => {
65
96
  dataItem.setRaw("cluster", undefined);
66
97
  });
98
+ $object.each(groups, (_key, group) => {
99
+ this._scatterGroup(group);
100
+ });
67
101
  $object.each(groups, (_key, group) => {
68
102
  this._clusterGroup(group);
69
103
  });
@@ -98,7 +132,7 @@ export class ClusteredPointSeries extends MapPointSeries {
98
132
  }
99
133
  _clusterGroup(dataItems) {
100
134
  const chart = this.chart;
101
- if (chart && chart.get("zoomLevel", 1) >= chart.get("maxZoomLevel", 100) * 0.95) {
135
+ if (chart && chart.get("zoomLevel", 1) >= chart.get("maxZoomLevel", 100) * this.get("stopClusterZoom", 0.95)) {
102
136
  // void
103
137
  }
104
138
  else {
@@ -207,6 +241,81 @@ export class ClusteredPointSeries extends MapPointSeries {
207
241
  });
208
242
  }
209
243
  }
244
+ _scatterGroup(dataItems) {
245
+ const chart = this.chart;
246
+ if (chart && chart.get("zoomLevel", 1) >= chart.get("maxZoomLevel", 100) * this.get("stopClusterZoom", 0.95)) {
247
+ while (dataItems.length > 0) {
248
+ this._scatterIndex++;
249
+ this._scatters[this._scatterIndex] = [];
250
+ const scatter = this._scatters[this._scatterIndex];
251
+ const dataItem = dataItems[0];
252
+ scatter.push(dataItem);
253
+ $array.remove(dataItems, dataItem);
254
+ this._scatterDataItem(dataItem, dataItems);
255
+ }
256
+ $array.each(this._scatters, (scatter) => {
257
+ let len = scatter.length;
258
+ if (len > 1) {
259
+ let previousCircles = [];
260
+ let s = 0;
261
+ let radius = this.get("scatterRadius", 8);
262
+ $array.each(scatter, (dataItem) => {
263
+ let spiralPoint = this._spiral[s];
264
+ let intersects = true;
265
+ if (previousCircles.length > 0) {
266
+ while (intersects) {
267
+ $array.each(previousCircles, (previousCircle) => {
268
+ intersects = false;
269
+ while ($math.circlesOverlap({ x: spiralPoint.x, y: spiralPoint.y, radius: radius }, previousCircle)) {
270
+ s++;
271
+ if (this._spiral[s] == undefined) {
272
+ intersects = false;
273
+ }
274
+ else {
275
+ intersects = true;
276
+ spiralPoint = this._spiral[s];
277
+ }
278
+ }
279
+ });
280
+ }
281
+ }
282
+ const dx = spiralPoint.x;
283
+ const dy = spiralPoint.y;
284
+ previousCircles.push({ x: dx, y: dy, radius: radius });
285
+ dataItem.set("dx", dx);
286
+ dataItem.set("dy", dy);
287
+ const bullets = dataItem.bullets;
288
+ if (bullets) {
289
+ $array.each(bullets, (bullet) => {
290
+ const sprite = bullet.get("sprite");
291
+ if (sprite) {
292
+ sprite.setAll({ dx: dx, dy: dy });
293
+ }
294
+ });
295
+ }
296
+ });
297
+ }
298
+ });
299
+ }
300
+ }
301
+ _scatterDataItem(dataItem, dataItems) {
302
+ const point = dataItem.get("point");
303
+ if (point) {
304
+ $array.each(dataItems, (di) => {
305
+ if (di && !di.get("clipped")) {
306
+ const diPoint = di.get("point");
307
+ if (diPoint) {
308
+ if (Math.hypot(diPoint.x - point.x, diPoint.y - point.y) < this.get("scatterDistance", 5)) {
309
+ const scatter = this._scatters[this._scatterIndex];
310
+ scatter.push(di);
311
+ $array.remove(dataItems, di);
312
+ this._scatterDataItem(di, dataItems);
313
+ }
314
+ }
315
+ }
316
+ });
317
+ }
318
+ }
210
319
  }
211
320
  Object.defineProperty(ClusteredPointSeries, "className", {
212
321
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"ClusteredPointSeries.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/ClusteredPointSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import { MapPointSeries, IMapPointSeriesSettings, IMapPointSeriesPrivate, IMapPointSeriesDataItem } from \"./MapPointSeries\";\r\nimport { DataItem, IComponentDataItem } from \"../../core/render/Component\";\r\nimport type { Root } from \"../../core/Root\";\r\nimport type { Bullet } from \"../../core/render/Bullet\";\r\nimport { Container } from \"../../core/render/Container\";\r\nimport { Label } from \"../../core/render/Label\";\r\n\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $object from \"../../core/util/Object\";\r\n\r\n\r\nexport interface IClusteredDataItem extends IComponentDataItem {\r\n\t/**\r\n\t * All the data items of this cluster\r\n\t */\r\n\tchildren?: Array<DataItem<IMapPointSeriesDataItem>>;\r\n\r\n\t/**\r\n\t * Bullet of clustered data item\r\n\t */\r\n\tbullet?: Bullet;\r\n}\r\n\r\nexport interface IClusteredPointSeriesDataItem extends IMapPointSeriesDataItem {\r\n\t/**\r\n\t * An ID of a bullet's group.\r\n\t */\r\n\tgroupId?: string\r\n\r\n\t/**\r\n\t * Clustered data item (if available)\r\n\t * @readonly\r\n\t */\r\n\tcluster?: DataItem<IClusteredDataItem>;\r\n}\r\n\r\nexport interface IClusteredPointSeriesPrivate extends IMapPointSeriesPrivate {\r\n\r\n}\r\n\r\nexport interface IClusteredPointSeriesSettings extends IMapPointSeriesSettings {\r\n\t/**\r\n\t * Series data can contain a field with an ID of a virtual group the bullet\r\n\t * belongs to.\r\n\t *\r\n\t * For example, we migth want bullets to group with other bullets from the\r\n\t * same continent.\r\n\t *\r\n\t * `groupIdField` specifies which field in source data holds group IDs.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Group_segregation} for more info\r\n\t * @default groupID\r\n\t */\r\n\tgroupIdField?: string;\r\n\r\n\t/**\r\n\t * Bullets that are closer than X pixels apart, will be automatically grouped.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Minimal_distance} for more info\r\n\t * @default 20\r\n\t */\r\n\tminDistance?: number;\r\n\r\n\t/**\r\n\t * Set this to a [[Bullet]] instance which will be used to show groups.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Group_bullet} for more info\r\n\t */\r\n\tclusteredBullet?: (root: Root, series: ClusteredPointSeries, dataItem: DataItem<IClusteredPointSeriesDataItem>) => Bullet | undefined;\r\n}\r\n\r\n/**\r\n * A version of [[MapPointSeries]] which can automatically group closely located\r\n * bullets into groups.\r\n * \r\n * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/} for more info\r\n * @since 5.5.6\r\n * @important\r\n */\r\nexport class ClusteredPointSeries extends MapPointSeries {\r\n\r\n\tpublic static className: string = \"ClusteredPointSeries\";\r\n\tpublic static classNames: Array<string> = MapPointSeries.classNames.concat([ClusteredPointSeries.className]);\r\n\r\n\tdeclare public _settings: IClusteredPointSeriesSettings;\r\n\tdeclare public _privateSettings: IClusteredPointSeriesPrivate;\r\n\tdeclare public _dataItemSettings: IClusteredPointSeriesDataItem;\r\n\r\n\tprotected _dataItem: DataItem<this[\"_dataItemSettings\"]> = this.makeDataItem({});\r\n\tprotected _clusterIndex: number = 0;\r\n\tprotected _clusters: Array<Array<DataItem<this[\"_dataItemSettings\"]>>> = [];\r\n\r\n\tpublic clusteredDataItems: Array<DataItem<IClusteredDataItem>> = [];\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis.fields.push(\"groupId\");\r\n\t\tthis._setRawDefault(\"groupIdField\", \"groupId\");\r\n\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tconst groups: { [index: string]: Array<DataItem<IClusteredPointSeriesDataItem>> } = {};\r\n\t\t// distribute to groups\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tconst groupId = dataItem.get(\"groupId\", \"_default\");\r\n\r\n\t\t\tif (!groups[groupId]) {\r\n\t\t\t\tgroups[groupId] = [];\r\n\t\t\t}\r\n\t\t\tgroups[groupId].push(dataItem);\r\n\t\t})\r\n\r\n\t\tthis._clusterIndex = -1;\r\n\t\tthis._clusters = [];\r\n\r\n\t\t$array.each(this.clusteredDataItems, (dataItem) => {\r\n\t\t\tdataItem.setRaw(\"children\", undefined);\r\n\t\t})\r\n\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tdataItem.setRaw(\"cluster\", undefined);\r\n\t\t})\r\n\r\n\t\t$object.each(groups, (_key, group) => {\r\n\t\t\tthis._clusterGroup(group);\r\n\t\t})\r\n\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tif (!dataItem.get(\"cluster\")) {\r\n\t\t\t\tconst bullets = dataItem.bullets;\r\n\t\t\t\tif (bullets) {\r\n\t\t\t\t\t$array.each(bullets, (bullet) => {\r\n\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\tsprite.set(\"forceHidden\", false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms to the area so that all clustered data items of a cluster would be\r\n\t * visible.\r\n\t *\r\n\t * Pass in `true` as a second parameter to rotate that map so that the group\r\n\t * is in the center. This is especially useful in the maps that use\r\n\t * Orthographic (globe) projection.\r\n\t *\r\n\t * @param dataItem Group data item\r\n\t * @param rotate Rotate the map so that group is in the center?\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Drill_down} for more info\r\n\t */\r\n\tpublic zoomToCluster(dataItem: DataItem<IClusteredDataItem>, rotate?: boolean) {\r\n\t\tthis.zoomToDataItems(dataItem.get(\"children\", []), rotate);\r\n\t}\r\n\r\n\tprotected _clusterGroup(dataItems: Array<DataItem<IClusteredPointSeriesDataItem>>) {\r\n\t\tconst chart = this.chart;\r\n\t\tif (chart && chart.get(\"zoomLevel\", 1) >= chart.get(\"maxZoomLevel\", 100) * 0.95) {\r\n\t\t\t// void\r\n\t\t}\r\n\t\telse {\r\n\t\t\twhile (dataItems.length > 0) {\r\n\t\t\t\tthis._clusterIndex++;\r\n\t\t\t\tthis._clusters[this._clusterIndex] = [];\r\n\t\t\t\tconst cluster = this._clusters[this._clusterIndex];\r\n\t\t\t\tconst dataItem = dataItems[0];\r\n\r\n\t\t\t\tcluster.push(dataItem);\r\n\t\t\t\t$array.remove(dataItems, dataItem);\r\n\r\n\t\t\t\tthis._clusterDataItem(dataItem, dataItems);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet i = 0;\r\n\r\n\t\t$array.each(this._clusters, (cluster) => {\r\n\t\t\tlet sumX = 0;\r\n\t\t\tlet sumY = 0;\r\n\r\n\t\t\tlet len = cluster.length;\r\n\r\n\t\t\tif (len > 1) {\r\n\r\n\t\t\t\tlet clusteredDataItem = this.clusteredDataItems[i];\r\n\t\t\t\tif (!clusteredDataItem) {\r\n\t\t\t\t\tclusteredDataItem = new DataItem(this, undefined, {});\r\n\r\n\t\t\t\t\tconst bulletMethod = this.get(\"clusteredBullet\");\r\n\t\t\t\t\tif (bulletMethod) {\r\n\t\t\t\t\t\tconst bullet = clusteredDataItem.set(\"bullet\" as any, bulletMethod(this._root, this, clusteredDataItem));\r\n\r\n\t\t\t\t\t\tif (bullet) {\r\n\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\t\tthis.bulletsContainer.children.push(sprite);\r\n\t\t\t\t\t\t\t\tsprite._setDataItem(clusteredDataItem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.clusteredDataItems.push(clusteredDataItem)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$array.each(cluster, (dataItem) => {\r\n\t\t\t\t\tdataItem.setRaw(\"cluster\", clusteredDataItem);\r\n\r\n\t\t\t\t\tconst point = dataItem.get(\"point\");\r\n\t\t\t\t\tif (point) {\r\n\t\t\t\t\t\tsumX += point.x;\r\n\t\t\t\t\t\tsumY += point.y;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst bullets = dataItem.bullets;\r\n\t\t\t\t\tif (bullets) {\r\n\t\t\t\t\t\t$array.each(bullets, (bullet) => {\r\n\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\t\tsprite.set(\"forceHidden\", true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tlet averageX = sumX / len;\r\n\t\t\t\tlet averageY = sumY / len;\r\n\r\n\t\t\t\tclusteredDataItem.setRaw(\"children\" as any, cluster);\r\n\r\n\t\t\t\tconst prevLen = clusteredDataItem.get(\"value\" as any);\r\n\t\t\t\tclusteredDataItem.setRaw(\"value\" as any, len);\r\n\r\n\t\t\t\tconst bullet = clusteredDataItem.get(\"bullet\" as any);\r\n\t\t\t\tif (bullet) {\r\n\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\tsprite.set(\"forceHidden\", false);\r\n\t\t\t\t\t\tsprite.setAll({ x: averageX, y: averageY });\r\n\r\n\t\t\t\t\t\tif (prevLen != len) {\r\n\t\t\t\t\t\t\tif (sprite instanceof Container) {\r\n\t\t\t\t\t\t\t\tsprite.walkChildren((child) => {\r\n\t\t\t\t\t\t\t\t\tif (child instanceof Label) {\r\n\t\t\t\t\t\t\t\t\t\tchild.text.markDirtyText();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t$array.each(this.clusteredDataItems, (dataItem) => {\r\n\t\t\tlet children = dataItem.get(\"children\");\r\n\t\t\tif (!children || children.length == 0) {\r\n\t\t\t\tconst bullet = dataItem.get(\"bullet\" as any);\r\n\t\t\t\tif (bullet) {\r\n\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\tsprite.set(\"forceHidden\", true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tprotected _clusterDataItem(dataItem: DataItem<IClusteredPointSeriesDataItem>, dataItems: Array<DataItem<IClusteredPointSeriesDataItem>>) {\r\n\t\tconst point = dataItem.get(\"point\");\r\n\t\tif (point) {\r\n\t\t\t$array.each(dataItems, (di) => {\r\n\t\t\t\tif (di && !di.get(\"clipped\")) {\r\n\t\t\t\t\tconst diPoint = di.get(\"point\");\r\n\t\t\t\t\tif (diPoint) {\r\n\t\t\t\t\t\tif (Math.hypot(diPoint.x - point.x, diPoint.y - point.y) < this.get(\"minDistance\", 20)) {\r\n\t\t\t\t\t\t\tconst cluster = this._clusters[this._clusterIndex];\r\n\t\t\t\t\t\t\tcluster.push(di);\r\n\t\t\t\t\t\t\t$array.remove(dataItems, di);\r\n\t\t\t\t\t\t\tthis._clusterDataItem(di, dataItems);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"ClusteredPointSeries.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/ClusteredPointSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import { MapPointSeries, IMapPointSeriesSettings, IMapPointSeriesPrivate, IMapPointSeriesDataItem } from \"./MapPointSeries\";\r\nimport { DataItem, IComponentDataItem } from \"../../core/render/Component\";\r\nimport type { Root } from \"../../core/Root\";\r\nimport type { Bullet } from \"../../core/render/Bullet\";\r\nimport { Container } from \"../../core/render/Container\";\r\nimport { Label } from \"../../core/render/Label\";\r\n\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $object from \"../../core/util/Object\";\r\nimport * as d3hierarchy from \"d3-hierarchy\";\r\nimport * as $math from \"../../core/util/Math\";\r\n\r\n\r\nexport interface IClusteredDataItem extends IComponentDataItem {\r\n\t/**\r\n\t * All the data items of this cluster\r\n\t */\r\n\tchildren?: Array<DataItem<IMapPointSeriesDataItem>>;\r\n\r\n\t/**\r\n\t * Bullet of clustered data item\r\n\t */\r\n\tbullet?: Bullet;\r\n}\r\n\r\nexport interface IClusteredPointSeriesDataItem extends IMapPointSeriesDataItem {\r\n\t/**\r\n\t * An ID of a bullet's group.\r\n\t */\r\n\tgroupId?: string\r\n\r\n\t/**\r\n\t * Clustered data item (if available)\r\n\t * @readonly\r\n\t */\r\n\tcluster?: DataItem<IClusteredDataItem>;\r\n\r\n\t/**\r\n\t * How much bullet was moved from its original position\r\n\t */\r\n\tdx?: number;\r\n\r\n\t/**\r\n\t * How much bullet was moved from its original position\r\n\t */\r\n\tdy?: number;\r\n}\r\n\r\nexport interface IClusteredPointSeriesPrivate extends IMapPointSeriesPrivate {\r\n\r\n}\r\n\r\nexport interface IClusteredPointSeriesSettings extends IMapPointSeriesSettings {\r\n\t/**\r\n\t * Series data can contain a field with an ID of a virtual group the bullet\r\n\t * belongs to.\r\n\t *\r\n\t * For example, we migth want bullets to group with other bullets from the\r\n\t * same continent.\r\n\t *\r\n\t * `groupIdField` specifies which field in source data holds group IDs.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Group_segregation} for more info\r\n\t * @default groupID\r\n\t */\r\n\tgroupIdField?: string;\r\n\r\n\t/**\r\n\t * Bullets that are closer than X pixels apart, will be automatically grouped.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Minimal_distance} for more info\r\n\t * @default 20\r\n\t */\r\n\tminDistance?: number;\r\n\r\n\t/**\r\n\t * Set this to a [[Bullet]] instance which will be used to show groups.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Group_bullet} for more info\r\n\t */\r\n\tclusteredBullet?: (root: Root, series: ClusteredPointSeries, dataItem: DataItem<IClusteredPointSeriesDataItem>) => Bullet | undefined;\r\n\r\n\t/**\r\n\t * If bullets are closer to each other than `scatterDistance`, they will be\r\n\t * scattered so that all are visible.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Scatter_settings} for more info\r\n\t * @default 5\r\n\t * @since 5.5.7\r\n\t */\r\n\tscatterDistance?: number;\r\n\r\n\t/**\r\n\t * Presumed radius of a each bullet when scattering them.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Scatter_settings} for more info\r\n\t * @default 8\r\n\t * @since 5.5.7\r\n\t */\r\n\tscatterRadius?: number;\r\n\r\n\t/**\r\n\t * If a map is zoomed to a maxZoomLevel * stopClusterZoom, clusters will be\r\n\t * disabled.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Scatter_settings} for more info\r\n\t * @default 0.95\r\n\t * @since 5.5.7\r\n\t */\r\n\tstopClusterZoom?: number\r\n}\r\n\r\n/**\r\n * A version of [[MapPointSeries]] which can automatically group closely located\r\n * bullets into groups.\r\n * \r\n * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/} for more info\r\n * @since 5.5.6\r\n * @important\r\n */\r\nexport class ClusteredPointSeries extends MapPointSeries {\r\n\r\n\tpublic static className: string = \"ClusteredPointSeries\";\r\n\tpublic static classNames: Array<string> = MapPointSeries.classNames.concat([ClusteredPointSeries.className]);\r\n\r\n\tdeclare public _settings: IClusteredPointSeriesSettings;\r\n\tdeclare public _privateSettings: IClusteredPointSeriesPrivate;\r\n\tdeclare public _dataItemSettings: IClusteredPointSeriesDataItem;\r\n\r\n\tprotected _dataItem: DataItem<this[\"_dataItemSettings\"]> = this.makeDataItem({});\r\n\tprotected _clusterIndex: number = 0;\r\n\tprotected _clusters: Array<Array<DataItem<this[\"_dataItemSettings\"]>>> = [];\r\n\tpublic clusteredDataItems: Array<DataItem<IClusteredDataItem>> = [];\r\n\r\n\tprotected _scatterIndex: number = 0;\r\n\tprotected _scatters: Array<Array<DataItem<this[\"_dataItemSettings\"]>>> = [];\r\n\r\n\tpublic _packLayout = d3hierarchy.pack();\r\n\r\n\tprotected _spiral: Array<{ x: number, y: number }> = [];\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis.fields.push(\"groupId\");\r\n\t\tthis._setRawDefault(\"groupIdField\", \"groupId\");\r\n\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"scatterRadius\")) {\r\n\t\t\tthis._spiral = $math.spiralPoints(0, 0, 300, 300, 0, 3, 3, 0, 0)\r\n\t\t}\r\n\r\n\t\tconst groups: { [index: string]: Array<DataItem<IClusteredPointSeriesDataItem>> } = {};\r\n\t\t// distribute to groups\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tconst groupId = dataItem.get(\"groupId\", \"_default\");\r\n\r\n\t\t\tif (!groups[groupId]) {\r\n\t\t\t\tgroups[groupId] = [];\r\n\t\t\t}\r\n\t\t\tgroups[groupId].push(dataItem);\r\n\t\t})\r\n\r\n\t\tthis._scatterIndex = -1;\r\n\t\tthis._scatters = [];\r\n\t\tthis._clusterIndex = -1;\r\n\t\tthis._clusters = [];\r\n\r\n\t\t$array.each(this.clusteredDataItems, (dataItem) => {\r\n\t\t\tdataItem.setRaw(\"children\", undefined);\r\n\t\t})\r\n\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tdataItem.setRaw(\"cluster\", undefined);\r\n\t\t})\r\n\r\n\t\t$object.each(groups, (_key, group) => {\r\n\t\t\tthis._scatterGroup(group);\r\n\t\t})\r\n\r\n\t\t$object.each(groups, (_key, group) => {\r\n\t\t\tthis._clusterGroup(group);\r\n\t\t})\r\n\r\n\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\tif (!dataItem.get(\"cluster\")) {\r\n\t\t\t\tconst bullets = dataItem.bullets;\r\n\t\t\t\tif (bullets) {\r\n\t\t\t\t\t$array.each(bullets, (bullet) => {\r\n\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\tsprite.set(\"forceHidden\", false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Zooms to the area so that all clustered data items of a cluster would be\r\n\t * visible.\r\n\t *\r\n\t * Pass in `true` as a second parameter to rotate that map so that the group\r\n\t * is in the center. This is especially useful in the maps that use\r\n\t * Orthographic (globe) projection.\r\n\t *\r\n\t * @param dataItem Group data item\r\n\t * @param rotate Rotate the map so that group is in the center?\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/clustered-point-series/#Drill_down} for more info\r\n\t */\r\n\tpublic zoomToCluster(dataItem: DataItem<IClusteredDataItem>, rotate?: boolean) {\r\n\t\tthis.zoomToDataItems(dataItem.get(\"children\", []), rotate);\r\n\t}\r\n\r\n\tprotected _clusterGroup(dataItems: Array<DataItem<IClusteredPointSeriesDataItem>>) {\r\n\t\tconst chart = this.chart;\r\n\t\tif (chart && chart.get(\"zoomLevel\", 1) >= chart.get(\"maxZoomLevel\", 100) * this.get(\"stopClusterZoom\", 0.95)) {\r\n\t\t\t// void\r\n\t\t}\r\n\t\telse {\r\n\t\t\twhile (dataItems.length > 0) {\r\n\t\t\t\tthis._clusterIndex++;\r\n\t\t\t\tthis._clusters[this._clusterIndex] = [];\r\n\t\t\t\tconst cluster = this._clusters[this._clusterIndex];\r\n\t\t\t\tconst dataItem = dataItems[0];\r\n\r\n\t\t\t\tcluster.push(dataItem);\r\n\t\t\t\t$array.remove(dataItems, dataItem);\r\n\r\n\t\t\t\tthis._clusterDataItem(dataItem, dataItems);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet i = 0;\r\n\r\n\t\t$array.each(this._clusters, (cluster) => {\r\n\t\t\tlet sumX = 0;\r\n\t\t\tlet sumY = 0;\r\n\r\n\t\t\tlet len = cluster.length;\r\n\r\n\t\t\tif (len > 1) {\r\n\r\n\t\t\t\tlet clusteredDataItem = this.clusteredDataItems[i];\r\n\t\t\t\tif (!clusteredDataItem) {\r\n\t\t\t\t\tclusteredDataItem = new DataItem(this, undefined, {});\r\n\r\n\t\t\t\t\tconst bulletMethod = this.get(\"clusteredBullet\");\r\n\t\t\t\t\tif (bulletMethod) {\r\n\t\t\t\t\t\tconst bullet = clusteredDataItem.set(\"bullet\" as any, bulletMethod(this._root, this, clusteredDataItem));\r\n\r\n\t\t\t\t\t\tif (bullet) {\r\n\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\t\tthis.bulletsContainer.children.push(sprite);\r\n\t\t\t\t\t\t\t\tsprite._setDataItem(clusteredDataItem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.clusteredDataItems.push(clusteredDataItem)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$array.each(cluster, (dataItem) => {\r\n\t\t\t\t\tdataItem.setRaw(\"cluster\", clusteredDataItem);\r\n\r\n\t\t\t\t\tconst point = dataItem.get(\"point\");\r\n\t\t\t\t\tif (point) {\r\n\t\t\t\t\t\tsumX += point.x;\r\n\t\t\t\t\t\tsumY += point.y;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst bullets = dataItem.bullets;\r\n\t\t\t\t\tif (bullets) {\r\n\t\t\t\t\t\t$array.each(bullets, (bullet) => {\r\n\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\t\tsprite.set(\"forceHidden\", true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tlet averageX = sumX / len;\r\n\t\t\t\tlet averageY = sumY / len;\r\n\r\n\t\t\t\tclusteredDataItem.setRaw(\"children\" as any, cluster);\r\n\r\n\t\t\t\tconst prevLen = clusteredDataItem.get(\"value\" as any);\r\n\t\t\t\tclusteredDataItem.setRaw(\"value\" as any, len);\r\n\r\n\t\t\t\tconst bullet = clusteredDataItem.get(\"bullet\" as any);\r\n\t\t\t\tif (bullet) {\r\n\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\tsprite.set(\"forceHidden\", false);\r\n\t\t\t\t\t\tsprite.setAll({ x: averageX, y: averageY });\r\n\r\n\t\t\t\t\t\tif (prevLen != len) {\r\n\t\t\t\t\t\t\tif (sprite instanceof Container) {\r\n\t\t\t\t\t\t\t\tsprite.walkChildren((child) => {\r\n\t\t\t\t\t\t\t\t\tif (child instanceof Label) {\r\n\t\t\t\t\t\t\t\t\t\tchild.text.markDirtyText();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t$array.each(this.clusteredDataItems, (dataItem) => {\r\n\t\t\tlet children = dataItem.get(\"children\");\r\n\t\t\tif (!children || children.length == 0) {\r\n\t\t\t\tconst bullet = dataItem.get(\"bullet\" as any);\r\n\t\t\t\tif (bullet) {\r\n\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\tsprite.set(\"forceHidden\", true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tprotected _clusterDataItem(dataItem: DataItem<IClusteredPointSeriesDataItem>, dataItems: Array<DataItem<IClusteredPointSeriesDataItem>>) {\r\n\t\tconst point = dataItem.get(\"point\");\r\n\t\tif (point) {\r\n\t\t\t$array.each(dataItems, (di) => {\r\n\t\t\t\tif (di && !di.get(\"clipped\")) {\r\n\t\t\t\t\tconst diPoint = di.get(\"point\");\r\n\t\t\t\t\tif (diPoint) {\r\n\r\n\t\t\t\t\t\tif (Math.hypot(diPoint.x - point.x, diPoint.y - point.y) < this.get(\"minDistance\", 20)) {\r\n\t\t\t\t\t\t\tconst cluster = this._clusters[this._clusterIndex];\r\n\t\t\t\t\t\t\tcluster.push(di);\r\n\t\t\t\t\t\t\t$array.remove(dataItems, di);\r\n\t\t\t\t\t\t\tthis._clusterDataItem(di, dataItems);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _scatterGroup(dataItems: Array<DataItem<IClusteredPointSeriesDataItem>>) {\r\n\t\tconst chart = this.chart;\r\n\t\tif (chart && chart.get(\"zoomLevel\", 1) >= chart.get(\"maxZoomLevel\", 100) * this.get(\"stopClusterZoom\", 0.95)) {\r\n\t\t\twhile (dataItems.length > 0) {\r\n\t\t\t\tthis._scatterIndex++;\r\n\t\t\t\tthis._scatters[this._scatterIndex] = [];\r\n\t\t\t\tconst scatter = this._scatters[this._scatterIndex];\r\n\t\t\t\tconst dataItem = dataItems[0];\r\n\r\n\t\t\t\tscatter.push(dataItem);\r\n\t\t\t\t$array.remove(dataItems, dataItem);\r\n\r\n\t\t\t\tthis._scatterDataItem(dataItem, dataItems);\r\n\t\t\t}\r\n\r\n\t\t\t$array.each(this._scatters, (scatter) => {\r\n\t\t\t\tlet len = scatter.length;\r\n\r\n\t\t\t\tif (len > 1) {\r\n\t\t\t\t\tlet previousCircles: Array<{ x: number, y: number, radius: number }> = [];\r\n\t\t\t\t\tlet s = 0;\r\n\t\t\t\t\tlet radius = this.get(\"scatterRadius\", 8);\r\n\t\t\t\t\t$array.each(scatter, (dataItem) => {\r\n\t\t\t\t\t\tlet spiralPoint = this._spiral[s];\r\n\t\t\t\t\t\tlet intersects = true;\r\n\r\n\t\t\t\t\t\tif (previousCircles.length > 0) {\r\n\t\t\t\t\t\t\twhile (intersects) {\r\n\t\t\t\t\t\t\t\t$array.each(previousCircles, (previousCircle) => {\r\n\t\t\t\t\t\t\t\t\tintersects = false;\r\n\t\t\t\t\t\t\t\t\twhile ($math.circlesOverlap({ x: spiralPoint.x, y: spiralPoint.y, radius: radius }, previousCircle)) {\r\n\t\t\t\t\t\t\t\t\t\ts++;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (this._spiral[s] == undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tintersects = false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\tintersects = true;\r\n\t\t\t\t\t\t\t\t\t\t\tspiralPoint = this._spiral[s];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst dx = spiralPoint.x;\r\n\t\t\t\t\t\tconst dy = spiralPoint.y;\r\n\r\n\t\t\t\t\t\tpreviousCircles.push({ x: dx, y: dy, radius: radius });\r\n\r\n\t\t\t\t\t\tdataItem.set(\"dx\", dx);\r\n\t\t\t\t\t\tdataItem.set(\"dy\", dy);\r\n\r\n\t\t\t\t\t\tconst bullets = dataItem.bullets;\r\n\t\t\t\t\t\tif (bullets) {\r\n\t\t\t\t\t\t\t$array.each(bullets, (bullet) => {\r\n\t\t\t\t\t\t\t\tconst sprite = bullet.get(\"sprite\");\r\n\t\t\t\t\t\t\t\tif (sprite) {\r\n\t\t\t\t\t\t\t\t\tsprite.setAll({ dx: dx, dy: dy });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _scatterDataItem(dataItem: DataItem<IClusteredPointSeriesDataItem>, dataItems: Array<DataItem<IClusteredPointSeriesDataItem>>) {\r\n\t\tconst point = dataItem.get(\"point\");\r\n\t\tif (point) {\r\n\t\t\t$array.each(dataItems, (di) => {\r\n\t\t\t\tif (di && !di.get(\"clipped\")) {\r\n\t\t\t\t\tconst diPoint = di.get(\"point\");\r\n\r\n\t\t\t\t\tif (diPoint) {\r\n\t\t\t\t\t\tif (Math.hypot(diPoint.x - point.x, diPoint.y - point.y) < this.get(\"scatterDistance\", 5)) {\r\n\t\t\t\t\t\t\tconst scatter = this._scatters[this._scatterIndex];\r\n\t\t\t\t\t\t\tscatter.push(di);\r\n\t\t\t\t\t\t\t$array.remove(dataItems, di);\r\n\t\t\t\t\t\t\tthis._scatterDataItem(di, dataItems);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MapChartDefaultTheme.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChartDefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AASzC;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,SAAS,CAAC,iBAAiB;CA6H3B"}
1
+ {"version":3,"file":"MapChartDefaultTheme.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChartDefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AASzC;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,SAAS,CAAC,iBAAiB;CAoI3B"}
@@ -54,6 +54,12 @@ export class MapChartDefaultTheme extends Theme {
54
54
  clipBack: true,
55
55
  autoScale: false
56
56
  });
57
+ r("ClusteredPointSeries").setAll({
58
+ minDistance: 20,
59
+ scatterDistance: 3,
60
+ scatterRadius: 8,
61
+ stopClusterZoom: 0.95
62
+ });
57
63
  r("MapLineSeries").setAll({
58
64
  affectsBounds: false
59
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MapChartDefaultTheme.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChartDefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAG9C;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,iBAAiB;QAC1B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B;;;;WAIG;QAEH,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACpB,UAAU,EAAE,WAAW,EAAE;YACzB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YACvC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YACnC,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,GAAG;YACd,kBAAkB,EAAE,IAAI;SACxB,CAAC,CAAC;QAEH;YACC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAE1B,IAAI,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,GAAG;gBACd,IAAI,EAAE,QAAQ;aACd,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;SACrC;QAED,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;YAC5B,aAAa,EAAE,IAAI;SACnB,CAAC,CAAA;QAGF,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;YAC1B,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;SAChB,CAAC,CAAA;QAEF,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;YACzB,aAAa,EAAE,KAAK;SACpB,CAAC,CAAA;QAEF;YACC,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;YAE7B,IAAI,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,GAAG;gBAChB,aAAa,EAAE,CAAC;aAChB,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;YAC5C,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;SAC3C;QAED,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;YACnC,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,CAAC;SACf,CAAC,CAAA;QAEF,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACvD,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gBACjB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC;SACD,CAAC,CAAC;QAEH,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACxD,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gBACjB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC;SACD,CAAC,CAAC;QAGH;;;;WAIG;QAEH,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,EAAE;SACR,CAAC,CAAC;QAGH,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;YACvB,CAAC,EAAE,IAAI;YACP,OAAO,EAAE,IAAI;YACb,CAAC,EAAE,IAAI;YACP,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,EAAE;SACjB,CAAC,CAAA;IAEH,CAAC;CACD","sourcesContent":["import { Theme } from \"../../core/Theme\";\r\nimport { p50, p100 } from \"../../core/util/Percent\";\r\nimport { setColor } from \"../../themes/DefaultTheme\";\r\n\r\nimport { geoMercator } from \"d3-geo\";\r\n\r\nimport * as $ease from \"../../core/util/Ease\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport class MapChartDefaultTheme extends Theme {\r\n\tprotected setupDefaultRules() {\r\n\t\tsuper.setupDefaultRules();\r\n\r\n\t\tconst ic = this._root.interfaceColors;\r\n\t\tconst r = this.rule.bind(this);\r\n\r\n\t\t/**\r\n\t\t * ========================================================================\r\n\t\t * charts/map\r\n\t\t * ========================================================================\r\n\t\t */\r\n\r\n\t\tr(\"MapChart\").setAll({\r\n\t\t\tprojection: geoMercator(),\r\n\t\t\tpanX: \"translateX\",\r\n\t\t\tpanY: \"translateY\",\r\n\t\t\tpinchZoom: true,\r\n\t\t\tzoomStep: 2,\r\n\t\t\tzoomLevel: 1,\r\n\t\t\trotationX: 0,\r\n\t\t\trotationY: 0,\r\n\t\t\trotationZ: 0,\r\n\t\t\tmaxZoomLevel: 32,\r\n\t\t\tminZoomLevel: 1,\r\n\t\t\twheelY: \"zoom\",\r\n\t\t\twheelX: \"none\",\r\n\t\t\tanimationEasing: $ease.out($ease.cubic),\r\n\t\t\twheelEasing: $ease.out($ease.cubic),\r\n\t\t\twheelDuration: 0,\r\n\t\t\twheelSensitivity: 1,\r\n\t\t\tmaxPanOut: 0.4,\r\n\t\t\tcenterMapOnZoomOut: true\r\n\t\t});\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"MapLine\");\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tprecision: 0.5,\r\n\t\t\t\trole: \"figure\",\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"grid\");\r\n\t\t}\r\n\r\n\t\tr(\"MapPolygonSeries\").setAll({\r\n\t\t\taffectsBounds: true\r\n\t\t})\r\n\r\n\r\n\t\tr(\"MapPointSeries\").setAll({\r\n\t\t\taffectsBounds: false,\r\n\t\t\tclipFront: false,\r\n\t\t\tclipBack: true,\r\n\t\t\tautoScale: false\r\n\t\t})\r\n\r\n\t\tr(\"MapLineSeries\").setAll({\r\n\t\t\taffectsBounds: false\r\n\t\t})\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"MapPolygon\");\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tprecision: 0.5,\r\n\t\t\t\tisMeasured: false,\r\n\t\t\t\trole: \"figure\",\r\n\t\t\t\tfillOpacity: 1,\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\tstrokeWidth: 0.2,\r\n\t\t\t\tstrokeOpacity: 1,\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"fill\", ic, \"primaryButton\");\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"background\");\r\n\t\t}\r\n\r\n\t\tr(\"Button\", [\"zoomcontrol\"]).setAll({\r\n\t\t\tmarginTop: 1,\r\n\t\t\tmarginBottom: 1\r\n\t\t})\r\n\r\n\t\tr(\"Graphics\", [\"map\", \"button\", \"plus\", \"icon\"]).setAll({\r\n\t\t\tx: p50,\r\n\t\t\ty: p50,\r\n\t\t\tdraw: (display) => {\r\n\t\t\t\tdisplay.moveTo(-4, 0);\r\n\t\t\t\tdisplay.lineTo(4, 0);\r\n\t\t\t\tdisplay.moveTo(0, -4);\r\n\t\t\t\tdisplay.lineTo(0, 4);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tr(\"Graphics\", [\"map\", \"button\", \"minus\", \"icon\"]).setAll({\r\n\t\t\tx: p50,\r\n\t\t\ty: p50,\r\n\t\t\tdraw: (display) => {\r\n\t\t\t\tdisplay.moveTo(-4, 0);\r\n\t\t\t\tdisplay.lineTo(4, 0);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t/**\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t * charts/map: Series\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tr(\"GraticuleSeries\").setAll({\r\n\t\t\tstep: 10\r\n\t\t});\r\n\r\n\r\n\t\tr(\"ZoomControl\").setAll({\r\n\t\t\tx: p100,\r\n\t\t\tcenterX: p100,\r\n\t\t\ty: p100,\r\n\t\t\tcenterY: p100,\r\n\t\t\tpaddingRight: 10,\r\n\t\t\tpaddingBottom: 10\r\n\t\t})\r\n\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"MapChartDefaultTheme.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChartDefaultTheme.ts"],"names":[],"mappings":"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","sourcesContent":["import { Theme } from \"../../core/Theme\";\r\nimport { p50, p100 } from \"../../core/util/Percent\";\r\nimport { setColor } from \"../../themes/DefaultTheme\";\r\n\r\nimport { geoMercator } from \"d3-geo\";\r\n\r\nimport * as $ease from \"../../core/util/Ease\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport class MapChartDefaultTheme extends Theme {\r\n\tprotected setupDefaultRules() {\r\n\t\tsuper.setupDefaultRules();\r\n\r\n\t\tconst ic = this._root.interfaceColors;\r\n\t\tconst r = this.rule.bind(this);\r\n\r\n\t\t/**\r\n\t\t * ========================================================================\r\n\t\t * charts/map\r\n\t\t * ========================================================================\r\n\t\t */\r\n\r\n\t\tr(\"MapChart\").setAll({\r\n\t\t\tprojection: geoMercator(),\r\n\t\t\tpanX: \"translateX\",\r\n\t\t\tpanY: \"translateY\",\r\n\t\t\tpinchZoom: true,\r\n\t\t\tzoomStep: 2,\r\n\t\t\tzoomLevel: 1,\r\n\t\t\trotationX: 0,\r\n\t\t\trotationY: 0,\r\n\t\t\trotationZ: 0,\r\n\t\t\tmaxZoomLevel: 32,\r\n\t\t\tminZoomLevel: 1,\r\n\t\t\twheelY: \"zoom\",\r\n\t\t\twheelX: \"none\",\r\n\t\t\tanimationEasing: $ease.out($ease.cubic),\r\n\t\t\twheelEasing: $ease.out($ease.cubic),\r\n\t\t\twheelDuration: 0,\r\n\t\t\twheelSensitivity: 1,\r\n\t\t\tmaxPanOut: 0.4,\r\n\t\t\tcenterMapOnZoomOut: true\r\n\t\t});\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"MapLine\");\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tprecision: 0.5,\r\n\t\t\t\trole: \"figure\",\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"grid\");\r\n\t\t}\r\n\r\n\t\tr(\"MapPolygonSeries\").setAll({\r\n\t\t\taffectsBounds: true\r\n\t\t})\r\n\r\n\r\n\t\tr(\"MapPointSeries\").setAll({\r\n\t\t\taffectsBounds: false,\r\n\t\t\tclipFront: false,\r\n\t\t\tclipBack: true,\r\n\t\t\tautoScale: false\r\n\t\t})\r\n\r\n\t\tr(\"ClusteredPointSeries\").setAll({\r\n\t\t\tminDistance: 20,\r\n\t\t\tscatterDistance: 3,\r\n\t\t\tscatterRadius: 8,\r\n\t\t\tstopClusterZoom: 0.95\r\n\t\t})\r\n\r\n\t\tr(\"MapLineSeries\").setAll({\r\n\t\t\taffectsBounds: false\r\n\t\t})\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"MapPolygon\");\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tprecision: 0.5,\r\n\t\t\t\tisMeasured: false,\r\n\t\t\t\trole: \"figure\",\r\n\t\t\t\tfillOpacity: 1,\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\tstrokeWidth: 0.2,\r\n\t\t\t\tstrokeOpacity: 1,\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"fill\", ic, \"primaryButton\");\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"background\");\r\n\t\t}\r\n\r\n\t\tr(\"Button\", [\"zoomcontrol\"]).setAll({\r\n\t\t\tmarginTop: 1,\r\n\t\t\tmarginBottom: 1\r\n\t\t})\r\n\r\n\t\tr(\"Graphics\", [\"map\", \"button\", \"plus\", \"icon\"]).setAll({\r\n\t\t\tx: p50,\r\n\t\t\ty: p50,\r\n\t\t\tdraw: (display) => {\r\n\t\t\t\tdisplay.moveTo(-4, 0);\r\n\t\t\t\tdisplay.lineTo(4, 0);\r\n\t\t\t\tdisplay.moveTo(0, -4);\r\n\t\t\t\tdisplay.lineTo(0, 4);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tr(\"Graphics\", [\"map\", \"button\", \"minus\", \"icon\"]).setAll({\r\n\t\t\tx: p50,\r\n\t\t\ty: p50,\r\n\t\t\tdraw: (display) => {\r\n\t\t\t\tdisplay.moveTo(-4, 0);\r\n\t\t\t\tdisplay.lineTo(4, 0);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t/**\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t * charts/map: Series\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tr(\"GraticuleSeries\").setAll({\r\n\t\t\tstep: 10\r\n\t\t});\r\n\r\n\r\n\t\tr(\"ZoomControl\").setAll({\r\n\t\t\tx: p100,\r\n\t\t\tcenterX: p100,\r\n\t\t\ty: p100,\r\n\t\t\tcenterY: p100,\r\n\t\t\tpaddingRight: 10,\r\n\t\t\tpaddingBottom: 10\r\n\t\t})\r\n\r\n\t}\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PieSeries.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/pie/PieSeries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEhI,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAQ,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAMvD,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IACjE,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAEjE;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAElB;AAED,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAE/D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAEhB;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,aAAa;IAE5B,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE3C,OAAc,SAAS,EAAE,MAAM,CAAe;IAC9C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAElF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,iBAAiB,EAAE,kBAAkB,CAAC;IAEtC,UAAU,EAAE,KAAK,CAAC;IAClB,UAAU,EAAE,WAAW,CAAC;IAEvC,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IASzD,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IASzD,SAAS,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IASvD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IA4BvE,SAAS,CAAC,UAAU;IAQpB,SAAS,CAAC,YAAY;IASf,gBAAgB;IA+FvB,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAqC5D,eAAe,CAAC,MAAM,EAAE,MAAM;CAsBrC"}
1
+ {"version":3,"file":"PieSeries.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/pie/PieSeries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGhI,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAQ,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAMvD,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IACjE,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAEjE;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAElB;AAED,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAE/D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAEhB;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,aAAa;IAE5B,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE3C,OAAc,SAAS,EAAE,MAAM,CAAe;IAC9C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAElF,SAAS,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,iBAAiB,EAAE,kBAAkB,CAAC;IAEtC,UAAU,EAAE,KAAK,CAAC;IAClB,UAAU,EAAE,WAAW,CAAC;IAEvC,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IASzD,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IASzD,SAAS,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IASvD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IA4BvE,SAAS,CAAC,UAAU;IAQpB,SAAS,CAAC,YAAY;IASf,gBAAgB;IA+FvB,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAyC5D,eAAe,CAAC,MAAM,EAAE,MAAM;CAsBrC"}
@@ -161,17 +161,21 @@ export class PieSeries extends PercentSeries {
161
161
  let y = 0;
162
162
  x = label.x();
163
163
  y = label.y();
164
- if (label.get("textType") == "circular") {
165
- const labelRadius = label.radius() - label.get("paddingBottom", 0);
166
- const labelAngle = label.get("labelAngle", 0);
167
- x = labelRadius * $math.cos(labelAngle);
168
- y = labelRadius * $math.sin(labelAngle);
169
- }
170
- let dx = -pr;
171
- if (label.getPrivate("left")) {
172
- dx = pl;
164
+ let points = [];
165
+ if (x != 0 && y != 0) {
166
+ if (label.get("textType") == "circular") {
167
+ const labelRadius = label.radius() - label.get("paddingBottom", 0);
168
+ const labelAngle = label.get("labelAngle", 0);
169
+ x = labelRadius * $math.cos(labelAngle);
170
+ y = labelRadius * $math.sin(labelAngle);
171
+ }
172
+ let dx = -pr;
173
+ if (label.getPrivate("left")) {
174
+ dx = pl;
175
+ }
176
+ points = [{ x: slice.x() + radius * cos, y: slice.y() + radius * sin }, { x: x + dx, y: y }, { x: x, y: y }];
173
177
  }
174
- tick.set("points", [{ x: slice.x() + radius * cos, y: slice.y() + radius * sin }, { x: x + dx, y: y }, { x: x, y: y }]);
178
+ tick.set("points", points);
175
179
  }
176
180
  }
177
181
  _positionBullet(bullet) {
@@ -1 +1 @@
1
- {"version":3,"file":"PieSeries.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/pie/PieSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { PieChart } from \"./PieChart\";\n\nimport { PercentSeries, IPercentSeriesSettings, IPercentSeriesDataItem, IPercentSeriesPrivate } from \"../percent/PercentSeries\";\nimport { Template } from \"../../core/util/Template\";\nimport { Slice } from \"../../core/render/Slice\";\nimport { Tick } from \"../../core/render/Tick\";\nimport { RadialLabel } from \"../../core/render/RadialLabel\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { p100, Percent } from \"../../core/util/Percent\";\nimport type { Bullet } from \"../../core/render/Bullet\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $math from \"../../core/util/Math\";\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IPieSeriesDataItem extends IPercentSeriesDataItem {\n\tslice: Slice;\n\tlabel: RadialLabel;\n}\n\nexport interface IPieSeriesSettings extends IPercentSeriesSettings {\n\n\t/**\n\t * Radius of the series in pixels or percent.\n\t */\n\tradius?: Percent | number;\n\n\t/**\n\t * Radius of the series in pixels or percent.\n\t *\n\t * Setting to negative number will mean pixels from outer radius.\n\t */\n\tinnerRadius?: Percent | number;\n\n\t/**\n\t * Start angle of the series in degrees.\n\t *\n\t * @default -90\n\t */\n\tstartAngle?: number;\n\n\t/**\n\t * End angle of the series in degrees.\n\t *\n\t * @default 270\n\t */\n\tendAngle?: number;\n\n}\n\nexport interface IPieSeriesPrivate extends IPercentSeriesPrivate {\n\n\t/**\n\t * Actual radius of the series in pixels.\n\t */\n\tradius?: number;\n\n}\n\n/**\n * Creates a series for a [[PieChart]].\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/} for more info\n * @important\n */\nexport class PieSeries extends PercentSeries {\n\n\tdeclare public chart: PieChart | undefined;\n\n\tpublic static className: string = \"PieSeries\";\n\tpublic static classNames: Array<string> = PercentSeries.classNames.concat([PieSeries.className]);\n\n\tdeclare public _settings: IPieSeriesSettings;\n\tdeclare public _privateSettings: IPieSeriesPrivate;\n\tdeclare public _dataItemSettings: IPieSeriesDataItem;\n\n\tdeclare public _sliceType: Slice;\n\tdeclare public _labelType: RadialLabel;\n\n\tprotected _makeSlices(): ListTemplate<this[\"_sliceType\"]> {\n\t\treturn new ListTemplate(\n\t\t\tTemplate.new({}),\n\t\t\t() => Slice._new(this._root, {\n\t\t\t\tthemeTags: $utils.mergeTags(this.slices.template.get(\"themeTags\", []), [\"pie\", \"series\"])\n\t\t\t}, [this.slices.template]),\n\t\t);\n\t}\n\n\tprotected _makeLabels(): ListTemplate<this[\"_labelType\"]> {\n\t\treturn new ListTemplate(\n\t\t\tTemplate.new({}),\n\t\t\t() => RadialLabel._new(this._root, {\n\t\t\t\tthemeTags: $utils.mergeTags(this.labels.template.get(\"themeTags\", []), [\"pie\", \"series\"])\n\t\t\t}, [this.labels.template]),\n\t\t);\n\t}\n\n\tprotected _makeTicks(): ListTemplate<this[\"_tickType\"]> {\n\t\treturn new ListTemplate(\n\t\t\tTemplate.new({}),\n\t\t\t() => Tick._new(this._root, {\n\t\t\t\tthemeTags: $utils.mergeTags(this.ticks.template.get(\"themeTags\", []), [\"pie\", \"series\"])\n\t\t\t}, [this.ticks.template]),\n\t\t);\n\t}\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.processDataItem(dataItem);\n\n\t\tconst slice = this.makeSlice(dataItem);\n\n\t\tslice.on(\"scale\", () => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\t\tslice.on(\"shiftRadius\", () => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\t\tslice.events.on(\"positionchanged\", () => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\n\t\tconst label = this.makeLabel(dataItem);\n\n\t\tlabel.events.on(\"positionchanged\", () => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\n\t\tthis.makeTick(dataItem);\n\n\t\tslice.events.on(\"positionchanged\", () => {\n\t\t\tlabel.markDirty();\n\t\t})\n\t}\n\n\tprotected _getNextUp() {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\treturn chart._maxRadius;\n\t\t}\n\t\treturn this.labelsContainer.maxHeight() / 2;\n\t}\n\n\tprotected _getNextDown() {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\treturn -chart._maxRadius;\n\t\t}\n\t\treturn -this.labelsContainer.maxHeight() / 2;\n\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\n\t\t\tif (this.isDirty(\"alignLabels\")) {\n\t\t\t\tlet labelsTemplate = this.labels.template;\n\n\t\t\t\tif (this.get(\"alignLabels\")) {\n\t\t\t\t\tlabelsTemplate.set(\"textType\", \"aligned\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet textType = labelsTemplate.get(\"textType\");\n\t\t\t\t\tif (textType == null || textType == \"aligned\") {\n\t\t\t\t\t\tlabelsTemplate.set(\"textType\", \"adjusted\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tif (this._valuesDirty || this.isDirty(\"radius\") || this.isDirty(\"innerRadius\") || this.isDirty(\"startAngle\") || this.isDirty(\"endAngle\") || this.isDirty(\"alignLabels\")) {\n\t\t\t\tthis.markDirtyBounds();\n\t\t\t\tconst startAngle = this.get(\"startAngle\", chart.get(\"startAngle\", -90));\n\t\t\t\tconst endAngle = this.get(\"endAngle\", chart.get(\"endAngle\", 270));\n\t\t\t\tconst arc = endAngle - startAngle;\n\t\t\t\tlet currentAngle = startAngle;\n\n\t\t\t\tconst radius = chart.radius(this);\n\t\t\t\tthis.setPrivateRaw(\"radius\", radius);\n\t\t\t\tlet innerRadius = chart.innerRadius(this) * chart.getPrivate(\"irModifyer\", 1);\n\n\t\t\t\tif (innerRadius < 0) {\n\t\t\t\t\tinnerRadius = radius + innerRadius;\n\t\t\t\t}\n\n\t\t\t\t//if (radius > 0) {\n\t\t\t\t$array.each(this._dataItems, (dataItem) => {\n\n\t\t\t\t\tthis.updateLegendValue(dataItem);\n\n\t\t\t\t\tlet currentArc = arc * dataItem.get(\"valuePercentTotal\") / 100;\n\t\t\t\t\tconst slice = dataItem.get(\"slice\");\n\t\t\t\t\tif (slice) {\n\t\t\t\t\t\tslice.set(\"radius\", radius);\n\t\t\t\t\t\tslice.set(\"innerRadius\", innerRadius);\n\t\t\t\t\t\tslice.set(\"startAngle\", currentAngle);\n\n\t\t\t\t\t\tslice.set(\"arc\", currentArc);\n\n\t\t\t\t\t\tconst color = dataItem.get(\"fill\");\n\t\t\t\t\t\tslice._setDefault(\"fill\", color);\n\t\t\t\t\t\tslice._setDefault(\"stroke\", color);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet middleAngle = $math.normalizeAngle(currentAngle + currentArc / 2);\n\n\t\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\t\tif (label) {\n\t\t\t\t\t\tlabel.setPrivate(\"radius\", radius);\n\t\t\t\t\t\tlabel.setPrivate(\"innerRadius\", innerRadius);\n\t\t\t\t\t\tlabel.set(\"labelAngle\", middleAngle);\n\n\t\t\t\t\t\tif (label.get(\"textType\") == \"aligned\") {\n\t\t\t\t\t\t\tlet labelRadius = radius + label.get(\"radius\", 0);\n\t\t\t\t\t\t\tlet y = radius * $math.sin(middleAngle);\n\n\t\t\t\t\t\t\tif (middleAngle > 90 && middleAngle <= 270) {\n\t\t\t\t\t\t\t\tif (!label.isHidden() && !label.isHiding()) {\n\t\t\t\t\t\t\t\t\tthis._lLabels.push({ label: label, y: y });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabelRadius *= -1;\n\t\t\t\t\t\t\t\tlabelRadius -= this.labelsContainer.get(\"paddingLeft\", 0);\n\t\t\t\t\t\t\t\tlabel.set(\"centerX\", p100);\n\t\t\t\t\t\t\t\tlabel.setPrivateRaw(\"left\", true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (!label.isHidden() && !label.isHiding()) {\n\t\t\t\t\t\t\t\t\tthis._rLabels.push({ label: label, y: y });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabelRadius += this.labelsContainer.get(\"paddingRight\", 0);\n\t\t\t\t\t\t\t\tlabel.set(\"centerX\", 0);\n\t\t\t\t\t\t\t\tlabel.setPrivateRaw(\"left\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel.set(\"x\", labelRadius);\n\t\t\t\t\t\t\tlabel.set(\"y\", radius * $math.sin(middleAngle));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcurrentAngle += currentArc;\n\t\t\t\t\tthis._updateTick(dataItem);\n\t\t\t\t})\n\t\t\t\t//}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _updateTick(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tconst label = dataItem.get(\"label\");\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tconst location = tick.get(\"location\", 1);\n\t\tif (tick && label && slice) {\n\t\t\tconst radius = (slice.get(\"shiftRadius\", 0) + slice.get(\"radius\", 0)) * slice.get(\"scale\", 1) * location;\n\t\t\tconst labelAngle = label.get(\"labelAngle\", 0);\n\t\t\tconst cos = $math.cos(labelAngle);\n\t\t\tconst sin = $math.sin(labelAngle);\n\n\t\t\tconst labelsContainer = this.labelsContainer;\n\t\t\tconst pl = labelsContainer.get(\"paddingLeft\", 0);\n\t\t\tconst pr = labelsContainer.get(\"paddingRight\", 0);\n\n\t\t\tlet x = 0;\n\t\t\tlet y = 0;\n\n\t\t\tx = label.x();\n\t\t\ty = label.y();\n\n\t\t\tif (label.get(\"textType\") == \"circular\") {\n\t\t\t\tconst labelRadius = label.radius() - label.get(\"paddingBottom\", 0);\n\t\t\t\tconst labelAngle = label.get(\"labelAngle\", 0);\n\t\t\t\tx = labelRadius * $math.cos(labelAngle);\n\t\t\t\ty = labelRadius * $math.sin(labelAngle);\n\t\t\t}\n\n\t\t\tlet dx = -pr;\n\t\t\tif (label.getPrivate(\"left\")) {\n\t\t\t\tdx = pl;\n\t\t\t}\n\n\t\t\ttick.set(\"points\", [{ x: slice.x() + radius * cos, y: slice.y() + radius * sin }, { x: x + dx, y: y }, { x: x, y: y }]);\n\t\t}\n\t}\n\n\tpublic _positionBullet(bullet: Bullet) {\n\n\t\tconst sprite = bullet.get(\"sprite\");\n\t\tif (sprite) {\n\t\t\tconst dataItem = sprite.dataItem as DataItem<this[\"_dataItemSettings\"]>;\n\t\t\tconst slice = dataItem.get(\"slice\");\n\n\t\t\tif (slice) {\n\t\t\t\tconst innerRadius = slice.get(\"innerRadius\", 0);\n\t\t\t\tconst radius = slice.get(\"radius\", 0);\n\t\t\t\tconst startAngle = slice.get(\"startAngle\", 0);\n\t\t\t\tconst arc = slice.get(\"arc\", 0);\n\t\t\t\tconst locationX = bullet.get(\"locationX\", 0.5);\n\t\t\t\tconst locationY = bullet.get(\"locationY\", 0.5);\n\n\t\t\t\tconst angle = startAngle + arc * locationX;\n\t\t\t\tconst r = innerRadius + (radius - innerRadius) * locationY;\n\n\t\t\t\tsprite.setAll({ x: $math.cos(angle) * r, y: $math.sin(angle) * r });\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"PieSeries.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/pie/PieSeries.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { PieChart } from \"./PieChart\";\n\nimport { PercentSeries, IPercentSeriesSettings, IPercentSeriesDataItem, IPercentSeriesPrivate } from \"../percent/PercentSeries\";\nimport { Template } from \"../../core/util/Template\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport { Slice } from \"../../core/render/Slice\";\nimport { Tick } from \"../../core/render/Tick\";\nimport { RadialLabel } from \"../../core/render/RadialLabel\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { p100, Percent } from \"../../core/util/Percent\";\nimport type { Bullet } from \"../../core/render/Bullet\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $math from \"../../core/util/Math\";\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IPieSeriesDataItem extends IPercentSeriesDataItem {\n\tslice: Slice;\n\tlabel: RadialLabel;\n}\n\nexport interface IPieSeriesSettings extends IPercentSeriesSettings {\n\n\t/**\n\t * Radius of the series in pixels or percent.\n\t */\n\tradius?: Percent | number;\n\n\t/**\n\t * Radius of the series in pixels or percent.\n\t *\n\t * Setting to negative number will mean pixels from outer radius.\n\t */\n\tinnerRadius?: Percent | number;\n\n\t/**\n\t * Start angle of the series in degrees.\n\t *\n\t * @default -90\n\t */\n\tstartAngle?: number;\n\n\t/**\n\t * End angle of the series in degrees.\n\t *\n\t * @default 270\n\t */\n\tendAngle?: number;\n\n}\n\nexport interface IPieSeriesPrivate extends IPercentSeriesPrivate {\n\n\t/**\n\t * Actual radius of the series in pixels.\n\t */\n\tradius?: number;\n\n}\n\n/**\n * Creates a series for a [[PieChart]].\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/} for more info\n * @important\n */\nexport class PieSeries extends PercentSeries {\n\n\tdeclare public chart: PieChart | undefined;\n\n\tpublic static className: string = \"PieSeries\";\n\tpublic static classNames: Array<string> = PercentSeries.classNames.concat([PieSeries.className]);\n\n\tdeclare public _settings: IPieSeriesSettings;\n\tdeclare public _privateSettings: IPieSeriesPrivate;\n\tdeclare public _dataItemSettings: IPieSeriesDataItem;\n\n\tdeclare public _sliceType: Slice;\n\tdeclare public _labelType: RadialLabel;\n\n\tprotected _makeSlices(): ListTemplate<this[\"_sliceType\"]> {\n\t\treturn new ListTemplate(\n\t\t\tTemplate.new({}),\n\t\t\t() => Slice._new(this._root, {\n\t\t\t\tthemeTags: $utils.mergeTags(this.slices.template.get(\"themeTags\", []), [\"pie\", \"series\"])\n\t\t\t}, [this.slices.template]),\n\t\t);\n\t}\n\n\tprotected _makeLabels(): ListTemplate<this[\"_labelType\"]> {\n\t\treturn new ListTemplate(\n\t\t\tTemplate.new({}),\n\t\t\t() => RadialLabel._new(this._root, {\n\t\t\t\tthemeTags: $utils.mergeTags(this.labels.template.get(\"themeTags\", []), [\"pie\", \"series\"])\n\t\t\t}, [this.labels.template]),\n\t\t);\n\t}\n\n\tprotected _makeTicks(): ListTemplate<this[\"_tickType\"]> {\n\t\treturn new ListTemplate(\n\t\t\tTemplate.new({}),\n\t\t\t() => Tick._new(this._root, {\n\t\t\t\tthemeTags: $utils.mergeTags(this.ticks.template.get(\"themeTags\", []), [\"pie\", \"series\"])\n\t\t\t}, [this.ticks.template]),\n\t\t);\n\t}\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.processDataItem(dataItem);\n\n\t\tconst slice = this.makeSlice(dataItem);\n\n\t\tslice.on(\"scale\", () => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\t\tslice.on(\"shiftRadius\", () => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\t\tslice.events.on(\"positionchanged\", () => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\n\t\tconst label = this.makeLabel(dataItem);\n\n\t\tlabel.events.on(\"positionchanged\", () => {\n\t\t\tthis._updateTick(dataItem);\n\t\t})\n\n\t\tthis.makeTick(dataItem);\n\n\t\tslice.events.on(\"positionchanged\", () => {\n\t\t\tlabel.markDirty();\n\t\t})\n\t}\n\n\tprotected _getNextUp() {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\treturn chart._maxRadius;\n\t\t}\n\t\treturn this.labelsContainer.maxHeight() / 2;\n\t}\n\n\tprotected _getNextDown() {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\treturn -chart._maxRadius;\n\t\t}\n\t\treturn -this.labelsContainer.maxHeight() / 2;\n\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\n\t\t\tif (this.isDirty(\"alignLabels\")) {\n\t\t\t\tlet labelsTemplate = this.labels.template;\n\n\t\t\t\tif (this.get(\"alignLabels\")) {\n\t\t\t\t\tlabelsTemplate.set(\"textType\", \"aligned\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet textType = labelsTemplate.get(\"textType\");\n\t\t\t\t\tif (textType == null || textType == \"aligned\") {\n\t\t\t\t\t\tlabelsTemplate.set(\"textType\", \"adjusted\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tif (this._valuesDirty || this.isDirty(\"radius\") || this.isDirty(\"innerRadius\") || this.isDirty(\"startAngle\") || this.isDirty(\"endAngle\") || this.isDirty(\"alignLabels\")) {\n\t\t\t\tthis.markDirtyBounds();\n\t\t\t\tconst startAngle = this.get(\"startAngle\", chart.get(\"startAngle\", -90));\n\t\t\t\tconst endAngle = this.get(\"endAngle\", chart.get(\"endAngle\", 270));\n\t\t\t\tconst arc = endAngle - startAngle;\n\t\t\t\tlet currentAngle = startAngle;\n\n\t\t\t\tconst radius = chart.radius(this);\n\t\t\t\tthis.setPrivateRaw(\"radius\", radius);\n\t\t\t\tlet innerRadius = chart.innerRadius(this) * chart.getPrivate(\"irModifyer\", 1);\n\n\t\t\t\tif (innerRadius < 0) {\n\t\t\t\t\tinnerRadius = radius + innerRadius;\n\t\t\t\t}\n\n\t\t\t\t//if (radius > 0) {\n\t\t\t\t$array.each(this._dataItems, (dataItem) => {\n\n\t\t\t\t\tthis.updateLegendValue(dataItem);\n\n\t\t\t\t\tlet currentArc = arc * dataItem.get(\"valuePercentTotal\") / 100;\n\t\t\t\t\tconst slice = dataItem.get(\"slice\");\n\t\t\t\t\tif (slice) {\n\t\t\t\t\t\tslice.set(\"radius\", radius);\n\t\t\t\t\t\tslice.set(\"innerRadius\", innerRadius);\n\t\t\t\t\t\tslice.set(\"startAngle\", currentAngle);\n\n\t\t\t\t\t\tslice.set(\"arc\", currentArc);\n\n\t\t\t\t\t\tconst color = dataItem.get(\"fill\");\n\t\t\t\t\t\tslice._setDefault(\"fill\", color);\n\t\t\t\t\t\tslice._setDefault(\"stroke\", color);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet middleAngle = $math.normalizeAngle(currentAngle + currentArc / 2);\n\n\t\t\t\t\tconst label = dataItem.get(\"label\");\n\t\t\t\t\tif (label) {\n\t\t\t\t\t\tlabel.setPrivate(\"radius\", radius);\n\t\t\t\t\t\tlabel.setPrivate(\"innerRadius\", innerRadius);\n\t\t\t\t\t\tlabel.set(\"labelAngle\", middleAngle);\n\n\t\t\t\t\t\tif (label.get(\"textType\") == \"aligned\") {\n\t\t\t\t\t\t\tlet labelRadius = radius + label.get(\"radius\", 0);\n\t\t\t\t\t\t\tlet y = radius * $math.sin(middleAngle);\n\n\t\t\t\t\t\t\tif (middleAngle > 90 && middleAngle <= 270) {\n\t\t\t\t\t\t\t\tif (!label.isHidden() && !label.isHiding()) {\n\t\t\t\t\t\t\t\t\tthis._lLabels.push({ label: label, y: y });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabelRadius *= -1;\n\t\t\t\t\t\t\t\tlabelRadius -= this.labelsContainer.get(\"paddingLeft\", 0);\n\t\t\t\t\t\t\t\tlabel.set(\"centerX\", p100);\n\t\t\t\t\t\t\t\tlabel.setPrivateRaw(\"left\", true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (!label.isHidden() && !label.isHiding()) {\n\t\t\t\t\t\t\t\t\tthis._rLabels.push({ label: label, y: y });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabelRadius += this.labelsContainer.get(\"paddingRight\", 0);\n\t\t\t\t\t\t\t\tlabel.set(\"centerX\", 0);\n\t\t\t\t\t\t\t\tlabel.setPrivateRaw(\"left\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel.set(\"x\", labelRadius);\n\t\t\t\t\t\t\tlabel.set(\"y\", radius * $math.sin(middleAngle));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcurrentAngle += currentArc;\n\t\t\t\t\tthis._updateTick(dataItem);\n\t\t\t\t})\n\t\t\t\t//}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _updateTick(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst tick = dataItem.get(\"tick\");\n\t\tconst label = dataItem.get(\"label\");\n\t\tconst slice = dataItem.get(\"slice\");\n\t\tconst location = tick.get(\"location\", 1);\n\t\tif (tick && label && slice) {\n\t\t\tconst radius = (slice.get(\"shiftRadius\", 0) + slice.get(\"radius\", 0)) * slice.get(\"scale\", 1) * location;\n\t\t\tconst labelAngle = label.get(\"labelAngle\", 0);\n\t\t\tconst cos = $math.cos(labelAngle);\n\t\t\tconst sin = $math.sin(labelAngle);\n\n\t\t\tconst labelsContainer = this.labelsContainer;\n\t\t\tconst pl = labelsContainer.get(\"paddingLeft\", 0);\n\t\t\tconst pr = labelsContainer.get(\"paddingRight\", 0);\n\n\t\t\tlet x = 0;\n\t\t\tlet y = 0;\n\n\t\t\tx = label.x();\n\t\t\ty = label.y();\n\t\t\tlet points:Array<IPoint> = [];\n\n\t\t\tif(x != 0 && y != 0){\n\t\t\t\tif (label.get(\"textType\") == \"circular\") {\n\t\t\t\t\tconst labelRadius = label.radius() - label.get(\"paddingBottom\", 0);\n\t\t\t\t\tconst labelAngle = label.get(\"labelAngle\", 0);\n\t\t\t\t\tx = labelRadius * $math.cos(labelAngle);\n\t\t\t\t\ty = labelRadius * $math.sin(labelAngle);\n\t\t\t\t}\n\n\t\t\t\tlet dx = -pr;\n\t\t\t\tif (label.getPrivate(\"left\")) {\n\t\t\t\t\tdx = pl;\n\t\t\t\t}\n\t\t\t\tpoints = [{ x: slice.x() + radius * cos, y: slice.y() + radius * sin }, { x: x + dx, y: y }, { x: x, y: y }];\t\t\t\t\n\t\t\t}\n\n\t\t\ttick.set(\"points\", points);\n\t\t}\n\t}\n\n\tpublic _positionBullet(bullet: Bullet) {\n\n\t\tconst sprite = bullet.get(\"sprite\");\n\t\tif (sprite) {\n\t\t\tconst dataItem = sprite.dataItem as DataItem<this[\"_dataItemSettings\"]>;\n\t\t\tconst slice = dataItem.get(\"slice\");\n\n\t\t\tif (slice) {\n\t\t\t\tconst innerRadius = slice.get(\"innerRadius\", 0);\n\t\t\t\tconst radius = slice.get(\"radius\", 0);\n\t\t\t\tconst startAngle = slice.get(\"startAngle\", 0);\n\t\t\t\tconst arc = slice.get(\"arc\", 0);\n\t\t\t\tconst locationX = bullet.get(\"locationX\", 0.5);\n\t\t\t\tconst locationY = bullet.get(\"locationY\", 0.5);\n\n\t\t\t\tconst angle = startAngle + arc * locationX;\n\t\t\t\tconst r = innerRadius + (radius - innerRadius) * locationY;\n\n\t\t\t\tsprite.setAll({ x: $math.cos(angle) * r, y: $math.sin(angle) * r });\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StockChart.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/StockChart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StockChart.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/stock/StockChart.ts"],"names":[],"mappings":"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"}
@@ -240,16 +240,24 @@ export class StockChart extends Container {
240
240
  const stockSeries = this.get("stockSeries");
241
241
  if (this.isDirty("stockSeries")) {
242
242
  if (stockSeries) {
243
+ const previous = this._prevSettings.stockSeries;
243
244
  this.indicators.each((indicator) => {
244
- indicator._setSoft("stockSeries", stockSeries);
245
+ if (previous == indicator.get("stockSeries")) {
246
+ indicator.set("stockSeries", stockSeries);
247
+ }
248
+ else {
249
+ indicator._setSoft("stockSeries", stockSeries);
250
+ }
245
251
  });
246
252
  const mainChart = stockSeries.chart;
247
253
  if (mainChart) {
248
- const previous = this._prevSettings.stockSeries;
249
254
  mainChart.series.each((series) => {
250
255
  if (series.isType("DrawingSeries")) {
251
256
  let s = series.get("series");
252
257
  if (s == previous) {
258
+ series.set("series", stockSeries);
259
+ }
260
+ else {
253
261
  series._setSoft("series", stockSeries);
254
262
  }
255
263
  }
@@ -417,9 +425,14 @@ export class StockChart extends Container {
417
425
  $array.each(seriesList, (series) => {
418
426
  if (percentScale) {
419
427
  series.setAll(seriesSettings);
428
+ series.states.lookup("default").setAll(seriesSettings);
420
429
  }
421
430
  else {
422
431
  series.states.apply("comparingDefaults");
432
+ const seriesDefaults = series.states.lookup("comparingDefaults");
433
+ if (seriesDefaults) {
434
+ series.states.lookup("default").setAll(seriesDefaults._settings);
435
+ }
423
436
  }
424
437
  });
425
438
  }