@visactor/vchart 1.11.7-alpha.2 → 1.11.7-alpha.9

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 +7103 -6696
  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 +6 -6
  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.map +1 -1
  67. package/cjs/component/marker/mark-point/geo-mark-point.d.ts +2 -1
  68. package/cjs/component/marker/mark-point/geo-mark-point.js.map +1 -1
  69. package/cjs/component/marker/mark-point/interface/spec.d.ts +3 -2
  70. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  71. package/cjs/component/marker/mark-point/polar-mark-point.d.ts +2 -1
  72. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  73. package/cjs/component/marker/utils.js +11 -0
  74. package/cjs/component/marker/utils.js.map +1 -1
  75. package/cjs/component/tooltip/interface/spec.d.ts +1 -0
  76. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  77. package/cjs/component/tooltip/tooltip.d.ts +2 -1
  78. package/cjs/component/tooltip/tooltip.js +5 -3
  79. package/cjs/component/tooltip/tooltip.js.map +1 -1
  80. package/cjs/constant/hierarchy.js +1 -2
  81. package/cjs/constant/index.d.ts +5 -0
  82. package/cjs/constant/index.js +6 -2
  83. package/cjs/constant/index.js.map +1 -1
  84. package/cjs/constant/scroll-bar.js +2 -1
  85. package/cjs/core/index.d.ts +1 -2
  86. package/cjs/core/index.js +2 -2
  87. package/cjs/core/index.js.map +1 -1
  88. package/cjs/core/vchart.d.ts +3 -1
  89. package/cjs/core/vchart.js +13 -2
  90. package/cjs/core/vchart.js.map +1 -1
  91. package/cjs/data/transforms/aggregation.d.ts +8 -3
  92. package/cjs/data/transforms/aggregation.js +62 -2
  93. package/cjs/data/transforms/aggregation.js.map +1 -1
  94. package/cjs/data/transforms/stack-split.js +2 -2
  95. package/cjs/data/transforms/stack-split.js.map +1 -1
  96. package/cjs/index-wx.d.ts +1 -0
  97. package/cjs/index-wx.js +1 -1
  98. package/cjs/index-wx.js.map +1 -1
  99. package/cjs/series/bar/bar.js +7 -7
  100. package/cjs/series/bar/bar.js.map +1 -1
  101. package/cjs/series/interface/common.d.ts +2 -0
  102. package/cjs/series/interface/common.js.map +1 -1
  103. package/cjs/series/interface/series.d.ts +3 -1
  104. package/cjs/series/interface/series.js.map +1 -1
  105. package/cjs/series/interface/theme.d.ts +2 -0
  106. package/cjs/series/interface/theme.js +2 -1
  107. package/cjs/series/interface/theme.js.map +1 -1
  108. package/cjs/series/interface/type.d.ts +2 -1
  109. package/cjs/series/interface/type.js +1 -1
  110. package/cjs/series/interface/type.js.map +1 -1
  111. package/cjs/series/mosaic/interface.d.ts +16 -0
  112. package/cjs/series/mosaic/interface.js +6 -0
  113. package/cjs/series/mosaic/interface.js.map +1 -0
  114. package/cjs/series/mosaic/mosaic.d.ts +16 -0
  115. package/cjs/series/mosaic/mosaic.js +69 -0
  116. package/cjs/series/mosaic/mosaic.js.map +1 -0
  117. package/cjs/series/progress/linear/linear.d.ts +1 -3
  118. package/cjs/series/progress/linear/linear.js +46 -61
  119. package/cjs/series/progress/linear/linear.js.map +1 -1
  120. package/cjs/series/sankey/interface.d.ts +5 -4
  121. package/cjs/series/sankey/interface.js.map +1 -1
  122. package/cjs/series/sankey/sankey-transformer.d.ts +5 -0
  123. package/cjs/series/sankey/sankey-transformer.js +16 -0
  124. package/cjs/series/sankey/sankey-transformer.js.map +1 -0
  125. package/cjs/series/sankey/sankey.d.ts +7 -2
  126. package/cjs/series/sankey/sankey.js +47 -151
  127. package/cjs/series/sankey/sankey.js.map +1 -1
  128. package/cjs/series/word-cloud/interface.d.ts +1 -1
  129. package/cjs/series/word-cloud/interface.js.map +1 -1
  130. package/cjs/theme/builtin/common/series/index.js +3 -2
  131. package/cjs/theme/builtin/common/series/index.js.map +1 -1
  132. package/cjs/theme/builtin/common/series/mosaic.d.ts +2 -0
  133. package/cjs/theme/builtin/common/series/mosaic.js +27 -0
  134. package/cjs/theme/builtin/common/series/mosaic.js.map +1 -0
  135. package/cjs/theme/builtin/common/series/pie.js +1 -0
  136. package/cjs/theme/builtin/common/series/pie.js.map +1 -1
  137. package/cjs/theme/builtin/common/series/pie3d.js +1 -0
  138. package/cjs/theme/builtin/common/series/pie3d.js.map +1 -1
  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 +6 -6
  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.map +1 -1
  207. package/esm/component/marker/mark-point/geo-mark-point.d.ts +2 -1
  208. package/esm/component/marker/mark-point/geo-mark-point.js.map +1 -1
  209. package/esm/component/marker/mark-point/interface/spec.d.ts +3 -2
  210. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  211. package/esm/component/marker/mark-point/polar-mark-point.d.ts +2 -1
  212. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  213. package/esm/component/marker/utils.js +11 -0
  214. package/esm/component/marker/utils.js.map +1 -1
  215. package/esm/component/tooltip/interface/spec.d.ts +1 -0
  216. package/esm/component/tooltip/interface/spec.js.map +1 -1
  217. package/esm/component/tooltip/tooltip.d.ts +2 -1
  218. package/esm/component/tooltip/tooltip.js +5 -3
  219. package/esm/component/tooltip/tooltip.js.map +1 -1
  220. package/esm/constant/hierarchy.js +1 -2
  221. package/esm/constant/index.d.ts +5 -0
  222. package/esm/constant/index.js +10 -0
  223. package/esm/constant/index.js.map +1 -1
  224. package/esm/constant/scroll-bar.js +2 -1
  225. package/esm/core/index.d.ts +1 -2
  226. package/esm/core/index.js +1 -3
  227. package/esm/core/index.js.map +1 -1
  228. package/esm/core/vchart.d.ts +3 -1
  229. package/esm/core/vchart.js +13 -2
  230. package/esm/core/vchart.js.map +1 -1
  231. package/esm/data/transforms/aggregation.d.ts +8 -3
  232. package/esm/data/transforms/aggregation.js +60 -2
  233. package/esm/data/transforms/aggregation.js.map +1 -1
  234. package/esm/data/transforms/stack-split.js +2 -2
  235. package/esm/data/transforms/stack-split.js.map +1 -1
  236. package/esm/index-wx.d.ts +1 -0
  237. package/esm/index-wx.js +2 -0
  238. package/esm/index-wx.js.map +1 -1
  239. package/esm/series/bar/bar.js +8 -8
  240. package/esm/series/bar/bar.js.map +1 -1
  241. package/esm/series/interface/common.d.ts +2 -0
  242. package/esm/series/interface/common.js.map +1 -1
  243. package/esm/series/interface/series.d.ts +3 -1
  244. package/esm/series/interface/series.js.map +1 -1
  245. package/esm/series/interface/theme.d.ts +2 -0
  246. package/esm/series/interface/theme.js +2 -1
  247. package/esm/series/interface/theme.js.map +1 -1
  248. package/esm/series/interface/type.d.ts +2 -1
  249. package/esm/series/interface/type.js +1 -1
  250. package/esm/series/interface/type.js.map +1 -1
  251. package/esm/series/mosaic/interface.d.ts +16 -0
  252. package/esm/series/mosaic/interface.js +2 -0
  253. package/esm/series/mosaic/interface.js.map +1 -0
  254. package/esm/series/mosaic/mosaic.d.ts +16 -0
  255. package/esm/series/mosaic/mosaic.js +78 -0
  256. package/esm/series/mosaic/mosaic.js.map +1 -0
  257. package/esm/series/progress/linear/linear.d.ts +1 -3
  258. package/esm/series/progress/linear/linear.js +46 -62
  259. package/esm/series/progress/linear/linear.js.map +1 -1
  260. package/esm/series/sankey/interface.d.ts +5 -4
  261. package/esm/series/sankey/interface.js.map +1 -1
  262. package/esm/series/sankey/sankey-transformer.d.ts +5 -0
  263. package/esm/series/sankey/sankey-transformer.js +8 -0
  264. package/esm/series/sankey/sankey-transformer.js.map +1 -0
  265. package/esm/series/sankey/sankey.d.ts +7 -2
  266. package/esm/series/sankey/sankey.js +49 -147
  267. package/esm/series/sankey/sankey.js.map +1 -1
  268. package/esm/series/word-cloud/interface.d.ts +1 -1
  269. package/esm/series/word-cloud/interface.js.map +1 -1
  270. package/esm/theme/builtin/common/series/index.js +4 -1
  271. package/esm/theme/builtin/common/series/index.js.map +1 -1
  272. package/esm/theme/builtin/common/series/mosaic.d.ts +2 -0
  273. package/esm/theme/builtin/common/series/mosaic.js +23 -0
  274. package/esm/theme/builtin/common/series/mosaic.js.map +1 -0
  275. package/esm/theme/builtin/common/series/pie.js +1 -0
  276. package/esm/theme/builtin/common/series/pie.js.map +1 -1
  277. package/esm/theme/builtin/common/series/pie3d.js +1 -0
  278. package/esm/theme/builtin/common/series/pie3d.js.map +1 -1
  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 +16 -16
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/progress/linear/linear.ts"],"names":[],"mappings":"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","file":"linear.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { CartesianSeries } from '../../cartesian/cartesian';\nimport type { SeriesMarkMap } from '../../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../../interface/type';\nimport type { IRectMark } from '../../../mark/rect';\nimport type { IGroupMark } from '../../../mark/group';\nimport { valueInScaleRange } from '../../../util/scale';\nimport { AttributeLevel } from '../../../constant';\nimport type { Datum, Maybe } from '../../../typings';\nimport { animationConfig, userAnimationConfig } from '../../../animation/utils';\nimport {\n registerLinearProgressAnimation,\n type ILinearProgressAnimationParams,\n type LinearProgressAppearPreset\n} from './animation';\nimport type { ILinearProgressSeriesSpec, ILinearProgressSeriesTheme } from './interface';\nimport { LinearProgressSeriesTooltipHelper } from './tooltip-helper';\nimport type { IStateAnimateSpec } from '../../../animation/spec';\nimport { RectMark, registerRectMark } from '../../../mark/rect';\nimport { createRect } from '@visactor/vrender-core';\nimport { linearProgressSeriesMark } from './constant';\nimport { Factory } from '../../../core/factory';\nimport { registerFadeInOutAnimation } from '../../../animation/config';\nimport type { IMark } from '../../../mark/interface';\n\nexport class LinearProgressSeries<\n T extends ILinearProgressSeriesSpec = ILinearProgressSeriesSpec\n> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.linearProgress;\n type = SeriesTypeEnum.linearProgress;\n\n static readonly mark: SeriesMarkMap = linearProgressSeriesMark;\n\n private _progressMark: IRectMark | null = null;\n private _trackMark: IRectMark | null = null;\n private _progressGroupMark: IGroupMark | null = null;\n\n /**\n * 为了解决在圆角情况下,在数值较小时,rect绘图效果不好的问题\n * 1. trackMark的所有样式设置在groupMark上,定位也依靠这个groupMark\n * 2. progressMark长度固定为整个进度条长度,通过x的偏移体现当前进度\n *\n * 为了解决在配置tooltip时,trackMark设置为GroupMark无法绑定数据的问题,\n * 1. 原本的设置为groupMark的trackMark更名为GroupMark。用来保证在clip效果下progressMark小数据值的绘图效果。\n * 1. 增加一层设置为rectMark的trackMark,形状大小与GroupMark相同\n *\n * 为了解决成组\n * 给groupMark的path字段赋值为一个rect数组 也就是一个groupMark具有多个以背景条为轮廓的rect的path\n * trackMark与progressMark使用绝对定位\n */\n initMark(): void {\n this._initProgressGroupMark();\n this._initTrackMark();\n this._initProgressMark();\n }\n\n initMarkStyle(): void {\n this._initProgressGroupMarkStyle();\n this._initTrackMarkStyle();\n this._initProgressMarkStyle();\n }\n\n private _initProgressMark() {\n this._progressMark = this._createMark(LinearProgressSeries.mark.progress, {\n isSeriesMark: true,\n parent: this._progressGroupMark,\n customShape: this._spec.progress?.customShape,\n stateSort: this._spec.progress?.stateSort\n }) as IRectMark;\n return this._progressMark;\n }\n\n private _initProgressMarkStyle() {\n const progressMark = this._progressMark;\n if (progressMark) {\n if (this._spec.direction === 'vertical') {\n const leftPadding = this._spec.progress?.leftPadding ?? 0;\n const rightPadding = this._spec.progress?.rightPadding ?? 0;\n\n this.setMarkStyle(\n progressMark,\n {\n x: (datum: Datum) => {\n return (\n valueInScaleRange(this.dataToPositionX(datum), this._xAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2 +\n leftPadding\n );\n },\n y: (datum: Datum) => valueInScaleRange(this.dataToPositionY(datum), this._yAxisHelper?.getScale?.(0)),\n height: () => this._yAxisHelper?.dataToPosition([0], { bandPosition: this._bandPosition }),\n width: this._spec.bandWidth - leftPadding - rightPadding,\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const topPadding = this._spec.progress?.topPadding ?? 0;\n const bottomPadding = this._spec.progress?.bottomPadding ?? 0;\n\n this.setMarkStyle(\n progressMark,\n {\n x: (datum: Datum) =>\n valueInScaleRange(this.dataToPositionX(datum), this._xAxisHelper?.getScale?.(0)) -\n this._xAxisHelper.dataToPosition([1], { bandPosition: this._bandPosition }),\n y: (datum: Datum) => {\n return (\n valueInScaleRange(this.dataToPositionY(datum), this._yAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2 +\n topPadding\n );\n },\n height: this._spec.bandWidth - topPadding - bottomPadding,\n width: () => this._xAxisHelper?.dataToPosition([1], { bandPosition: this._bandPosition }),\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n }\n\n private _initTrackMark() {\n this._trackMark = this._createMark(LinearProgressSeries.mark.track, {\n parent: this._progressGroupMark,\n customShape: this._spec.track?.customShape,\n stateSort: this._spec.track?.stateSort\n }) as IRectMark;\n return this._trackMark;\n }\n\n private _initTrackMarkStyle() {\n const trackMark = this._trackMark;\n if (trackMark) {\n if (this._spec.direction === 'vertical') {\n this.setMarkStyle(\n trackMark,\n {\n x: (datum: any) => {\n return (\n valueInScaleRange(this.dataToPositionX(datum), this._xAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2\n );\n },\n y: 0,\n width: this._spec.bandWidth,\n height: () => this._scaleY.range()[0],\n cornerRadius: this._spec.cornerRadius\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n trackMark,\n {\n x: 0,\n y: (datum: any) => {\n return (\n valueInScaleRange(this.dataToPositionY(datum), this._yAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2\n );\n },\n height: this._spec.bandWidth,\n width: () => this._scaleX.range()[1],\n cornerRadius: this._spec.cornerRadius\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n }\n\n private _initProgressGroupMark() {\n // FIXME: disable group mark layout to prevent reevaluate after layout end\n this._progressGroupMark = this._createMark(LinearProgressSeries.mark.group, {\n skipBeforeLayouted: false\n }) as IGroupMark;\n return this._progressGroupMark;\n }\n\n private _initProgressGroupMarkStyle() {\n const groupMark = this._progressGroupMark;\n groupMark.setZIndex(this.layoutZIndex);\n groupMark.created();\n\n this.setMarkStyle(\n groupMark,\n {\n clip: true,\n x: 0,\n y: 0,\n path: () => {\n const rectPaths: any[] = [];\n this._rawData?.rawData.forEach((datum: any, index: number) => {\n if (this._spec.direction === 'vertical') {\n const x =\n valueInScaleRange(this.dataToPositionX(datum), this._xAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2;\n const height = this._scaleY.range()[0];\n\n rectPaths.push(\n createRect({\n x: x,\n y: 0,\n height: height,\n width: this._spec.bandWidth,\n cornerRadius: this._spec.cornerRadius,\n fill: true\n })\n );\n } else {\n const y =\n valueInScaleRange(this.dataToPositionY(datum), this._yAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2;\n const width = this._scaleX.range()[1];\n\n rectPaths.push(\n createRect({\n x: 0,\n y: y,\n height: this._spec.bandWidth,\n width: width,\n cornerRadius: this._spec.cornerRadius,\n fill: true\n })\n );\n }\n });\n return rectPaths;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n this._progressGroupMark.setInteractive(false);\n }\n\n initInteraction(): void {\n const marks: IMark[] = [];\n\n if (this._trackMark) {\n marks.push(this._trackMark);\n }\n\n if (this._progressMark) {\n marks.push(this._progressMark);\n }\n this._parseInteractionConfig(marks);\n }\n\n initAnimation() {\n const animationParams: ILinearProgressAnimationParams = {\n direction: this.direction\n };\n\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<LinearProgressAppearPreset>)?.preset;\n\n this._progressMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('linearProgress')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.progress, this._spec, this._markAttributeContext)\n )\n );\n\n this._trackMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('fadeInOut')?.(),\n userAnimationConfig(SeriesMarkNameEnum.track, this._spec, this._markAttributeContext)\n )\n );\n }\n\n protected initTooltip() {\n this._tooltipHelper = new LinearProgressSeriesTooltipHelper(this);\n this._progressMark && this._tooltipHelper.activeTriggerSet.mark.add(this._progressMark);\n this._trackMark && this._tooltipHelper.activeTriggerSet.mark.add(this._trackMark);\n }\n\n getActiveMarks(): IMark[] {\n return [this._progressMark];\n }\n}\n\nexport const registerLinearProgressSeries = () => {\n registerRectMark();\n registerLinearProgressAnimation();\n registerFadeInOutAnimation();\n Factory.registerSeries(LinearProgressSeries.type, LinearProgressSeries);\n};\n"]}
1
+ {"version":3,"sources":["../src/series/progress/linear/linear.ts"],"names":[],"mappings":"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","file":"linear.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { CartesianSeries } from '../../cartesian/cartesian';\nimport type { SeriesMarkMap } from '../../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../../interface/type';\nimport type { IRectMark } from '../../../mark/rect';\nimport { valueInScaleRange } from '../../../util/scale';\nimport { AttributeLevel } from '../../../constant';\nimport type { Datum } from '../../../typings';\nimport { animationConfig, userAnimationConfig } from '../../../animation/utils';\nimport {\n registerLinearProgressAnimation,\n type ILinearProgressAnimationParams,\n type LinearProgressAppearPreset\n} from './animation';\nimport type { ILinearProgressSeriesSpec } from './interface';\nimport { LinearProgressSeriesTooltipHelper } from './tooltip-helper';\nimport type { IStateAnimateSpec } from '../../../animation/spec';\nimport { registerRectMark } from '../../../mark/rect';\nimport type { ICustomPath2D } from '@visactor/vrender-core';\nimport { linearProgressSeriesMark } from './constant';\nimport { Factory } from '../../../core/factory';\nimport { registerFadeInOutAnimation } from '../../../animation/config';\nimport type { IMark } from '../../../mark/interface';\nimport { isValid } from '@visactor/vutils';\n\nexport class LinearProgressSeries<\n T extends ILinearProgressSeriesSpec = ILinearProgressSeriesSpec\n> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.linearProgress;\n type = SeriesTypeEnum.linearProgress;\n\n static readonly mark: SeriesMarkMap = linearProgressSeriesMark;\n\n private _progressMark: IRectMark | null = null;\n private _trackMark: IRectMark | null = null;\n\n initMark(): void {\n this._initTrackMark();\n this._initProgressMark();\n }\n\n initMarkStyle(): void {\n this._initTrackMarkStyle();\n this._initProgressMarkStyle();\n }\n\n private _initProgressMark() {\n this._progressMark = this._createMark(LinearProgressSeries.mark.progress, {\n isSeriesMark: true,\n customShape: this._spec.progress?.customShape ?? this._defaultProgressCustomShape,\n stateSort: this._spec.progress?.stateSort\n }) as IRectMark;\n return this._progressMark;\n }\n\n private _initProgressMarkStyle() {\n const progressMark = this._progressMark;\n if (progressMark) {\n if (this._spec.direction === 'vertical') {\n const progress = this._spec.progress || {};\n const leftPadding = progress.leftPadding ?? 0;\n const rightPadding = progress.rightPadding ?? 0;\n\n this.setMarkStyle(\n progressMark,\n {\n x: (datum: Datum) => {\n return (\n valueInScaleRange(this.dataToPositionX(datum), this._xAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2 +\n leftPadding\n );\n },\n y1: (datum: Datum) => valueInScaleRange(this.dataToPositionY(datum), this._yAxisHelper?.getScale?.(0)),\n y: () => this._yAxisHelper?.dataToPosition([0], { bandPosition: this._bandPosition }),\n width: this._spec.bandWidth - leftPadding - rightPadding,\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const progress = this._spec.progress || {};\n const topPadding = progress.topPadding ?? 0;\n const bottomPadding = progress.bottomPadding ?? 0;\n\n this.setMarkStyle(\n progressMark,\n {\n x1: (datum: Datum) => valueInScaleRange(this.dataToPositionX(datum), this._xAxisHelper?.getScale?.(0)),\n y: (datum: Datum) => {\n return (\n valueInScaleRange(this.dataToPositionY(datum), this._yAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2 +\n topPadding\n );\n },\n height: this._spec.bandWidth - topPadding - bottomPadding,\n x: () => this._xAxisHelper?.dataToPosition([0], { bandPosition: this._bandPosition }),\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n }\n\n private _defaultProgressCustomShape = (datum: any[], attrs: any, path: ICustomPath2D) => {\n const cornerRadius = this._spec.cornerRadius;\n const width = isValid(attrs.width) ? attrs.width : attrs.x1 - attrs.x;\n const height = isValid(attrs.height) ? attrs.height : attrs.y1 - attrs.y;\n const x0 = Math.min(0, width);\n const x1 = Math.max(0, width);\n const y0 = Math.min(0, height);\n const y1 = Math.max(0, height);\n\n if (cornerRadius > 0) {\n let realCornerRadius = cornerRadius;\n\n if (this._spec.direction === 'vertical') {\n realCornerRadius = Math.min(Math.abs(width / 2), cornerRadius);\n\n if (2 * realCornerRadius > Math.abs(height)) {\n const angle = Math.acos((realCornerRadius - Math.abs(height) / 2) / realCornerRadius);\n\n path.moveTo(x0 + realCornerRadius, y0);\n path.arc(\n x0 + realCornerRadius,\n y0 + realCornerRadius,\n realCornerRadius,\n 1.5 * Math.PI,\n 1.5 * Math.PI - angle,\n true\n );\n path.arc(\n x0 + realCornerRadius,\n y1 - realCornerRadius,\n realCornerRadius,\n angle + Math.PI / 2,\n Math.PI / 2,\n true\n );\n\n path.lineTo(x1 - cornerRadius, y1);\n path.arc(\n x1 - realCornerRadius,\n y1 - realCornerRadius,\n realCornerRadius,\n Math.PI / 2,\n Math.PI / 2 - angle,\n true\n );\n path.arc(\n x1 - realCornerRadius,\n y0 + realCornerRadius,\n realCornerRadius,\n -Math.PI / 2 + angle,\n -Math.PI / 2,\n true\n );\n path.lineTo(x0 + realCornerRadius, y0);\n\n path.closePath();\n\n return path;\n }\n } else {\n realCornerRadius = Math.min(Math.abs(height / 2), cornerRadius);\n\n if (2 * realCornerRadius > Math.abs(width)) {\n const angle = Math.acos((realCornerRadius - Math.abs(width) / 2) / realCornerRadius);\n path.moveTo(x0, y0 + realCornerRadius);\n path.arc(x0 + realCornerRadius, y0 + realCornerRadius, realCornerRadius, Math.PI, Math.PI + angle);\n path.arc(x1 - realCornerRadius, y0 + realCornerRadius, realCornerRadius, -angle, 0);\n path.lineTo(x1, y1 - realCornerRadius);\n path.arc(x1 - realCornerRadius, y1 - realCornerRadius, realCornerRadius, 0, angle);\n path.arc(x0 + realCornerRadius, y1 - realCornerRadius, realCornerRadius, Math.PI - angle, Math.PI);\n path.closePath();\n\n return path;\n }\n }\n\n path.moveTo(x0, y0 + realCornerRadius);\n path.arc(x0 + realCornerRadius, y0 + realCornerRadius, realCornerRadius, Math.PI, 1.5 * Math.PI);\n path.lineTo(x1 - realCornerRadius, y0);\n path.arc(x1 - realCornerRadius, y0 + realCornerRadius, realCornerRadius, -Math.PI / 2, 0);\n path.lineTo(x1, y1 - realCornerRadius);\n path.arc(x1 - realCornerRadius, y1 - realCornerRadius, realCornerRadius, 0, Math.PI / 2);\n path.lineTo(x0 + realCornerRadius, y1);\n path.arc(x0 + realCornerRadius, y1 - realCornerRadius, realCornerRadius, Math.PI / 2, Math.PI);\n path.closePath();\n } else {\n path.moveTo(x0, y0);\n path.lineTo(x1, y0);\n path.lineTo(x1, y1);\n path.lineTo(x0, y1);\n path.closePath();\n }\n\n return path;\n };\n\n private _initTrackMark() {\n this._trackMark = this._createMark(LinearProgressSeries.mark.track, {\n customShape: this._spec.track?.customShape,\n stateSort: this._spec.track?.stateSort\n }) as IRectMark;\n return this._trackMark;\n }\n\n private _initTrackMarkStyle() {\n const trackMark = this._trackMark;\n if (trackMark) {\n if (this._spec.direction === 'vertical') {\n this.setMarkStyle(\n trackMark,\n {\n x: (datum: any) => {\n return (\n valueInScaleRange(this.dataToPositionX(datum), this._xAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2\n );\n },\n y: 0,\n width: this._spec.bandWidth,\n height: () => this._scaleY.range()[0],\n cornerRadius: this._spec.cornerRadius\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n trackMark,\n {\n x: 0,\n y: (datum: any) => {\n return (\n valueInScaleRange(this.dataToPositionY(datum), this._yAxisHelper?.getScale?.(0)) -\n this._spec.bandWidth / 2\n );\n },\n height: this._spec.bandWidth,\n width: () => this._scaleX.range()[1],\n cornerRadius: this._spec.cornerRadius\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n }\n\n initInteraction(): void {\n const marks: IMark[] = [];\n\n if (this._trackMark) {\n marks.push(this._trackMark);\n }\n\n if (this._progressMark) {\n marks.push(this._progressMark);\n }\n this._parseInteractionConfig(marks);\n }\n\n initAnimation() {\n const animationParams: ILinearProgressAnimationParams = {\n direction: this.direction\n };\n\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<LinearProgressAppearPreset>)?.preset;\n\n this._progressMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('linearProgress')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.progress, this._spec, this._markAttributeContext)\n )\n );\n\n this._trackMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('fadeInOut')?.(),\n userAnimationConfig(SeriesMarkNameEnum.track, this._spec, this._markAttributeContext)\n )\n );\n }\n\n protected initTooltip() {\n this._tooltipHelper = new LinearProgressSeriesTooltipHelper(this);\n this._progressMark && this._tooltipHelper.activeTriggerSet.mark.add(this._progressMark);\n this._trackMark && this._tooltipHelper.activeTriggerSet.mark.add(this._trackMark);\n }\n\n getActiveMarks(): IMark[] {\n return [this._progressMark];\n }\n}\n\nexport const registerLinearProgressSeries = () => {\n registerRectMark();\n registerLinearProgressAnimation();\n registerFadeInOutAnimation();\n Factory.registerSeries(LinearProgressSeries.type, LinearProgressSeries);\n};\n"]}
@@ -5,6 +5,10 @@ import type { IAnimationSpec } from '../../animation/spec';
5
5
  import type { SankeyAppearPreset, SankeyMark } from './animation';
6
6
  import type { SeriesMarkNameEnum } from '../interface/type';
7
7
  import type { ILabelSpec } from '../../component/label';
8
+ export type ISankeyLabelSpec = ILabelSpec & {
9
+ position?: 'outside' | 'inside-start' | 'inside-middle' | 'inside-end' | 'left' | 'right';
10
+ limit?: number;
11
+ };
8
12
  export interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimationSpec<SankeyMark, SankeyAppearPreset> {
9
13
  nameKey: any;
10
14
  type: 'sankey';
@@ -37,10 +41,7 @@ export interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimation
37
41
  trigger?: 'click' | 'hover';
38
42
  effect: 'self' | 'adjacency' | 'related';
39
43
  };
40
- [SeriesMarkNameEnum.label]?: ILabelSpec & {
41
- position?: 'outside' | 'inside-start' | 'inside-middle' | 'inside-end' | 'left' | 'right';
42
- limit?: number;
43
- };
44
+ [SeriesMarkNameEnum.label]?: ISankeyLabelSpec | ISankeyLabelSpec[];
44
45
  }
45
46
  export interface SankeyLinkDatum {
46
47
  source: string | number;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/sankey/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ISeriesSpec, DirectionType, IMarkTheme } from '../../typings';\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport type { IRectMarkSpec, ILinkPathMarkSpec } from '../../typings/visual';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { SankeyAppearPreset, SankeyMark } from './animation';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { ILabelSpec } from '../../component/label';\n\nexport interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimationSpec<SankeyMark, SankeyAppearPreset> {\n nameKey: any;\n type: 'sankey';\n\n /**\n * 数据字段配置\n */\n /** 节点名称字段配置 */\n categoryField: string;\n /** 节点之间关系的权重字段 */\n valueField: string;\n /** 来源节点数据字段\n * 层级数据不提供\n */\n sourceField?: string;\n /** 目标节点数据字段\n * 层级数据不提供\n */\n targetField?: string;\n\n /**\n * 图表布局方向\n */\n direction?: DirectionType;\n /**\n * 节点的对齐类型\n */\n nodeAlign?: 'left' | 'right' | 'center' | 'justify' | 'start' | 'end';\n /**\n * 同一层中两个节点之间的间隙大小\n */\n nodeGap?: number;\n /**\n * 每个节点的宽度,支持三种取值\n * 1. 百分比字符串,例如:{ nodeWidth: '12%' }\n * 2. 以'px'为单位的简单数字,eg: { nodeWidth: 20 }\n * 3. function,通过自定义计算指定nodeWidth\n */\n nodeWidth?: string | number | ((node: SankeyNodeElement) => number);\n /**\n * link宽度,单位px\n */\n linkWidth?: number | ((link: SankeyLinkElement) => number);\n /**\n * link + node 的最小宽度\n */\n minStepWidth?: number;\n /**\n * 数据不为零或空时节点的最小大小\n * - 这个配置可以用来避免数据太小时看不到太细的节点\n * - 建议小于5px\n */\n minNodeHeight?: number;\n /**\n * 数据不为零或空时边的最小大小\n * - 这个配置可以用来避免数据太小的时候看不到太细的链接\n * - 建议小于5px\n * - 当同时指定 `minNodeHeight` 和 `minLinkHeight` 两个选项时,此选项应小于 `minNodeHeight`\n */\n minLinkHeight?: number;\n /** 布局的迭代次数 */\n iterations?: number;\n /** 解析node的key,defaultValue */\n nodeKey?: string | number | ((datum: SankeyNodeDatum) => string | number);\n /** 按此funtion排序link */\n linkSortBy?: (a: SankeyLinkElement, b: SankeyLinkElement) => number;\n /** 按此funtion排序node */\n nodeSortBy?: (a: SankeyNodeElement, b: SankeyNodeElement) => number;\n /** 自定义指定节点层 */\n setNodeLayer?: (datum: SankeyNodeDatum) => number;\n /**\n * 是否丢弃孤立的节点\n * @since 1.11.0\n */\n dropIsolatedNode?: boolean;\n /**\n * set the height of node\n * @since 1.11.0\n */\n nodeHeight?: number | ((node: SankeyNodeElement) => number);\n /**\n * set the height of link\n * @since 1.11.0\n */\n linkHeight?: number | ((link: SankeyLinkElement, sourceNode: SankeyNodeElement, sourceNodeHeight: number) => number);\n /**\n * each node has same height\n * @since 1.11.0\n */\n equalNodeHeight?: boolean;\n /**\n * the layout type of link\n * @since 1.11.0\n */\n linkOverlap?: 'start' | 'center' | 'end';\n\n /** 节点配置 */\n [SeriesMarkNameEnum.node]?: IMarkSpec<IRectMarkSpec>;\n\n /** 边配置 */\n [SeriesMarkNameEnum.link]?: IMarkSpec<ILinkPathMarkSpec>;\n\n /** 联动交互配置 */\n emphasis?: {\n /** 是否开启交互 */\n enable: boolean;\n /**\n * 交互触发类型\n * 默认为‘click'\n */\n trigger?: 'click' | 'hover';\n /**桑基图提供3种在节点上的交互联动效果\n * self: 仅高亮当前节点。\n * adjacency: 高亮当前节点上下游节点和关联的边,淡化其它图形元素。\n * related: 高亮与当前节点相关的整条路径上的节点和边,淡化其它图形元素。 */\n effect: 'self' | 'adjacency' | 'related';\n };\n\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: ILabelSpec & {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside-start' | 'inside-middle' | 'inside-end' | 'left' | 'right';\n /** 标签文字缩略 */\n limit?: number;\n };\n\n /** 进度条配置 */\n // scroll?: IScrollSpec & {\n // /** 是否开启进度条 */\n // enable: boolean;\n // };\n}\n\nexport interface SankeyLinkDatum {\n source: string | number;\n target: string | number;\n value?: number;\n}\n\nexport interface SankeyNodeDatum {\n value?: number;\n}\n\nexport interface HierarchyNodeDatum {\n value?: number;\n children?: HierarchyNodeDatum[];\n}\n\nexport type SankeyData =\n | {\n nodes?: SankeyNodeDatum[];\n links: SankeyLinkDatum[];\n }\n | {\n nodes: HierarchyNodeDatum[];\n };\n\n/**\n * The node element after sankey layout\n */\nexport interface SankeyNodeElement {\n key: string | number;\n index: number;\n /** the depth of node, from source to target */\n depth: number;\n\n /** the depth of node, from target to source */\n endDepth?: number;\n /** the final layer index after layout */\n layer?: number;\n isLastLayer?: boolean;\n value: number;\n datum: SankeyNodeDatum;\n sourceLinks: SankeyLinkElement[];\n targetLinks: SankeyLinkElement[];\n x0?: number;\n y0?: number;\n x1?: number;\n y1?: number;\n}\n/**\n * the link element after sankey layout\n */\nexport interface SankeyLinkElement {\n vertical?: boolean;\n index: number;\n source: string | number;\n target: string | number;\n value: number;\n datum: SankeyLinkDatum | SankeyLinkDatum[];\n thickness?: number;\n sourceRect?: { x0: number; x1: number; y0: number; y1: number };\n targetRect?: { x0: number; x1: number; y0: number; y1: number };\n /** this will only be generate in hierarchy node data*/\n parents?: (string | number)[];\n y0?: number;\n y1?: number;\n x0?: number;\n x1?: number;\n}\n\nexport type SankeyLayoutResult = {\n nodes: SankeyNodeElement[];\n links: SankeyLinkElement[];\n columns: SankeyNodeElement[][];\n}[];\n\nexport interface ISankeySeriesTheme {\n [SeriesMarkNameEnum.node]?: IMarkTheme<IRectMarkSpec>;\n [SeriesMarkNameEnum.link]?: IMarkTheme<ILinkPathMarkSpec>;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/sankey/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ISeriesSpec, DirectionType, IMarkTheme } from '../../typings';\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport type { IRectMarkSpec, ILinkPathMarkSpec } from '../../typings/visual';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { SankeyAppearPreset, SankeyMark } from './animation';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { ILabelSpec } from '../../component/label';\n\nexport type ISankeyLabelSpec = ILabelSpec & {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside-start' | 'inside-middle' | 'inside-end' | 'left' | 'right';\n /** 标签文字缩略 */\n limit?: number;\n};\n\nexport interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimationSpec<SankeyMark, SankeyAppearPreset> {\n nameKey: any;\n type: 'sankey';\n\n /**\n * 数据字段配置\n */\n /** 节点名称字段配置 */\n categoryField: string;\n /** 节点之间关系的权重字段 */\n valueField: string;\n /** 来源节点数据字段\n * 层级数据不提供\n */\n sourceField?: string;\n /** 目标节点数据字段\n * 层级数据不提供\n */\n targetField?: string;\n\n /**\n * 图表布局方向\n */\n direction?: DirectionType;\n /**\n * 节点的对齐类型\n */\n nodeAlign?: 'left' | 'right' | 'center' | 'justify' | 'start' | 'end';\n /**\n * 同一层中两个节点之间的间隙大小\n */\n nodeGap?: number;\n /**\n * 每个节点的宽度,支持三种取值\n * 1. 百分比字符串,例如:{ nodeWidth: '12%' }\n * 2. 以'px'为单位的简单数字,eg: { nodeWidth: 20 }\n * 3. function,通过自定义计算指定nodeWidth\n */\n nodeWidth?: string | number | ((node: SankeyNodeElement) => number);\n /**\n * link宽度,单位px\n */\n linkWidth?: number | ((link: SankeyLinkElement) => number);\n /**\n * link + node 的最小宽度\n */\n minStepWidth?: number;\n /**\n * 数据不为零或空时节点的最小大小\n * - 这个配置可以用来避免数据太小时看不到太细的节点\n * - 建议小于5px\n */\n minNodeHeight?: number;\n /**\n * 数据不为零或空时边的最小大小\n * - 这个配置可以用来避免数据太小的时候看不到太细的链接\n * - 建议小于5px\n * - 当同时指定 `minNodeHeight` 和 `minLinkHeight` 两个选项时,此选项应小于 `minNodeHeight`\n */\n minLinkHeight?: number;\n /** 布局的迭代次数 */\n iterations?: number;\n /** 解析node的key,defaultValue */\n nodeKey?: string | number | ((datum: SankeyNodeDatum) => string | number);\n /** 按此funtion排序link */\n linkSortBy?: (a: SankeyLinkElement, b: SankeyLinkElement) => number;\n /** 按此funtion排序node */\n nodeSortBy?: (a: SankeyNodeElement, b: SankeyNodeElement) => number;\n /** 自定义指定节点层 */\n setNodeLayer?: (datum: SankeyNodeDatum) => number;\n /**\n * 是否丢弃孤立的节点\n * @since 1.11.0\n */\n dropIsolatedNode?: boolean;\n /**\n * set the height of node\n * @since 1.11.0\n */\n nodeHeight?: number | ((node: SankeyNodeElement) => number);\n /**\n * set the height of link\n * @since 1.11.0\n */\n linkHeight?: number | ((link: SankeyLinkElement, sourceNode: SankeyNodeElement, sourceNodeHeight: number) => number);\n /**\n * each node has same height\n * @since 1.11.0\n */\n equalNodeHeight?: boolean;\n /**\n * the layout type of link\n * @since 1.11.0\n */\n linkOverlap?: 'start' | 'center' | 'end';\n\n /** 节点配置 */\n [SeriesMarkNameEnum.node]?: IMarkSpec<IRectMarkSpec>;\n\n /** 边配置 */\n [SeriesMarkNameEnum.link]?: IMarkSpec<ILinkPathMarkSpec>;\n\n /** 联动交互配置 */\n emphasis?: {\n /** 是否开启交互 */\n enable: boolean;\n /**\n * 交互触发类型\n * 默认为‘click'\n */\n trigger?: 'click' | 'hover';\n /**桑基图提供3种在节点上的交互联动效果\n * self: 仅高亮当前节点。\n * adjacency: 高亮当前节点上下游节点和关联的边,淡化其它图形元素。\n * related: 高亮与当前节点相关的整条路径上的节点和边,淡化其它图形元素。 */\n effect: 'self' | 'adjacency' | 'related';\n };\n\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: ISankeyLabelSpec | ISankeyLabelSpec[];\n\n /** 进度条配置 */\n // scroll?: IScrollSpec & {\n // /** 是否开启进度条 */\n // enable: boolean;\n // };\n}\n\nexport interface SankeyLinkDatum {\n source: string | number;\n target: string | number;\n value?: number;\n}\n\nexport interface SankeyNodeDatum {\n value?: number;\n}\n\nexport interface HierarchyNodeDatum {\n value?: number;\n children?: HierarchyNodeDatum[];\n}\n\nexport type SankeyData =\n | {\n nodes?: SankeyNodeDatum[];\n links: SankeyLinkDatum[];\n }\n | {\n nodes: HierarchyNodeDatum[];\n };\n\n/**\n * The node element after sankey layout\n */\nexport interface SankeyNodeElement {\n key: string | number;\n index: number;\n /** the depth of node, from source to target */\n depth: number;\n\n /** the depth of node, from target to source */\n endDepth?: number;\n /** the final layer index after layout */\n layer?: number;\n isLastLayer?: boolean;\n value: number;\n datum: SankeyNodeDatum;\n sourceLinks: SankeyLinkElement[];\n targetLinks: SankeyLinkElement[];\n x0?: number;\n y0?: number;\n x1?: number;\n y1?: number;\n}\n/**\n * the link element after sankey layout\n */\nexport interface SankeyLinkElement {\n vertical?: boolean;\n index: number;\n source: string | number;\n target: string | number;\n value: number;\n datum: SankeyLinkDatum | SankeyLinkDatum[];\n thickness?: number;\n sourceRect?: { x0: number; x1: number; y0: number; y1: number };\n targetRect?: { x0: number; x1: number; y0: number; y1: number };\n /** this will only be generate in hierarchy node data*/\n parents?: (string | number)[];\n y0?: number;\n y1?: number;\n x0?: number;\n x1?: number;\n}\n\nexport type SankeyLayoutResult = {\n nodes: SankeyNodeElement[];\n links: SankeyLinkElement[];\n columns: SankeyNodeElement[][];\n}[];\n\nexport interface ISankeySeriesTheme {\n [SeriesMarkNameEnum.node]?: IMarkTheme<IRectMarkSpec>;\n [SeriesMarkNameEnum.link]?: IMarkTheme<ILinkPathMarkSpec>;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { BaseSeriesSpecTransformer } from '../base';
2
+ import type { ISankeySeriesSpec, ISankeySeriesTheme } from './interface';
3
+ export declare class SankeySeriesSpecTransformer<T extends ISankeySeriesSpec = ISankeySeriesSpec, K extends ISankeySeriesTheme = ISankeySeriesTheme> extends BaseSeriesSpecTransformer<T, K> {
4
+ protected _transformLabelSpec(spec: T): void;
5
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.SankeySeriesSpecTransformer = void 0;
6
+
7
+ const base_1 = require("../base");
8
+
9
+ class SankeySeriesSpecTransformer extends base_1.BaseSeriesSpecTransformer {
10
+ _transformLabelSpec(spec) {
11
+ this._addMarkLabelSpec(spec, "node");
12
+ }
13
+ }
14
+
15
+ exports.SankeySeriesSpecTransformer = SankeySeriesSpecTransformer;
16
+ //# sourceMappingURL=sankey-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/series/sankey/sankey-transformer.ts"],"names":[],"mappings":";;;AAAA,kCAAoD;AAIpD,MAAa,2BAGX,SAAQ,gCAA+B;IAC7B,mBAAmB,CAAC,IAAO;QACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,SAA0B,CAAC;IACxD,CAAC;CACF;AAPD,kEAOC","file":"sankey-transformer.js","sourcesContent":["import { BaseSeriesSpecTransformer } from '../base';\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { ISankeySeriesSpec, ISankeySeriesTheme } from './interface';\n\nexport class SankeySeriesSpecTransformer<\n T extends ISankeySeriesSpec = ISankeySeriesSpec,\n K extends ISankeySeriesTheme = ISankeySeriesTheme\n> extends BaseSeriesSpecTransformer<T, K> {\n protected _transformLabelSpec(spec: T): void {\n this._addMarkLabelSpec(spec, SeriesMarkNameEnum.node);\n }\n}\n"]}
@@ -1,19 +1,23 @@
1
1
  import { CartesianSeries } from '../cartesian/cartesian';
2
2
  import type { SeriesMarkMap } from '../interface';
3
3
  import { SeriesTypeEnum } from '../interface/type';
4
+ import type { ITextMark } from '../../mark/text';
4
5
  import type { Datum, StringOrNumber } from '../../typings';
5
6
  import { SeriesData } from '../base/series-data';
6
7
  import type { ISankeySeriesSpec } from './interface';
7
8
  import type { ExtendEventParam } from '../../event/interface';
8
9
  import type { IElement, IGlyphElement, IMark as IVgrammarMark } from '@visactor/vgrammar-core';
9
10
  import type { IMark } from '../../mark/interface';
11
+ import { SankeySeriesSpecTransformer } from './sankey-transformer';
12
+ import type { ILabelSpec } from '../../component';
10
13
  export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpec> extends CartesianSeries<T> {
11
14
  static readonly type: string;
12
15
  type: SeriesTypeEnum;
16
+ static readonly transformerConstructor: any;
17
+ readonly transformerConstructor: typeof SankeySeriesSpecTransformer;
13
18
  static readonly mark: SeriesMarkMap;
14
19
  private _nodeMark;
15
20
  private _linkMark;
16
- private _labelMark?;
17
21
  private _nodeLayoutZIndex;
18
22
  private _labelLayoutZIndex;
19
23
  private _labelLimit;
@@ -23,6 +27,7 @@ export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpe
23
27
  protected _categoryField: string;
24
28
  private _colorScale;
25
29
  private _nodeList;
30
+ get direction(): "vertical" | "horizontal";
26
31
  getCategoryField(): string;
27
32
  setCategoryField(f: string): string;
28
33
  protected _valueField: string;
@@ -41,7 +46,7 @@ export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpe
41
46
  protected _fillByNode: (datum: Datum) => any;
42
47
  protected _fillByLink: (datum: Datum) => any;
43
48
  protected _initLinkMarkStyle(): void;
44
- protected _initLabelMarkStyle(): void;
49
+ initLabelMarkStyle(labelMark: ITextMark, labelSpec: ILabelSpec): void;
45
50
  private _createText;
46
51
  initAnimation(): void;
47
52
  protected initEvent(): void;
@@ -4,13 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerSankeySeries = exports.SankeySeries = void 0;
6
6
 
7
- const cartesian_1 = require("../cartesian/cartesian"), type_1 = require("../interface/type"), vgrammar_sankey_1 = require("@visactor/vgrammar-sankey"), utils_1 = require("../../animation/utils"), config_1 = require("../../animation/config"), register_1 = require("../../data/register"), sankey_1 = require("../../data/transforms/sankey"), sankey_nodes_1 = require("../../data/transforms/sankey-nodes"), sankey_links_1 = require("../../data/transforms/sankey-links"), interface_1 = require("../../compile/mark/interface"), vdataset_1 = require("@visactor/vdataset"), constant_1 = require("../../constant"), series_data_1 = require("../base/series-data"), tooltip_helper_1 = require("./tooltip-helper"), vutils_1 = require("@visactor/vutils"), animation_1 = require("./animation"), color_ordinal_scale_1 = require("../../scale/color-ordinal-scale"), rect_1 = require("../../mark/rect"), text_1 = require("../../mark/text"), link_path_1 = require("../../mark/link-path"), constant_2 = require("./constant"), flatten_1 = require("../../data/transforms/flatten"), factory_1 = require("../../core/factory"), initialize_1 = require("../../data/initialize"), data_key_1 = require("../../data/transforms/data-key");
7
+ const cartesian_1 = require("../cartesian/cartesian"), type_1 = require("../interface/type"), vgrammar_sankey_1 = require("@visactor/vgrammar-sankey"), utils_1 = require("../../animation/utils"), config_1 = require("../../animation/config"), register_1 = require("../../data/register"), sankey_1 = require("../../data/transforms/sankey"), sankey_nodes_1 = require("../../data/transforms/sankey-nodes"), sankey_links_1 = require("../../data/transforms/sankey-links"), interface_1 = require("../../compile/mark/interface"), vdataset_1 = require("@visactor/vdataset"), constant_1 = require("../../constant"), series_data_1 = require("../base/series-data"), tooltip_helper_1 = require("./tooltip-helper"), vutils_1 = require("@visactor/vutils"), animation_1 = require("./animation"), color_ordinal_scale_1 = require("../../scale/color-ordinal-scale"), rect_1 = require("../../mark/rect"), text_1 = require("../../mark/text"), link_path_1 = require("../../mark/link-path"), constant_2 = require("./constant"), flatten_1 = require("../../data/transforms/flatten"), factory_1 = require("../../core/factory"), initialize_1 = require("../../data/initialize"), data_key_1 = require("../../data/transforms/data-key"), sankey_transformer_1 = require("./sankey-transformer"), util_1 = require("../../component/util");
8
8
 
9
9
  class SankeySeries extends cartesian_1.CartesianSeries {
10
10
  constructor() {
11
- super(...arguments), this.type = type_1.SeriesTypeEnum.sankey, this._nodeLayoutZIndex = constant_1.LayoutZIndex.Node,
12
- this._labelLayoutZIndex = constant_1.LayoutZIndex.Label, this._viewBox = new vutils_1.Bounds,
13
- this._fillByNode = datum => {
11
+ super(...arguments), this.type = type_1.SeriesTypeEnum.sankey, this.transformerConstructor = sankey_transformer_1.SankeySeriesSpecTransformer,
12
+ this._nodeLayoutZIndex = constant_1.LayoutZIndex.Node, this._labelLayoutZIndex = constant_1.LayoutZIndex.Label,
13
+ this._viewBox = new vutils_1.Bounds, this._fillByNode = datum => {
14
14
  var _a, _b, _c, _d, _e;
15
15
  if (datum && datum.sourceRect && datum.targetRect) return this._fillByLink(datum);
16
16
  const fill = null === (_b = null === (_a = this._spec.node) || void 0 === _a ? void 0 : _a.style) || void 0 === _b ? void 0 : _b.fill;
@@ -35,20 +35,16 @@ class SankeySeries extends cartesian_1.CartesianSeries {
35
35
  const emphasisSpec = null !== (_a = this._spec.emphasis) && void 0 !== _a ? _a : {}, element = params.item;
36
36
  "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());
37
37
  }, this._handleClearEmpty = () => {
38
- var _a, _b, _c;
38
+ var _a, _b;
39
39
  const allNodeElements = null === (_a = this._nodeMark) || void 0 === _a ? void 0 : _a.getProductElements();
40
40
  if (!allNodeElements || !allNodeElements.length) return;
41
41
  const allLinkElements = null === (_b = this._linkMark) || void 0 === _b ? void 0 : _b.getProductElements();
42
42
  if (!allLinkElements || !allLinkElements.length) return;
43
- const allLabelElements = null === (_c = this._labelMark) || void 0 === _c ? void 0 : _c.getProductElements();
44
- if (!allLabelElements || !allLabelElements.length) return;
45
43
  const states = [ interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE ];
46
44
  allNodeElements.forEach((el => {
47
45
  el.removeState(states);
48
46
  })), allLinkElements.forEach((el => {
49
47
  el.removeState(states);
50
- })), allLabelElements.forEach((el => {
51
- el.removeState(states);
52
48
  }));
53
49
  }, this._handleNodeAdjacencyClick = element => {
54
50
  const nodeDatum = element.getDatum(), highlightNodes = [ nodeDatum.key ];
@@ -73,8 +69,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
73
69
  linkEl.addState(interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
74
70
  }));
75
71
  }
76
- this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
77
- this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
72
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
78
73
  }, this._handleLinkAdjacencyClick = element => {
79
74
  const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ];
80
75
  if (this._linkMark) {
@@ -87,8 +82,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
87
82
  })) : (linkEl.removeState(interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
88
83
  }));
89
84
  }
90
- this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
91
- this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
85
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
92
86
  }, this._handleNodeRelatedClick = element => {
93
87
  var _a;
94
88
  const nodeDatum = element.getDatum(), allNodeElements = this._nodeMark.getProductElements();
@@ -146,8 +140,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
146
140
  linkEl.addState(interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
147
141
  }));
148
142
  }
149
- this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
150
- this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
143
+ this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
151
144
  } else {
152
145
  const highlightNodes = [ nodeDatum.key ], upstreamLinks = nodeDatum.targetLinks.reduce(((res, link) => ((0,
153
146
  vutils_1.array)(link.datum).forEach((dividedLink => {
@@ -179,8 +172,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
179
172
  ratio: upSelectedLink.value / linkDatum.value
180
173
  });
181
174
  linkEl.removeState(interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
182
- })), this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
183
- this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
175
+ })), this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
184
176
  }
185
177
  }, this._handleLinkRelatedClick = element => {
186
178
  var _a;
@@ -190,17 +182,11 @@ class SankeySeries extends cartesian_1.CartesianSeries {
190
182
  if (!allLinkElements || !allLinkElements.length) return;
191
183
  if ("source" === ((null === (_a = element.getDatum()) || void 0 === _a ? void 0 : _a.parents) ? "parents" : "source")) {
192
184
  const states = [ interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE ];
193
- if (this._linkMark && allLinkElements.forEach((linkEl => {
185
+ this._linkMark && allLinkElements.forEach((linkEl => {
194
186
  linkEl.removeState(states);
195
187
  })), this._nodeMark && allNodeElements.forEach((el => {
196
188
  el.removeState(states);
197
- })), this._labelMark) {
198
- const allLabelElements = this._labelMark.getProductElements();
199
- if (!allLabelElements || !allLabelElements.length) return;
200
- allLabelElements.forEach((el => {
201
- el.removeState(states);
202
- }));
203
- }
189
+ }));
204
190
  } else {
205
191
  const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ], upstreamLinks = [];
206
192
  (0, vutils_1.array)(curLinkDatum.datum).forEach((dividedLink => {
@@ -247,10 +233,14 @@ class SankeySeries extends cartesian_1.CartesianSeries {
247
233
  ratio: upSelectedLink.value / linkDatum.value
248
234
  });
249
235
  linkEl.removeState(interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(interface_1.STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
250
- })), this._highLightElements(allNodeElements, highlightNodes), this._labelMark && this._highLightElements(this._labelMark.getProductElements(), highlightNodes);
236
+ })), this._highLightElements(allNodeElements, highlightNodes);
251
237
  }
252
238
  };
253
239
  }
240
+ get direction() {
241
+ var _a;
242
+ return null !== (_a = this._spec.direction) && void 0 !== _a ? _a : "horizontal";
243
+ }
254
244
  getCategoryField() {
255
245
  return this._categoryField;
256
246
  }
@@ -264,10 +254,9 @@ class SankeySeries extends cartesian_1.CartesianSeries {
264
254
  return this._valueField = f, this._valueField;
265
255
  }
266
256
  setAttrFromSpec() {
267
- var _a, _b, _c;
257
+ var _a;
268
258
  super.setAttrFromSpec(), this.setCategoryField(this._spec.categoryField), this.setValueField(this._spec.valueField),
269
- this.setSeriesField(null !== (_a = this._spec.seriesField) && void 0 !== _a ? _a : this._spec.categoryField),
270
- this._labelLimit = null !== (_c = null === (_b = this._spec.label) || void 0 === _b ? void 0 : _b.limit) && void 0 !== _c ? _c : 100;
259
+ this.setSeriesField(null !== (_a = this._spec.seriesField) && void 0 !== _a ? _a : this._spec.categoryField);
271
260
  }
272
261
  initData() {
273
262
  var _a, _b, _c, _d;
@@ -290,7 +279,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
290
279
  sourceField: this._spec.sourceField,
291
280
  targetField: this._spec.targetField,
292
281
  valueField: this._spec.valueField,
293
- direction: this._spec.direction,
282
+ direction: this.direction,
294
283
  nodeAlign: null !== (_a = this._spec.nodeAlign) && void 0 !== _a ? _a : "justify",
295
284
  nodeGap: null !== (_b = this._spec.nodeGap) && void 0 !== _b ? _b : 8,
296
285
  nodeWidth: null !== (_c = this._spec.nodeWidth) && void 0 !== _c ? _c : 10,
@@ -372,13 +361,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
372
361
  customShape: null === (_c = this._spec.link) || void 0 === _c ? void 0 : _c.customShape,
373
362
  stateSort: null === (_d = this._spec.link) || void 0 === _d ? void 0 : _d.stateSort
374
363
  });
375
- if (linkMark && (this._linkMark = linkMark), this._spec.label && this._spec.label.visible) {
376
- const labelMark = this._createMark(SankeySeries.mark.label, {
377
- dataView: this._nodesSeriesData.getDataView(),
378
- dataProductId: this._nodesSeriesData.getProductId()
379
- });
380
- labelMark && (this._labelMark = labelMark);
381
- }
364
+ linkMark && (this._linkMark = linkMark);
382
365
  }
383
366
  _buildMarkAttributeContext() {
384
367
  super._buildMarkAttributeContext(), this._markAttributeContext.valueToNode = this.valueToNode.bind(this),
@@ -401,7 +384,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
401
384
  return null == node ? void 0 : node.y0;
402
385
  }
403
386
  initMarkStyle() {
404
- this._initNodeMarkStyle(), this._initLinkMarkStyle(), this._initLabelMarkStyle();
387
+ this._initNodeMarkStyle(), this._initLinkMarkStyle();
405
388
  }
406
389
  _initNodeMarkStyle() {
407
390
  const nodeMark = this._nodeMark;
@@ -414,7 +397,6 @@ class SankeySeries extends cartesian_1.CartesianSeries {
414
397
  }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Mark);
415
398
  }
416
399
  _initLinkMarkStyle() {
417
- var _a;
418
400
  const linkMark = this._linkMark;
419
401
  linkMark && this.setMarkStyle(linkMark, {
420
402
  x0: datum => datum.x0,
@@ -423,120 +405,36 @@ class SankeySeries extends cartesian_1.CartesianSeries {
423
405
  y1: datum => datum.y1,
424
406
  thickness: datum => datum.thickness,
425
407
  fill: this._fillByLink,
426
- direction: null !== (_a = this._spec.direction) && void 0 !== _a ? _a : "horizontal"
408
+ direction: this.direction
427
409
  }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series);
428
410
  }
429
- _initLabelMarkStyle() {
430
- this._labelMark && ("vertical" === this._spec.direction ? "inside-start" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
431
- x: datum => datum.x0,
432
- y: datum => (datum.y0 + datum.y1) / 2,
433
- fill: "#ffffff",
434
- text: datum => this._createText(datum),
435
- limit: datum => {
436
- var _a;
437
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
438
- },
439
- textAlign: "left",
440
- textBaseline: "middle"
441
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : "inside-middle" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
442
- x: datum => (datum.x0 + datum.x1) / 2,
443
- y: datum => (datum.y0 + datum.y1) / 2,
444
- fill: "#ffffff",
445
- text: datum => this._createText(datum),
446
- limit: datum => {
447
- var _a;
448
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
449
- },
450
- textAlign: "center",
451
- textBaseline: "middle"
452
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : "inside-end" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
453
- x: datum => datum.x1,
454
- y: datum => (datum.y0 + datum.y1) / 2,
411
+ initLabelMarkStyle(labelMark, labelSpec) {
412
+ if (!labelMark) return;
413
+ const position = labelSpec.position;
414
+ position && position.includes("inside") ? this.setMarkStyle(labelMark, {
455
415
  fill: "#ffffff",
456
- text: datum => this._createText(datum),
457
- limit: datum => {
416
+ text: datum => this._createText(datum, labelSpec),
417
+ maxLineWidth: datum => {
458
418
  var _a;
459
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
460
- },
461
- textAlign: "right",
462
- textBaseline: "middle"
463
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : this.setMarkStyle(this._labelMark, {
464
- x: datum => (datum.x0 + datum.x1) / 2,
465
- y: datum => datum.y1 >= this._viewBox.y2 ? datum.y0 : datum.y1,
466
- fill: this._fillByNode,
467
- text: datum => this._createText(datum),
468
- limit: this._labelLimit,
469
- textAlign: "center",
470
- textBaseline: datum => datum.y1 >= this._viewBox.y2 ? "bottom" : "top"
471
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : "inside-start" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
472
- x: datum => datum.x0,
473
- y: datum => (datum.y0 + datum.y1) / 2,
474
- fill: "#ffffff",
475
- text: datum => this._createText(datum),
476
- limit: datum => {
477
- var _a;
478
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
479
- },
480
- textAlign: "left",
481
- textBaseline: "middle"
482
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : "inside-middle" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
483
- x: datum => (datum.x0 + datum.x1) / 2,
484
- y: datum => (datum.y0 + datum.y1) / 2,
485
- fill: "#ffffff",
486
- text: datum => this._createText(datum),
487
- limit: datum => {
488
- var _a;
489
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
490
- },
491
- textAlign: "center",
492
- textBaseline: "middle"
493
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : "inside-end" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
494
- x: datum => datum.x1,
495
- y: datum => (datum.y0 + datum.y1) / 2,
496
- fill: "#ffffff",
497
- text: datum => this._createText(datum),
498
- limit: datum => {
499
- var _a;
500
- return null !== (_a = this._spec.label.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
501
- },
502
- textAlign: "right",
503
- textBaseline: "middle"
504
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : "left" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
505
- x: datum => datum.x0,
506
- y: datum => (datum.y0 + datum.y1) / 2,
507
- fill: this._fillByNode,
508
- text: datum => this._createText(datum),
509
- limit: this._labelLimit,
510
- textAlign: "right",
511
- textBaseline: "middle"
512
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : "right" === this._spec.label.position ? this.setMarkStyle(this._labelMark, {
513
- x: datum => datum.x1,
514
- y: datum => (datum.y0 + datum.y1) / 2,
515
- fill: this._fillByNode,
516
- text: datum => this._createText(datum),
517
- limit: this._labelLimit,
518
- textAlign: "left",
519
- textBaseline: "middle"
520
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series) : this.setMarkStyle(this._labelMark, {
521
- x: datum => datum.x1 >= this._viewBox.x2 ? datum.x0 : datum.x1,
522
- y: datum => (datum.y0 + datum.y1) / 2,
419
+ return null !== (_a = labelSpec.limit) && void 0 !== _a ? _a : datum.x1 - datum.x0;
420
+ }
421
+ }) : this.setMarkStyle(labelMark, {
523
422
  fill: this._fillByNode,
524
- text: datum => this._createText(datum),
525
- limit: this._labelLimit,
526
- textAlign: datum => datum.x1 >= this._viewBox.x2 ? "right" : "left",
527
- textBaseline: "middle"
528
- }, interface_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series),
529
- this._labelMark.setZIndex(this._labelLayoutZIndex));
530
- }
531
- _createText(datum) {
532
- var _a;
423
+ text: datum => this._createText(datum, labelSpec),
424
+ maxLineWidth: labelSpec.limit
425
+ }), labelMark.setZIndex(this._labelLayoutZIndex);
426
+ }
427
+ _createText(datum, labelSpec) {
533
428
  if ((0, vutils_1.isNil)(datum) || (0, vutils_1.isNil)(datum.datum)) return "";
534
429
  let text = datum.datum[this._spec.categoryField] || "";
535
- return (null === (_a = this._spec.label) || void 0 === _a ? void 0 : _a.formatMethod) && (text = this._spec.label.formatMethod(text, datum.datum)),
536
- text;
430
+ const {formatMethod: formatMethod, formatter: formatter} = labelSpec || {}, {formatFunc: formatFunc, args: args} = (0,
431
+ util_1.getFormatFunction)(formatMethod, formatter, text, datum.datum);
432
+ return formatFunc && (text = formatFunc(...args, {
433
+ series: this
434
+ })), text;
537
435
  }
538
436
  initAnimation() {
539
- var _a, _b, _c, _d, _e;
437
+ var _a, _b, _c, _d;
540
438
  const animationParams = {
541
439
  direction: this.direction,
542
440
  growFrom: () => {
@@ -547,9 +445,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
547
445
  this._nodeMark && this._nodeMark.setAnimationConfig((0, utils_1.animationConfig)(null === (_c = factory_1.Factory.getAnimationInKey("sankeyNode")) || void 0 === _c ? void 0 : _c(animationParams, appearPreset), (0,
548
446
  utils_1.userAnimationConfig)("node", this._spec, this._markAttributeContext))),
549
447
  this._linkMark && this._linkMark.setAnimationConfig((0, utils_1.animationConfig)(null === (_d = factory_1.Factory.getAnimationInKey("sankeyLinkPath")) || void 0 === _d ? void 0 : _d(animationParams, appearPreset), (0,
550
- utils_1.userAnimationConfig)("link", this._spec, this._markAttributeContext))),
551
- this._labelMark && this._labelMark.setAnimationConfig((0, utils_1.animationConfig)(null === (_e = factory_1.Factory.getAnimationInKey("fadeInOut")) || void 0 === _e ? void 0 : _e(), (0,
552
- utils_1.userAnimationConfig)("label", this._spec, this._markAttributeContext)));
448
+ utils_1.userAnimationConfig)("link", this._spec, this._markAttributeContext)));
553
449
  }
554
450
  initEvent() {
555
451
  var _a, _b, _c;
@@ -577,8 +473,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
577
473
  }
578
474
  initTooltip() {
579
475
  this._tooltipHelper = new tooltip_helper_1.SankeySeriesTooltipHelper(this), this._nodeMark && this._tooltipHelper.activeTriggerSet.mark.add(this._nodeMark),
580
- this._linkMark && this._tooltipHelper.activeTriggerSet.mark.add(this._linkMark),
581
- this._labelMark && this._tooltipHelper.activeTriggerSet.mark.add(this._labelMark);
476
+ this._linkMark && this._tooltipHelper.activeTriggerSet.mark.add(this._linkMark);
582
477
  }
583
478
  _setNodeOrdinalColorScale() {
584
479
  var _a, _b, _c, _d, _e;
@@ -593,9 +488,9 @@ class SankeySeries extends cartesian_1.CartesianSeries {
593
488
  this._colorScale = ordinalScale;
594
489
  }
595
490
  getNodeList() {
596
- var _a;
491
+ var _a, _b;
597
492
  if (this._nodeList) return this._nodeList;
598
- 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]));
493
+ 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]));
599
494
  return this._nodeList = nodeList, nodeList;
600
495
  }
601
496
  _getNodeNameFromData(datum) {
@@ -659,6 +554,7 @@ class SankeySeries extends cartesian_1.CartesianSeries {
659
554
  }
660
555
 
661
556
  exports.SankeySeries = SankeySeries, SankeySeries.type = type_1.SeriesTypeEnum.sankey,
557
+ SankeySeries.transformerConstructor = sankey_transformer_1.SankeySeriesSpecTransformer,
662
558
  SankeySeries.mark = constant_2.sankeySeriesMark;
663
559
 
664
560
  const registerSankeySeries = () => {