@visactor/vchart 1.12.0-alpha.1 → 1.12.0-alpha.4

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 (285) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +799 -379
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base/base-chart.d.ts +1 -0
  6. package/cjs/chart/base/base-chart.js +4 -2
  7. package/cjs/chart/base/base-chart.js.map +1 -1
  8. package/cjs/chart/cartesian/cartesian-transformer.d.ts +4 -0
  9. package/cjs/chart/cartesian/cartesian-transformer.js +25 -10
  10. package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -1
  11. package/cjs/chart/index.d.ts +5 -3
  12. package/cjs/chart/index.js +16 -2
  13. package/cjs/chart/index.js.map +1 -1
  14. package/cjs/chart/interface/type.d.ts +2 -1
  15. package/cjs/chart/interface/type.js +2 -1
  16. package/cjs/chart/interface/type.js.map +1 -1
  17. package/cjs/chart/mosaic/index.d.ts +3 -0
  18. package/cjs/chart/mosaic/index.js +22 -0
  19. package/cjs/chart/mosaic/index.js.map +1 -0
  20. package/cjs/chart/mosaic/interface.d.ts +7 -0
  21. package/cjs/chart/mosaic/interface.js +6 -0
  22. package/cjs/chart/mosaic/interface.js.map +1 -0
  23. package/cjs/chart/mosaic/mosaic-transformer.d.ts +9 -0
  24. package/cjs/chart/mosaic/mosaic-transformer.js +43 -0
  25. package/cjs/chart/mosaic/mosaic-transformer.js.map +1 -0
  26. package/cjs/chart/mosaic/mosaic.d.ts +20 -0
  27. package/cjs/chart/mosaic/mosaic.js +39 -0
  28. package/cjs/chart/mosaic/mosaic.js.map +1 -0
  29. package/cjs/chart/stack.d.ts +11 -1
  30. package/cjs/chart/stack.js +5 -4
  31. package/cjs/chart/stack.js.map +1 -1
  32. package/cjs/compile/grammar-item.js +2 -1
  33. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  34. package/cjs/component/crosshair/cartesian.js +8 -3
  35. package/cjs/component/crosshair/cartesian.js.map +1 -1
  36. package/cjs/component/indicator/indicator.d.ts +1 -1
  37. package/cjs/component/indicator/indicator.js +4 -2
  38. package/cjs/component/indicator/indicator.js.map +1 -1
  39. package/cjs/component/indicator/interface.d.ts +3 -1
  40. package/cjs/component/indicator/interface.js.map +1 -1
  41. package/cjs/component/label/interface.d.ts +2 -1
  42. package/cjs/component/label/interface.js.map +1 -1
  43. package/cjs/component/label/label.js +8 -5
  44. package/cjs/component/label/label.js.map +1 -1
  45. package/cjs/component/label/util.d.ts +9 -0
  46. package/cjs/component/label/util.js +35 -8
  47. package/cjs/component/label/util.js.map +1 -1
  48. package/cjs/component/marker/base-marker.d.ts +4 -3
  49. package/cjs/component/marker/base-marker.js +6 -45
  50. package/cjs/component/marker/base-marker.js.map +1 -1
  51. package/cjs/component/marker/interface.d.ts +3 -3
  52. package/cjs/component/marker/interface.js.map +1 -1
  53. package/cjs/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
  54. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  55. package/cjs/component/marker/mark-area/interface/spec.d.ts +3 -2
  56. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  57. package/cjs/component/marker/mark-area/polar-mark-area.d.ts +2 -2
  58. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  59. package/cjs/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
  60. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  61. package/cjs/component/marker/mark-line/interface/spec.d.ts +5 -5
  62. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  63. package/cjs/component/marker/mark-line/polar-mark-line.d.ts +2 -2
  64. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  65. package/cjs/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
  66. package/cjs/component/marker/mark-point/cartesian-mark-point.js +1 -1
  67. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  68. package/cjs/component/marker/mark-point/geo-mark-point.d.ts +2 -1
  69. package/cjs/component/marker/mark-point/geo-mark-point.js.map +1 -1
  70. package/cjs/component/marker/mark-point/interface/spec.d.ts +4 -3
  71. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  72. package/cjs/component/marker/mark-point/polar-mark-point.d.ts +2 -1
  73. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  74. package/cjs/component/marker/utils.d.ts +2 -3
  75. package/cjs/component/marker/utils.js +16 -14
  76. package/cjs/component/marker/utils.js.map +1 -1
  77. package/cjs/component/tooltip/interface/spec.d.ts +1 -0
  78. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  79. package/cjs/component/tooltip/tooltip.d.ts +2 -1
  80. package/cjs/component/tooltip/tooltip.js +5 -3
  81. package/cjs/component/tooltip/tooltip.js.map +1 -1
  82. package/cjs/component/util.js +1 -2
  83. package/cjs/constant/index.d.ts +5 -0
  84. package/cjs/constant/index.js +6 -2
  85. package/cjs/constant/index.js.map +1 -1
  86. package/cjs/core/index.d.ts +1 -1
  87. package/cjs/core/index.js +1 -1
  88. package/cjs/core/index.js.map +1 -1
  89. package/cjs/core/interface.d.ts +3 -2
  90. package/cjs/core/interface.js.map +1 -1
  91. package/cjs/core/vchart.d.ts +8 -6
  92. package/cjs/core/vchart.js +45 -26
  93. package/cjs/core/vchart.js.map +1 -1
  94. package/cjs/data/transforms/aggregation.d.ts +8 -3
  95. package/cjs/data/transforms/aggregation.js +62 -2
  96. package/cjs/data/transforms/aggregation.js.map +1 -1
  97. package/cjs/data/transforms/stack-split.js +2 -2
  98. package/cjs/data/transforms/stack-split.js.map +1 -1
  99. package/cjs/model/interface.d.ts +4 -0
  100. package/cjs/model/interface.js.map +1 -1
  101. package/cjs/series/bar/bar.js +7 -7
  102. package/cjs/series/bar/bar.js.map +1 -1
  103. package/cjs/series/base/base-series.js +6 -6
  104. package/cjs/series/base/base-series.js.map +1 -1
  105. package/cjs/series/base/constant.d.ts +6 -0
  106. package/cjs/series/base/constant.js +12 -2
  107. package/cjs/series/base/constant.js.map +1 -1
  108. package/cjs/series/interface/common.d.ts +2 -0
  109. package/cjs/series/interface/common.js.map +1 -1
  110. package/cjs/series/interface/series.d.ts +3 -1
  111. package/cjs/series/interface/series.js.map +1 -1
  112. package/cjs/series/interface/theme.d.ts +2 -0
  113. package/cjs/series/interface/theme.js +2 -1
  114. package/cjs/series/interface/theme.js.map +1 -1
  115. package/cjs/series/interface/type.d.ts +2 -1
  116. package/cjs/series/interface/type.js +1 -1
  117. package/cjs/series/interface/type.js.map +1 -1
  118. package/cjs/series/mosaic/interface.d.ts +16 -0
  119. package/cjs/series/mosaic/interface.js +6 -0
  120. package/cjs/series/mosaic/interface.js.map +1 -0
  121. package/cjs/series/mosaic/mosaic.d.ts +16 -0
  122. package/cjs/series/mosaic/mosaic.js +69 -0
  123. package/cjs/series/mosaic/mosaic.js.map +1 -0
  124. package/cjs/series/sankey/interface.d.ts +5 -4
  125. package/cjs/series/sankey/interface.js.map +1 -1
  126. package/cjs/series/sankey/sankey-transformer.d.ts +5 -0
  127. package/cjs/series/sankey/sankey-transformer.js +16 -0
  128. package/cjs/series/sankey/sankey-transformer.js.map +1 -0
  129. package/cjs/series/sankey/sankey.d.ts +7 -2
  130. package/cjs/series/sankey/sankey.js +47 -151
  131. package/cjs/series/sankey/sankey.js.map +1 -1
  132. package/cjs/series/word-cloud/interface.d.ts +1 -1
  133. package/cjs/series/word-cloud/interface.js.map +1 -1
  134. package/cjs/theme/builtin/common/series/index.js +3 -2
  135. package/cjs/theme/builtin/common/series/index.js.map +1 -1
  136. package/cjs/theme/builtin/common/series/mosaic.d.ts +2 -0
  137. package/cjs/theme/builtin/common/series/mosaic.js +27 -0
  138. package/cjs/theme/builtin/common/series/mosaic.js.map +1 -0
  139. package/cjs/util/data.d.ts +24 -1
  140. package/cjs/util/data.js +88 -17
  141. package/cjs/util/data.js.map +1 -1
  142. package/cjs/util/style.d.ts +1 -0
  143. package/cjs/util/style.js +11 -2
  144. package/cjs/util/style.js.map +1 -1
  145. package/esm/chart/base/base-chart.d.ts +1 -0
  146. package/esm/chart/base/base-chart.js +4 -2
  147. package/esm/chart/base/base-chart.js.map +1 -1
  148. package/esm/chart/cartesian/cartesian-transformer.d.ts +4 -0
  149. package/esm/chart/cartesian/cartesian-transformer.js +25 -10
  150. package/esm/chart/cartesian/cartesian-transformer.js.map +1 -1
  151. package/esm/chart/index.d.ts +5 -3
  152. package/esm/chart/index.js +4 -2
  153. package/esm/chart/index.js.map +1 -1
  154. package/esm/chart/interface/type.d.ts +2 -1
  155. package/esm/chart/interface/type.js +2 -1
  156. package/esm/chart/interface/type.js.map +1 -1
  157. package/esm/chart/mosaic/index.d.ts +3 -0
  158. package/esm/chart/mosaic/index.js +6 -0
  159. package/esm/chart/mosaic/index.js.map +1 -0
  160. package/esm/chart/mosaic/interface.d.ts +7 -0
  161. package/esm/chart/mosaic/interface.js +2 -0
  162. package/esm/chart/mosaic/interface.js.map +1 -0
  163. package/esm/chart/mosaic/mosaic-transformer.d.ts +9 -0
  164. package/esm/chart/mosaic/mosaic-transformer.js +37 -0
  165. package/esm/chart/mosaic/mosaic-transformer.js.map +1 -0
  166. package/esm/chart/mosaic/mosaic.d.ts +20 -0
  167. package/esm/chart/mosaic/mosaic.js +41 -0
  168. package/esm/chart/mosaic/mosaic.js.map +1 -0
  169. package/esm/chart/stack.d.ts +11 -1
  170. package/esm/chart/stack.js +5 -4
  171. package/esm/chart/stack.js.map +1 -1
  172. package/esm/compile/grammar-item.js +2 -1
  173. package/esm/component/axis/cartesian/axis.js.map +1 -1
  174. package/esm/component/crosshair/cartesian.js +8 -3
  175. package/esm/component/crosshair/cartesian.js.map +1 -1
  176. package/esm/component/indicator/indicator.d.ts +1 -1
  177. package/esm/component/indicator/indicator.js +4 -4
  178. package/esm/component/indicator/indicator.js.map +1 -1
  179. package/esm/component/indicator/interface.d.ts +3 -1
  180. package/esm/component/indicator/interface.js.map +1 -1
  181. package/esm/component/label/interface.d.ts +2 -1
  182. package/esm/component/label/interface.js.map +1 -1
  183. package/esm/component/label/label.js +9 -5
  184. package/esm/component/label/label.js.map +1 -1
  185. package/esm/component/label/util.d.ts +9 -0
  186. package/esm/component/label/util.js +34 -5
  187. package/esm/component/label/util.js.map +1 -1
  188. package/esm/component/marker/base-marker.d.ts +4 -3
  189. package/esm/component/marker/base-marker.js +6 -39
  190. package/esm/component/marker/base-marker.js.map +1 -1
  191. package/esm/component/marker/interface.d.ts +3 -3
  192. package/esm/component/marker/interface.js.map +1 -1
  193. package/esm/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
  194. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  195. package/esm/component/marker/mark-area/interface/spec.d.ts +3 -2
  196. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  197. package/esm/component/marker/mark-area/polar-mark-area.d.ts +2 -2
  198. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  199. package/esm/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
  200. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  201. package/esm/component/marker/mark-line/interface/spec.d.ts +5 -5
  202. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  203. package/esm/component/marker/mark-line/polar-mark-line.d.ts +2 -2
  204. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  205. package/esm/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
  206. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  207. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  208. package/esm/component/marker/mark-point/geo-mark-point.d.ts +2 -1
  209. package/esm/component/marker/mark-point/geo-mark-point.js.map +1 -1
  210. package/esm/component/marker/mark-point/interface/spec.d.ts +4 -3
  211. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  212. package/esm/component/marker/mark-point/polar-mark-point.d.ts +2 -1
  213. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  214. package/esm/component/marker/utils.d.ts +2 -3
  215. package/esm/component/marker/utils.js +16 -14
  216. package/esm/component/marker/utils.js.map +1 -1
  217. package/esm/component/tooltip/interface/spec.d.ts +1 -0
  218. package/esm/component/tooltip/interface/spec.js.map +1 -1
  219. package/esm/component/tooltip/tooltip.d.ts +2 -1
  220. package/esm/component/tooltip/tooltip.js +5 -3
  221. package/esm/component/tooltip/tooltip.js.map +1 -1
  222. package/esm/component/util.js +1 -2
  223. package/esm/constant/index.d.ts +5 -0
  224. package/esm/constant/index.js +10 -0
  225. package/esm/constant/index.js.map +1 -1
  226. package/esm/core/index.d.ts +1 -1
  227. package/esm/core/index.js +1 -1
  228. package/esm/core/index.js.map +1 -1
  229. package/esm/core/interface.d.ts +3 -2
  230. package/esm/core/interface.js.map +1 -1
  231. package/esm/core/vchart.d.ts +8 -6
  232. package/esm/core/vchart.js +45 -26
  233. package/esm/core/vchart.js.map +1 -1
  234. package/esm/data/transforms/aggregation.d.ts +8 -3
  235. package/esm/data/transforms/aggregation.js +60 -2
  236. package/esm/data/transforms/aggregation.js.map +1 -1
  237. package/esm/data/transforms/stack-split.js +2 -2
  238. package/esm/data/transforms/stack-split.js.map +1 -1
  239. package/esm/model/interface.d.ts +4 -0
  240. package/esm/model/interface.js.map +1 -1
  241. package/esm/series/bar/bar.js +8 -8
  242. package/esm/series/bar/bar.js.map +1 -1
  243. package/esm/series/base/base-series.js +7 -6
  244. package/esm/series/base/base-series.js.map +1 -1
  245. package/esm/series/base/constant.d.ts +6 -0
  246. package/esm/series/base/constant.js +13 -0
  247. package/esm/series/base/constant.js.map +1 -1
  248. package/esm/series/interface/common.d.ts +2 -0
  249. package/esm/series/interface/common.js.map +1 -1
  250. package/esm/series/interface/series.d.ts +3 -1
  251. package/esm/series/interface/series.js.map +1 -1
  252. package/esm/series/interface/theme.d.ts +2 -0
  253. package/esm/series/interface/theme.js +2 -1
  254. package/esm/series/interface/theme.js.map +1 -1
  255. package/esm/series/interface/type.d.ts +2 -1
  256. package/esm/series/interface/type.js +1 -1
  257. package/esm/series/interface/type.js.map +1 -1
  258. package/esm/series/mosaic/interface.d.ts +16 -0
  259. package/esm/series/mosaic/interface.js +2 -0
  260. package/esm/series/mosaic/interface.js.map +1 -0
  261. package/esm/series/mosaic/mosaic.d.ts +16 -0
  262. package/esm/series/mosaic/mosaic.js +78 -0
  263. package/esm/series/mosaic/mosaic.js.map +1 -0
  264. package/esm/series/sankey/interface.d.ts +5 -4
  265. package/esm/series/sankey/interface.js.map +1 -1
  266. package/esm/series/sankey/sankey-transformer.d.ts +5 -0
  267. package/esm/series/sankey/sankey-transformer.js +8 -0
  268. package/esm/series/sankey/sankey-transformer.js.map +1 -0
  269. package/esm/series/sankey/sankey.d.ts +7 -2
  270. package/esm/series/sankey/sankey.js +49 -147
  271. package/esm/series/sankey/sankey.js.map +1 -1
  272. package/esm/series/word-cloud/interface.d.ts +1 -1
  273. package/esm/series/word-cloud/interface.js.map +1 -1
  274. package/esm/theme/builtin/common/series/index.js +4 -1
  275. package/esm/theme/builtin/common/series/index.js.map +1 -1
  276. package/esm/theme/builtin/common/series/mosaic.d.ts +2 -0
  277. package/esm/theme/builtin/common/series/mosaic.js +23 -0
  278. package/esm/theme/builtin/common/series/mosaic.js.map +1 -0
  279. package/esm/util/data.d.ts +24 -1
  280. package/esm/util/data.js +86 -17
  281. package/esm/util/data.js.map +1 -1
  282. package/esm/util/style.d.ts +1 -0
  283. package/esm/util/style.js +8 -0
  284. package/esm/util/style.js.map +1 -1
  285. package/package.json +15 -15
@@ -48,10 +48,15 @@ import { TransformLevel } from "../../data/initialize";
48
48
 
49
49
  import { addDataKey, initKeyMap } from "../../data/transforms/data-key";
50
50
 
51
+ import { SankeySeriesSpecTransformer } from "./sankey-transformer";
52
+
53
+ import { getFormatFunction } from "../../component/util";
54
+
51
55
  export class SankeySeries extends CartesianSeries {
52
56
  constructor() {
53
- super(...arguments), this.type = SeriesTypeEnum.sankey, this._nodeLayoutZIndex = LayoutZIndex.Node,
54
- this._labelLayoutZIndex = LayoutZIndex.Label, this._viewBox = new Bounds, this._fillByNode = datum => {
57
+ super(...arguments), this.type = SeriesTypeEnum.sankey, this.transformerConstructor = SankeySeriesSpecTransformer,
58
+ this._nodeLayoutZIndex = LayoutZIndex.Node, this._labelLayoutZIndex = LayoutZIndex.Label,
59
+ this._viewBox = new Bounds, this._fillByNode = datum => {
55
60
  var _a, _b, _c, _d, _e;
56
61
  if (datum && datum.sourceRect && datum.targetRect) return this._fillByLink(datum);
57
62
  const fill = null === (_b = null === (_a = this._spec.node) || void 0 === _a ? void 0 : _a.style) || void 0 === _b ? void 0 : _b.fill;
@@ -76,20 +81,16 @@ export class SankeySeries extends CartesianSeries {
76
81
  const emphasisSpec = null !== (_a = this._spec.emphasis) && void 0 !== _a ? _a : {}, element = params.item;
77
82
  "adjacency" === emphasisSpec.effect ? element && element.mark.id().includes("node") ? this._handleNodeAdjacencyClick(element) : element && element.mark.id().includes("link") ? this._handleLinkAdjacencyClick(element) : this._handleClearEmpty() : "related" === emphasisSpec.effect && (element && element.mark.id().includes("node") ? this._handleNodeRelatedClick(element) : element && element.mark.id().includes("link") ? this._handleLinkRelatedClick(element) : this._handleClearEmpty());
78
83
  }, this._handleClearEmpty = () => {
79
- var _a, _b, _c;
84
+ var _a, _b;
80
85
  const allNodeElements = null === (_a = this._nodeMark) || void 0 === _a ? void 0 : _a.getProductElements();
81
86
  if (!allNodeElements || !allNodeElements.length) return;
82
87
  const allLinkElements = null === (_b = this._linkMark) || void 0 === _b ? void 0 : _b.getProductElements();
83
88
  if (!allLinkElements || !allLinkElements.length) return;
84
- const allLabelElements = null === (_c = this._labelMark) || void 0 === _c ? void 0 : _c.getProductElements();
85
- if (!allLabelElements || !allLabelElements.length) return;
86
89
  const states = [ STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE ];
87
90
  allNodeElements.forEach((el => {
88
91
  el.removeState(states);
89
92
  })), allLinkElements.forEach((el => {
90
93
  el.removeState(states);
91
- })), allLabelElements.forEach((el => {
92
- el.removeState(states);
93
94
  }));
94
95
  }, this._handleNodeAdjacencyClick = element => {
95
96
  const nodeDatum = element.getDatum(), highlightNodes = [ nodeDatum.key ];
@@ -114,8 +115,7 @@ export class SankeySeries extends CartesianSeries {
114
115
  linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
115
116
  }));
116
117
  }
117
- this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
118
- this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
118
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
119
119
  }, this._handleLinkAdjacencyClick = element => {
120
120
  const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ];
121
121
  if (this._linkMark) {
@@ -128,8 +128,7 @@ export class SankeySeries extends CartesianSeries {
128
128
  })) : (linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
129
129
  }));
130
130
  }
131
- this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
132
- this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
131
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
133
132
  }, this._handleNodeRelatedClick = element => {
134
133
  var _a;
135
134
  const nodeDatum = element.getDatum(), allNodeElements = this._nodeMark.getProductElements();
@@ -187,8 +186,7 @@ export class SankeySeries extends CartesianSeries {
187
186
  linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
188
187
  }));
189
188
  }
190
- this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
191
- this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
189
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
192
190
  } else {
193
191
  const highlightNodes = [ nodeDatum.key ], upstreamLinks = nodeDatum.targetLinks.reduce(((res, link) => (array(link.datum).forEach((dividedLink => {
194
192
  const parents = dividedLink.parents, len = parents.length;
@@ -219,8 +217,7 @@ export class SankeySeries extends CartesianSeries {
219
217
  ratio: upSelectedLink.value / linkDatum.value
220
218
  });
221
219
  linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
222
- })), this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
223
- this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
220
+ })), this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
224
221
  }
225
222
  }, this._handleLinkRelatedClick = element => {
226
223
  var _a;
@@ -230,17 +227,11 @@ export class SankeySeries extends CartesianSeries {
230
227
  if (!allLinkElements || !allLinkElements.length) return;
231
228
  if ("source" === ((null === (_a = element.getDatum()) || void 0 === _a ? void 0 : _a.parents) ? "parents" : "source")) {
232
229
  const states = [ STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE ];
233
- if (this._linkMark && allLinkElements.forEach((linkEl => {
230
+ this._linkMark && allLinkElements.forEach((linkEl => {
234
231
  linkEl.removeState(states);
235
232
  })), this._nodeMark && allNodeElements.forEach((el => {
236
233
  el.removeState(states);
237
- })), this._labelMark) {
238
- const allLabelElements = this._labelMark.getProductElements();
239
- if (!allLabelElements || !allLabelElements.length) return;
240
- allLabelElements.forEach((el => {
241
- el.removeState(states);
242
- }));
243
- }
234
+ }));
244
235
  } else {
245
236
  const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ], upstreamLinks = [];
246
237
  array(curLinkDatum.datum).forEach((dividedLink => {
@@ -287,10 +278,14 @@ export class SankeySeries extends CartesianSeries {
287
278
  ratio: upSelectedLink.value / linkDatum.value
288
279
  });
289
280
  linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
290
- })), this._highLightElements(allNodeElements, highlightNodes), this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
281
+ })), this._highLightElements(allNodeElements, highlightNodes);
291
282
  }
292
283
  };
293
284
  }
285
+ get direction() {
286
+ var _a;
287
+ return null !== (_a = this._spec.direction) && void 0 !== _a ? _a : "horizontal";
288
+ }
294
289
  getCategoryField() {
295
290
  return this._categoryField;
296
291
  }
@@ -304,10 +299,9 @@ export class SankeySeries extends CartesianSeries {
304
299
  return this._valueField = f, this._valueField;
305
300
  }
306
301
  setAttrFromSpec() {
307
- var _a, _b, _c;
302
+ var _a;
308
303
  super.setAttrFromSpec(), this.setCategoryField(this._spec.categoryField), this.setValueField(this._spec.valueField),
309
- this.setSeriesField(null !== (_a = this._spec.seriesField) && void 0 !== _a ? _a : this._spec.categoryField),
310
- this._labelLimit = null !== (_c = null === (_b = this._spec.label) || void 0 === _b ? void 0 : _b.limit) && void 0 !== _c ? _c : 100;
304
+ this.setSeriesField(null !== (_a = this._spec.seriesField) && void 0 !== _a ? _a : this._spec.categoryField);
311
305
  }
312
306
  initData() {
313
307
  var _a, _b, _c, _d;
@@ -329,7 +323,7 @@ export class SankeySeries extends CartesianSeries {
329
323
  sourceField: this._spec.sourceField,
330
324
  targetField: this._spec.targetField,
331
325
  valueField: this._spec.valueField,
332
- direction: this._spec.direction,
326
+ direction: this.direction,
333
327
  nodeAlign: null !== (_a = this._spec.nodeAlign) && void 0 !== _a ? _a : "justify",
334
328
  nodeGap: null !== (_b = this._spec.nodeGap) && void 0 !== _b ? _b : 8,
335
329
  nodeWidth: null !== (_c = this._spec.nodeWidth) && void 0 !== _c ? _c : 10,
@@ -409,13 +403,7 @@ export class SankeySeries extends CartesianSeries {
409
403
  customShape: null === (_c = this._spec.link) || void 0 === _c ? void 0 : _c.customShape,
410
404
  stateSort: null === (_d = this._spec.link) || void 0 === _d ? void 0 : _d.stateSort
411
405
  });
412
- if (linkMark && (this._linkMark = linkMark), this._spec.label && this._spec.label.visible) {
413
- const labelMark = this._createMark(SankeySeries.mark.label, {
414
- dataView: this._nodesSeriesData.getDataView(),
415
- dataProductId: this._nodesSeriesData.getProductId()
416
- });
417
- labelMark && (this._labelMark = labelMark);
418
- }
406
+ linkMark && (this._linkMark = linkMark);
419
407
  }
420
408
  _buildMarkAttributeContext() {
421
409
  super._buildMarkAttributeContext(), this._markAttributeContext.valueToNode = this.valueToNode.bind(this),
@@ -438,7 +426,7 @@ export class SankeySeries extends CartesianSeries {
438
426
  return null == node ? void 0 : node.y0;
439
427
  }
440
428
  initMarkStyle() {
441
- this._initNodeMarkStyle(), this._initLinkMarkStyle(), this._initLabelMarkStyle();
429
+ this._initNodeMarkStyle(), this._initLinkMarkStyle();
442
430
  }
443
431
  _initNodeMarkStyle() {
444
432
  const nodeMark = this._nodeMark;
@@ -451,7 +439,6 @@ export class SankeySeries extends CartesianSeries {
451
439
  }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Mark);
452
440
  }
453
441
  _initLinkMarkStyle() {
454
- var _a;
455
442
  const linkMark = this._linkMark;
456
443
  linkMark && this.setMarkStyle(linkMark, {
457
444
  x0: datum => datum.x0,
@@ -460,119 +447,35 @@ export class SankeySeries extends CartesianSeries {
460
447
  y1: datum => datum.y1,
461
448
  thickness: datum => datum.thickness,
462
449
  fill: this._fillByLink,
463
- direction: null !== (_a = this._spec.direction) && void 0 !== _a ? _a : "horizontal"
450
+ direction: this.direction
464
451
  }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series);
465
452
  }
466
- _initLabelMarkStyle() {
467
- this._labelMark && ("vertical" === this._spec.direction ? "inside-start" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
468
- x: datum => datum.x0,
469
- y: datum => (datum.y0 + datum.y1) / 2,
470
- fill: "#ffffff",
471
- text: datum => this._createText(datum),
472
- limit: datum => {
473
- var _a;
474
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
475
- },
476
- textAlign: "left",
477
- textBaseline: "middle"
478
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : "inside-middle" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
479
- x: datum => (datum.x0 + datum.x1) / 2,
480
- y: datum => (datum.y0 + datum.y1) / 2,
481
- fill: "#ffffff",
482
- text: datum => this._createText(datum),
483
- limit: datum => {
484
- var _a;
485
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
486
- },
487
- textAlign: "center",
488
- textBaseline: "middle"
489
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : "inside-end" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
490
- x: datum => datum.x1,
491
- y: datum => (datum.y0 + datum.y1) / 2,
492
- fill: "#ffffff",
493
- text: datum => this._createText(datum),
494
- limit: datum => {
495
- var _a;
496
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
497
- },
498
- textAlign: "right",
499
- textBaseline: "middle"
500
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : this.setMarkStyle(this._labelMark, {
501
- x: datum => (datum.x0 + datum.x1) / 2,
502
- y: datum => datum.y1 >= this._viewBox.y2 ? datum.y0 : datum.y1,
503
- fill: this._fillByNode,
504
- text: datum => this._createText(datum),
505
- limit: this._labelLimit,
506
- textAlign: "center",
507
- textBaseline: datum => datum.y1 >= this._viewBox.y2 ? "bottom" : "top"
508
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : "inside-start" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
509
- x: datum => datum.x0,
510
- y: datum => (datum.y0 + datum.y1) / 2,
511
- fill: "#ffffff",
512
- text: datum => this._createText(datum),
513
- limit: datum => {
514
- var _a;
515
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
516
- },
517
- textAlign: "left",
518
- textBaseline: "middle"
519
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : "inside-middle" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
520
- x: datum => (datum.x0 + datum.x1) / 2,
521
- y: datum => (datum.y0 + datum.y1) / 2,
522
- fill: "#ffffff",
523
- text: datum => this._createText(datum),
524
- limit: datum => {
525
- var _a;
526
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
527
- },
528
- textAlign: "center",
529
- textBaseline: "middle"
530
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : "inside-end" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
531
- x: datum => datum.x1,
532
- y: datum => (datum.y0 + datum.y1) / 2,
453
+ initLabelMarkStyle(labelMark, labelSpec) {
454
+ if (!labelMark) return;
455
+ const position = labelSpec.position;
456
+ position && position.includes("inside") ? this.setMarkStyle(labelMark, {
533
457
  fill: "#ffffff",
534
- text: datum => this._createText(datum),
535
- limit: datum => {
458
+ text: datum => this._createText(datum, labelSpec),
459
+ maxLineWidth: datum => {
536
460
  var _a;
537
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
538
- },
539
- textAlign: "right",
540
- textBaseline: "middle"
541
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : "left" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
542
- x: datum => datum.x0,
543
- y: datum => (datum.y0 + datum.y1) / 2,
544
- fill: this._fillByNode,
545
- text: datum => this._createText(datum),
546
- limit: this._labelLimit,
547
- textAlign: "right",
548
- textBaseline: "middle"
549
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : "right" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
550
- x: datum => datum.x1,
551
- y: datum => (datum.y0 + datum.y1) / 2,
552
- fill: this._fillByNode,
553
- text: datum => this._createText(datum),
554
- limit: this._labelLimit,
555
- textAlign: "left",
556
- textBaseline: "middle"
557
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series) : this.setMarkStyle(this._labelMark, {
558
- x: datum => datum.x1 >= this._viewBox.x2 ? datum.x0 : datum.x1,
559
- y: datum => (datum.y0 + datum.y1) / 2,
461
+ return null !== (_a = labelSpec.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
462
+ }
463
+ }) : this.setMarkStyle(labelMark, {
560
464
  fill: this._fillByNode,
561
- text: datum => this._createText(datum),
562
- limit: this._labelLimit,
563
- textAlign: datum => datum.x1 >= this._viewBox.x2 ? "right" : "left",
564
- textBaseline: "middle"
565
- }, STATE_VALUE_ENUM.STATE_NORMAL, AttributeLevel.Series), this._labelMark.setZIndex(this._labelLayoutZIndex));
465
+ text: datum => this._createText(datum, labelSpec),
466
+ maxLineWidth: labelSpec.limit
467
+ }), labelMark.setZIndex(this._labelLayoutZIndex);
566
468
  }
567
- _createText(datum) {
568
- var _a;
469
+ _createText(datum, labelSpec) {
569
470
  if (isNil(datum) || isNil(datum.datum)) return "";
570
471
  let text = datum.datum[this._spec.categoryField] || "";
571
- return (null === (_a = this._spec.label) || void 0 === _a ? void 0 : _a.formatMethod) && (text = this._spec.label.formatMethod(text, datum.datum)),
572
- text;
472
+ const {formatMethod: formatMethod, formatter: formatter} = labelSpec || {}, {formatFunc: formatFunc, args: args} = getFormatFunction(formatMethod, formatter, text, datum.datum);
473
+ return formatFunc && (text = formatFunc(...args, {
474
+ series: this
475
+ })), text;
573
476
  }
574
477
  initAnimation() {
575
- var _a, _b, _c, _d, _e;
478
+ var _a, _b, _c, _d;
576
479
  const animationParams = {
577
480
  direction: this.direction,
578
481
  growFrom: () => {
@@ -581,8 +484,7 @@ export class SankeySeries extends CartesianSeries {
581
484
  }
582
485
  }, appearPreset = null === (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.animationAppear) || void 0 === _b ? void 0 : _b.preset;
583
486
  this._nodeMark && this._nodeMark.setAnimationConfig(animationConfig(null === (_c = Factory.getAnimationInKey("sankeyNode")) || void 0 === _c ? void 0 : _c(animationParams, appearPreset), userAnimationConfig("node", this._spec, this._markAttributeContext))),
584
- this._linkMark && this._linkMark.setAnimationConfig(animationConfig(null === (_d = Factory.getAnimationInKey("sankeyLinkPath")) || void 0 === _d ? void 0 : _d(animationParams, appearPreset), userAnimationConfig("link", this._spec, this._markAttributeContext))),
585
- this._labelMark && this._labelMark.setAnimationConfig(animationConfig(null === (_e = Factory.getAnimationInKey("fadeInOut")) || void 0 === _e ? void 0 : _e(), userAnimationConfig("label", this._spec, this._markAttributeContext)));
487
+ this._linkMark && this._linkMark.setAnimationConfig(animationConfig(null === (_d = Factory.getAnimationInKey("sankeyLinkPath")) || void 0 === _d ? void 0 : _d(animationParams, appearPreset), userAnimationConfig("link", this._spec, this._markAttributeContext)));
586
488
  }
587
489
  initEvent() {
588
490
  var _a, _b, _c;
@@ -610,8 +512,7 @@ export class SankeySeries extends CartesianSeries {
610
512
  }
611
513
  initTooltip() {
612
514
  this._tooltipHelper = new SankeySeriesTooltipHelper(this), this._nodeMark && this._tooltipHelper.activeTriggerSet.mark.add(this._nodeMark),
613
- this._linkMark && this._tooltipHelper.activeTriggerSet.mark.add(this._linkMark),
614
- this._labelMark && this._tooltipHelper.activeTriggerSet.mark.add(this._labelMark);
515
+ this._linkMark && this._tooltipHelper.activeTriggerSet.mark.add(this._linkMark);
615
516
  }
616
517
  _setNodeOrdinalColorScale() {
617
518
  var _a, _b, _c, _d, _e;
@@ -626,9 +527,9 @@ export class SankeySeries extends CartesianSeries {
626
527
  this._colorScale = ordinalScale;
627
528
  }
628
529
  getNodeList() {
629
- var _a;
530
+ var _a, _b;
630
531
  if (this._nodeList) return this._nodeList;
631
- const data = this._rawData.latestData[0], nodeList = (null == data ? void 0 : data.nodes) ? (null === (_a = data.nodes[0]) || void 0 === _a ? void 0 : _a.children) ? Array.from(this.extractNamesFromTree(data.nodes, this._spec.categoryField)) : data.nodes.map(((datum, index) => datum[this._spec.categoryField])) : (null == data ? void 0 : data.links) ? Array.from(this.extractNamesFromLink(data.links)) : null == data ? void 0 : data.values.map(((datum, index) => datum[this._spec.categoryField]));
532
+ const data = this._rawData.latestData[0], nodeList = (null == data ? void 0 : data.nodes) ? (null === (_a = data.nodes[0]) || void 0 === _a ? void 0 : _a.children) ? Array.from(this.extractNamesFromTree(data.nodes, this._spec.categoryField)) : data.nodes.map(((datum, index) => datum[this._spec.categoryField])) : (null == data ? void 0 : data.links) ? Array.from(this.extractNamesFromLink(data.links)) : null === (_b = null == data ? void 0 : data.values) || void 0 === _b ? void 0 : _b.map(((datum, index) => datum[this._spec.categoryField]));
632
533
  return this._nodeList = nodeList, nodeList;
633
534
  }
634
535
  _getNodeNameFromData(datum) {
@@ -689,7 +590,8 @@ export class SankeySeries extends CartesianSeries {
689
590
  }
690
591
  }
691
592
 
692
- SankeySeries.type = SeriesTypeEnum.sankey, SankeySeries.mark = sankeySeriesMark;
593
+ SankeySeries.type = SeriesTypeEnum.sankey, SankeySeries.transformerConstructor = SankeySeriesSpecTransformer,
594
+ SankeySeries.mark = sankeySeriesMark;
693
595
 
694
596
  export const registerSankeySeries = () => {
695
597
  registerSankeyTransforms(), registerRectMark(), registerLinkPathMark(), registerTextMark(),