@visactor/vchart 0.0.1-alpha.1 → 0.2.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (954) hide show
  1. package/README.md +82 -1
  2. package/build/index.js +2910 -2222
  3. package/build/index.min.js +2 -2
  4. package/cjs/animation/utils.d.ts +4 -2
  5. package/cjs/animation/utils.js +8 -3
  6. package/cjs/animation/utils.js.map +1 -1
  7. package/cjs/chart/base-chart.js +2 -2
  8. package/cjs/chart/base-chart.js.map +1 -1
  9. package/cjs/chart/{boxplot/boxPlot.js → box-plot/box-plot.js} +1 -1
  10. package/cjs/chart/box-plot/box-plot.js.map +1 -0
  11. package/{esm/chart/boxplot → cjs/chart/box-plot}/index.d.ts +1 -1
  12. package/cjs/chart/{boxplot → box-plot}/index.js +1 -1
  13. package/cjs/chart/box-plot/index.js.map +1 -0
  14. package/cjs/chart/box-plot/interface.js.map +1 -0
  15. package/cjs/chart/index.d.ts +3 -1
  16. package/cjs/chart/index.js +2 -1
  17. package/cjs/chart/index.js.map +1 -1
  18. package/cjs/chart/treemap/treemap.js.map +1 -1
  19. package/cjs/compile/compiler.d.ts +4 -4
  20. package/cjs/compile/compiler.js +25 -26
  21. package/cjs/compile/compiler.js.map +1 -1
  22. package/cjs/compile/data/compilable-data.d.ts +1 -1
  23. package/cjs/compile/interface/compiler.d.ts +0 -5
  24. package/cjs/compile/interface/compiler.js.map +1 -1
  25. package/cjs/compile/mark/compilable-mark.d.ts +1 -1
  26. package/cjs/compile/mark/interface.js.map +1 -1
  27. package/cjs/compile/signal/state-manager.d.ts +1 -1
  28. package/cjs/component/axis/base-axis.d.ts +70 -1
  29. package/cjs/component/axis/base-axis.js +93 -4
  30. package/cjs/component/axis/base-axis.js.map +1 -1
  31. package/cjs/component/axis/cartesian/axis.d.ts +0 -1
  32. package/cjs/component/axis/cartesian/axis.js +3 -6
  33. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  34. package/cjs/component/axis/polar/axis.d.ts +0 -1
  35. package/cjs/component/axis/polar/axis.js +3 -6
  36. package/cjs/component/axis/polar/axis.js.map +1 -1
  37. package/cjs/component/axis/utils.d.ts +13 -70
  38. package/cjs/component/axis/utils.js +23 -109
  39. package/cjs/component/axis/utils.js.map +1 -1
  40. package/cjs/component/base/base-component.d.ts +0 -5
  41. package/cjs/component/base/base-component.js +8 -19
  42. package/cjs/component/base/base-component.js.map +1 -1
  43. package/cjs/component/base/util.d.ts +1 -1
  44. package/cjs/component/base/util.js +20 -9
  45. package/cjs/component/base/util.js.map +1 -1
  46. package/cjs/component/crosshair/base.d.ts +0 -1
  47. package/cjs/component/crosshair/base.js +1 -4
  48. package/cjs/component/crosshair/base.js.map +1 -1
  49. package/cjs/component/custom-mark/custom-mark.js +4 -1
  50. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  51. package/cjs/component/data-zoom/data-filter-base-component.d.ts +2 -2
  52. package/cjs/component/data-zoom/data-filter-base-component.js +2 -2
  53. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  54. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  55. package/cjs/component/data-zoom/data-zoom/data-zoom.js +3 -4
  56. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  57. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -1
  58. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +2 -2
  59. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  60. package/cjs/component/interface/index.d.ts +1 -0
  61. package/cjs/component/interface/index.js +1 -1
  62. package/cjs/component/interface/index.js.map +1 -1
  63. package/cjs/component/interface/theme.d.ts +38 -0
  64. package/cjs/component/interface/theme.js +6 -0
  65. package/cjs/component/interface/theme.js.map +1 -0
  66. package/cjs/component/label/label.d.ts +0 -1
  67. package/cjs/component/label/label.js +12 -6
  68. package/cjs/component/label/label.js.map +1 -1
  69. package/cjs/component/legend/base-legend.js +5 -2
  70. package/cjs/component/legend/base-legend.js.map +1 -1
  71. package/cjs/component/legend/continuous/legend.d.ts +1 -1
  72. package/cjs/component/legend/continuous/legend.js +2 -2
  73. package/cjs/component/legend/continuous/legend.js.map +1 -1
  74. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  75. package/cjs/component/legend/discrete/legend.js +2 -2
  76. package/cjs/component/legend/discrete/legend.js.map +1 -1
  77. package/cjs/component/legend/util.d.ts +4 -4
  78. package/cjs/component/map-label/component.js +2 -2
  79. package/cjs/component/map-label/component.js.map +1 -1
  80. package/cjs/component/map-label/interface.d.ts +6 -4
  81. package/cjs/component/map-label/interface.js.map +1 -1
  82. package/cjs/component/marker/mark-area/interface/spec.d.ts +2 -1
  83. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  84. package/cjs/component/marker/mark-line/interface/spec.d.ts +2 -1
  85. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  86. package/cjs/component/marker/mark-point/interface/spec.d.ts +2 -1
  87. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  88. package/cjs/component/marker/utils.js +14 -9
  89. package/cjs/component/marker/utils.js.map +1 -1
  90. package/cjs/component/player/interface/theme.d.ts +2 -1
  91. package/cjs/component/player/interface/theme.js.map +1 -1
  92. package/cjs/component/player/player.d.ts +0 -1
  93. package/cjs/component/player/player.js +0 -3
  94. package/cjs/component/player/player.js.map +1 -1
  95. package/cjs/component/player/utils/transform.js.map +1 -1
  96. package/cjs/component/title/interface/theme.d.ts +4 -2
  97. package/cjs/component/title/interface/theme.js.map +1 -1
  98. package/cjs/component/title/title.d.ts +1 -1
  99. package/cjs/component/title/title.js +4 -6
  100. package/cjs/component/title/title.js.map +1 -1
  101. package/cjs/component/tooltip/handler/base.d.ts +5 -3
  102. package/cjs/component/tooltip/handler/base.js +9 -8
  103. package/cjs/component/tooltip/handler/base.js.map +1 -1
  104. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +4 -5
  105. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js +4 -4
  106. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  107. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +2 -4
  108. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +2 -2
  109. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  110. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +1 -1
  111. package/cjs/component/tooltip/tooltip.js +1 -1
  112. package/cjs/component/tooltip/tooltip.js.map +1 -1
  113. package/cjs/constant/base.d.ts +1 -1
  114. package/cjs/constant/base.js +1 -1
  115. package/cjs/constant/base.js.map +1 -1
  116. package/cjs/constant/box-plot.js +1 -2
  117. package/cjs/constant/label.js +2 -1
  118. package/cjs/core/factory.d.ts +1 -0
  119. package/cjs/core/factory.js +3 -0
  120. package/cjs/core/factory.js.map +1 -1
  121. package/cjs/core/instance-manager.d.ts +9 -0
  122. package/cjs/core/instance-manager.js +26 -0
  123. package/cjs/core/instance-manager.js.map +1 -0
  124. package/cjs/core/interface.js +1 -2
  125. package/cjs/core/vchart.d.ts +2 -6
  126. package/cjs/core/vchart.js +10 -24
  127. package/cjs/core/vchart.js.map +1 -1
  128. package/cjs/data/initialize.js +2 -1
  129. package/cjs/data/transforms/add-property.d.ts +5 -5
  130. package/cjs/data/transforms/add-property.js +3 -3
  131. package/cjs/data/transforms/add-property.js.map +1 -1
  132. package/cjs/data/transforms/data-key.d.ts +3 -3
  133. package/cjs/data/transforms/data-key.js.map +1 -1
  134. package/cjs/index.d.ts +1 -1
  135. package/cjs/index.js +1 -1
  136. package/cjs/index.js.map +1 -1
  137. package/cjs/mark/arc.d.ts +1 -1
  138. package/cjs/mark/arc.js +4 -3
  139. package/cjs/mark/arc.js.map +1 -1
  140. package/cjs/mark/area.d.ts +3 -2
  141. package/cjs/mark/area.js +8 -4
  142. package/cjs/mark/area.js.map +1 -1
  143. package/cjs/mark/base/base-mark.js +2 -1
  144. package/cjs/mark/base/base-mark.js.map +1 -1
  145. package/cjs/mark/base/index.d.ts +1 -2
  146. package/cjs/mark/base/index.js +1 -10
  147. package/cjs/mark/base/index.js.map +1 -1
  148. package/{esm/mark/boxPlot.d.ts → cjs/mark/box-plot.d.ts} +1 -1
  149. package/cjs/mark/{boxPlot.js → box-plot.js} +3 -3
  150. package/{esm/mark/boxPlot.js.map → cjs/mark/box-plot.js.map} +1 -1
  151. package/cjs/mark/component.d.ts +1 -1
  152. package/cjs/mark/component.js +2 -2
  153. package/cjs/mark/component.js.map +1 -1
  154. package/cjs/mark/group.js +1 -1
  155. package/cjs/mark/line.d.ts +1 -1
  156. package/cjs/mark/line.js +3 -3
  157. package/cjs/mark/line.js.map +1 -1
  158. package/cjs/mark/linkPath.d.ts +1 -1
  159. package/cjs/mark/linkPath.js +3 -3
  160. package/cjs/mark/linkPath.js.map +1 -1
  161. package/cjs/mark/mark-set/index.d.ts +6 -5
  162. package/cjs/mark/mark-set/index.js +15 -12
  163. package/cjs/mark/mark-set/index.js.map +1 -1
  164. package/cjs/mark/path.d.ts +1 -1
  165. package/cjs/mark/path.js +3 -3
  166. package/cjs/mark/path.js.map +1 -1
  167. package/cjs/mark/polygon.d.ts +1 -1
  168. package/cjs/mark/polygon.js +2 -2
  169. package/cjs/mark/polygon.js.map +1 -1
  170. package/cjs/mark/rect.d.ts +1 -1
  171. package/cjs/mark/rect.js +5 -4
  172. package/cjs/mark/rect.js.map +1 -1
  173. package/cjs/mark/rule.d.ts +1 -1
  174. package/cjs/mark/rule.js +2 -2
  175. package/cjs/mark/rule.js.map +1 -1
  176. package/cjs/mark/symbol.d.ts +1 -1
  177. package/cjs/mark/symbol.js +4 -3
  178. package/cjs/mark/symbol.js.map +1 -1
  179. package/cjs/mark/text.d.ts +1 -1
  180. package/cjs/mark/text.js +4 -3
  181. package/cjs/mark/text.js.map +1 -1
  182. package/cjs/model/base-model.d.ts +13 -6
  183. package/cjs/model/base-model.js +53 -30
  184. package/cjs/model/base-model.js.map +1 -1
  185. package/cjs/model/interface.d.ts +8 -2
  186. package/cjs/model/interface.js +1 -1
  187. package/cjs/model/interface.js.map +1 -1
  188. package/cjs/model/layout-item.js +22 -19
  189. package/cjs/model/layout-item.js.map +1 -1
  190. package/cjs/model/model-state-manager.js +1 -1
  191. package/cjs/model/tooltip-helper.js +1 -1
  192. package/cjs/region/region.d.ts +1 -4
  193. package/cjs/region/region.js +16 -13
  194. package/cjs/region/region.js.map +1 -1
  195. package/cjs/scale/color-ordinal-scale.d.ts +8 -0
  196. package/cjs/scale/color-ordinal-scale.js +24 -0
  197. package/cjs/scale/color-ordinal-scale.js.map +1 -0
  198. package/cjs/scale/global-scale.js +2 -1
  199. package/cjs/scale/global-scale.js.map +1 -1
  200. package/cjs/series/area/area.d.ts +2 -0
  201. package/cjs/series/area/area.js +15 -9
  202. package/cjs/series/area/area.js.map +1 -1
  203. package/cjs/series/area/interface.d.ts +5 -5
  204. package/cjs/series/area/interface.js.map +1 -1
  205. package/cjs/series/bar/bar.d.ts +6 -0
  206. package/cjs/series/bar/bar.js +25 -10
  207. package/cjs/series/bar/bar.js.map +1 -1
  208. package/cjs/series/bar/interface.d.ts +5 -4
  209. package/cjs/series/bar/interface.js.map +1 -1
  210. package/cjs/series/base/base-series.d.ts +12 -13
  211. package/cjs/series/base/base-series.js +56 -34
  212. package/cjs/series/base/base-series.js.map +1 -1
  213. package/{esm/series/box-plot/boxPlot.d.ts → cjs/series/box-plot/box-plot.d.ts} +2 -0
  214. package/cjs/series/box-plot/{boxPlot.js → box-plot.js} +18 -8
  215. package/cjs/series/box-plot/box-plot.js.map +1 -0
  216. package/cjs/series/box-plot/interface.d.ts +3 -2
  217. package/cjs/series/box-plot/interface.js.map +1 -1
  218. package/cjs/series/box-plot/tooltip-helper.js.map +1 -1
  219. package/cjs/series/cartesian/cartesian.d.ts +1 -1
  220. package/cjs/series/circle-packing/circle-packing.d.ts +2 -0
  221. package/cjs/series/circle-packing/circle-packing.js +15 -10
  222. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  223. package/cjs/series/circle-packing/interface.d.ts +5 -4
  224. package/cjs/series/circle-packing/interface.js.map +1 -1
  225. package/cjs/series/dot/dot.d.ts +6 -8
  226. package/cjs/series/dot/dot.js +43 -17
  227. package/cjs/series/dot/dot.js.map +1 -1
  228. package/cjs/series/dot/interface.d.ts +10 -10
  229. package/cjs/series/dot/interface.js.map +1 -1
  230. package/cjs/series/funnel/funnel.d.ts +12 -2
  231. package/cjs/series/funnel/funnel.js +92 -31
  232. package/cjs/series/funnel/funnel.js.map +1 -1
  233. package/cjs/series/funnel/interface.d.ts +16 -15
  234. package/cjs/series/funnel/interface.js.map +1 -1
  235. package/cjs/series/gauge/gauge-pointer.d.ts +2 -0
  236. package/cjs/series/gauge/gauge-pointer.js +22 -6
  237. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  238. package/cjs/series/gauge/gauge.d.ts +3 -2
  239. package/cjs/series/gauge/gauge.js +26 -17
  240. package/cjs/series/gauge/gauge.js.map +1 -1
  241. package/cjs/series/gauge/interface.d.ts +12 -11
  242. package/cjs/series/gauge/interface.js.map +1 -1
  243. package/cjs/series/heatmap/heatmap.d.ts +3 -1
  244. package/cjs/series/heatmap/heatmap.js +19 -11
  245. package/cjs/series/heatmap/heatmap.js.map +1 -1
  246. package/cjs/series/heatmap/interface.d.ts +6 -5
  247. package/cjs/series/heatmap/interface.js.map +1 -1
  248. package/cjs/series/interface/common.d.ts +56 -1
  249. package/cjs/series/interface/common.js +24 -1
  250. package/cjs/series/interface/common.js.map +1 -1
  251. package/cjs/series/interface/series.d.ts +2 -1
  252. package/cjs/series/interface/series.js.map +1 -1
  253. package/cjs/series/line/line.d.ts +2 -0
  254. package/cjs/series/line/line.js +7 -5
  255. package/cjs/series/line/line.js.map +1 -1
  256. package/cjs/series/link/interface.d.ts +4 -4
  257. package/cjs/series/link/interface.js.map +1 -1
  258. package/cjs/series/link/link.d.ts +4 -7
  259. package/cjs/series/link/link.js +20 -14
  260. package/cjs/series/link/link.js.map +1 -1
  261. package/cjs/series/map/map.d.ts +2 -0
  262. package/cjs/series/map/map.js +15 -8
  263. package/cjs/series/map/map.js.map +1 -1
  264. package/cjs/series/mixin/line-mixin.d.ts +4 -3
  265. package/cjs/series/mixin/line-mixin.js +16 -9
  266. package/cjs/series/mixin/line-mixin.js.map +1 -1
  267. package/cjs/series/pie/interface.d.ts +7 -6
  268. package/cjs/series/pie/interface.js.map +1 -1
  269. package/cjs/series/pie/pie.d.ts +8 -3
  270. package/cjs/series/pie/pie.js +67 -39
  271. package/cjs/series/pie/pie.js.map +1 -1
  272. package/cjs/series/progress/circular/circular.d.ts +2 -0
  273. package/cjs/series/progress/circular/circular.js +16 -9
  274. package/cjs/series/progress/circular/circular.js.map +1 -1
  275. package/cjs/series/progress/circular/interface.d.ts +5 -4
  276. package/cjs/series/progress/circular/interface.js.map +1 -1
  277. package/cjs/series/progress/linear/interface.d.ts +6 -5
  278. package/cjs/series/progress/linear/interface.js.map +1 -1
  279. package/cjs/series/progress/linear/linear.d.ts +2 -0
  280. package/cjs/series/progress/linear/linear.js +31 -21
  281. package/cjs/series/progress/linear/linear.js.map +1 -1
  282. package/cjs/series/radar/interface.d.ts +5 -4
  283. package/cjs/series/radar/interface.js.map +1 -1
  284. package/cjs/series/radar/radar.d.ts +2 -0
  285. package/cjs/series/radar/radar.js +9 -4
  286. package/cjs/series/radar/radar.js.map +1 -1
  287. package/cjs/series/range-area/range-area.d.ts +2 -0
  288. package/cjs/series/range-area/range-area.js +4 -3
  289. package/cjs/series/range-area/range-area.js.map +1 -1
  290. package/cjs/series/range-column/interface.d.ts +9 -8
  291. package/cjs/series/range-column/interface.js.map +1 -1
  292. package/cjs/series/range-column/rangeColumn.d.ts +2 -0
  293. package/cjs/series/range-column/rangeColumn.js +32 -23
  294. package/cjs/series/range-column/rangeColumn.js.map +1 -1
  295. package/cjs/series/rose/interface.d.ts +3 -2
  296. package/cjs/series/rose/interface.js.map +1 -1
  297. package/cjs/series/rose/rose.d.ts +2 -0
  298. package/cjs/series/rose/rose.js +15 -15
  299. package/cjs/series/rose/rose.js.map +1 -1
  300. package/cjs/series/sankey/animation.js.map +1 -1
  301. package/cjs/series/sankey/interface.d.ts +7 -6
  302. package/cjs/series/sankey/interface.js.map +1 -1
  303. package/cjs/series/sankey/sankey.d.ts +2 -0
  304. package/cjs/series/sankey/sankey.js +29 -26
  305. package/cjs/series/sankey/sankey.js.map +1 -1
  306. package/cjs/series/scatter/interface.d.ts +6 -5
  307. package/cjs/series/scatter/interface.js.map +1 -1
  308. package/cjs/series/scatter/scatter.d.ts +2 -0
  309. package/cjs/series/scatter/scatter.js +16 -12
  310. package/cjs/series/scatter/scatter.js.map +1 -1
  311. package/cjs/series/sunburst/interface.d.ts +5 -4
  312. package/cjs/series/sunburst/interface.js.map +1 -1
  313. package/cjs/series/sunburst/sunburst.d.ts +3 -1
  314. package/cjs/series/sunburst/sunburst.js +11 -6
  315. package/cjs/series/sunburst/sunburst.js.map +1 -1
  316. package/cjs/series/treemap/interface.d.ts +9 -8
  317. package/cjs/series/treemap/interface.js.map +1 -1
  318. package/cjs/series/treemap/treemap.d.ts +2 -0
  319. package/cjs/series/treemap/treemap.js +21 -8
  320. package/cjs/series/treemap/treemap.js.map +1 -1
  321. package/cjs/series/waterfall/interface.d.ts +6 -5
  322. package/cjs/series/waterfall/interface.js.map +1 -1
  323. package/cjs/series/waterfall/waterfall.d.ts +2 -0
  324. package/cjs/series/waterfall/waterfall.js +15 -5
  325. package/cjs/series/waterfall/waterfall.js.map +1 -1
  326. package/cjs/series/word-cloud/interface.d.ts +7 -6
  327. package/cjs/series/word-cloud/interface.js.map +1 -1
  328. package/cjs/series/word-cloud/word-cloud.d.ts +4 -3
  329. package/cjs/series/word-cloud/word-cloud.js +22 -11
  330. package/cjs/series/word-cloud/word-cloud.js.map +1 -1
  331. package/cjs/theme/buildin-theme/config.d.ts +1 -4
  332. package/cjs/theme/buildin-theme/config.js +2 -18
  333. package/cjs/theme/buildin-theme/config.js.map +1 -1
  334. package/cjs/theme/buildin-theme/dark.js.map +1 -1
  335. package/cjs/theme/buildin-theme/light/color-scheme.js +14 -1
  336. package/cjs/theme/buildin-theme/light/color-scheme.js.map +1 -1
  337. package/cjs/theme/buildin-theme/light/component/axis/band-axis.d.ts +2 -0
  338. package/cjs/theme/buildin-theme/light/component/axis/band-axis.js +22 -0
  339. package/cjs/theme/buildin-theme/light/component/axis/band-axis.js.map +1 -0
  340. package/cjs/theme/buildin-theme/light/component/{cartesian-axis.d.ts → axis/cartesian-axis.d.ts} +1 -1
  341. package/cjs/theme/buildin-theme/light/component/{cartesian-axis.js → axis/cartesian-axis.js} +7 -9
  342. package/cjs/theme/buildin-theme/light/component/axis/cartesian-axis.js.map +1 -0
  343. package/cjs/theme/buildin-theme/light/component/axis/common-axis.d.ts +2 -0
  344. package/cjs/theme/buildin-theme/light/component/{common-axis.js → axis/common-axis.js} +32 -14
  345. package/cjs/theme/buildin-theme/light/component/axis/common-axis.js.map +1 -0
  346. package/cjs/theme/buildin-theme/light/component/axis/linear-axis.d.ts +2 -0
  347. package/cjs/theme/buildin-theme/light/component/axis/linear-axis.js +22 -0
  348. package/cjs/theme/buildin-theme/light/component/axis/linear-axis.js.map +1 -0
  349. package/cjs/theme/buildin-theme/light/component/{polar-axis.d.ts → axis/polar-axis.d.ts} +1 -1
  350. package/cjs/theme/buildin-theme/light/component/axis/polar-axis.js +25 -0
  351. package/cjs/theme/buildin-theme/light/component/axis/polar-axis.js.map +1 -0
  352. package/cjs/theme/buildin-theme/light/component/crosshair.js +9 -5
  353. package/cjs/theme/buildin-theme/light/component/crosshair.js.map +1 -1
  354. package/cjs/theme/buildin-theme/light/component/data-zoom.js +10 -10
  355. package/cjs/theme/buildin-theme/light/component/data-zoom.js.map +1 -1
  356. package/cjs/theme/buildin-theme/light/component/index.d.ts +2 -0
  357. package/cjs/theme/buildin-theme/light/component/index.js +32 -0
  358. package/cjs/theme/buildin-theme/light/component/index.js.map +1 -0
  359. package/cjs/theme/buildin-theme/light/component/legend/color-legend.d.ts +2 -0
  360. package/cjs/theme/buildin-theme/light/component/{color-legend.js → legend/color-legend.js} +3 -3
  361. package/cjs/theme/buildin-theme/light/component/legend/color-legend.js.map +1 -0
  362. package/cjs/theme/buildin-theme/light/component/legend/continuous.d.ts +2 -0
  363. package/cjs/theme/buildin-theme/light/component/legend/continuous.js +60 -0
  364. package/cjs/theme/buildin-theme/light/component/legend/continuous.js.map +1 -0
  365. package/cjs/theme/buildin-theme/light/component/legend/discrete-legend.d.ts +2 -0
  366. package/cjs/theme/buildin-theme/light/component/{discrete-legend.js → legend/discrete-legend.js} +17 -6
  367. package/cjs/theme/buildin-theme/light/component/legend/discrete-legend.js.map +1 -0
  368. package/cjs/theme/buildin-theme/light/component/legend/size-legend.d.ts +2 -0
  369. package/cjs/theme/buildin-theme/light/component/{size-legend.js → legend/size-legend.js} +3 -3
  370. package/cjs/theme/buildin-theme/light/component/legend/size-legend.js.map +1 -0
  371. package/cjs/theme/buildin-theme/light/component/map-label.d.ts +2 -0
  372. package/cjs/{component/map-label/config.js → theme/buildin-theme/light/component/map-label.js} +8 -8
  373. package/cjs/theme/buildin-theme/light/component/map-label.js.map +1 -0
  374. package/cjs/theme/buildin-theme/light/component/player.js +20 -11
  375. package/cjs/theme/buildin-theme/light/component/player.js.map +1 -1
  376. package/cjs/theme/buildin-theme/light/component/title.js +19 -3
  377. package/cjs/theme/buildin-theme/light/component/title.js.map +1 -1
  378. package/cjs/theme/buildin-theme/light/component/tooltip.js +7 -3
  379. package/cjs/theme/buildin-theme/light/component/tooltip.js.map +1 -1
  380. package/cjs/theme/buildin-theme/light/constants.d.ts +2 -0
  381. package/cjs/theme/buildin-theme/light/constants.js +16 -0
  382. package/cjs/theme/buildin-theme/light/constants.js.map +1 -0
  383. package/cjs/theme/buildin-theme/light/index.js +5 -20
  384. package/cjs/theme/buildin-theme/light/index.js.map +1 -1
  385. package/cjs/theme/buildin-theme/light/mark.d.ts +3 -0
  386. package/cjs/theme/buildin-theme/light/mark.js +72 -0
  387. package/cjs/theme/buildin-theme/light/mark.js.map +1 -0
  388. package/cjs/theme/buildin-theme/light/series/area.js +2 -12
  389. package/cjs/theme/buildin-theme/light/series/area.js.map +1 -1
  390. package/cjs/theme/buildin-theme/light/series/bar.js +2 -2
  391. package/cjs/theme/buildin-theme/light/series/bar.js.map +1 -1
  392. package/cjs/theme/buildin-theme/light/series/bar3d.js +2 -2
  393. package/cjs/theme/buildin-theme/light/series/bar3d.js.map +1 -1
  394. package/cjs/theme/buildin-theme/light/series/box-plot.d.ts +2 -0
  395. package/cjs/theme/buildin-theme/light/series/box-plot.js +12 -0
  396. package/cjs/theme/buildin-theme/light/series/box-plot.js.map +1 -0
  397. package/cjs/theme/buildin-theme/light/series/circular-progress.js +11 -1
  398. package/cjs/theme/buildin-theme/light/series/circular-progress.js.map +1 -1
  399. package/cjs/theme/buildin-theme/light/series/funnel.js +8 -5
  400. package/cjs/theme/buildin-theme/light/series/funnel.js.map +1 -1
  401. package/cjs/theme/buildin-theme/light/series/funnel3d.js +9 -6
  402. package/cjs/theme/buildin-theme/light/series/funnel3d.js.map +1 -1
  403. package/cjs/theme/buildin-theme/light/series/gauge.js +6 -1
  404. package/cjs/theme/buildin-theme/light/series/gauge.js.map +1 -1
  405. package/cjs/theme/buildin-theme/light/series/index.js +5 -2
  406. package/cjs/theme/buildin-theme/light/series/index.js.map +1 -1
  407. package/cjs/theme/buildin-theme/light/series/line.js +2 -7
  408. package/cjs/theme/buildin-theme/light/series/line.js.map +1 -1
  409. package/cjs/theme/buildin-theme/light/series/linear-progress.js +5 -0
  410. package/cjs/theme/buildin-theme/light/series/linear-progress.js.map +1 -1
  411. package/cjs/theme/buildin-theme/light/series/map.js +8 -4
  412. package/cjs/theme/buildin-theme/light/series/map.js.map +1 -1
  413. package/cjs/theme/buildin-theme/light/series/pie.js +9 -2
  414. package/cjs/theme/buildin-theme/light/series/pie.js.map +1 -1
  415. package/cjs/theme/buildin-theme/light/series/pie3d.js +4 -3
  416. package/cjs/theme/buildin-theme/light/series/pie3d.js.map +1 -1
  417. package/cjs/theme/buildin-theme/light/series/radar.js +2 -12
  418. package/cjs/theme/buildin-theme/light/series/radar.js.map +1 -1
  419. package/cjs/theme/buildin-theme/light/series/rangeColumn.js +2 -2
  420. package/cjs/theme/buildin-theme/light/series/rangeColumn.js.map +1 -1
  421. package/cjs/theme/buildin-theme/light/series/rose.d.ts +2 -0
  422. package/cjs/theme/buildin-theme/light/series/rose.js +20 -0
  423. package/cjs/theme/buildin-theme/light/series/rose.js.map +1 -0
  424. package/cjs/theme/buildin-theme/light/series/sankey.d.ts +2 -0
  425. package/cjs/theme/buildin-theme/light/series/sankey.js +14 -0
  426. package/cjs/theme/buildin-theme/light/series/sankey.js.map +1 -0
  427. package/cjs/theme/buildin-theme/light/series/scatter.js +10 -4
  428. package/cjs/theme/buildin-theme/light/series/scatter.js.map +1 -1
  429. package/cjs/theme/buildin-theme/light/series/treemap.js +4 -4
  430. package/cjs/theme/buildin-theme/light/series/treemap.js.map +1 -1
  431. package/cjs/theme/buildin-theme/light/series/waterfall.js +3 -3
  432. package/cjs/theme/buildin-theme/light/series/waterfall.js.map +1 -1
  433. package/cjs/theme/buildin-theme/light/series/word-cloud3d.js +1 -1
  434. package/cjs/theme/buildin-theme/light/series/word-cloud3d.js.map +1 -1
  435. package/cjs/theme/color-scheme/interface.d.ts +16 -8
  436. package/cjs/theme/color-scheme/interface.js.map +1 -1
  437. package/cjs/theme/color-scheme/util.d.ts +6 -3
  438. package/cjs/theme/color-scheme/util.js +39 -10
  439. package/cjs/theme/color-scheme/util.js.map +1 -1
  440. package/cjs/theme/interface.d.ts +22 -38
  441. package/cjs/theme/interface.js.map +1 -1
  442. package/cjs/theme/theme-manager.d.ts +1 -0
  443. package/cjs/theme/theme-manager.js +5 -2
  444. package/cjs/theme/theme-manager.js.map +1 -1
  445. package/cjs/typings/spec/chart.d.ts +1 -1
  446. package/cjs/typings/spec/chart.js.map +1 -1
  447. package/cjs/typings/visual.d.ts +13 -12
  448. package/cjs/typings/visual.js.map +1 -1
  449. package/cjs/util/color.d.ts +0 -3
  450. package/cjs/util/color.js +2 -12
  451. package/cjs/util/color.js.map +1 -1
  452. package/cjs/util/id.js +4 -4
  453. package/cjs/util/id.js.map +1 -1
  454. package/cjs/util/scale.d.ts +12 -1
  455. package/cjs/util/scale.js +4 -2
  456. package/cjs/util/scale.js.map +1 -1
  457. package/cjs/vchart-all.js +4 -4
  458. package/cjs/vchart-all.js.map +1 -1
  459. package/esm/animation/utils.d.ts +4 -2
  460. package/esm/animation/utils.js +4 -0
  461. package/esm/animation/utils.js.map +1 -1
  462. package/esm/chart/base-chart.js +3 -3
  463. package/esm/chart/base-chart.js.map +1 -1
  464. package/esm/chart/{boxplot/boxPlot.js → box-plot/box-plot.js} +1 -1
  465. package/esm/chart/box-plot/box-plot.js.map +1 -0
  466. package/{cjs/chart/boxplot → esm/chart/box-plot}/index.d.ts +1 -1
  467. package/esm/chart/{boxplot → box-plot}/index.js +1 -1
  468. package/esm/chart/box-plot/index.js.map +1 -0
  469. package/esm/chart/box-plot/interface.js.map +1 -0
  470. package/esm/chart/index.d.ts +3 -1
  471. package/esm/chart/index.js +5 -1
  472. package/esm/chart/index.js.map +1 -1
  473. package/esm/chart/treemap/treemap.js.map +1 -1
  474. package/esm/compile/compiler.d.ts +4 -4
  475. package/esm/compile/compiler.js +25 -26
  476. package/esm/compile/compiler.js.map +1 -1
  477. package/esm/compile/data/compilable-data.d.ts +1 -1
  478. package/esm/compile/interface/compiler.d.ts +0 -5
  479. package/esm/compile/interface/compiler.js.map +1 -1
  480. package/esm/compile/mark/compilable-mark.d.ts +1 -1
  481. package/esm/compile/mark/interface.js.map +1 -1
  482. package/esm/compile/signal/state-manager.d.ts +1 -1
  483. package/esm/component/axis/base-axis.d.ts +70 -1
  484. package/esm/component/axis/base-axis.js +98 -4
  485. package/esm/component/axis/base-axis.js.map +1 -1
  486. package/esm/component/axis/cartesian/axis.d.ts +0 -1
  487. package/esm/component/axis/cartesian/axis.js +4 -7
  488. package/esm/component/axis/cartesian/axis.js.map +1 -1
  489. package/esm/component/axis/polar/axis.d.ts +0 -1
  490. package/esm/component/axis/polar/axis.js +4 -7
  491. package/esm/component/axis/polar/axis.js.map +1 -1
  492. package/esm/component/axis/utils.d.ts +13 -70
  493. package/esm/component/axis/utils.js +12 -99
  494. package/esm/component/axis/utils.js.map +1 -1
  495. package/esm/component/base/base-component.d.ts +0 -5
  496. package/esm/component/base/base-component.js +7 -20
  497. package/esm/component/base/base-component.js.map +1 -1
  498. package/esm/component/base/util.d.ts +1 -1
  499. package/esm/component/base/util.js +18 -9
  500. package/esm/component/base/util.js.map +1 -1
  501. package/esm/component/crosshair/base.d.ts +0 -1
  502. package/esm/component/crosshair/base.js +1 -4
  503. package/esm/component/crosshair/base.js.map +1 -1
  504. package/esm/component/custom-mark/custom-mark.js +4 -1
  505. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  506. package/esm/component/data-zoom/data-filter-base-component.d.ts +2 -2
  507. package/esm/component/data-zoom/data-filter-base-component.js +2 -2
  508. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  509. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  510. package/esm/component/data-zoom/data-zoom/data-zoom.js +3 -4
  511. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  512. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -1
  513. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +2 -2
  514. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  515. package/esm/component/interface/index.d.ts +1 -0
  516. package/esm/component/interface/index.js +2 -0
  517. package/esm/component/interface/index.js.map +1 -1
  518. package/esm/component/interface/theme.d.ts +38 -0
  519. package/esm/component/interface/theme.js +2 -0
  520. package/esm/component/interface/theme.js.map +1 -0
  521. package/esm/component/label/label.d.ts +0 -1
  522. package/esm/component/label/label.js +12 -6
  523. package/esm/component/label/label.js.map +1 -1
  524. package/esm/component/legend/base-legend.js +5 -2
  525. package/esm/component/legend/base-legend.js.map +1 -1
  526. package/esm/component/legend/continuous/legend.d.ts +1 -1
  527. package/esm/component/legend/continuous/legend.js +2 -2
  528. package/esm/component/legend/continuous/legend.js.map +1 -1
  529. package/esm/component/legend/discrete/legend.d.ts +1 -1
  530. package/esm/component/legend/discrete/legend.js +2 -2
  531. package/esm/component/legend/discrete/legend.js.map +1 -1
  532. package/esm/component/legend/util.d.ts +4 -4
  533. package/esm/component/map-label/component.js +1 -5
  534. package/esm/component/map-label/component.js.map +1 -1
  535. package/esm/component/map-label/interface.d.ts +6 -4
  536. package/esm/component/map-label/interface.js.map +1 -1
  537. package/esm/component/marker/mark-area/interface/spec.d.ts +2 -1
  538. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  539. package/esm/component/marker/mark-line/interface/spec.d.ts +2 -1
  540. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  541. package/esm/component/marker/mark-point/interface/spec.d.ts +2 -1
  542. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  543. package/esm/component/marker/utils.js +14 -9
  544. package/esm/component/marker/utils.js.map +1 -1
  545. package/esm/component/player/interface/theme.d.ts +2 -1
  546. package/esm/component/player/interface/theme.js.map +1 -1
  547. package/esm/component/player/player.d.ts +0 -1
  548. package/esm/component/player/player.js +0 -3
  549. package/esm/component/player/player.js.map +1 -1
  550. package/esm/component/player/utils/transform.js.map +1 -1
  551. package/esm/component/title/interface/theme.d.ts +4 -2
  552. package/esm/component/title/interface/theme.js.map +1 -1
  553. package/esm/component/title/title.d.ts +1 -1
  554. package/esm/component/title/title.js +3 -6
  555. package/esm/component/title/title.js.map +1 -1
  556. package/esm/component/tooltip/handler/base.d.ts +5 -3
  557. package/esm/component/tooltip/handler/base.js +9 -8
  558. package/esm/component/tooltip/handler/base.js.map +1 -1
  559. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +4 -5
  560. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js +6 -6
  561. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  562. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +2 -4
  563. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +2 -3
  564. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  565. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +1 -1
  566. package/esm/component/tooltip/tooltip.js +1 -1
  567. package/esm/component/tooltip/tooltip.js.map +1 -1
  568. package/esm/constant/base.d.ts +1 -1
  569. package/esm/constant/base.js +1 -1
  570. package/esm/constant/base.js.map +1 -1
  571. package/esm/constant/box-plot.js +1 -2
  572. package/esm/constant/label.js +2 -1
  573. package/esm/core/factory.d.ts +1 -0
  574. package/esm/core/factory.js +3 -0
  575. package/esm/core/factory.js.map +1 -1
  576. package/esm/core/instance-manager.d.ts +9 -0
  577. package/esm/core/instance-manager.js +20 -0
  578. package/esm/core/instance-manager.js.map +1 -0
  579. package/esm/core/interface.js +1 -2
  580. package/esm/core/vchart.d.ts +2 -6
  581. package/esm/core/vchart.js +11 -24
  582. package/esm/core/vchart.js.map +1 -1
  583. package/esm/data/initialize.js +2 -1
  584. package/esm/data/transforms/add-property.d.ts +5 -5
  585. package/esm/data/transforms/add-property.js +1 -1
  586. package/esm/data/transforms/add-property.js.map +1 -1
  587. package/esm/data/transforms/data-key.d.ts +3 -3
  588. package/esm/data/transforms/data-key.js.map +1 -1
  589. package/esm/index.d.ts +1 -1
  590. package/esm/index.js +1 -1
  591. package/esm/index.js.map +1 -1
  592. package/esm/mark/arc.d.ts +1 -1
  593. package/esm/mark/arc.js +3 -2
  594. package/esm/mark/arc.js.map +1 -1
  595. package/esm/mark/area.d.ts +3 -2
  596. package/esm/mark/area.js +7 -3
  597. package/esm/mark/area.js.map +1 -1
  598. package/esm/mark/base/base-mark.js +4 -3
  599. package/esm/mark/base/base-mark.js.map +1 -1
  600. package/esm/mark/base/index.d.ts +1 -2
  601. package/esm/mark/base/index.js +1 -3
  602. package/esm/mark/base/index.js.map +1 -1
  603. package/{cjs/mark/boxPlot.d.ts → esm/mark/box-plot.d.ts} +1 -1
  604. package/esm/mark/{boxPlot.js → box-plot.js} +2 -2
  605. package/esm/mark/box-plot.js.map +1 -0
  606. package/esm/mark/component.d.ts +1 -1
  607. package/esm/mark/component.js +1 -1
  608. package/esm/mark/component.js.map +1 -1
  609. package/esm/mark/group.js +1 -1
  610. package/esm/mark/line.d.ts +1 -1
  611. package/esm/mark/line.js +2 -2
  612. package/esm/mark/line.js.map +1 -1
  613. package/esm/mark/linkPath.d.ts +1 -1
  614. package/esm/mark/linkPath.js +2 -2
  615. package/esm/mark/linkPath.js.map +1 -1
  616. package/esm/mark/mark-set/index.d.ts +6 -5
  617. package/esm/mark/mark-set/index.js +16 -13
  618. package/esm/mark/mark-set/index.js.map +1 -1
  619. package/esm/mark/path.d.ts +1 -1
  620. package/esm/mark/path.js +2 -2
  621. package/esm/mark/path.js.map +1 -1
  622. package/esm/mark/polygon.d.ts +1 -1
  623. package/esm/mark/polygon.js +1 -1
  624. package/esm/mark/polygon.js.map +1 -1
  625. package/esm/mark/rect.d.ts +1 -1
  626. package/esm/mark/rect.js +3 -2
  627. package/esm/mark/rect.js.map +1 -1
  628. package/esm/mark/rule.d.ts +1 -1
  629. package/esm/mark/rule.js +1 -1
  630. package/esm/mark/rule.js.map +1 -1
  631. package/esm/mark/symbol.d.ts +1 -1
  632. package/esm/mark/symbol.js +3 -2
  633. package/esm/mark/symbol.js.map +1 -1
  634. package/esm/mark/text.d.ts +1 -1
  635. package/esm/mark/text.js +3 -2
  636. package/esm/mark/text.js.map +1 -1
  637. package/esm/model/base-model.d.ts +13 -6
  638. package/esm/model/base-model.js +51 -30
  639. package/esm/model/base-model.js.map +1 -1
  640. package/esm/model/interface.d.ts +8 -2
  641. package/esm/model/interface.js +1 -1
  642. package/esm/model/interface.js.map +1 -1
  643. package/esm/model/layout-item.js +21 -18
  644. package/esm/model/layout-item.js.map +1 -1
  645. package/esm/model/model-state-manager.js +1 -1
  646. package/esm/model/tooltip-helper.js +1 -1
  647. package/esm/region/region.d.ts +1 -4
  648. package/esm/region/region.js +15 -13
  649. package/esm/region/region.js.map +1 -1
  650. package/esm/scale/color-ordinal-scale.d.ts +8 -0
  651. package/esm/scale/color-ordinal-scale.js +18 -0
  652. package/esm/scale/color-ordinal-scale.js.map +1 -0
  653. package/esm/scale/global-scale.js +3 -2
  654. package/esm/scale/global-scale.js.map +1 -1
  655. package/esm/series/area/area.d.ts +2 -0
  656. package/esm/series/area/area.js +15 -6
  657. package/esm/series/area/area.js.map +1 -1
  658. package/esm/series/area/interface.d.ts +5 -5
  659. package/esm/series/area/interface.js.map +1 -1
  660. package/esm/series/bar/bar.d.ts +6 -0
  661. package/esm/series/bar/bar.js +27 -10
  662. package/esm/series/bar/bar.js.map +1 -1
  663. package/esm/series/bar/interface.d.ts +5 -4
  664. package/esm/series/bar/interface.js.map +1 -1
  665. package/esm/series/base/base-series.d.ts +12 -13
  666. package/esm/series/base/base-series.js +63 -34
  667. package/esm/series/base/base-series.js.map +1 -1
  668. package/{cjs/series/box-plot/boxPlot.d.ts → esm/series/box-plot/box-plot.d.ts} +2 -0
  669. package/esm/series/box-plot/{boxPlot.js → box-plot.js} +20 -9
  670. package/esm/series/box-plot/box-plot.js.map +1 -0
  671. package/esm/series/box-plot/interface.d.ts +3 -2
  672. package/esm/series/box-plot/interface.js.map +1 -1
  673. package/esm/series/box-plot/tooltip-helper.js.map +1 -1
  674. package/esm/series/cartesian/cartesian.d.ts +1 -1
  675. package/esm/series/circle-packing/circle-packing.d.ts +2 -0
  676. package/esm/series/circle-packing/circle-packing.js +15 -6
  677. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  678. package/esm/series/circle-packing/interface.d.ts +5 -4
  679. package/esm/series/circle-packing/interface.js.map +1 -1
  680. package/esm/series/dot/dot.d.ts +6 -8
  681. package/esm/series/dot/dot.js +47 -16
  682. package/esm/series/dot/dot.js.map +1 -1
  683. package/esm/series/dot/interface.d.ts +10 -10
  684. package/esm/series/dot/interface.js.map +1 -1
  685. package/esm/series/funnel/funnel.d.ts +12 -2
  686. package/esm/series/funnel/funnel.js +90 -31
  687. package/esm/series/funnel/funnel.js.map +1 -1
  688. package/esm/series/funnel/interface.d.ts +16 -15
  689. package/esm/series/funnel/interface.js.map +1 -1
  690. package/esm/series/gauge/gauge-pointer.d.ts +2 -0
  691. package/esm/series/gauge/gauge-pointer.js +23 -6
  692. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  693. package/esm/series/gauge/gauge.d.ts +3 -2
  694. package/esm/series/gauge/gauge.js +32 -18
  695. package/esm/series/gauge/gauge.js.map +1 -1
  696. package/esm/series/gauge/interface.d.ts +12 -11
  697. package/esm/series/gauge/interface.js.map +1 -1
  698. package/esm/series/heatmap/heatmap.d.ts +3 -1
  699. package/esm/series/heatmap/heatmap.js +21 -12
  700. package/esm/series/heatmap/heatmap.js.map +1 -1
  701. package/esm/series/heatmap/interface.d.ts +6 -5
  702. package/esm/series/heatmap/interface.js.map +1 -1
  703. package/esm/series/interface/common.d.ts +56 -1
  704. package/esm/series/interface/common.js +24 -1
  705. package/esm/series/interface/common.js.map +1 -1
  706. package/esm/series/interface/series.d.ts +2 -1
  707. package/esm/series/interface/series.js.map +1 -1
  708. package/esm/series/line/line.d.ts +2 -0
  709. package/esm/series/line/line.js +9 -4
  710. package/esm/series/line/line.js.map +1 -1
  711. package/esm/series/link/interface.d.ts +4 -4
  712. package/esm/series/link/interface.js.map +1 -1
  713. package/esm/series/link/link.d.ts +4 -7
  714. package/esm/series/link/link.js +22 -15
  715. package/esm/series/link/link.js.map +1 -1
  716. package/esm/series/map/map.d.ts +2 -0
  717. package/esm/series/map/map.js +16 -9
  718. package/esm/series/map/map.js.map +1 -1
  719. package/esm/series/mixin/line-mixin.d.ts +4 -3
  720. package/esm/series/mixin/line-mixin.js +19 -6
  721. package/esm/series/mixin/line-mixin.js.map +1 -1
  722. package/esm/series/pie/interface.d.ts +7 -6
  723. package/esm/series/pie/interface.js.map +1 -1
  724. package/esm/series/pie/pie.d.ts +8 -3
  725. package/esm/series/pie/pie.js +67 -35
  726. package/esm/series/pie/pie.js.map +1 -1
  727. package/esm/series/progress/circular/circular.d.ts +2 -0
  728. package/esm/series/progress/circular/circular.js +16 -6
  729. package/esm/series/progress/circular/circular.js.map +1 -1
  730. package/esm/series/progress/circular/interface.d.ts +5 -4
  731. package/esm/series/progress/circular/interface.js.map +1 -1
  732. package/esm/series/progress/linear/interface.d.ts +6 -5
  733. package/esm/series/progress/linear/interface.js.map +1 -1
  734. package/esm/series/progress/linear/linear.d.ts +2 -0
  735. package/esm/series/progress/linear/linear.js +31 -20
  736. package/esm/series/progress/linear/linear.js.map +1 -1
  737. package/esm/series/radar/interface.d.ts +5 -4
  738. package/esm/series/radar/interface.js.map +1 -1
  739. package/esm/series/radar/radar.d.ts +2 -0
  740. package/esm/series/radar/radar.js +12 -5
  741. package/esm/series/radar/radar.js.map +1 -1
  742. package/esm/series/range-area/range-area.d.ts +2 -0
  743. package/esm/series/range-area/range-area.js +2 -4
  744. package/esm/series/range-area/range-area.js.map +1 -1
  745. package/esm/series/range-column/interface.d.ts +9 -8
  746. package/esm/series/range-column/interface.js.map +1 -1
  747. package/esm/series/range-column/rangeColumn.d.ts +2 -0
  748. package/esm/series/range-column/rangeColumn.js +33 -25
  749. package/esm/series/range-column/rangeColumn.js.map +1 -1
  750. package/esm/series/rose/interface.d.ts +3 -2
  751. package/esm/series/rose/interface.js.map +1 -1
  752. package/esm/series/rose/rose.d.ts +2 -0
  753. package/esm/series/rose/rose.js +17 -16
  754. package/esm/series/rose/rose.js.map +1 -1
  755. package/esm/series/sankey/animation.js.map +1 -1
  756. package/esm/series/sankey/interface.d.ts +7 -6
  757. package/esm/series/sankey/interface.js.map +1 -1
  758. package/esm/series/sankey/sankey.d.ts +2 -0
  759. package/esm/series/sankey/sankey.js +31 -28
  760. package/esm/series/sankey/sankey.js.map +1 -1
  761. package/esm/series/scatter/interface.d.ts +6 -5
  762. package/esm/series/scatter/interface.js.map +1 -1
  763. package/esm/series/scatter/scatter.d.ts +2 -0
  764. package/esm/series/scatter/scatter.js +17 -12
  765. package/esm/series/scatter/scatter.js.map +1 -1
  766. package/esm/series/sunburst/interface.d.ts +5 -4
  767. package/esm/series/sunburst/interface.js.map +1 -1
  768. package/esm/series/sunburst/sunburst.d.ts +3 -1
  769. package/esm/series/sunburst/sunburst.js +14 -7
  770. package/esm/series/sunburst/sunburst.js.map +1 -1
  771. package/esm/series/treemap/interface.d.ts +9 -8
  772. package/esm/series/treemap/interface.js.map +1 -1
  773. package/esm/series/treemap/treemap.d.ts +2 -0
  774. package/esm/series/treemap/treemap.js +24 -9
  775. package/esm/series/treemap/treemap.js.map +1 -1
  776. package/esm/series/waterfall/interface.d.ts +6 -5
  777. package/esm/series/waterfall/interface.js.map +1 -1
  778. package/esm/series/waterfall/waterfall.d.ts +2 -0
  779. package/esm/series/waterfall/waterfall.js +15 -6
  780. package/esm/series/waterfall/waterfall.js.map +1 -1
  781. package/esm/series/word-cloud/interface.d.ts +7 -6
  782. package/esm/series/word-cloud/interface.js.map +1 -1
  783. package/esm/series/word-cloud/word-cloud.d.ts +4 -3
  784. package/esm/series/word-cloud/word-cloud.js +24 -11
  785. package/esm/series/word-cloud/word-cloud.js.map +1 -1
  786. package/esm/theme/buildin-theme/config.d.ts +1 -4
  787. package/esm/theme/buildin-theme/config.js +1 -21
  788. package/esm/theme/buildin-theme/config.js.map +1 -1
  789. package/esm/theme/buildin-theme/dark.js.map +1 -1
  790. package/esm/theme/buildin-theme/light/color-scheme.js +14 -1
  791. package/esm/theme/buildin-theme/light/color-scheme.js.map +1 -1
  792. package/esm/theme/buildin-theme/light/component/axis/band-axis.d.ts +2 -0
  793. package/esm/theme/buildin-theme/light/component/axis/band-axis.js +18 -0
  794. package/esm/theme/buildin-theme/light/component/axis/band-axis.js.map +1 -0
  795. package/esm/theme/buildin-theme/light/component/{cartesian-axis.d.ts → axis/cartesian-axis.d.ts} +1 -1
  796. package/esm/theme/buildin-theme/light/component/{cartesian-axis.js → axis/cartesian-axis.js} +7 -9
  797. package/esm/theme/buildin-theme/light/component/axis/cartesian-axis.js.map +1 -0
  798. package/esm/theme/buildin-theme/light/component/axis/common-axis.d.ts +2 -0
  799. package/esm/theme/buildin-theme/light/component/{common-axis.js → axis/common-axis.js} +32 -14
  800. package/esm/theme/buildin-theme/light/component/axis/common-axis.js.map +1 -0
  801. package/esm/theme/buildin-theme/light/component/axis/linear-axis.d.ts +2 -0
  802. package/esm/theme/buildin-theme/light/component/axis/linear-axis.js +18 -0
  803. package/esm/theme/buildin-theme/light/component/axis/linear-axis.js.map +1 -0
  804. package/esm/theme/buildin-theme/light/component/{polar-axis.d.ts → axis/polar-axis.d.ts} +1 -1
  805. package/esm/theme/buildin-theme/light/component/{polar-axis.js → axis/polar-axis.js} +11 -3
  806. package/esm/theme/buildin-theme/light/component/axis/polar-axis.js.map +1 -0
  807. package/esm/theme/buildin-theme/light/component/crosshair.js +8 -4
  808. package/esm/theme/buildin-theme/light/component/crosshair.js.map +1 -1
  809. package/esm/theme/buildin-theme/light/component/data-zoom.js +10 -10
  810. package/esm/theme/buildin-theme/light/component/data-zoom.js.map +1 -1
  811. package/esm/theme/buildin-theme/light/component/index.d.ts +2 -0
  812. package/esm/theme/buildin-theme/light/component/index.js +62 -0
  813. package/esm/theme/buildin-theme/light/component/index.js.map +1 -0
  814. package/esm/theme/buildin-theme/light/component/legend/color-legend.d.ts +2 -0
  815. package/esm/theme/buildin-theme/light/component/{color-legend.js → legend/color-legend.js} +1 -1
  816. package/esm/theme/buildin-theme/light/component/legend/color-legend.js.map +1 -0
  817. package/esm/theme/buildin-theme/light/component/legend/continuous.d.ts +2 -0
  818. package/esm/theme/buildin-theme/light/component/legend/continuous.js +54 -0
  819. package/esm/theme/buildin-theme/light/component/legend/continuous.js.map +1 -0
  820. package/esm/theme/buildin-theme/light/component/legend/discrete-legend.d.ts +2 -0
  821. package/esm/theme/buildin-theme/light/component/{discrete-legend.js → legend/discrete-legend.js} +14 -5
  822. package/esm/theme/buildin-theme/light/component/legend/discrete-legend.js.map +1 -0
  823. package/esm/theme/buildin-theme/light/component/legend/size-legend.d.ts +2 -0
  824. package/esm/theme/buildin-theme/light/component/{size-legend.js → legend/size-legend.js} +1 -1
  825. package/esm/theme/buildin-theme/light/component/legend/size-legend.js.map +1 -0
  826. package/esm/theme/buildin-theme/light/component/map-label.d.ts +2 -0
  827. package/esm/{component/map-label/config.js → theme/buildin-theme/light/component/map-label.js} +5 -3
  828. package/esm/theme/buildin-theme/light/component/map-label.js.map +1 -0
  829. package/esm/theme/buildin-theme/light/component/player.js +20 -11
  830. package/esm/theme/buildin-theme/light/component/player.js.map +1 -1
  831. package/esm/theme/buildin-theme/light/component/title.js +16 -2
  832. package/esm/theme/buildin-theme/light/component/title.js.map +1 -1
  833. package/esm/theme/buildin-theme/light/component/tooltip.js +6 -2
  834. package/esm/theme/buildin-theme/light/component/tooltip.js.map +1 -1
  835. package/esm/theme/buildin-theme/light/constants.d.ts +2 -0
  836. package/esm/theme/buildin-theme/light/constants.js +10 -0
  837. package/esm/theme/buildin-theme/light/constants.js.map +1 -0
  838. package/esm/theme/buildin-theme/light/index.js +7 -50
  839. package/esm/theme/buildin-theme/light/index.js.map +1 -1
  840. package/esm/theme/buildin-theme/light/mark.d.ts +3 -0
  841. package/esm/theme/buildin-theme/light/mark.js +68 -0
  842. package/esm/theme/buildin-theme/light/mark.js.map +1 -0
  843. package/esm/theme/buildin-theme/light/series/area.js +2 -12
  844. package/esm/theme/buildin-theme/light/series/area.js.map +1 -1
  845. package/esm/theme/buildin-theme/light/series/bar.js +2 -2
  846. package/esm/theme/buildin-theme/light/series/bar.js.map +1 -1
  847. package/esm/theme/buildin-theme/light/series/bar3d.js +2 -2
  848. package/esm/theme/buildin-theme/light/series/bar3d.js.map +1 -1
  849. package/esm/theme/buildin-theme/light/series/box-plot.d.ts +2 -0
  850. package/esm/theme/buildin-theme/light/series/box-plot.js +8 -0
  851. package/esm/theme/buildin-theme/light/series/box-plot.js.map +1 -0
  852. package/esm/theme/buildin-theme/light/series/circular-progress.js +11 -1
  853. package/esm/theme/buildin-theme/light/series/circular-progress.js.map +1 -1
  854. package/esm/theme/buildin-theme/light/series/funnel.js +7 -2
  855. package/esm/theme/buildin-theme/light/series/funnel.js.map +1 -1
  856. package/esm/theme/buildin-theme/light/series/funnel3d.js +8 -3
  857. package/esm/theme/buildin-theme/light/series/funnel3d.js.map +1 -1
  858. package/esm/theme/buildin-theme/light/series/gauge.js +6 -1
  859. package/esm/theme/buildin-theme/light/series/gauge.js.map +1 -1
  860. package/esm/theme/buildin-theme/light/series/index.js +10 -1
  861. package/esm/theme/buildin-theme/light/series/index.js.map +1 -1
  862. package/esm/theme/buildin-theme/light/series/line.js +2 -7
  863. package/esm/theme/buildin-theme/light/series/line.js.map +1 -1
  864. package/esm/theme/buildin-theme/light/series/linear-progress.js +5 -0
  865. package/esm/theme/buildin-theme/light/series/linear-progress.js.map +1 -1
  866. package/esm/theme/buildin-theme/light/series/map.js +8 -4
  867. package/esm/theme/buildin-theme/light/series/map.js.map +1 -1
  868. package/esm/theme/buildin-theme/light/series/pie.js +9 -2
  869. package/esm/theme/buildin-theme/light/series/pie.js.map +1 -1
  870. package/esm/theme/buildin-theme/light/series/pie3d.js +4 -3
  871. package/esm/theme/buildin-theme/light/series/pie3d.js.map +1 -1
  872. package/esm/theme/buildin-theme/light/series/radar.js +2 -12
  873. package/esm/theme/buildin-theme/light/series/radar.js.map +1 -1
  874. package/esm/theme/buildin-theme/light/series/rangeColumn.js +2 -2
  875. package/esm/theme/buildin-theme/light/series/rangeColumn.js.map +1 -1
  876. package/esm/theme/buildin-theme/light/series/rose.d.ts +2 -0
  877. package/esm/theme/buildin-theme/light/series/rose.js +16 -0
  878. package/esm/theme/buildin-theme/light/series/rose.js.map +1 -0
  879. package/esm/theme/buildin-theme/light/series/sankey.d.ts +2 -0
  880. package/esm/theme/buildin-theme/light/series/sankey.js +10 -0
  881. package/esm/theme/buildin-theme/light/series/sankey.js.map +1 -0
  882. package/esm/theme/buildin-theme/light/series/scatter.js +10 -4
  883. package/esm/theme/buildin-theme/light/series/scatter.js.map +1 -1
  884. package/esm/theme/buildin-theme/light/series/treemap.js +3 -1
  885. package/esm/theme/buildin-theme/light/series/treemap.js.map +1 -1
  886. package/esm/theme/buildin-theme/light/series/waterfall.js +3 -1
  887. package/esm/theme/buildin-theme/light/series/waterfall.js.map +1 -1
  888. package/esm/theme/buildin-theme/light/series/word-cloud3d.js +1 -1
  889. package/esm/theme/buildin-theme/light/series/word-cloud3d.js.map +1 -1
  890. package/esm/theme/color-scheme/interface.d.ts +16 -8
  891. package/esm/theme/color-scheme/interface.js.map +1 -1
  892. package/esm/theme/color-scheme/util.d.ts +6 -3
  893. package/esm/theme/color-scheme/util.js +31 -7
  894. package/esm/theme/color-scheme/util.js.map +1 -1
  895. package/esm/theme/interface.d.ts +22 -38
  896. package/esm/theme/interface.js.map +1 -1
  897. package/esm/theme/theme-manager.d.ts +1 -0
  898. package/esm/theme/theme-manager.js +6 -1
  899. package/esm/theme/theme-manager.js.map +1 -1
  900. package/esm/typings/spec/chart.d.ts +1 -1
  901. package/esm/typings/spec/chart.js.map +1 -1
  902. package/esm/typings/visual.d.ts +13 -12
  903. package/esm/typings/visual.js.map +1 -1
  904. package/esm/util/color.d.ts +0 -3
  905. package/esm/util/color.js +0 -10
  906. package/esm/util/color.js.map +1 -1
  907. package/esm/util/id.js +4 -4
  908. package/esm/util/id.js.map +1 -1
  909. package/esm/util/scale.d.ts +12 -1
  910. package/esm/util/scale.js +6 -2
  911. package/esm/util/scale.js.map +1 -1
  912. package/esm/vchart-all.js +5 -5
  913. package/esm/vchart-all.js.map +1 -1
  914. package/package.json +3 -3
  915. package/cjs/chart/boxplot/boxPlot.js.map +0 -1
  916. package/cjs/chart/boxplot/index.js.map +0 -1
  917. package/cjs/chart/boxplot/interface.js.map +0 -1
  918. package/cjs/component/map-label/config.d.ts +0 -2
  919. package/cjs/component/map-label/config.js.map +0 -1
  920. package/cjs/mark/boxPlot.js.map +0 -1
  921. package/cjs/series/box-plot/boxPlot.js.map +0 -1
  922. package/cjs/theme/buildin-theme/light/component/cartesian-axis.js.map +0 -1
  923. package/cjs/theme/buildin-theme/light/component/color-legend.d.ts +0 -2
  924. package/cjs/theme/buildin-theme/light/component/color-legend.js.map +0 -1
  925. package/cjs/theme/buildin-theme/light/component/common-axis.d.ts +0 -2
  926. package/cjs/theme/buildin-theme/light/component/common-axis.js.map +0 -1
  927. package/cjs/theme/buildin-theme/light/component/discrete-legend.d.ts +0 -2
  928. package/cjs/theme/buildin-theme/light/component/discrete-legend.js.map +0 -1
  929. package/cjs/theme/buildin-theme/light/component/polar-axis.js +0 -19
  930. package/cjs/theme/buildin-theme/light/component/polar-axis.js.map +0 -1
  931. package/cjs/theme/buildin-theme/light/component/size-legend.d.ts +0 -2
  932. package/cjs/theme/buildin-theme/light/component/size-legend.js.map +0 -1
  933. package/esm/chart/boxplot/boxPlot.js.map +0 -1
  934. package/esm/chart/boxplot/index.js.map +0 -1
  935. package/esm/chart/boxplot/interface.js.map +0 -1
  936. package/esm/component/map-label/config.d.ts +0 -2
  937. package/esm/component/map-label/config.js.map +0 -1
  938. package/esm/series/box-plot/boxPlot.js.map +0 -1
  939. package/esm/theme/buildin-theme/light/component/cartesian-axis.js.map +0 -1
  940. package/esm/theme/buildin-theme/light/component/color-legend.d.ts +0 -2
  941. package/esm/theme/buildin-theme/light/component/color-legend.js.map +0 -1
  942. package/esm/theme/buildin-theme/light/component/common-axis.d.ts +0 -2
  943. package/esm/theme/buildin-theme/light/component/common-axis.js.map +0 -1
  944. package/esm/theme/buildin-theme/light/component/discrete-legend.d.ts +0 -2
  945. package/esm/theme/buildin-theme/light/component/discrete-legend.js.map +0 -1
  946. package/esm/theme/buildin-theme/light/component/polar-axis.js.map +0 -1
  947. package/esm/theme/buildin-theme/light/component/size-legend.d.ts +0 -2
  948. package/esm/theme/buildin-theme/light/component/size-legend.js.map +0 -1
  949. /package/cjs/chart/{boxplot/boxPlot.d.ts → box-plot/box-plot.d.ts} +0 -0
  950. /package/cjs/chart/{boxplot → box-plot}/interface.d.ts +0 -0
  951. /package/cjs/chart/{boxplot → box-plot}/interface.js +0 -0
  952. /package/esm/chart/{boxplot/boxPlot.d.ts → box-plot/box-plot.d.ts} +0 -0
  953. /package/esm/chart/{boxplot → box-plot}/interface.d.ts +0 -0
  954. /package/esm/chart/{boxplot → box-plot}/interface.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/sankey/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import { CartesianSeries } from '../cartesian/cartesian';\nimport { SeriesTypeEnum } from '../interface';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IRectMark } from '../../mark/rect';\nimport type { ILinkPathMark } from '../../mark/linkPath';\nimport type { ITextMark } from '../../mark/text';\nimport { registerSankeyTransforms } from '@visactor/vgrammar-sankey';\nimport type { Datum, IRectMarkSpec, ILinkPathMarkSpec, ITextMarkSpec } from '../../typings';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { registerDataSetInstanceTransform, registerDataSetInstanceParser } from '../../data/register';\nimport type { ISankeyOpt } from '../../data/transforms/sankey';\n// eslint-disable-next-line no-duplicate-imports\nimport { sankey } from '../../data/transforms/sankey';\nimport { sankeyNodes } from '../../data/transforms/sankey-nodes';\nimport { sankeyLinks } from '../../data/transforms/sankey-links';\nimport { STATE_VALUE_ENUM } from '../../compile/mark';\nimport { DataView, DataSet, dataViewParser } from '@visactor/vdataset';\nimport { DEFAULT_DATA_INDEX, LayoutZIndex, AttributeLevel, Event_Bubble_Level } from '../../constant';\nimport { SeriesData } from '../base/series-data';\nimport { addChartSpaceProperty } from '../../data/transforms/add-property';\nimport { addDataKey, initKeyMap } from '../../data/transforms/data-key';\nimport { getDataScheme } from '../../theme/color-scheme/util';\nimport { OrdinalScale } from '@visactor/vscale';\nimport { SankeySeriesTooltipHelper } from './tooltip-helper';\nimport type { IBounds } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds } from '@visactor/vutils';\nimport type { ISankeyAnimationParams } from './animation';\nimport type { ISankeySeriesSpec } from './interface';\nimport type { ExtendEventParam } from '../../event/interface';\nimport type { IElement, IGlyphElement } from '@visactor/vgrammar';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\nimport { array } from '../../util';\n\nregisterSankeyTransforms();\n\nexport class SankeySeries extends CartesianSeries<any> {\n static readonly type: string = SeriesTypeEnum.sankey;\n type = SeriesTypeEnum.sankey;\n\n protected declare _spec: ISankeySeriesSpec;\n\n private _nodeMark: IRectMark;\n private _linkMark: ILinkPathMark;\n private _labelMark?: ITextMark;\n\n private _nodeLayoutZIndex = LayoutZIndex.Node;\n private _labelLayoutZIndex = LayoutZIndex.Label;\n private _labelLimit: number;\n\n protected _nodesSeriesData?: SeriesData;\n protected _linksSeriesData?: SeriesData;\n\n private _viewBox: IBounds = new Bounds();\n\n protected _categoryField!: string;\n getCategoryField() {\n return this._categoryField;\n }\n setCategoryField(f: string): string {\n this._categoryField = f;\n return this._categoryField;\n }\n\n protected _valueField!: string;\n getValueField() {\n return this._valueField;\n }\n setValueField(f: string): string {\n this._valueField = f;\n return this._valueField;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this.setCategoryField(this._spec.categoryField);\n this.setValueField(this._spec.valueField);\n this.setSeriesField(this._spec.seriesField ?? this._spec.categoryField);\n this._labelLimit = this._spec.label?.limit ?? 100;\n }\n\n initData() {\n super.initData();\n\n if (this._viewDataFilter) {\n // 初始化桑基图数据\n registerDataSetInstanceTransform(this._dataSet, 'sankey', sankey);\n\n this.addViewDataFilter({\n type: 'sankey',\n options: {\n view: () => {\n return {\n x0: this._viewBox.x1,\n x1: this._viewBox.x2,\n y0: this._viewBox.y1,\n y1: this._viewBox.y2\n };\n },\n direction: this._spec.direction,\n nodeAlign: this._spec.nodeAlign,\n nodeGap: this._spec.nodeGap,\n nodeWidth: this._spec.nodeWidth,\n linkWidth: this._spec.linkWidth,\n minStepWidth: this._spec.minStepWidth,\n minNodeHeight: this._spec.minNodeHeight,\n minLinkHeight: this._spec.minLinkHeight,\n iterations: this._spec.iterations,\n nodeKey: this._spec.nodeKey,\n linkSortBy: this._spec.linkSortBy,\n nodeSortBy: this._spec.nodeSortBy,\n setNodeLayer: this._spec.setNodeLayer\n } as ISankeyOpt\n });\n\n const nodesDataSet = new DataSet();\n registerDataSetInstanceParser(nodesDataSet, 'dataview', dataViewParser);\n registerDataSetInstanceTransform(nodesDataSet, 'sankeyNodes', sankeyNodes);\n registerDataSetInstanceTransform(nodesDataSet, 'addChartSpaceProperty', addChartSpaceProperty);\n const nodesDataView = new DataView(nodesDataSet);\n nodesDataView.parse([this.getViewData()], {\n type: 'dataview'\n });\n nodesDataView.transform({\n type: 'sankeyNodes'\n });\n\n nodesDataView.transform(\n {\n type: 'addChartSpaceProperty',\n options: {\n beforeCall: initKeyMap,\n call: addDataKey.bind(this)\n }\n },\n false\n );\n\n this._nodesSeriesData = new SeriesData(this._option, nodesDataView);\n\n const linksDataSet = new DataSet();\n registerDataSetInstanceParser(linksDataSet, 'dataview', dataViewParser);\n registerDataSetInstanceTransform(linksDataSet, 'sankeyLinks', sankeyLinks);\n registerDataSetInstanceTransform(linksDataSet, 'addChartSpaceProperty', addChartSpaceProperty);\n const linksDataView = new DataView(linksDataSet);\n linksDataView.parse([this.getViewData()], {\n type: 'dataview'\n });\n linksDataView.transform({\n type: 'sankeyLinks'\n });\n\n linksDataView.transform(\n {\n type: 'addChartSpaceProperty',\n options: {\n beforeCall: initKeyMap,\n call: addDataKey.bind(this)\n }\n },\n false\n );\n\n this._linksSeriesData = new SeriesData(this._option, linksDataView);\n }\n }\n\n initMark(): void {\n const nodeMark = this._createMark(MarkTypeEnum.rect, 'node', {\n isSeriesMark: true,\n key: DEFAULT_DATA_INDEX,\n dataView: this._nodesSeriesData.getDataView(),\n dataProductId: this._nodesSeriesData.getProductId()\n }) as IRectMark;\n if (nodeMark) {\n nodeMark.setZIndex(this._nodeLayoutZIndex);\n this._nodeMark = nodeMark;\n }\n\n const linkMark = this._createMark(MarkTypeEnum.linkPath, 'link', {\n key: DEFAULT_DATA_INDEX,\n dataView: this._linksSeriesData.getDataView(),\n dataProductId: this._linksSeriesData.getProductId()\n }) as ILinkPathMark;\n if (linkMark) {\n this._linkMark = linkMark;\n }\n\n if (this._spec.label?.visible) {\n const labelMark = this._createMark(MarkTypeEnum.text, 'label', {\n key: DEFAULT_DATA_INDEX,\n dataView: this._nodesSeriesData.getDataView(),\n dataProductId: this._nodesSeriesData.getProductId()\n }) as ITextMark;\n if (labelMark) {\n this._labelMark = labelMark;\n }\n }\n }\n\n initMarkStyle(): void {\n this._initNodeMarkStyle();\n this._initLinkMarkStyle();\n this._initLabelMarkStyle();\n }\n\n protected _initNodeMarkStyle() {\n const nodeMark = this._nodeMark;\n if (!nodeMark) {\n return;\n }\n\n this.setMarkStyle<IRectMarkSpec>(\n nodeMark,\n {\n x: (datum: Datum) => {\n return datum.x0;\n },\n x1: (datum: Datum) => datum.x1,\n y: (datum: Datum) => datum.y0,\n y1: (datum: Datum) => datum.y1,\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n }\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Mark\n );\n this._trigger.registerMark(nodeMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(nodeMark);\n }\n\n protected _initLinkMarkStyle() {\n const linkMark = this._linkMark;\n if (!linkMark) {\n return;\n }\n this.setMarkStyle<ILinkPathMarkSpec>(\n linkMark,\n {\n x0: (datum: Datum) => datum.x0,\n x1: (datum: Datum) => datum.x1,\n y0: (datum: Datum) => datum.y0,\n y1: (datum: Datum) => datum.y1,\n thickness: (datum: Datum) => datum.thickness,\n fill: (datum: Datum) => {\n return this._spec.link?.style?.fill ?? this.getNodeOrdinalColorScale(datum.source);\n },\n fillOpacity: this._spec.link?.style?.fillOpacity ?? 0.15,\n direction: this._spec.direction ?? 'horizontal',\n round: this._spec.link?.style?.round ?? true,\n ratio: this._spec.link?.style?.ratio,\n align: this._spec.link?.style?.align,\n curvature: this._spec.link?.style?.curvature,\n endArrow: this._spec.link?.style?.endArrow,\n startArrow: this._spec.link?.style?.startArrow,\n backgroundStyle: this._spec.link?.style?.backgroundStyle\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n this._trigger.registerMark(linkMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(linkMark);\n }\n\n protected _initLabelMarkStyle() {\n if (!this._labelMark) {\n return;\n }\n if (this._spec.direction === 'vertical') {\n if (this._spec.label.position === 'inside-start') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x0,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'left',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'inside-middle') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => (datum.x0 + datum.x1) / 2,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'center',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'inside-end') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x1,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'right',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => (datum.x0 + datum.x1) / 2,\n y: (datum: Datum) => {\n if (datum.y1 >= this._viewBox.y2) {\n return datum.y0;\n }\n return datum.y1;\n },\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n },\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: this._labelLimit,\n textAlign: 'center',\n textBaseline: (datum: Datum) => {\n if (datum.y1 >= this._viewBox.y2) {\n return 'bottom';\n }\n return 'top';\n }\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n } else {\n if (this._spec.label.position === 'inside-start') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x0,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'left',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'inside-middle') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => (datum.x0 + datum.x1) / 2,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'center',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'inside-end') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x1,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'right',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'left') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x0,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n },\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: this._labelLimit,\n textAlign: 'right',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'right') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x1,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n },\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: this._labelLimit,\n textAlign: 'left',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => {\n if (datum.x1 >= this._viewBox.x2) {\n return datum.x0;\n }\n return datum.x1;\n },\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n },\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: this._labelLimit,\n textAlign: (datum: Datum) => {\n if (datum.x1 >= this._viewBox.x2) {\n return 'right';\n }\n return 'left';\n },\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n }\n\n this._labelMark.setZIndex(this._labelLayoutZIndex);\n this._trigger.registerMark(this._labelMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(this._labelMark);\n }\n\n initAnimation() {\n const animationParams: ISankeyAnimationParams = {\n direction: this.direction,\n growFrom: () =>\n this.direction === 'horizontal'\n ? this._xAxisHelper?.getScale(0).scale(0)\n : this._yAxisHelper?.getScale(0).scale(0)\n };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._nodeMark) {\n this._nodeMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.sankeyNode(animationParams, appearPreset),\n userAnimationConfig(this._nodeMark.name, this._spec)\n )\n );\n }\n if (this._linkMark) {\n this._linkMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.sankeyLinkPath(), userAnimationConfig(this._linkMark.name, this._spec))\n );\n }\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(this._labelMark.name, this._spec))\n );\n }\n }\n\n protected initEvent(): void {\n super.initEvent();\n if (this._spec.emphasis?.enable && this._spec.emphasis?.effect === 'adjacency') {\n if (this._spec.emphasis?.trigger === 'hover') {\n // 浮动事件\n this.event.on('pointerover', { level: Event_Bubble_Level.mark }, this._handleAdjacencyClick);\n } else {\n // this._spec.emphasis?.trigger === 'click'\n // 点击事件\n this.event.on('pointerdown', { level: Event_Bubble_Level.mark }, this._handleAdjacencyClick);\n }\n }\n\n if (this._spec.emphasis?.enable && this._spec.emphasis?.effect === 'related') {\n if (this._spec.emphasis?.trigger === 'hover') {\n // 浮动事件\n this.event.on('pointerover', { level: Event_Bubble_Level.mark }, this._handleRelatedClick);\n } else {\n // this._spec.emphasis?.trigger === 'click'\n // 点击事件\n this.event.on('pointerdown', { level: Event_Bubble_Level.mark }, this._handleRelatedClick);\n }\n }\n }\n\n protected _handleAdjacencyClick = (params: ExtendEventParam) => {\n const element = params.item;\n if (element && element.mark.id().includes('node')) {\n this._handleNodeAdjacencyClick(element);\n } else if (element && element.mark.id().includes('link')) {\n this._handleLinkAdjacencyClick(element);\n }\n };\n\n protected _handleRelatedClick = (params: ExtendEventParam) => {\n const element = params.item;\n if (element && element.mark.id().includes('node')) {\n this._handleNodeRelatedClick(element);\n } else if (element && element.mark.id().includes('link')) {\n this._handleLinkRelatedClick(element);\n }\n };\n\n protected _handleNodeAdjacencyClick = (element: IElement) => {\n const nodeDatum = element.getDatum();\n const highlightNodes: string[] = [nodeDatum.key];\n\n [this._linkMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = vGrammarMark.elements;\n\n allLinkElements.forEach((linkEl: IElement, i: number) => {\n linkEl.clearStates();\n const linkDatum = linkEl.getDatum();\n const father = linkDatum?.parents ? 'parents' : 'source';\n if (array(linkDatum[father]).includes(nodeDatum.key)) {\n // 下游link\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n }\n\n if (!highlightNodes.includes(linkDatum.target)) {\n highlightNodes.push(linkDatum.target);\n }\n\n let ratio;\n if (father === 'parents') {\n const originalDatum = linkDatum.datum;\n const val = originalDatum\n .filter((entry: any) => entry.parents.some((par: any) => par.key === nodeDatum.key))\n .reduce((sum: number, d: any) => {\n return (sum += d.value);\n }, 0);\n ratio = val / linkDatum.value;\n }\n\n linkEl.addState('selected', { ratio });\n } else if (linkDatum.target === nodeDatum.key) {\n // 上游link\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n }\n } else {\n linkEl.useStates(['blur']);\n }\n });\n });\n\n [this._nodeMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = vGrammarMark.elements;\n\n allNodeElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n\n [this._labelMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLabelElements = vGrammarMark.elements;\n\n allLabelElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n };\n\n protected _handleLinkAdjacencyClick = (element: IGlyphElement) => {\n const curLinkDatum = element.getDatum();\n const highlightNodes: string[] = [curLinkDatum.source, curLinkDatum.target];\n\n [this._linkMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = vGrammarMark.elements;\n\n allLinkElements.forEach(linkEl => {\n linkEl.clearStates();\n const linkDatum = linkEl.getDatum();\n const father = linkDatum?.parents ? 'parents' : 'source';\n if (\n linkDatum.source === curLinkDatum.target ||\n (array(linkDatum[father]).includes(curLinkDatum.source) &&\n array(linkDatum[father]).includes(curLinkDatum.target))\n ) {\n // 下游link\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n }\n\n if (!highlightNodes.includes(linkDatum.target)) {\n highlightNodes.push(linkDatum.target);\n }\n\n let ratio;\n if (father === 'parents') {\n const originalDatum = linkDatum.datum;\n const val = originalDatum\n .filter((entry: any) =>\n entry.parents.some(\n (par: any, index: number) =>\n par.key === curLinkDatum.source && entry.parents[index + 1]?.key === curLinkDatum.target\n )\n )\n .reduce((sum: number, d: any) => {\n return (sum += d.value);\n }, 0);\n ratio = val / linkDatum.value;\n }\n\n linkEl.addState('selected', { ratio });\n } else if (linkEl === element) {\n // linkEl.addState('selected', { ratio: 1 });\n } else {\n linkEl.useStates(['blur']);\n }\n });\n });\n\n [this._nodeMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = vGrammarMark.elements;\n\n allNodeElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n\n [this._labelMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLabelElements = vGrammarMark.elements;\n\n allLabelElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n };\n\n protected _handleNodeRelatedClick = (element: IElement) => {\n const nodeDatum = element.getDatum();\n const highlightNodes: string[] = [nodeDatum.key];\n const highlightLinks: string[] = [];\n\n const nodeVGrammarMark = this._nodeMark.getProduct();\n\n if (!nodeVGrammarMark || !nodeVGrammarMark.elements || !nodeVGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = nodeVGrammarMark.elements;\n\n const linkVGrammarMark = this._linkMark.getProduct();\n\n if (!linkVGrammarMark || !linkVGrammarMark.elements || !linkVGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = linkVGrammarMark.elements;\n\n allLinkElements.forEach((linkEl: IElement, i: number) => {\n linkEl.clearStates();\n const linkDatum = linkEl.getDatum();\n const father = linkDatum?.parents ? 'parents' : 'source';\n if (array(linkDatum[father]).includes(nodeDatum.key)) {\n // 下游link\n\n if (!highlightLinks.includes(linkDatum.key ?? linkDatum.index)) {\n highlightLinks.push(linkDatum.key ?? linkDatum.index);\n }\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n }\n\n if (!highlightNodes.includes(linkDatum.target)) {\n highlightNodes.push(linkDatum.target);\n // 下游link的目标节点\n const targetNode = allNodeElements.find(nodeElement => {\n return nodeElement.data[0].key === linkDatum.target;\n });\n\n // 以下游link的目标节点为起点的links\n let targetNodeSourceLinks: any[] = targetNode.data[0].sourceLinks as any[];\n while (targetNodeSourceLinks?.length > 0) {\n const newTargetNodeSourceLinks: any[] = [];\n targetNodeSourceLinks.forEach((targetNodeSourceLinkDatum: any) => {\n if (!highlightLinks.includes(targetNodeSourceLinkDatum.key ?? targetNodeSourceLinkDatum.index)) {\n highlightLinks.push(targetNodeSourceLinkDatum.key ?? targetNodeSourceLinkDatum.index);\n // 该links的目标节点\n if (!highlightNodes.includes(targetNodeSourceLinkDatum.target)) {\n highlightNodes.push(targetNodeSourceLinkDatum.target);\n const sourceNodeTemp = allNodeElements.find(nodeElement => {\n return nodeElement.data[0].key === targetNodeSourceLinkDatum.target;\n });\n // 以该目标节点为起点的links\n newTargetNodeSourceLinks.push(sourceNodeTemp.data[0].targetLinks as any[]);\n } else {\n return;\n }\n } else {\n return;\n }\n });\n targetNodeSourceLinks = newTargetNodeSourceLinks;\n return;\n }\n }\n } else if (linkDatum.target === nodeDatum.key) {\n // 上游link\n if (!highlightLinks.includes(linkDatum.key ?? linkDatum.index)) {\n highlightLinks.push(linkDatum.key ?? linkDatum.index);\n }\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n const sourceNode = allNodeElements.find(nodeElement => {\n return nodeElement.data[0].key === linkDatum.source;\n });\n let sourceNodeTargetLinks: any[] = sourceNode.data[0].targetLinks as any;\n while (sourceNodeTargetLinks?.length > 0) {\n const newSourceNodeTargetLinks: any[] = [];\n sourceNodeTargetLinks.forEach((sourceNodeTargetLinkDatum: any) => {\n if (!highlightLinks.includes(sourceNodeTargetLinkDatum.key ?? sourceNodeTargetLinkDatum.index)) {\n highlightLinks.push(sourceNodeTargetLinkDatum.key ?? sourceNodeTargetLinkDatum.index);\n if (!highlightNodes.includes(sourceNodeTargetLinkDatum.source)) {\n highlightNodes.push(sourceNodeTargetLinkDatum.source);\n const sourceNodeTemp = allNodeElements.find(nodeElement => {\n return nodeElement.data[0].key === sourceNodeTargetLinkDatum.source;\n });\n newSourceNodeTargetLinks.push(sourceNodeTemp.data[0].targetLinks as any[]);\n } else {\n return;\n }\n } else {\n return;\n }\n });\n sourceNodeTargetLinks = newSourceNodeTargetLinks;\n return;\n }\n }\n }\n });\n\n [this._linkMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = vGrammarMark.elements;\n\n allLinkElements.forEach((linkEl: IElement, i: number) => {\n linkEl.clearStates();\n if (highlightLinks.includes(linkEl.getDatum().key ?? linkEl.getDatum().index)) {\n const linkDatum = linkEl.getDatum();\n const father = linkDatum?.parents ? 'parents' : 'source';\n let ratio;\n if (father === 'parents') {\n const originalDatum = linkDatum.datum;\n const val = originalDatum\n .filter((entry: any) => entry.parents.some((par: any) => par.key === nodeDatum.key))\n .reduce((sum: number, d: any) => {\n return (sum += d.value);\n }, 0);\n ratio = val / linkDatum.value;\n }\n linkEl.addState('selected', { ratio });\n } else {\n linkEl.useStates(['blur']);\n }\n });\n });\n\n [this._nodeMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = vGrammarMark.elements;\n\n allNodeElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n\n [this._labelMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLabelElements = vGrammarMark.elements;\n\n allLabelElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n };\n\n protected _handleLinkRelatedClick = (element: IGlyphElement) => {\n [this._linkMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = vGrammarMark.elements;\n allLinkElements.forEach(linkEl => {\n linkEl.clearStates();\n });\n });\n [this._nodeMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = vGrammarMark.elements;\n allNodeElements.forEach(el => {\n el.clearStates();\n });\n });\n [this._labelMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLabelElements = vGrammarMark.elements;\n allLabelElements.forEach(el => {\n el.clearStates();\n });\n });\n };\n\n protected initTooltip() {\n this._tooltipHelper = new SankeySeriesTooltipHelper(this);\n }\n\n getNodeOrdinalColorScale(item: string) {\n const colorRange =\n this._option.globalScale.color?.range() ?? getDataScheme(this._option.getTheme().colorScheme, this.type as any);\n const ordinalScale = new OrdinalScale();\n ordinalScale\n .domain(\n this._nodesSeriesData.getDataView().latestData.map((datum: Datum) => {\n return datum.key;\n })\n )\n .range?.(colorRange);\n return ordinalScale.scale(item);\n }\n\n getDimensionField() {\n return [this._spec.categoryField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n getSeriesKeys(): string[] {\n if (this._seriesField) {\n const keyArray: any[] = [];\n this._nodesSeriesData?.getDataView().latestData.forEach((datum: { [x: string]: any }) => {\n keyArray.push(datum[this._seriesField] ?? datum.datum[this._seriesField]);\n });\n return keyArray;\n }\n return [];\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n this._viewBox.set(0, 0, this._region.getLayoutRect().width, this._region.getLayoutRect().height);\n this._rawData.reRunAllTransform();\n this.getViewData().reRunAllTransform();\n this._nodesSeriesData.updateData();\n this._linksSeriesData.updateData();\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/sankey/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import { CartesianSeries } from '../cartesian/cartesian';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IRectMark } from '../../mark/rect';\nimport type { ILinkPathMark } from '../../mark/linkPath';\nimport type { ITextMark } from '../../mark/text';\nimport { registerSankeyTransforms } from '@visactor/vgrammar-sankey';\nimport type { Datum, IRectMarkSpec, ILinkPathMarkSpec, ITextMarkSpec } from '../../typings';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { registerDataSetInstanceTransform, registerDataSetInstanceParser } from '../../data/register';\nimport type { ISankeyOpt } from '../../data/transforms/sankey';\n// eslint-disable-next-line no-duplicate-imports\nimport { sankey } from '../../data/transforms/sankey';\nimport { sankeyNodes } from '../../data/transforms/sankey-nodes';\nimport { sankeyLinks } from '../../data/transforms/sankey-links';\nimport { STATE_VALUE_ENUM } from '../../compile/mark';\nimport { DataView, DataSet, dataViewParser } from '@visactor/vdataset';\nimport { DEFAULT_DATA_INDEX, LayoutZIndex, AttributeLevel, Event_Bubble_Level } from '../../constant';\nimport { SeriesData } from '../base/series-data';\nimport { addVChartProperty } from '../../data/transforms/add-property';\nimport { addDataKey, initKeyMap } from '../../data/transforms/data-key';\nimport { getDataScheme } from '../../theme/color-scheme/util';\nimport { SankeySeriesTooltipHelper } from './tooltip-helper';\nimport type { IBounds } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds } from '@visactor/vutils';\nimport type { ISankeyAnimationParams } from './animation';\nimport type { ISankeySeriesSpec } from './interface';\nimport type { ExtendEventParam } from '../../event/interface';\nimport type { IElement, IGlyphElement } from '@visactor/vgrammar';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\nimport { array } from '../../util';\nimport { ColorOrdinalScale } from '../../scale/color-ordinal-scale';\nimport { BarSeries } from '../bar/bar';\n\nregisterSankeyTransforms();\n\nexport class SankeySeries extends CartesianSeries<any> {\n static readonly type: string = SeriesTypeEnum.sankey;\n type = SeriesTypeEnum.sankey;\n\n static readonly mark: SeriesMarkMap = {\n ...BarSeries.mark,\n [SeriesMarkNameEnum.node]: { name: SeriesMarkNameEnum.node, type: MarkTypeEnum.rect },\n [SeriesMarkNameEnum.link]: { name: SeriesMarkNameEnum.link, type: MarkTypeEnum.linkPath }\n };\n\n protected declare _spec: ISankeySeriesSpec;\n\n private _nodeMark: IRectMark;\n private _linkMark: ILinkPathMark;\n private _labelMark?: ITextMark;\n\n private _nodeLayoutZIndex = LayoutZIndex.Node;\n private _labelLayoutZIndex = LayoutZIndex.Label;\n private _labelLimit: number;\n\n protected _nodesSeriesData?: SeriesData;\n protected _linksSeriesData?: SeriesData;\n\n private _viewBox: IBounds = new Bounds();\n\n protected _categoryField!: string;\n getCategoryField() {\n return this._categoryField;\n }\n setCategoryField(f: string): string {\n this._categoryField = f;\n return this._categoryField;\n }\n\n protected _valueField!: string;\n getValueField() {\n return this._valueField;\n }\n setValueField(f: string): string {\n this._valueField = f;\n return this._valueField;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this.setCategoryField(this._spec.categoryField);\n this.setValueField(this._spec.valueField);\n this.setSeriesField(this._spec.seriesField ?? this._spec.categoryField);\n this._labelLimit = this._spec.label?.limit ?? 100;\n }\n\n initData() {\n super.initData();\n\n if (this._viewDataFilter) {\n // 初始化桑基图数据\n registerDataSetInstanceTransform(this._dataSet, 'sankey', sankey);\n\n this.addViewDataFilter({\n type: 'sankey',\n options: {\n view: () => {\n return {\n x0: this._viewBox.x1,\n x1: this._viewBox.x2,\n y0: this._viewBox.y1,\n y1: this._viewBox.y2\n };\n },\n direction: this._spec.direction,\n nodeAlign: this._spec.nodeAlign,\n nodeGap: this._spec.nodeGap,\n nodeWidth: this._spec.nodeWidth,\n linkWidth: this._spec.linkWidth,\n minStepWidth: this._spec.minStepWidth,\n minNodeHeight: this._spec.minNodeHeight,\n minLinkHeight: this._spec.minLinkHeight,\n iterations: this._spec.iterations,\n nodeKey: this._spec.nodeKey,\n linkSortBy: this._spec.linkSortBy,\n nodeSortBy: this._spec.nodeSortBy,\n setNodeLayer: this._spec.setNodeLayer\n } as ISankeyOpt\n });\n\n const nodesDataSet = new DataSet();\n registerDataSetInstanceParser(nodesDataSet, 'dataview', dataViewParser);\n registerDataSetInstanceTransform(nodesDataSet, 'sankeyNodes', sankeyNodes);\n registerDataSetInstanceTransform(nodesDataSet, 'addVChartProperty', addVChartProperty);\n const nodesDataView = new DataView(nodesDataSet);\n nodesDataView.parse([this.getViewData()], {\n type: 'dataview'\n });\n nodesDataView.transform({\n type: 'sankeyNodes'\n });\n\n nodesDataView.transform(\n {\n type: 'addVChartProperty',\n options: {\n beforeCall: initKeyMap,\n call: addDataKey.bind(this)\n }\n },\n false\n );\n\n this._nodesSeriesData = new SeriesData(this._option, nodesDataView);\n\n const linksDataSet = new DataSet();\n registerDataSetInstanceParser(linksDataSet, 'dataview', dataViewParser);\n registerDataSetInstanceTransform(linksDataSet, 'sankeyLinks', sankeyLinks);\n registerDataSetInstanceTransform(linksDataSet, 'addVChartProperty', addVChartProperty);\n const linksDataView = new DataView(linksDataSet);\n linksDataView.parse([this.getViewData()], {\n type: 'dataview'\n });\n linksDataView.transform({\n type: 'sankeyLinks'\n });\n\n linksDataView.transform(\n {\n type: 'addVChartProperty',\n options: {\n beforeCall: initKeyMap,\n call: addDataKey.bind(this)\n }\n },\n false\n );\n\n this._linksSeriesData = new SeriesData(this._option, linksDataView);\n }\n }\n\n initMark(): void {\n const nodeMark = this._createMark(SankeySeries.mark.node, {\n isSeriesMark: true,\n key: DEFAULT_DATA_INDEX,\n dataView: this._nodesSeriesData.getDataView(),\n dataProductId: this._nodesSeriesData.getProductId()\n }) as IRectMark;\n if (nodeMark) {\n nodeMark.setZIndex(this._nodeLayoutZIndex);\n this._nodeMark = nodeMark;\n }\n\n const linkMark = this._createMark(SankeySeries.mark.link, {\n key: DEFAULT_DATA_INDEX,\n dataView: this._linksSeriesData.getDataView(),\n dataProductId: this._linksSeriesData.getProductId()\n }) as ILinkPathMark;\n if (linkMark) {\n this._linkMark = linkMark;\n }\n\n if (this._spec.label?.visible) {\n const labelMark = this._createMark(SankeySeries.mark.label, {\n key: DEFAULT_DATA_INDEX,\n dataView: this._nodesSeriesData.getDataView(),\n dataProductId: this._nodesSeriesData.getProductId()\n }) as ITextMark;\n if (labelMark) {\n this._labelMark = labelMark;\n }\n }\n }\n\n initMarkStyle(): void {\n this._initNodeMarkStyle();\n this._initLinkMarkStyle();\n this._initLabelMarkStyle();\n }\n\n protected _initNodeMarkStyle() {\n const nodeMark = this._nodeMark;\n if (!nodeMark) {\n return;\n }\n\n this.setMarkStyle<IRectMarkSpec>(\n nodeMark,\n {\n x: (datum: Datum) => {\n return datum.x0;\n },\n x1: (datum: Datum) => datum.x1,\n y: (datum: Datum) => datum.y0,\n y1: (datum: Datum) => datum.y1,\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n }\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Mark\n );\n this._trigger.registerMark(nodeMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(nodeMark);\n }\n\n protected _initLinkMarkStyle() {\n const linkMark = this._linkMark;\n if (!linkMark) {\n return;\n }\n this.setMarkStyle<ILinkPathMarkSpec>(\n linkMark,\n {\n x0: (datum: Datum) => datum.x0,\n x1: (datum: Datum) => datum.x1,\n y0: (datum: Datum) => datum.y0,\n y1: (datum: Datum) => datum.y1,\n thickness: (datum: Datum) => datum.thickness,\n fill: (datum: Datum) => {\n return this._spec.link?.style?.fill ?? this.getNodeOrdinalColorScale(datum.source);\n },\n direction: this._spec.direction ?? 'horizontal'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n this._trigger.registerMark(linkMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(linkMark);\n }\n\n protected _initLabelMarkStyle() {\n if (!this._labelMark) {\n return;\n }\n if (this._spec.direction === 'vertical') {\n if (this._spec.label.position === 'inside-start') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x0,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'left',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'inside-middle') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => (datum.x0 + datum.x1) / 2,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'center',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'inside-end') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x1,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'right',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => (datum.x0 + datum.x1) / 2,\n y: (datum: Datum) => {\n if (datum.y1 >= this._viewBox.y2) {\n return datum.y0;\n }\n return datum.y1;\n },\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n },\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: this._labelLimit,\n textAlign: 'center',\n textBaseline: (datum: Datum) => {\n if (datum.y1 >= this._viewBox.y2) {\n return 'bottom';\n }\n return 'top';\n }\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n } else {\n if (this._spec.label.position === 'inside-start') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x0,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'left',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'inside-middle') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => (datum.x0 + datum.x1) / 2,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'center',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'inside-end') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x1,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: '#ffffff',\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: (datum: Datum) => this._spec.label.limit ?? datum.x1 - datum.x0,\n textAlign: 'right',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'left') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x0,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n },\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: this._labelLimit,\n textAlign: 'right',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else if (this._spec.label.position === 'right') {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => datum.x1,\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n },\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: this._labelLimit,\n textAlign: 'left',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle<ITextMarkSpec>(\n this._labelMark,\n {\n x: (datum: Datum) => {\n if (datum.x1 >= this._viewBox.x2) {\n return datum.x0;\n }\n return datum.x1;\n },\n y: (datum: Datum) => (datum.y0 + datum.y1) / 2,\n fill: (datum: Datum) => {\n return this._spec.node?.style?.fill ?? this.getNodeOrdinalColorScale(datum.key);\n },\n text: (datum: Datum) => {\n return datum?.datum ? datum.datum[this._spec.categoryField] : '';\n },\n limit: this._labelLimit,\n textAlign: (datum: Datum) => {\n if (datum.x1 >= this._viewBox.x2) {\n return 'right';\n }\n return 'left';\n },\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n }\n\n this._labelMark.setZIndex(this._labelLayoutZIndex);\n this._trigger.registerMark(this._labelMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(this._labelMark);\n }\n\n initAnimation() {\n const animationParams: ISankeyAnimationParams = {\n direction: this.direction,\n growFrom: () =>\n this.direction === 'horizontal'\n ? this._xAxisHelper?.getScale(0).scale(0)\n : this._yAxisHelper?.getScale(0).scale(0)\n };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._nodeMark) {\n this._nodeMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.sankeyNode(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.node, this._spec)\n )\n );\n }\n if (this._linkMark) {\n this._linkMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.sankeyLinkPath(),\n userAnimationConfig(SeriesMarkNameEnum.link, this._spec)\n )\n );\n }\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n }\n }\n\n protected initEvent(): void {\n super.initEvent();\n if (this._spec.emphasis?.enable && this._spec.emphasis?.effect === 'adjacency') {\n if (this._spec.emphasis?.trigger === 'hover') {\n // 浮动事件\n this.event.on('pointerover', { level: Event_Bubble_Level.mark }, this._handleAdjacencyClick);\n } else {\n // this._spec.emphasis?.trigger === 'click'\n // 点击事件\n this.event.on('pointerdown', { level: Event_Bubble_Level.mark }, this._handleAdjacencyClick);\n }\n }\n\n if (this._spec.emphasis?.enable && this._spec.emphasis?.effect === 'related') {\n if (this._spec.emphasis?.trigger === 'hover') {\n // 浮动事件\n this.event.on('pointerover', { level: Event_Bubble_Level.mark }, this._handleRelatedClick);\n } else {\n // this._spec.emphasis?.trigger === 'click'\n // 点击事件\n this.event.on('pointerdown', { level: Event_Bubble_Level.mark }, this._handleRelatedClick);\n }\n }\n }\n\n protected _handleAdjacencyClick = (params: ExtendEventParam) => {\n const element = params.item;\n if (element && element.mark.id().includes('node')) {\n this._handleNodeAdjacencyClick(element);\n } else if (element && element.mark.id().includes('link')) {\n this._handleLinkAdjacencyClick(element);\n }\n };\n\n protected _handleRelatedClick = (params: ExtendEventParam) => {\n const element = params.item;\n if (element && element.mark.id().includes('node')) {\n this._handleNodeRelatedClick(element);\n } else if (element && element.mark.id().includes('link')) {\n this._handleLinkRelatedClick(element);\n }\n };\n\n protected _handleNodeAdjacencyClick = (element: IElement) => {\n const nodeDatum = element.getDatum();\n const highlightNodes: string[] = [nodeDatum.key];\n\n [this._linkMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = vGrammarMark.elements;\n\n allLinkElements.forEach((linkEl: IElement, i: number) => {\n linkEl.clearStates();\n const linkDatum = linkEl.getDatum();\n const father = linkDatum?.parents ? 'parents' : 'source';\n if (array(linkDatum[father]).includes(nodeDatum.key)) {\n // 下游link\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n }\n\n if (!highlightNodes.includes(linkDatum.target)) {\n highlightNodes.push(linkDatum.target);\n }\n\n let ratio;\n if (father === 'parents') {\n const originalDatum = linkDatum.datum;\n const val = originalDatum\n .filter((entry: any) => entry.parents.some((par: any) => par.key === nodeDatum.key))\n .reduce((sum: number, d: any) => {\n return (sum += d.value);\n }, 0);\n ratio = val / linkDatum.value;\n }\n\n linkEl.addState('selected', { ratio });\n } else if (linkDatum.target === nodeDatum.key) {\n // 上游link\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n }\n } else {\n linkEl.useStates(['blur']);\n }\n });\n });\n\n [this._nodeMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = vGrammarMark.elements;\n\n allNodeElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n\n [this._labelMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLabelElements = vGrammarMark.elements;\n\n allLabelElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n };\n\n protected _handleLinkAdjacencyClick = (element: IGlyphElement) => {\n const curLinkDatum = element.getDatum();\n const highlightNodes: string[] = [curLinkDatum.source, curLinkDatum.target];\n\n [this._linkMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = vGrammarMark.elements;\n\n allLinkElements.forEach(linkEl => {\n linkEl.clearStates();\n const linkDatum = linkEl.getDatum();\n const father = linkDatum?.parents ? 'parents' : 'source';\n if (\n linkDatum.source === curLinkDatum.target ||\n (array(linkDatum[father]).includes(curLinkDatum.source) &&\n array(linkDatum[father]).includes(curLinkDatum.target))\n ) {\n // 下游link\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n }\n\n if (!highlightNodes.includes(linkDatum.target)) {\n highlightNodes.push(linkDatum.target);\n }\n\n let ratio;\n if (father === 'parents') {\n const originalDatum = linkDatum.datum;\n const val = originalDatum\n .filter((entry: any) =>\n entry.parents.some(\n (par: any, index: number) =>\n par.key === curLinkDatum.source && entry.parents[index + 1]?.key === curLinkDatum.target\n )\n )\n .reduce((sum: number, d: any) => {\n return (sum += d.value);\n }, 0);\n ratio = val / linkDatum.value;\n }\n\n linkEl.addState('selected', { ratio });\n } else if (linkEl === element) {\n // linkEl.addState('selected', { ratio: 1 });\n } else {\n linkEl.useStates(['blur']);\n }\n });\n });\n\n [this._nodeMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = vGrammarMark.elements;\n\n allNodeElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n\n [this._labelMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLabelElements = vGrammarMark.elements;\n\n allLabelElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n };\n\n protected _handleNodeRelatedClick = (element: IElement) => {\n const nodeDatum = element.getDatum();\n const highlightNodes: string[] = [nodeDatum.key];\n const highlightLinks: string[] = [];\n\n const nodeVGrammarMark = this._nodeMark.getProduct();\n\n if (!nodeVGrammarMark || !nodeVGrammarMark.elements || !nodeVGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = nodeVGrammarMark.elements;\n\n const linkVGrammarMark = this._linkMark.getProduct();\n\n if (!linkVGrammarMark || !linkVGrammarMark.elements || !linkVGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = linkVGrammarMark.elements;\n\n allLinkElements.forEach((linkEl: IElement, i: number) => {\n linkEl.clearStates();\n const linkDatum = linkEl.getDatum();\n const father = linkDatum?.parents ? 'parents' : 'source';\n if (array(linkDatum[father]).includes(nodeDatum.key)) {\n // 下游link\n\n if (!highlightLinks.includes(linkDatum.key ?? linkDatum.index)) {\n highlightLinks.push(linkDatum.key ?? linkDatum.index);\n }\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n }\n\n if (!highlightNodes.includes(linkDatum.target)) {\n highlightNodes.push(linkDatum.target);\n // 下游link的目标节点\n const targetNode = allNodeElements.find(nodeElement => {\n return nodeElement.data[0].key === linkDatum.target;\n });\n\n // 以下游link的目标节点为起点的links\n let targetNodeSourceLinks: any[] = targetNode.data[0].sourceLinks as any[];\n while (targetNodeSourceLinks?.length > 0) {\n const newTargetNodeSourceLinks: any[] = [];\n targetNodeSourceLinks.forEach((targetNodeSourceLinkDatum: any) => {\n if (!highlightLinks.includes(targetNodeSourceLinkDatum.key ?? targetNodeSourceLinkDatum.index)) {\n highlightLinks.push(targetNodeSourceLinkDatum.key ?? targetNodeSourceLinkDatum.index);\n // 该links的目标节点\n if (!highlightNodes.includes(targetNodeSourceLinkDatum.target)) {\n highlightNodes.push(targetNodeSourceLinkDatum.target);\n const sourceNodeTemp = allNodeElements.find(nodeElement => {\n return nodeElement.data[0].key === targetNodeSourceLinkDatum.target;\n });\n // 以该目标节点为起点的links\n newTargetNodeSourceLinks.push(sourceNodeTemp.data[0].targetLinks as any[]);\n } else {\n return;\n }\n } else {\n return;\n }\n });\n targetNodeSourceLinks = newTargetNodeSourceLinks;\n return;\n }\n }\n } else if (linkDatum.target === nodeDatum.key) {\n // 上游link\n if (!highlightLinks.includes(linkDatum.key ?? linkDatum.index)) {\n highlightLinks.push(linkDatum.key ?? linkDatum.index);\n }\n if (!highlightNodes.includes(linkDatum.source)) {\n highlightNodes.push(linkDatum.source);\n const sourceNode = allNodeElements.find(nodeElement => {\n return nodeElement.data[0].key === linkDatum.source;\n });\n let sourceNodeTargetLinks: any[] = sourceNode.data[0].targetLinks as any;\n while (sourceNodeTargetLinks?.length > 0) {\n const newSourceNodeTargetLinks: any[] = [];\n sourceNodeTargetLinks.forEach((sourceNodeTargetLinkDatum: any) => {\n if (!highlightLinks.includes(sourceNodeTargetLinkDatum.key ?? sourceNodeTargetLinkDatum.index)) {\n highlightLinks.push(sourceNodeTargetLinkDatum.key ?? sourceNodeTargetLinkDatum.index);\n if (!highlightNodes.includes(sourceNodeTargetLinkDatum.source)) {\n highlightNodes.push(sourceNodeTargetLinkDatum.source);\n const sourceNodeTemp = allNodeElements.find(nodeElement => {\n return nodeElement.data[0].key === sourceNodeTargetLinkDatum.source;\n });\n newSourceNodeTargetLinks.push(sourceNodeTemp.data[0].targetLinks as any[]);\n } else {\n return;\n }\n } else {\n return;\n }\n });\n sourceNodeTargetLinks = newSourceNodeTargetLinks;\n return;\n }\n }\n }\n });\n\n [this._linkMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = vGrammarMark.elements;\n\n allLinkElements.forEach((linkEl: IElement, i: number) => {\n linkEl.clearStates();\n if (highlightLinks.includes(linkEl.getDatum().key ?? linkEl.getDatum().index)) {\n const linkDatum = linkEl.getDatum();\n const father = linkDatum?.parents ? 'parents' : 'source';\n let ratio;\n if (father === 'parents') {\n const originalDatum = linkDatum.datum;\n const val = originalDatum\n .filter((entry: any) => entry.parents.some((par: any) => par.key === nodeDatum.key))\n .reduce((sum: number, d: any) => {\n return (sum += d.value);\n }, 0);\n ratio = val / linkDatum.value;\n }\n linkEl.addState('selected', { ratio });\n } else {\n linkEl.useStates(['blur']);\n }\n });\n });\n\n [this._nodeMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = vGrammarMark.elements;\n\n allNodeElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n\n [this._labelMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLabelElements = vGrammarMark.elements;\n\n allLabelElements.forEach(el => {\n el.clearStates();\n if (highlightNodes.includes(el.getDatum().key)) {\n //\n } else {\n el.useStates(['blur']);\n }\n });\n });\n };\n\n protected _handleLinkRelatedClick = (element: IGlyphElement) => {\n [this._linkMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLinkElements = vGrammarMark.elements;\n allLinkElements.forEach(linkEl => {\n linkEl.clearStates();\n });\n });\n [this._nodeMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allNodeElements = vGrammarMark.elements;\n allNodeElements.forEach(el => {\n el.clearStates();\n });\n });\n [this._labelMark].forEach(mark => {\n const vGrammarMark = mark.getProduct();\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const allLabelElements = vGrammarMark.elements;\n allLabelElements.forEach(el => {\n el.clearStates();\n });\n });\n };\n\n protected initTooltip() {\n this._tooltipHelper = new SankeySeriesTooltipHelper(this);\n }\n\n getNodeOrdinalColorScale(item: string) {\n const colorDomain = this._nodesSeriesData.getDataView().latestData.map((datum: Datum) => {\n return datum.key;\n });\n const colorRange =\n this._option.globalScale.color?.range() ?? getDataScheme(this._option.getTheme().colorScheme, this.type as any);\n const ordinalScale = new ColorOrdinalScale();\n ordinalScale.domain(colorDomain).range?.(colorRange);\n return ordinalScale.scale(item);\n }\n\n getDimensionField() {\n return [this._spec.categoryField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n getSeriesKeys(): string[] {\n if (this._seriesField) {\n const keyArray: any[] = [];\n this._nodesSeriesData?.getDataView().latestData.forEach((datum: { [x: string]: any }) => {\n keyArray.push(datum[this._seriesField] ?? datum.datum[this._seriesField]);\n });\n return keyArray;\n }\n return [];\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n this._viewBox.set(0, 0, this._region.getLayoutRect().width, this._region.getLayoutRect().height);\n this._rawData.reRunAllTransform();\n this.getViewData().reRunAllTransform();\n this._nodesSeriesData.updateData();\n this._linksSeriesData.updateData();\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n}\n"]}
@@ -5,20 +5,21 @@ import type { IAnimationSpec } from '../../animation/spec';
5
5
  import type { ScatterAppearPreset, ScatterMarks } from './animation';
6
6
  import type { ILabelSpec } from '../../component/label';
7
7
  import type { IMarkProgressiveConfig } from '../../mark/interface';
8
+ import type { SeriesMarkNameEnum } from '../interface';
8
9
  export interface IScatterSeriesSpec extends ICartesianSeriesSpec, IAnimationSpec<ScatterMarks, ScatterAppearPreset>, IMarkProgressiveConfig {
9
10
  type: 'scatter';
10
- point?: IMarkSpec<ISymbolMarkSpec>;
11
+ [SeriesMarkNameEnum.point]?: IMarkSpec<ISymbolMarkSpec>;
11
12
  sizeField?: string;
12
13
  size?: number | number[] | FunctionType<number> | IVisualSpecBase<unknown, number>;
13
14
  shapeField?: string;
14
15
  shape?: ShapeType | ShapeType[] | FunctionType<ShapeType> | IVisualSpecBase<unknown, ShapeType>;
15
16
  invalidType?: IInvalidType;
16
- label?: ILabelSpec & {
17
+ [SeriesMarkNameEnum.label]?: ILabelSpec & {
17
18
  position?: 'top' | 'bottom' | 'left' | 'right' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
18
19
  };
19
20
  }
20
21
  export interface IScatterSeriesTheme extends ICartesianSeriesTheme {
21
- size: number;
22
- shape: ShapeType;
23
- point?: Partial<IMarkTheme<ISymbolMarkSpec>>;
22
+ size?: number;
23
+ shape?: ShapeType;
24
+ [SeriesMarkNameEnum.point]?: Partial<IMarkTheme<ISymbolMarkSpec>>;
24
25
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/scatter/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICartesianSeriesSpec, ICartesianSeriesTheme } from '../cartesian/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { ISymbolMarkSpec, IInvalidType, IVisualSpecBase, ShapeType, FunctionType } from '../../typings';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { ScatterAppearPreset, ScatterMarks } from './animation';\nimport type { ILabelSpec } from '../../component/label';\nimport type { IMarkProgressiveConfig } from '../../mark/interface';\n\nexport interface IScatterSeriesSpec\n extends ICartesianSeriesSpec,\n IAnimationSpec<ScatterMarks, ScatterAppearPreset>,\n IMarkProgressiveConfig {\n /**\n * 系列类型\n */\n type: 'scatter';\n /**\n * 图元配置\n */\n point?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 尺寸 视觉通道\n */\n sizeField?: string;\n size?: number | number[] | FunctionType<number> | IVisualSpecBase<unknown, number>;\n /**\n * 形状 视觉通道\n */\n shapeField?: string;\n shape?: ShapeType | ShapeType[] | FunctionType<ShapeType> | IVisualSpecBase<unknown, ShapeType>;\n /**\n * 非合规数据点连接方式\n * @description null,undefined等非法数据点连接方式。\n * 'zero' 指该点默认数值为0\n * 'ignore' 指不处理\n */\n invalidType?: IInvalidType;\n /** 标签配置 */\n label?: ILabelSpec & {\n /** 标签位置 */\n position?: 'top' | 'bottom' | 'left' | 'right' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n };\n}\n\nexport interface IScatterSeriesTheme extends ICartesianSeriesTheme {\n size: number;\n shape: ShapeType;\n point?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/scatter/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICartesianSeriesSpec, ICartesianSeriesTheme } from '../cartesian/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { ISymbolMarkSpec, IInvalidType, IVisualSpecBase, ShapeType, FunctionType } from '../../typings';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { ScatterAppearPreset, ScatterMarks } from './animation';\nimport type { ILabelSpec } from '../../component/label';\nimport type { IMarkProgressiveConfig } from '../../mark/interface';\nimport type { SeriesMarkNameEnum } from '../interface';\n\nexport interface IScatterSeriesSpec\n extends ICartesianSeriesSpec,\n IAnimationSpec<ScatterMarks, ScatterAppearPreset>,\n IMarkProgressiveConfig {\n /**\n * 系列类型\n */\n type: 'scatter';\n /**\n * 图元配置\n */\n [SeriesMarkNameEnum.point]?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 尺寸 视觉通道\n */\n sizeField?: string;\n size?: number | number[] | FunctionType<number> | IVisualSpecBase<unknown, number>;\n /**\n * 形状 视觉通道\n */\n shapeField?: string;\n shape?: ShapeType | ShapeType[] | FunctionType<ShapeType> | IVisualSpecBase<unknown, ShapeType>;\n /**\n * 非合规数据点连接方式\n * @description null,undefined等非法数据点连接方式。\n * 'zero' 指该点默认数值为0\n * 'ignore' 指不处理\n */\n invalidType?: IInvalidType;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: ILabelSpec & {\n /** 标签位置 */\n position?: 'top' | 'bottom' | 'left' | 'right' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n };\n}\n\nexport interface IScatterSeriesTheme extends ICartesianSeriesTheme {\n size?: number;\n shape?: ShapeType;\n [SeriesMarkNameEnum.point]?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n}\n"]}
@@ -3,10 +3,12 @@ import type { Maybe, IInvalidType } from '../../typings';
3
3
  import type { ITextMark } from '../../mark/text';
4
4
  import type { IScatterSeriesSpec, IScatterSeriesTheme } from './interface';
5
5
  import { CartesianSeries } from '../cartesian/cartesian';
6
+ import type { SeriesMarkMap } from '../interface';
6
7
  import { SeriesTypeEnum } from '../interface';
7
8
  export declare class ScatterSeries extends CartesianSeries<IScatterSeriesSpec> {
8
9
  static readonly type: string;
9
10
  type: SeriesTypeEnum;
11
+ static readonly mark: SeriesMarkMap;
10
12
  protected _theme: Maybe<IScatterSeriesTheme>;
11
13
  _invalidType: IInvalidType;
12
14
  private _symbolMark;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.ScatterSeries = void 0;
6
6
 
7
- const base_1 = require("../../constant/base"), cartesian_1 = require("../cartesian/cartesian"), interface_1 = require("../../mark/interface"), util_1 = require("../../util"), constant_1 = require("../../constant"), interface_2 = require("../interface"), mark_1 = require("../../compile/mark"), scatter_1 = require("../../constant/scatter"), utils_1 = require("../../animation/utils"), config_1 = require("../../animation/config");
7
+ const base_1 = require("../../constant/base"), cartesian_1 = require("../cartesian/cartesian"), interface_1 = require("../../mark/interface"), util_1 = require("../../util"), constant_1 = require("../../constant"), interface_2 = require("../interface"), mark_1 = require("../../compile/mark"), scatter_1 = require("../../constant/scatter"), utils_1 = require("../../animation/utils"), config_1 = require("../../animation/config"), base_series_1 = require("../base/base-series");
8
8
 
9
9
  class ScatterSeries extends cartesian_1.CartesianSeries {
10
10
  constructor() {
@@ -68,15 +68,14 @@ class ScatterSeries extends cartesian_1.CartesianSeries {
68
68
  }, "shape");
69
69
  }
70
70
  initMark() {
71
- var _a, _b;
72
71
  const progressive = {
73
72
  progressiveStep: this._spec.progressiveStep,
74
73
  progressiveThreshold: this._spec.progressiveThreshold,
75
74
  large: this._spec.large,
76
75
  largeThreshold: this._spec.largeThreshold
77
76
  };
78
- this._symbolMark = this._createMark(interface_1.MarkTypeEnum.symbol, "point", {
79
- morph: null === (_b = null === (_a = this._spec.morph) || void 0 === _a ? void 0 : _a.enable) || void 0 === _b || _b,
77
+ this._symbolMark = this._createMark(ScatterSeries.mark.point, {
78
+ morph: (0, utils_1.shouldDoMorph)(this._spec.animation, this._spec.morph, (0, utils_1.userAnimationConfig)("point", this._spec)),
80
79
  defaultMorphElementKey: this.getDimensionField()[0],
81
80
  groupKey: this._seriesField,
82
81
  label: (0, util_1.merge)({
@@ -93,10 +92,10 @@ class ScatterSeries extends cartesian_1.CartesianSeries {
93
92
  var _a, _b;
94
93
  const appearPreset = null === (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.animationAppear) || void 0 === _b ? void 0 : _b.preset;
95
94
  this._symbolMark.setAnimationConfig((0, utils_1.animationConfig)(config_1.DEFAULT_MARK_ANIMATION.scatter({}, appearPreset), (0,
96
- utils_1.userAnimationConfig)(this._symbolMark.name, this._spec)));
95
+ utils_1.userAnimationConfig)(interface_2.SeriesMarkNameEnum.point, this._spec)));
97
96
  }
98
97
  initSymbolMarkStyle() {
99
- var _a, _b, _c, _d, _e;
98
+ var _a;
100
99
  const symbolMark = this._symbolMark;
101
100
  symbolMark && (this.setMarkStyle(symbolMark, {
102
101
  visible: datum => "break" !== this._invalidType || (0, util_1.couldBeValidNumber)(datum[this.getStackValueField()])
@@ -105,17 +104,16 @@ class ScatterSeries extends cartesian_1.CartesianSeries {
105
104
  y: this.dataToPositionY.bind(this),
106
105
  z: this.dataToPositionZ.bind(this),
107
106
  fill: this.getColorAttribute(),
108
- fillOpacity: null !== (_d = null === (_c = null === (_b = null === (_a = this._theme) || void 0 === _a ? void 0 : _a.point) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.fillOpacity) && void 0 !== _d ? _d : 1,
109
107
  size: (0, util_1.isNumber)(this._size) || (0, util_1.isFunction)(this._size) ? this._size : scatter_1.SCATTER_DEFAULT_SIZE,
110
108
  shape: (0, util_1.isString)(this._shape) || (0, util_1.isFunction)(this._shape) ? this._shape : scatter_1.SCATTER_DEFAULT_SHAPE
111
109
  }, mark_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.Series), ((0,
112
110
  util_1.isValid)(this._sizeField) || (0, util_1.isValid)(this._size)) && this.setMarkStyle(symbolMark, {
113
111
  size: this.getSizeAttribute(this._sizeField, this._size)
114
- }, mark_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.User_Series),
115
- ((0, util_1.isValid)(this._shapeField) || (0, util_1.isValid)(this._shape)) && this.setMarkStyle(symbolMark, {
112
+ }, mark_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.User_Mark), ((0,
113
+ util_1.isValid)(this._shapeField) || (0, util_1.isValid)(this._shape)) && this.setMarkStyle(symbolMark, {
116
114
  shape: this.getShapeAttribute(this._shapeField, this._shape)
117
- }, mark_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.User_Series),
118
- this._trigger.registerMark(symbolMark), null === (_e = this._tooltipHelper) || void 0 === _e || _e.activeTriggerSet.mark.add(symbolMark));
115
+ }, mark_1.STATE_VALUE_ENUM.STATE_NORMAL, constant_1.AttributeLevel.User_Mark), this._trigger.registerMark(symbolMark),
116
+ null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(symbolMark));
119
117
  }
120
118
  initLabelMarkStyle(labelMark) {
121
119
  labelMark && this.setMarkStyle(labelMark, {
@@ -147,5 +145,11 @@ class ScatterSeries extends cartesian_1.CartesianSeries {
147
145
  }
148
146
  }
149
147
 
150
- exports.ScatterSeries = ScatterSeries, ScatterSeries.type = interface_2.SeriesTypeEnum.scatter;
148
+ exports.ScatterSeries = ScatterSeries, ScatterSeries.type = interface_2.SeriesTypeEnum.scatter,
149
+ ScatterSeries.mark = Object.assign(Object.assign({}, base_series_1.BaseSeries.mark), {
150
+ [interface_2.SeriesMarkNameEnum.point]: {
151
+ name: interface_2.SeriesMarkNameEnum.point,
152
+ type: interface_1.MarkTypeEnum.symbol
153
+ }
154
+ });
151
155
  //# sourceMappingURL=scatter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/scatter/scatter.ts"],"names":[],"mappings":"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","file":"scatter.js","sourcesContent":["import { PREFIX } from '../../constant/base';\nimport type { IElement } from '@visactor/vgrammar';\nimport type { DataView } from '@visactor/vdataset';\nimport type { Maybe, Datum, ScaleType, VisualType, IInvalidType } from '../../typings';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { ITextMark } from '../../mark/text';\nimport type { IScatterSeriesSpec, IScatterSeriesTheme } from './interface';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport {\n isNil,\n isValid,\n isObject,\n isFunction,\n isString,\n isArray,\n isNumber,\n isNumeric,\n couldBeValidNumber,\n merge\n} from '../../util';\nimport { AttributeLevel } from '../../constant';\nimport { SeriesTypeEnum } from '../interface';\nimport { STATE_VALUE_ENUM } from '../../compile/mark';\nimport {\n SCATTER_DEFAULT_RANGE_SHAPE,\n SCATTER_DEFAULT_RANGE_SIZE,\n SCATTER_DEFAULT_SHAPE,\n SCATTER_DEFAULT_SHAPE_SCALE_TYPE,\n SCATTER_DEFAULT_SIZE,\n SCATTER_DEFAULT_SIZE_SCALE_TYPE\n} from '../../constant/scatter';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { ScatterAppearPreset } from './animation';\n\nexport class ScatterSeries extends CartesianSeries<IScatterSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.scatter;\n type = SeriesTypeEnum.scatter;\n\n protected declare _theme: Maybe<IScatterSeriesTheme>;\n\n _invalidType: IInvalidType = 'break';\n\n private _symbolMark: ISymbolMark;\n\n private _size: IScatterSeriesSpec['size'];\n private _sizeField: string;\n private _shape: IScatterSeriesSpec['shape'];\n private _shapeField: string;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n // size\n this._size = this._spec.size;\n this._sizeField = this._spec.sizeField;\n // shape\n this._shape = this._spec.shape;\n this._shapeField = this._spec.shapeField;\n }\n\n /**\n * 统计数据更新\n */\n viewDataStatisticsUpdate(d: DataView): void {\n super.viewDataStatisticsUpdate(d);\n\n // 数据更新后, 更新markScale\n // this.updateMarkScale();\n }\n\n private _getSeriesAttribute<T>(\n field: string,\n spec: VisualType<T>,\n {\n defaultScaleType,\n defaultRange\n }: {\n defaultScaleType: ScaleType;\n defaultRange: T[];\n },\n key: string\n ): VisualType<T> {\n // 若sizeSpec是函数\n if (isFunction(spec)) {\n return spec;\n }\n\n if (isArray(spec)) {\n if (isNil(field)) {\n throw new Error(`${key}Field is required.`);\n }\n\n if (spec.length > 2) {\n throw new Error(`${key} length is invalid, specify up to 2 ${key}s.`);\n }\n const scaleName = `${PREFIX}_series_scatter_${this.id}_scale_${key}`;\n this._option.globalScale.registerModelScale({\n id: scaleName,\n type: defaultScaleType,\n domain: [\n {\n dataId: this._rawData.name,\n fields: [field]\n }\n ],\n range: spec\n });\n return {\n scale: scaleName,\n field\n };\n }\n\n // 若sizeSpec是对象\n if (isObject(spec)) {\n if (isNil(field)) {\n throw new Error(`${key}Field is required.`);\n }\n const scaleName = `${PREFIX}_series_scatter_${this.id}_scale_${key}`;\n const visualSpec = {\n id: scaleName,\n type: defaultScaleType,\n domain: [\n {\n dataId: this._rawData.name,\n fields: [field]\n }\n ],\n range: defaultRange,\n ...spec\n };\n\n this._option.globalScale.registerModelScale(visualSpec);\n return {\n scale: visualSpec.id,\n field\n };\n }\n\n // 其余情况报错\n throw new Error(`${key} attribute is invalid.`);\n }\n\n /**\n * 计算sizeScale\n * @param field 数据对应字段\n * @param sizeSpec size配置\n */\n private getSizeAttribute(field: string, sizeSpec: IScatterSeriesSpec['size']): VisualType<number> {\n // 若sizeSpec不存在\n if (isNil(sizeSpec)) {\n // Tips: spec会被theme配置merge, 所以Spec没配置, 不一定会触发这里.\n return SCATTER_DEFAULT_SIZE;\n }\n\n // 若sizeSpec是数值\n if (isNumber(sizeSpec)) {\n return sizeSpec;\n }\n\n // 若sizeSpec是字符串中的数值\n if (isString(sizeSpec) && isNumeric(sizeSpec)) {\n return parseFloat(sizeSpec);\n }\n\n return this._getSeriesAttribute<number>(\n field,\n sizeSpec as VisualType<number>,\n {\n defaultScaleType: SCATTER_DEFAULT_SIZE_SCALE_TYPE,\n defaultRange: SCATTER_DEFAULT_RANGE_SIZE\n },\n 'size'\n );\n }\n\n /**\n * 计算shapeScale\n * @param field 数据对应字段\n * @param shapeSpec shape配置\n */\n private getShapeAttribute(field: string, shapeSpec: IScatterSeriesSpec['shape']): VisualType<string> {\n // 若shapeSpec不存在\n if (isNil(shapeSpec)) {\n // Tips: spec会被theme配置merge, 所以Spec没配置, 不一定会触发这里.\n return SCATTER_DEFAULT_SHAPE;\n }\n\n // 若shapeSpec是字符串\n if (isString(shapeSpec)) {\n return shapeSpec;\n }\n\n return this._getSeriesAttribute<string>(\n field,\n shapeSpec as VisualType<string>,\n {\n defaultScaleType: SCATTER_DEFAULT_SHAPE_SCALE_TYPE,\n defaultRange: SCATTER_DEFAULT_RANGE_SHAPE\n },\n 'shape'\n );\n }\n\n /**\n * 初始化Mark\n */\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n this._symbolMark = this._createMark(MarkTypeEnum.symbol, 'point', {\n morph: this._spec.morph?.enable ?? true,\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: merge({ animation: this._spec.animation }, this._spec.label),\n progressive,\n isSeriesMark: true\n }) as ISymbolMark;\n }\n\n /**\n * 初始化散点图各类Mark的Style\n */\n initMarkStyle(): void {\n this.initSymbolMarkStyle();\n }\n\n /**\n * 初始化动画\n */\n initAnimation(): void {\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<ScatterAppearPreset>)?.preset;\n this._symbolMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.scatter({}, appearPreset),\n userAnimationConfig(this._symbolMark.name, this._spec)\n )\n );\n }\n\n /**\n * 初始化SymbolMark\n */\n private initSymbolMarkStyle(): void {\n const symbolMark = this._symbolMark;\n if (!symbolMark) {\n return;\n }\n\n this.setMarkStyle(symbolMark, {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n });\n\n this.setMarkStyle(\n symbolMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this),\n fill: this.getColorAttribute(),\n fillOpacity: this._theme?.point?.style?.fillOpacity ?? 1,\n size: isNumber(this._size) || isFunction(this._size) ? this._size : SCATTER_DEFAULT_SIZE,\n shape: isString(this._shape) || isFunction(this._shape) ? this._shape : SCATTER_DEFAULT_SHAPE\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n\n if (isValid(this._sizeField) || isValid(this._size)) {\n this.setMarkStyle(\n symbolMark,\n {\n size: this.getSizeAttribute(this._sizeField, this._size) as VisualType<number>\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.User_Series\n );\n }\n\n if (isValid(this._shapeField) || isValid(this._shape)) {\n this.setMarkStyle(\n symbolMark,\n {\n shape: this.getShapeAttribute(this._shapeField, this._shape) as VisualType<string>\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.User_Series\n );\n }\n\n this._trigger.registerMark(symbolMark);\n\n this._tooltipHelper?.activeTriggerSet.mark.add(symbolMark);\n }\n\n /**\n * 初始化LabelMark\n */\n initLabelMarkStyle(labelMark?: ITextMark): void {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(\n labelMark,\n {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n },\n z: this.dataToPositionZ.bind(this)\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n\n /**\n * 处理缩放\n */\n handleZoom(e: any) {\n this.getMarksWithoutRoot().forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const elements = vGrammarMark.elements;\n\n elements.forEach((el: IElement, i: number) => {\n const graphicItem = el.getGraphicItem();\n const datum = el.getDatum();\n const newPosition = this.dataToPosition(datum);\n if (newPosition && graphicItem) {\n graphicItem.translateTo(newPosition.x, newPosition.y);\n }\n });\n });\n }\n\n handlePan(e: any) {\n this.getMarksWithoutRoot().forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const elements = vGrammarMark.elements;\n\n elements.forEach((el: IElement, i: number) => {\n const graphicItem = el.getGraphicItem();\n const datum = el.getDatum();\n const newPosition = this.dataToPosition(datum);\n if (newPosition && graphicItem) {\n graphicItem.translateTo(newPosition.x, newPosition.y);\n }\n });\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/scatter/scatter.ts"],"names":[],"mappings":"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","file":"scatter.js","sourcesContent":["import { PREFIX } from '../../constant/base';\nimport type { IElement } from '@visactor/vgrammar';\nimport type { DataView } from '@visactor/vdataset';\nimport type { Maybe, Datum, ScaleType, VisualType, IInvalidType } from '../../typings';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { ITextMark } from '../../mark/text';\nimport type { IScatterSeriesSpec, IScatterSeriesTheme } from './interface';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport {\n isNil,\n isValid,\n isObject,\n isFunction,\n isString,\n isArray,\n isNumber,\n isNumeric,\n couldBeValidNumber,\n merge\n} from '../../util';\nimport { AttributeLevel } from '../../constant';\nimport type { SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface';\nimport { STATE_VALUE_ENUM } from '../../compile/mark';\nimport {\n SCATTER_DEFAULT_RANGE_SHAPE,\n SCATTER_DEFAULT_RANGE_SIZE,\n SCATTER_DEFAULT_SHAPE,\n SCATTER_DEFAULT_SHAPE_SCALE_TYPE,\n SCATTER_DEFAULT_SIZE,\n SCATTER_DEFAULT_SIZE_SCALE_TYPE\n} from '../../constant/scatter';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { ScatterAppearPreset } from './animation';\nimport { BaseSeries } from '../base/base-series';\n\nexport class ScatterSeries extends CartesianSeries<IScatterSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.scatter;\n type = SeriesTypeEnum.scatter;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.point]: { name: SeriesMarkNameEnum.point, type: MarkTypeEnum.symbol }\n };\n\n protected declare _theme: Maybe<IScatterSeriesTheme>;\n\n _invalidType: IInvalidType = 'break';\n\n private _symbolMark: ISymbolMark;\n\n private _size: IScatterSeriesSpec['size'];\n private _sizeField: string;\n private _shape: IScatterSeriesSpec['shape'];\n private _shapeField: string;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n // size\n this._size = this._spec.size;\n this._sizeField = this._spec.sizeField;\n // shape\n this._shape = this._spec.shape;\n this._shapeField = this._spec.shapeField;\n }\n\n /**\n * 统计数据更新\n */\n viewDataStatisticsUpdate(d: DataView): void {\n super.viewDataStatisticsUpdate(d);\n\n // 数据更新后, 更新markScale\n // this.updateMarkScale();\n }\n\n private _getSeriesAttribute<T>(\n field: string,\n spec: VisualType<T>,\n {\n defaultScaleType,\n defaultRange\n }: {\n defaultScaleType: ScaleType;\n defaultRange: T[];\n },\n key: string\n ): VisualType<T> {\n // 若sizeSpec是函数\n if (isFunction(spec)) {\n return spec;\n }\n\n if (isArray(spec)) {\n if (isNil(field)) {\n throw new Error(`${key}Field is required.`);\n }\n\n if (spec.length > 2) {\n throw new Error(`${key} length is invalid, specify up to 2 ${key}s.`);\n }\n const scaleName = `${PREFIX}_series_scatter_${this.id}_scale_${key}`;\n this._option.globalScale.registerModelScale({\n id: scaleName,\n type: defaultScaleType,\n domain: [\n {\n dataId: this._rawData.name,\n fields: [field]\n }\n ],\n range: spec\n });\n return {\n scale: scaleName,\n field\n };\n }\n\n // 若sizeSpec是对象\n if (isObject(spec)) {\n if (isNil(field)) {\n throw new Error(`${key}Field is required.`);\n }\n const scaleName = `${PREFIX}_series_scatter_${this.id}_scale_${key}`;\n const visualSpec = {\n id: scaleName,\n type: defaultScaleType,\n domain: [\n {\n dataId: this._rawData.name,\n fields: [field]\n }\n ],\n range: defaultRange,\n ...spec\n };\n\n this._option.globalScale.registerModelScale(visualSpec);\n return {\n scale: visualSpec.id,\n field\n };\n }\n\n // 其余情况报错\n throw new Error(`${key} attribute is invalid.`);\n }\n\n /**\n * 计算sizeScale\n * @param field 数据对应字段\n * @param sizeSpec size配置\n */\n private getSizeAttribute(field: string, sizeSpec: IScatterSeriesSpec['size']): VisualType<number> {\n // 若sizeSpec不存在\n if (isNil(sizeSpec)) {\n // Tips: spec会被theme配置merge, 所以Spec没配置, 不一定会触发这里.\n return SCATTER_DEFAULT_SIZE;\n }\n\n // 若sizeSpec是数值\n if (isNumber(sizeSpec)) {\n return sizeSpec;\n }\n\n // 若sizeSpec是字符串中的数值\n if (isString(sizeSpec) && isNumeric(sizeSpec)) {\n return parseFloat(sizeSpec);\n }\n\n return this._getSeriesAttribute<number>(\n field,\n sizeSpec as VisualType<number>,\n {\n defaultScaleType: SCATTER_DEFAULT_SIZE_SCALE_TYPE,\n defaultRange: SCATTER_DEFAULT_RANGE_SIZE\n },\n 'size'\n );\n }\n\n /**\n * 计算shapeScale\n * @param field 数据对应字段\n * @param shapeSpec shape配置\n */\n private getShapeAttribute(field: string, shapeSpec: IScatterSeriesSpec['shape']): VisualType<string> {\n // 若shapeSpec不存在\n if (isNil(shapeSpec)) {\n // Tips: spec会被theme配置merge, 所以Spec没配置, 不一定会触发这里.\n return SCATTER_DEFAULT_SHAPE;\n }\n\n // 若shapeSpec是字符串\n if (isString(shapeSpec)) {\n return shapeSpec;\n }\n\n return this._getSeriesAttribute<string>(\n field,\n shapeSpec as VisualType<string>,\n {\n defaultScaleType: SCATTER_DEFAULT_SHAPE_SCALE_TYPE,\n defaultRange: SCATTER_DEFAULT_RANGE_SHAPE\n },\n 'shape'\n );\n }\n\n /**\n * 初始化Mark\n */\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n this._symbolMark = this._createMark(ScatterSeries.mark.point, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('point', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: merge({ animation: this._spec.animation }, this._spec.label),\n progressive,\n isSeriesMark: true\n }) as ISymbolMark;\n }\n\n /**\n * 初始化散点图各类Mark的Style\n */\n initMarkStyle(): void {\n this.initSymbolMarkStyle();\n }\n\n /**\n * 初始化动画\n */\n initAnimation(): void {\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<ScatterAppearPreset>)?.preset;\n this._symbolMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.scatter({}, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.point, this._spec)\n )\n );\n }\n\n /**\n * 初始化SymbolMark\n */\n private initSymbolMarkStyle(): void {\n const symbolMark = this._symbolMark;\n if (!symbolMark) {\n return;\n }\n\n this.setMarkStyle(symbolMark, {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n });\n\n this.setMarkStyle(\n symbolMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this),\n fill: this.getColorAttribute(),\n size: isNumber(this._size) || isFunction(this._size) ? this._size : SCATTER_DEFAULT_SIZE,\n shape: isString(this._shape) || isFunction(this._shape) ? this._shape : SCATTER_DEFAULT_SHAPE\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n\n if (isValid(this._sizeField) || isValid(this._size)) {\n this.setMarkStyle(\n symbolMark,\n {\n size: this.getSizeAttribute(this._sizeField, this._size) as VisualType<number>\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.User_Mark\n );\n }\n\n if (isValid(this._shapeField) || isValid(this._shape)) {\n this.setMarkStyle(\n symbolMark,\n {\n shape: this.getShapeAttribute(this._shapeField, this._shape) as VisualType<string>\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.User_Mark\n );\n }\n\n this._trigger.registerMark(symbolMark);\n\n this._tooltipHelper?.activeTriggerSet.mark.add(symbolMark);\n }\n\n /**\n * 初始化LabelMark\n */\n initLabelMarkStyle(labelMark?: ITextMark): void {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(\n labelMark,\n {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n },\n z: this.dataToPositionZ.bind(this)\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n\n /**\n * 处理缩放\n */\n handleZoom(e: any) {\n this.getMarksWithoutRoot().forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const elements = vGrammarMark.elements;\n\n elements.forEach((el: IElement, i: number) => {\n const graphicItem = el.getGraphicItem();\n const datum = el.getDatum();\n const newPosition = this.dataToPosition(datum);\n if (newPosition && graphicItem) {\n graphicItem.translateTo(newPosition.x, newPosition.y);\n }\n });\n });\n }\n\n handlePan(e: any) {\n this.getMarksWithoutRoot().forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const elements = vGrammarMark.elements;\n\n elements.forEach((el: IElement, i: number) => {\n const graphicItem = el.getGraphicItem();\n const datum = el.getDatum();\n const newPosition = this.dataToPosition(datum);\n if (newPosition && graphicItem) {\n graphicItem.translateTo(newPosition.x, newPosition.y);\n }\n });\n });\n }\n}\n"]}
@@ -4,6 +4,7 @@ import type { SunburstLabelConfig } from '@visactor/vgrammar-hierarchy';
4
4
  import type { SunburstAppearPreset, SunburstMark } from './animation';
5
5
  import type { IArcMarkSpec, ITextMarkSpec } from '../../typings';
6
6
  import type { IPolarSeriesTheme } from '../polar/interface';
7
+ import type { SeriesMarkNameEnum } from '../interface';
7
8
  export interface ISunburstSeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimationSpec<SunburstMark, SunburstAppearPreset> {
8
9
  type: 'sunburst';
9
10
  categoryField: string;
@@ -21,8 +22,8 @@ export interface ISunburstSeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimati
21
22
  labelAutoVisible?: LabelAutoVisibleType;
22
23
  drill?: boolean;
23
24
  drillField?: string;
24
- label?: IMarkSpec<ITextMarkSpec>;
25
- sunburst?: IMarkSpec<IArcMarkSpec>;
25
+ [SeriesMarkNameEnum.label]?: IMarkSpec<ITextMarkSpec>;
26
+ [SeriesMarkNameEnum.sunburst]?: IMarkSpec<IArcMarkSpec>;
26
27
  }
27
28
  export interface ISunburstSeriesTheme extends Omit<IPolarSeriesTheme, 'label' | 'innerRadius' | 'outerRadius'> {
28
29
  startAngle?: number;
@@ -31,8 +32,8 @@ export interface ISunburstSeriesTheme extends Omit<IPolarSeriesTheme, 'label' |
31
32
  outerRadius?: number | number[];
32
33
  gap?: number | number[];
33
34
  labelLayout?: SunburstLabelConfig | SunburstLabelConfig[];
34
- label?: IMarkTheme<ITextMarkSpec>;
35
- sunburst?: IMarkTheme<IArcMarkSpec>;
35
+ [SeriesMarkNameEnum.label]?: IMarkTheme<ITextMarkSpec>;
36
+ [SeriesMarkNameEnum.sunburst]?: IMarkTheme<IArcMarkSpec>;
36
37
  }
37
38
  export type LabelAutoVisibleType = {
38
39
  enable?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/sunburst/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkSpec, IMarkTheme, ISeriesSpec } from '../../typings/spec';\nimport type { SunburstLabelConfig } from '@visactor/vgrammar-hierarchy';\nimport type { SunburstAppearPreset, SunburstMark } from './animation';\nimport type { IArcMarkSpec, ITextMarkSpec } from '../../typings';\nimport type { IPolarSeriesTheme } from '../polar/interface';\n\nexport interface ISunburstSeriesSpec\n extends Omit<ISeriesSpec, 'data'>,\n IAnimationSpec<SunburstMark, SunburstAppearPreset> {\n type: 'sunburst';\n\n /**\n * 分类字段\n * @requires\n */\n categoryField: string;\n\n /**\n * 权重字段\n * @requires\n */\n valueField: string;\n\n /**\n * 旭日图中心点, x坐标.\n * @default 正中心\n */\n centerX?: number;\n\n /**\n * 旭日图中心点, y坐标.\n * @default 正中心\n */\n centerY?: number;\n\n /**\n * 旭日图中心点, x坐标偏移量.\n * @default 0\n */\n offsetX?: number;\n\n /**\n * 旭日图中心点, y坐标偏移量.\n * @default 0\n */\n offsetY?: number;\n\n /**\n * 起始角度\n * @default -90\n */\n startAngle?: number;\n\n /**\n * 终止角度\n * @default startAngle + 360\n */\n endAngle?: number;\n\n /**\n * 扇区半径\n * @default 0\n * @description 最内层\n */\n innerRadius?: number | number[];\n\n /**\n * 扇区外半径\n * @default 1\n * @description 最外层\n */\n outerRadius?: number | number[];\n\n /**\n * 层级间隔\n * @default 0\n * @description 对所有层生效\n */\n gap?: number | number[];\n\n /**\n * label布局相关参数\n */\n labelLayout?: SunburstLabelConfig | (SunburstLabelConfig | null)[];\n\n /**\n * 自动隐藏密集标签\n */\n labelAutoVisible?: LabelAutoVisibleType;\n\n /**\n * 下钻配置\n * @default false\n * @description 下钻功能开关\n */\n drill?: boolean;\n\n /**\n * 钻取字段的field\n * @default DEFAULT_DATA_KEY\n * @description 通过API进行钻取, 需要此配置项.\n */\n drillField?: string;\n\n /**\n * 标签配置\n * @description 对所有层生效\n */\n label?: IMarkSpec<ITextMarkSpec>;\n\n /**\n * 图元配置\n */\n sunburst?: IMarkSpec<IArcMarkSpec>;\n}\n\nexport interface ISunburstSeriesTheme extends Omit<IPolarSeriesTheme, 'label' | 'innerRadius' | 'outerRadius'> {\n startAngle?: number;\n endAngle?: number;\n innerRadius?: number | number[];\n outerRadius?: number | number[];\n gap?: number | number[];\n labelLayout?: SunburstLabelConfig | SunburstLabelConfig[];\n label?: IMarkTheme<ITextMarkSpec>;\n sunburst?: IMarkTheme<IArcMarkSpec>;\n}\n\nexport type LabelAutoVisibleType = {\n /**\n * 是否启用\n * @default false\n */\n enable?: boolean;\n\n /**\n * 周长阈值,扇区周长小于该值时, 则隐藏标签.\n * @default 10\n */\n circumference?: number;\n};\n"]}
1
+ {"version":3,"sources":["../src/series/sunburst/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkSpec, IMarkTheme, ISeriesSpec } from '../../typings/spec';\nimport type { SunburstLabelConfig } from '@visactor/vgrammar-hierarchy';\nimport type { SunburstAppearPreset, SunburstMark } from './animation';\nimport type { IArcMarkSpec, ITextMarkSpec } from '../../typings';\nimport type { IPolarSeriesTheme } from '../polar/interface';\nimport type { SeriesMarkNameEnum } from '../interface';\n\nexport interface ISunburstSeriesSpec\n extends Omit<ISeriesSpec, 'data'>,\n IAnimationSpec<SunburstMark, SunburstAppearPreset> {\n type: 'sunburst';\n\n /**\n * 分类字段\n * @requires\n */\n categoryField: string;\n\n /**\n * 权重字段\n * @requires\n */\n valueField: string;\n\n /**\n * 旭日图中心点, x坐标.\n * @default 正中心\n */\n centerX?: number;\n\n /**\n * 旭日图中心点, y坐标.\n * @default 正中心\n */\n centerY?: number;\n\n /**\n * 旭日图中心点, x坐标偏移量.\n * @default 0\n */\n offsetX?: number;\n\n /**\n * 旭日图中心点, y坐标偏移量.\n * @default 0\n */\n offsetY?: number;\n\n /**\n * 起始角度\n * @default -90\n */\n startAngle?: number;\n\n /**\n * 终止角度\n * @default startAngle + 360\n */\n endAngle?: number;\n\n /**\n * 扇区半径\n * @default 0\n * @description 最内层\n */\n innerRadius?: number | number[];\n\n /**\n * 扇区外半径\n * @default 1\n * @description 最外层\n */\n outerRadius?: number | number[];\n\n /**\n * 层级间隔\n * @default 0\n * @description 对所有层生效\n */\n gap?: number | number[];\n\n /**\n * label布局相关参数\n */\n labelLayout?: SunburstLabelConfig | (SunburstLabelConfig | null)[];\n\n /**\n * 自动隐藏密集标签\n */\n labelAutoVisible?: LabelAutoVisibleType;\n\n /**\n * 下钻配置\n * @default false\n * @description 下钻功能开关\n */\n drill?: boolean;\n\n /**\n * 钻取字段的field\n * @default DEFAULT_DATA_KEY\n * @description 通过API进行钻取, 需要此配置项.\n */\n drillField?: string;\n\n /**\n * 标签配置\n * @description 对所有层生效\n */\n [SeriesMarkNameEnum.label]?: IMarkSpec<ITextMarkSpec>;\n\n /**\n * 图元配置\n */\n [SeriesMarkNameEnum.sunburst]?: IMarkSpec<IArcMarkSpec>;\n}\n\nexport interface ISunburstSeriesTheme extends Omit<IPolarSeriesTheme, 'label' | 'innerRadius' | 'outerRadius'> {\n startAngle?: number;\n endAngle?: number;\n innerRadius?: number | number[];\n outerRadius?: number | number[];\n gap?: number | number[];\n labelLayout?: SunburstLabelConfig | SunburstLabelConfig[];\n [SeriesMarkNameEnum.label]?: IMarkTheme<ITextMarkSpec>;\n [SeriesMarkNameEnum.sunburst]?: IMarkTheme<IArcMarkSpec>;\n}\n\nexport type LabelAutoVisibleType = {\n /**\n * 是否启用\n * @default false\n */\n enable?: boolean;\n\n /**\n * 周长阈值,扇区周长小于该值时, 则隐藏标签.\n * @default 10\n */\n circumference?: number;\n};\n"]}