@amcharts/amcharts5 5.3.17 → 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 (244) 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/core/Classes.d.ts +10 -0
  39. package/.internal/core/Classes.d.ts.map +1 -1
  40. package/.internal/core/Classes.js.map +1 -1
  41. package/.internal/core/Registry.d.ts.map +1 -1
  42. package/.internal/core/Registry.js +1 -1
  43. package/.internal/core/Registry.js.map +1 -1
  44. package/.internal/core/render/Polygon.d.ts +52 -0
  45. package/.internal/core/render/Polygon.d.ts.map +1 -0
  46. package/.internal/core/render/Polygon.js +133 -0
  47. package/.internal/core/render/Polygon.js.map +1 -0
  48. package/.internal/core/render/Sprite.js +1 -1
  49. package/.internal/core/render/Sprite.js.map +1 -1
  50. package/.internal/core/render/backend/CanvasRenderer.js +1 -1
  51. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  52. package/.internal/themes/AnimatedTheme.d.ts.map +1 -1
  53. package/.internal/themes/AnimatedTheme.js +2 -0
  54. package/.internal/themes/AnimatedTheme.js.map +1 -1
  55. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  56. package/.internal/themes/DefaultTheme.js +3 -0
  57. package/.internal/themes/DefaultTheme.js.map +1 -1
  58. package/CHANGELOG.md +10 -0
  59. package/examples/javascript/flow-arc-horizontal/README.md +6 -0
  60. package/examples/javascript/flow-arc-horizontal/index.css +11 -0
  61. package/examples/javascript/flow-arc-horizontal/index.html +12 -0
  62. package/examples/javascript/flow-arc-horizontal/index.js +116 -0
  63. package/examples/javascript/flow-arc-horizontal/package.json +16 -0
  64. package/examples/javascript/flow-arc-horizontal/webpack.config.js +38 -0
  65. package/examples/javascript/flow-arc-vertical/README.md +6 -0
  66. package/examples/javascript/flow-arc-vertical/index.css +11 -0
  67. package/examples/javascript/flow-arc-vertical/index.html +12 -0
  68. package/examples/javascript/flow-arc-vertical/index.js +91 -0
  69. package/examples/javascript/flow-arc-vertical/package.json +16 -0
  70. package/examples/javascript/flow-arc-vertical/webpack.config.js +38 -0
  71. package/examples/javascript/flow-chord/package.json +1 -1
  72. package/examples/javascript/flow-chord-directed/package.json +1 -1
  73. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  74. package/examples/javascript/flow-sankey/package.json +1 -1
  75. package/examples/javascript/gauge/package.json +1 -1
  76. package/examples/javascript/gauge-bands/package.json +1 -1
  77. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  78. package/examples/javascript/hierarchy-pack/package.json +1 -1
  79. package/examples/javascript/hierarchy-partition/package.json +1 -1
  80. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  81. package/examples/javascript/hierarchy-tree/package.json +1 -1
  82. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  83. package/examples/javascript/hierarchy-voronoi-treemap/README.md +6 -0
  84. package/examples/javascript/hierarchy-voronoi-treemap/index.css +11 -0
  85. package/examples/javascript/hierarchy-voronoi-treemap/index.html +12 -0
  86. package/examples/javascript/hierarchy-voronoi-treemap/index.js +1298 -0
  87. package/examples/javascript/hierarchy-voronoi-treemap/package.json +16 -0
  88. package/examples/javascript/hierarchy-voronoi-treemap/webpack.config.js +38 -0
  89. package/examples/javascript/jest/package.json +1 -1
  90. package/examples/javascript/json-pie/package.json +1 -1
  91. package/examples/javascript/json-xy/package.json +1 -1
  92. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  93. package/examples/javascript/map-day-and-night/package.json +1 -1
  94. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  95. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  96. package/examples/javascript/map-with-bubbles/package.json +1 -1
  97. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  98. package/examples/javascript/misc-40-charts/package.json +1 -1
  99. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  100. package/examples/javascript/pie-chart/package.json +1 -1
  101. package/examples/javascript/pie-donut-chart/package.json +1 -1
  102. package/examples/javascript/pie-variable-radius/package.json +1 -1
  103. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  104. package/examples/javascript/radar-heat-map/package.json +1 -1
  105. package/examples/javascript/radar-line/package.json +1 -1
  106. package/examples/javascript/radar-time-line/package.json +1 -1
  107. package/examples/javascript/sliced-funnel/package.json +1 -1
  108. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  109. package/examples/javascript/sliced-pyramid/package.json +1 -1
  110. package/examples/javascript/stock-chart/package.json +1 -1
  111. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  112. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  113. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  114. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  115. package/examples/javascript/stock-chart-live/package.json +1 -1
  116. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  117. package/examples/javascript/venn-diagram/package.json +1 -1
  118. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  119. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  120. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  121. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  122. package/examples/javascript/xy-bubble/package.json +1 -1
  123. package/examples/javascript/xy-candlestick/package.json +1 -1
  124. package/examples/javascript/xy-clustered-column/package.json +1 -1
  125. package/examples/javascript/xy-column/package.json +1 -1
  126. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  127. package/examples/javascript/xy-data-grouping/package.json +1 -1
  128. package/examples/javascript/xy-draggable-range/package.json +1 -1
  129. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  130. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  131. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  132. package/examples/javascript/xy-line/package.json +1 -1
  133. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  134. package/examples/javascript/xy-live-data/package.json +1 -1
  135. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  136. package/examples/javascript/xy-ohlc/package.json +1 -1
  137. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  138. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  139. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  140. package/examples/javascript/xy-stacked-column/package.json +1 -1
  141. package/examples/javascript/xy-stacked-step/package.json +1 -1
  142. package/examples/javascript/xy-stock/package.json +1 -1
  143. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  144. package/examples/typescript/flow-arc-horizontal/README.md +6 -0
  145. package/examples/typescript/flow-arc-horizontal/index.css +11 -0
  146. package/examples/typescript/flow-arc-horizontal/index.html +12 -0
  147. package/examples/typescript/flow-arc-horizontal/index.ts +116 -0
  148. package/examples/typescript/flow-arc-horizontal/package.json +18 -0
  149. package/examples/typescript/flow-arc-horizontal/tsconfig.json +12 -0
  150. package/examples/typescript/flow-arc-horizontal/webpack.config.js +45 -0
  151. package/examples/typescript/flow-arc-vertical/README.md +6 -0
  152. package/examples/typescript/flow-arc-vertical/index.css +11 -0
  153. package/examples/typescript/flow-arc-vertical/index.html +12 -0
  154. package/examples/typescript/flow-arc-vertical/index.ts +91 -0
  155. package/examples/typescript/flow-arc-vertical/package.json +18 -0
  156. package/examples/typescript/flow-arc-vertical/tsconfig.json +12 -0
  157. package/examples/typescript/flow-arc-vertical/webpack.config.js +45 -0
  158. package/examples/typescript/flow-chord/package.json +1 -1
  159. package/examples/typescript/flow-chord-directed/package.json +1 -1
  160. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  161. package/examples/typescript/flow-sankey/package.json +1 -1
  162. package/examples/typescript/gauge/package.json +1 -1
  163. package/examples/typescript/gauge-bands/package.json +1 -1
  164. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  165. package/examples/typescript/hierarchy-pack/package.json +1 -1
  166. package/examples/typescript/hierarchy-partition/package.json +1 -1
  167. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  168. package/examples/typescript/hierarchy-tree/package.json +1 -1
  169. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  170. package/examples/typescript/hierarchy-voronoi-treemap/README.md +6 -0
  171. package/examples/typescript/hierarchy-voronoi-treemap/index.css +11 -0
  172. package/examples/typescript/hierarchy-voronoi-treemap/index.html +12 -0
  173. package/examples/typescript/hierarchy-voronoi-treemap/index.ts +1298 -0
  174. package/examples/typescript/hierarchy-voronoi-treemap/package.json +18 -0
  175. package/examples/typescript/hierarchy-voronoi-treemap/tsconfig.json +12 -0
  176. package/examples/typescript/hierarchy-voronoi-treemap/webpack.config.js +45 -0
  177. package/examples/typescript/jest/package.json +1 -1
  178. package/examples/typescript/json-pie/package.json +1 -1
  179. package/examples/typescript/json-xy/package.json +1 -1
  180. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  181. package/examples/typescript/map-day-and-night/package.json +1 -1
  182. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  183. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  184. package/examples/typescript/map-with-bubbles/package.json +1 -1
  185. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  186. package/examples/typescript/misc-40-charts/package.json +1 -1
  187. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  188. package/examples/typescript/pie-chart/package.json +1 -1
  189. package/examples/typescript/pie-donut-chart/package.json +1 -1
  190. package/examples/typescript/pie-variable-radius/package.json +1 -1
  191. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  192. package/examples/typescript/radar-heat-map/package.json +1 -1
  193. package/examples/typescript/radar-line/package.json +1 -1
  194. package/examples/typescript/radar-time-line/package.json +1 -1
  195. package/examples/typescript/sliced-funnel/package.json +1 -1
  196. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  197. package/examples/typescript/sliced-pyramid/package.json +1 -1
  198. package/examples/typescript/stock-chart/package.json +1 -1
  199. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  200. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  201. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  202. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  203. package/examples/typescript/stock-chart-live/package.json +1 -1
  204. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  205. package/examples/typescript/venn-diagram/package.json +1 -1
  206. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  207. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  208. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  209. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  210. package/examples/typescript/xy-bubble/package.json +1 -1
  211. package/examples/typescript/xy-candlestick/package.json +1 -1
  212. package/examples/typescript/xy-clustered-column/package.json +1 -1
  213. package/examples/typescript/xy-column/package.json +1 -1
  214. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  215. package/examples/typescript/xy-data-grouping/package.json +1 -1
  216. package/examples/typescript/xy-draggable-range/package.json +1 -1
  217. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  218. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  219. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  220. package/examples/typescript/xy-line/package.json +1 -1
  221. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  222. package/examples/typescript/xy-live-data/package.json +1 -1
  223. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  224. package/examples/typescript/xy-ohlc/package.json +1 -1
  225. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  226. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  227. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  228. package/examples/typescript/xy-stacked-column/package.json +1 -1
  229. package/examples/typescript/xy-stacked-step/package.json +1 -1
  230. package/examples/typescript/xy-stock/package.json +1 -1
  231. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  232. package/flow.d.ts +3 -0
  233. package/flow.d.ts.map +1 -1
  234. package/flow.js +3 -0
  235. package/flow.js.map +1 -1
  236. package/hierarchy.d.ts +1 -0
  237. package/hierarchy.d.ts.map +1 -1
  238. package/hierarchy.js +1 -0
  239. package/hierarchy.js.map +1 -1
  240. package/index.d.ts +1 -0
  241. package/index.d.ts.map +1 -1
  242. package/index.js +1 -0
  243. package/index.js.map +1 -1
  244. package/package.json +4 -2
@@ -0,0 +1,86 @@
1
+ import type { DataItem } from "../../core/render/Component";
2
+ import { Flow, IFlowSettings, IFlowDataItem, IFlowPrivate, IFlowEvents } from "./Flow";
3
+ import { ListTemplate } from "../../core/util/List";
4
+ import { ArcDiagramNodes, IArcDiagramNodesDataItem } from "./ArcDiagramNodes";
5
+ import { ArcDiagramLink } from "./ArcDiagramLink";
6
+ import type { Easing } from "../../core/util/Ease";
7
+ export interface IArcDiagramDataItem extends IFlowDataItem {
8
+ /**
9
+ * A link element.
10
+ */
11
+ link: ArcDiagramLink;
12
+ /**
13
+ * Source node data item.
14
+ */
15
+ source: DataItem<IArcDiagramNodesDataItem>;
16
+ /**
17
+ * Target node data item.
18
+ */
19
+ target: DataItem<IArcDiagramNodesDataItem>;
20
+ }
21
+ export interface IArcDiagramSettings extends IFlowSettings {
22
+ /**
23
+ * Orientation of the series. This setting can not be changed after the chart is initialized.
24
+ *
25
+ * @default "horizontal"
26
+ */
27
+ orientation: "horizontal" | "vertical";
28
+ /**
29
+ * Minimum radius of a nodes circle.
30
+ * Maximum radius is computed based on available space
31
+ * @default 5
32
+ */
33
+ minRadius?: number;
34
+ /**
35
+ * Defines Which value should be used when calculating circle radius. Use "none" if you want all circles to be the same.
36
+ * @martynas: gal cia reik naudot radiusField, biski no idea.
37
+ * @default "sum"
38
+ */
39
+ radiusKey?: "sum" | "sumIncoming" | "sumOutgoing" | "none";
40
+ /**
41
+ * Duration for all drill animations in milliseconds.
42
+ */
43
+ animationDuration?: number;
44
+ /**
45
+ * An easing function to use for drill animations.
46
+ */
47
+ animationEasing?: Easing;
48
+ }
49
+ export interface IArcDiagramPrivate extends IFlowPrivate {
50
+ }
51
+ export interface IArcDiagramEvents extends IFlowEvents {
52
+ }
53
+ /**
54
+ * Regular ArcDiagram series.
55
+ *
56
+ * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information
57
+ * @important
58
+ */
59
+ export declare class ArcDiagram extends Flow {
60
+ static className: string;
61
+ static classNames: Array<string>;
62
+ /**
63
+ * List of link elements.
64
+ *
65
+ * @default new ListTemplate<ArcDiagramLink>
66
+ */
67
+ readonly links: ListTemplate<ArcDiagramLink>;
68
+ /**
69
+ * A series for all ArcDiagram nodes.
70
+ *
71
+ * @default ArcDiagramNodes.new()
72
+ */
73
+ readonly nodes: ArcDiagramNodes;
74
+ _settings: IArcDiagramSettings;
75
+ _privateSettings: IArcDiagramPrivate;
76
+ _dataItemSettings: IArcDiagramDataItem;
77
+ _events: IArcDiagramEvents;
78
+ protected _afterNew(): void;
79
+ /**
80
+ * @ignore
81
+ */
82
+ makeLink(dataItem: DataItem<this["_dataItemSettings"]>): ArcDiagramLink;
83
+ _prepareChildren(): void;
84
+ _updateLinkColor(dataItem: DataItem<this["_dataItemSettings"]>): void;
85
+ }
86
+ //# sourceMappingURL=ArcDiagram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcDiagram.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAOnD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IAEzD;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAE3C;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;CAE3C;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACzD;;;;OAIG;IACH,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IAEvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;IAE3D;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;CACvD;AAED,MAAM,WAAW,iBAAkB,SAAQ,WAAW;CACrD;AAED;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,IAAI;IAEnC,OAAc,SAAS,EAAE,MAAM,CAAgB;IAC/C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAkD;IAEzF;;;;OAIG;IACH,SAAgB,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,CAGjD;IAEF;;;;OAIG;IACH,SAAgB,KAAK,EAAE,eAAe,CAA2D;IAElF,SAAS,EAAE,mBAAmB,CAAC;IAC/B,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,OAAO,EAAE,iBAAiB,CAAC;IAE1C,SAAS,CAAC,SAAS;IAQnB;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,cAAc;IAUvE,gBAAgB;IAsFhB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;CAuBrE"}
@@ -0,0 +1,161 @@
1
+ import { Flow } from "./Flow";
2
+ import { Template } from "../../core/util/Template";
3
+ import { ListTemplate } from "../../core/util/List";
4
+ import { ArcDiagramNodes } from "./ArcDiagramNodes";
5
+ import { ArcDiagramLink } from "./ArcDiagramLink";
6
+ import * as $utils from "../../core/util/Utils";
7
+ import * as $array from "../../core/util/Array";
8
+ /**
9
+ * Regular ArcDiagram series.
10
+ *
11
+ * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information
12
+ * @important
13
+ */
14
+ export class ArcDiagram extends Flow {
15
+ constructor() {
16
+ super(...arguments);
17
+ /**
18
+ * List of link elements.
19
+ *
20
+ * @default new ListTemplate<ArcDiagramLink>
21
+ */
22
+ Object.defineProperty(this, "links", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: new ListTemplate(Template.new({}), () => ArcDiagramLink._new(this._root, { themeTags: ["link", "shape"] }, [this.links.template]))
27
+ });
28
+ /**
29
+ * A series for all ArcDiagram nodes.
30
+ *
31
+ * @default ArcDiagramNodes.new()
32
+ */
33
+ Object.defineProperty(this, "nodes", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: this.children.push(ArcDiagramNodes.new(this._root, {}))
38
+ });
39
+ }
40
+ _afterNew() {
41
+ this._settings.themeTags = $utils.mergeTags(this._settings.themeTags, ["arcdiagram", this._settings.orientation || "horizontal"]);
42
+ super._afterNew();
43
+ this.nodes.children.push(this.bulletsContainer);
44
+ }
45
+ /**
46
+ * @ignore
47
+ */
48
+ makeLink(dataItem) {
49
+ const link = this.nodes.children.moveValue(this.links.make(), 0);
50
+ this.links.push(link);
51
+ link._setDataItem(dataItem);
52
+ link.set("source", dataItem.get("source"));
53
+ link.set("target", dataItem.get("target"));
54
+ link.series = this;
55
+ return link;
56
+ }
57
+ _prepareChildren() {
58
+ super._prepareChildren();
59
+ if (this._valuesDirty || this._sizeDirty || this.isDirty("orientation")) {
60
+ let width = 1;
61
+ const orientation = this.get("orientation");
62
+ $array.each(this.dataItems, (dataItem) => {
63
+ const link = dataItem.get("link");
64
+ link.setPrivate("orientation", this.get("orientation"));
65
+ });
66
+ if (orientation == "vertical") {
67
+ width = this.innerHeight();
68
+ }
69
+ else {
70
+ width = this.innerWidth();
71
+ }
72
+ let sum = 0;
73
+ let low = Infinity;
74
+ let radiusKey = this.get("radiusKey");
75
+ if (radiusKey != "none") {
76
+ $array.each(this.nodes.dataItems, (dataItem) => {
77
+ let value = dataItem.get(radiusKey + "Working");
78
+ sum += value;
79
+ low = Math.min(low, value);
80
+ });
81
+ }
82
+ const count = this.nodes.dataItems.length;
83
+ const nodePadding = this.get("nodePadding", 10);
84
+ const minRadius = this.get("minRadius", 5);
85
+ width = width - count * (nodePadding + minRadius * 2);
86
+ if (width <= 0) {
87
+ width = 0;
88
+ }
89
+ let sumNoLow = sum - count * low;
90
+ let c = width / sumNoLow;
91
+ let prevCoord = 0;
92
+ const animationDuration = this.get("animationDuration", 0);
93
+ const animationEasing = this.get("animationEasing");
94
+ $array.each(this.nodes.dataItems, (dataItem) => {
95
+ let value = dataItem.get(radiusKey + "Working");
96
+ const node = dataItem.get("node");
97
+ let radius = minRadius + c * (value - low) / 2;
98
+ if (radiusKey == "none") {
99
+ radius = minRadius + width / count / 2;
100
+ }
101
+ if (orientation == "vertical") {
102
+ node.set("x", 0);
103
+ const y = prevCoord + nodePadding + radius;
104
+ if (node.y() == 0) {
105
+ node.set("y", y);
106
+ }
107
+ else {
108
+ node.animate({ key: "y", to: y, duration: animationDuration, easing: animationEasing });
109
+ }
110
+ }
111
+ else {
112
+ node.set("y", 0);
113
+ const x = prevCoord + nodePadding + radius;
114
+ if (node.x() == 0) {
115
+ node.set("x", x);
116
+ }
117
+ else {
118
+ node.animate({ key: "x", to: x, duration: animationDuration, easing: animationEasing });
119
+ }
120
+ }
121
+ prevCoord = prevCoord + nodePadding + radius * 2;
122
+ dataItem.get("circle").set("radius", radius);
123
+ });
124
+ }
125
+ }
126
+ _updateLinkColor(dataItem) {
127
+ super._updateLinkColor(dataItem);
128
+ const orientation = this.get("orientation");
129
+ const fillGradient = dataItem.get("link")._fillGradient;
130
+ const strokeGradient = dataItem.get("link")._strokeGradient;
131
+ if (orientation == "vertical") {
132
+ if (fillGradient) {
133
+ fillGradient.set("rotation", 90);
134
+ }
135
+ if (strokeGradient) {
136
+ strokeGradient.set("rotation", 90);
137
+ }
138
+ }
139
+ else {
140
+ if (fillGradient) {
141
+ fillGradient.set("rotation", 0);
142
+ }
143
+ if (strokeGradient) {
144
+ strokeGradient.set("rotation", 0);
145
+ }
146
+ }
147
+ }
148
+ }
149
+ Object.defineProperty(ArcDiagram, "className", {
150
+ enumerable: true,
151
+ configurable: true,
152
+ writable: true,
153
+ value: "ArcDiagram"
154
+ });
155
+ Object.defineProperty(ArcDiagram, "classNames", {
156
+ enumerable: true,
157
+ configurable: true,
158
+ writable: true,
159
+ value: Flow.classNames.concat([ArcDiagram.className])
160
+ });
161
+ //# sourceMappingURL=ArcDiagram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcDiagram.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagram.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\r\n\r\nimport { Flow, IFlowSettings, IFlowDataItem, IFlowPrivate, IFlowEvents } from \"./Flow\";\r\nimport { Template } from \"../../core/util/Template\";\r\nimport { ListTemplate } from \"../../core/util/List\";\r\nimport { ArcDiagramNodes, IArcDiagramNodesDataItem } from \"./ArcDiagramNodes\";\r\nimport { ArcDiagramLink } from \"./ArcDiagramLink\";\r\nimport type { Easing } from \"../../core/util/Ease\";\r\n\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $array from \"../../core/util/Array\";\r\n\r\n\r\n\r\nexport interface IArcDiagramDataItem extends IFlowDataItem {\r\n\r\n\t/**\r\n\t * A link element.\r\n\t */\r\n\tlink: ArcDiagramLink;\r\n\r\n\t/**\r\n\t * Source node data item.\r\n\t */\r\n\tsource: DataItem<IArcDiagramNodesDataItem>;\r\n\r\n\t/**\r\n\t * Target node data item.\r\n\t */\r\n\ttarget: DataItem<IArcDiagramNodesDataItem>;\r\n\r\n}\r\n\r\nexport interface IArcDiagramSettings extends IFlowSettings {\r\n\t/**\r\n\t * Orientation of the series. This setting can not be changed after the chart is initialized.\r\n\t *\r\n\t * @default \"horizontal\"\r\n\t */\r\n\torientation: \"horizontal\" | \"vertical\";\r\n\r\n\t/**\r\n\t * Minimum radius of a nodes circle.\r\n\t * Maximum radius is computed based on available space\r\n\t * @default 5\r\n\t */\r\n\tminRadius?: number;\r\n\r\n\t/**\r\n\t * Defines Which value should be used when calculating circle radius. Use \"none\" if you want all circles to be the same.\r\n\t * @martynas: gal cia reik naudot radiusField, biski no idea.\r\n\t * @default \"sum\"\r\n\t */\r\n\tradiusKey?: \"sum\" | \"sumIncoming\" | \"sumOutgoing\" | \"none\";\r\n\r\n\t/**\r\n\t * Duration for all drill animations in milliseconds.\r\n\t */\r\n\tanimationDuration?: number;\r\n\r\n\t/**\r\n\t * An easing function to use for drill animations.\r\n\t */\r\n\tanimationEasing?: Easing;\r\n}\r\n\r\nexport interface IArcDiagramPrivate extends IFlowPrivate {\r\n}\r\n\r\nexport interface IArcDiagramEvents extends IFlowEvents {\r\n}\r\n\r\n/**\r\n * Regular ArcDiagram series.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information\r\n * @important\r\n */\r\nexport class ArcDiagram extends Flow {\r\n\r\n\tpublic static className: string = \"ArcDiagram\";\r\n\tpublic static classNames: Array<string> = Flow.classNames.concat([ArcDiagram.className]);\r\n\r\n\t/**\r\n\t * List of link elements.\r\n\t *\r\n\t * @default new ListTemplate<ArcDiagramLink>\r\n\t */\r\n\tpublic readonly links: ListTemplate<ArcDiagramLink> = new ListTemplate(\r\n\t\tTemplate.new({}),\r\n\t\t() => ArcDiagramLink._new(this._root, { themeTags: [\"link\", \"shape\"] }, [this.links.template])\r\n\t);\r\n\r\n\t/**\r\n\t * A series for all ArcDiagram nodes.\r\n\t *\r\n\t * @default ArcDiagramNodes.new()\r\n\t */\r\n\tpublic readonly nodes: ArcDiagramNodes = this.children.push(ArcDiagramNodes.new(this._root, {}));\r\n\r\n\tdeclare public _settings: IArcDiagramSettings;\r\n\tdeclare public _privateSettings: IArcDiagramPrivate;\r\n\tdeclare public _dataItemSettings: IArcDiagramDataItem;\r\n\tdeclare public _events: IArcDiagramEvents;\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"arcdiagram\", this._settings.orientation || \"horizontal\"]);\r\n\r\n\t\tsuper._afterNew();\r\n\t\tthis.nodes.children.push(this.bulletsContainer);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic makeLink(dataItem: DataItem<this[\"_dataItemSettings\"]>): ArcDiagramLink {\r\n\t\tconst link = this.nodes.children.moveValue(this.links.make(), 0);\r\n\t\tthis.links.push(link);\r\n\t\tlink._setDataItem(dataItem);\r\n\t\tlink.set(\"source\", dataItem.get(\"source\"));\r\n\t\tlink.set(\"target\", dataItem.get(\"target\"));\r\n\t\tlink.series = this;\r\n\t\treturn link;\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\r\n\t\tif (this._valuesDirty || this._sizeDirty || this.isDirty(\"orientation\")) {\r\n\t\t\tlet width = 1;\r\n\t\t\tconst orientation = this.get(\"orientation\");\r\n\r\n\t\t\t$array.each(this.dataItems, (dataItem) => {\r\n\t\t\t\tconst link = dataItem.get(\"link\");\r\n\t\t\t\tlink.setPrivate(\"orientation\", this.get(\"orientation\"));\r\n\t\t\t})\r\n\r\n\t\t\tif (orientation == \"vertical\") {\r\n\t\t\t\twidth = this.innerHeight();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\twidth = this.innerWidth();\r\n\t\t\t}\r\n\r\n\t\t\tlet sum = 0;\r\n\t\t\tlet low = Infinity;\r\n\t\t\tlet radiusKey = this.get(\"radiusKey\");\r\n\r\n\t\t\tif (radiusKey != \"none\") {\r\n\t\t\t\t$array.each(this.nodes.dataItems, (dataItem) => {\r\n\t\t\t\t\tlet value = dataItem.get(radiusKey + \"Working\" as any);\r\n\t\t\t\t\tsum += value;\r\n\t\t\t\t\tlow = Math.min(low, value);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tconst count = this.nodes.dataItems.length;\r\n\t\t\tconst nodePadding = this.get(\"nodePadding\", 10);\r\n\t\t\tconst minRadius = this.get(\"minRadius\", 5);\r\n\r\n\t\t\twidth = width - count * (nodePadding + minRadius * 2);\r\n\r\n\t\t\tif (width <= 0) {\r\n\t\t\t\twidth = 0;\r\n\t\t\t}\r\n\r\n\t\t\tlet sumNoLow = sum - count * low;\r\n\t\t\tlet c = width / sumNoLow;\r\n\r\n\t\t\tlet prevCoord = 0;\r\n\t\t\tconst animationDuration = this.get(\"animationDuration\", 0);\r\n\t\t\tconst animationEasing = this.get(\"animationEasing\");\r\n\r\n\t\t\t$array.each(this.nodes.dataItems, (dataItem) => {\r\n\t\t\t\tlet value = dataItem.get(radiusKey + \"Working\" as any);\r\n\r\n\t\t\t\tconst node = dataItem.get(\"node\");\r\n\t\t\t\tlet radius = minRadius + c * (value - low) / 2;\r\n\r\n\t\t\t\tif (radiusKey == \"none\") {\r\n\t\t\t\t\tradius = minRadius + width / count / 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (orientation == \"vertical\") {\r\n\t\t\t\t\tnode.set(\"x\", 0);\r\n\r\n\t\t\t\t\tconst y = prevCoord + nodePadding + radius;\r\n\t\t\t\t\tif (node.y() == 0) {\r\n\t\t\t\t\t\tnode.set(\"y\", y);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tnode.animate({ key: \"y\", to: y, duration: animationDuration, easing: animationEasing });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tnode.set(\"y\", 0);\r\n\t\t\t\t\tconst x = prevCoord + nodePadding + radius;\r\n\t\t\t\t\tif (node.x() == 0) {\r\n\t\t\t\t\t\tnode.set(\"x\", x);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tnode.animate({ key: \"x\", to: x, duration: animationDuration, easing: animationEasing });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tprevCoord = prevCoord + nodePadding + radius * 2;\r\n\t\t\t\tdataItem.get(\"circle\").set(\"radius\", radius);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateLinkColor(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tsuper._updateLinkColor(dataItem);\r\n\t\tconst orientation = this.get(\"orientation\");\r\n\t\tconst fillGradient = dataItem.get(\"link\")._fillGradient;\r\n\t\tconst strokeGradient = dataItem.get(\"link\")._strokeGradient;\r\n\r\n\t\tif (orientation == \"vertical\") {\r\n\t\t\tif (fillGradient) {\r\n\t\t\t\tfillGradient.set(\"rotation\", 90);\r\n\t\t\t}\r\n\t\t\tif (strokeGradient) {\r\n\t\t\t\tstrokeGradient.set(\"rotation\", 90);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (fillGradient) {\r\n\t\t\t\tfillGradient.set(\"rotation\", 0);\r\n\t\t\t}\r\n\t\t\tif (strokeGradient) {\r\n\t\t\t\tstrokeGradient.set(\"rotation\", 0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n"]}
@@ -0,0 +1,40 @@
1
+ import { FlowLink, IFlowLinkPrivate, IFlowLinkSettings } from "./FlowLink";
2
+ import type { DataItem } from "../../core/render/Component";
3
+ import type { IArcDiagramNodesDataItem } from "./ArcDiagramNodes";
4
+ import type { ArcDiagram, IArcDiagramDataItem } from "./ArcDiagram";
5
+ import type { IOrientationPoint, IPoint } from "../../core/util/IPoint";
6
+ export interface IArcDiagramLinkSettings extends IFlowLinkSettings {
7
+ /**
8
+ * Source data item.
9
+ */
10
+ source?: DataItem<IArcDiagramNodesDataItem>;
11
+ /**
12
+ * target data item.
13
+ */
14
+ target?: DataItem<IArcDiagramNodesDataItem>;
15
+ }
16
+ export interface IArcDiagramLinkPrivate extends IFlowLinkPrivate {
17
+ /**
18
+ * Link orientation.
19
+ */
20
+ orientation?: "horizontal" | "vertical";
21
+ }
22
+ /**
23
+ * A link element used in [[ArcDiagram]] chart.
24
+ */
25
+ export declare class ArcDiagramLink extends FlowLink {
26
+ _p0: IPoint | undefined;
27
+ _p1: IPoint | undefined;
28
+ _radius: number;
29
+ _settings: IArcDiagramLinkSettings;
30
+ _privateSettings: IArcDiagramLinkPrivate;
31
+ static className: string;
32
+ static classNames: Array<string>;
33
+ protected _dataItem: DataItem<IArcDiagramDataItem> | undefined;
34
+ series: ArcDiagram | undefined;
35
+ _beforeChanged(): void;
36
+ _changed(): void;
37
+ _draw(): void;
38
+ getPoint(location: number): IOrientationPoint;
39
+ }
40
+ //# sourceMappingURL=ArcDiagramLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcDiagramLink.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIxE,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAEjE;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAE5C;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC/D;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAEpC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,OAAO,EAAE,MAAM,CAAK;IAEZ,SAAS,EAAE,uBAAuB,CAAC;IACnC,gBAAgB,EAAE,sBAAsB,CAAC;IAExD,OAAc,SAAS,EAAE,MAAM,CAAoB;IACnD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA0D;IAEjG,UAAkB,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAExD,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAEvC,cAAc;IA0Cd,QAAQ;IAQR,KAAK;IAyCL,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;CAepD"}
@@ -0,0 +1,130 @@
1
+ import { FlowLink } from "./FlowLink";
2
+ import * as $math from "../../core/util/Math";
3
+ /**
4
+ * A link element used in [[ArcDiagram]] chart.
5
+ */
6
+ export class ArcDiagramLink extends FlowLink {
7
+ constructor() {
8
+ super(...arguments);
9
+ Object.defineProperty(this, "_p0", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: void 0
14
+ });
15
+ Object.defineProperty(this, "_p1", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: void 0
20
+ });
21
+ Object.defineProperty(this, "_radius", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: 0
26
+ });
27
+ }
28
+ _beforeChanged() {
29
+ super._beforeChanged();
30
+ if (this.isDirty("source")) {
31
+ const source = this.get("source");
32
+ if (source) {
33
+ const sourceNode = source.get("node");
34
+ this._disposers.push(sourceNode.events.on("positionchanged", () => {
35
+ this._markDirtyKey("stroke");
36
+ }));
37
+ }
38
+ }
39
+ if (this.isDirty("target")) {
40
+ const target = this.get("target");
41
+ if (target) {
42
+ const targetNode = target.get("node");
43
+ this._disposers.push(targetNode.events.on("positionchanged", () => {
44
+ this._markDirtyKey("stroke");
45
+ }));
46
+ }
47
+ }
48
+ if (this.isPrivateDirty("orientation")) {
49
+ const series = this.series;
50
+ const dataItem = this.dataItem;
51
+ if (dataItem && series) {
52
+ series._updateLinkColor(dataItem);
53
+ }
54
+ }
55
+ if (this.series && this.dataItem) {
56
+ this.series._positionBullets(this.dataItem);
57
+ }
58
+ if (this.get("strokeStyle") == "gradient") {
59
+ this.set("isMeasured", true);
60
+ }
61
+ else {
62
+ this.set("isMeasured", false);
63
+ }
64
+ }
65
+ _changed() {
66
+ super._changed();
67
+ if (this._clear) {
68
+ this._draw();
69
+ }
70
+ }
71
+ _draw() {
72
+ const target = this.get("target");
73
+ const source = this.get("source");
74
+ if (source && target) {
75
+ let sourceNode = source.get("node");
76
+ let targetNode = target.get("node");
77
+ const x0 = sourceNode.x();
78
+ const y0 = sourceNode.y();
79
+ const x1 = targetNode.x();
80
+ const y1 = targetNode.y();
81
+ this._p0 = { x: x0, y: y0 };
82
+ this._p1 = { x: x1, y: y1 };
83
+ let radius = 0;
84
+ if (this.getPrivate("orientation") == "vertical") {
85
+ radius = (y1 - y0) / 2;
86
+ let d = 1;
87
+ if (y0 > y1) {
88
+ d = -1;
89
+ }
90
+ this._display.arc(x0, y0 + radius, radius * d, -Math.PI / 2, Math.PI / 2);
91
+ }
92
+ else {
93
+ radius = (x1 - x0) / 2;
94
+ let d = 1;
95
+ if (x0 > x1) {
96
+ d = -1;
97
+ }
98
+ this._display.arc(x0 + radius, y0, radius * d, -Math.PI, 0);
99
+ }
100
+ this._radius = radius;
101
+ }
102
+ }
103
+ getPoint(location) {
104
+ if (this._p0 && this._p1) {
105
+ const radius = this._radius;
106
+ if (this.getPrivate("orientation") == "vertical") {
107
+ let angle = -90 + 180 * location;
108
+ return { y: this._p0.y + radius + radius * $math.sin(angle), x: radius * $math.cos(angle), angle: angle + 90 };
109
+ }
110
+ else {
111
+ let angle = 180 + 180 * location;
112
+ return { x: this._p0.x + radius + radius * $math.cos(angle), y: radius * $math.sin(angle), angle: angle + 90 };
113
+ }
114
+ }
115
+ return { x: 0, y: 0, angle: 0 };
116
+ }
117
+ }
118
+ Object.defineProperty(ArcDiagramLink, "className", {
119
+ enumerable: true,
120
+ configurable: true,
121
+ writable: true,
122
+ value: "ArcDiagramLink"
123
+ });
124
+ Object.defineProperty(ArcDiagramLink, "classNames", {
125
+ enumerable: true,
126
+ configurable: true,
127
+ writable: true,
128
+ value: FlowLink.classNames.concat([ArcDiagramLink.className])
129
+ });
130
+ //# sourceMappingURL=ArcDiagramLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcDiagramLink.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { FlowLink, IFlowLinkPrivate, IFlowLinkSettings } from \"./FlowLink\";\r\nimport type { DataItem } from \"../../core/render/Component\";\r\nimport type { IArcDiagramNodesDataItem } from \"./ArcDiagramNodes\";\r\nimport type { ArcDiagram, IArcDiagramDataItem } from \"./ArcDiagram\";\r\nimport type { IOrientationPoint, IPoint } from \"../../core/util/IPoint\";\r\nimport * as $math from \"../../core/util/Math\";\r\n\r\n\r\nexport interface IArcDiagramLinkSettings extends IFlowLinkSettings {\r\n\r\n\t/**\r\n\t * Source data item.\r\n\t */\r\n\tsource?: DataItem<IArcDiagramNodesDataItem>;\r\n\r\n\t/**\r\n\t * target data item.\r\n\t */\r\n\ttarget?: DataItem<IArcDiagramNodesDataItem>;\r\n}\r\n\r\nexport interface IArcDiagramLinkPrivate extends IFlowLinkPrivate {\r\n\t/**\r\n\t * Link orientation.\r\n\t */\r\n\torientation?: \"horizontal\" | \"vertical\";\r\n}\r\n\r\n/**\r\n * A link element used in [[ArcDiagram]] chart.\r\n */\r\nexport class ArcDiagramLink extends FlowLink {\r\n\r\n\tpublic _p0: IPoint | undefined;\r\n\tpublic _p1: IPoint | undefined;\r\n\tpublic _radius: number = 0;\r\n\r\n\tdeclare public _settings: IArcDiagramLinkSettings;\r\n\tdeclare public _privateSettings: IArcDiagramLinkPrivate;\r\n\r\n\tpublic static className: string = \"ArcDiagramLink\";\r\n\tpublic static classNames: Array<string> = FlowLink.classNames.concat([ArcDiagramLink.className]);\r\n\r\n\tdeclare protected _dataItem: DataItem<IArcDiagramDataItem> | undefined;\r\n\r\n\tdeclare public series: ArcDiagram | undefined;\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\r\n\t\tif (this.isDirty(\"source\")) {\r\n\t\t\tconst source = this.get(\"source\");\r\n\t\t\tif (source) {\r\n\t\t\t\tconst sourceNode = source.get(\"node\");\r\n\t\t\t\tthis._disposers.push(sourceNode.events.on(\"positionchanged\", () => {\r\n\t\t\t\t\tthis._markDirtyKey(\"stroke\");\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.isDirty(\"target\")) {\r\n\t\t\tconst target = this.get(\"target\");\r\n\t\t\tif (target) {\r\n\t\t\t\tconst targetNode = target.get(\"node\");\r\n\t\t\t\tthis._disposers.push(targetNode.events.on(\"positionchanged\", () => {\r\n\t\t\t\t\tthis._markDirtyKey(\"stroke\");\r\n\t\t\t\t}))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isPrivateDirty(\"orientation\")) {\r\n\t\t\tconst series = this.series;\r\n\t\t\tconst dataItem = this.dataItem as DataItem<IArcDiagramDataItem>;\r\n\t\t\tif (dataItem && series) {\r\n\t\t\t\tseries._updateLinkColor(dataItem);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.series && this.dataItem) {\r\n\t\t\tthis.series._positionBullets(this.dataItem as any);\r\n\t\t}\r\n\r\n\t\tif (this.get(\"strokeStyle\") == \"gradient\") {\r\n\t\t\tthis.set(\"isMeasured\", true);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.set(\"isMeasured\", false);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _changed() {\r\n\t\tsuper._changed();\r\n\r\n\t\tif (this._clear) {\r\n\t\t\tthis._draw();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _draw() {\r\n\t\tconst target = this.get(\"target\");\r\n\t\tconst source = this.get(\"source\");\r\n\r\n\t\tif (source && target) {\r\n\t\t\tlet sourceNode = source.get(\"node\");\r\n\t\t\tlet targetNode = target.get(\"node\");\r\n\r\n\t\t\tconst x0 = sourceNode.x();\r\n\t\t\tconst y0 = sourceNode.y();\r\n\r\n\t\t\tconst x1 = targetNode.x();\r\n\t\t\tconst y1 = targetNode.y();\r\n\r\n\t\t\tthis._p0 = { x: x0, y: y0 };\r\n\t\t\tthis._p1 = { x: x1, y: y1 };\r\n\r\n\t\t\tlet radius = 0;\r\n\r\n\t\t\tif (this.getPrivate(\"orientation\") == \"vertical\") {\r\n\t\t\t\tradius = (y1 - y0) / 2;\r\n\t\t\t\tlet d = 1;\r\n\t\t\t\tif (y0 > y1) {\r\n\t\t\t\t\td = -1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._display.arc(x0, y0 + radius, radius * d, -Math.PI / 2, Math.PI / 2);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tradius = (x1 - x0) / 2;\r\n\t\t\t\tlet d = 1;\r\n\t\t\t\tif (x0 > x1) {\r\n\t\t\t\t\td = -1;\r\n\t\t\t\t}\r\n\t\t\t\tthis._display.arc(x0 + radius, y0, radius * d, -Math.PI, 0);\r\n\t\t\t}\r\n\t\t\tthis._radius = radius;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic getPoint(location: number): IOrientationPoint {\r\n\t\tif (this._p0 && this._p1) {\r\n\t\t\tconst radius = this._radius;\r\n\r\n\t\t\tif (this.getPrivate(\"orientation\") == \"vertical\") {\r\n\t\t\t\tlet angle = -90 + 180 * location;\r\n\t\t\t\treturn { y: this._p0.y + radius + radius * $math.sin(angle), x: radius * $math.cos(angle), angle: angle + 90 };\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet angle = 180 + 180 * location;\r\n\t\t\t\treturn { x: this._p0.x + radius + radius * $math.cos(angle), y: radius * $math.sin(angle), angle: angle + 90 };\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { x: 0, y: 0, angle: 0 };\r\n\t}\r\n}\r\n"]}
@@ -0,0 +1,60 @@
1
+ import type { DataItem } from "../../core/render/Component";
2
+ import type { FlowNode } from "./FlowNode";
3
+ import type { ArcDiagram } from "./ArcDiagram";
4
+ import { FlowNodes, IFlowNodesSettings, IFlowNodesDataItem, IFlowNodesPrivate, IFlowNodesEvents } from "./FlowNodes";
5
+ import { Circle } from "../../core/render/Circle";
6
+ import { ListTemplate } from "../../core/util/List";
7
+ import { Label } from "../../core/render/Label";
8
+ export interface IArcDiagramNodesDataItem extends IFlowNodesDataItem {
9
+ /**
10
+ * Node [[Circle]] element.
11
+ */
12
+ circle: Circle;
13
+ /**
14
+ * Node label element.
15
+ */
16
+ label: Label;
17
+ }
18
+ export interface IArcDiagramNodesSettings extends IFlowNodesSettings {
19
+ }
20
+ export interface IArcDiagramNodesPrivate extends IFlowNodesPrivate {
21
+ }
22
+ export interface IArcDiagramNodesEvents extends IFlowNodesEvents {
23
+ }
24
+ /**
25
+ * Holds instances of nodes for a [[ArcDiagram]] series.
26
+ */
27
+ export declare class ArcDiagramNodes extends FlowNodes {
28
+ static className: string;
29
+ static classNames: Array<string>;
30
+ /**
31
+ * List of label elements.
32
+ *
33
+ * @default new ListTemplate<Label>
34
+ */
35
+ readonly labels: ListTemplate<Label>;
36
+ _settings: IArcDiagramNodesSettings;
37
+ _privateSettings: IArcDiagramNodesPrivate;
38
+ _dataItemSettings: IArcDiagramNodesDataItem;
39
+ _events: IArcDiagramNodesEvents;
40
+ /**
41
+ * Related [[ArcDiagram]] series.
42
+ */
43
+ flow: ArcDiagram | undefined;
44
+ protected _dAngle: number;
45
+ /**
46
+ * List of slice elements.
47
+ *
48
+ * @default new ListTemplate<Slice>
49
+ */
50
+ readonly circles: ListTemplate<Circle>;
51
+ /**
52
+ * @ignore
53
+ */
54
+ makeNode(dataItem: DataItem<this["_dataItemSettings"]>): FlowNode;
55
+ /**
56
+ * @ignore
57
+ */
58
+ disposeDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void;
59
+ }
60
+ //# sourceMappingURL=ArcDiagramNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcDiagramNodes.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramNodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAEnE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACb;AAED,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;CAAI;AAExE,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;CAAI;AAEtE,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;CAAI;AAEpE;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC7C,OAAc,SAAS,EAAE,MAAM,CAAqB;IACpD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA4D;IAEnG;;;;OAIG;IACH,SAAgB,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAGzC;IAEa,SAAS,EAAE,wBAAwB,CAAC;IACpC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,OAAO,EAAE,sBAAsB,CAAC;IAE/C;;OAEG;IACI,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAEpC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAE9B;;;;OAIG;IACH,SAAgB,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAG3C;IAEF;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,QAAQ;IAsBxE;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;CAQpE"}
@@ -0,0 +1,96 @@
1
+ import { FlowNodes } from "./FlowNodes";
2
+ import { Circle } from "../../core/render/Circle";
3
+ import { Template } from "../../core/util/Template";
4
+ import { ListTemplate } from "../../core/util/List";
5
+ import { Label } from "../../core/render/Label";
6
+ ;
7
+ ;
8
+ ;
9
+ /**
10
+ * Holds instances of nodes for a [[ArcDiagram]] series.
11
+ */
12
+ export class ArcDiagramNodes extends FlowNodes {
13
+ constructor() {
14
+ super(...arguments);
15
+ /**
16
+ * List of label elements.
17
+ *
18
+ * @default new ListTemplate<Label>
19
+ */
20
+ Object.defineProperty(this, "labels", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: new ListTemplate(Template.new({}), () => Label._new(this._root, {}, [this.labels.template]))
25
+ });
26
+ /**
27
+ * Related [[ArcDiagram]] series.
28
+ */
29
+ Object.defineProperty(this, "flow", {
30
+ enumerable: true,
31
+ configurable: true,
32
+ writable: true,
33
+ value: void 0
34
+ });
35
+ Object.defineProperty(this, "_dAngle", {
36
+ enumerable: true,
37
+ configurable: true,
38
+ writable: true,
39
+ value: 0
40
+ });
41
+ /**
42
+ * List of slice elements.
43
+ *
44
+ * @default new ListTemplate<Slice>
45
+ */
46
+ Object.defineProperty(this, "circles", {
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true,
50
+ value: new ListTemplate(Template.new({}), () => Circle._new(this._root, { themeTags: ["shape"] }, [this.circles.template]))
51
+ });
52
+ }
53
+ /**
54
+ * @ignore
55
+ */
56
+ makeNode(dataItem) {
57
+ const node = super.makeNode(dataItem, "ArcDiagram");
58
+ const circle = node.children.insertIndex(0, this.circles.make());
59
+ dataItem.set("circle", circle);
60
+ circle._setSoft("fill", dataItem.get("fill"));
61
+ const label = this.labels.make();
62
+ this.labels.push(label);
63
+ label.addTag("flow");
64
+ label.addTag("arcdiagram");
65
+ label.addTag("node");
66
+ node.children.push(label);
67
+ dataItem.set("label", label);
68
+ label._setDataItem(dataItem);
69
+ circle._setDataItem(dataItem);
70
+ return node;
71
+ }
72
+ /**
73
+ * @ignore
74
+ */
75
+ disposeDataItem(dataItem) {
76
+ super.disposeDataItem(dataItem);
77
+ let circle = dataItem.get("circle");
78
+ if (circle) {
79
+ this.circles.removeValue(circle);
80
+ circle.dispose();
81
+ }
82
+ }
83
+ }
84
+ Object.defineProperty(ArcDiagramNodes, "className", {
85
+ enumerable: true,
86
+ configurable: true,
87
+ writable: true,
88
+ value: "ArcDiagramNodes"
89
+ });
90
+ Object.defineProperty(ArcDiagramNodes, "classNames", {
91
+ enumerable: true,
92
+ configurable: true,
93
+ writable: true,
94
+ value: FlowNodes.classNames.concat([ArcDiagramNodes.className])
95
+ });
96
+ //# sourceMappingURL=ArcDiagramNodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcDiagramNodes.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/flow/ArcDiagramNodes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAA+E,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAewB,CAAC;AAEH,CAAC;AAEH,CAAC;AAErE;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAA9C;;QAIC;;;;WAIG;QACH;;;;mBAA8C,IAAI,YAAY,CAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CACxD;WAAC;QAOF;;WAEG;QACH;;;;;WAAoC;QAEpC;;;;mBAA4B,CAAC;WAAC;QAE9B;;;;WAIG;QACH;;;;mBAAgD,IAAI,YAAY,CAC/D,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAChF;WAAC;IAsCH,CAAC;IApCA;;OAEG;IACI,QAAQ,CAAC,QAA6C;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAErB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE7B,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,QAA6C;QACnE,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,OAAO,EAAE,CAAC;SACjB;IACF,CAAC;;AAtED;;;;WAAkC,iBAAiB;GAAC;AACpD;;;;WAA0C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\r\nimport type { FlowNode } from \"./FlowNode\";\r\nimport type { ArcDiagram } from \"./ArcDiagram\";\r\n\r\nimport { FlowNodes, IFlowNodesSettings, IFlowNodesDataItem, IFlowNodesPrivate, IFlowNodesEvents } from \"./FlowNodes\";\r\nimport { Circle } from \"../../core/render/Circle\";\r\nimport { Template } from \"../../core/util/Template\";\r\nimport { ListTemplate } from \"../../core/util/List\";\r\nimport { Label } from \"../../core/render/Label\";\r\n\r\nexport interface IArcDiagramNodesDataItem extends IFlowNodesDataItem {\r\n\r\n\t/**\r\n\t * Node [[Circle]] element.\r\n\t */\r\n\tcircle: Circle;\r\n\r\n\t/**\r\n\t * Node label element.\r\n\t */\r\n\tlabel: Label;\r\n}\r\n\r\nexport interface IArcDiagramNodesSettings extends IFlowNodesSettings { };\r\n\r\nexport interface IArcDiagramNodesPrivate extends IFlowNodesPrivate { };\r\n\r\nexport interface IArcDiagramNodesEvents extends IFlowNodesEvents { };\r\n\r\n/**\r\n * Holds instances of nodes for a [[ArcDiagram]] series.\r\n */\r\nexport class ArcDiagramNodes extends FlowNodes {\r\n\tpublic static className: string = \"ArcDiagramNodes\";\r\n\tpublic static classNames: Array<string> = FlowNodes.classNames.concat([ArcDiagramNodes.className]);\r\n\r\n\t/**\r\n\t * List of label elements.\r\n\t *\r\n\t * @default new ListTemplate<Label>\r\n\t */\r\n\tpublic readonly labels: ListTemplate<Label> = new ListTemplate(\r\n\t\tTemplate.new({}),\r\n\t\t() => Label._new(this._root, {}, [this.labels.template])\r\n\t);\r\n\r\n\tdeclare public _settings: IArcDiagramNodesSettings;\r\n\tdeclare public _privateSettings: IArcDiagramNodesPrivate;\r\n\tdeclare public _dataItemSettings: IArcDiagramNodesDataItem;\r\n\tdeclare public _events: IArcDiagramNodesEvents;\r\n\r\n\t/**\r\n\t * Related [[ArcDiagram]] series.\r\n\t */\r\n\tpublic flow: ArcDiagram | undefined;\r\n\r\n\tprotected _dAngle: number = 0;\r\n\r\n\t/**\r\n\t * List of slice elements.\r\n\t *\r\n\t * @default new ListTemplate<Slice>\r\n\t */\r\n\tpublic readonly circles: ListTemplate<Circle> = new ListTemplate(\r\n\t\tTemplate.new({}),\r\n\t\t() => Circle._new(this._root, { themeTags: [\"shape\"] }, [this.circles.template])\r\n\t);\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic makeNode(dataItem: DataItem<this[\"_dataItemSettings\"]>): FlowNode {\r\n\t\tconst node = super.makeNode(dataItem, \"ArcDiagram\");\r\n\r\n\t\tconst circle = node.children.insertIndex(0, this.circles.make());\r\n\t\tdataItem.set(\"circle\", circle);\r\n\t\tcircle._setSoft(\"fill\", dataItem.get(\"fill\"));\r\n\r\n\t\tconst label = this.labels.make();\r\n\t\tthis.labels.push(label);\r\n\t\tlabel.addTag(\"flow\");\r\n\t\tlabel.addTag(\"arcdiagram\");\r\n\t\tlabel.addTag(\"node\");\r\n\r\n\t\tnode.children.push(label);\r\n\t\tdataItem.set(\"label\", label);\r\n\r\n\t\tlabel._setDataItem(dataItem);\r\n\t\tcircle._setDataItem(dataItem);\r\n\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\r\n\t\tsuper.disposeDataItem(dataItem);\r\n\t\tlet circle = dataItem.get(\"circle\");\r\n\t\tif (circle) {\r\n\t\t\tthis.circles.removeValue(circle);\r\n\t\t\tcircle.dispose();\r\n\t\t}\r\n\t}\r\n}\r\n"]}