@visactor/vchart-extension 2.0.7-alpha.5 → 2.0.7-alpha.7

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 (349) hide show
  1. package/build/index.js +7327 -27108
  2. package/build/index.min.js +13 -12
  3. package/cjs/charts/3d/arc-3d.js +4 -5
  4. package/cjs/charts/3d/arc-3d.js.map +1 -1
  5. package/cjs/charts/3d/layout.d.ts +1 -1
  6. package/cjs/charts/3d/layout.js.map +1 -1
  7. package/cjs/charts/3d/plugin.js +4 -4
  8. package/cjs/charts/3d/plugin.js.map +1 -1
  9. package/cjs/charts/3d/pyramid-3d.js +4 -5
  10. package/cjs/charts/3d/pyramid-3d.js.map +1 -1
  11. package/cjs/charts/3d/rect-3d.js +4 -4
  12. package/cjs/charts/3d/rect-3d.js.map +1 -1
  13. package/cjs/charts/axis-3d/band-axis.js +2 -2
  14. package/cjs/charts/axis-3d/band-axis.js.map +1 -1
  15. package/cjs/charts/axis-3d/linear-axis.js +4 -3
  16. package/cjs/charts/axis-3d/linear-axis.js.map +1 -1
  17. package/cjs/charts/axis-3d/log-axis.js +2 -2
  18. package/cjs/charts/axis-3d/log-axis.js.map +1 -1
  19. package/cjs/charts/axis-3d/symlog-axis.js +3 -4
  20. package/cjs/charts/axis-3d/symlog-axis.js.map +1 -1
  21. package/cjs/charts/axis-3d/time-axis.js +2 -2
  22. package/cjs/charts/axis-3d/time-axis.js.map +1 -1
  23. package/cjs/charts/bar-3d/index.js +1 -1
  24. package/cjs/charts/bar-3d/interface.js +1 -1
  25. package/cjs/charts/bar-3d/series-spec-transformer.js +1 -1
  26. package/cjs/charts/bar-3d/series.js +1 -1
  27. package/cjs/charts/bar-3d/theme.js +1 -1
  28. package/cjs/charts/candlestick/candlestick-transformer.js +1 -1
  29. package/cjs/charts/candlestick/candlestick.d.ts +1 -1
  30. package/cjs/charts/candlestick/candlestick.js +2 -1
  31. package/cjs/charts/candlestick/candlestick.js.map +1 -1
  32. package/cjs/charts/candlestick/index.js +1 -1
  33. package/cjs/charts/candlestick/interface.js +1 -1
  34. package/cjs/charts/candlestick/mark/candlestick.d.ts +2 -1
  35. package/cjs/charts/candlestick/mark/candlestick.js +4 -4
  36. package/cjs/charts/candlestick/mark/candlestick.js.map +1 -1
  37. package/cjs/charts/candlestick/series/animation.d.ts +2 -2
  38. package/cjs/charts/candlestick/series/animation.js +17 -17
  39. package/cjs/charts/candlestick/series/animation.js.map +1 -1
  40. package/cjs/charts/candlestick/series/candlestick.d.ts +2 -1
  41. package/cjs/charts/candlestick/series/candlestick.js +4 -4
  42. package/cjs/charts/candlestick/series/candlestick.js.map +1 -1
  43. package/cjs/charts/candlestick/util.js +1 -1
  44. package/cjs/charts/combination-candlestick/combination-candlestick-transformer.js +14 -14
  45. package/cjs/charts/combination-candlestick/combination-candlestick-transformer.js.map +1 -1
  46. package/cjs/charts/combination-candlestick/combination-candlestick.js +3 -3
  47. package/cjs/charts/combination-candlestick/combination-candlestick.js.map +1 -1
  48. package/cjs/charts/combination-candlestick/constant.js +1 -1
  49. package/cjs/charts/combination-candlestick/index.js +1 -1
  50. package/cjs/charts/combination-candlestick/interface.js +1 -1
  51. package/cjs/charts/conversion-funnel/arrow-data-transform.d.ts +1 -1
  52. package/cjs/charts/conversion-funnel/arrow-data-transform.js +7 -6
  53. package/cjs/charts/conversion-funnel/arrow-data-transform.js.map +1 -1
  54. package/cjs/charts/conversion-funnel/constants.js +1 -1
  55. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js +3 -3
  56. package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -1
  57. package/cjs/charts/conversion-funnel/conversion-funnel.d.ts +1 -1
  58. package/cjs/charts/conversion-funnel/conversion-funnel.js +3 -3
  59. package/cjs/charts/conversion-funnel/conversion-funnel.js.map +1 -1
  60. package/cjs/charts/conversion-funnel/index.js +1 -1
  61. package/cjs/charts/conversion-funnel/interface.js +1 -1
  62. package/cjs/charts/conversion-funnel/util.js +1 -1
  63. package/cjs/charts/funnel-3d/chart.js +1 -1
  64. package/cjs/charts/funnel-3d/constant.js +1 -1
  65. package/cjs/charts/funnel-3d/index.js +1 -1
  66. package/cjs/charts/funnel-3d/interface.js +1 -1
  67. package/cjs/charts/funnel-3d/series-spec-transformer.js +1 -1
  68. package/cjs/charts/funnel-3d/series.js +1 -1
  69. package/cjs/charts/funnel-3d/theme.js +1 -1
  70. package/cjs/charts/histogram-3d/chart.js +1 -1
  71. package/cjs/charts/image-cloud/series/animation.d.ts +2 -2
  72. package/cjs/charts/image-cloud/series/animation.js +8 -8
  73. package/cjs/charts/image-cloud/series/animation.js.map +1 -1
  74. package/cjs/charts/image-cloud/series/image-cloud.d.ts +4 -4
  75. package/cjs/charts/image-cloud/series/image-cloud.js +16 -16
  76. package/cjs/charts/image-cloud/series/image-cloud.js.map +1 -1
  77. package/cjs/charts/image-cloud/series/interface.d.ts +1 -1
  78. package/cjs/charts/image-cloud/series/interface.js.map +1 -1
  79. package/cjs/charts/pictogram/element-highlight-by-graphic-name.js +2 -2
  80. package/cjs/charts/pictogram/element-highlight-by-graphic-name.js.map +1 -1
  81. package/cjs/charts/pictogram/series/pictogram-transformer.js +3 -3
  82. package/cjs/charts/pictogram/series/pictogram-transformer.js.map +1 -1
  83. package/cjs/charts/pictogram/series/pictogram.d.ts +3 -3
  84. package/cjs/charts/pictogram/series/pictogram.js +27 -27
  85. package/cjs/charts/pictogram/series/pictogram.js.map +1 -1
  86. package/cjs/charts/pictogram/series/svg-source.d.ts +1 -2
  87. package/cjs/charts/pictogram/series/svg-source.js +3 -3
  88. package/cjs/charts/pictogram/series/svg-source.js.map +1 -1
  89. package/cjs/charts/pictogram/series/transform.d.ts +1 -1
  90. package/cjs/charts/pictogram/series/transform.js +6 -6
  91. package/cjs/charts/pictogram/series/transform.js.map +1 -1
  92. package/cjs/charts/ranking-bar/interface.d.ts +1 -1
  93. package/cjs/charts/ranking-bar/interface.js.map +1 -1
  94. package/cjs/charts/ranking-bar/ranking-bar-transformer.js +2 -2
  95. package/cjs/charts/ranking-bar/ranking-bar-transformer.js.map +1 -1
  96. package/cjs/charts/ranking-list/interface.d.ts +4 -4
  97. package/cjs/charts/ranking-list/interface.js.map +1 -1
  98. package/cjs/charts/ranking-list/ranking-list-transformer.d.ts +37 -37
  99. package/cjs/charts/ranking-list/ranking-list-transformer.js +5 -5
  100. package/cjs/charts/ranking-list/ranking-list-transformer.js.map +1 -1
  101. package/cjs/charts/ranking-list/utils.js +2 -2
  102. package/cjs/charts/ranking-list/utils.js.map +1 -1
  103. package/cjs/charts/sequence-scatter-kde/interface.d.ts +3 -3
  104. package/cjs/charts/sequence-scatter-kde/interface.js.map +1 -1
  105. package/cjs/charts/sequence-scatter-link/interface.d.ts +2 -2
  106. package/cjs/charts/sequence-scatter-link/interface.js.map +1 -1
  107. package/cjs/charts/sequence-scatter-pixel/interface.d.ts +3 -3
  108. package/cjs/charts/sequence-scatter-pixel/interface.js.map +1 -1
  109. package/cjs/charts/word-cloud-3d/animation.js +3 -3
  110. package/cjs/charts/word-cloud-3d/animation.js.map +1 -1
  111. package/cjs/components/bar-link/bar-link.d.ts +1 -1
  112. package/cjs/components/bar-link/bar-link.js +12 -12
  113. package/cjs/components/bar-link/bar-link.js.map +1 -1
  114. package/cjs/components/bar-link/constant.js +1 -1
  115. package/cjs/components/bar-link/index.js +1 -1
  116. package/cjs/components/bar-link/type.d.ts +1 -6
  117. package/cjs/components/bar-link/type.js +1 -1
  118. package/cjs/components/bar-link/type.js.map +1 -1
  119. package/cjs/components/bar-link/util.d.ts +1 -1
  120. package/cjs/components/bar-link/util.js +3 -3
  121. package/cjs/components/bar-link/util.js.map +1 -1
  122. package/cjs/components/bar-regression-line/index.d.ts +3 -3
  123. package/cjs/components/bar-regression-line/index.js +8 -8
  124. package/cjs/components/bar-regression-line/index.js.map +1 -1
  125. package/cjs/components/bar-regression-line/type.js +1 -1
  126. package/cjs/components/histogram-regression-line/index.d.ts +2 -2
  127. package/cjs/components/histogram-regression-line/index.js +9 -9
  128. package/cjs/components/histogram-regression-line/index.js.map +1 -1
  129. package/cjs/components/histogram-regression-line/type.js +1 -1
  130. package/cjs/components/map-label/index.js +1 -1
  131. package/cjs/components/map-label/layout.d.ts +1 -1
  132. package/cjs/components/map-label/layout.js +5 -5
  133. package/cjs/components/map-label/layout.js.map +1 -1
  134. package/cjs/components/map-label/map-label-transformer.js +1 -2
  135. package/cjs/components/map-label/map-label.d.ts +3 -4
  136. package/cjs/components/map-label/map-label.js +22 -22
  137. package/cjs/components/map-label/map-label.js.map +1 -1
  138. package/cjs/components/map-label/theme.js +1 -1
  139. package/cjs/components/map-label/type.d.ts +1 -1
  140. package/cjs/components/map-label/type.js +1 -1
  141. package/cjs/components/map-label/type.js.map +1 -1
  142. package/cjs/components/regression-line/index.js +1 -1
  143. package/cjs/components/regression-line/regression-line.d.ts +1 -1
  144. package/cjs/components/regression-line/regression-line.js +11 -11
  145. package/cjs/components/regression-line/regression-line.js.map +1 -1
  146. package/cjs/components/regression-line/type.d.ts +1 -1
  147. package/cjs/components/regression-line/type.js +1 -1
  148. package/cjs/components/regression-line/type.js.map +1 -1
  149. package/cjs/components/scatter-regression-line/index.d.ts +3 -3
  150. package/cjs/components/scatter-regression-line/index.js +11 -11
  151. package/cjs/components/scatter-regression-line/index.js.map +1 -1
  152. package/cjs/components/scatter-regression-line/type.js +1 -1
  153. package/cjs/components/series-break/constant.js +1 -1
  154. package/cjs/components/series-break/index.js +1 -1
  155. package/cjs/components/series-break/series-break.d.ts +2 -2
  156. package/cjs/components/series-break/series-break.js +11 -11
  157. package/cjs/components/series-break/series-break.js.map +1 -1
  158. package/cjs/components/series-break/type.d.ts +1 -2
  159. package/cjs/components/series-break/type.js +1 -1
  160. package/cjs/components/series-break/type.js.map +1 -1
  161. package/cjs/components/series-break/util.js +8 -8
  162. package/cjs/components/series-break/util.js.map +1 -1
  163. package/cjs/components/series-label/constant.js +1 -1
  164. package/cjs/components/series-label/index.js +1 -1
  165. package/cjs/components/series-label/series-label.d.ts +2 -2
  166. package/cjs/components/series-label/series-label.js +9 -10
  167. package/cjs/components/series-label/series-label.js.map +1 -1
  168. package/cjs/components/series-label/type.d.ts +1 -2
  169. package/cjs/components/series-label/type.js +1 -1
  170. package/cjs/components/series-label/type.js.map +1 -1
  171. package/cjs/components/series-label/util.d.ts +4 -4
  172. package/cjs/components/series-label/util.js +6 -6
  173. package/cjs/components/series-label/util.js.map +1 -1
  174. package/cjs/type/type.d.ts +1 -1
  175. package/cjs/type/type.js.map +1 -1
  176. package/esm/charts/3d/arc-3d.js +1 -3
  177. package/esm/charts/3d/arc-3d.js.map +1 -1
  178. package/esm/charts/3d/layout.d.ts +1 -1
  179. package/esm/charts/3d/layout.js.map +1 -1
  180. package/esm/charts/3d/plugin.js +1 -1
  181. package/esm/charts/3d/plugin.js.map +1 -1
  182. package/esm/charts/3d/pyramid-3d.js +1 -3
  183. package/esm/charts/3d/pyramid-3d.js.map +1 -1
  184. package/esm/charts/3d/rect-3d.js +1 -3
  185. package/esm/charts/3d/rect-3d.js.map +1 -1
  186. package/esm/charts/axis-3d/band-axis.js +1 -1
  187. package/esm/charts/axis-3d/band-axis.js.map +1 -1
  188. package/esm/charts/axis-3d/linear-axis.js +3 -2
  189. package/esm/charts/axis-3d/linear-axis.js.map +1 -1
  190. package/esm/charts/axis-3d/log-axis.js +1 -1
  191. package/esm/charts/axis-3d/log-axis.js.map +1 -1
  192. package/esm/charts/axis-3d/symlog-axis.js +2 -3
  193. package/esm/charts/axis-3d/symlog-axis.js.map +1 -1
  194. package/esm/charts/axis-3d/time-axis.js +1 -1
  195. package/esm/charts/axis-3d/time-axis.js.map +1 -1
  196. package/esm/charts/bar-3d/index.js +1 -1
  197. package/esm/charts/bar-3d/interface.js +1 -1
  198. package/esm/charts/bar-3d/series-spec-transformer.js +1 -1
  199. package/esm/charts/bar-3d/series.js +1 -1
  200. package/esm/charts/bar-3d/theme.js +1 -1
  201. package/esm/charts/candlestick/candlestick-transformer.js +1 -1
  202. package/esm/charts/candlestick/candlestick.d.ts +1 -1
  203. package/esm/charts/candlestick/candlestick.js +2 -1
  204. package/esm/charts/candlestick/candlestick.js.map +1 -1
  205. package/esm/charts/candlestick/index.js +1 -1
  206. package/esm/charts/candlestick/interface.js +1 -1
  207. package/esm/charts/candlestick/mark/candlestick.d.ts +2 -1
  208. package/esm/charts/candlestick/mark/candlestick.js +1 -5
  209. package/esm/charts/candlestick/mark/candlestick.js.map +1 -1
  210. package/esm/charts/candlestick/series/animation.d.ts +2 -2
  211. package/esm/charts/candlestick/series/animation.js +2 -2
  212. package/esm/charts/candlestick/series/animation.js.map +1 -1
  213. package/esm/charts/candlestick/series/candlestick.d.ts +2 -1
  214. package/esm/charts/candlestick/series/candlestick.js +1 -1
  215. package/esm/charts/candlestick/series/candlestick.js.map +1 -1
  216. package/esm/charts/candlestick/util.js +1 -1
  217. package/esm/charts/combination-candlestick/combination-candlestick-transformer.js +2 -2
  218. package/esm/charts/combination-candlestick/combination-candlestick-transformer.js.map +1 -1
  219. package/esm/charts/combination-candlestick/combination-candlestick.js +2 -2
  220. package/esm/charts/combination-candlestick/combination-candlestick.js.map +1 -1
  221. package/esm/charts/combination-candlestick/constant.js +1 -1
  222. package/esm/charts/combination-candlestick/index.js +1 -1
  223. package/esm/charts/combination-candlestick/interface.js +1 -1
  224. package/esm/charts/conversion-funnel/arrow-data-transform.d.ts +1 -1
  225. package/esm/charts/conversion-funnel/arrow-data-transform.js +3 -2
  226. package/esm/charts/conversion-funnel/arrow-data-transform.js.map +1 -1
  227. package/esm/charts/conversion-funnel/constants.js +1 -1
  228. package/esm/charts/conversion-funnel/conversion-funnel-transformer.js +2 -2
  229. package/esm/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -1
  230. package/esm/charts/conversion-funnel/conversion-funnel.d.ts +1 -1
  231. package/esm/charts/conversion-funnel/conversion-funnel.js +2 -2
  232. package/esm/charts/conversion-funnel/conversion-funnel.js.map +1 -1
  233. package/esm/charts/conversion-funnel/index.js +1 -1
  234. package/esm/charts/conversion-funnel/interface.js +1 -1
  235. package/esm/charts/conversion-funnel/util.js +1 -1
  236. package/esm/charts/funnel-3d/chart.js +1 -1
  237. package/esm/charts/funnel-3d/constant.js +1 -1
  238. package/esm/charts/funnel-3d/index.js +1 -1
  239. package/esm/charts/funnel-3d/interface.js +1 -1
  240. package/esm/charts/funnel-3d/series-spec-transformer.js +1 -1
  241. package/esm/charts/funnel-3d/series.js +1 -1
  242. package/esm/charts/funnel-3d/theme.js +1 -1
  243. package/esm/charts/histogram-3d/chart.js +1 -1
  244. package/esm/charts/image-cloud/series/animation.d.ts +2 -2
  245. package/esm/charts/image-cloud/series/animation.js +2 -2
  246. package/esm/charts/image-cloud/series/animation.js.map +1 -1
  247. package/esm/charts/image-cloud/series/image-cloud.d.ts +4 -4
  248. package/esm/charts/image-cloud/series/image-cloud.js +3 -3
  249. package/esm/charts/image-cloud/series/image-cloud.js.map +1 -1
  250. package/esm/charts/image-cloud/series/interface.d.ts +1 -1
  251. package/esm/charts/image-cloud/series/interface.js.map +1 -1
  252. package/esm/charts/pictogram/element-highlight-by-graphic-name.js +1 -1
  253. package/esm/charts/pictogram/element-highlight-by-graphic-name.js.map +1 -1
  254. package/esm/charts/pictogram/series/pictogram-transformer.js +1 -1
  255. package/esm/charts/pictogram/series/pictogram-transformer.js.map +1 -1
  256. package/esm/charts/pictogram/series/pictogram.d.ts +3 -3
  257. package/esm/charts/pictogram/series/pictogram.js +3 -3
  258. package/esm/charts/pictogram/series/pictogram.js.map +1 -1
  259. package/esm/charts/pictogram/series/svg-source.d.ts +1 -2
  260. package/esm/charts/pictogram/series/svg-source.js +1 -1
  261. package/esm/charts/pictogram/series/svg-source.js.map +1 -1
  262. package/esm/charts/pictogram/series/transform.d.ts +1 -1
  263. package/esm/charts/pictogram/series/transform.js +1 -1
  264. package/esm/charts/pictogram/series/transform.js.map +1 -1
  265. package/esm/charts/ranking-bar/interface.d.ts +1 -1
  266. package/esm/charts/ranking-bar/interface.js.map +1 -1
  267. package/esm/charts/ranking-bar/ranking-bar-transformer.js +1 -1
  268. package/esm/charts/ranking-bar/ranking-bar-transformer.js.map +1 -1
  269. package/esm/charts/ranking-list/interface.d.ts +4 -4
  270. package/esm/charts/ranking-list/interface.js.map +1 -1
  271. package/esm/charts/ranking-list/ranking-list-transformer.d.ts +37 -37
  272. package/esm/charts/ranking-list/ranking-list-transformer.js +1 -1
  273. package/esm/charts/ranking-list/ranking-list-transformer.js.map +1 -1
  274. package/esm/charts/ranking-list/utils.js +1 -1
  275. package/esm/charts/ranking-list/utils.js.map +1 -1
  276. package/esm/charts/sequence-scatter-kde/interface.d.ts +3 -3
  277. package/esm/charts/sequence-scatter-kde/interface.js.map +1 -1
  278. package/esm/charts/sequence-scatter-link/interface.d.ts +2 -2
  279. package/esm/charts/sequence-scatter-link/interface.js.map +1 -1
  280. package/esm/charts/sequence-scatter-pixel/interface.d.ts +3 -3
  281. package/esm/charts/sequence-scatter-pixel/interface.js.map +1 -1
  282. package/esm/charts/word-cloud-3d/animation.js +1 -1
  283. package/esm/charts/word-cloud-3d/animation.js.map +1 -1
  284. package/esm/components/bar-link/bar-link.d.ts +1 -1
  285. package/esm/components/bar-link/bar-link.js +3 -5
  286. package/esm/components/bar-link/bar-link.js.map +1 -1
  287. package/esm/components/bar-link/constant.js +1 -1
  288. package/esm/components/bar-link/index.js +1 -1
  289. package/esm/components/bar-link/type.d.ts +1 -6
  290. package/esm/components/bar-link/type.js +1 -1
  291. package/esm/components/bar-link/type.js.map +1 -1
  292. package/esm/components/bar-link/util.d.ts +1 -1
  293. package/esm/components/bar-link/util.js +2 -2
  294. package/esm/components/bar-link/util.js.map +1 -1
  295. package/esm/components/bar-regression-line/index.d.ts +3 -3
  296. package/esm/components/bar-regression-line/index.js +2 -2
  297. package/esm/components/bar-regression-line/index.js.map +1 -1
  298. package/esm/components/bar-regression-line/type.js +1 -1
  299. package/esm/components/histogram-regression-line/index.d.ts +2 -2
  300. package/esm/components/histogram-regression-line/index.js +2 -2
  301. package/esm/components/histogram-regression-line/index.js.map +1 -1
  302. package/esm/components/histogram-regression-line/type.js +1 -1
  303. package/esm/components/map-label/index.js +1 -1
  304. package/esm/components/map-label/layout.d.ts +1 -1
  305. package/esm/components/map-label/layout.js +2 -2
  306. package/esm/components/map-label/layout.js.map +1 -1
  307. package/esm/components/map-label/map-label-transformer.js +1 -2
  308. package/esm/components/map-label/map-label.d.ts +3 -4
  309. package/esm/components/map-label/map-label.js +4 -6
  310. package/esm/components/map-label/map-label.js.map +1 -1
  311. package/esm/components/map-label/theme.js +1 -1
  312. package/esm/components/map-label/type.d.ts +1 -1
  313. package/esm/components/map-label/type.js +1 -1
  314. package/esm/components/map-label/type.js.map +1 -1
  315. package/esm/components/regression-line/index.js +1 -1
  316. package/esm/components/regression-line/regression-line.d.ts +1 -1
  317. package/esm/components/regression-line/regression-line.js +3 -5
  318. package/esm/components/regression-line/regression-line.js.map +1 -1
  319. package/esm/components/regression-line/type.d.ts +1 -1
  320. package/esm/components/regression-line/type.js +1 -1
  321. package/esm/components/regression-line/type.js.map +1 -1
  322. package/esm/components/scatter-regression-line/index.d.ts +3 -3
  323. package/esm/components/scatter-regression-line/index.js +2 -2
  324. package/esm/components/scatter-regression-line/index.js.map +1 -1
  325. package/esm/components/scatter-regression-line/type.js +1 -1
  326. package/esm/components/series-break/constant.js +1 -1
  327. package/esm/components/series-break/index.js +1 -1
  328. package/esm/components/series-break/series-break.d.ts +2 -2
  329. package/esm/components/series-break/series-break.js +3 -5
  330. package/esm/components/series-break/series-break.js.map +1 -1
  331. package/esm/components/series-break/type.d.ts +1 -2
  332. package/esm/components/series-break/type.js +1 -1
  333. package/esm/components/series-break/type.js.map +1 -1
  334. package/esm/components/series-break/util.js +2 -2
  335. package/esm/components/series-break/util.js.map +1 -1
  336. package/esm/components/series-label/constant.js +1 -1
  337. package/esm/components/series-label/index.js +1 -1
  338. package/esm/components/series-label/series-label.d.ts +2 -2
  339. package/esm/components/series-label/series-label.js +3 -6
  340. package/esm/components/series-label/series-label.js.map +1 -1
  341. package/esm/components/series-label/type.d.ts +1 -2
  342. package/esm/components/series-label/type.js +1 -1
  343. package/esm/components/series-label/type.js.map +1 -1
  344. package/esm/components/series-label/util.d.ts +4 -4
  345. package/esm/components/series-label/util.js +2 -2
  346. package/esm/components/series-label/util.js.map +1 -1
  347. package/esm/type/type.d.ts +1 -1
  348. package/esm/type/type.js.map +1 -1
  349. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import type { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport type { IMarkGraphic } from '@visactor/vchart';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vutils';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\n\nconst DATA_KEY = 'dataKey';\nconst ORDER_KEY = 'VCHART_ORDER';\nconst SUPPLY_DATA_KEY = 'SUPPLY_DATA_KEY';\nconst NAME_LABEL_PADDING_RIGHT = 10;\nconst NAME_ORDER_PADDING_RIGHT = 5;\nconst NAME_SYMBOL_PADDING_RIGHT = 8;\nconst CHART_PADDING_LEFT = 5;\nconst CHART_PADDING_RIGHT = 5;\nconst VALUE_LABEL_PADDING_LEFT = 5;\n\nconst LABEL_PADDING_BOTTOM = 5;\n\nexport class RankingListChartSpecTransformer extends CommonChartSpecTransformer {\n protected nameLabelTextMeasure: TextMeasure<any>;\n protected valueLabelTextMeasure: TextMeasure<any>;\n protected orderLabelTextMeasure: TextMeasure<any>;\n protected originalData: Datum[];\n protected originalSpec: IRankingListSpec;\n protected dataSpecs: any[];\n protected formatMap: { [key: string]: (text: string, ctx: any) => string } = {};\n protected orderCount: number;\n\n protected isSpecValid(spec: any) {\n const { xField, yField, data } = spec;\n if (!xField || !yField || !data || data.length === 0) {\n return false;\n }\n return true;\n }\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n if (!this.isSpecValid(spec)) {\n spec.series = [];\n return;\n }\n\n this.normalizeSpec(spec);\n this.upgradeTextMeasure(spec);\n this.upgradeFormatMap(spec);\n this.processData(spec);\n\n // rankingList spec -> vchart spec\n this.transformBaseSpec(spec);\n this.transformAnimationSpec(spec);\n this.transformAxesSpec(spec);\n\n spec.extensionMark = [\n // 柱图背景\n this.generateBarBackground(spec),\n // 辅助图标\n ...this.generateDecorateHaloIcons(spec),\n // 左侧图标\n this.generateRankingIcon(spec),\n // 左侧label\n this.generateNameLabel(spec),\n // 左侧序号label\n this.generateOrderLabel(spec),\n // 右侧label\n this.generateValueLabel(spec)\n ];\n\n this.transformPaddingSpec(spec);\n\n // console.log('spec', spec);\n\n spec.customTransformSpec?.(spec);\n\n super.transformSpec(spec);\n }\n\n normalizeSpec(spec: any) {\n // 处理配置\n mergeObjects(spec, defaultSpec);\n applyVisible(spec, [\n 'barBackground',\n 'rankingIcon',\n 'decorateHaloIcons',\n 'orderLabel',\n 'nameLabel',\n 'valueLabel'\n // 'bar'\n ]);\n }\n\n upgradeTextMeasure(spec: any) {\n // 初始化文字测量\n this.nameLabelTextMeasure?.release();\n this.valueLabelTextMeasure?.release();\n this.orderLabelTextMeasure?.release();\n this.nameLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.nameLabel?.style ?? {}\n });\n this.valueLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.valueLabel?.style ?? {}\n });\n this.orderLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.orderLabel?.style ?? {}\n });\n }\n\n upgradeFormatMap(spec: any) {\n this.formatMap[spec.yField] = spec.nameLabel.formatMethod;\n this.formatMap[spec.xField] = spec.valueLabel.formatMethod;\n this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;\n }\n\n processData(spec: any) {\n // ps: 如果updateSpec后, 同时执行2次processData会有问题, 在这里用比较hack的方式绕过第2次\n if (!spec.data[0]?.values) {\n this.originalData = spec.data;\n this.originalSpec = cloneDeep(spec);\n this.dataSpecs = this.processRankingData(spec as unknown as IRankingListSpec);\n spec.data = this.dataSpecs[0].data;\n }\n }\n\n transformBaseSpec(spec: any) {\n spec.type = 'common';\n spec.dataKey = DATA_KEY;\n spec.series = [\n {\n type: 'bar',\n direction: 'horizontal',\n xField: spec.xField,\n yField: spec.yField,\n barWidth: spec.bar?.height ?? 10,\n bar: {\n ...spec.bar,\n style: {\n ...spec.bar?.style,\n x1: 0,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.bar?.style ?? true;\n }\n }\n }\n }\n ];\n }\n\n transformAnimationSpec(spec: any) {\n if (spec.animationUpdate.enable && this.orderCount > 1) {\n spec.player = {\n specs: this.dataSpecs,\n auto: true,\n visible: false,\n interval: (spec.animationNormal?.interval ?? 1000) + (spec.animationUpdate.duration ?? 1000) / 2,\n loop: true,\n ...spec.player\n };\n\n spec.animationExit = this.getAnimationExit(this.originalSpec);\n spec.animationEnter = this.getAnimationEnter(this.originalSpec);\n spec.animationUpdate = this.getAnimationUpdate(this.originalSpec);\n }\n spec.animationNormal = this.originalSpec.animationNormal;\n spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');\n }\n\n transformAxesSpec(spec: any) {\n const { min, max } = computeDataRange(this.originalData, spec.xField);\n spec.axes = [\n {\n orient: 'left',\n type: 'band',\n visible: false,\n inverse: true,\n // paddingInner: 0.5,\n paddingOuter: 0.5\n },\n {\n orient: 'bottom',\n label: { visible: true },\n type: 'linear',\n visible: false,\n min,\n max\n }\n ];\n }\n\n generateBarBackground(spec: any) {\n return {\n type: spec.barBackground.type,\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n zIndex: -99,\n state: spec.barBackground?.state,\n style: {\n x: (datum: Datum, ctx: any) =>\n spec.barBackground.type === 'symbol' ? ctx.getRegion().getLayoutRect().width / 2 : 0,\n y: (datum: Datum, ctx: any) => {\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n (spec.barBackground.type === 'symbol' ? 0 : spec.bar.height / 2)\n );\n },\n size: (datum: Datum, ctx: any) => [ctx.getRegion().getLayoutRect().width, spec.bar.height],\n width: (datum: Datum, ctx: any) => ctx.getRegion().getLayoutRect().width,\n height: spec.bar.height,\n ...spec.barBackground.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.barBackground.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'barBack'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateDecorateHaloIcons(spec: any) {\n return spec.decorateHaloIcons?.map((decorateHaloIcon: any) => {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: decorateHaloIcon?.state,\n style: {\n x: (datum: Datum, ctx: any) => {\n if (datum[spec.xField] === undefined || datum[spec.xField] === null) {\n return undefined;\n }\n return ctx.valueToX([datum[spec.xField]]);\n },\n y: (datum: Datum, ctx: any) => {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n },\n ...decorateHaloIcon.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return decorateHaloIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'symbol'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n });\n }\n\n generateRankingIcon(spec: any) {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.rankingIcon.state,\n style: {\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT +\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).width\n : 0) +\n NAME_SYMBOL_PADDING_RIGHT\n );\n }\n return CHART_PADDING_LEFT;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n spec.bar.height / 2 -\n LABEL_PADDING_BOTTOM -\n Math.max(\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).height,\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).height\n ) /\n 2\n );\n },\n ...spec.rankingIcon.style,\n lineWidth: 0,\n stroke: null,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.rankingIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateNameLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.nameLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.yField, datum),\n x: () => {\n if (spec.labelLayout === 'bothEnd') {\n return -NAME_LABEL_PADDING_RIGHT;\n }\n return (\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0)\n );\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.nameLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.nameLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateOrderLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.orderLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(ORDER_KEY, datum),\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n NAME_ORDER_PADDING_RIGHT\n );\n }\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.orderLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.orderLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateValueLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.valueLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.xField, datum),\n x: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return (\n ctx.getRegion().getLayoutRect().width +\n // this.getMaxDataLabelLens(spec, spec.xField, this.valueLabelTextMeasure) +\n VALUE_LABEL_PADDING_LEFT\n );\n }\n return ctx.getRegion().getLayoutRect().width;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.valueLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'left' : 'right',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.valueLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n transformPaddingSpec(spec: any) {\n const maxHaloIconSize =\n spec.decorateHaloIcons.length > 0\n ? Math.max(...spec.decorateHaloIcons.map((icon: any) => icon.style?.size ?? 18))\n : 0;\n spec.padding = {\n left:\n spec.labelLayout === 'bothEnd'\n ? NAME_LABEL_PADDING_RIGHT +\n this.getMaxDataLabelLens(spec, spec.yField, this.nameLabelTextMeasure) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0) +\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n CHART_PADDING_LEFT\n : CHART_PADDING_LEFT + maxHaloIconSize / 2,\n right:\n spec.labelLayout === 'bothEnd'\n ? VALUE_LABEL_PADDING_LEFT +\n this.getMaxDataLabelLens(spec, spec.xField, this.valueLabelTextMeasure) +\n CHART_PADDING_RIGHT\n : CHART_PADDING_RIGHT + 10,\n top: 0,\n bottom: 0,\n ...spec.padding\n };\n }\n\n paginateDataArr = (spec: IRankingListSpec) => {\n const { scrollSize = 1, pageSize = 5 } = spec;\n const arr = this.originalData;\n const result: { [key: string]: Datum[] } = {};\n let pageOrder = 0;\n for (let i = 0; i < arr.length; i += scrollSize) {\n pageOrder++;\n result[`page${pageOrder}`] = arr.slice(i, i + pageSize);\n if (i + pageSize - 1 >= arr.length - 1) {\n arr.push(\n ...Array.from({ length: i + pageSize - arr.length }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n break;\n }\n }\n return {\n orderCount: pageOrder,\n result: result\n };\n };\n\n processRankingData = (spec: IRankingListSpec) => {\n const result: any[] = [];\n spec.data.forEach((datum, index) => (datum[ORDER_KEY] = index + 1 < 10 ? `0${index + 1}` : index + 1));\n const pagerData = this.paginateDataArr(spec).result;\n const orderCount = this.paginateDataArr(spec).orderCount;\n this.orderCount = orderCount;\n const supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;\n pagerData[`page${orderCount}`].push(\n ...Array.from({ length: supplyCount }, (_: any) => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n\n Object.keys(pagerData).forEach(order => {\n result.push({\n data: [\n {\n id: 'datas',\n values: pagerData[order].map(d => {\n return { ...d, [DATA_KEY]: d[spec.yField] };\n })\n },\n {\n id: 'order',\n values: [\n {\n order\n }\n ]\n }\n ]\n });\n });\n\n // // 只有1页时, player循环播放时, prePage和curPage data一致, 导致没有动画效果\n // // 在此手动复制1页, 且prePage和curPage dataKey不一致, 保证动画效果\n // if (result.length === 1) {\n // result.push({\n // data: [\n // {\n // id: 'datas',\n // values: pagerData['page1'].map(d => {\n // return { ...d, [DATA_KEY]: 'page2_' + d['y'] };\n // })\n // },\n // {\n // id: 'order',\n // values: [\n // {\n // order: 'page2'\n // }\n // ]\n // }\n // ]\n // });\n // }\n\n return result;\n };\n\n getMaxDataLabelLens(spec: IRankingListSpec, field: string, textMeasure: TextMeasure<any>) {\n const textWidths = this.originalData.map(datum =>\n datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width\n );\n return Math.max(...textWidths);\n }\n\n formatDatum(field: string, datum: Datum) {\n if (this.formatMap?.[field]) {\n return this.formatMap[field](datum[field], datum);\n }\n return datum[field];\n }\n\n getLabelWidth(padding: number, width: number) {\n return width + padding;\n }\n\n getAnimationExit(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveOut',\n options: {\n direction: 'y',\n\n orient: 'negative',\n excludeChannels: ['x'],\n point: (datum: Datum, graphic: IMarkGraphic) => {\n const channelAttr = graphic.getGraphicAttribute('y');\n const barSpace = spec.height / (spec.pageSize + 1);\n return { y: channelAttr - barSpace * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationEnter(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveIn',\n options: {\n direction: 'y',\n orient: 'negative',\n excludeChannels: ['x'],\n point: (datum: Datum, graphic: IMarkGraphic) => {\n const channelAttr = graphic.getGraphicAttribute('y');\n return { y: channelAttr + (spec.height / (spec.pageSize + 1)) * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationAppear(spec: IRankingListSpec, markType: 'rect' | 'text' | 'symbol' | 'barBack') {\n if (spec.animationAppear?.enable === false) {\n return false;\n }\n if (markType === 'rect') {\n return {\n type: 'growWidthIn',\n oneByOne: false,\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear',\n options: {}\n };\n } else if (markType === 'symbol') {\n return {\n channel: {\n x: {\n from: 0,\n to: (datum: Datum, graphic: IMarkGraphic) => {\n return graphic.getGraphicAttribute('x');\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n return {\n channel: {\n opacity: {\n from: 0,\n to: 1\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n\n getAnimationUpdate(spec: IRankingListSpec) {\n if (spec.animationUpdate.enable === false) {\n return false;\n }\n return {\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import type { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport type { IMarkGraphic } from '@visactor/vchart';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vchart';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\n\nconst DATA_KEY = 'dataKey';\nconst ORDER_KEY = 'VCHART_ORDER';\nconst SUPPLY_DATA_KEY = 'SUPPLY_DATA_KEY';\nconst NAME_LABEL_PADDING_RIGHT = 10;\nconst NAME_ORDER_PADDING_RIGHT = 5;\nconst NAME_SYMBOL_PADDING_RIGHT = 8;\nconst CHART_PADDING_LEFT = 5;\nconst CHART_PADDING_RIGHT = 5;\nconst VALUE_LABEL_PADDING_LEFT = 5;\n\nconst LABEL_PADDING_BOTTOM = 5;\n\nexport class RankingListChartSpecTransformer extends CommonChartSpecTransformer {\n protected nameLabelTextMeasure: TextMeasure<any>;\n protected valueLabelTextMeasure: TextMeasure<any>;\n protected orderLabelTextMeasure: TextMeasure<any>;\n protected originalData: Datum[];\n protected originalSpec: IRankingListSpec;\n protected dataSpecs: any[];\n protected formatMap: { [key: string]: (text: string, ctx: any) => string } = {};\n protected orderCount: number;\n\n protected isSpecValid(spec: any) {\n const { xField, yField, data } = spec;\n if (!xField || !yField || !data || data.length === 0) {\n return false;\n }\n return true;\n }\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n if (!this.isSpecValid(spec)) {\n spec.series = [];\n return;\n }\n\n this.normalizeSpec(spec);\n this.upgradeTextMeasure(spec);\n this.upgradeFormatMap(spec);\n this.processData(spec);\n\n // rankingList spec -> vchart spec\n this.transformBaseSpec(spec);\n this.transformAnimationSpec(spec);\n this.transformAxesSpec(spec);\n\n spec.extensionMark = [\n // 柱图背景\n this.generateBarBackground(spec),\n // 辅助图标\n ...this.generateDecorateHaloIcons(spec),\n // 左侧图标\n this.generateRankingIcon(spec),\n // 左侧label\n this.generateNameLabel(spec),\n // 左侧序号label\n this.generateOrderLabel(spec),\n // 右侧label\n this.generateValueLabel(spec)\n ];\n\n this.transformPaddingSpec(spec);\n\n // console.log('spec', spec);\n\n spec.customTransformSpec?.(spec);\n\n super.transformSpec(spec);\n }\n\n normalizeSpec(spec: any) {\n // 处理配置\n mergeObjects(spec, defaultSpec);\n applyVisible(spec, [\n 'barBackground',\n 'rankingIcon',\n 'decorateHaloIcons',\n 'orderLabel',\n 'nameLabel',\n 'valueLabel'\n // 'bar'\n ]);\n }\n\n upgradeTextMeasure(spec: any) {\n // 初始化文字测量\n this.nameLabelTextMeasure?.release();\n this.valueLabelTextMeasure?.release();\n this.orderLabelTextMeasure?.release();\n this.nameLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.nameLabel?.style ?? {}\n });\n this.valueLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.valueLabel?.style ?? {}\n });\n this.orderLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.orderLabel?.style ?? {}\n });\n }\n\n upgradeFormatMap(spec: any) {\n this.formatMap[spec.yField] = spec.nameLabel.formatMethod;\n this.formatMap[spec.xField] = spec.valueLabel.formatMethod;\n this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;\n }\n\n processData(spec: any) {\n // ps: 如果updateSpec后, 同时执行2次processData会有问题, 在这里用比较hack的方式绕过第2次\n if (!spec.data[0]?.values) {\n this.originalData = spec.data;\n this.originalSpec = cloneDeep(spec);\n this.dataSpecs = this.processRankingData(spec as unknown as IRankingListSpec);\n spec.data = this.dataSpecs[0].data;\n }\n }\n\n transformBaseSpec(spec: any) {\n spec.type = 'common';\n spec.dataKey = DATA_KEY;\n spec.series = [\n {\n type: 'bar',\n direction: 'horizontal',\n xField: spec.xField,\n yField: spec.yField,\n barWidth: spec.bar?.height ?? 10,\n bar: {\n ...spec.bar,\n style: {\n ...spec.bar?.style,\n x1: 0,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.bar?.style ?? true;\n }\n }\n }\n }\n ];\n }\n\n transformAnimationSpec(spec: any) {\n if (spec.animationUpdate.enable && this.orderCount > 1) {\n spec.player = {\n specs: this.dataSpecs,\n auto: true,\n visible: false,\n interval: (spec.animationNormal?.interval ?? 1000) + (spec.animationUpdate.duration ?? 1000) / 2,\n loop: true,\n ...spec.player\n };\n\n spec.animationExit = this.getAnimationExit(this.originalSpec);\n spec.animationEnter = this.getAnimationEnter(this.originalSpec);\n spec.animationUpdate = this.getAnimationUpdate(this.originalSpec);\n }\n spec.animationNormal = this.originalSpec.animationNormal;\n spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');\n }\n\n transformAxesSpec(spec: any) {\n const { min, max } = computeDataRange(this.originalData, spec.xField);\n spec.axes = [\n {\n orient: 'left',\n type: 'band',\n visible: false,\n inverse: true,\n // paddingInner: 0.5,\n paddingOuter: 0.5\n },\n {\n orient: 'bottom',\n label: { visible: true },\n type: 'linear',\n visible: false,\n min,\n max\n }\n ];\n }\n\n generateBarBackground(spec: any) {\n return {\n type: spec.barBackground.type,\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n zIndex: -99,\n state: spec.barBackground?.state,\n style: {\n x: (datum: Datum, ctx: any) =>\n spec.barBackground.type === 'symbol' ? ctx.getRegion().getLayoutRect().width / 2 : 0,\n y: (datum: Datum, ctx: any) => {\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n (spec.barBackground.type === 'symbol' ? 0 : spec.bar.height / 2)\n );\n },\n size: (datum: Datum, ctx: any) => [ctx.getRegion().getLayoutRect().width, spec.bar.height],\n width: (datum: Datum, ctx: any) => ctx.getRegion().getLayoutRect().width,\n height: spec.bar.height,\n ...spec.barBackground.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.barBackground.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'barBack'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateDecorateHaloIcons(spec: any) {\n return spec.decorateHaloIcons?.map((decorateHaloIcon: any) => {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: decorateHaloIcon?.state,\n style: {\n x: (datum: Datum, ctx: any) => {\n if (datum[spec.xField] === undefined || datum[spec.xField] === null) {\n return undefined;\n }\n return ctx.valueToX([datum[spec.xField]]);\n },\n y: (datum: Datum, ctx: any) => {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n },\n ...decorateHaloIcon.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return decorateHaloIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'symbol'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n });\n }\n\n generateRankingIcon(spec: any) {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.rankingIcon.state,\n style: {\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT +\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).width\n : 0) +\n NAME_SYMBOL_PADDING_RIGHT\n );\n }\n return CHART_PADDING_LEFT;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n spec.bar.height / 2 -\n LABEL_PADDING_BOTTOM -\n Math.max(\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).height,\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).height\n ) /\n 2\n );\n },\n ...spec.rankingIcon.style,\n lineWidth: 0,\n stroke: null,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.rankingIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateNameLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.nameLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.yField, datum),\n x: () => {\n if (spec.labelLayout === 'bothEnd') {\n return -NAME_LABEL_PADDING_RIGHT;\n }\n return (\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0)\n );\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.nameLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.nameLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateOrderLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.orderLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(ORDER_KEY, datum),\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n NAME_ORDER_PADDING_RIGHT\n );\n }\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.orderLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.orderLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateValueLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.valueLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.xField, datum),\n x: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return (\n ctx.getRegion().getLayoutRect().width +\n // this.getMaxDataLabelLens(spec, spec.xField, this.valueLabelTextMeasure) +\n VALUE_LABEL_PADDING_LEFT\n );\n }\n return ctx.getRegion().getLayoutRect().width;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.valueLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'left' : 'right',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.valueLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n transformPaddingSpec(spec: any) {\n const maxHaloIconSize =\n spec.decorateHaloIcons.length > 0\n ? Math.max(...spec.decorateHaloIcons.map((icon: any) => icon.style?.size ?? 18))\n : 0;\n spec.padding = {\n left:\n spec.labelLayout === 'bothEnd'\n ? NAME_LABEL_PADDING_RIGHT +\n this.getMaxDataLabelLens(spec, spec.yField, this.nameLabelTextMeasure) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0) +\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n CHART_PADDING_LEFT\n : CHART_PADDING_LEFT + maxHaloIconSize / 2,\n right:\n spec.labelLayout === 'bothEnd'\n ? VALUE_LABEL_PADDING_LEFT +\n this.getMaxDataLabelLens(spec, spec.xField, this.valueLabelTextMeasure) +\n CHART_PADDING_RIGHT\n : CHART_PADDING_RIGHT + 10,\n top: 0,\n bottom: 0,\n ...spec.padding\n };\n }\n\n paginateDataArr = (spec: IRankingListSpec) => {\n const { scrollSize = 1, pageSize = 5 } = spec;\n const arr = this.originalData;\n const result: { [key: string]: Datum[] } = {};\n let pageOrder = 0;\n for (let i = 0; i < arr.length; i += scrollSize) {\n pageOrder++;\n result[`page${pageOrder}`] = arr.slice(i, i + pageSize);\n if (i + pageSize - 1 >= arr.length - 1) {\n arr.push(\n ...Array.from({ length: i + pageSize - arr.length }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n break;\n }\n }\n return {\n orderCount: pageOrder,\n result: result\n };\n };\n\n processRankingData = (spec: IRankingListSpec) => {\n const result: any[] = [];\n spec.data.forEach((datum, index) => (datum[ORDER_KEY] = index + 1 < 10 ? `0${index + 1}` : index + 1));\n const pagerData = this.paginateDataArr(spec).result;\n const orderCount = this.paginateDataArr(spec).orderCount;\n this.orderCount = orderCount;\n const supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;\n pagerData[`page${orderCount}`].push(\n ...Array.from({ length: supplyCount }, (_: any) => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n\n Object.keys(pagerData).forEach(order => {\n result.push({\n data: [\n {\n id: 'datas',\n values: pagerData[order].map(d => {\n return { ...d, [DATA_KEY]: d[spec.yField] };\n })\n },\n {\n id: 'order',\n values: [\n {\n order\n }\n ]\n }\n ]\n });\n });\n\n // // 只有1页时, player循环播放时, prePage和curPage data一致, 导致没有动画效果\n // // 在此手动复制1页, 且prePage和curPage dataKey不一致, 保证动画效果\n // if (result.length === 1) {\n // result.push({\n // data: [\n // {\n // id: 'datas',\n // values: pagerData['page1'].map(d => {\n // return { ...d, [DATA_KEY]: 'page2_' + d['y'] };\n // })\n // },\n // {\n // id: 'order',\n // values: [\n // {\n // order: 'page2'\n // }\n // ]\n // }\n // ]\n // });\n // }\n\n return result;\n };\n\n getMaxDataLabelLens(spec: IRankingListSpec, field: string, textMeasure: TextMeasure<any>) {\n const textWidths = this.originalData.map(datum =>\n datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width\n );\n return Math.max(...textWidths);\n }\n\n formatDatum(field: string, datum: Datum) {\n if (this.formatMap?.[field]) {\n return this.formatMap[field](datum[field], datum);\n }\n return datum[field];\n }\n\n getLabelWidth(padding: number, width: number) {\n return width + padding;\n }\n\n getAnimationExit(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveOut',\n options: {\n direction: 'y',\n\n orient: 'negative',\n excludeChannels: ['x'],\n point: (datum: Datum, graphic: IMarkGraphic) => {\n const channelAttr = graphic.getGraphicAttribute('y');\n const barSpace = spec.height / (spec.pageSize + 1);\n return { y: channelAttr - barSpace * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationEnter(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveIn',\n options: {\n direction: 'y',\n orient: 'negative',\n excludeChannels: ['x'],\n point: (datum: Datum, graphic: IMarkGraphic) => {\n const channelAttr = graphic.getGraphicAttribute('y');\n return { y: channelAttr + (spec.height / (spec.pageSize + 1)) * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationAppear(spec: IRankingListSpec, markType: 'rect' | 'text' | 'symbol' | 'barBack') {\n if (spec.animationAppear?.enable === false) {\n return false;\n }\n if (markType === 'rect') {\n return {\n type: 'growWidthIn',\n oneByOne: false,\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear',\n options: {}\n };\n } else if (markType === 'symbol') {\n return {\n channel: {\n x: {\n from: 0,\n to: (datum: Datum, graphic: IMarkGraphic) => {\n return graphic.getGraphicAttribute('x');\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n return {\n channel: {\n opacity: {\n from: 0,\n to: 1\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n\n getAnimationUpdate(spec: IRankingListSpec) {\n if (spec.animationUpdate.enable === false) {\n return false;\n }\n return {\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { isArray } from "@visactor/vutils";
1
+ import { isArray } from "@visactor/vchart";
2
2
 
3
3
  export const applyVisible = (spec, keyList) => {
4
4
  keyList.forEach((key => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charts/ranking-list/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { Datum } from '@visactor/vchart/src/typings';\nimport { isArray } from '@visactor/vutils';\n\nexport const applyVisible = (spec: any, keyList: string[]) => {\n keyList.forEach(key => {\n if (isArray(spec[key])) {\n spec[key]?.forEach((s: any, i: number) => {\n spec[key][i] = {\n ...s,\n style: {\n ...s?.style,\n visible: s?.style?.visible ?? s?.visible ?? true\n }\n };\n });\n } else {\n spec[key] = {\n ...spec[key],\n style: {\n ...spec[key]?.style,\n visible: spec[key]?.style?.visible ?? spec[key]?.visible ?? true\n }\n };\n }\n });\n};\n\nexport const mergeObjects = (objA: any, objB: any) => {\n function recursiveMerge(target: any, source: any) {\n for (const key in source) {\n if (\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'prototype' &&\n typeof source[key] === 'object' &&\n source[key] !== null\n ) {\n if (!target.hasOwnProperty(key)) {\n target[key] = Array.isArray(source[key]) ? [] : {};\n }\n recursiveMerge(target[key], source[key]);\n } else if (!target.hasOwnProperty(key) && typeof target === 'object') {\n target[key] = source[key];\n }\n }\n return target;\n }\n return recursiveMerge(objA, objB);\n};\n\nexport const computeDataRange = (data: Datum[], field: string) => {\n let dataMin: number;\n let dataMax: number;\n const datumX = data.map(d => d[field]).filter(d => typeof d !== 'undefined' && d !== null);\n\n // 避免数据都为null, 即xField都为null, 导致scale异常, 图表为空\n // 这里只要设置dataMin和dataMax为任意数字并保证其不想等, 即可达到只显示yField而不显示xField的效果\n if (datumX.length === 0) {\n dataMin = 0;\n dataMax = 1;\n } else {\n dataMin = Math.min(...datumX) - (Math.max(...datumX) - Math.min(...datumX)) / 3;\n dataMax = (Math.max(...datumX) - dataMin) / 0.8 + dataMin;\n const delta_value = 10; // 可以是任意值, 只要大于0就行, 目的是为了让最小值和最大值不一样, 便于scale做插值计算\n const data = dataMin;\n if (dataMin === dataMax) {\n // 避免domain[0] = domain[1], 导致scale映射有问题\n // 数学计算:\n // 1.保证 (dataMax - data) / (data - dataMin) = 4\n // 2. dataMax > data & dataMin < data => delta_value > 0\n dataMin = data - delta_value;\n dataMax = (4 * data + delta_value) / 4;\n }\n }\n return { min: dataMin, max: dataMax };\n};\n"]}
1
+ {"version":3,"sources":["../src/charts/ranking-list/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { Datum } from '@visactor/vchart/src/typings';\nimport { isArray } from '@visactor/vchart';\n\nexport const applyVisible = (spec: any, keyList: string[]) => {\n keyList.forEach(key => {\n if (isArray(spec[key])) {\n spec[key]?.forEach((s: any, i: number) => {\n spec[key][i] = {\n ...s,\n style: {\n ...s?.style,\n visible: s?.style?.visible ?? s?.visible ?? true\n }\n };\n });\n } else {\n spec[key] = {\n ...spec[key],\n style: {\n ...spec[key]?.style,\n visible: spec[key]?.style?.visible ?? spec[key]?.visible ?? true\n }\n };\n }\n });\n};\n\nexport const mergeObjects = (objA: any, objB: any) => {\n function recursiveMerge(target: any, source: any) {\n for (const key in source) {\n if (\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'prototype' &&\n typeof source[key] === 'object' &&\n source[key] !== null\n ) {\n if (!target.hasOwnProperty(key)) {\n target[key] = Array.isArray(source[key]) ? [] : {};\n }\n recursiveMerge(target[key], source[key]);\n } else if (!target.hasOwnProperty(key) && typeof target === 'object') {\n target[key] = source[key];\n }\n }\n return target;\n }\n return recursiveMerge(objA, objB);\n};\n\nexport const computeDataRange = (data: Datum[], field: string) => {\n let dataMin: number;\n let dataMax: number;\n const datumX = data.map(d => d[field]).filter(d => typeof d !== 'undefined' && d !== null);\n\n // 避免数据都为null, 即xField都为null, 导致scale异常, 图表为空\n // 这里只要设置dataMin和dataMax为任意数字并保证其不想等, 即可达到只显示yField而不显示xField的效果\n if (datumX.length === 0) {\n dataMin = 0;\n dataMax = 1;\n } else {\n dataMin = Math.min(...datumX) - (Math.max(...datumX) - Math.min(...datumX)) / 3;\n dataMax = (Math.max(...datumX) - dataMin) / 0.8 + dataMin;\n const delta_value = 10; // 可以是任意值, 只要大于0就行, 目的是为了让最小值和最大值不一样, 便于scale做插值计算\n const data = dataMin;\n if (dataMin === dataMax) {\n // 避免domain[0] = domain[1], 导致scale映射有问题\n // 数学计算:\n // 1.保证 (dataMax - data) / (data - dataMin) = 4\n // 2. dataMax > data & dataMin < data => delta_value > 0\n dataMin = data - delta_value;\n dataMax = (4 * data + delta_value) / 4;\n }\n }\n return { min: dataMin, max: dataMax };\n};\n"]}
@@ -1,6 +1,6 @@
1
- import { IPlayerSpec } from '@visactor/vchart';
2
- import { Datum } from '@visactor/vchart/src/typings/common';
3
- import { ITextGraphicAttribute } from '@visactor/vrender-core';
1
+ import type { IPlayerSpec } from '@visactor/vchart';
2
+ import type { Datum } from '@visactor/vchart/src/typings/common';
3
+ import type { ITextGraphicAttribute } from '@visactor/vchart';
4
4
  type IterationData = Datum[];
5
5
  type ISequenceScatterKDEData = {
6
6
  [Iteration: string]: IterationData;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charts/sequence-scatter-kde/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import { IPlayerSpec } from '@visactor/vchart';\nimport { Datum } from '@visactor/vchart/src/typings/common';\nimport { ITextGraphicAttribute } from '@visactor/vrender-core';\n\ntype IterationData = Datum[];\ntype ISequenceScatterKDEData = {\n /**\n * key: 迭代信息\n * value: 每个迭代的数据\n */\n [Iteration: string]: IterationData;\n\n // TODO: 支持边的绘制\n // [Iteration: string]: {\n // /**\n // * 节点数据\n // */\n // nodes: IterationNodesData;\n // /**\n // * 边数据\n // */\n // edges: IterationEdgesData;\n // };\n};\n\nexport interface ISequenceScatterKDESpec {\n /**\n * 图表类型\n */\n type: 'sequenceScatterKDE';\n /**\n * 数据\n */\n data: ISequenceScatterKDEData;\n /**\n * x轴字段\n */\n xField: string;\n /**\n * y轴字段\n */\n yField: string;\n /**\n * 播放器配置\n */\n player: Omit<IPlayerSpec, 'specs'>;\n /**\n * 文字标记(标记当前处于第几个迭代)\n */\n infoLabel: {\n visible: boolean;\n style: ITextGraphicAttribute;\n };\n /**\n * 背景数据\n */\n backgroundColors: {\n [Iteration: string]: any;\n };\n /**\n * 宽度\n */\n width: number;\n /**\n * 高度\n */\n height: number;\n}\n\nexport interface Point {\n x: number;\n y: number;\n label?: string;\n}\n"]}
1
+ {"version":3,"sources":["../src/charts/sequence-scatter-kde/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IPlayerSpec } from '@visactor/vchart';\nimport type { Datum } from '@visactor/vchart/src/typings/common';\nimport type { ITextGraphicAttribute } from '@visactor/vchart';\n\ntype IterationData = Datum[];\ntype ISequenceScatterKDEData = {\n /**\n * key: 迭代信息\n * value: 每个迭代的数据\n */\n [Iteration: string]: IterationData;\n\n // TODO: 支持边的绘制\n // [Iteration: string]: {\n // /**\n // * 节点数据\n // */\n // nodes: IterationNodesData;\n // /**\n // * 边数据\n // */\n // edges: IterationEdgesData;\n // };\n};\n\nexport interface ISequenceScatterKDESpec {\n /**\n * 图表类型\n */\n type: 'sequenceScatterKDE';\n /**\n * 数据\n */\n data: ISequenceScatterKDEData;\n /**\n * x轴字段\n */\n xField: string;\n /**\n * y轴字段\n */\n yField: string;\n /**\n * 播放器配置\n */\n player: Omit<IPlayerSpec, 'specs'>;\n /**\n * 文字标记(标记当前处于第几个迭代)\n */\n infoLabel: {\n visible: boolean;\n style: ITextGraphicAttribute;\n };\n /**\n * 背景数据\n */\n backgroundColors: {\n [Iteration: string]: any;\n };\n /**\n * 宽度\n */\n width: number;\n /**\n * 高度\n */\n height: number;\n}\n\nexport interface Point {\n x: number;\n y: number;\n label?: string;\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { IPlayerSpec } from '@visactor/vchart';
2
- import { ITextGraphicAttribute } from '@visactor/vrender-core';
1
+ import type { IPlayerSpec } from '@visactor/vchart';
2
+ import type { ITextGraphicAttribute } from '@visactor/vchart';
3
3
  export type OriginalData = {
4
4
  [key: string]: {
5
5
  projection: number[][];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charts/sequence-scatter-link/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import { IPlayerSpec } from '@visactor/vchart';\nimport { ITextGraphicAttribute } from '@visactor/vrender-core';\n\n/**\n * 原始数据,包括坐标、邻居、预测结果\n */\nexport type OriginalData = {\n [key: string]: {\n projection: number[][];\n intra_similarity?: number[][];\n inter_similarity?: number[][];\n prediction?: number[];\n confidence?: number[];\n };\n};\n\n/**\n * 训练信息,包括标签、标签颜色、标签文本\n */\nexport type TrainingInfo = {\n label_text: string[];\n label_color: number[][];\n label_index: number[];\n};\n\n/**\n * 轮次点数据\n */\nexport type IterationNodesData = {\n id: number; // unique identification of a point\n x: number;\n y: number;\n label: string;\n prediction: string;\n confidence: number;\n}[];\n\n/**\n * 轮次边数据\n */\nexport type IterationEdgesData = {\n id: number; // unique identification of an edge\n x0: number;\n y0: number;\n x1: number;\n y1: number;\n type: string;\n color: string;\n}[];\n\n/**\n * 边的端点,一条边数据构造两个端点,edgeId相同的端点之间将绘制一条线段\n */\nexport type Endpoint = {\n edgeId: number; // id of the edge that the endpoint belongs to\n x: number;\n y: number;\n type: string;\n color: string;\n};\n\nexport type ISequenceScatterLinkData = {\n /**\n * key: 迭代信息\n * value: 每个迭代的数据\n */\n [Iteration: string]: {\n /**\n * 节点数据\n */\n nodes: IterationNodesData;\n /**\n * 边数据\n */\n edges: IterationEdgesData;\n };\n};\n\nexport interface ISequenceScatterLinkSpec {\n /**\n * 图表类型\n */\n type: 'sequenceScatterLink';\n /**\n * 任务类型\n */\n taskType: string;\n /**\n * 数据\n */\n data: ISequenceScatterLinkData;\n /**\n * x轴字段\n */\n xField: string;\n /**\n * y轴字段\n */\n yField: string;\n /**\n * 播放器配置\n */\n player: Omit<IPlayerSpec, 'specs'>;\n /**\n * 文字标记(标记当前处于第几个迭代)\n */\n infoLabel: {\n visible: boolean;\n style: ITextGraphicAttribute;\n };\n /**\n * 画布范围\n */\n scope: [number, number, number, number];\n}\n"]}
1
+ {"version":3,"sources":["../src/charts/sequence-scatter-link/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IPlayerSpec } from '@visactor/vchart';\nimport type { ITextGraphicAttribute } from '@visactor/vchart';\n\n/**\n * 原始数据,包括坐标、邻居、预测结果\n */\nexport type OriginalData = {\n [key: string]: {\n projection: number[][];\n intra_similarity?: number[][];\n inter_similarity?: number[][];\n prediction?: number[];\n confidence?: number[];\n };\n};\n\n/**\n * 训练信息,包括标签、标签颜色、标签文本\n */\nexport type TrainingInfo = {\n label_text: string[];\n label_color: number[][];\n label_index: number[];\n};\n\n/**\n * 轮次点数据\n */\nexport type IterationNodesData = {\n id: number; // unique identification of a point\n x: number;\n y: number;\n label: string;\n prediction: string;\n confidence: number;\n}[];\n\n/**\n * 轮次边数据\n */\nexport type IterationEdgesData = {\n id: number; // unique identification of an edge\n x0: number;\n y0: number;\n x1: number;\n y1: number;\n type: string;\n color: string;\n}[];\n\n/**\n * 边的端点,一条边数据构造两个端点,edgeId相同的端点之间将绘制一条线段\n */\nexport type Endpoint = {\n edgeId: number; // id of the edge that the endpoint belongs to\n x: number;\n y: number;\n type: string;\n color: string;\n};\n\nexport type ISequenceScatterLinkData = {\n /**\n * key: 迭代信息\n * value: 每个迭代的数据\n */\n [Iteration: string]: {\n /**\n * 节点数据\n */\n nodes: IterationNodesData;\n /**\n * 边数据\n */\n edges: IterationEdgesData;\n };\n};\n\nexport interface ISequenceScatterLinkSpec {\n /**\n * 图表类型\n */\n type: 'sequenceScatterLink';\n /**\n * 任务类型\n */\n taskType: string;\n /**\n * 数据\n */\n data: ISequenceScatterLinkData;\n /**\n * x轴字段\n */\n xField: string;\n /**\n * y轴字段\n */\n yField: string;\n /**\n * 播放器配置\n */\n player: Omit<IPlayerSpec, 'specs'>;\n /**\n * 文字标记(标记当前处于第几个迭代)\n */\n infoLabel: {\n visible: boolean;\n style: ITextGraphicAttribute;\n };\n /**\n * 画布范围\n */\n scope: [number, number, number, number];\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { IPlayerSpec } from '@visactor/vchart';
2
- import { Datum } from '@visactor/vchart/src/typings/common';
3
- import { ITextGraphicAttribute } from '@visactor/vrender-core';
1
+ import type { IPlayerSpec } from '@visactor/vchart';
2
+ import type { Datum } from '@visactor/vchart/src/typings/common';
3
+ import type { ITextGraphicAttribute } from '@visactor/vchart';
4
4
  type IterationData = Datum[];
5
5
  type ISequenceScatterPixelData = {
6
6
  [Iteration: string]: IterationData;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charts/sequence-scatter-pixel/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import { IPlayerSpec } from '@visactor/vchart';\nimport { Datum } from '@visactor/vchart/src/typings/common';\nimport { ITextGraphicAttribute } from '@visactor/vrender-core';\n\ntype IterationData = Datum[];\ntype ISequenceScatterPixelData = {\n /**\n * key: 迭代信息\n * value: 每个迭代的数据\n */\n [Iteration: string]: IterationData;\n\n // TODO: 支持边的绘制\n // [Iteration: string]: {\n // /**\n // * 节点数据\n // */\n // nodes: IterationNodesData;\n // /**\n // * 边数据\n // */\n // edges: IterationEdgesData;\n // };\n};\n\nexport interface ISequenceScatterPixelSpec {\n /**\n * 图表类型\n */\n type: 'sequenceScatterPixel';\n /**\n * 数据\n */\n data: ISequenceScatterPixelData;\n /**\n * x轴字段\n */\n xField: string;\n /**\n * y轴字段\n */\n yField: string;\n /**\n * 播放器配置\n */\n player: Omit<IPlayerSpec, 'specs'>;\n /**\n * 文字标记(标记当前处于第几个迭代)\n */\n infoLabel: {\n visible: boolean;\n style: ITextGraphicAttribute;\n };\n /**\n * 背景数据\n */\n backgroundColors: {\n [Iteration: string]: any;\n };\n /**\n * 宽度\n */\n width: number;\n /**\n * 高度\n */\n height: number;\n}\n\nexport interface Point {\n x: number;\n y: number;\n label?: string;\n}\n"]}
1
+ {"version":3,"sources":["../src/charts/sequence-scatter-pixel/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IPlayerSpec } from '@visactor/vchart';\nimport type { Datum } from '@visactor/vchart/src/typings/common';\nimport type { ITextGraphicAttribute } from '@visactor/vchart';\n\ntype IterationData = Datum[];\ntype ISequenceScatterPixelData = {\n /**\n * key: 迭代信息\n * value: 每个迭代的数据\n */\n [Iteration: string]: IterationData;\n\n // TODO: 支持边的绘制\n // [Iteration: string]: {\n // /**\n // * 节点数据\n // */\n // nodes: IterationNodesData;\n // /**\n // * 边数据\n // */\n // edges: IterationEdgesData;\n // };\n};\n\nexport interface ISequenceScatterPixelSpec {\n /**\n * 图表类型\n */\n type: 'sequenceScatterPixel';\n /**\n * 数据\n */\n data: ISequenceScatterPixelData;\n /**\n * x轴字段\n */\n xField: string;\n /**\n * y轴字段\n */\n yField: string;\n /**\n * 播放器配置\n */\n player: Omit<IPlayerSpec, 'specs'>;\n /**\n * 文字标记(标记当前处于第几个迭代)\n */\n infoLabel: {\n visible: boolean;\n style: ITextGraphicAttribute;\n };\n /**\n * 背景数据\n */\n backgroundColors: {\n [Iteration: string]: any;\n };\n /**\n * 宽度\n */\n width: number;\n /**\n * 高度\n */\n height: number;\n}\n\nexport interface Point {\n x: number;\n y: number;\n label?: string;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { RotateBySphereAnimate } from "@visactor/vrender-animate";
1
+ import { RotateBySphereAnimate } from "@visactor/vchart";
2
2
 
3
3
  import { Factory } from "@visactor/vchart";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charts/word-cloud-3d/animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAiD,EAAwB,EAAE;IAC9G,OAAO;QACL,MAAM,EAAE,qBAAqB;QAC7B,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM;QAC9B,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC/C,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,MAAmC,EAAE,EAAE,CAAC,CAAC;QACjF,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC;KACrC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC","file":"animation.js","sourcesContent":["import { RotateBySphereAnimate } from '@visactor/vrender-animate';\nimport type { IWordcloud3dAnimationParams } from './interface';\nimport type { IAnimationTypeConfig } from '@visactor/vchart';\nimport { Factory } from '@visactor/vchart';\n\nexport const WordCloud3dAnimation = (params: IWordcloud3dAnimationParams | (() => any)): IAnimationTypeConfig => {\n return {\n custom: RotateBySphereAnimate,\n customParameters: () => params,\n easing: 'linear',\n loop: Infinity,\n duration: 6000\n };\n};\n\nexport const registerWordCloud3dAnimation = () => {\n Factory.registerAnimation('wordCloud3d', (params: IWordcloud3dAnimationParams) => ({\n appear: WordCloud3dAnimation(params)\n }));\n};\n"]}
1
+ {"version":3,"sources":["../src/charts/word-cloud-3d/animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAiD,EAAwB,EAAE;IAC9G,OAAO;QACL,MAAM,EAAE,qBAAqB;QAC7B,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM;QAC9B,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC/C,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,MAAmC,EAAE,EAAE,CAAC,CAAC;QACjF,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC;KACrC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC","file":"animation.js","sourcesContent":["import { RotateBySphereAnimate } from '@visactor/vchart';\nimport type { IWordcloud3dAnimationParams } from './interface';\nimport type { IAnimationTypeConfig } from '@visactor/vchart';\nimport { Factory } from '@visactor/vchart';\n\nexport const WordCloud3dAnimation = (params: IWordcloud3dAnimationParams | (() => any)): IAnimationTypeConfig => {\n return {\n custom: RotateBySphereAnimate,\n customParameters: () => params,\n easing: 'linear',\n loop: Infinity,\n duration: 6000\n };\n};\n\nexport const registerWordCloud3dAnimation = () => {\n Factory.registerAnimation('wordCloud3d', (params: IWordcloud3dAnimationParams) => ({\n appear: WordCloud3dAnimation(params)\n }));\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { AbstractComponent } from '@visactor/vrender-components';
1
+ import { AbstractComponent } from '@visactor/vchart';
2
2
  import type { BarLinkAttrs } from './type';
3
3
  export declare class BarLinkComponent extends AbstractComponent<Required<BarLinkAttrs>> {
4
4
  name: string;
@@ -1,11 +1,9 @@
1
- import { AbstractComponent, Segment } from "@visactor/vrender-components";
1
+ import { AbstractComponent, Segment, createArea, createText } from "@visactor/vchart";
2
2
 
3
- import { cloneDeep, isEmpty } from "@visactor/vutils";
3
+ import { cloneDeep, isEmpty } from "@visactor/vchart";
4
4
 
5
5
  import { Factory } from "@visactor/vchart";
6
6
 
7
- import { createArea, createText } from "@visactor/vrender-core";
8
-
9
7
  import { STACK_FIELD_END, STACK_FIELD_START } from "@visactor/vchart";
10
8
 
11
9
  import { BAR_LINK } from "./constant";
@@ -82,4 +80,4 @@ export class BarLinkComponent extends AbstractComponent {
82
80
  export const registerBarLink = () => {
83
81
  Factory.registerGraphicComponent(BAR_LINK, (attrs => new BarLinkComponent(attrs)));
84
82
  };
85
- //# sourceMappingURL=bar-link.js.map
83
+ //# sourceMappingURL=bar-link.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/bar-link/bar-link.ts"],"names":[],"mappings":"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","file":"bar-link.js","sourcesContent":["/**\n * @description 堆叠柱系列的连接线组件\n * @author zhangweixing\n */\nimport { AbstractComponent, Segment } from '@visactor/vrender-components';\nimport { cloneDeep, isEmpty } from '@visactor/vutils';\nimport { Factory } from '@visactor/vchart';\nimport { type IGraphic, type ILineGraphicAttribute, createArea, createText } from '@visactor/vrender-core';\nimport { STACK_FIELD_END, STACK_FIELD_START } from '@visactor/vchart';\nimport type { BarLinkAttrs } from './type';\nimport { BAR_LINK } from './constant';\n\nexport class BarLinkComponent extends AbstractComponent<Required<BarLinkAttrs>> {\n name = BAR_LINK;\n\n protected render() {\n const { data, linkStyle, areaStyle, styleMap, label, linkType = 'total' } = this.attribute as BarLinkAttrs;\n if (isEmpty(data)) {\n return;\n }\n this.removeAllChild();\n data.forEach((datum, index) => {\n const { linePoints, areaPoints, id = index, color, data: curData } = datum;\n\n if (areaPoints && styleMap?.[`area-${id}`]?.visible !== false) {\n // 先绘制面\n const area = createArea({\n points: areaPoints,\n fillOpacity: 0.3,\n fill: color,\n zIndex: 0,\n ...areaStyle,\n ...styleMap?.[`area-${id}`]\n });\n area.name = 'bar-link-area';\n area.id = `area-${id}`;\n this.add(area);\n }\n\n if (\n linePoints &&\n styleMap?.[`line-${id}`]?.visible !== false &&\n (linkStyle?.lineStyle as any)?.lineWidth !== 0 &&\n styleMap?.[`line-${id}`]?.lineWidth !== 0\n ) {\n // 再绘制点\n const { startSymbol = {}, endSymbol = {}, lineStyle } = linkStyle || {};\n\n const startSymbolAttrs = cloneDeep(startSymbol);\n const endSymbolAttrs = cloneDeep(endSymbol);\n if (styleMap?.[`line-${id}`] && styleMap[`line-${id}`].stroke) {\n (startSymbolAttrs as any).style = {\n ...(startSymbolAttrs as any).style,\n color: styleMap[`line-${id}`].stroke\n };\n (endSymbolAttrs as any).style = {\n ...(endSymbolAttrs as any).style,\n color: styleMap[`line-${id}`].stroke\n };\n }\n\n if (!(startSymbolAttrs as any).symbolType && !(startSymbolAttrs as any).originSymbolType) {\n (startSymbolAttrs as any).originSymbolType = 'solidArrow';\n }\n if (!(endSymbolAttrs as any).symbolType && !(endSymbolAttrs as any).originSymbolType) {\n (endSymbolAttrs as any).originSymbolType = 'solidArrow';\n }\n const line = new Segment({\n points: linePoints,\n startSymbol: {\n size: 8,\n ...startSymbolAttrs\n },\n endSymbol: {\n size: 8,\n ...endSymbolAttrs\n },\n lineStyle: {\n lineDash: [3, 3],\n lineWidth: 1,\n stroke: '#000',\n ...lineStyle,\n ...styleMap?.[`line-${id}`]\n } as ILineGraphicAttribute,\n pickable: true,\n childrenPickable: false,\n zIndex: 1\n });\n line.name = 'bar-link-line';\n line.id = `line-${id}`;\n this.add(line as unknown as IGraphic);\n }\n\n if (label?.visible && styleMap?.[`label-${id}`]?.visible !== false) {\n const { style, formatMethod } = label;\n\n const [startData, endData] = curData;\n\n let startValue = startData[STACK_FIELD_END];\n let endValue = endData[STACK_FIELD_END];\n if (linkType === 'value') {\n startValue = startData[STACK_FIELD_END] - startData[STACK_FIELD_START];\n endValue = endData[STACK_FIELD_END] - endData[STACK_FIELD_START];\n }\n\n const value = endValue - startValue;\n const percentage = ((endValue - startValue) / startValue) * 100;\n\n const text = createText({\n x: (linePoints[0].x + linePoints[1].x) * 0.5,\n y: (linePoints[0].y + linePoints[1].y) * 0.5,\n text: formatMethod ? (formatMethod(value, percentage, curData) as string) : `${value} ${percentage}`,\n fontSize: 14,\n fill: '#000',\n stroke: '#fff',\n lineWidth: 1,\n textAlign: 'center',\n textBaseline: 'middle',\n background: '#fff',\n zIndex: 2,\n ...style,\n ...styleMap?.[`label-${id}`]\n });\n text.name = 'bar-link-label';\n text.id = `label-${id}`;\n this.add(text);\n }\n });\n }\n}\n\nexport const registerBarLink = () => {\n Factory.registerGraphicComponent(\n BAR_LINK,\n (attrs: Required<BarLinkAttrs>) => new BarLinkComponent(attrs) as unknown as IGraphic\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/bar-link/bar-link.ts"],"names":[],"mappings":"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","file":"bar-link.js","sourcesContent":["/**\n * @description 堆叠柱系列的连接线组件\n * @author zhangweixing\n */\nimport {\n AbstractComponent,\n Segment,\n type IGraphic,\n type ILineGraphicAttribute,\n createArea,\n createText\n} from '@visactor/vchart';\nimport { cloneDeep, isEmpty } from '@visactor/vchart';\nimport { Factory } from '@visactor/vchart';\nimport { STACK_FIELD_END, STACK_FIELD_START } from '@visactor/vchart';\nimport type { BarLinkAttrs } from './type';\nimport { BAR_LINK } from './constant';\n\nexport class BarLinkComponent extends AbstractComponent<Required<BarLinkAttrs>> {\n name = BAR_LINK;\n\n protected render() {\n const { data, linkStyle, areaStyle, styleMap, label, linkType = 'total' } = this.attribute as BarLinkAttrs;\n if (isEmpty(data)) {\n return;\n }\n this.removeAllChild();\n data.forEach((datum, index) => {\n const { linePoints, areaPoints, id = index, color, data: curData } = datum;\n\n if (areaPoints && styleMap?.[`area-${id}`]?.visible !== false) {\n // 先绘制面\n const area = createArea({\n points: areaPoints,\n fillOpacity: 0.3,\n fill: color,\n zIndex: 0,\n ...areaStyle,\n ...styleMap?.[`area-${id}`]\n });\n area.name = 'bar-link-area';\n area.id = `area-${id}`;\n this.add(area);\n }\n\n if (\n linePoints &&\n styleMap?.[`line-${id}`]?.visible !== false &&\n (linkStyle?.lineStyle as any)?.lineWidth !== 0 &&\n styleMap?.[`line-${id}`]?.lineWidth !== 0\n ) {\n // 再绘制点\n const { startSymbol = {}, endSymbol = {}, lineStyle } = linkStyle || {};\n\n const startSymbolAttrs = cloneDeep(startSymbol);\n const endSymbolAttrs = cloneDeep(endSymbol);\n if (styleMap?.[`line-${id}`] && styleMap[`line-${id}`].stroke) {\n (startSymbolAttrs as any).style = {\n ...(startSymbolAttrs as any).style,\n color: styleMap[`line-${id}`].stroke\n };\n (endSymbolAttrs as any).style = {\n ...(endSymbolAttrs as any).style,\n color: styleMap[`line-${id}`].stroke\n };\n }\n\n if (!(startSymbolAttrs as any).symbolType && !(startSymbolAttrs as any).originSymbolType) {\n (startSymbolAttrs as any).originSymbolType = 'solidArrow';\n }\n if (!(endSymbolAttrs as any).symbolType && !(endSymbolAttrs as any).originSymbolType) {\n (endSymbolAttrs as any).originSymbolType = 'solidArrow';\n }\n const line = new Segment({\n points: linePoints,\n startSymbol: {\n size: 8,\n ...startSymbolAttrs\n },\n endSymbol: {\n size: 8,\n ...endSymbolAttrs\n },\n lineStyle: {\n lineDash: [3, 3],\n lineWidth: 1,\n stroke: '#000',\n ...lineStyle,\n ...styleMap?.[`line-${id}`]\n } as ILineGraphicAttribute,\n pickable: true,\n childrenPickable: false,\n zIndex: 1\n });\n line.name = 'bar-link-line';\n line.id = `line-${id}`;\n this.add(line as unknown as IGraphic);\n }\n\n if (label?.visible && styleMap?.[`label-${id}`]?.visible !== false) {\n const { style, formatMethod } = label;\n\n const [startData, endData] = curData;\n\n let startValue = startData[STACK_FIELD_END];\n let endValue = endData[STACK_FIELD_END];\n if (linkType === 'value') {\n startValue = startData[STACK_FIELD_END] - startData[STACK_FIELD_START];\n endValue = endData[STACK_FIELD_END] - endData[STACK_FIELD_START];\n }\n\n const value = endValue - startValue;\n const percentage = ((endValue - startValue) / startValue) * 100;\n\n const text = createText({\n x: (linePoints[0].x + linePoints[1].x) * 0.5,\n y: (linePoints[0].y + linePoints[1].y) * 0.5,\n text: formatMethod ? (formatMethod(value, percentage, curData) as string) : `${value} ${percentage}`,\n fontSize: 14,\n fill: '#000',\n stroke: '#fff',\n lineWidth: 1,\n textAlign: 'center',\n textBaseline: 'middle',\n background: '#fff',\n zIndex: 2,\n ...style,\n ...styleMap?.[`label-${id}`]\n });\n text.name = 'bar-link-label';\n text.id = `label-${id}`;\n this.add(text);\n }\n });\n }\n}\n\nexport const registerBarLink = () => {\n Factory.registerGraphicComponent(\n BAR_LINK,\n (attrs: Required<BarLinkAttrs>) => new BarLinkComponent(attrs) as unknown as IGraphic\n );\n};\n"]}
@@ -1,2 +1,2 @@
1
1
  export const BAR_LINK = "barLink";
2
- //# sourceMappingURL=constant.js.map
2
+ //# sourceMappingURL=constant.js.map
@@ -5,4 +5,4 @@ export * from "./type";
5
5
  export { getBarLinkConfig, appendBarLinkConfig } from "./util";
6
6
 
7
7
  export * from "./constant";
8
- //# sourceMappingURL=index.js.map
8
+ //# sourceMappingURL=index.js.map
@@ -1,10 +1,5 @@
1
1
  import type { IAreaGraphicAttribute, IGroupGraphicAttribute, ILineGraphicAttribute, ITextGraphicAttribute } from '@visactor/vrender-core';
2
- import type { SegmentAttributes } from '@visactor/vrender-components';
3
- import type { Dict, IPointLike } from '@visactor/vutils';
4
- export type Point = {
5
- x: number;
6
- y: number;
7
- };
2
+ import type { Dict, IPointLike, SegmentAttributes } from '@visactor/vchart';
8
3
  export type BarLinkDatum = {
9
4
  areaPoints: [IPointLike, IPointLike];
10
5
  linePoints: [IPointLike, IPointLike];
@@ -1,2 +1,2 @@
1
1
  export { };
2
- //# sourceMappingURL=type.js.map
2
+ //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/bar-link/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IAreaGraphicAttribute,\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport type { SegmentAttributes } from '@visactor/vrender-components';\nimport type { Dict, IPointLike } from '@visactor/vutils';\n\nexport type Point = {\n x: number;\n y: number;\n};\n\nexport type BarLinkDatum = {\n /**\n * 用于绘制的面积的坐标点\n */\n areaPoints: [IPointLike, IPointLike];\n /**\n * 用于绘制线的坐标点\n */\n linePoints: [IPointLike, IPointLike];\n\n /**\n * 唯一标识,如果不声明,则默认使用数据索引\n */\n id?: string;\n color?: string;\n /**\n * 点携带的图形数据\n */\n data: [Dict<any>, Dict<any>];\n};\n\nexport interface BarLinkAttrs extends IGroupGraphicAttribute {\n data: BarLinkDatum[];\n /**\n * 连接类型\n * 1. 'total' 累计值进行连接\n * 2. 'value' 本身值连接\n */\n linkType?: 'total' | 'value';\n /**\n * 是否填充\n */\n doFill?: boolean;\n linkStyle?: Pick<SegmentAttributes, 'startSymbol' | 'endSymbol' | 'lineStyle'>;\n areaStyle?: IAreaGraphicAttribute;\n /**\n * 用于配置各个线的样式,key 对应线的 id,主要用于连接线的编辑场景\n * 1. 删除:{ visible: false }\n * 2. 样式编辑:{ stroke: 'red' }\n */\n styleMap?: Record<string, ILineGraphicAttribute>;\n label?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n formatMethod?: (value: number, percent: number, data: [any, any]) => (string | number) | (string | number)[];\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/components/bar-link/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IAreaGraphicAttribute,\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport type { Dict, IPointLike, SegmentAttributes } from '@visactor/vchart';\nimport { Point } from '@visactor/vchart';\n\nexport type BarLinkDatum = {\n /**\n * 用于绘制的面积的坐标点\n */\n areaPoints: [IPointLike, IPointLike];\n /**\n * 用于绘制线的坐标点\n */\n linePoints: [IPointLike, IPointLike];\n\n /**\n * 唯一标识,如果不声明,则默认使用数据索引\n */\n id?: string;\n color?: string;\n /**\n * 点携带的图形数据\n */\n data: [Dict<any>, Dict<any>];\n};\n\nexport interface BarLinkAttrs extends IGroupGraphicAttribute {\n data: BarLinkDatum[];\n /**\n * 连接类型\n * 1. 'total' 累计值进行连接\n * 2. 'value' 本身值连接\n */\n linkType?: 'total' | 'value';\n /**\n * 是否填充\n */\n doFill?: boolean;\n linkStyle?: Pick<SegmentAttributes, 'startSymbol' | 'endSymbol' | 'lineStyle'>;\n areaStyle?: IAreaGraphicAttribute;\n /**\n * 用于配置各个线的样式,key 对应线的 id,主要用于连接线的编辑场景\n * 1. 删除:{ visible: false }\n * 2. 样式编辑:{ stroke: 'red' }\n */\n styleMap?: Record<string, ILineGraphicAttribute>;\n label?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n formatMethod?: (value: number, percent: number, data: [any, any]) => (string | number) | (string | number)[];\n };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { Dict } from '@visactor/vutils';
1
+ import type { Dict } from '@visactor/vchart';
2
2
  import type { BarLinkAttrs, BarLinkDatum } from './type';
3
3
  import type { IMarkGraphic, ISpec } from '@visactor/vchart';
4
4
  export declare function groupBarsByFields(elements: IMarkGraphic[], groupFields: string[]): Dict<IMarkGraphic[]>;
@@ -10,7 +10,7 @@ var __rest = this && this.__rest || function(s, e) {
10
10
 
11
11
  import { getDatumOfGraphic, STACK_FIELD_END } from "@visactor/vchart";
12
12
 
13
- import { array } from "@visactor/vutils";
13
+ import { array } from "@visactor/vchart";
14
14
 
15
15
  import { BAR_LINK } from "./constant";
16
16
 
@@ -174,4 +174,4 @@ export function appendBarLinkConfig(rawSpec, barLinkSpec) {
174
174
  rawSpec.customMark = array(rawSpec.customMark).filter((obj => obj.componentType !== BAR_LINK)),
175
175
  rawSpec.customMark.push(getBarLinkConfig(barLinkSpec));
176
176
  }
177
- //# sourceMappingURL=util.js.map
177
+ //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/bar-link/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { Dict, IPointLike } from '@visactor/vutils';\nimport type { BarLinkAttrs, BarLinkDatum } from './type';\nimport type { Datum, ICartesianSeries, IMarkGraphic, ISpec } from '@visactor/vchart';\nimport { getDatumOfGraphic, STACK_FIELD_END } from '@visactor/vchart';\nimport { array } from '@visactor/vutils';\nimport { BAR_LINK } from './constant';\n\nexport function groupBarsByFields(elements: IMarkGraphic[], groupFields: string[]) {\n const result: Dict<IMarkGraphic[]> = {};\n for (let i = 0; i < elements.length; i++) {\n const item = elements[i];\n const itemData = getDatumOfGraphic(item) as Datum;\n const groupKey = groupFields.map(field => itemData[field]).join('-');\n if (!result[groupKey]) {\n result[groupKey] = [];\n }\n result[groupKey].push(item);\n }\n return result;\n}\n\nexport function getLinkData(\n currentElement: IMarkGraphic,\n nextElement: IMarkGraphic,\n config: {\n isHorizontal: boolean;\n isXAxisInverse: boolean;\n isYAxisInverse: boolean;\n linkType: string;\n doFill: boolean;\n regionStartX: number;\n regionStartY: number;\n }\n): BarLinkDatum {\n const { isHorizontal, isXAxisInverse, isYAxisInverse, linkType, doFill, regionStartX, regionStartY } = config;\n\n const currentBarBounds = currentElement.AABBBounds;\n const nextBarBounds = nextElement.AABBBounds;\n\n let linePoints: [IPointLike, IPointLike];\n let areaPoints: [IPointLike, IPointLike];\n\n if (isHorizontal) {\n linePoints = [\n {\n x: (currentBarBounds.x1 + currentBarBounds.x2) / 2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: (nextBarBounds.x1 + nextBarBounds.x2) / 2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n if (isXAxisInverse) {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x1 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x1 + regionStartX,\n x1: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n x1: nextBarBounds.x2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n } else {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n x1: currentBarBounds.x1 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x2 + regionStartX,\n x1: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n }\n } else {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: (currentBarBounds.y1 + currentBarBounds.y2) / 2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: (nextBarBounds.y1 + nextBarBounds.y2) / 2 + regionStartY\n }\n ];\n\n if (isYAxisInverse) {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y2 + regionStartY,\n y1: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY,\n y1: nextBarBounds.y1 + regionStartY\n }\n ];\n }\n } else {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y1 + regionStartY\n }\n ];\n }\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY,\n y1: currentBarBounds.y2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y1 + regionStartY,\n y1: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n }\n }\n\n return {\n // points,\n areaPoints,\n linePoints,\n data: [getDatumOfGraphic(currentElement) as Datum, getDatumOfGraphic(nextElement) as Datum],\n color: currentElement.attribute.fill as string\n };\n}\n\nexport function getBarLinkConfig(\n style: Pick<BarLinkAttrs, 'areaStyle' | 'label' | 'linkStyle' | 'styleMap' | 'doFill' | 'linkType'> = {},\n extraStyle?: any\n) {\n const { linkType = 'total', doFill, ...rest } = style;\n return {\n type: 'component',\n componentType: BAR_LINK,\n zIndex: 500, // 需要处于 region 上层\n interactive: false,\n style: {\n data: (datum: any, context: any) => {\n const { vchart } = context;\n const regions = vchart.getChart().getAllRegions();\n const linkLineData: BarLinkDatum[] = [];\n regions.forEach((region: any) => {\n // 获取所有 bar 系列\n const barSeriesArr = region\n .getSeries()\n .filter((s: ICartesianSeries) => s.type === 'bar') as ICartesianSeries[];\n const { x: regionStartX, y: regionStartY } = region.getLayoutStartPoint();\n if (barSeriesArr.length) {\n const groupFields = barSeriesArr[0].getGroupFields();\n const allBarElements: IMarkGraphic[] = [];\n barSeriesArr.forEach(barSeries => {\n const barGraphicElements = barSeries.getMarkInName('bar')?.getGraphics();\n\n barGraphicElements.forEach(barElement => {\n allBarElements.push(barElement);\n });\n });\n // 按照 xField/yField 进行分组\n const groupData = groupBarsByFields(allBarElements, groupFields);\n\n // 对同组内的图形进行排序\n Object.values(groupData).forEach((groupedValues: IMarkGraphic[]) => {\n groupedValues.sort((prev: IMarkGraphic, curr: IMarkGraphic) => {\n return (\n (getDatumOfGraphic(prev) as Datum)[STACK_FIELD_END] -\n (getDatumOfGraphic(curr) as Datum)[STACK_FIELD_END]\n );\n });\n });\n\n const barSeries = barSeriesArr[0];\n const isHorizontal = barSeries.direction === 'horizontal';\n const isYAxisInverse = barSeries.getYAxisHelper().isInverse();\n const isXAxisInverse = barSeries.getXAxisHelper().isInverse();\n\n const groupValues: IMarkGraphic[][] = Object.values(groupData);\n\n // 根据每组图形:\n // 1. 水平,每组图形的 y1 进行由小到大排序,保证图形顺序\n // 2. 垂直,每组图形的 x1 进行由小到大排序,保证图形顺序\n if (groupValues.length) {\n if (isHorizontal) {\n const firstElementPosY = groupValues[0][0].AABBBounds.y1;\n const lastElementPosY = groupValues[groupValues.length - 1][0].AABBBounds.y1;\n if (firstElementPosY < lastElementPosY) {\n groupValues.reverse();\n }\n } else {\n const firstElementPosX = groupValues[0][0].AABBBounds.x1;\n const lastElementPosX = groupValues[groupValues.length - 1][0].AABBBounds.x1;\n if (firstElementPosX > lastElementPosX) {\n groupValues.reverse();\n }\n }\n }\n\n for (let index = 0; index < groupValues.length - 1; index++) {\n const currentValues: IMarkGraphic[] = groupValues[index];\n const nextValues: IMarkGraphic[] = groupValues[index + 1];\n\n currentValues.forEach((element, elementIndex) => {\n const nextElement = nextValues[elementIndex] ?? nextValues[nextValues.length - 1];\n\n const linkData = getLinkData(element, nextElement, {\n isHorizontal,\n isXAxisInverse,\n isYAxisInverse,\n doFill,\n linkType,\n regionStartX,\n regionStartY\n });\n\n linkLineData.push(linkData);\n });\n\n if (currentValues.length < nextValues.length) {\n // 如果当前组的个数小于下一个组的个数,用当前组的最后一个元素去链接下一组剩余的图形\n // 使用当前组的最后一个元素去链接下一组剩余的图形\n const lastElementOfCurrentElement = currentValues[currentValues.length - 1];\n for (let i = currentValues.length; i < nextValues.length; i++) {\n const nextElement = nextValues[i];\n\n const linkData = getLinkData(lastElementOfCurrentElement, nextElement, {\n isHorizontal,\n isXAxisInverse,\n isYAxisInverse,\n doFill,\n linkType,\n regionStartX,\n regionStartY\n });\n\n linkLineData.push(linkData);\n }\n }\n }\n }\n });\n\n return linkLineData;\n },\n linkType,\n ...rest,\n ...extraStyle\n }\n };\n}\n\nexport function appendBarLinkConfig(\n rawSpec: ISpec,\n barLinkSpec?: Pick<BarLinkAttrs, 'areaStyle' | 'label' | 'linkStyle' | 'styleMap' | 'doFill' | 'linkType'>\n) {\n // 判断 editorSpec 中是否有 barLink,有则添加 customMark\n (rawSpec as any).customMark = array((rawSpec as any).customMark).filter((obj: any) => obj.componentType !== BAR_LINK);\n (rawSpec as any).customMark.push(getBarLinkConfig(barLinkSpec));\n}\n"]}
1
+ {"version":3,"sources":["../src/components/bar-link/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { Dict, IPointLike } from '@visactor/vchart';\nimport type { BarLinkAttrs, BarLinkDatum } from './type';\nimport type { Datum, ICartesianSeries, IMarkGraphic, ISpec } from '@visactor/vchart';\nimport { getDatumOfGraphic, STACK_FIELD_END } from '@visactor/vchart';\nimport { array } from '@visactor/vchart';\nimport { BAR_LINK } from './constant';\n\nexport function groupBarsByFields(elements: IMarkGraphic[], groupFields: string[]) {\n const result: Dict<IMarkGraphic[]> = {};\n for (let i = 0; i < elements.length; i++) {\n const item = elements[i];\n const itemData = getDatumOfGraphic(item) as Datum;\n const groupKey = groupFields.map(field => itemData[field]).join('-');\n if (!result[groupKey]) {\n result[groupKey] = [];\n }\n result[groupKey].push(item);\n }\n return result;\n}\n\nexport function getLinkData(\n currentElement: IMarkGraphic,\n nextElement: IMarkGraphic,\n config: {\n isHorizontal: boolean;\n isXAxisInverse: boolean;\n isYAxisInverse: boolean;\n linkType: string;\n doFill: boolean;\n regionStartX: number;\n regionStartY: number;\n }\n): BarLinkDatum {\n const { isHorizontal, isXAxisInverse, isYAxisInverse, linkType, doFill, regionStartX, regionStartY } = config;\n\n const currentBarBounds = currentElement.AABBBounds;\n const nextBarBounds = nextElement.AABBBounds;\n\n let linePoints: [IPointLike, IPointLike];\n let areaPoints: [IPointLike, IPointLike];\n\n if (isHorizontal) {\n linePoints = [\n {\n x: (currentBarBounds.x1 + currentBarBounds.x2) / 2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: (nextBarBounds.x1 + nextBarBounds.x2) / 2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n if (isXAxisInverse) {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x1 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x1 + regionStartX,\n x1: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n x1: nextBarBounds.x2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n } else {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n x1: currentBarBounds.x1 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x2 + regionStartX,\n x1: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n }\n } else {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: (currentBarBounds.y1 + currentBarBounds.y2) / 2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: (nextBarBounds.y1 + nextBarBounds.y2) / 2 + regionStartY\n }\n ];\n\n if (isYAxisInverse) {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y2 + regionStartY,\n y1: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY,\n y1: nextBarBounds.y1 + regionStartY\n }\n ];\n }\n } else {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y1 + regionStartY\n }\n ];\n }\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY,\n y1: currentBarBounds.y2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y1 + regionStartY,\n y1: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n }\n }\n\n return {\n // points,\n areaPoints,\n linePoints,\n data: [getDatumOfGraphic(currentElement) as Datum, getDatumOfGraphic(nextElement) as Datum],\n color: currentElement.attribute.fill as string\n };\n}\n\nexport function getBarLinkConfig(\n style: Pick<BarLinkAttrs, 'areaStyle' | 'label' | 'linkStyle' | 'styleMap' | 'doFill' | 'linkType'> = {},\n extraStyle?: any\n) {\n const { linkType = 'total', doFill, ...rest } = style;\n return {\n type: 'component',\n componentType: BAR_LINK,\n zIndex: 500, // 需要处于 region 上层\n interactive: false,\n style: {\n data: (datum: any, context: any) => {\n const { vchart } = context;\n const regions = vchart.getChart().getAllRegions();\n const linkLineData: BarLinkDatum[] = [];\n regions.forEach((region: any) => {\n // 获取所有 bar 系列\n const barSeriesArr = region\n .getSeries()\n .filter((s: ICartesianSeries) => s.type === 'bar') as ICartesianSeries[];\n const { x: regionStartX, y: regionStartY } = region.getLayoutStartPoint();\n if (barSeriesArr.length) {\n const groupFields = barSeriesArr[0].getGroupFields();\n const allBarElements: IMarkGraphic[] = [];\n barSeriesArr.forEach(barSeries => {\n const barGraphicElements = barSeries.getMarkInName('bar')?.getGraphics();\n\n barGraphicElements.forEach(barElement => {\n allBarElements.push(barElement);\n });\n });\n // 按照 xField/yField 进行分组\n const groupData = groupBarsByFields(allBarElements, groupFields);\n\n // 对同组内的图形进行排序\n Object.values(groupData).forEach((groupedValues: IMarkGraphic[]) => {\n groupedValues.sort((prev: IMarkGraphic, curr: IMarkGraphic) => {\n return (\n (getDatumOfGraphic(prev) as Datum)[STACK_FIELD_END] -\n (getDatumOfGraphic(curr) as Datum)[STACK_FIELD_END]\n );\n });\n });\n\n const barSeries = barSeriesArr[0];\n const isHorizontal = barSeries.direction === 'horizontal';\n const isYAxisInverse = barSeries.getYAxisHelper().isInverse();\n const isXAxisInverse = barSeries.getXAxisHelper().isInverse();\n\n const groupValues: IMarkGraphic[][] = Object.values(groupData);\n\n // 根据每组图形:\n // 1. 水平,每组图形的 y1 进行由小到大排序,保证图形顺序\n // 2. 垂直,每组图形的 x1 进行由小到大排序,保证图形顺序\n if (groupValues.length) {\n if (isHorizontal) {\n const firstElementPosY = groupValues[0][0].AABBBounds.y1;\n const lastElementPosY = groupValues[groupValues.length - 1][0].AABBBounds.y1;\n if (firstElementPosY < lastElementPosY) {\n groupValues.reverse();\n }\n } else {\n const firstElementPosX = groupValues[0][0].AABBBounds.x1;\n const lastElementPosX = groupValues[groupValues.length - 1][0].AABBBounds.x1;\n if (firstElementPosX > lastElementPosX) {\n groupValues.reverse();\n }\n }\n }\n\n for (let index = 0; index < groupValues.length - 1; index++) {\n const currentValues: IMarkGraphic[] = groupValues[index];\n const nextValues: IMarkGraphic[] = groupValues[index + 1];\n\n currentValues.forEach((element, elementIndex) => {\n const nextElement = nextValues[elementIndex] ?? nextValues[nextValues.length - 1];\n\n const linkData = getLinkData(element, nextElement, {\n isHorizontal,\n isXAxisInverse,\n isYAxisInverse,\n doFill,\n linkType,\n regionStartX,\n regionStartY\n });\n\n linkLineData.push(linkData);\n });\n\n if (currentValues.length < nextValues.length) {\n // 如果当前组的个数小于下一个组的个数,用当前组的最后一个元素去链接下一组剩余的图形\n // 使用当前组的最后一个元素去链接下一组剩余的图形\n const lastElementOfCurrentElement = currentValues[currentValues.length - 1];\n for (let i = currentValues.length; i < nextValues.length; i++) {\n const nextElement = nextValues[i];\n\n const linkData = getLinkData(lastElementOfCurrentElement, nextElement, {\n isHorizontal,\n isXAxisInverse,\n isYAxisInverse,\n doFill,\n linkType,\n regionStartX,\n regionStartY\n });\n\n linkLineData.push(linkData);\n }\n }\n }\n }\n });\n\n return linkLineData;\n },\n linkType,\n ...rest,\n ...extraStyle\n }\n };\n}\n\nexport function appendBarLinkConfig(\n rawSpec: ISpec,\n barLinkSpec?: Pick<BarLinkAttrs, 'areaStyle' | 'label' | 'linkStyle' | 'styleMap' | 'doFill' | 'linkType'>\n) {\n // 判断 editorSpec 中是否有 barLink,有则添加 customMark\n (rawSpec as any).customMark = array((rawSpec as any).customMark).filter((obj: any) => obj.componentType !== BAR_LINK);\n (rawSpec as any).customMark.push(getBarLinkConfig(barLinkSpec));\n}\n"]}
@@ -10,16 +10,16 @@ export declare function getBarRegressionLineConfig(config: Omit<BarRegressionLin
10
10
  data: (datum: any, ctx: any) => RegressionLineData[];
11
11
  line: {
12
12
  visible?: boolean;
13
- style?: import("@visactor/vrender-core").ILineGraphicAttribute;
13
+ style?: import("@visactor/vchart").ILineGraphicAttribute;
14
14
  };
15
15
  confidenceInterval: {
16
16
  visible?: boolean;
17
- style?: import("@visactor/vrender-core").IAreaGraphicAttribute;
17
+ style?: import("@visactor/vchart").IAreaGraphicAttribute;
18
18
  };
19
19
  label: {
20
20
  visible?: boolean;
21
21
  text: string;
22
- style?: import("@visactor/vrender-core").ITextGraphicAttribute;
22
+ style?: import("@visactor/vchart").ITextGraphicAttribute;
23
23
  };
24
24
  };
25
25
  };