@amcharts/amcharts5 5.16.1 → 5.17.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 (257) hide show
  1. package/.internal/charts/hierarchy/Hierarchy.d.ts +21 -0
  2. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  3. package/.internal/charts/hierarchy/Hierarchy.js +60 -3
  4. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  5. package/.internal/charts/hierarchy/HierarchyDefaultTheme.d.ts.map +1 -1
  6. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +1 -0
  7. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
  8. package/.internal/charts/hierarchy/LinkedHierarchy.d.ts +1 -0
  9. package/.internal/charts/hierarchy/LinkedHierarchy.d.ts.map +1 -1
  10. package/.internal/charts/hierarchy/LinkedHierarchy.js +9 -9
  11. package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
  12. package/.internal/charts/hierarchy/Tree.d.ts +20 -0
  13. package/.internal/charts/hierarchy/Tree.d.ts.map +1 -1
  14. package/.internal/charts/hierarchy/Tree.js +11 -1
  15. package/.internal/charts/hierarchy/Tree.js.map +1 -1
  16. package/.internal/charts/map/MapChartDefaultTheme.d.ts.map +1 -1
  17. package/.internal/charts/map/MapChartDefaultTheme.js +3 -0
  18. package/.internal/charts/map/MapChartDefaultTheme.js.map +1 -1
  19. package/.internal/charts/map/MapSankeyNodes.d.ts +155 -0
  20. package/.internal/charts/map/MapSankeyNodes.d.ts.map +1 -0
  21. package/.internal/charts/map/MapSankeyNodes.js +151 -0
  22. package/.internal/charts/map/MapSankeyNodes.js.map +1 -0
  23. package/.internal/charts/map/MapSankeySeries.d.ts +383 -0
  24. package/.internal/charts/map/MapSankeySeries.d.ts.map +1 -0
  25. package/.internal/charts/map/MapSankeySeries.js +794 -0
  26. package/.internal/charts/map/MapSankeySeries.js.map +1 -0
  27. package/.internal/charts/xy/axes/ValueAxis.d.ts +15 -2
  28. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  29. package/.internal/charts/xy/axes/ValueAxis.js +102 -79
  30. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  31. package/.internal/charts/xy/series/XYSeries.js +1 -1
  32. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  33. package/.internal/core/Classes.d.ts +6 -0
  34. package/.internal/core/Classes.d.ts.map +1 -1
  35. package/.internal/core/Classes.js.map +1 -1
  36. package/.internal/core/Registry.js +1 -1
  37. package/.internal/core/Registry.js.map +1 -1
  38. package/.internal/core/util/Entity.d.ts.map +1 -1
  39. package/.internal/core/util/Entity.js +6 -0
  40. package/.internal/core/util/Entity.js.map +1 -1
  41. package/.internal/core/util/Math.d.ts +132 -49
  42. package/.internal/core/util/Math.d.ts.map +1 -1
  43. package/.internal/core/util/Math.js +151 -50
  44. package/.internal/core/util/Math.js.map +1 -1
  45. package/.internal/core/util/Object.d.ts +24 -1
  46. package/.internal/core/util/Object.d.ts.map +1 -1
  47. package/.internal/core/util/Object.js +24 -1
  48. package/.internal/core/util/Object.js.map +1 -1
  49. package/.internal/core/util/PopulateString.d.ts +23 -1
  50. package/.internal/core/util/PopulateString.d.ts.map +1 -1
  51. package/.internal/core/util/PopulateString.js +19 -5
  52. package/.internal/core/util/PopulateString.js.map +1 -1
  53. package/.internal/core/util/Utils.d.ts +69 -3
  54. package/.internal/core/util/Utils.d.ts.map +1 -1
  55. package/.internal/core/util/Utils.js +72 -18
  56. package/.internal/core/util/Utils.js.map +1 -1
  57. package/.internal/plugins/json/Classes-script.d.ts +6 -0
  58. package/.internal/plugins/json/Classes-script.d.ts.map +1 -1
  59. package/.internal/plugins/json/Classes-script.js +3 -0
  60. package/.internal/plugins/json/Classes-script.js.map +1 -1
  61. package/.internal/plugins/json/Classes.d.ts +6 -0
  62. package/.internal/plugins/json/Classes.d.ts.map +1 -1
  63. package/.internal/plugins/json/Classes.js +3 -0
  64. package/.internal/plugins/json/Classes.js.map +1 -1
  65. package/CHANGELOG.md +30 -6
  66. package/README.md +12 -0
  67. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  68. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  69. package/examples/javascript/flow-chord/package.json +1 -1
  70. package/examples/javascript/flow-chord-directed/package.json +1 -1
  71. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  72. package/examples/javascript/flow-sankey/package.json +1 -1
  73. package/examples/javascript/gantt/package.json +1 -1
  74. package/examples/javascript/gantt-multilevel/package.json +1 -1
  75. package/examples/javascript/gantt-simple/package.json +1 -1
  76. package/examples/javascript/gauge/package.json +1 -1
  77. package/examples/javascript/gauge-bands/package.json +1 -1
  78. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  79. package/examples/javascript/hierarchy-pack/package.json +1 -1
  80. package/examples/javascript/hierarchy-partition/package.json +1 -1
  81. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  82. package/examples/javascript/hierarchy-tree/package.json +1 -1
  83. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  84. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  85. package/examples/javascript/jest/package.json +1 -1
  86. package/examples/javascript/json-pie/package.json +1 -1
  87. package/examples/javascript/json-xy/package.json +1 -1
  88. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  89. package/examples/javascript/map-clustered-points/package.json +1 -1
  90. package/examples/javascript/map-day-and-night/package.json +1 -1
  91. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  92. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  93. package/examples/javascript/map-sankey/README.md +6 -0
  94. package/examples/javascript/map-sankey/index.css +11 -0
  95. package/examples/javascript/map-sankey/index.html +13 -0
  96. package/examples/javascript/map-sankey/index.js +368 -0
  97. package/examples/javascript/map-sankey/package.json +17 -0
  98. package/examples/javascript/map-sankey/webpack.config.js +38 -0
  99. package/examples/javascript/map-sankey-waypoints/README.md +6 -0
  100. package/examples/javascript/map-sankey-waypoints/index.css +11 -0
  101. package/examples/javascript/map-sankey-waypoints/index.html +13 -0
  102. package/examples/javascript/map-sankey-waypoints/index.js +394 -0
  103. package/examples/javascript/map-sankey-waypoints/package.json +17 -0
  104. package/examples/javascript/map-sankey-waypoints/webpack.config.js +38 -0
  105. package/examples/javascript/map-with-bubbles/package.json +1 -1
  106. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  107. package/examples/javascript/misc-40-charts/package.json +1 -1
  108. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  109. package/examples/javascript/pie-chart/package.json +1 -1
  110. package/examples/javascript/pie-donut-chart/package.json +1 -1
  111. package/examples/javascript/pie-variable-radius/package.json +1 -1
  112. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  113. package/examples/javascript/radar-heat-map/package.json +1 -1
  114. package/examples/javascript/radar-line/package.json +1 -1
  115. package/examples/javascript/radar-time-line/package.json +1 -1
  116. package/examples/javascript/sliced-funnel/package.json +1 -1
  117. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  118. package/examples/javascript/sliced-pyramid/package.json +1 -1
  119. package/examples/javascript/stock-chart/package.json +1 -1
  120. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  121. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  122. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  123. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  124. package/examples/javascript/stock-chart-live/package.json +1 -1
  125. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  126. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  127. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  128. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  129. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  130. package/examples/javascript/venn-diagram/package.json +1 -1
  131. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  132. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  133. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  134. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  135. package/examples/javascript/xy-bubble/package.json +1 -1
  136. package/examples/javascript/xy-candlestick/package.json +1 -1
  137. package/examples/javascript/xy-clustered-column/package.json +1 -1
  138. package/examples/javascript/xy-column/package.json +1 -1
  139. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  140. package/examples/javascript/xy-data-grouping/package.json +1 -1
  141. package/examples/javascript/xy-draggable-range/package.json +1 -1
  142. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  143. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  144. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  145. package/examples/javascript/xy-line/package.json +1 -1
  146. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  147. package/examples/javascript/xy-live-data/package.json +1 -1
  148. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  149. package/examples/javascript/xy-ohlc/package.json +1 -1
  150. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  151. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  152. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  153. package/examples/javascript/xy-stacked-column/package.json +1 -1
  154. package/examples/javascript/xy-stacked-step/package.json +1 -1
  155. package/examples/javascript/xy-stock/package.json +1 -1
  156. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  157. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  158. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  159. package/examples/typescript/flow-chord/package.json +1 -1
  160. package/examples/typescript/flow-chord-directed/package.json +1 -1
  161. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  162. package/examples/typescript/flow-sankey/package.json +1 -1
  163. package/examples/typescript/gantt/package.json +1 -1
  164. package/examples/typescript/gantt-multilevel/package.json +1 -1
  165. package/examples/typescript/gantt-simple/package.json +1 -1
  166. package/examples/typescript/gauge/package.json +1 -1
  167. package/examples/typescript/gauge-bands/package.json +1 -1
  168. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  169. package/examples/typescript/hierarchy-pack/package.json +1 -1
  170. package/examples/typescript/hierarchy-partition/package.json +1 -1
  171. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  172. package/examples/typescript/hierarchy-tree/package.json +1 -1
  173. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  174. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  175. package/examples/typescript/jest/package.json +1 -1
  176. package/examples/typescript/json-pie/package.json +1 -1
  177. package/examples/typescript/json-xy/package.json +1 -1
  178. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  179. package/examples/typescript/map-clustered-points/package.json +1 -1
  180. package/examples/typescript/map-day-and-night/package.json +1 -1
  181. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  182. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  183. package/examples/typescript/map-sankey/README.md +6 -0
  184. package/examples/typescript/map-sankey/index.css +11 -0
  185. package/examples/typescript/map-sankey/index.html +13 -0
  186. package/examples/typescript/map-sankey/index.ts +368 -0
  187. package/examples/typescript/map-sankey/package.json +19 -0
  188. package/examples/typescript/map-sankey/tsconfig.json +12 -0
  189. package/examples/typescript/map-sankey/webpack.config.js +45 -0
  190. package/examples/typescript/map-sankey-waypoints/README.md +6 -0
  191. package/examples/typescript/map-sankey-waypoints/index.css +11 -0
  192. package/examples/typescript/map-sankey-waypoints/index.html +13 -0
  193. package/examples/typescript/map-sankey-waypoints/index.ts +394 -0
  194. package/examples/typescript/map-sankey-waypoints/package.json +19 -0
  195. package/examples/typescript/map-sankey-waypoints/tsconfig.json +12 -0
  196. package/examples/typescript/map-sankey-waypoints/webpack.config.js +45 -0
  197. package/examples/typescript/map-with-bubbles/package.json +1 -1
  198. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  199. package/examples/typescript/misc-40-charts/package.json +1 -1
  200. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  201. package/examples/typescript/pie-chart/package.json +1 -1
  202. package/examples/typescript/pie-donut-chart/package.json +1 -1
  203. package/examples/typescript/pie-variable-radius/package.json +1 -1
  204. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  205. package/examples/typescript/radar-heat-map/package.json +1 -1
  206. package/examples/typescript/radar-line/package.json +1 -1
  207. package/examples/typescript/radar-time-line/package.json +1 -1
  208. package/examples/typescript/sliced-funnel/package.json +1 -1
  209. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  210. package/examples/typescript/sliced-pyramid/package.json +1 -1
  211. package/examples/typescript/stock-chart/package.json +1 -1
  212. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  213. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  214. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  215. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  216. package/examples/typescript/stock-chart-live/package.json +1 -1
  217. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  218. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  219. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  220. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  221. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  222. package/examples/typescript/venn-diagram/package.json +1 -1
  223. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  224. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  225. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  226. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  227. package/examples/typescript/xy-bubble/package.json +1 -1
  228. package/examples/typescript/xy-candlestick/package.json +1 -1
  229. package/examples/typescript/xy-clustered-column/package.json +1 -1
  230. package/examples/typescript/xy-column/package.json +1 -1
  231. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  232. package/examples/typescript/xy-data-grouping/package.json +1 -1
  233. package/examples/typescript/xy-draggable-range/package.json +1 -1
  234. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  235. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  236. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  237. package/examples/typescript/xy-line/package.json +1 -1
  238. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  239. package/examples/typescript/xy-live-data/package.json +1 -1
  240. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  241. package/examples/typescript/xy-ohlc/package.json +1 -1
  242. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  243. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  244. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  245. package/examples/typescript/xy-stacked-column/package.json +1 -1
  246. package/examples/typescript/xy-stacked-step/package.json +1 -1
  247. package/examples/typescript/xy-stock/package.json +1 -1
  248. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  249. package/index.d.ts +1 -0
  250. package/index.d.ts.map +1 -1
  251. package/index.js +1 -0
  252. package/index.js.map +1 -1
  253. package/map.d.ts +2 -0
  254. package/map.d.ts.map +1 -1
  255. package/map.js +2 -0
  256. package/map.js.map +1 -1
  257. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LinkedHierarchy.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/LinkedHierarchy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinkedHierarchy.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/LinkedHierarchy.ts"],"names":[],"mappings":"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"}
@@ -97,16 +97,23 @@ export class LinkedHierarchy extends Hierarchy {
97
97
  dataItem.setRaw("childLinks", []);
98
98
  dataItem.setRaw("links", []);
99
99
  super.processDataItem(dataItem);
100
+ // Run updateLinkWith once after the entire tree is processed, not per-node
101
+ if (!dataItem.get("parent")) {
102
+ this.updateLinkWith(this.dataItems);
103
+ }
104
+ }
105
+ addChildData(dataItem, data) {
106
+ super.addChildData(dataItem, data);
107
+ this.updateLinkWith(this.dataItems);
100
108
  }
101
109
  _processDataItem(dataItem) {
102
110
  super._processDataItem(dataItem);
103
111
  const parentDataItem = dataItem.get("parent");
104
- if (parentDataItem && parentDataItem.get("depth") >= this.get("topDepth")) {
112
+ if (parentDataItem && parentDataItem.get("depth") >= this.get("topDepth", 0)) {
105
113
  const link = this.linkDataItems(parentDataItem, dataItem);
106
114
  dataItem.setRaw("parentLink", link);
107
115
  }
108
116
  const node = dataItem.get("node");
109
- this.updateLinkWith(this.dataItems);
110
117
  node._updateLinks(0);
111
118
  }
112
119
  /**
@@ -144,13 +151,6 @@ export class LinkedHierarchy extends Hierarchy {
144
151
  _updateNode(dataItem) {
145
152
  super._updateNode(dataItem);
146
153
  this._animatePositions(dataItem);
147
- const hierarchyNode = dataItem.get("d3HierarchyNode");
148
- const hierarchyChildren = hierarchyNode.children;
149
- if (hierarchyChildren) {
150
- $array.each(hierarchyChildren, (hierarchyChild) => {
151
- this._updateNodes(hierarchyChild);
152
- });
153
- }
154
154
  const fill = dataItem.get("fill");
155
155
  const fillPattern = dataItem.get("fillPattern");
156
156
  const circle = dataItem.get("circle");
@@ -1 +1 @@
1
- {"version":3,"file":"LinkedHierarchy.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/LinkedHierarchy.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { Bullet } from \"../../core/render/Bullet\";\nimport type { Root } from \"../../core/Root\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport type * as d3hierarchy from \"d3-hierarchy\";\n\nimport { Hierarchy, IHierarchySettings, IHierarchyDataItem, IHierarchyPrivate, IHierarchyEvents } from \"./Hierarchy\";\nimport { Container } from \"../../core/render/Container\";\nimport { LinkedHierarchyNode } from \"./LinkedHierarchyNode\";\nimport { HierarchyLink } from \"./HierarchyLink\";\nimport { Template } from \"../../core/util/Template\";\nimport { Circle } from \"../../core/render/Circle\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { List } from \"../../core/util/List\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\n\n/**\n * @ignore\n */\nexport interface ILinkedHierarchyDataObject {\n\tname?: string,\n\tvalue?: number,\n\tchildren?: ILinkedHierarchyDataObject[],\n\tdataItem?: DataItem<ILinkedHierarchyDataItem>\n};\n\nexport interface ILinkedHierarchyDataItem extends IHierarchyDataItem {\n\n\t/**\n\t * An array of child data items.\n\t */\n\tchildren: Array<DataItem<ILinkedHierarchyDataItem>>;\n\n\t/**\n\t * A data item of a parent node.\n\t */\n\tparent: DataItem<ILinkedHierarchyDataItem>;\n\n\t/**\n\t * A related node.\n\t */\n\tnode: LinkedHierarchyNode;\n\n\t/**\n\t * [[Circle]] element of the related node.\n\t */\n\tcircle: Circle;\n\n\t/**\n\t * [[Circle]] element of the related node, representing outer circle.\n\t */\n\touterCircle: Circle;\n\n\t/**\n\t * A [[HierarchyLink]] leading to parent node.\n\t */\n\tparentLink: HierarchyLink;\n\n\t/**\n\t * An [[HierarchyLink]] leading to parent node.\n\t */\n\tlinks: Array<HierarchyLink>;\n\n\t/**\n\t * An array of [[HierarchyLink]] objects leading to child nodes.\n\t */\n\tchildLinks: Array<HierarchyLink>;\n\n\t/**\n\t * An array of IDs of directly linked nodes.\n\t */\n\tlinkWith: Array<string>;\n\n\t/**\n\t * @ignore\n\t */\n\td3HierarchyNode: d3hierarchy.HierarchyPointNode<ILinkedHierarchyDataObject>;\n}\n\nexport interface ILinkedHierarchySettings extends IHierarchySettings {\n\n\t/**\n\t * A field in data which holds IDs of nodes to link with.\n\t */\n\tlinkWithField?: string;\n\n}\n\nexport interface ILinkedHierarchyPrivate extends IHierarchyPrivate {\n}\n\nexport interface ILinkedHierarchyEvents extends IHierarchyEvents {\n}\n\n/**\n * A base class for linked hierarchy series.\n */\nexport abstract class LinkedHierarchy extends Hierarchy {\n\n\tpublic static className: string = \"LinkedHierarchy\";\n\tpublic static classNames: Array<string> = Hierarchy.classNames.concat([LinkedHierarchy.className]);\n\n\tdeclare public _settings: ILinkedHierarchySettings;\n\tdeclare public _privateSettings: ILinkedHierarchyPrivate;\n\tdeclare public _dataItemSettings: ILinkedHierarchyDataItem;\n\tdeclare public _events: ILinkedHierarchyEvents;\n\n\tpublic linkBullets: List<<D extends DataItem<IHierarchyDataItem>>(root: Root, source: D, target:D) => Bullet | undefined> = new List();\n\n\tprotected _afterNew() {\n\t\tthis.fields.push(\"linkWith\", \"x\", \"y\");\n\n\t\tthis._disposers.push(this.linkBullets.events.onAll(() => {\n\t\t\tthis.links.each((link) => {\n\t\t\t\tlink._handleBullets(this.linkBullets);\n\t\t\t})\n\t\t}))\n\n\t\tsuper._afterNew();\n\t}\n\n\t/**\n\t * A list of nodes in a [[LinkedHierarchy]] chart.\n\t *\n\t * @default new ListTemplate<LinkedHierarchyNode>\n\t */\n\tpublic readonly nodes: ListTemplate<LinkedHierarchyNode> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => LinkedHierarchyNode._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.nodes.template.get(\"themeTags\", []), [this._tag, \"linkedhierarchy\", \"hierarchy\", \"node\"]),\n\t\t\tx: this.width() / 2,\n\t\t\ty: this.height() / 2\n\t\t}, [this.nodes.template])\n\t));\n\n\t/**\n\t * A list of node circle elements in a [[LinkedHierarchy]] chart.\n\t *\n\t * @default new ListTemplate<Circle>\n\t */\n\tpublic readonly circles: ListTemplate<Circle> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Circle._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.circles.template.get(\"themeTags\", []), [this._tag, \"shape\"])\n\t\t}, [this.circles.template])\n\t));\n\n\t/**\n\t * A list of node outer circle elements in a [[LinkedHierarchy]] chart.\n\t *\n\t * @default new ListTemplate<Circle>\n\t */\n\tpublic readonly outerCircles: ListTemplate<Circle> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Circle._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.outerCircles.template.get(\"themeTags\", []), [this._tag, \"outer\", \"shape\"])\n\t\t}, [this.outerCircles.template])\n\t));\n\n\t/**\n\t * A list of link elements in a [[LinkedHierarchy]] chart.\n\t *\n\t * @default new ListTemplate<HierarchyLink>\n\t */\n\tpublic readonly links: ListTemplate<HierarchyLink> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => HierarchyLink._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.links.template.get(\"themeTags\", []), [this._tag, \"linkedhierarchy\", \"hierarchy\", \"link\"])\n\t\t}, [this.links.template])\n\t));\n\n\t/**\n\t * A [[Container]] that link elements are placed in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly linksContainer = this.children.moveValue(Container.new(this._root, {}), 0);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeNode(dataItem: DataItem<this[\"_dataItemSettings\"]>): LinkedHierarchyNode {\n\t\tconst node = super.makeNode(dataItem) as LinkedHierarchyNode;\n\n\t\tconst circle = node.children.moveValue(this.circles.make(), 0);\n\t\tthis.circles.push(circle);\n\t\tnode.setPrivate(\"tooltipTarget\", circle);\n\t\tdataItem.setRaw(\"circle\", circle);\n\n\t\tconst outerCircle = node.children.moveValue(this.outerCircles.make(), 0);\n\t\tthis.outerCircles.push(outerCircle);\n\t\tdataItem.setRaw(\"outerCircle\", outerCircle);\n\n\t\tconst label = dataItem.get(\"label\");\n\n\t\tcircle.on(\"radius\", () => {\n\t\t\tconst d = circle.get(\"radius\", this.width()) * 2;\n\t\t\tlabel.setAll({ maxWidth: d, maxHeight: d })\n\t\t\touterCircle.set(\"radius\", d / 2);\n\n\t\t\tthis._handleRadiusChange();\n\t\t})\n\n\t\tconst d = circle.get(\"radius\", this.width()) * 2;\n\t\tlabel.setAll({ maxWidth: d, maxHeight: d });\n\n\t\tcircle._setDataItem(dataItem);\n\t\touterCircle._setDataItem(dataItem);\n\n\t\treturn node;\n\t}\n\n\tpublic _handleRadiusChange() {\n\n\t}\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tdataItem.setRaw(\"childLinks\", []);\n\t\tdataItem.setRaw(\"links\", []);\n\t\tsuper.processDataItem(dataItem);\n\t}\n\n\tprotected _processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper._processDataItem(dataItem);\n\n\t\tconst parentDataItem = dataItem.get(\"parent\");\n\t\tif (parentDataItem && parentDataItem.get(\"depth\") >= this.get(\"topDepth\")) {\n\t\t\tconst link = this.linkDataItems(parentDataItem, dataItem);\n\t\t\tdataItem.setRaw(\"parentLink\", link);\n\t\t}\n\n\t\tconst node = dataItem.get(\"node\");\n\t\tthis.updateLinkWith(this.dataItems);\n\t\tnode._updateLinks(0);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLinkWith(dataItems: Array<DataItem<this[\"_dataItemSettings\"]>>) {\n\t\t$array.each(dataItems, (dataItem) => {\n\t\t\tconst linkWith = dataItem.get(\"linkWith\");\n\t\t\tif (linkWith) {\n\t\t\t\t$array.each(linkWith, (id) => {\n\t\t\t\t\tconst linkWithDataItem = this._getDataItemById(this.dataItems, id);\n\n\t\t\t\t\tif (linkWithDataItem) {\n\t\t\t\t\t\tthis.linkDataItems(dataItem, linkWithDataItem);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst children = dataItem.get(\"children\");\n\t\t\tif (children) {\n\t\t\t\tthis.updateLinkWith(children);\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _getPoint(hierarchyNode: this[\"_dataItemSettings\"][\"d3HierarchyNode\"]): IPoint {\n\t\treturn { x: hierarchyNode.x, y: hierarchyNode.y };\n\t}\n\n\tprotected _animatePositions(dataItem: DataItem<this[\"_dataItemSettings\"]>){\n\t\tconst node = dataItem.get(\"node\");\n\t\tconst hierarchyNode = dataItem.get(\"d3HierarchyNode\");\n\n\t\tconst point = this._getPoint(hierarchyNode);\n\n\t\tconst duration = this.get(\"animationDuration\", 0);\n\t\tconst easing = this.get(\"animationEasing\");\n\n\t\tnode.animate({ key: \"x\", to: point.x, duration: duration, easing: easing });\n\t\tnode.animate({ key: \"y\", to: point.y, duration: duration, easing: easing });\n\t}\n\n\tprotected _updateNode(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper._updateNode(dataItem);\n\n\t\tthis._animatePositions(dataItem);\n\n\t\tconst hierarchyNode = dataItem.get(\"d3HierarchyNode\");\n\n\t\tconst hierarchyChildren = hierarchyNode.children;\n\t\tif (hierarchyChildren) {\n\t\t\t$array.each(hierarchyChildren, (hierarchyChild) => {\n\t\t\t\tthis._updateNodes(hierarchyChild)\n\t\t\t})\n\t\t}\n\n\t\tconst fill = dataItem.get(\"fill\");\n\t\tconst fillPattern = dataItem.get(\"fillPattern\");\n\t\tconst circle = dataItem.get(\"circle\");\n\t\tconst children = dataItem.get(\"children\");\n\n\t\tif (circle) {\n\t\t\tcircle._setDefault(\"fill\", fill);\n\t\t\tcircle._setDefault(\"fillPattern\", fillPattern);\n\t\t\tcircle._setDefault(\"stroke\", fill);\n\t\t}\n\n\t\tconst outerCircle = dataItem.get(\"outerCircle\");\n\t\tif (outerCircle) {\n\t\t\touterCircle._setDefault(\"fill\", fill);\n\t\t\touterCircle._setDefault(\"stroke\", fill);\n\n\t\t\tif (!children || children.length == 0) {\n\t\t\t\touterCircle.setPrivate(\"visible\", false);\n\t\t\t}\n\t\t\telse{\n\t\t\t\touterCircle.setPrivate(\"visible\", true);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Link two data items with a link element.\n\t *\n\t * @param source Source node data item\n\t * @param target Target node data item\n\t * @param strength Link strength\n\t * @return Link element\n\t */\n\tpublic linkDataItems(source: DataItem<this[\"_dataItemSettings\"]>, target: DataItem<this[\"_dataItemSettings\"]>, strength?: number): HierarchyLink {\n\n\t\tlet link!: HierarchyLink;\n\n\t\tconst sourceLinks = source.get(\"links\");\n\n\t\tif (sourceLinks) {\n\t\t\t$array.each(sourceLinks, (lnk) => {\n\t\t\t\tif (lnk.get(\"target\") == target) {\n\t\t\t\t\tlink = lnk;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tconst targetLinks = target.get(\"links\");\n\n\t\tif (targetLinks) {\n\t\t\t$array.each(targetLinks, (lnk) => {\n\t\t\t\tif (lnk.get(\"target\") == source) {\n\t\t\t\t\tlink = lnk;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tif (!link) {\n\t\t\tlink = this.links.make();\n\t\t\tlink.series = this;\n\t\t\tthis.links.push(link);\n\t\t\tthis.linksContainer.children.push(link);\n\t\t\tlink.set(\"source\", source);\n\t\t\tlink.set(\"target\", target);\n\t\t\tlink._setDataItem(source);\n\n\t\t\tlink._handleBullets(this.linkBullets);\n\t\t\tlink.set(\"stroke\", source.get(\"fill\"));\n\t\t\tif (strength != null) {\n\t\t\t\tlink.set(\"strength\", strength)\n\t\t\t}\n\n\t\t\tsource.get(\"childLinks\").push(link);\n\n\t\t\t$array.move(source.get(\"links\"), link);\n\t\t\t$array.move(target.get(\"links\"), link);\n\n\t\t\tthis._processLink(link, source, target);\n\t\t}\n\n\t\treturn link;\n\t}\n\n\n\t/**\n\t * Unlink two linked data items.\n\t *\n\t * @param source Source node data item\n\t * @param target Target node data item\n\t */\n\tpublic unlinkDataItems(source: DataItem<this[\"_dataItemSettings\"]>, target: DataItem<this[\"_dataItemSettings\"]>) {\n\n\t\tlet link!: HierarchyLink;\n\n\t\tconst sourceLinks = source.get(\"links\");\n\n\t\tif (sourceLinks) {\n\t\t\t$array.each(sourceLinks, (lnk) => {\n\t\t\t\tif (lnk && lnk.get(\"target\") == target) {\n\t\t\t\t\tlink = lnk;\n\t\t\t\t\t$array.remove(sourceLinks, link);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tconst targetLinks = target.get(\"links\");\n\n\t\tif (targetLinks) {\n\t\t\t$array.each(targetLinks, (lnk) => {\n\t\t\t\tif (lnk && lnk.get(\"target\") == source) {\n\t\t\t\t\tlink = lnk;\n\t\t\t\t\t$array.remove(targetLinks, link);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tif (link) {\n\t\t\tthis._disposeLink(link);\n\t\t}\n\n\t\tthis._handleUnlink();\n\t}\n\n\tprotected _handleUnlink() {\n\n\t}\n\n\tprotected _disposeLink(link: HierarchyLink) {\n\t\tthis.links.removeValue(link);\n\t\tlink.dispose();\n\t}\n\n\t/**\n\t * Returns `true` if two nodes are linked with each other.\n\t */\n\tpublic areLinked(source: DataItem<this[\"_dataItemSettings\"]>, target: DataItem<this[\"_dataItemSettings\"]>): boolean {\n\t\tconst sourceLinks = source.get(\"links\");\n\t\tlet linked = false;\n\t\tif (sourceLinks) {\n\t\t\t$array.each(sourceLinks, (lnk) => {\n\t\t\t\tif (lnk.get(\"target\") == target) {\n\t\t\t\t\tlinked = true;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tconst targetLinks = target.get(\"links\");\n\n\t\tif (targetLinks) {\n\t\t\t$array.each(targetLinks, (lnk) => {\n\t\t\t\tif (lnk.get(\"target\") == source) {\n\t\t\t\t\tlinked = true;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\treturn linked;\n\t}\n\n\tprotected _processLink(_link: HierarchyLink, _source: DataItem<this[\"_dataItemSettings\"]>, _target: DataItem<this[\"_dataItemSettings\"]>) {\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tconst links = dataItem.get(\"links\");\n\t\tif (links) {\n\t\t\t$array.each(links, (link) => {\n\t\t\t\tthis._disposeLink(link)\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * Select a data item.\n\t * @param dataItem Data item\n\t */\n\tpublic selectDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst parent = dataItem.get(\"parent\");\n\n\t\tif (!dataItem.get(\"disabled\")) {\n\t\t\tthis.set(\"selectedDataItem\", dataItem);\n\t\t}\n\t\telse {\n\t\t\tif (parent) {\n\t\t\t\tthis.setRaw(\"selectedDataItem\", parent);\n\t\t\t\tconst type = \"dataitemselected\";\n\t\t\t\tthis.events.dispatch(type, { type: type, target: this, dataItem: parent });\n\t\t\t\tthis.disableDataItem(dataItem);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"LinkedHierarchy.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/LinkedHierarchy.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { Bullet } from \"../../core/render/Bullet\";\nimport type { Root } from \"../../core/Root\";\nimport type { IPoint } from \"../../core/util/IPoint\";\nimport type * as d3hierarchy from \"d3-hierarchy\";\n\nimport { Hierarchy, IHierarchySettings, IHierarchyDataItem, IHierarchyPrivate, IHierarchyEvents } from \"./Hierarchy\";\nimport { Container } from \"../../core/render/Container\";\nimport { LinkedHierarchyNode } from \"./LinkedHierarchyNode\";\nimport { HierarchyLink } from \"./HierarchyLink\";\nimport { Template } from \"../../core/util/Template\";\nimport { Circle } from \"../../core/render/Circle\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { List } from \"../../core/util/List\";\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $utils from \"../../core/util/Utils\";\n\n/**\n * @ignore\n */\nexport interface ILinkedHierarchyDataObject {\n\tname?: string,\n\tvalue?: number,\n\tchildren?: ILinkedHierarchyDataObject[],\n\tdataItem?: DataItem<ILinkedHierarchyDataItem>\n};\n\nexport interface ILinkedHierarchyDataItem extends IHierarchyDataItem {\n\n\t/**\n\t * An array of child data items.\n\t */\n\tchildren: Array<DataItem<ILinkedHierarchyDataItem>>;\n\n\t/**\n\t * A data item of a parent node.\n\t */\n\tparent: DataItem<ILinkedHierarchyDataItem>;\n\n\t/**\n\t * A related node.\n\t */\n\tnode: LinkedHierarchyNode;\n\n\t/**\n\t * [[Circle]] element of the related node.\n\t */\n\tcircle: Circle;\n\n\t/**\n\t * [[Circle]] element of the related node, representing outer circle.\n\t */\n\touterCircle: Circle;\n\n\t/**\n\t * A [[HierarchyLink]] leading to parent node.\n\t */\n\tparentLink: HierarchyLink;\n\n\t/**\n\t * An [[HierarchyLink]] leading to parent node.\n\t */\n\tlinks: Array<HierarchyLink>;\n\n\t/**\n\t * An array of [[HierarchyLink]] objects leading to child nodes.\n\t */\n\tchildLinks: Array<HierarchyLink>;\n\n\t/**\n\t * An array of IDs of directly linked nodes.\n\t */\n\tlinkWith: Array<string>;\n\n\t/**\n\t * @ignore\n\t */\n\td3HierarchyNode: d3hierarchy.HierarchyPointNode<ILinkedHierarchyDataObject>;\n}\n\nexport interface ILinkedHierarchySettings extends IHierarchySettings {\n\n\t/**\n\t * A field in data which holds IDs of nodes to link with.\n\t */\n\tlinkWithField?: string;\n\n}\n\nexport interface ILinkedHierarchyPrivate extends IHierarchyPrivate {\n}\n\nexport interface ILinkedHierarchyEvents extends IHierarchyEvents {\n}\n\n/**\n * A base class for linked hierarchy series.\n */\n\nexport abstract class LinkedHierarchy extends Hierarchy {\n\n\tpublic static className: string = \"LinkedHierarchy\";\n\tpublic static classNames: Array<string> = Hierarchy.classNames.concat([LinkedHierarchy.className]);\n\n\tdeclare public _settings: ILinkedHierarchySettings;\n\tdeclare public _privateSettings: ILinkedHierarchyPrivate;\n\tdeclare public _dataItemSettings: ILinkedHierarchyDataItem;\n\tdeclare public _events: ILinkedHierarchyEvents;\n\n\tpublic linkBullets: List<<D extends DataItem<IHierarchyDataItem>>(root: Root, source: D, target:D) => Bullet | undefined> = new List();\n\n\tprotected _afterNew() {\n\t\tthis.fields.push(\"linkWith\", \"x\", \"y\");\n\n\t\tthis._disposers.push(this.linkBullets.events.onAll(() => {\n\t\t\tthis.links.each((link) => {\n\t\t\t\tlink._handleBullets(this.linkBullets);\n\t\t\t})\n\t\t}))\n\n\t\tsuper._afterNew();\n\t}\n\n\t/**\n\t * A list of nodes in a [[LinkedHierarchy]] chart.\n\t *\n\t * @default new ListTemplate<LinkedHierarchyNode>\n\t */\n\tpublic readonly nodes: ListTemplate<LinkedHierarchyNode> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => LinkedHierarchyNode._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.nodes.template.get(\"themeTags\", []), [this._tag, \"linkedhierarchy\", \"hierarchy\", \"node\"]),\n\t\t\tx: this.width() / 2,\n\t\t\ty: this.height() / 2\n\t\t}, [this.nodes.template])\n\t));\n\n\t/**\n\t * A list of node circle elements in a [[LinkedHierarchy]] chart.\n\t *\n\t * @default new ListTemplate<Circle>\n\t */\n\tpublic readonly circles: ListTemplate<Circle> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Circle._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.circles.template.get(\"themeTags\", []), [this._tag, \"shape\"])\n\t\t}, [this.circles.template])\n\t));\n\n\t/**\n\t * A list of node outer circle elements in a [[LinkedHierarchy]] chart.\n\t *\n\t * @default new ListTemplate<Circle>\n\t */\n\tpublic readonly outerCircles: ListTemplate<Circle> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => Circle._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.outerCircles.template.get(\"themeTags\", []), [this._tag, \"outer\", \"shape\"])\n\t\t}, [this.outerCircles.template])\n\t));\n\n\t/**\n\t * A list of link elements in a [[LinkedHierarchy]] chart.\n\t *\n\t * @default new ListTemplate<HierarchyLink>\n\t */\n\tpublic readonly links: ListTemplate<HierarchyLink> = this.addDisposer(new ListTemplate(\n\t\tTemplate.new({}),\n\t\t() => HierarchyLink._new(this._root, {\n\t\t\tthemeTags: $utils.mergeTags(this.links.template.get(\"themeTags\", []), [this._tag, \"linkedhierarchy\", \"hierarchy\", \"link\"])\n\t\t}, [this.links.template])\n\t));\n\n\t/**\n\t * A [[Container]] that link elements are placed in.\n\t *\n\t * @default Container.new()\n\t */\n\tpublic readonly linksContainer = this.children.moveValue(Container.new(this._root, {}), 0);\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeNode(dataItem: DataItem<this[\"_dataItemSettings\"]>): LinkedHierarchyNode {\n\t\tconst node = super.makeNode(dataItem) as LinkedHierarchyNode;\n\n\t\tconst circle = node.children.moveValue(this.circles.make(), 0);\n\t\tthis.circles.push(circle);\n\t\tnode.setPrivate(\"tooltipTarget\", circle);\n\t\tdataItem.setRaw(\"circle\", circle);\n\n\t\tconst outerCircle = node.children.moveValue(this.outerCircles.make(), 0);\n\t\tthis.outerCircles.push(outerCircle);\n\t\tdataItem.setRaw(\"outerCircle\", outerCircle);\n\n\t\tconst label = dataItem.get(\"label\");\n\n\t\tcircle.on(\"radius\", () => {\n\t\t\tconst d = circle.get(\"radius\", this.width()) * 2;\n\t\t\tlabel.setAll({ maxWidth: d, maxHeight: d })\n\t\t\touterCircle.set(\"radius\", d / 2);\n\n\t\t\tthis._handleRadiusChange();\n\t\t})\n\n\t\tconst d = circle.get(\"radius\", this.width()) * 2;\n\t\tlabel.setAll({ maxWidth: d, maxHeight: d });\n\n\t\tcircle._setDataItem(dataItem);\n\t\touterCircle._setDataItem(dataItem);\n\n\t\treturn node;\n\t}\n\n\tpublic _handleRadiusChange() {\n\n\t}\n\n\tprotected processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tdataItem.setRaw(\"childLinks\", []);\n\t\tdataItem.setRaw(\"links\", []);\n\t\tsuper.processDataItem(dataItem);\n\n\t\t// Run updateLinkWith once after the entire tree is processed, not per-node\n\t\tif (!dataItem.get(\"parent\")) {\n\t\t\tthis.updateLinkWith(this.dataItems);\n\t\t}\n\t}\n\n\tpublic addChildData(dataItem: DataItem<this[\"_dataItemSettings\"]>, data: Array<any>) {\n\t\tsuper.addChildData(dataItem, data);\n\t\tthis.updateLinkWith(this.dataItems);\n\t}\n\n\tprotected _processDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper._processDataItem(dataItem);\n\n\t\tconst parentDataItem = dataItem.get(\"parent\");\n\t\tif (parentDataItem && parentDataItem.get(\"depth\") >= this.get(\"topDepth\", 0)) {\n\t\t\tconst link = this.linkDataItems(parentDataItem, dataItem);\n\t\t\tdataItem.setRaw(\"parentLink\", link);\n\t\t}\n\n\t\tconst node = dataItem.get(\"node\");\n\t\tnode._updateLinks(0);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateLinkWith(dataItems: Array<DataItem<this[\"_dataItemSettings\"]>>) {\n\t\t$array.each(dataItems, (dataItem) => {\n\t\t\tconst linkWith = dataItem.get(\"linkWith\");\n\t\t\tif (linkWith) {\n\t\t\t\t$array.each(linkWith, (id) => {\n\t\t\t\t\tconst linkWithDataItem = this._getDataItemById(this.dataItems, id);\n\n\t\t\t\t\tif (linkWithDataItem) {\n\t\t\t\t\t\tthis.linkDataItems(dataItem, linkWithDataItem);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst children = dataItem.get(\"children\");\n\t\t\tif (children) {\n\t\t\t\tthis.updateLinkWith(children);\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _getPoint(hierarchyNode: this[\"_dataItemSettings\"][\"d3HierarchyNode\"]): IPoint {\n\t\treturn { x: hierarchyNode.x, y: hierarchyNode.y };\n\t}\n\n\tprotected _animatePositions(dataItem: DataItem<this[\"_dataItemSettings\"]>){\n\t\tconst node = dataItem.get(\"node\");\n\t\tconst hierarchyNode = dataItem.get(\"d3HierarchyNode\");\n\n\t\tconst point = this._getPoint(hierarchyNode);\n\n\t\tconst duration = this.get(\"animationDuration\", 0);\n\t\tconst easing = this.get(\"animationEasing\");\n\n\t\tnode.animate({ key: \"x\", to: point.x, duration: duration, easing: easing });\n\t\tnode.animate({ key: \"y\", to: point.y, duration: duration, easing: easing });\n\t}\n\n\tprotected _updateNode(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper._updateNode(dataItem);\n\n\t\tthis._animatePositions(dataItem);\n\n\t\tconst fill = dataItem.get(\"fill\");\n\t\tconst fillPattern = dataItem.get(\"fillPattern\");\n\t\tconst circle = dataItem.get(\"circle\");\n\t\tconst children = dataItem.get(\"children\");\n\n\t\tif (circle) {\n\t\t\tcircle._setDefault(\"fill\", fill);\n\t\t\tcircle._setDefault(\"fillPattern\", fillPattern);\n\t\t\tcircle._setDefault(\"stroke\", fill);\n\t\t}\n\n\t\tconst outerCircle = dataItem.get(\"outerCircle\");\n\t\tif (outerCircle) {\n\t\t\touterCircle._setDefault(\"fill\", fill);\n\t\t\touterCircle._setDefault(\"stroke\", fill);\n\n\t\t\tif (!children || children.length == 0) {\n\t\t\t\touterCircle.setPrivate(\"visible\", false);\n\t\t\t}\n\t\t\telse{\n\t\t\t\touterCircle.setPrivate(\"visible\", true);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Link two data items with a link element.\n\t *\n\t * @param source Source node data item\n\t * @param target Target node data item\n\t * @param strength Link strength\n\t * @return Link element\n\t */\n\tpublic linkDataItems(source: DataItem<this[\"_dataItemSettings\"]>, target: DataItem<this[\"_dataItemSettings\"]>, strength?: number): HierarchyLink {\n\n\t\tlet link!: HierarchyLink;\n\n\t\tconst sourceLinks = source.get(\"links\");\n\n\t\tif (sourceLinks) {\n\t\t\t$array.each(sourceLinks, (lnk) => {\n\t\t\t\tif (lnk.get(\"target\") == target) {\n\t\t\t\t\tlink = lnk;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tconst targetLinks = target.get(\"links\");\n\n\t\tif (targetLinks) {\n\t\t\t$array.each(targetLinks, (lnk) => {\n\t\t\t\tif (lnk.get(\"target\") == source) {\n\t\t\t\t\tlink = lnk;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tif (!link) {\n\t\t\tlink = this.links.make();\n\t\t\tlink.series = this;\n\t\t\tthis.links.push(link);\n\t\t\tthis.linksContainer.children.push(link);\n\t\t\tlink.set(\"source\", source);\n\t\t\tlink.set(\"target\", target);\n\t\t\tlink._setDataItem(source);\n\n\t\t\tlink._handleBullets(this.linkBullets);\n\t\t\tlink.set(\"stroke\", source.get(\"fill\"));\n\t\t\tif (strength != null) {\n\t\t\t\tlink.set(\"strength\", strength)\n\t\t\t}\n\n\t\t\tsource.get(\"childLinks\").push(link);\n\n\t\t\t$array.move(source.get(\"links\"), link);\n\t\t\t$array.move(target.get(\"links\"), link);\n\n\t\t\tthis._processLink(link, source, target);\n\t\t}\n\n\t\treturn link;\n\t}\n\n\n\t/**\n\t * Unlink two linked data items.\n\t *\n\t * @param source Source node data item\n\t * @param target Target node data item\n\t */\n\tpublic unlinkDataItems(source: DataItem<this[\"_dataItemSettings\"]>, target: DataItem<this[\"_dataItemSettings\"]>) {\n\n\t\tlet link!: HierarchyLink;\n\n\t\tconst sourceLinks = source.get(\"links\");\n\n\t\tif (sourceLinks) {\n\t\t\t$array.each(sourceLinks, (lnk) => {\n\t\t\t\tif (lnk && lnk.get(\"target\") == target) {\n\t\t\t\t\tlink = lnk;\n\t\t\t\t\t$array.remove(sourceLinks, link);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tconst targetLinks = target.get(\"links\");\n\n\t\tif (targetLinks) {\n\t\t\t$array.each(targetLinks, (lnk) => {\n\t\t\t\tif (lnk && lnk.get(\"target\") == source) {\n\t\t\t\t\tlink = lnk;\n\t\t\t\t\t$array.remove(targetLinks, link);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tif (link) {\n\t\t\tthis._disposeLink(link);\n\t\t}\n\n\t\tthis._handleUnlink();\n\t}\n\n\tprotected _handleUnlink() {\n\n\t}\n\n\tprotected _disposeLink(link: HierarchyLink) {\n\t\tthis.links.removeValue(link);\n\t\tlink.dispose();\n\t}\n\n\t/**\n\t * Returns `true` if two nodes are linked with each other.\n\t */\n\tpublic areLinked(source: DataItem<this[\"_dataItemSettings\"]>, target: DataItem<this[\"_dataItemSettings\"]>): boolean {\n\t\tconst sourceLinks = source.get(\"links\");\n\t\tlet linked = false;\n\t\tif (sourceLinks) {\n\t\t\t$array.each(sourceLinks, (lnk) => {\n\t\t\t\tif (lnk.get(\"target\") == target) {\n\t\t\t\t\tlinked = true;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tconst targetLinks = target.get(\"links\");\n\n\t\tif (targetLinks) {\n\t\t\t$array.each(targetLinks, (lnk) => {\n\t\t\t\tif (lnk.get(\"target\") == source) {\n\t\t\t\t\tlinked = true;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\treturn linked;\n\t}\n\n\tprotected _processLink(_link: HierarchyLink, _source: DataItem<this[\"_dataItemSettings\"]>, _target: DataItem<this[\"_dataItemSettings\"]>) {\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tsuper.disposeDataItem(dataItem);\n\t\tconst links = dataItem.get(\"links\");\n\t\tif (links) {\n\t\t\t$array.each(links, (link) => {\n\t\t\t\tthis._disposeLink(link)\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * Select a data item.\n\t * @param dataItem Data item\n\t */\n\tpublic selectDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tconst parent = dataItem.get(\"parent\");\n\n\t\tif (!dataItem.get(\"disabled\")) {\n\t\t\tthis.set(\"selectedDataItem\", dataItem);\n\t\t}\n\t\telse {\n\t\t\tif (parent) {\n\t\t\t\tthis.setRaw(\"selectedDataItem\", parent);\n\t\t\t\tconst type = \"dataitemselected\";\n\t\t\t\tthis.events.dispatch(type, { type: type, target: this, dataItem: parent });\n\t\t\t\tthis.disableDataItem(dataItem);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -33,6 +33,26 @@ export interface ITreeSettings extends ILinkedHierarchySettings {
33
33
  * @since 5.2.4
34
34
  */
35
35
  inversed?: boolean;
36
+ /**
37
+ * If set to `true`, will use cluster layout (dendrogram) where all leaf
38
+ * nodes are placed at the same depth.
39
+ *
40
+ * @default false
41
+ * @since 5.16.2
42
+ */
43
+ clustered?: boolean;
44
+ /**
45
+ * A function that returns the desired separation between neighboring
46
+ * nodes. Receives two data items and should return a numeric value.
47
+ *
48
+ * Default is `1` for siblings, `2` for non-siblings.
49
+ *
50
+ * Can be used to create variable node spacing based on value, label
51
+ * size, or other data properties.
52
+ *
53
+ * @since 5.16.2
54
+ */
55
+ nodeSeparation?: (a: DataItem<ITreeDataItem>, b: DataItem<ITreeDataItem>) => number;
36
56
  }
37
57
  export interface ITreePrivate extends ILinkedHierarchyPrivate {
38
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/Tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEzJ,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,wBAAwB;IAE9D;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAEzC;;;OAGG;IACH,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CAEhC;AAED,MAAM,WAAW,aAAc,SAAQ,wBAAwB;IAE9D;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CAEnB;AAED,MAAM,WAAW,YAAa,SAAQ,uBAAuB;IAE5D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,sBAAsB;CAC1D;AAED;;;;;GAKG;AACH,qBAAa,IAAK,SAAQ,eAAe;IAEzB,SAAS,EAAE,aAAa,CAAC;IACzB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,iBAAiB,EAAE,aAAa,CAAC;IAEhD,SAAS,CAAC,IAAI,EAAE,MAAM,CAAU;IAEhC,OAAc,SAAS,EAAE,MAAM,CAAU;IACzC,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuD;IAEvF,gBAAgB,kCAAsB;IAC9B,SAAS,EAAE,WAAW,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAClF,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;IAEvC,gBAAgB;IAQvB,SAAS,CAAC,cAAc;IAiBxB,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,CAAC,GAAG,MAAM;CAoBxF"}
1
+ {"version":3,"file":"Tree.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/Tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEzJ,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,wBAAwB;IAE9D;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAEzC;;;OAGG;IACH,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CAEhC;AAED,MAAM,WAAW,aAAc,SAAQ,wBAAwB;IAE9D;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC;CAEpF;AAED,MAAM,WAAW,YAAa,SAAQ,uBAAuB;IAE5D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,sBAAsB;CAC1D;AAED;;;;;GAKG;AACH,qBAAa,IAAK,SAAQ,eAAe;IAEzB,SAAS,EAAE,aAAa,CAAC;IACzB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,iBAAiB,EAAE,aAAa,CAAC;IAEhD,SAAS,CAAC,IAAI,EAAE,MAAM,CAAU;IAEhC,OAAc,SAAS,EAAE,MAAM,CAAU;IACzC,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAuD;IAEvF,gBAAgB,kCAAsB;IAC9B,SAAS,EAAE,WAAW,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAClF,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;IAEvC,gBAAgB;IAavB,SAAS,CAAC,cAAc;IAwBxB,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,CAAC,GAAG,MAAM;CAoBxF"}
@@ -15,7 +15,11 @@ export class Tree extends LinkedHierarchy {
15
15
  }
16
16
  _prepareChildren() {
17
17
  super._prepareChildren();
18
- if (this.isDirty("orientation") || this.isDirty("inversed")) {
18
+ if (this.isDirty("clustered")) {
19
+ this._hierarchyLayout = this.get("clustered") ? d3hierarchy.cluster() : d3hierarchy.tree();
20
+ this._updateVisuals();
21
+ }
22
+ if (this.isDirty("orientation") || this.isDirty("inversed") || this.isDirty("nodeSeparation")) {
19
23
  this._updateVisuals();
20
24
  }
21
25
  }
@@ -28,6 +32,12 @@ export class Tree extends LinkedHierarchy {
28
32
  else {
29
33
  layout.size([this.innerHeight(), this.innerWidth()]);
30
34
  }
35
+ const nodeSeparation = this.get("nodeSeparation");
36
+ if (nodeSeparation) {
37
+ layout.separation((a, b) => {
38
+ return nodeSeparation(a.data.dataItem, b.data.dataItem);
39
+ });
40
+ }
31
41
  layout(this._rootNode);
32
42
  }
33
43
  super._updateVisuals();
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/Tree.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAuG,MAAM,mBAAmB,CAAC;AAEzJ,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAO3C,CAAC;AAoDF;;;;;GAKG;AACH,MAAM,OAAO,IAAK,SAAQ,eAAe;IAAzC;;QAMW,SAAI,GAAW,MAAM,CAAC;QAKzB,qBAAgB,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAiD9C,CAAC;IA7CO,gBAAgB;QACtB,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;SACtB;IACF,CAAC;IAES,cAAc;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAErC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,UAAU,EAAE;gBAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aACrD;iBACI;gBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aACrD;YAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvB;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAES,SAAS,CAAC,aAA2D;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,UAAU,EAAE;YAC1C,IAAI,QAAQ,EAAE;gBACb,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC;aACvE;iBACI;gBACJ,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;aAClD;SACD;aACI;YACJ,IAAI,QAAQ,EAAE;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;aACtE;iBACI;gBACJ,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;aAClD;SACD;IACF,CAAC;;AAlDa,cAAS,GAAW,MAAM,CAAC;AAC3B,eAAU,GAAkB,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { IPoint } from \"../../core/util/IPoint\";\n\nimport { LinkedHierarchy, ILinkedHierarchyPrivate, ILinkedHierarchySettings, ILinkedHierarchyDataItem, ILinkedHierarchyEvents } from \"./LinkedHierarchy\";\n\nimport * as d3hierarchy from \"d3-hierarchy\";\n\nexport interface ITreeDataObject {\n\tname?: string,\n\tvalue?: number,\n\tchildren?: ITreeDataObject[],\n\tdataItem?: DataItem<ITreeDataItem>\n};\n\nexport interface ITreeDataItem extends ILinkedHierarchyDataItem {\n\n\t/**\n\t * An array of children data items.\n\t */\n\tchildren: Array<DataItem<ITreeDataItem>>;\n\n\t/**\n\t * Parent data item.\n\t * @type {DataItem<ITreeDataItem>}\n\t */\n\tparent: DataItem<ITreeDataItem>;\n\n}\n\nexport interface ITreeSettings extends ILinkedHierarchySettings {\n\n\t/**\n\t * Orientation of the diagram.\n\t *\n\t * @default \"vertical\"\n\t */\n\torientation?: \"horizontal\" | \"vertical\";\n\n\t/**\n\t * If set to `true`, will flip the tree direction.\n\t *\n\t * @default false\n\t * @since 5.2.4\n\t */\n\tinversed?: boolean;\n\n}\n\nexport interface ITreePrivate extends ILinkedHierarchyPrivate {\n\n\t/**\n\t * Current horizontal scale.\n\t */\n\tscaleX?: number;\n\n\t/**\n\t * Current vertical scale.\n\t */\n\tscaleY?: number;\n}\n\nexport interface ITreeEvents extends ILinkedHierarchyEvents {\n}\n\n/**\n * Displays a tree diagram.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/tree/} for more info\n * @important\n */\nexport class Tree extends LinkedHierarchy {\n\n\tdeclare public _settings: ITreeSettings;\n\tdeclare public _privateSettings: ITreePrivate;\n\tdeclare public _dataItemSettings: ITreeDataItem;\n\n\tprotected _tag: string = \"tree\";\n\n\tpublic static className: string = \"Tree\";\n\tpublic static classNames: Array<string> = LinkedHierarchy.classNames.concat([Tree.className]);\n\n\tpublic _hierarchyLayout = d3hierarchy.tree();\n\tdeclare public _rootNode: d3hierarchy.HierarchyCircularNode<ITreeDataObject> | undefined;\n\tpublic _packData: ITreeDataObject | undefined;\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tif (this.isDirty(\"orientation\") || this.isDirty(\"inversed\")) {\n\t\t\tthis._updateVisuals();\n\t\t}\n\t}\n\n\tprotected _updateVisuals() {\n\t\tif (this._rootNode) {\n\t\t\tconst layout = this._hierarchyLayout;\n\n\t\t\tif (this.get(\"orientation\") == \"vertical\") {\n\t\t\t\tlayout.size([this.innerWidth(), this.innerHeight()]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlayout.size([this.innerHeight(), this.innerWidth()]);\n\t\t\t}\n\n\t\t\tlayout(this._rootNode);\n\t\t}\n\n\t\tsuper._updateVisuals();\n\t}\n\n\tprotected _getPoint(hierarchyNode: this[\"_dataItemSettings\"][\"d3HierarchyNode\"]): IPoint {\n\t\tconst inversed = this.get(\"inversed\");\n\t\tif (this.get(\"orientation\") == \"vertical\") {\n\t\t\tif (inversed) {\n\t\t\t\treturn { x: hierarchyNode.x, y: this.innerHeight() - hierarchyNode.y };\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn { x: hierarchyNode.x, y: hierarchyNode.y };\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (inversed) {\n\t\t\t\treturn { x: this.innerWidth() - hierarchyNode.y, y: hierarchyNode.x };\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn { x: hierarchyNode.y, y: hierarchyNode.x };\n\t\t\t}\n\t\t}\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/hierarchy/Tree.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { IPoint } from \"../../core/util/IPoint\";\n\nimport { LinkedHierarchy, ILinkedHierarchyPrivate, ILinkedHierarchySettings, ILinkedHierarchyDataItem, ILinkedHierarchyEvents } from \"./LinkedHierarchy\";\n\nimport * as d3hierarchy from \"d3-hierarchy\";\n\nexport interface ITreeDataObject {\n\tname?: string,\n\tvalue?: number,\n\tchildren?: ITreeDataObject[],\n\tdataItem?: DataItem<ITreeDataItem>\n};\n\nexport interface ITreeDataItem extends ILinkedHierarchyDataItem {\n\n\t/**\n\t * An array of children data items.\n\t */\n\tchildren: Array<DataItem<ITreeDataItem>>;\n\n\t/**\n\t * Parent data item.\n\t * @type {DataItem<ITreeDataItem>}\n\t */\n\tparent: DataItem<ITreeDataItem>;\n\n}\n\nexport interface ITreeSettings extends ILinkedHierarchySettings {\n\n\t/**\n\t * Orientation of the diagram.\n\t *\n\t * @default \"vertical\"\n\t */\n\torientation?: \"horizontal\" | \"vertical\";\n\n\t/**\n\t * If set to `true`, will flip the tree direction.\n\t *\n\t * @default false\n\t * @since 5.2.4\n\t */\n\tinversed?: boolean;\n\n\t/**\n\t * If set to `true`, will use cluster layout (dendrogram) where all leaf\n\t * nodes are placed at the same depth.\n\t *\n\t * @default false\n\t * @since 5.16.2\n\t */\n\tclustered?: boolean;\n\n\t/**\n\t * A function that returns the desired separation between neighboring\n\t * nodes. Receives two data items and should return a numeric value.\n\t *\n\t * Default is `1` for siblings, `2` for non-siblings.\n\t *\n\t * Can be used to create variable node spacing based on value, label\n\t * size, or other data properties.\n\t *\n\t * @since 5.16.2\n\t */\n\tnodeSeparation?: (a: DataItem<ITreeDataItem>, b: DataItem<ITreeDataItem>) => number;\n\n}\n\nexport interface ITreePrivate extends ILinkedHierarchyPrivate {\n\n\t/**\n\t * Current horizontal scale.\n\t */\n\tscaleX?: number;\n\n\t/**\n\t * Current vertical scale.\n\t */\n\tscaleY?: number;\n}\n\nexport interface ITreeEvents extends ILinkedHierarchyEvents {\n}\n\n/**\n * Displays a tree diagram.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/hierarchy/tree/} for more info\n * @important\n */\nexport class Tree extends LinkedHierarchy {\n\n\tdeclare public _settings: ITreeSettings;\n\tdeclare public _privateSettings: ITreePrivate;\n\tdeclare public _dataItemSettings: ITreeDataItem;\n\n\tprotected _tag: string = \"tree\";\n\n\tpublic static className: string = \"Tree\";\n\tpublic static classNames: Array<string> = LinkedHierarchy.classNames.concat([Tree.className]);\n\n\tpublic _hierarchyLayout = d3hierarchy.tree();\n\tdeclare public _rootNode: d3hierarchy.HierarchyCircularNode<ITreeDataObject> | undefined;\n\tpublic _packData: ITreeDataObject | undefined;\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tif (this.isDirty(\"clustered\")) {\n\t\t\tthis._hierarchyLayout = this.get(\"clustered\") ? d3hierarchy.cluster() : d3hierarchy.tree();\n\t\t\tthis._updateVisuals();\n\t\t}\n\n\t\tif (this.isDirty(\"orientation\") || this.isDirty(\"inversed\") || this.isDirty(\"nodeSeparation\")) {\n\t\t\tthis._updateVisuals();\n\t\t}\n\t}\n\n\tprotected _updateVisuals() {\n\t\tif (this._rootNode) {\n\t\t\tconst layout = this._hierarchyLayout;\n\n\t\t\tif (this.get(\"orientation\") == \"vertical\") {\n\t\t\t\tlayout.size([this.innerWidth(), this.innerHeight()]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlayout.size([this.innerHeight(), this.innerWidth()]);\n\t\t\t}\n\n\t\t\tconst nodeSeparation = this.get(\"nodeSeparation\");\n\t\t\tif (nodeSeparation) {\n\t\t\t\tlayout.separation((a: any, b: any) => {\n\t\t\t\t\treturn nodeSeparation(a.data.dataItem, b.data.dataItem);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlayout(this._rootNode);\n\t\t}\n\n\t\tsuper._updateVisuals();\n\t}\n\n\tprotected _getPoint(hierarchyNode: this[\"_dataItemSettings\"][\"d3HierarchyNode\"]): IPoint {\n\t\tconst inversed = this.get(\"inversed\");\n\t\tif (this.get(\"orientation\") == \"vertical\") {\n\t\t\tif (inversed) {\n\t\t\t\treturn { x: hierarchyNode.x, y: this.innerHeight() - hierarchyNode.y };\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn { x: hierarchyNode.x, y: hierarchyNode.y };\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (inversed) {\n\t\t\t\treturn { x: this.innerWidth() - hierarchyNode.y, y: hierarchyNode.x };\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn { x: hierarchyNode.y, y: hierarchyNode.x };\n\t\t\t}\n\t\t}\n\t}\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MapChartDefaultTheme.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChartDefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAQzC;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,SAAS,CAAC,iBAAiB;CAoG3B"}
1
+ {"version":3,"file":"MapChartDefaultTheme.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChartDefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAQzC;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,SAAS,CAAC,iBAAiB;CAwG3B"}
@@ -62,6 +62,9 @@ export class MapChartDefaultTheme extends Theme {
62
62
  r("MapLineSeries").setAll({
63
63
  affectsBounds: false
64
64
  });
65
+ r("MapSankeySeries").setAll({
66
+ affectsBounds: false
67
+ });
65
68
  {
66
69
  const rule = r("MapPolygon");
67
70
  rule.setAll({
@@ -1 +1 @@
1
- {"version":3,"file":"MapChartDefaultTheme.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChartDefaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAG9C;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,iBAAiB;QAC1B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B;;;;WAIG;QAEH,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACpB,UAAU,EAAE,WAAW,EAAE;YACzB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YACvC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YACnC,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,GAAG;YACd,kBAAkB,EAAE,IAAI;SACxB,CAAC,CAAC;QAEH;YACC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAE1B,IAAI,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,GAAG;gBACd,IAAI,EAAE,QAAQ;aACd,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;SACrC;QAED,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;YAC5B,aAAa,EAAE,IAAI;SACnB,CAAC,CAAA;QAGF,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;YAC1B,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;SAChB,CAAC,CAAA;QAEF,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC;YAChC,WAAW,EAAE,EAAE;YACf,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,IAAI;SACrB,CAAC,CAAA;QAEF,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;YACzB,aAAa,EAAE,KAAK;SACpB,CAAC,CAAA;QAEF;YACC,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;YAE7B,IAAI,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,GAAG;gBAChB,aAAa,EAAE,CAAC;aAChB,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;YAC5C,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;SAC3C;QAGD,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,OAAO,EAAE,KAAK;SACd,CAAC,CAAC;QAEH;;;;WAIG;QAEH,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,EAAE;SACR,CAAC,CAAC;IACJ,CAAC;CACD","sourcesContent":["import { Theme } from \"../../core/Theme\";\r\nimport { setColor } from \"../../themes/DefaultTheme\";\r\n\r\nimport { geoMercator } from \"d3-geo\";\r\n\r\nimport * as $ease from \"../../core/util/Ease\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport class MapChartDefaultTheme extends Theme {\r\n\tprotected setupDefaultRules() {\r\n\t\tsuper.setupDefaultRules();\r\n\r\n\t\tconst ic = this._root.interfaceColors;\r\n\t\tconst r = this.rule.bind(this);\r\n\r\n\t\t/**\r\n\t\t * ========================================================================\r\n\t\t * charts/map\r\n\t\t * ========================================================================\r\n\t\t */\r\n\r\n\t\tr(\"MapChart\").setAll({\r\n\t\t\tprojection: geoMercator(),\r\n\t\t\tpanX: \"translateX\",\r\n\t\t\tpanY: \"translateY\",\r\n\t\t\tpinchZoom: true,\r\n\t\t\tzoomStep: 2,\r\n\t\t\tzoomLevel: 1,\r\n\t\t\trotationX: 0,\r\n\t\t\trotationY: 0,\r\n\t\t\trotationZ: 0,\r\n\t\t\tmaxZoomLevel: 32,\r\n\t\t\tminZoomLevel: 1,\r\n\t\t\twheelY: \"zoom\",\r\n\t\t\twheelX: \"none\",\r\n\t\t\tanimationEasing: $ease.out($ease.cubic),\r\n\t\t\twheelEasing: $ease.out($ease.cubic),\r\n\t\t\twheelDuration: 0,\r\n\t\t\twheelSensitivity: 1,\r\n\t\t\tmaxPanOut: 0.4,\r\n\t\t\tcenterMapOnZoomOut: true\r\n\t\t});\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"MapLine\");\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tprecision: 0.5,\r\n\t\t\t\trole: \"figure\",\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"grid\");\r\n\t\t}\r\n\r\n\t\tr(\"MapPolygonSeries\").setAll({\r\n\t\t\taffectsBounds: true\r\n\t\t})\r\n\r\n\r\n\t\tr(\"MapPointSeries\").setAll({\r\n\t\t\taffectsBounds: false,\r\n\t\t\tclipFront: false,\r\n\t\t\tclipBack: true,\r\n\t\t\tautoScale: false\r\n\t\t})\r\n\r\n\t\tr(\"ClusteredPointSeries\").setAll({\r\n\t\t\tminDistance: 20,\r\n\t\t\tscatterDistance: 3,\r\n\t\t\tscatterRadius: 8,\r\n\t\t\tstopClusterZoom: 0.95\r\n\t\t})\r\n\r\n\t\tr(\"MapLineSeries\").setAll({\r\n\t\t\taffectsBounds: false\r\n\t\t})\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"MapPolygon\");\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tprecision: 0.5,\r\n\t\t\t\tisMeasured: false,\r\n\t\t\t\trole: \"figure\",\r\n\t\t\t\tfillOpacity: 1,\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\tstrokeWidth: 0.2,\r\n\t\t\t\tstrokeOpacity: 1\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"fill\", ic, \"primaryButton\");\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"background\");\r\n\t\t}\r\n\r\n\r\n\t\tr(\"Button\", [\"zoomtools\", \"home\"]).setAll({\r\n\t\t\tvisible: false\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t * charts/map: Series\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tr(\"GraticuleSeries\").setAll({\r\n\t\t\tstep: 10\r\n\t\t});\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"MapChartDefaultTheme.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapChartDefaultTheme.ts"],"names":[],"mappings":"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","sourcesContent":["import { Theme } from \"../../core/Theme\";\r\nimport { setColor } from \"../../themes/DefaultTheme\";\r\n\r\nimport { geoMercator } from \"d3-geo\";\r\n\r\nimport * as $ease from \"../../core/util/Ease\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport class MapChartDefaultTheme extends Theme {\r\n\tprotected setupDefaultRules() {\r\n\t\tsuper.setupDefaultRules();\r\n\r\n\t\tconst ic = this._root.interfaceColors;\r\n\t\tconst r = this.rule.bind(this);\r\n\r\n\t\t/**\r\n\t\t * ========================================================================\r\n\t\t * charts/map\r\n\t\t * ========================================================================\r\n\t\t */\r\n\r\n\t\tr(\"MapChart\").setAll({\r\n\t\t\tprojection: geoMercator(),\r\n\t\t\tpanX: \"translateX\",\r\n\t\t\tpanY: \"translateY\",\r\n\t\t\tpinchZoom: true,\r\n\t\t\tzoomStep: 2,\r\n\t\t\tzoomLevel: 1,\r\n\t\t\trotationX: 0,\r\n\t\t\trotationY: 0,\r\n\t\t\trotationZ: 0,\r\n\t\t\tmaxZoomLevel: 32,\r\n\t\t\tminZoomLevel: 1,\r\n\t\t\twheelY: \"zoom\",\r\n\t\t\twheelX: \"none\",\r\n\t\t\tanimationEasing: $ease.out($ease.cubic),\r\n\t\t\twheelEasing: $ease.out($ease.cubic),\r\n\t\t\twheelDuration: 0,\r\n\t\t\twheelSensitivity: 1,\r\n\t\t\tmaxPanOut: 0.4,\r\n\t\t\tcenterMapOnZoomOut: true\r\n\t\t});\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"MapLine\");\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tprecision: 0.5,\r\n\t\t\t\trole: \"figure\",\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"grid\");\r\n\t\t}\r\n\r\n\t\tr(\"MapPolygonSeries\").setAll({\r\n\t\t\taffectsBounds: true\r\n\t\t})\r\n\r\n\r\n\t\tr(\"MapPointSeries\").setAll({\r\n\t\t\taffectsBounds: false,\r\n\t\t\tclipFront: false,\r\n\t\t\tclipBack: true,\r\n\t\t\tautoScale: false\r\n\t\t})\r\n\r\n\t\tr(\"ClusteredPointSeries\").setAll({\r\n\t\t\tminDistance: 20,\r\n\t\t\tscatterDistance: 3,\r\n\t\t\tscatterRadius: 8,\r\n\t\t\tstopClusterZoom: 0.95\r\n\t\t})\r\n\r\n\t\tr(\"MapLineSeries\").setAll({\r\n\t\t\taffectsBounds: false\r\n\t\t})\r\n\r\n\t\tr(\"MapSankeySeries\").setAll({\r\n\t\t\taffectsBounds: false\r\n\t\t})\r\n\r\n\t\t{\r\n\t\t\tconst rule = r(\"MapPolygon\");\r\n\r\n\t\t\trule.setAll({\r\n\t\t\t\tprecision: 0.5,\r\n\t\t\t\tisMeasured: false,\r\n\t\t\t\trole: \"figure\",\r\n\t\t\t\tfillOpacity: 1,\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\tstrokeWidth: 0.2,\r\n\t\t\t\tstrokeOpacity: 1\r\n\t\t\t});\r\n\r\n\t\t\tsetColor(rule, \"fill\", ic, \"primaryButton\");\r\n\t\t\tsetColor(rule, \"stroke\", ic, \"background\");\r\n\t\t}\r\n\r\n\r\n\t\tr(\"Button\", [\"zoomtools\", \"home\"]).setAll({\r\n\t\t\tvisible: false\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t * charts/map: Series\r\n\t\t * ------------------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tr(\"GraticuleSeries\").setAll({\r\n\t\t\tstep: 10\r\n\t\t});\r\n\t}\r\n}\r\n"]}
@@ -0,0 +1,155 @@
1
+ import type { DataItem } from "../../core/render/Component";
2
+ import type { Color } from "../../core/util/Color";
3
+ import type { ColorSet } from "../../core/util/ColorSet";
4
+ import type { MapSankeySeries, IMapSankeySeriesDataItem } from "./MapSankeySeries";
5
+ import { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate, ISeriesEvents } from "../../core/render/Series";
6
+ import { MapPolygon } from "./MapPolygon";
7
+ import { ListTemplate } from "../../core/util/List";
8
+ export interface IMapSankeyNodesDataItem extends ISeriesDataItem {
9
+ /**
10
+ * Node name.
11
+ */
12
+ name: string;
13
+ /**
14
+ * Node color.
15
+ */
16
+ fill: Color;
17
+ /**
18
+ * Sum of values of all incoming links.
19
+ */
20
+ sumIncoming: number;
21
+ /**
22
+ * Sum of values of all outgoing links.
23
+ */
24
+ sumOutgoing: number;
25
+ /**
26
+ * Sum of values of all links: incoming and outgoing.
27
+ */
28
+ sum: number;
29
+ /**
30
+ * A list of incoming link data items.
31
+ */
32
+ incomingLinks: Array<DataItem<IMapSankeySeriesDataItem>>;
33
+ /**
34
+ * A list of outgoing link data items.
35
+ */
36
+ outgoingLinks: Array<DataItem<IMapSankeySeriesDataItem>>;
37
+ /**
38
+ * Node longitude.
39
+ */
40
+ longitude: number;
41
+ /**
42
+ * Node latitude.
43
+ */
44
+ latitude: number;
45
+ /**
46
+ * Related [[MapPolygon]] object (circle or bar shape).
47
+ */
48
+ mapPolygon: MapPolygon;
49
+ }
50
+ export interface IMapSankeyNodesSettings extends ISeriesSettings {
51
+ /**
52
+ * A field in data that holds name for the node.
53
+ * @default "name"
54
+ */
55
+ nameField?: string;
56
+ /**
57
+ * A field in data that holds color used for node fill.
58
+ * @default "fill"
59
+ */
60
+ fillField?: string;
61
+ /**
62
+ * A field in data that holds the node longitude.
63
+ * @default "longitude"
64
+ */
65
+ longitudeField?: string;
66
+ /**
67
+ * A field in data that holds the node latitude.
68
+ * @default "latitude"
69
+ */
70
+ latitudeField?: string;
71
+ /**
72
+ * A [[ColorSet]] that series will use to apply to its nodes.
73
+ */
74
+ colors?: ColorSet;
75
+ }
76
+ export interface IMapSankeyNodesPrivate extends ISeriesPrivate {
77
+ }
78
+ export interface IMapSankeyNodesEvents extends ISeriesEvents {
79
+ }
80
+ /**
81
+ * Holds instances of nodes for a [[MapSankeySeries]].
82
+ *
83
+ * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-sankey-series/} for more info
84
+ * @since 5.17.0
85
+ * @important
86
+ */
87
+ export declare class MapSankeyNodes extends Series {
88
+ static className: string;
89
+ static classNames: Array<string>;
90
+ _settings: IMapSankeyNodesSettings;
91
+ _privateSettings: IMapSankeyNodesPrivate;
92
+ _dataItemSettings: IMapSankeyNodesDataItem;
93
+ _events: IMapSankeyNodesEvents;
94
+ /**
95
+ * Related [[MapSankeySeries]].
96
+ */
97
+ flow: MapSankeySeries | undefined;
98
+ /**
99
+ * Flag indicating user has explicitly set node data.
100
+ * Prevents auto-clearing of nodes when link data changes.
101
+ * @ignore
102
+ */
103
+ _userDataSet: boolean;
104
+ /**
105
+ * A [[ListTemplate]] of all node polygons.
106
+ *
107
+ * `mapPolygons.template` can be used to configure node appearance.
108
+ *
109
+ * @default new ListTemplate<MapPolygon>
110
+ */
111
+ readonly mapPolygons: ListTemplate<MapPolygon>;
112
+ /**
113
+ * @ignore
114
+ */
115
+ _applyThemes(force?: boolean): boolean;
116
+ /**
117
+ * @ignore
118
+ */
119
+ protected _afterNew(): void;
120
+ /**
121
+ * @ignore
122
+ */
123
+ protected _onDataClear(): void;
124
+ /**
125
+ * Processes a newly added node data item, assigning a fill color
126
+ * and creating its map polygon.
127
+ *
128
+ * @param dataItem Data item to process
129
+ */
130
+ protected processDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void;
131
+ /**
132
+ * @ignore
133
+ */
134
+ _updateNodeColor(dataItem: DataItem<this["_dataItemSettings"]>): void;
135
+ /**
136
+ * Creates a MapPolygon visual for a node data item.
137
+ * @ignore
138
+ */
139
+ makeMapPolygon(dataItem: DataItem<this["_dataItemSettings"]>): MapPolygon;
140
+ /**
141
+ * Add an incoming link to a node data item.
142
+ * @ignore
143
+ */
144
+ addIncomingLink(dataItem: DataItem<this["_dataItemSettings"]>, link: DataItem<IMapSankeySeriesDataItem>): void;
145
+ /**
146
+ * Add an outgoing link to a node data item.
147
+ * @ignore
148
+ */
149
+ addOutgoingLink(dataItem: DataItem<this["_dataItemSettings"]>, link: DataItem<IMapSankeySeriesDataItem>): void;
150
+ /**
151
+ * @ignore
152
+ */
153
+ disposeDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void;
154
+ }
155
+ //# sourceMappingURL=MapSankeyNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapSankeyNodes.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/map/MapSankeyNodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ import { Series } from "../../core/render/Series";
2
+ import { MapPolygon } from "./MapPolygon";
3
+ import { Template } from "../../core/util/Template";
4
+ import { ListTemplate } from "../../core/util/List";
5
+ /**
6
+ * Holds instances of nodes for a [[MapSankeySeries]].
7
+ *
8
+ * @see {@link https://www.amcharts.com/docs/v5/charts/map-chart/map-sankey-series/} for more info
9
+ * @since 5.17.0
10
+ * @important
11
+ */
12
+ export class MapSankeyNodes extends Series {
13
+ constructor() {
14
+ super(...arguments);
15
+ /**
16
+ * Flag indicating user has explicitly set node data.
17
+ * Prevents auto-clearing of nodes when link data changes.
18
+ * @ignore
19
+ */
20
+ this._userDataSet = false;
21
+ /**
22
+ * A [[ListTemplate]] of all node polygons.
23
+ *
24
+ * `mapPolygons.template` can be used to configure node appearance.
25
+ *
26
+ * @default new ListTemplate<MapPolygon>
27
+ */
28
+ this.mapPolygons = this.addDisposer(new ListTemplate(Template.new({}), () => MapPolygon._new(this._root, {}, [this.mapPolygons.template])));
29
+ }
30
+ /**
31
+ * @ignore
32
+ */
33
+ _applyThemes(force = false) {
34
+ const colors = this.get("colors");
35
+ if (colors) {
36
+ colors.reset();
37
+ }
38
+ return super._applyThemes(force);
39
+ }
40
+ /**
41
+ * @ignore
42
+ */
43
+ _afterNew() {
44
+ this.fields.push("name", "fill", "longitude", "latitude");
45
+ this._setRawDefault("idField", "id");
46
+ this._setRawDefault("nameField", "name");
47
+ this._setRawDefault("fillField", "fill");
48
+ this._setRawDefault("longitudeField", "longitude");
49
+ this._setRawDefault("latitudeField", "latitude");
50
+ super._afterNew();
51
+ }
52
+ /**
53
+ * @ignore
54
+ */
55
+ _onDataClear() {
56
+ const colors = this.get("colors");
57
+ if (colors) {
58
+ colors.reset();
59
+ }
60
+ this._userDataSet = true;
61
+ }
62
+ /**
63
+ * Processes a newly added node data item, assigning a fill color
64
+ * and creating its map polygon.
65
+ *
66
+ * @param dataItem Data item to process
67
+ */
68
+ processDataItem(dataItem) {
69
+ super.processDataItem(dataItem);
70
+ // Auto-assign fill from ColorSet if not provided
71
+ if (dataItem.get("fill") == null) {
72
+ const colors = this.get("colors");
73
+ if (colors) {
74
+ dataItem.setRaw("fill", colors.next());
75
+ }
76
+ }
77
+ // Create MapPolygon visual
78
+ const mapPolygon = this.makeMapPolygon(dataItem);
79
+ dataItem.setRaw("mapPolygon", mapPolygon);
80
+ }
81
+ /**
82
+ * @ignore
83
+ */
84
+ _updateNodeColor(dataItem) {
85
+ const mapPolygon = dataItem.get("mapPolygon");
86
+ if (mapPolygon) {
87
+ mapPolygon.set("fill", dataItem.get("fill"));
88
+ }
89
+ }
90
+ /**
91
+ * Creates a MapPolygon visual for a node data item.
92
+ * @ignore
93
+ */
94
+ makeMapPolygon(dataItem) {
95
+ const mapPolygon = this.mapPolygons.make();
96
+ this.mapPolygons.push(mapPolygon);
97
+ mapPolygon._setDataItem(dataItem);
98
+ // Set series to parent MapSankeySeries for projection access
99
+ if (this.flow) {
100
+ mapPolygon.series = this.flow;
101
+ this.flow.children.push(mapPolygon);
102
+ }
103
+ // Apply fill from data item and listen for changes
104
+ const fill = dataItem.get("fill");
105
+ if (fill) {
106
+ mapPolygon._setSoft("fill", fill);
107
+ }
108
+ dataItem.on("fill", () => {
109
+ this._updateNodeColor(dataItem);
110
+ });
111
+ return mapPolygon;
112
+ }
113
+ /**
114
+ * Add an incoming link to a node data item.
115
+ * @ignore
116
+ */
117
+ addIncomingLink(dataItem, link) {
118
+ let incoming = dataItem.get("incomingLinks");
119
+ if (!incoming) {
120
+ incoming = [];
121
+ dataItem.setRaw("incomingLinks", incoming);
122
+ }
123
+ incoming.push(link);
124
+ }
125
+ /**
126
+ * Add an outgoing link to a node data item.
127
+ * @ignore
128
+ */
129
+ addOutgoingLink(dataItem, link) {
130
+ let outgoing = dataItem.get("outgoingLinks");
131
+ if (!outgoing) {
132
+ outgoing = [];
133
+ dataItem.setRaw("outgoingLinks", outgoing);
134
+ }
135
+ outgoing.push(link);
136
+ }
137
+ /**
138
+ * @ignore
139
+ */
140
+ disposeDataItem(dataItem) {
141
+ super.disposeDataItem(dataItem);
142
+ const mapPolygon = dataItem.get("mapPolygon");
143
+ if (mapPolygon) {
144
+ this.mapPolygons.removeValue(mapPolygon);
145
+ mapPolygon.dispose();
146
+ }
147
+ }
148
+ }
149
+ MapSankeyNodes.className = "MapSankeyNodes";
150
+ MapSankeyNodes.classNames = Series.classNames.concat([MapSankeyNodes.className]);
151
+ //# sourceMappingURL=MapSankeyNodes.js.map