@amcharts/amcharts5 5.3.16 → 5.4.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 (295) hide show
  1. package/.internal/charts/flow/ArcDiagram.d.ts +86 -0
  2. package/.internal/charts/flow/ArcDiagram.d.ts.map +1 -0
  3. package/.internal/charts/flow/ArcDiagram.js +161 -0
  4. package/.internal/charts/flow/ArcDiagram.js.map +1 -0
  5. package/.internal/charts/flow/ArcDiagramLink.d.ts +40 -0
  6. package/.internal/charts/flow/ArcDiagramLink.d.ts.map +1 -0
  7. package/.internal/charts/flow/ArcDiagramLink.js +130 -0
  8. package/.internal/charts/flow/ArcDiagramLink.js.map +1 -0
  9. package/.internal/charts/flow/ArcDiagramNodes.d.ts +60 -0
  10. package/.internal/charts/flow/ArcDiagramNodes.d.ts.map +1 -0
  11. package/.internal/charts/flow/ArcDiagramNodes.js +96 -0
  12. package/.internal/charts/flow/ArcDiagramNodes.js.map +1 -0
  13. package/.internal/charts/flow/Chord.d.ts +0 -9
  14. package/.internal/charts/flow/Chord.d.ts.map +1 -1
  15. package/.internal/charts/flow/Chord.js +0 -10
  16. package/.internal/charts/flow/Chord.js.map +1 -1
  17. package/.internal/charts/flow/ChordNodes.d.ts +9 -0
  18. package/.internal/charts/flow/ChordNodes.d.ts.map +1 -1
  19. package/.internal/charts/flow/ChordNodes.js +23 -2
  20. package/.internal/charts/flow/ChordNodes.js.map +1 -1
  21. package/.internal/charts/flow/Flow.js +1 -0
  22. package/.internal/charts/flow/Flow.js.map +1 -1
  23. package/.internal/charts/flow/FlowDefaultTheme.d.ts.map +1 -1
  24. package/.internal/charts/flow/FlowDefaultTheme.js +51 -0
  25. package/.internal/charts/flow/FlowDefaultTheme.js.map +1 -1
  26. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  27. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  28. package/.internal/charts/hierarchy/HierarchyDefaultTheme.d.ts.map +1 -1
  29. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +45 -0
  30. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
  31. package/.internal/charts/hierarchy/Partition.d.ts +1 -1
  32. package/.internal/charts/hierarchy/Partition.js +1 -1
  33. package/.internal/charts/hierarchy/Partition.js.map +1 -1
  34. package/.internal/charts/hierarchy/VoronoiTreemap.d.ts +117 -0
  35. package/.internal/charts/hierarchy/VoronoiTreemap.d.ts.map +1 -0
  36. package/.internal/charts/hierarchy/VoronoiTreemap.js +176 -0
  37. package/.internal/charts/hierarchy/VoronoiTreemap.js.map +1 -0
  38. package/.internal/charts/stock/toolbar/DateRangeSelector.d.ts.map +1 -1
  39. package/.internal/charts/stock/toolbar/DateRangeSelector.js +8 -2
  40. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  41. package/.internal/charts/xy/XYChart.js +2 -2
  42. package/.internal/charts/xy/XYChart.js.map +1 -1
  43. package/.internal/charts/xy/axes/Axis.d.ts +4 -3
  44. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  45. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  46. package/.internal/charts/xy/axes/AxisBullet.d.ts +1 -0
  47. package/.internal/charts/xy/axes/AxisBullet.d.ts.map +1 -1
  48. package/.internal/charts/xy/axes/AxisBullet.js +12 -0
  49. package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
  50. package/.internal/charts/xy/axes/CategoryAxis.d.ts +1 -1
  51. package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
  52. package/.internal/charts/xy/axes/CategoryAxis.js +1 -1
  53. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  54. package/.internal/charts/xy/axes/CategoryDateAxis.d.ts +1 -1
  55. package/.internal/charts/xy/axes/CategoryDateAxis.d.ts.map +1 -1
  56. package/.internal/charts/xy/axes/CategoryDateAxis.js +1 -1
  57. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  58. package/.internal/charts/xy/axes/DateAxis.d.ts +10 -5
  59. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  60. package/.internal/charts/xy/axes/DateAxis.js +11 -4
  61. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  62. package/.internal/charts/xy/axes/DurationAxis.d.ts +1 -1
  63. package/.internal/charts/xy/axes/DurationAxis.d.ts.map +1 -1
  64. package/.internal/charts/xy/axes/DurationAxis.js +1 -1
  65. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  66. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  67. package/.internal/charts/xy/axes/ValueAxis.d.ts +1 -1
  68. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  69. package/.internal/charts/xy/axes/ValueAxis.js +1 -1
  70. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  71. package/.internal/core/Classes.d.ts +10 -0
  72. package/.internal/core/Classes.d.ts.map +1 -1
  73. package/.internal/core/Classes.js.map +1 -1
  74. package/.internal/core/Registry.d.ts.map +1 -1
  75. package/.internal/core/Registry.js +1 -1
  76. package/.internal/core/Registry.js.map +1 -1
  77. package/.internal/core/Root.d.ts +25 -0
  78. package/.internal/core/Root.d.ts.map +1 -1
  79. package/.internal/core/Root.js +11 -1
  80. package/.internal/core/Root.js.map +1 -1
  81. package/.internal/core/render/Label.d.ts +2 -0
  82. package/.internal/core/render/Label.d.ts.map +1 -1
  83. package/.internal/core/render/Label.js.map +1 -1
  84. package/.internal/core/render/Polygon.d.ts +52 -0
  85. package/.internal/core/render/Polygon.d.ts.map +1 -0
  86. package/.internal/core/render/Polygon.js +133 -0
  87. package/.internal/core/render/Polygon.js.map +1 -0
  88. package/.internal/core/render/Sprite.d.ts.map +1 -1
  89. package/.internal/core/render/Sprite.js +7 -2
  90. package/.internal/core/render/Sprite.js.map +1 -1
  91. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  92. package/.internal/core/render/backend/CanvasRenderer.js +2 -1
  93. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  94. package/.internal/core/util/Entity.js.map +1 -1
  95. package/.internal/plugins/exporting/ExportingMenu.d.ts.map +1 -1
  96. package/.internal/plugins/exporting/ExportingMenu.js +11 -6
  97. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  98. package/.internal/plugins/json/Json.d.ts.map +1 -1
  99. package/.internal/plugins/json/Json.js +37 -21
  100. package/.internal/plugins/json/Json.js.map +1 -1
  101. package/.internal/themes/AnimatedTheme.d.ts.map +1 -1
  102. package/.internal/themes/AnimatedTheme.js +2 -0
  103. package/.internal/themes/AnimatedTheme.js.map +1 -1
  104. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  105. package/.internal/themes/DefaultTheme.js +3 -0
  106. package/.internal/themes/DefaultTheme.js.map +1 -1
  107. package/CHANGELOG.md +31 -0
  108. package/examples/javascript/flow-arc-horizontal/README.md +6 -0
  109. package/examples/javascript/flow-arc-horizontal/index.css +11 -0
  110. package/examples/javascript/flow-arc-horizontal/index.html +12 -0
  111. package/examples/javascript/flow-arc-horizontal/index.js +116 -0
  112. package/examples/javascript/flow-arc-horizontal/package.json +16 -0
  113. package/examples/javascript/flow-arc-horizontal/webpack.config.js +38 -0
  114. package/examples/javascript/flow-arc-vertical/README.md +6 -0
  115. package/examples/javascript/flow-arc-vertical/index.css +11 -0
  116. package/examples/javascript/flow-arc-vertical/index.html +12 -0
  117. package/examples/javascript/flow-arc-vertical/index.js +91 -0
  118. package/examples/javascript/flow-arc-vertical/package.json +16 -0
  119. package/examples/javascript/flow-arc-vertical/webpack.config.js +38 -0
  120. package/examples/javascript/flow-chord/package.json +1 -1
  121. package/examples/javascript/flow-chord-directed/package.json +1 -1
  122. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  123. package/examples/javascript/flow-sankey/package.json +1 -1
  124. package/examples/javascript/gauge/package.json +1 -1
  125. package/examples/javascript/gauge-bands/package.json +1 -1
  126. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  127. package/examples/javascript/hierarchy-pack/package.json +1 -1
  128. package/examples/javascript/hierarchy-partition/package.json +1 -1
  129. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  130. package/examples/javascript/hierarchy-tree/package.json +1 -1
  131. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  132. package/examples/javascript/hierarchy-voronoi-treemap/README.md +6 -0
  133. package/examples/javascript/hierarchy-voronoi-treemap/index.css +11 -0
  134. package/examples/javascript/hierarchy-voronoi-treemap/index.html +12 -0
  135. package/examples/javascript/hierarchy-voronoi-treemap/index.js +1298 -0
  136. package/examples/javascript/hierarchy-voronoi-treemap/package.json +16 -0
  137. package/examples/javascript/hierarchy-voronoi-treemap/webpack.config.js +38 -0
  138. package/examples/javascript/jest/package.json +1 -1
  139. package/examples/javascript/json-pie/package.json +1 -1
  140. package/examples/javascript/json-xy/index.js +11 -0
  141. package/examples/javascript/json-xy/package.json +1 -1
  142. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  143. package/examples/javascript/map-day-and-night/package.json +1 -1
  144. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  145. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  146. package/examples/javascript/map-with-bubbles/package.json +1 -1
  147. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  148. package/examples/javascript/misc-40-charts/package.json +1 -1
  149. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  150. package/examples/javascript/pie-chart/package.json +1 -1
  151. package/examples/javascript/pie-donut-chart/package.json +1 -1
  152. package/examples/javascript/pie-variable-radius/package.json +1 -1
  153. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  154. package/examples/javascript/radar-heat-map/package.json +1 -1
  155. package/examples/javascript/radar-line/package.json +1 -1
  156. package/examples/javascript/radar-time-line/package.json +1 -1
  157. package/examples/javascript/sliced-funnel/package.json +1 -1
  158. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  159. package/examples/javascript/sliced-pyramid/package.json +1 -1
  160. package/examples/javascript/stock-chart/package.json +1 -1
  161. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  162. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  163. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  164. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  165. package/examples/javascript/stock-chart-live/package.json +1 -1
  166. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  167. package/examples/javascript/venn-diagram/package.json +1 -1
  168. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  169. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  170. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -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/package.json +1 -1
  174. package/examples/javascript/xy-clustered-column/package.json +1 -1
  175. package/examples/javascript/xy-column/package.json +1 -1
  176. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  177. package/examples/javascript/xy-data-grouping/package.json +1 -1
  178. package/examples/javascript/xy-draggable-range/package.json +1 -1
  179. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  180. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  181. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  182. package/examples/javascript/xy-line/package.json +1 -1
  183. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  184. package/examples/javascript/xy-live-data/package.json +1 -1
  185. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  186. package/examples/javascript/xy-ohlc/package.json +1 -1
  187. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  188. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  189. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  190. package/examples/javascript/xy-stacked-column/package.json +1 -1
  191. package/examples/javascript/xy-stacked-step/package.json +1 -1
  192. package/examples/javascript/xy-stock/package.json +1 -1
  193. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  194. package/examples/typescript/flow-arc-horizontal/README.md +6 -0
  195. package/examples/typescript/flow-arc-horizontal/index.css +11 -0
  196. package/examples/typescript/flow-arc-horizontal/index.html +12 -0
  197. package/examples/typescript/flow-arc-horizontal/index.ts +116 -0
  198. package/examples/typescript/flow-arc-horizontal/package.json +18 -0
  199. package/examples/typescript/flow-arc-horizontal/tsconfig.json +12 -0
  200. package/examples/typescript/flow-arc-horizontal/webpack.config.js +45 -0
  201. package/examples/typescript/flow-arc-vertical/README.md +6 -0
  202. package/examples/typescript/flow-arc-vertical/index.css +11 -0
  203. package/examples/typescript/flow-arc-vertical/index.html +12 -0
  204. package/examples/typescript/flow-arc-vertical/index.ts +91 -0
  205. package/examples/typescript/flow-arc-vertical/package.json +18 -0
  206. package/examples/typescript/flow-arc-vertical/tsconfig.json +12 -0
  207. package/examples/typescript/flow-arc-vertical/webpack.config.js +45 -0
  208. package/examples/typescript/flow-chord/package.json +1 -1
  209. package/examples/typescript/flow-chord-directed/package.json +1 -1
  210. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  211. package/examples/typescript/flow-sankey/package.json +1 -1
  212. package/examples/typescript/gauge/package.json +1 -1
  213. package/examples/typescript/gauge-bands/package.json +1 -1
  214. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  215. package/examples/typescript/hierarchy-pack/package.json +1 -1
  216. package/examples/typescript/hierarchy-partition/package.json +1 -1
  217. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  218. package/examples/typescript/hierarchy-tree/package.json +1 -1
  219. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  220. package/examples/typescript/hierarchy-voronoi-treemap/README.md +6 -0
  221. package/examples/typescript/hierarchy-voronoi-treemap/index.css +11 -0
  222. package/examples/typescript/hierarchy-voronoi-treemap/index.html +12 -0
  223. package/examples/typescript/hierarchy-voronoi-treemap/index.ts +1298 -0
  224. package/examples/typescript/hierarchy-voronoi-treemap/package.json +18 -0
  225. package/examples/typescript/hierarchy-voronoi-treemap/tsconfig.json +12 -0
  226. package/examples/typescript/hierarchy-voronoi-treemap/webpack.config.js +45 -0
  227. package/examples/typescript/jest/package.json +1 -1
  228. package/examples/typescript/json-pie/package.json +1 -1
  229. package/examples/typescript/json-xy/index.ts +11 -0
  230. package/examples/typescript/json-xy/package.json +1 -1
  231. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  232. package/examples/typescript/map-day-and-night/package.json +1 -1
  233. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  234. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  235. package/examples/typescript/map-with-bubbles/package.json +1 -1
  236. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  237. package/examples/typescript/misc-40-charts/package.json +1 -1
  238. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  239. package/examples/typescript/pie-chart/package.json +1 -1
  240. package/examples/typescript/pie-donut-chart/package.json +1 -1
  241. package/examples/typescript/pie-variable-radius/package.json +1 -1
  242. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  243. package/examples/typescript/radar-heat-map/package.json +1 -1
  244. package/examples/typescript/radar-line/package.json +1 -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/package.json +1 -1
  250. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  251. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  252. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  253. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  254. package/examples/typescript/stock-chart-live/package.json +1 -1
  255. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  256. package/examples/typescript/venn-diagram/package.json +1 -1
  257. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  258. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  259. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  260. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  261. package/examples/typescript/xy-bubble/package.json +1 -1
  262. package/examples/typescript/xy-candlestick/package.json +1 -1
  263. package/examples/typescript/xy-clustered-column/package.json +1 -1
  264. package/examples/typescript/xy-column/package.json +1 -1
  265. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  266. package/examples/typescript/xy-data-grouping/package.json +1 -1
  267. package/examples/typescript/xy-draggable-range/package.json +1 -1
  268. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  269. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  270. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  271. package/examples/typescript/xy-line/package.json +1 -1
  272. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  273. package/examples/typescript/xy-live-data/package.json +1 -1
  274. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  275. package/examples/typescript/xy-ohlc/package.json +1 -1
  276. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  277. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  278. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  279. package/examples/typescript/xy-stacked-column/package.json +1 -1
  280. package/examples/typescript/xy-stacked-step/package.json +1 -1
  281. package/examples/typescript/xy-stock/package.json +1 -1
  282. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  283. package/flow.d.ts +3 -0
  284. package/flow.d.ts.map +1 -1
  285. package/flow.js +3 -0
  286. package/flow.js.map +1 -1
  287. package/hierarchy.d.ts +1 -0
  288. package/hierarchy.d.ts.map +1 -1
  289. package/hierarchy.js +1 -0
  290. package/hierarchy.js.map +1 -1
  291. package/index.d.ts +1 -0
  292. package/index.d.ts.map +1 -1
  293. package/index.js +1 -0
  294. package/index.js.map +1 -1
  295. package/package.json +4 -2
@@ -0,0 +1,117 @@
1
+ import type { HierarchyNode } from "../hierarchy/HierarchyNode";
2
+ import type { DataItem } from "../../core/render/Component";
3
+ import { Hierarchy, IHierarchyPrivate, IHierarchySettings, IHierarchyDataItem } from "../hierarchy/Hierarchy";
4
+ import { ListTemplate } from "../../core/util/List";
5
+ import { Polygon } from "../../core/render/Polygon";
6
+ export interface IVoronoiTreemapDataObject {
7
+ name?: string;
8
+ value?: number;
9
+ children?: IVoronoiTreemapDataObject[];
10
+ dataItem?: DataItem<IVoronoiTreemapDataItem>;
11
+ }
12
+ export interface IVoronoiTreemapDataItem extends IHierarchyDataItem {
13
+ /**
14
+ * Data items of child nodes.
15
+ */
16
+ children: Array<DataItem<IVoronoiTreemapDataItem>>;
17
+ /**
18
+ * Data it of a parent node.
19
+ */
20
+ parent: DataItem<IVoronoiTreemapDataItem>;
21
+ /**
22
+ * A [[Polygon]] element of a node.
23
+ */
24
+ polygon: Polygon;
25
+ }
26
+ export interface IVoronoiTreemapSettings extends IHierarchySettings {
27
+ /**
28
+ * Type of the diagram's shape.
29
+ *
30
+ * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/voronoi-treemap/#Diagram_type} for more info
31
+ * @default "polygon"
32
+ */
33
+ type?: "rectangle" | "polygon";
34
+ /**
35
+ * Number of corners when type is `"polygon"`.
36
+ *
37
+ * `120` means the polygoon will look like a circle.
38
+ *
39
+ * NOTE: this setting is ignored if `type="rectangle"`.
40
+ *
41
+ * @default 120
42
+ */
43
+ cornerCount?: number;
44
+ /**
45
+ * Minimum weight ratio which allows computing the minimum allowed
46
+ * weight (`= [maximum weight] * minWeightRatio`).
47
+ *
48
+ * Setting very small `minWeigtRatio` might result flickering.
49
+ *
50
+ * NOTE: the nodes that have smaller weight will be scaled up and will not
51
+ * represent their true value correctly.
52
+ *
53
+ * @default 0.005
54
+ */
55
+ minWeightRatio?: number;
56
+ /**
57
+ * The convergence ratio in Voronoi treemaps measures how well the treemap
58
+ * layout represents the hierarchical structure of the underlying data.
59
+ *
60
+ * It is calculated as the ratio of the summed area of the smallest enclosing
61
+ * rectangle for each cell to the total area of the treemap. A lower
62
+ * convergence ratio indicates a better representation of the hierarchy,
63
+ * meaning that the cells are closely packed and the treemap effectively
64
+ * captures the nested relationships between the data elements.
65
+ *
66
+ * @default 0.005
67
+ */
68
+ convergenceRatio?: number;
69
+ /**
70
+ * Maximum allowed number of iterations when computing the layout.
71
+ *
72
+ * Computation is stopped when it number of iterations is reached, even if
73
+ * the `convergenceRatio` is not yet reached.
74
+ *
75
+ * Bigger number means finer results, but slower performance.
76
+ *
77
+ * @default 100
78
+ */
79
+ maxIterationCount?: number;
80
+ }
81
+ export interface IVoronoiTreemapPrivate extends IHierarchyPrivate {
82
+ }
83
+ /**
84
+ * A Weighted Voronoi Treemap series.
85
+ *
86
+ * NOTE: Try to avoid a big number of data items with very big value
87
+ * differences. Better group small items into "Other" item.
88
+ *
89
+ * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/voronoi-treemap/} for more info
90
+ * @since 5.4.0
91
+ */
92
+ export declare class VoronoiTreemap extends Hierarchy {
93
+ _settings: IVoronoiTreemapSettings;
94
+ _privateSettings: IVoronoiTreemapPrivate;
95
+ _dataItemSettings: IVoronoiTreemapDataItem;
96
+ protected _tag: string;
97
+ static className: string;
98
+ static classNames: Array<string>;
99
+ /**
100
+ * A list of node graphics elements in a [[VoronoiTreemap]] chart.
101
+ *
102
+ * @default new ListTemplate<RoundedRectangle>
103
+ */
104
+ readonly polygons: ListTemplate<Polygon>;
105
+ voronoi: any;
106
+ protected _afterNew(): void;
107
+ _prepareChildren(): void;
108
+ protected _updateNode(dataItem: DataItem<this["_dataItemSettings"]>): void;
109
+ protected _handleSingle(dataItem: DataItem<this["_dataItemSettings"]>): void;
110
+ /**
111
+ * @ignore
112
+ */
113
+ makeNode(dataItem: DataItem<this["_dataItemSettings"]>): HierarchyNode;
114
+ protected _makeNode(dataItem: DataItem<this["_dataItemSettings"]>, node: HierarchyNode): void;
115
+ protected getCirclePolygon(radius: number): number[][];
116
+ }
117
+ //# sourceMappingURL=VoronoiTreemap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoronoiTreemap.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/VoronoiTreemap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9G,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAMpD,MAAM,WAAW,yBAAyB;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAA;CAC5C;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IAClE;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEnD;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAE1C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAEjB;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IAElE;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAE9B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAE3B;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;CAChE;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAE7B,SAAS,EAAE,uBAAuB,CAAC;IACnC,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,iBAAiB,EAAE,uBAAuB,CAAC;IAE1D,SAAS,CAAC,IAAI,EAAE,MAAM,CAAoB;IAE1C,OAAc,SAAS,EAAE,MAAM,CAAoB;IACnD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA2D;IAElG;;;;OAIG;IACH,SAAgB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,CAK7C;IAEK,OAAO,MAAoB;IAElC,SAAS,CAAC,SAAS;IAYZ,gBAAgB;IAuCvB,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAgDnE,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAgBrE;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,aAAa;IAM7E,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa;IAOtF,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;CAYzC"}
@@ -0,0 +1,176 @@
1
+ import { voronoiTreemap } from 'd3-voronoi-treemap';
2
+ import seedrandom from "seedrandom";
3
+ import { Hierarchy } from "../hierarchy/Hierarchy";
4
+ import { Template } from "../../core/util/Template";
5
+ import { ListTemplate } from "../../core/util/List";
6
+ import { Polygon } from "../../core/render/Polygon";
7
+ import * as $utils from "../../core/util/Utils";
8
+ import * as $array from "../../core/util/Array";
9
+ import { p50 } from "../../core/util/Percent";
10
+ ;
11
+ /**
12
+ * A Weighted Voronoi Treemap series.
13
+ *
14
+ * NOTE: Try to avoid a big number of data items with very big value
15
+ * differences. Better group small items into "Other" item.
16
+ *
17
+ * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/voronoi-treemap/} for more info
18
+ * @since 5.4.0
19
+ */
20
+ export class VoronoiTreemap extends Hierarchy {
21
+ constructor() {
22
+ super(...arguments);
23
+ Object.defineProperty(this, "_tag", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: "voronoitreemap"
28
+ });
29
+ /**
30
+ * A list of node graphics elements in a [[VoronoiTreemap]] chart.
31
+ *
32
+ * @default new ListTemplate<RoundedRectangle>
33
+ */
34
+ Object.defineProperty(this, "polygons", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: new ListTemplate(Template.new({}), () => Polygon._new(this._root, {
39
+ themeTags: $utils.mergeTags(this.polygons.template.get("themeTags", []), [this._tag, "shape"])
40
+ }, [this.polygons.template]))
41
+ });
42
+ Object.defineProperty(this, "voronoi", {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true,
46
+ value: voronoiTreemap()
47
+ });
48
+ }
49
+ _afterNew() {
50
+ this.nodesContainer.setAll({
51
+ x: p50,
52
+ y: p50,
53
+ centerX: p50,
54
+ centerY: p50
55
+ });
56
+ super._afterNew();
57
+ }
58
+ _prepareChildren() {
59
+ super._prepareChildren();
60
+ const width = this.innerWidth() / 2;
61
+ const height = this.innerHeight() / 2;
62
+ let node = this._rootNode;
63
+ const selectedDataItem = this.get("selectedDataItem");
64
+ if (selectedDataItem) {
65
+ node = selectedDataItem.get("d3HierarchyNode");
66
+ }
67
+ this.voronoi.convergenceRatio((this.get("convergenceRatio", 0.005)));
68
+ this.voronoi.maxIterationCount((this.get("maxIterationCount", 100)));
69
+ this.voronoi.minWeightRatio((this.get("minWeightRatio", 0.005)));
70
+ if (this.isDirty("type")) {
71
+ if (this.get("type") == "polygon") {
72
+ this.voronoi.clip(this.getCirclePolygon(1));
73
+ this._updateVisuals();
74
+ }
75
+ }
76
+ if (this._sizeDirty) {
77
+ if (this.get("type") == "rectangle") {
78
+ this.voronoi.prng(seedrandom("X"));
79
+ this.voronoi.clip([[-width, -height], [-width, height], [width, height], [width, -height]])(node);
80
+ this._updateVisuals();
81
+ }
82
+ }
83
+ if ((this._valuesDirty || this.isDirty("selectedDataItem")) && node) {
84
+ this.voronoi.prng(seedrandom("X"));
85
+ this.voronoi(node);
86
+ this._updateVisuals();
87
+ }
88
+ }
89
+ _updateNode(dataItem) {
90
+ const coords = dataItem.get("d3HierarchyNode").polygon;
91
+ const polygon = dataItem.get("polygon");
92
+ if (coords && polygon) {
93
+ let coordinates = [];
94
+ let d = 1;
95
+ if (this.get("type") == "polygon") {
96
+ d = Math.min(this.innerWidth(), this.innerHeight()) / 2;
97
+ }
98
+ let minX = Infinity;
99
+ let maxX = -Infinity;
100
+ for (let i = 0, len = coords.length; i < len; i++) {
101
+ const point = coords[i];
102
+ let x = point[0] * d;
103
+ let y = point[1] * d;
104
+ coordinates.push([x, y]);
105
+ minX = Math.min(minX, x);
106
+ maxX = Math.max(maxX, x);
107
+ }
108
+ polygon.set("coordinates", coordinates);
109
+ const fill = dataItem.get("fill");
110
+ polygon._setDefault("fill", fill);
111
+ const label = dataItem.get("label");
112
+ if (label) {
113
+ const site = coords.site;
114
+ if (site) {
115
+ label.setAll({
116
+ x: site.x * d,
117
+ y: site.y * d,
118
+ maxWidth: Math.abs(maxX - minX)
119
+ });
120
+ }
121
+ }
122
+ }
123
+ }
124
+ _handleSingle(dataItem) {
125
+ const parent = dataItem.get("parent");
126
+ if (parent) {
127
+ const children = parent.get("children");
128
+ if (children) {
129
+ $array.each(children, (child) => {
130
+ if (child != dataItem) {
131
+ this.disableDataItem(child);
132
+ child.get("node").hide();
133
+ }
134
+ });
135
+ }
136
+ this._handleSingle(parent);
137
+ }
138
+ }
139
+ /**
140
+ * @ignore
141
+ */
142
+ makeNode(dataItem) {
143
+ const node = super.makeNode(dataItem);
144
+ this._makeNode(dataItem, node);
145
+ return node;
146
+ }
147
+ _makeNode(dataItem, node) {
148
+ const polygon = node.children.moveValue(this.polygons.make(), 0);
149
+ node.setPrivate("tooltipTarget", polygon);
150
+ dataItem.setRaw("polygon", polygon);
151
+ polygon._setDataItem(dataItem);
152
+ }
153
+ getCirclePolygon(radius) {
154
+ const points = this.get("cornerCount", 120);
155
+ const dAngle = Math.PI * 2 / points;
156
+ const polygon = [];
157
+ for (let i = 0; i < points; i++) {
158
+ let angle = i * dAngle;
159
+ polygon.push([radius * Math.cos(angle), radius * Math.sin(angle)]);
160
+ }
161
+ return polygon;
162
+ }
163
+ }
164
+ Object.defineProperty(VoronoiTreemap, "className", {
165
+ enumerable: true,
166
+ configurable: true,
167
+ writable: true,
168
+ value: "VoronoiTreemap"
169
+ });
170
+ Object.defineProperty(VoronoiTreemap, "classNames", {
171
+ enumerable: true,
172
+ configurable: true,
173
+ writable: true,
174
+ value: Hierarchy.classNames.concat([VoronoiTreemap.className])
175
+ });
176
+ //# sourceMappingURL=VoronoiTreemap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoronoiTreemap.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/VoronoiTreemap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,UAAU,MAAM,YAAY,CAAC;AAKpC,OAAO,EAAE,SAAS,EAA6D,MAAM,wBAAwB,CAAC;AAC9G,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAQ7C,CAAC;AAqFF;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAA7C;;QAMC;;;;mBAAyB,gBAAgB;WAAC;QAK1C;;;;WAIG;QACH;;;;mBAAkD,IAAI,YAAY,CACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aAC9F,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAC5B;WAAC;QAEF;;;;mBAAiB,cAAc,EAAE;WAAC;IAiJnC,CAAC;IA/IU,SAAS;QAElB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC1B,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,GAAG;SACZ,CAAC,CAAA;QAEF,KAAK,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,gBAAgB;QACtB,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAEtC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAsC,CAAC;QAE3F,IAAI,gBAAgB,EAAE;YACrB,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;SAC9C;QAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE;gBAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;aACtB;SACD;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE;gBACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClG,IAAI,CAAC,cAAc,EAAE,CAAC;aACtB;SACD;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,IAAI,EAAE;YACpE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;SACtB;IACF,CAAC;IAES,WAAW,CAAC,QAA6C;QAClE,MAAM,MAAM,GAAS,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAS,CAAC,OAAO,CAAC;QACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,MAAM,IAAI,OAAO,EAAE;YAEtB,IAAI,WAAW,GAAQ,EAAE,CAAC;YAE1B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE;gBAClC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;aACxD;YAED,IAAI,IAAI,GAAG,QAAQ,CAAC;YACpB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAClD,MAAM,KAAK,GAAkB,MAAM,CAAC,CAAC,CAAQ,CAAC;gBAC9C,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAErB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACzB;YAED,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAExC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAElC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE;gBACV,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBAEzB,IAAI,IAAI,EAAE;oBACT,KAAK,CAAC,MAAM,CAAC;wBACZ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;wBACb,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;wBACb,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;qBAC/B,CAAC,CAAA;iBACF;aACD;SACD;IACF,CAAC;IAGS,aAAa,CAAC,QAA6C;QACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE;YACX,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,QAAQ,EAAE;gBACb,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC/B,IAAI,KAAK,IAAI,QAAQ,EAAE;wBACtB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAC5B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;qBACzB;gBACF,CAAC,CAAC,CAAA;aACF;YACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SAC3B;IACF,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,QAA6C;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;IAES,SAAS,CAAC,QAA6C,EAAE,IAAmB;QACrF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1C,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAES,gBAAgB,CAAC,MAAc;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QACpC,MAAM,OAAO,GAAyB,EAAE,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SAClE;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;;AA/JD;;;;WAAkC,gBAAgB;GAAC;AACnD;;;;WAA0C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import { voronoiTreemap } from 'd3-voronoi-treemap';\r\nimport seedrandom from \"seedrandom\";\r\n\r\nimport type { HierarchyNode } from \"../hierarchy/HierarchyNode\";\r\n\r\nimport type { DataItem } from \"../../core/render/Component\";\r\nimport { Hierarchy, IHierarchyPrivate, IHierarchySettings, IHierarchyDataItem } from \"../hierarchy/Hierarchy\";\r\nimport { Template } from \"../../core/util/Template\";\r\nimport { ListTemplate } from \"../../core/util/List\";\r\nimport { Polygon } from \"../../core/render/Polygon\";\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $array from \"../../core/util/Array\";\r\nimport { p50 } from \"../../core/util/Percent\";\r\n\r\n\r\nexport interface IVoronoiTreemapDataObject {\r\n\tname?: string,\r\n\tvalue?: number,\r\n\tchildren?: IVoronoiTreemapDataObject[],\r\n\tdataItem?: DataItem<IVoronoiTreemapDataItem>\r\n};\r\n\r\nexport interface IVoronoiTreemapDataItem extends IHierarchyDataItem {\r\n\t/**\r\n\t * Data items of child nodes.\r\n\t */\r\n\tchildren: Array<DataItem<IVoronoiTreemapDataItem>>;\r\n\r\n\t/**\r\n\t * Data it of a parent node.\r\n\t */\r\n\tparent: DataItem<IVoronoiTreemapDataItem>;\r\n\r\n\t/**\r\n\t * A [[Polygon]] element of a node.\r\n\t */\r\n\tpolygon: Polygon;\r\n\r\n}\r\n\r\nexport interface IVoronoiTreemapSettings extends IHierarchySettings {\r\n\r\n\t/**\r\n\t * Type of the diagram's shape.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/voronoi-treemap/#Diagram_type} for more info\r\n\t * @default \"polygon\"\r\n\t */\r\n\ttype?: \"rectangle\" | \"polygon\"\r\n\r\n\t/**\r\n\t * Number of corners when type is `\"polygon\"`.\r\n\t * \r\n\t * `120` means the polygoon will look like a circle.\r\n\t *\r\n\t * NOTE: this setting is ignored if `type=\"rectangle\"`.\r\n\t * \r\n\t * @default 120\r\n\t */\r\n\tcornerCount?: number;\r\n\r\n\t/**\r\n\t * Minimum weight ratio which allows computing the minimum allowed\r\n\t * weight (`= [maximum weight] * minWeightRatio`).\r\n\t * \r\n\t * Setting very small `minWeigtRatio` might result flickering.\r\n\t *\r\n\t * NOTE: the nodes that have smaller weight will be scaled up and will not\r\n\t * represent their true value correctly.\r\n\t * \r\n\t * @default 0.005\r\n\t */\r\n\tminWeightRatio?: number;\r\n\r\n\t/**\r\n\t * The convergence ratio in Voronoi treemaps measures how well the treemap\r\n\t * layout represents the hierarchical structure of the underlying data.\r\n\t * \r\n\t * It is calculated as the ratio of the summed area of the smallest enclosing\r\n\t * rectangle for each cell to the total area of the treemap. A lower\r\n\t * convergence ratio indicates a better representation of the hierarchy,\r\n\t * meaning that the cells are closely packed and the treemap effectively\r\n\t * captures the nested relationships between the data elements.\r\n\t * \r\n\t * @default 0.005\r\n\t */\r\n\tconvergenceRatio?: number;\r\n\r\n\t/**\r\n\t * Maximum allowed number of iterations when computing the layout.\r\n\t * \r\n\t * Computation is stopped when it number of iterations is reached, even if\r\n\t * the `convergenceRatio` is not yet reached.\r\n\t *\r\n\t * Bigger number means finer results, but slower performance.\r\n\t * \r\n\t * @default 100\r\n\t */\r\n\tmaxIterationCount?: number;\r\n\r\n}\r\n\r\nexport interface IVoronoiTreemapPrivate extends IHierarchyPrivate {\r\n}\r\n\r\n/**\r\n * A Weighted Voronoi Treemap series.\r\n * \r\n * NOTE: Try to avoid a big number of data items with very big value\r\n * differences. Better group small items into \"Other\" item.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/voronoi-treemap/} for more info\r\n * @since 5.4.0\r\n */\r\nexport class VoronoiTreemap extends Hierarchy {\r\n\r\n\tdeclare public _settings: IVoronoiTreemapSettings;\r\n\tdeclare public _privateSettings: IVoronoiTreemapPrivate;\r\n\tdeclare public _dataItemSettings: IVoronoiTreemapDataItem;\r\n\r\n\tprotected _tag: string = \"voronoitreemap\";\r\n\r\n\tpublic static className: string = \"VoronoiTreemap\";\r\n\tpublic static classNames: Array<string> = Hierarchy.classNames.concat([VoronoiTreemap.className]);\r\n\r\n\t/**\r\n\t * A list of node graphics elements in a [[VoronoiTreemap]] chart.\r\n\t *\r\n\t * @default new ListTemplate<RoundedRectangle>\r\n\t */\r\n\tpublic readonly polygons: ListTemplate<Polygon> = new ListTemplate(\r\n\t\tTemplate.new({}),\r\n\t\t() => Polygon._new(this._root, {\r\n\t\t\tthemeTags: $utils.mergeTags(this.polygons.template.get(\"themeTags\", []), [this._tag, \"shape\"])\r\n\t\t}, [this.polygons.template])\r\n\t);\r\n\r\n\tpublic voronoi = voronoiTreemap();\r\n\r\n\tprotected _afterNew() {\r\n\r\n\t\tthis.nodesContainer.setAll({\r\n\t\t\tx: p50,\r\n\t\t\ty: p50,\r\n\t\t\tcenterX: p50,\r\n\t\t\tcenterY: p50\r\n\t\t})\r\n\r\n\t\tsuper._afterNew();\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\r\n\t\tconst width = this.innerWidth() / 2;\r\n\t\tconst height = this.innerHeight() / 2;\r\n\r\n\t\tlet node = this._rootNode;\r\n\t\tconst selectedDataItem = this.get(\"selectedDataItem\") as DataItem<IVoronoiTreemapDataItem>;\r\n\r\n\t\tif (selectedDataItem) {\r\n\t\t\tnode = selectedDataItem.get(\"d3HierarchyNode\")\r\n\t\t}\r\n\r\n\t\tthis.voronoi.convergenceRatio((this.get(\"convergenceRatio\", 0.005)));\r\n\t\tthis.voronoi.maxIterationCount((this.get(\"maxIterationCount\", 100)));\r\n\t\tthis.voronoi.minWeightRatio((this.get(\"minWeightRatio\", 0.005)));\r\n\r\n\t\tif (this.isDirty(\"type\")) {\r\n\t\t\tif (this.get(\"type\") == \"polygon\") {\r\n\t\t\t\tthis.voronoi.clip(this.getCirclePolygon(1));\r\n\t\t\t\tthis._updateVisuals();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this._sizeDirty) {\r\n\t\t\tif (this.get(\"type\") == \"rectangle\") {\r\n\t\t\t\tthis.voronoi.prng(seedrandom(\"X\"));\r\n\t\t\t\tthis.voronoi.clip([[-width, -height], [-width, height], [width, height], [width, -height]])(node);\r\n\t\t\t\tthis._updateVisuals();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ((this._valuesDirty || this.isDirty(\"selectedDataItem\")) && node) {\r\n\t\t\tthis.voronoi.prng(seedrandom(\"X\"));\r\n\t\t\tthis.voronoi(node);\r\n\t\t\tthis._updateVisuals();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _updateNode(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tconst coords: any = (dataItem.get(\"d3HierarchyNode\") as any).polygon;\r\n\t\tconst polygon = dataItem.get(\"polygon\");\r\n\r\n\t\tif (coords && polygon) {\r\n\r\n\t\t\tlet coordinates: any = [];\r\n\r\n\t\t\tlet d = 1;\r\n\t\t\tif (this.get(\"type\") == \"polygon\") {\r\n\t\t\t\td = Math.min(this.innerWidth(), this.innerHeight()) / 2;\r\n\t\t\t}\r\n\r\n\t\t\tlet minX = Infinity;\r\n\t\t\tlet maxX = -Infinity;\r\n\r\n\t\t\tfor (let i = 0, len = coords.length; i < len; i++) {\r\n\t\t\t\tconst point: Array<number> = coords[i] as any;\r\n\t\t\t\tlet x = point[0] * d;\r\n\t\t\t\tlet y = point[1] * d;\r\n\r\n\t\t\t\tcoordinates.push([x, y]);\r\n\r\n\t\t\t\tminX = Math.min(minX, x);\r\n\t\t\t\tmaxX = Math.max(maxX, x);\r\n\t\t\t}\r\n\r\n\t\t\tpolygon.set(\"coordinates\", coordinates);\r\n\r\n\t\t\tconst fill = dataItem.get(\"fill\");\r\n\t\t\tpolygon._setDefault(\"fill\", fill);\r\n\r\n\t\t\tconst label = dataItem.get(\"label\");\r\n\t\t\tif (label) {\r\n\t\t\t\tconst site = coords.site;\r\n\r\n\t\t\t\tif (site) {\r\n\t\t\t\t\tlabel.setAll({\r\n\t\t\t\t\t\tx: site.x * d,\r\n\t\t\t\t\t\ty: site.y * d,\r\n\t\t\t\t\t\tmaxWidth: Math.abs(maxX - minX)\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\r\n\tprotected _handleSingle(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tconst parent = dataItem.get(\"parent\");\r\n\t\tif (parent) {\r\n\t\t\tconst children = parent.get(\"children\");\r\n\t\t\tif (children) {\r\n\t\t\t\t$array.each(children, (child) => {\r\n\t\t\t\t\tif (child != dataItem) {\r\n\t\t\t\t\t\tthis.disableDataItem(child);\r\n\t\t\t\t\t\tchild.get(\"node\").hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tthis._handleSingle(parent);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic makeNode(dataItem: DataItem<this[\"_dataItemSettings\"]>): HierarchyNode {\r\n\t\tconst node = super.makeNode(dataItem);\r\n\t\tthis._makeNode(dataItem, node);\r\n\t\treturn node;\r\n\t}\r\n\r\n\tprotected _makeNode(dataItem: DataItem<this[\"_dataItemSettings\"]>, node: HierarchyNode) {\r\n\t\tconst polygon = node.children.moveValue(this.polygons.make(), 0);\r\n\t\tnode.setPrivate(\"tooltipTarget\", polygon);\r\n\t\tdataItem.setRaw(\"polygon\", polygon);\r\n\t\tpolygon._setDataItem(dataItem);\r\n\t}\r\n\r\n\tprotected getCirclePolygon(radius: number) {\r\n\t\tconst points = this.get(\"cornerCount\", 120);\r\n\t\tconst dAngle = Math.PI * 2 / points;\r\n\t\tconst polygon: Array<Array<number>> = [];\r\n\r\n\t\tfor (let i = 0; i < points; i++) {\r\n\t\t\tlet angle = i * dAngle;\r\n\t\t\tpolygon.push([radius * Math.cos(angle), radius * Math.sin(angle)])\r\n\t\t}\r\n\r\n\t\treturn polygon;\r\n\t}\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangeSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DateRangeSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,MAAM,WAAW,0BAA2B,SAAQ,qBAAqB;IAExE;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;CAE/B;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACtE,QAAQ,EAAE,QAAQ,CAAC;IAEnB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;CACpE;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IAClD,OAAc,SAAS,EAAE,MAAM,CAAuB;IACtD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAiE;IAEzF,SAAS,EAAE,0BAA0B,CAAC;IACtC,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,OAAO,EAAE,wBAAwB,CAAC;IAEjD,SAAS,CAAC,SAAS;IAyCnB,SAAS,CAAC,aAAa,IAAI,IAAI;IA6I/B,SAAS,CAAC,eAAe,IAAI,UAAU;IAIhC,aAAa;IAIpB,SAAS,CAAC,aAAa,IAAI,IAAI;IAqC/B,SAAS,CAAC,cAAc,IAAI,IAAI;IAkChC,SAAS,CAAC,YAAY,IAAI,IAAI;IAa9B,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIzC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,SAAS,CAAC,cAAc,IAAI,MAAM;IAKlC,SAAS,CAAC,QAAQ,IAAI,GAAG;IAOzB,SAAS,CAAC,gBAAgB,IAAI,GAAG;IAoEjC;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;CA43BjC"}
1
+ {"version":3,"file":"DateRangeSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DateRangeSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,MAAM,WAAW,0BAA2B,SAAQ,qBAAqB;IAExE;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;CAE/B;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACtE,QAAQ,EAAE,QAAQ,CAAC;IAEnB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;CACpE;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IAClD,OAAc,SAAS,EAAE,MAAM,CAAuB;IACtD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAiE;IAEzF,SAAS,EAAE,0BAA0B,CAAC;IACtC,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,OAAO,EAAE,wBAAwB,CAAC;IAEjD,SAAS,CAAC,SAAS;IAyCnB,SAAS,CAAC,aAAa,IAAI,IAAI;IA6I/B,SAAS,CAAC,eAAe,IAAI,UAAU;IAIhC,aAAa;IAIpB,SAAS,CAAC,aAAa,IAAI,IAAI;IAqC/B,SAAS,CAAC,cAAc,IAAI,IAAI;IAyChC,SAAS,CAAC,YAAY,IAAI,IAAI;IAa9B,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIzC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,SAAS,CAAC,cAAc,IAAI,MAAM;IAKlC,SAAS,CAAC,QAAQ,IAAI,GAAG;IAOzB,SAAS,CAAC,gBAAgB,IAAI,GAAG;IAoEjC;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;CA43BjC"}
@@ -196,31 +196,37 @@ export class DateRangeSelector extends StockControl {
196
196
  _updatePickers() {
197
197
  const xAxis = this._getAxis();
198
198
  const minDate = this.get("minDate");
199
+ const maxDate = this.get("maxDate");
200
+ const toPicker = this.getPrivate("toPicker");
199
201
  const fromPicker = this.getPrivate("fromPicker");
200
202
  if (minDate == "auto") {
201
203
  const min = xAxis.getPrivate("minFinal");
202
204
  if (min) {
203
205
  fromPicker.set("minDate", new Date(min + 1));
206
+ toPicker.set("minDate", new Date(min + 1));
204
207
  }
205
208
  }
206
209
  else if (minDate instanceof Date) {
207
210
  fromPicker.set("minDate", minDate);
211
+ toPicker.set("minDate", minDate);
208
212
  }
209
213
  else {
210
214
  fromPicker.set("minDate", undefined);
215
+ toPicker.set("minDate", undefined);
211
216
  }
212
- const maxDate = this.get("maxDate");
213
- const toPicker = this.getPrivate("toPicker");
214
217
  if (maxDate == "auto") {
215
218
  const min = xAxis.getPrivate("maxFinal");
216
219
  if (min) {
220
+ fromPicker.set("maxDate", new Date(min));
217
221
  toPicker.set("maxDate", new Date(min));
218
222
  }
219
223
  }
220
224
  else if (maxDate instanceof Date) {
225
+ fromPicker.set("maxDate", maxDate);
221
226
  toPicker.set("maxDate", maxDate);
222
227
  }
223
228
  else {
229
+ fromPicker.set("maxDate", undefined);
224
230
  toPicker.set("maxDate", undefined);
225
231
  }
226
232
  }