@visactor/vchart 1.7.5 → 1.8.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1976) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +38431 -38711
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/config.d.ts +5 -1
  6. package/cjs/animation/config.js +28 -4
  7. package/cjs/animation/config.js.map +1 -1
  8. package/cjs/animation/utils.d.ts +2 -2
  9. package/cjs/chart/area/area-transformer.d.ts +6 -0
  10. package/cjs/chart/area/area-transformer.js +32 -0
  11. package/cjs/chart/area/area-transformer.js.map +1 -0
  12. package/cjs/chart/area/area.d.ts +6 -4
  13. package/cjs/chart/area/area.js +6 -23
  14. package/cjs/chart/area/area.js.map +1 -1
  15. package/cjs/chart/area/index.d.ts +1 -0
  16. package/cjs/chart/area/index.js +2 -1
  17. package/cjs/chart/area/index.js.map +1 -1
  18. package/cjs/chart/bar/3d/bar-3d-transformer.d.ts +6 -0
  19. package/cjs/chart/bar/3d/bar-3d-transformer.js +21 -0
  20. package/cjs/chart/bar/3d/bar-3d-transformer.js.map +1 -0
  21. package/cjs/chart/bar/3d/bar-3d.d.ts +14 -0
  22. package/cjs/chart/bar/3d/bar-3d.js +24 -0
  23. package/cjs/chart/bar/3d/bar-3d.js.map +1 -0
  24. package/cjs/chart/bar/3d/index.d.ts +2 -0
  25. package/cjs/chart/bar/3d/index.js +21 -0
  26. package/cjs/chart/bar/3d/index.js.map +1 -0
  27. package/cjs/chart/bar/bar-transformer.d.ts +6 -0
  28. package/cjs/chart/bar/bar-transformer.js +28 -0
  29. package/cjs/chart/bar/bar-transformer.js.map +1 -0
  30. package/cjs/chart/bar/bar.d.ts +7 -4
  31. package/cjs/chart/bar/bar.js +6 -19
  32. package/cjs/chart/bar/bar.js.map +1 -1
  33. package/cjs/chart/bar/index.d.ts +2 -1
  34. package/cjs/chart/bar/index.js +2 -2
  35. package/cjs/chart/bar/index.js.map +1 -1
  36. package/cjs/chart/base/base-chart-transformer.d.ts +21 -0
  37. package/cjs/chart/base/base-chart-transformer.js +134 -0
  38. package/cjs/chart/base/base-chart-transformer.js.map +1 -0
  39. package/{esm/chart → cjs/chart/base}/base-chart.d.ts +29 -29
  40. package/cjs/chart/{base-chart.js → base/base-chart.js} +53 -102
  41. package/cjs/chart/base/base-chart.js.map +1 -0
  42. package/cjs/chart/base/index.d.ts +2 -0
  43. package/cjs/chart/base/index.js +21 -0
  44. package/cjs/chart/base/index.js.map +1 -0
  45. package/cjs/chart/box-plot/box-plot-transformer.d.ts +6 -0
  46. package/cjs/chart/box-plot/box-plot-transformer.js +36 -0
  47. package/cjs/chart/box-plot/box-plot-transformer.js.map +1 -0
  48. package/cjs/chart/box-plot/box-plot.d.ts +6 -4
  49. package/cjs/chart/box-plot/box-plot.js +6 -27
  50. package/cjs/chart/box-plot/box-plot.js.map +1 -1
  51. package/cjs/chart/box-plot/index.d.ts +1 -0
  52. package/cjs/chart/box-plot/index.js +2 -1
  53. package/cjs/chart/box-plot/index.js.map +1 -1
  54. package/cjs/chart/cartesian/cartesian-transformer.d.ts +8 -0
  55. package/cjs/chart/cartesian/{cartesian.js → cartesian-transformer.js} +11 -11
  56. package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -0
  57. package/cjs/chart/cartesian/index.d.ts +1 -1
  58. package/cjs/chart/cartesian/index.js +1 -1
  59. package/cjs/chart/cartesian/index.js.map +1 -1
  60. package/cjs/chart/chart-meta/data.js.map +1 -1
  61. package/cjs/chart/circle-packing/circle-packing-transformer.d.ts +7 -0
  62. package/cjs/chart/circle-packing/circle-packing-transformer.js +35 -0
  63. package/cjs/chart/circle-packing/circle-packing-transformer.js.map +1 -0
  64. package/cjs/chart/circle-packing/circle-packing.d.ts +6 -5
  65. package/cjs/chart/circle-packing/circle-packing.js +5 -25
  66. package/cjs/chart/circle-packing/circle-packing.js.map +1 -1
  67. package/cjs/chart/circle-packing/index.d.ts +1 -0
  68. package/cjs/chart/circle-packing/index.js +2 -1
  69. package/cjs/chart/circle-packing/index.js.map +1 -1
  70. package/cjs/chart/common/common-transformer.d.ts +7 -0
  71. package/cjs/chart/common/common-transformer.js +30 -0
  72. package/cjs/chart/common/common-transformer.js.map +1 -0
  73. package/cjs/chart/common/common.d.ts +7 -4
  74. package/cjs/chart/common/common.js +4 -20
  75. package/cjs/chart/common/common.js.map +1 -1
  76. package/cjs/chart/common/index.d.ts +1 -0
  77. package/cjs/chart/common/index.js +2 -1
  78. package/cjs/chart/common/index.js.map +1 -1
  79. package/cjs/chart/correlation/correlation-transformer.d.ts +6 -0
  80. package/cjs/chart/correlation/correlation-transformer.js +43 -0
  81. package/cjs/chart/correlation/correlation-transformer.js.map +1 -0
  82. package/cjs/chart/correlation/correlation.d.ts +6 -4
  83. package/cjs/chart/correlation/correlation.js +5 -33
  84. package/cjs/chart/correlation/correlation.js.map +1 -1
  85. package/cjs/chart/correlation/index.d.ts +1 -0
  86. package/cjs/chart/correlation/index.js +2 -1
  87. package/cjs/chart/correlation/index.js.map +1 -1
  88. package/cjs/chart/funnel/3d/funnel-3d.d.ts +14 -0
  89. package/cjs/chart/funnel/3d/funnel-3d.js +25 -0
  90. package/cjs/chart/funnel/3d/funnel-3d.js.map +1 -0
  91. package/cjs/chart/funnel/3d/index.d.ts +1 -0
  92. package/cjs/chart/funnel/3d/index.js +21 -0
  93. package/cjs/chart/funnel/3d/index.js.map +1 -0
  94. package/cjs/chart/funnel/funnel-transformer.d.ts +8 -0
  95. package/cjs/chart/funnel/{base.js → funnel-transformer.js} +6 -6
  96. package/cjs/chart/funnel/funnel-transformer.js.map +1 -0
  97. package/cjs/chart/funnel/funnel.d.ts +7 -2
  98. package/cjs/chart/funnel/funnel.js +6 -4
  99. package/cjs/chart/funnel/funnel.js.map +1 -1
  100. package/cjs/chart/funnel/index.d.ts +2 -1
  101. package/cjs/chart/funnel/index.js +2 -2
  102. package/cjs/chart/funnel/index.js.map +1 -1
  103. package/cjs/chart/funnel/interface.d.ts +1 -1
  104. package/cjs/chart/funnel/interface.js.map +1 -1
  105. package/cjs/chart/gauge/gauge-transformer.d.ts +9 -0
  106. package/cjs/chart/gauge/gauge-transformer.js +75 -0
  107. package/cjs/chart/gauge/gauge-transformer.js.map +1 -0
  108. package/cjs/chart/gauge/gauge.d.ts +8 -6
  109. package/cjs/chart/gauge/gauge.js +6 -66
  110. package/cjs/chart/gauge/gauge.js.map +1 -1
  111. package/cjs/chart/gauge/index.d.ts +1 -0
  112. package/cjs/chart/gauge/index.js +2 -1
  113. package/cjs/chart/gauge/index.js.map +1 -1
  114. package/cjs/chart/gauge/interface.d.ts +2 -2
  115. package/cjs/chart/gauge/interface.js.map +1 -1
  116. package/cjs/chart/heatmap/heatmap-transformer.d.ts +5 -0
  117. package/cjs/chart/heatmap/heatmap-transformer.js +20 -0
  118. package/cjs/chart/heatmap/heatmap-transformer.js.map +1 -0
  119. package/cjs/chart/heatmap/heatmap.d.ts +7 -3
  120. package/cjs/chart/heatmap/heatmap.js +6 -11
  121. package/cjs/chart/heatmap/heatmap.js.map +1 -1
  122. package/cjs/chart/heatmap/index.d.ts +1 -0
  123. package/cjs/chart/heatmap/index.js +2 -1
  124. package/cjs/chart/heatmap/index.js.map +1 -1
  125. package/cjs/chart/histogram/3d/histogram-3d.d.ts +14 -0
  126. package/cjs/chart/histogram/3d/histogram-3d.js +25 -0
  127. package/cjs/chart/histogram/3d/histogram-3d.js.map +1 -0
  128. package/cjs/chart/histogram/3d/index.d.ts +1 -0
  129. package/cjs/chart/histogram/3d/index.js +21 -0
  130. package/cjs/chart/histogram/3d/index.js.map +1 -0
  131. package/cjs/chart/histogram/base/base.d.ts +8 -0
  132. package/cjs/chart/histogram/base/base.js +17 -0
  133. package/cjs/chart/histogram/base/base.js.map +1 -0
  134. package/cjs/chart/histogram/base/histogram-base-transformer.d.ts +6 -0
  135. package/cjs/chart/histogram/{base.js → base/histogram-base-transformer.js} +5 -8
  136. package/cjs/chart/histogram/base/histogram-base-transformer.js.map +1 -0
  137. package/cjs/chart/histogram/base/index.d.ts +2 -0
  138. package/cjs/chart/histogram/base/index.js +21 -0
  139. package/cjs/chart/histogram/base/index.js.map +1 -0
  140. package/cjs/chart/histogram/histogram-transformer.d.ts +5 -0
  141. package/cjs/chart/histogram/histogram-transformer.js +16 -0
  142. package/cjs/chart/histogram/histogram-transformer.js.map +1 -0
  143. package/cjs/chart/histogram/histogram.d.ts +7 -3
  144. package/cjs/chart/histogram/histogram.js +5 -6
  145. package/cjs/chart/histogram/histogram.js.map +1 -1
  146. package/cjs/chart/histogram/index.d.ts +2 -1
  147. package/cjs/chart/histogram/index.js +2 -2
  148. package/cjs/chart/histogram/index.js.map +1 -1
  149. package/cjs/chart/index.d.ts +2 -4
  150. package/cjs/chart/index.js +4 -31
  151. package/cjs/chart/index.js.map +1 -1
  152. package/cjs/chart/interface/chart.d.ts +20 -7
  153. package/cjs/chart/interface/chart.js.map +1 -1
  154. package/cjs/chart/interface/common.d.ts +17 -1
  155. package/cjs/chart/interface/common.js.map +1 -1
  156. package/cjs/chart/line/index.d.ts +1 -0
  157. package/cjs/chart/line/index.js +2 -1
  158. package/cjs/chart/line/index.js.map +1 -1
  159. package/cjs/chart/line/interface.d.ts +1 -1
  160. package/cjs/chart/line/interface.js.map +1 -1
  161. package/cjs/chart/line/line-transformer.d.ts +6 -0
  162. package/cjs/chart/line/line-transformer.js +31 -0
  163. package/cjs/chart/line/line-transformer.js.map +1 -0
  164. package/cjs/chart/line/line.d.ts +6 -4
  165. package/cjs/chart/line/line.js +6 -22
  166. package/cjs/chart/line/line.js.map +1 -1
  167. package/cjs/chart/map/index.d.ts +1 -0
  168. package/cjs/chart/map/index.js +2 -1
  169. package/cjs/chart/map/index.js.map +1 -1
  170. package/cjs/chart/map/map-transformer.d.ts +8 -0
  171. package/cjs/chart/map/map-transformer.js +41 -0
  172. package/cjs/chart/map/map-transformer.js.map +1 -0
  173. package/cjs/chart/map/map.d.ts +6 -6
  174. package/cjs/chart/map/map.js +5 -31
  175. package/cjs/chart/map/map.js.map +1 -1
  176. package/cjs/chart/pie/3d/index.d.ts +1 -0
  177. package/cjs/{theme/builtin/common/legacy → chart/pie/3d}/index.js +1 -1
  178. package/cjs/chart/pie/3d/index.js.map +1 -0
  179. package/cjs/chart/pie/3d/pie-3d.d.ts +17 -0
  180. package/cjs/chart/pie/3d/pie-3d.js +34 -0
  181. package/cjs/chart/pie/3d/pie-3d.js.map +1 -0
  182. package/cjs/chart/pie/base/base.d.ts +8 -0
  183. package/cjs/chart/pie/base/base.js +16 -0
  184. package/cjs/chart/pie/base/base.js.map +1 -0
  185. package/cjs/chart/pie/base/index.d.ts +2 -0
  186. package/cjs/chart/pie/base/index.js +21 -0
  187. package/cjs/chart/pie/base/index.js.map +1 -0
  188. package/cjs/chart/pie/base/pie-transformer.d.ts +7 -0
  189. package/cjs/chart/pie/{base.js → base/pie-transformer.js} +5 -5
  190. package/cjs/chart/pie/base/pie-transformer.js.map +1 -0
  191. package/cjs/chart/pie/index.d.ts +2 -1
  192. package/cjs/chart/pie/index.js +2 -2
  193. package/cjs/chart/pie/index.js.map +1 -1
  194. package/cjs/chart/pie/pie.d.ts +7 -2
  195. package/cjs/chart/pie/pie.js +5 -3
  196. package/cjs/chart/pie/pie.js.map +1 -1
  197. package/cjs/chart/polar/index.d.ts +1 -1
  198. package/cjs/chart/polar/index.js +2 -2
  199. package/cjs/chart/polar/index.js.map +1 -1
  200. package/cjs/chart/polar/polar-transformer.d.ts +9 -0
  201. package/cjs/chart/polar/{polar.js → polar-transformer.js} +15 -15
  202. package/cjs/chart/polar/polar-transformer.js.map +1 -0
  203. package/cjs/chart/polar/progress-like/index.d.ts +1 -0
  204. package/cjs/chart/polar/progress-like/index.js +21 -0
  205. package/cjs/chart/polar/progress-like/index.js.map +1 -0
  206. package/cjs/chart/polar/progress-like/progress-like-transformer.d.ts +8 -0
  207. package/cjs/chart/polar/{progress-like.js → progress-like/progress-like-transformer.js} +5 -5
  208. package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -0
  209. package/cjs/chart/polar/rose-like/index.d.ts +1 -0
  210. package/cjs/chart/polar/rose-like/index.js +21 -0
  211. package/cjs/chart/polar/rose-like/index.js.map +1 -0
  212. package/cjs/chart/polar/rose-like/rose-like-transformer.d.ts +7 -0
  213. package/cjs/chart/polar/{rose-like.js → rose-like/rose-like-transformer.js} +5 -8
  214. package/cjs/chart/polar/rose-like/rose-like-transformer.js.map +1 -0
  215. package/cjs/chart/progress/circular/circular-progress-transformer.d.ts +7 -0
  216. package/cjs/chart/progress/circular/circular-progress-transformer.js +33 -0
  217. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -0
  218. package/cjs/chart/progress/circular/circular.d.ts +8 -4
  219. package/cjs/chart/progress/circular/circular.js +6 -24
  220. package/cjs/chart/progress/circular/circular.js.map +1 -1
  221. package/cjs/chart/progress/circular/index.d.ts +1 -0
  222. package/cjs/chart/progress/circular/index.js +2 -1
  223. package/cjs/chart/progress/circular/index.js.map +1 -1
  224. package/cjs/chart/progress/circular/interface.d.ts +1 -1
  225. package/cjs/chart/progress/circular/interface.js.map +1 -1
  226. package/cjs/chart/progress/linear/index.d.ts +1 -0
  227. package/cjs/chart/progress/linear/index.js +2 -1
  228. package/cjs/chart/progress/linear/index.js.map +1 -1
  229. package/cjs/chart/progress/linear/interface.d.ts +1 -1
  230. package/cjs/chart/progress/linear/interface.js.map +1 -1
  231. package/cjs/chart/progress/linear/linear-progress-transformer.d.ts +7 -0
  232. package/cjs/chart/progress/linear/linear-progress-transformer.js +68 -0
  233. package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -0
  234. package/cjs/chart/progress/linear/linear.d.ts +6 -5
  235. package/cjs/chart/progress/linear/linear.js +6 -59
  236. package/cjs/chart/progress/linear/linear.js.map +1 -1
  237. package/cjs/chart/radar/index.d.ts +1 -0
  238. package/cjs/chart/radar/index.js +2 -1
  239. package/cjs/chart/radar/index.js.map +1 -1
  240. package/cjs/chart/radar/radar-transformer.d.ts +6 -0
  241. package/cjs/chart/radar/radar-transformer.js +53 -0
  242. package/cjs/chart/radar/radar-transformer.js.map +1 -0
  243. package/cjs/chart/radar/radar.d.ts +8 -4
  244. package/cjs/chart/radar/radar.js +7 -44
  245. package/cjs/chart/radar/radar.js.map +1 -1
  246. package/cjs/chart/range-area/index.d.ts +1 -0
  247. package/cjs/chart/range-area/index.js +2 -1
  248. package/cjs/chart/range-area/index.js.map +1 -1
  249. package/cjs/chart/range-area/range-area-transformer.d.ts +6 -0
  250. package/cjs/chart/range-area/range-area-transformer.js +22 -0
  251. package/cjs/chart/range-area/range-area-transformer.js.map +1 -0
  252. package/cjs/chart/range-area/range-area.d.ts +7 -4
  253. package/cjs/chart/range-area/range-area.js +6 -13
  254. package/cjs/chart/range-area/range-area.js.map +1 -1
  255. package/cjs/chart/range-column/3d/index.d.ts +2 -0
  256. package/cjs/chart/range-column/3d/index.js +21 -0
  257. package/cjs/chart/range-column/3d/index.js.map +1 -0
  258. package/cjs/chart/range-column/3d/range-column-3d-transformer.d.ts +5 -0
  259. package/cjs/chart/range-column/3d/range-column-3d-transformer.js +21 -0
  260. package/cjs/chart/range-column/3d/range-column-3d-transformer.js.map +1 -0
  261. package/cjs/chart/range-column/3d/range-column-3d.d.ts +13 -0
  262. package/cjs/chart/range-column/3d/range-column-3d.js +25 -0
  263. package/cjs/chart/range-column/3d/range-column-3d.js.map +1 -0
  264. package/cjs/chart/range-column/index.d.ts +2 -1
  265. package/cjs/chart/range-column/index.js +2 -2
  266. package/cjs/chart/range-column/index.js.map +1 -1
  267. package/cjs/chart/range-column/range-column-transformer.d.ts +6 -0
  268. package/cjs/chart/range-column/range-column-transformer.js +25 -0
  269. package/cjs/chart/range-column/range-column-transformer.js.map +1 -0
  270. package/cjs/chart/range-column/range-column.d.ts +7 -4
  271. package/cjs/chart/range-column/range-column.js +6 -16
  272. package/cjs/chart/range-column/range-column.js.map +1 -1
  273. package/cjs/chart/rose/index.d.ts +1 -0
  274. package/cjs/chart/rose/index.js +2 -1
  275. package/cjs/chart/rose/index.js.map +1 -1
  276. package/cjs/chart/rose/rose-transformer.d.ts +6 -0
  277. package/cjs/chart/rose/rose-transformer.js +43 -0
  278. package/cjs/chart/rose/rose-transformer.js.map +1 -0
  279. package/cjs/chart/rose/rose.d.ts +8 -4
  280. package/cjs/chart/rose/rose.js +7 -34
  281. package/cjs/chart/rose/rose.js.map +1 -1
  282. package/cjs/chart/sankey/index.d.ts +1 -0
  283. package/cjs/chart/sankey/index.js +2 -1
  284. package/cjs/chart/sankey/index.js.map +1 -1
  285. package/cjs/chart/sankey/sankey-transformer.d.ts +6 -0
  286. package/cjs/chart/sankey/sankey-transformer.js +49 -0
  287. package/cjs/chart/sankey/sankey-transformer.js.map +1 -0
  288. package/cjs/chart/sankey/sankey.d.ts +6 -4
  289. package/cjs/chart/sankey/sankey.js +5 -39
  290. package/cjs/chart/sankey/sankey.js.map +1 -1
  291. package/cjs/chart/scatter/index.d.ts +1 -0
  292. package/cjs/chart/scatter/index.js +2 -1
  293. package/cjs/chart/scatter/index.js.map +1 -1
  294. package/cjs/chart/scatter/scatter-transformer.d.ts +5 -0
  295. package/cjs/chart/scatter/scatter-transformer.js +22 -0
  296. package/cjs/chart/scatter/scatter-transformer.js.map +1 -0
  297. package/cjs/chart/scatter/scatter.d.ts +6 -3
  298. package/cjs/chart/scatter/scatter.js +6 -13
  299. package/cjs/chart/scatter/scatter.js.map +1 -1
  300. package/cjs/chart/sequence/index.d.ts +1 -0
  301. package/cjs/chart/sequence/index.js +2 -1
  302. package/cjs/chart/sequence/index.js.map +1 -1
  303. package/cjs/chart/sequence/sequence-transformer.d.ts +7 -0
  304. package/cjs/chart/sequence/sequence-transformer.js +181 -0
  305. package/cjs/chart/sequence/sequence-transformer.js.map +1 -0
  306. package/cjs/chart/sequence/sequence.d.ts +9 -7
  307. package/cjs/chart/sequence/sequence.js +26 -185
  308. package/cjs/chart/sequence/sequence.js.map +1 -1
  309. package/cjs/chart/stack.js +1 -2
  310. package/cjs/chart/stack.js.map +1 -1
  311. package/cjs/chart/sunburst/index.d.ts +1 -0
  312. package/cjs/chart/sunburst/index.js +2 -1
  313. package/cjs/chart/sunburst/index.js.map +1 -1
  314. package/cjs/chart/sunburst/sunburst-transformer.d.ts +7 -0
  315. package/cjs/chart/sunburst/sunburst-transformer.js +45 -0
  316. package/cjs/chart/sunburst/sunburst-transformer.js.map +1 -0
  317. package/cjs/chart/sunburst/sunburst.d.ts +6 -5
  318. package/cjs/chart/sunburst/sunburst.js +5 -35
  319. package/cjs/chart/sunburst/sunburst.js.map +1 -1
  320. package/cjs/chart/treemap/index.d.ts +1 -0
  321. package/cjs/chart/treemap/index.js +2 -1
  322. package/cjs/chart/treemap/index.js.map +1 -1
  323. package/cjs/chart/treemap/treemap-transformer.d.ts +7 -0
  324. package/cjs/chart/treemap/treemap-transformer.js +45 -0
  325. package/cjs/chart/treemap/treemap-transformer.js.map +1 -0
  326. package/cjs/chart/treemap/treemap.d.ts +7 -4
  327. package/cjs/chart/treemap/treemap.js +5 -35
  328. package/cjs/chart/treemap/treemap.js.map +1 -1
  329. package/cjs/chart/util.d.ts +3 -3
  330. package/cjs/chart/util.js +9 -4
  331. package/cjs/chart/util.js.map +1 -1
  332. package/cjs/chart/waterfall/index.d.ts +1 -0
  333. package/cjs/chart/waterfall/index.js +2 -1
  334. package/cjs/chart/waterfall/index.js.map +1 -1
  335. package/cjs/chart/waterfall/waterfall-transformer.d.ts +7 -0
  336. package/cjs/chart/waterfall/waterfall-transformer.js +26 -0
  337. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -0
  338. package/cjs/chart/waterfall/waterfall.d.ts +6 -3
  339. package/cjs/chart/waterfall/waterfall.js +5 -16
  340. package/cjs/chart/waterfall/waterfall.js.map +1 -1
  341. package/cjs/chart/word-cloud/3d/index.d.ts +2 -0
  342. package/cjs/chart/word-cloud/3d/index.js +21 -0
  343. package/cjs/chart/word-cloud/3d/index.js.map +1 -0
  344. package/cjs/chart/word-cloud/3d/word-cloud-3d-transformer.d.ts +6 -0
  345. package/{esm/chart/word-cloud/word-cloud-3d.js → cjs/chart/word-cloud/3d/word-cloud-3d-transformer.js} +8 -21
  346. package/cjs/chart/word-cloud/3d/word-cloud-3d-transformer.js.map +1 -0
  347. package/cjs/chart/word-cloud/3d/word-cloud-3d.d.ts +15 -0
  348. package/cjs/chart/word-cloud/3d/word-cloud-3d.js +31 -0
  349. package/cjs/chart/word-cloud/3d/word-cloud-3d.js.map +1 -0
  350. package/cjs/chart/word-cloud/base/base.d.ts +9 -0
  351. package/cjs/chart/word-cloud/base/base.js +17 -0
  352. package/cjs/chart/word-cloud/base/base.js.map +1 -0
  353. package/cjs/chart/word-cloud/base/index.d.ts +2 -0
  354. package/cjs/chart/word-cloud/base/index.js +21 -0
  355. package/cjs/chart/word-cloud/base/index.js.map +1 -0
  356. package/cjs/chart/word-cloud/base/word-cloud-base-transformer.d.ts +5 -0
  357. package/cjs/chart/word-cloud/base/word-cloud-base-transformer.js +22 -0
  358. package/cjs/chart/word-cloud/base/word-cloud-base-transformer.js.map +1 -0
  359. package/cjs/chart/word-cloud/index.d.ts +2 -1
  360. package/cjs/chart/word-cloud/index.js +2 -2
  361. package/cjs/chart/word-cloud/index.js.map +1 -1
  362. package/cjs/chart/word-cloud/word-cloud-transformer.d.ts +5 -0
  363. package/cjs/chart/word-cloud/word-cloud-transformer.js +38 -0
  364. package/cjs/chart/word-cloud/word-cloud-transformer.js.map +1 -0
  365. package/cjs/chart/word-cloud/word-cloud.d.ts +6 -3
  366. package/cjs/chart/word-cloud/word-cloud.js +5 -28
  367. package/cjs/chart/word-cloud/word-cloud.js.map +1 -1
  368. package/cjs/compile/interface/compiler.d.ts +5 -0
  369. package/cjs/compile/interface/compiler.js.map +1 -1
  370. package/cjs/compile/mark/compilable-mark.d.ts +0 -5
  371. package/cjs/compile/mark/compilable-mark.js +0 -9
  372. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  373. package/cjs/compile/mark/interface.d.ts +1 -4
  374. package/cjs/compile/mark/interface.js.map +1 -1
  375. package/cjs/component/axis/base-axis.d.ts +27 -4
  376. package/cjs/component/axis/base-axis.js +36 -20
  377. package/cjs/component/axis/base-axis.js.map +1 -1
  378. package/cjs/component/axis/cartesian/axis.d.ts +6 -7
  379. package/cjs/component/axis/cartesian/axis.js +43 -31
  380. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  381. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -0
  382. package/cjs/component/axis/cartesian/band-axis.js +2 -2
  383. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  384. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  385. package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -0
  386. package/cjs/component/axis/cartesian/linear-axis.js +1 -1
  387. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  388. package/cjs/component/axis/cartesian/log-axis.d.ts +1 -0
  389. package/cjs/component/axis/cartesian/log-axis.js +1 -1
  390. package/cjs/component/axis/cartesian/log-axis.js.map +1 -1
  391. package/cjs/component/axis/cartesian/symlog-axis.d.ts +1 -0
  392. package/cjs/component/axis/cartesian/symlog-axis.js +1 -1
  393. package/cjs/component/axis/cartesian/symlog-axis.js.map +1 -1
  394. package/cjs/component/axis/cartesian/time-axis.d.ts +1 -0
  395. package/cjs/component/axis/cartesian/time-axis.js +2 -1
  396. package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
  397. package/cjs/component/axis/cartesian/util/common.d.ts +4 -0
  398. package/cjs/component/axis/cartesian/util/common.js +13 -3
  399. package/cjs/component/axis/cartesian/util/common.js.map +1 -1
  400. package/cjs/component/axis/interface/common.d.ts +1 -0
  401. package/cjs/component/axis/interface/common.js.map +1 -1
  402. package/cjs/component/axis/polar/axis.d.ts +7 -7
  403. package/cjs/component/axis/polar/axis.js +49 -36
  404. package/cjs/component/axis/polar/axis.js.map +1 -1
  405. package/cjs/component/axis/polar/band-axis.d.ts +1 -0
  406. package/cjs/component/axis/polar/band-axis.js +1 -1
  407. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  408. package/cjs/component/axis/polar/interface/common.d.ts +0 -1
  409. package/cjs/component/axis/polar/interface/common.js.map +1 -1
  410. package/cjs/component/axis/polar/linear-axis.d.ts +1 -0
  411. package/cjs/component/axis/polar/linear-axis.js +1 -1
  412. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  413. package/cjs/component/axis/polar/util/common.d.ts +5 -0
  414. package/cjs/component/axis/polar/util/common.js +17 -0
  415. package/cjs/component/axis/polar/util/common.js.map +1 -0
  416. package/cjs/component/axis/polar/util/index.d.ts +1 -0
  417. package/cjs/component/axis/polar/util/index.js +21 -0
  418. package/cjs/component/axis/polar/util/index.js.map +1 -0
  419. package/cjs/component/axis/util.d.ts +4 -3
  420. package/cjs/component/axis/util.js +16 -12
  421. package/cjs/component/axis/util.js.map +1 -1
  422. package/cjs/component/base/base-component-transformer.d.ts +10 -0
  423. package/cjs/component/base/base-component-transformer.js +30 -0
  424. package/cjs/component/base/base-component-transformer.js.map +1 -0
  425. package/cjs/component/base/base-component.d.ts +10 -6
  426. package/cjs/component/base/base-component.js +32 -22
  427. package/cjs/component/base/base-component.js.map +1 -1
  428. package/cjs/component/base/index.d.ts +1 -0
  429. package/cjs/component/base/index.js +1 -1
  430. package/cjs/component/base/index.js.map +1 -1
  431. package/cjs/component/base/util.d.ts +2 -2
  432. package/cjs/component/base/util.js +14 -16
  433. package/cjs/component/base/util.js.map +1 -1
  434. package/cjs/component/brush/brush.d.ts +9 -5
  435. package/cjs/component/brush/brush.js +55 -40
  436. package/cjs/component/brush/brush.js.map +1 -1
  437. package/cjs/component/crosshair/base.d.ts +5 -4
  438. package/cjs/component/crosshair/base.js +19 -13
  439. package/cjs/component/crosshair/base.js.map +1 -1
  440. package/cjs/component/crosshair/cartesian.d.ts +3 -2
  441. package/cjs/component/crosshair/cartesian.js +17 -11
  442. package/cjs/component/crosshair/cartesian.js.map +1 -1
  443. package/cjs/component/crosshair/polar.d.ts +3 -2
  444. package/cjs/component/crosshair/polar.js +17 -11
  445. package/cjs/component/crosshair/polar.js.map +1 -1
  446. package/cjs/component/crosshair/util.d.ts +3 -4
  447. package/cjs/component/crosshair/util.js +16 -17
  448. package/cjs/component/crosshair/util.js.map +1 -1
  449. package/cjs/component/custom-mark/custom-mark.d.ts +7 -5
  450. package/cjs/component/custom-mark/custom-mark.js +19 -13
  451. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  452. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -3
  453. package/cjs/component/data-zoom/data-filter-base-component.js +11 -10
  454. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  455. package/cjs/component/data-zoom/data-zoom/data-zoom-transformer.d.ts +9 -0
  456. package/cjs/component/data-zoom/data-zoom/data-zoom-transformer.js +37 -0
  457. package/cjs/component/data-zoom/data-zoom/data-zoom-transformer.js.map +1 -0
  458. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +12 -2
  459. package/cjs/component/data-zoom/data-zoom/data-zoom.js +38 -40
  460. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  461. package/cjs/component/data-zoom/data-zoom/index.d.ts +1 -0
  462. package/cjs/component/data-zoom/data-zoom/index.js +2 -1
  463. package/cjs/component/data-zoom/data-zoom/index.js.map +1 -1
  464. package/cjs/component/data-zoom/data-zoom/interface.d.ts +2 -2
  465. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  466. package/cjs/component/data-zoom/interface.d.ts +1 -1
  467. package/cjs/component/data-zoom/interface.js.map +1 -1
  468. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +5 -1
  469. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +20 -11
  470. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  471. package/cjs/component/data-zoom/util.d.ts +2 -2
  472. package/cjs/component/data-zoom/util.js +2 -2
  473. package/cjs/component/data-zoom/util.js.map +1 -1
  474. package/cjs/component/geo/geo-coordinate.d.ts +4 -7
  475. package/cjs/component/geo/geo-coordinate.js +26 -24
  476. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  477. package/cjs/component/index.d.ts +1 -1
  478. package/cjs/component/index.js +3 -3
  479. package/cjs/component/index.js.map +1 -1
  480. package/cjs/component/indicator/indicator.d.ts +5 -4
  481. package/cjs/component/indicator/indicator.js +19 -7
  482. package/cjs/component/indicator/indicator.js.map +1 -1
  483. package/cjs/component/interface/common.d.ts +6 -4
  484. package/cjs/component/interface/common.js.map +1 -1
  485. package/cjs/component/interface/type.d.ts +8 -0
  486. package/cjs/component/interface/type.js +11 -3
  487. package/cjs/component/interface/type.js.map +1 -1
  488. package/cjs/component/label/base-label.d.ts +2 -2
  489. package/cjs/component/label/base-label.js +3 -3
  490. package/cjs/component/label/base-label.js.map +1 -1
  491. package/cjs/component/label/index.d.ts +2 -0
  492. package/cjs/component/label/index.js +2 -1
  493. package/cjs/component/label/index.js.map +1 -1
  494. package/cjs/component/label/interface.d.ts +2 -2
  495. package/cjs/component/label/interface.js.map +1 -1
  496. package/cjs/component/label/label-transformer.d.ts +8 -0
  497. package/cjs/component/label/label-transformer.js +19 -0
  498. package/cjs/component/label/label-transformer.js.map +1 -0
  499. package/cjs/component/label/label.d.ts +13 -5
  500. package/cjs/component/label/label.js +36 -28
  501. package/cjs/component/label/label.js.map +1 -1
  502. package/cjs/component/label/{totalLabel.d.ts → total-label.d.ts} +7 -6
  503. package/cjs/component/label/{totalLabel.js → total-label.js} +33 -26
  504. package/cjs/component/label/total-label.js.map +1 -0
  505. package/cjs/component/label/util.d.ts +1 -0
  506. package/cjs/component/label/util.js +2 -1
  507. package/cjs/component/label/util.js.map +1 -1
  508. package/cjs/component/legend/base-legend.d.ts +3 -1
  509. package/cjs/component/legend/base-legend.js +7 -9
  510. package/cjs/component/legend/base-legend.js.map +1 -1
  511. package/cjs/component/legend/continuous/legend.d.ts +4 -6
  512. package/cjs/component/legend/continuous/legend.js +15 -12
  513. package/cjs/component/legend/continuous/legend.js.map +1 -1
  514. package/cjs/component/legend/discrete/legend.d.ts +4 -7
  515. package/cjs/component/legend/discrete/legend.js +17 -12
  516. package/cjs/component/legend/discrete/legend.js.map +1 -1
  517. package/cjs/component/legend/discrete/util.js +1 -1
  518. package/cjs/component/legend/discrete/util.js.map +1 -1
  519. package/cjs/component/legend/util.d.ts +1 -1
  520. package/cjs/component/map-label/component.d.ts +5 -2
  521. package/cjs/component/map-label/component.js +10 -5
  522. package/cjs/component/map-label/component.js.map +1 -1
  523. package/cjs/component/marker/mark-area/mark-area.d.ts +6 -4
  524. package/cjs/component/marker/mark-area/mark-area.js +18 -10
  525. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  526. package/cjs/component/marker/mark-line/mark-line.d.ts +6 -4
  527. package/cjs/component/marker/mark-line/mark-line.js +18 -10
  528. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  529. package/cjs/component/marker/mark-point/mark-point.d.ts +6 -4
  530. package/cjs/component/marker/mark-point/mark-point.js +18 -10
  531. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  532. package/cjs/component/player/player.d.ts +4 -4
  533. package/cjs/component/player/player.js +9 -4
  534. package/cjs/component/player/player.js.map +1 -1
  535. package/cjs/component/title/title.d.ts +9 -6
  536. package/cjs/component/title/title.js +21 -15
  537. package/cjs/component/title/title.js.map +1 -1
  538. package/cjs/component/tooltip/handler/base.js +10 -9
  539. package/cjs/component/tooltip/handler/base.js.map +1 -1
  540. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.js +7 -2
  541. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.js.map +1 -1
  542. package/cjs/component/tooltip/index.d.ts +1 -0
  543. package/cjs/component/tooltip/index.js +2 -1
  544. package/cjs/component/tooltip/index.js.map +1 -1
  545. package/cjs/component/tooltip/tooltip-transformer.d.ts +8 -0
  546. package/cjs/component/tooltip/tooltip-transformer.js +23 -0
  547. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -0
  548. package/cjs/component/tooltip/tooltip.d.ts +10 -8
  549. package/cjs/component/tooltip/tooltip.js +23 -21
  550. package/cjs/component/tooltip/tooltip.js.map +1 -1
  551. package/cjs/component/util.d.ts +2 -2
  552. package/cjs/component/util.js +2 -2
  553. package/cjs/component/util.js.map +1 -1
  554. package/cjs/constant/event.d.ts +1 -0
  555. package/cjs/constant/event.js +7 -6
  556. package/cjs/constant/event.js.map +1 -1
  557. package/cjs/constant/polar.d.ts +0 -10
  558. package/cjs/constant/polar.js +2 -7
  559. package/cjs/constant/polar.js.map +1 -1
  560. package/cjs/constant/scatter.js +2 -1
  561. package/cjs/constant/scroll-bar.js +1 -2
  562. package/cjs/core/factory.d.ts +12 -3
  563. package/cjs/core/factory.js +28 -1
  564. package/cjs/core/factory.js.map +1 -1
  565. package/cjs/core/index.d.ts +2 -1
  566. package/cjs/core/index.js +2 -2
  567. package/cjs/core/index.js.map +1 -1
  568. package/cjs/core/interface.d.ts +17 -11
  569. package/cjs/core/interface.js.map +1 -1
  570. package/cjs/core/vchart.d.ts +30 -7
  571. package/cjs/core/vchart.js +200 -133
  572. package/cjs/core/vchart.js.map +1 -1
  573. package/cjs/event/bubble.js +2 -1
  574. package/cjs/event/event-dispatcher.js +1 -2
  575. package/cjs/index-lark.js +2 -2
  576. package/cjs/index-lark.js.map +1 -1
  577. package/cjs/index-wx.js +2 -2
  578. package/cjs/index-wx.js.map +1 -1
  579. package/cjs/interaction/config.js +1 -1
  580. package/cjs/interaction/dimension-trigger.js +1 -1
  581. package/cjs/interaction/interaction.js +1 -1
  582. package/cjs/interaction/zoom/zoomable.js +17 -8
  583. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  584. package/cjs/layout/base-layout.js +1 -1
  585. package/cjs/layout/index.js +1 -1
  586. package/cjs/layout/interface.js +1 -1
  587. package/cjs/layout/layout-item.js +1 -1
  588. package/cjs/mark/arc-3d.d.ts +2 -0
  589. package/cjs/mark/arc-3d.js +10 -3
  590. package/cjs/mark/arc-3d.js.map +1 -1
  591. package/cjs/mark/arc.d.ts +1 -0
  592. package/cjs/mark/arc.js +9 -2
  593. package/cjs/mark/arc.js.map +1 -1
  594. package/cjs/mark/area.d.ts +1 -0
  595. package/cjs/mark/area.js +9 -2
  596. package/cjs/mark/area.js.map +1 -1
  597. package/cjs/mark/box-plot.d.ts +1 -0
  598. package/cjs/mark/box-plot.js +10 -5
  599. package/cjs/mark/box-plot.js.map +1 -1
  600. package/cjs/mark/cell.d.ts +1 -0
  601. package/cjs/mark/cell.js +9 -2
  602. package/cjs/mark/cell.js.map +1 -1
  603. package/cjs/mark/component.d.ts +1 -0
  604. package/cjs/mark/component.js +8 -2
  605. package/cjs/mark/component.js.map +1 -1
  606. package/cjs/mark/group.d.ts +2 -1
  607. package/cjs/mark/group.js +8 -2
  608. package/cjs/mark/group.js.map +1 -1
  609. package/cjs/mark/image.d.ts +1 -0
  610. package/cjs/mark/image.js +8 -2
  611. package/cjs/mark/image.js.map +1 -1
  612. package/cjs/mark/label.d.ts +1 -0
  613. package/cjs/mark/label.js +8 -2
  614. package/cjs/mark/label.js.map +1 -1
  615. package/cjs/mark/line.d.ts +1 -0
  616. package/cjs/mark/line.js +9 -2
  617. package/cjs/mark/line.js.map +1 -1
  618. package/cjs/mark/link-path.d.ts +1 -0
  619. package/cjs/mark/link-path.js +8 -3
  620. package/cjs/mark/link-path.js.map +1 -1
  621. package/cjs/mark/path.d.ts +1 -0
  622. package/cjs/mark/path.js +8 -2
  623. package/cjs/mark/path.js.map +1 -1
  624. package/cjs/mark/polygon/polygon.d.ts +1 -0
  625. package/cjs/mark/polygon/polygon.js +9 -2
  626. package/cjs/mark/polygon/polygon.js.map +1 -1
  627. package/cjs/mark/polygon/pyramid-3d.d.ts +1 -0
  628. package/cjs/mark/polygon/pyramid-3d.js +9 -2
  629. package/cjs/mark/polygon/pyramid-3d.js.map +1 -1
  630. package/cjs/mark/progress-arc.d.ts +1 -0
  631. package/cjs/mark/progress-arc.js +9 -2
  632. package/cjs/mark/progress-arc.js.map +1 -1
  633. package/cjs/mark/rect-3d.d.ts +1 -0
  634. package/cjs/mark/rect-3d.js +9 -2
  635. package/cjs/mark/rect-3d.js.map +1 -1
  636. package/cjs/mark/rect.d.ts +1 -0
  637. package/cjs/mark/rect.js +9 -2
  638. package/cjs/mark/rect.js.map +1 -1
  639. package/cjs/mark/ripple.d.ts +1 -0
  640. package/cjs/mark/ripple.js +8 -3
  641. package/cjs/mark/ripple.js.map +1 -1
  642. package/cjs/mark/rule.d.ts +1 -0
  643. package/cjs/mark/rule.js +8 -2
  644. package/cjs/mark/rule.js.map +1 -1
  645. package/cjs/mark/symbol.d.ts +1 -0
  646. package/cjs/mark/symbol.js +8 -2
  647. package/cjs/mark/symbol.js.map +1 -1
  648. package/cjs/mark/text.d.ts +1 -0
  649. package/cjs/mark/text.js +8 -2
  650. package/cjs/mark/text.js.map +1 -1
  651. package/cjs/model/base-model-transformer.d.ts +24 -0
  652. package/cjs/model/base-model-transformer.js +46 -0
  653. package/cjs/model/base-model-transformer.js.map +1 -0
  654. package/cjs/model/base-model.d.ts +9 -14
  655. package/cjs/model/base-model.js +24 -38
  656. package/cjs/model/base-model.js.map +1 -1
  657. package/cjs/model/index.d.ts +3 -0
  658. package/cjs/model/index.js +22 -0
  659. package/cjs/model/index.js.map +1 -0
  660. package/cjs/model/interface.d.ts +31 -4
  661. package/cjs/model/interface.js.map +1 -1
  662. package/cjs/model/layout-model.js.map +1 -1
  663. package/cjs/plugin/base/base-plugin-service.d.ts +13 -0
  664. package/cjs/plugin/base/base-plugin-service.js +48 -0
  665. package/cjs/plugin/base/base-plugin-service.js.map +1 -0
  666. package/cjs/plugin/base/base-plugin.d.ts +9 -0
  667. package/cjs/plugin/base/base-plugin.js +19 -0
  668. package/cjs/plugin/base/base-plugin.js.map +1 -0
  669. package/cjs/plugin/base/interface.d.ts +22 -0
  670. package/cjs/plugin/base/interface.js +6 -0
  671. package/cjs/plugin/base/interface.js.map +1 -0
  672. package/cjs/plugin/chart/index.d.ts +2 -0
  673. package/cjs/plugin/chart/index.js +21 -0
  674. package/cjs/plugin/chart/index.js.map +1 -0
  675. package/cjs/plugin/chart/interface.d.ts +22 -2
  676. package/cjs/plugin/chart/interface.js.map +1 -1
  677. package/cjs/plugin/chart/media-query/index.d.ts +2 -0
  678. package/cjs/plugin/chart/media-query/index.js +21 -0
  679. package/cjs/plugin/chart/media-query/index.js.map +1 -0
  680. package/cjs/plugin/chart/media-query/interface/common.d.ts +28 -0
  681. package/cjs/plugin/chart/media-query/interface/common.js +6 -0
  682. package/cjs/plugin/chart/media-query/interface/common.js.map +1 -0
  683. package/cjs/plugin/chart/media-query/interface/index.d.ts +2 -0
  684. package/cjs/plugin/chart/media-query/interface/index.js +21 -0
  685. package/cjs/plugin/chart/media-query/interface/index.js.map +1 -0
  686. package/cjs/plugin/chart/media-query/interface/spec.d.ts +25 -0
  687. package/cjs/plugin/chart/media-query/interface/spec.js +6 -0
  688. package/cjs/plugin/chart/media-query/interface/spec.js.map +1 -0
  689. package/cjs/plugin/chart/media-query/media-query.d.ts +28 -0
  690. package/cjs/plugin/chart/media-query/media-query.js +119 -0
  691. package/cjs/plugin/chart/media-query/media-query.js.map +1 -0
  692. package/cjs/plugin/chart/media-query/util/action.d.ts +3 -0
  693. package/cjs/plugin/chart/media-query/util/action.js +34 -0
  694. package/cjs/plugin/chart/media-query/util/action.js.map +1 -0
  695. package/cjs/plugin/chart/media-query/util/filter.d.ts +4 -0
  696. package/cjs/plugin/chart/media-query/util/filter.js +84 -0
  697. package/cjs/plugin/chart/media-query/util/filter.js.map +1 -0
  698. package/cjs/plugin/chart/media-query/util/index.d.ts +2 -0
  699. package/cjs/plugin/chart/media-query/util/index.js +21 -0
  700. package/cjs/plugin/chart/media-query/util/index.js.map +1 -0
  701. package/cjs/plugin/chart/media-query/util/query.d.ts +3 -0
  702. package/cjs/plugin/chart/media-query/util/query.js +32 -0
  703. package/cjs/plugin/chart/media-query/util/query.js.map +1 -0
  704. package/cjs/plugin/chart/plugin-service.d.ts +12 -0
  705. package/cjs/plugin/chart/plugin-service.js +36 -0
  706. package/cjs/plugin/chart/plugin-service.js.map +1 -0
  707. package/cjs/plugin/chart/register.d.ts +2 -0
  708. package/cjs/plugin/chart/register.js +12 -0
  709. package/cjs/plugin/chart/register.js.map +1 -0
  710. package/cjs/plugin/components/axis-sync-plugin/axis-sync.d.ts +5 -3
  711. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js +5 -4
  712. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -1
  713. package/cjs/plugin/components/interface.d.ts +15 -25
  714. package/cjs/plugin/components/interface.js.map +1 -1
  715. package/cjs/plugin/components/plugin-service.d.ts +2 -10
  716. package/cjs/plugin/components/plugin-service.js +3 -35
  717. package/cjs/plugin/components/plugin-service.js.map +1 -1
  718. package/cjs/plugin/index.d.ts +1 -0
  719. package/cjs/plugin/index.js +21 -0
  720. package/cjs/plugin/index.js.map +1 -0
  721. package/cjs/region/index.d.ts +3 -0
  722. package/cjs/region/index.js +22 -0
  723. package/cjs/region/index.js.map +1 -0
  724. package/cjs/region/interface.d.ts +10 -2
  725. package/cjs/region/interface.js.map +1 -1
  726. package/cjs/region/region-transformer.d.ts +8 -0
  727. package/cjs/region/region-transformer.js +19 -0
  728. package/cjs/region/region-transformer.js.map +1 -0
  729. package/cjs/region/region.d.ts +7 -4
  730. package/cjs/region/region.js +11 -14
  731. package/cjs/region/region.js.map +1 -1
  732. package/cjs/series/area/area-transformer.d.ts +5 -0
  733. package/cjs/series/area/area-transformer.js +18 -0
  734. package/cjs/series/area/area-transformer.js.map +1 -0
  735. package/cjs/series/area/area.d.ts +5 -3
  736. package/cjs/series/area/area.js +10 -12
  737. package/cjs/series/area/area.js.map +1 -1
  738. package/cjs/series/bar/bar-3d.js +2 -2
  739. package/cjs/series/bar/bar-3d.js.map +1 -1
  740. package/cjs/series/bar/bar-transformer.d.ts +5 -0
  741. package/cjs/series/bar/bar-transformer.js +16 -0
  742. package/cjs/series/bar/bar-transformer.js.map +1 -0
  743. package/cjs/series/bar/bar.d.ts +5 -3
  744. package/cjs/series/bar/bar.js +7 -6
  745. package/cjs/series/bar/bar.js.map +1 -1
  746. package/cjs/series/base/base-series-transformer.d.ts +18 -0
  747. package/cjs/series/base/base-series-transformer.js +57 -0
  748. package/cjs/series/base/base-series-transformer.js.map +1 -0
  749. package/cjs/series/base/base-series.d.ts +7 -8
  750. package/cjs/series/base/base-series.js +27 -39
  751. package/cjs/series/base/base-series.js.map +1 -1
  752. package/cjs/series/base/index.d.ts +2 -0
  753. package/cjs/series/base/index.js +21 -0
  754. package/cjs/series/base/index.js.map +1 -0
  755. package/cjs/series/box-plot/box-plot.d.ts +2 -3
  756. package/cjs/series/box-plot/box-plot.js +2 -3
  757. package/cjs/series/box-plot/box-plot.js.map +1 -1
  758. package/cjs/series/box-plot/interface.d.ts +1 -2
  759. package/cjs/series/box-plot/interface.js.map +1 -1
  760. package/cjs/series/cartesian/cartesian.d.ts +1 -1
  761. package/cjs/series/cartesian/cartesian.js +2 -2
  762. package/cjs/series/cartesian/cartesian.js.map +1 -1
  763. package/cjs/series/circle-packing/circle-packing.js +2 -2
  764. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  765. package/cjs/series/circle-packing/interface.d.ts +1 -2
  766. package/cjs/series/circle-packing/interface.js.map +1 -1
  767. package/cjs/series/correlation/correlation-transformer.d.ts +5 -0
  768. package/cjs/series/correlation/correlation-transformer.js +16 -0
  769. package/cjs/series/correlation/correlation-transformer.js.map +1 -0
  770. package/cjs/series/correlation/correlation.d.ts +5 -4
  771. package/cjs/series/correlation/correlation.js +6 -8
  772. package/cjs/series/correlation/correlation.js.map +1 -1
  773. package/cjs/series/dot/dot.d.ts +2 -3
  774. package/cjs/series/dot/dot.js +2 -3
  775. package/cjs/series/dot/dot.js.map +1 -1
  776. package/cjs/series/funnel/3d/funnel-3d-transformer.d.ts +6 -0
  777. package/cjs/series/funnel/3d/funnel-3d-transformer.js +16 -0
  778. package/cjs/series/funnel/3d/funnel-3d-transformer.js.map +1 -0
  779. package/cjs/series/funnel/{funnel-3d.d.ts → 3d/funnel-3d.d.ts} +9 -9
  780. package/cjs/series/funnel/{funnel-3d.js → 3d/funnel-3d.js} +4 -6
  781. package/cjs/series/funnel/3d/funnel-3d.js.map +1 -0
  782. package/cjs/series/funnel/3d/index.d.ts +2 -0
  783. package/cjs/series/funnel/3d/index.js +21 -0
  784. package/cjs/series/funnel/3d/index.js.map +1 -0
  785. package/cjs/series/funnel/funnel-transformer.d.ts +5 -0
  786. package/cjs/series/funnel/funnel-transformer.js +16 -0
  787. package/cjs/series/funnel/funnel-transformer.js.map +1 -0
  788. package/cjs/series/funnel/funnel.d.ts +5 -3
  789. package/cjs/series/funnel/funnel.js +6 -9
  790. package/cjs/series/funnel/funnel.js.map +1 -1
  791. package/cjs/series/gauge/gauge-pointer.d.ts +2 -3
  792. package/cjs/series/gauge/gauge-pointer.js +2 -3
  793. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  794. package/cjs/series/gauge/gauge-transformer.d.ts +5 -0
  795. package/cjs/series/gauge/gauge-transformer.js +16 -0
  796. package/cjs/series/gauge/gauge-transformer.js.map +1 -0
  797. package/cjs/series/gauge/gauge.d.ts +4 -3
  798. package/cjs/series/gauge/gauge.js +8 -9
  799. package/cjs/series/gauge/gauge.js.map +1 -1
  800. package/cjs/series/geo/interface.d.ts +1 -1
  801. package/cjs/series/geo/interface.js.map +1 -1
  802. package/cjs/series/heatmap/heatmap-transformer.d.ts +5 -0
  803. package/cjs/series/heatmap/heatmap-transformer.js +16 -0
  804. package/cjs/series/heatmap/heatmap-transformer.js.map +1 -0
  805. package/cjs/series/heatmap/heatmap.d.ts +5 -4
  806. package/cjs/series/heatmap/heatmap.js +5 -7
  807. package/cjs/series/heatmap/heatmap.js.map +1 -1
  808. package/cjs/series/index.d.ts +3 -3
  809. package/cjs/series/index.js +3 -3
  810. package/cjs/series/index.js.map +1 -1
  811. package/cjs/series/interface/common.d.ts +11 -6
  812. package/cjs/series/interface/common.js.map +1 -1
  813. package/cjs/series/interface/series.d.ts +2 -3
  814. package/cjs/series/interface/series.js.map +1 -1
  815. package/cjs/series/line/line.d.ts +5 -3
  816. package/cjs/series/line/line.js +6 -5
  817. package/cjs/series/line/line.js.map +1 -1
  818. package/cjs/series/link/link.d.ts +2 -3
  819. package/cjs/series/link/link.js +1 -2
  820. package/cjs/series/link/link.js.map +1 -1
  821. package/cjs/series/map/map-transformer.d.ts +5 -0
  822. package/cjs/series/map/map-transformer.js +16 -0
  823. package/cjs/series/map/map-transformer.js.map +1 -0
  824. package/cjs/series/map/map.d.ts +8 -3
  825. package/cjs/series/map/map.js +10 -6
  826. package/cjs/series/map/map.js.map +1 -1
  827. package/cjs/series/mixin/line-mixin-transformer.d.ts +5 -0
  828. package/cjs/series/mixin/line-mixin-transformer.js +18 -0
  829. package/cjs/series/mixin/line-mixin-transformer.js.map +1 -0
  830. package/cjs/series/mixin/line-mixin.d.ts +1 -2
  831. package/cjs/series/mixin/line-mixin.js +3 -7
  832. package/cjs/series/mixin/line-mixin.js.map +1 -1
  833. package/cjs/series/pie/3d/index.d.ts +2 -0
  834. package/cjs/series/pie/3d/index.js +21 -0
  835. package/cjs/series/pie/3d/index.js.map +1 -0
  836. package/cjs/series/pie/3d/pie-3d-transformer.d.ts +5 -0
  837. package/cjs/series/pie/3d/pie-3d-transformer.js +16 -0
  838. package/cjs/series/pie/3d/pie-3d-transformer.js.map +1 -0
  839. package/cjs/series/pie/3d/pie-3d.d.ts +20 -0
  840. package/cjs/series/pie/3d/pie-3d.js +51 -0
  841. package/cjs/series/pie/3d/pie-3d.js.map +1 -0
  842. package/cjs/series/pie/interface.d.ts +3 -0
  843. package/cjs/series/pie/interface.js.map +1 -1
  844. package/cjs/series/pie/pie-transformer.d.ts +9 -0
  845. package/cjs/series/pie/pie-transformer.js +30 -0
  846. package/cjs/series/pie/pie-transformer.js.map +1 -0
  847. package/cjs/series/pie/pie.d.ts +6 -13
  848. package/cjs/series/pie/pie.js +9 -55
  849. package/cjs/series/pie/pie.js.map +1 -1
  850. package/cjs/series/polar/index.d.ts +3 -0
  851. package/cjs/series/polar/index.js +22 -0
  852. package/cjs/series/polar/index.js.map +1 -0
  853. package/cjs/series/polar/polar.d.ts +0 -1
  854. package/cjs/series/polar/polar.js +0 -7
  855. package/cjs/series/polar/polar.js.map +1 -1
  856. package/cjs/series/progress/circular/circular.d.ts +2 -3
  857. package/cjs/series/progress/circular/circular.js +3 -3
  858. package/cjs/series/progress/circular/circular.js.map +1 -1
  859. package/cjs/series/progress/linear/linear.d.ts +1 -3
  860. package/cjs/series/progress/linear/linear.js +2 -2
  861. package/cjs/series/progress/linear/linear.js.map +1 -1
  862. package/cjs/series/radar/radar.d.ts +5 -3
  863. package/cjs/series/radar/radar.js +8 -6
  864. package/cjs/series/radar/radar.js.map +1 -1
  865. package/cjs/series/range-area/range-area.js +1 -1
  866. package/cjs/series/range-area/range-area.js.map +1 -1
  867. package/cjs/series/range-column/3d/index.d.ts +2 -0
  868. package/cjs/series/range-column/3d/index.js +21 -0
  869. package/cjs/series/range-column/3d/index.js.map +1 -0
  870. package/cjs/series/range-column/3d/range-column-3d-transformer.d.ts +5 -0
  871. package/cjs/series/range-column/3d/range-column-3d-transformer.js +17 -0
  872. package/cjs/series/range-column/3d/range-column-3d-transformer.js.map +1 -0
  873. package/cjs/series/range-column/{range-column-3d.d.ts → 3d/range-column-3d.d.ts} +6 -6
  874. package/cjs/series/range-column/{range-column-3d.js → 3d/range-column-3d.js} +2 -3
  875. package/cjs/series/range-column/3d/range-column-3d.js.map +1 -0
  876. package/cjs/series/range-column/range-column-transformer.d.ts +5 -0
  877. package/cjs/series/range-column/range-column-transformer.js +17 -0
  878. package/cjs/series/range-column/range-column-transformer.js.map +1 -0
  879. package/cjs/series/range-column/range-column.d.ts +2 -0
  880. package/cjs/series/range-column/range-column.js +6 -7
  881. package/cjs/series/range-column/range-column.js.map +1 -1
  882. package/cjs/series/rose/rose-transformer.d.ts +5 -0
  883. package/cjs/series/rose/rose-transformer.js +16 -0
  884. package/cjs/series/rose/rose-transformer.js.map +1 -0
  885. package/cjs/series/rose/rose.d.ts +4 -3
  886. package/cjs/series/rose/rose.js +6 -6
  887. package/cjs/series/rose/rose.js.map +1 -1
  888. package/cjs/series/sankey/sankey.js +3 -4
  889. package/cjs/series/sankey/sankey.js.map +1 -1
  890. package/cjs/series/scatter/scatter-transformer.d.ts +5 -0
  891. package/cjs/series/scatter/scatter-transformer.js +16 -0
  892. package/cjs/series/scatter/scatter-transformer.js.map +1 -0
  893. package/cjs/series/scatter/scatter.d.ts +5 -3
  894. package/cjs/series/scatter/scatter.js +6 -6
  895. package/cjs/series/scatter/scatter.js.map +1 -1
  896. package/cjs/series/sunburst/sunburst.d.ts +1 -1
  897. package/cjs/series/sunburst/sunburst.js +3 -3
  898. package/cjs/series/sunburst/sunburst.js.map +1 -1
  899. package/cjs/series/treemap/treemap.js +2 -3
  900. package/cjs/series/treemap/treemap.js.map +1 -1
  901. package/cjs/series/waterfall/waterfall-transformer.d.ts +5 -0
  902. package/cjs/series/waterfall/waterfall-transformer.js +16 -0
  903. package/cjs/series/waterfall/waterfall-transformer.js.map +1 -0
  904. package/cjs/series/waterfall/waterfall.d.ts +4 -3
  905. package/cjs/series/waterfall/waterfall.js +8 -10
  906. package/cjs/series/waterfall/waterfall.js.map +1 -1
  907. package/cjs/series/word-cloud/word-cloud-3d.js +2 -3
  908. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  909. package/cjs/series/word-cloud/word-cloud.js +3 -3
  910. package/cjs/series/word-cloud/word-cloud.js.map +1 -1
  911. package/cjs/theme/builtin/common/component/axis/common-axis.js +4 -0
  912. package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  913. package/cjs/theme/builtin/common/component/crosshair.js +8 -0
  914. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  915. package/cjs/theme/builtin/common/component/data-zoom.js +2 -4
  916. package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
  917. package/cjs/theme/builtin/index.d.ts +0 -1
  918. package/cjs/theme/builtin/index.js +1 -2
  919. package/cjs/theme/builtin/index.js.map +1 -1
  920. package/cjs/theme/color-scheme/util.js +4 -3
  921. package/cjs/theme/color-scheme/util.js.map +1 -1
  922. package/cjs/typings/spec/common.d.ts +2 -0
  923. package/cjs/typings/spec/common.js.map +1 -1
  924. package/cjs/util/color.d.ts +1 -3
  925. package/cjs/util/color.js +7 -2
  926. package/cjs/util/color.js.map +1 -1
  927. package/cjs/util/space.d.ts +1 -3
  928. package/cjs/util/space.js +4 -16
  929. package/cjs/util/space.js.map +1 -1
  930. package/cjs/vchart-all.js +2 -2
  931. package/cjs/vchart-all.js.map +1 -1
  932. package/esm/animation/config.d.ts +5 -1
  933. package/esm/animation/config.js +18 -2
  934. package/esm/animation/config.js.map +1 -1
  935. package/esm/animation/utils.d.ts +2 -2
  936. package/esm/chart/area/area-transformer.d.ts +6 -0
  937. package/esm/chart/area/area-transformer.js +26 -0
  938. package/esm/chart/area/area-transformer.js.map +1 -0
  939. package/esm/chart/area/area.d.ts +6 -4
  940. package/esm/chart/area/area.js +9 -27
  941. package/esm/chart/area/area.js.map +1 -1
  942. package/esm/chart/area/index.d.ts +1 -0
  943. package/esm/chart/area/index.js +2 -0
  944. package/esm/chart/area/index.js.map +1 -1
  945. package/esm/chart/bar/3d/bar-3d-transformer.d.ts +6 -0
  946. package/esm/chart/bar/3d/bar-3d-transformer.js +13 -0
  947. package/esm/chart/bar/3d/bar-3d-transformer.js.map +1 -0
  948. package/esm/chart/bar/3d/bar-3d.d.ts +14 -0
  949. package/esm/chart/bar/3d/bar-3d.js +26 -0
  950. package/esm/chart/bar/3d/bar-3d.js.map +1 -0
  951. package/esm/chart/bar/3d/index.d.ts +2 -0
  952. package/esm/chart/bar/3d/index.js +4 -0
  953. package/esm/chart/bar/3d/index.js.map +1 -0
  954. package/esm/chart/bar/bar-transformer.d.ts +6 -0
  955. package/esm/chart/bar/bar-transformer.js +22 -0
  956. package/esm/chart/bar/bar-transformer.js.map +1 -0
  957. package/esm/chart/bar/bar.d.ts +7 -4
  958. package/esm/chart/bar/bar.js +9 -23
  959. package/esm/chart/bar/bar.js.map +1 -1
  960. package/esm/chart/bar/index.d.ts +2 -1
  961. package/esm/chart/bar/index.js +3 -1
  962. package/esm/chart/bar/index.js.map +1 -1
  963. package/esm/chart/base/base-chart-transformer.d.ts +21 -0
  964. package/esm/chart/base/base-chart-transformer.js +129 -0
  965. package/esm/chart/base/base-chart-transformer.js.map +1 -0
  966. package/{cjs/chart → esm/chart/base}/base-chart.d.ts +29 -29
  967. package/esm/chart/{base-chart.js → base/base-chart.js} +70 -119
  968. package/esm/chart/base/base-chart.js.map +1 -0
  969. package/esm/chart/base/index.d.ts +2 -0
  970. package/esm/chart/base/index.js +4 -0
  971. package/esm/chart/base/index.js.map +1 -0
  972. package/esm/chart/box-plot/box-plot-transformer.d.ts +6 -0
  973. package/esm/chart/box-plot/box-plot-transformer.js +32 -0
  974. package/esm/chart/box-plot/box-plot-transformer.js.map +1 -0
  975. package/esm/chart/box-plot/box-plot.d.ts +6 -4
  976. package/esm/chart/box-plot/box-plot.js +9 -32
  977. package/esm/chart/box-plot/box-plot.js.map +1 -1
  978. package/esm/chart/box-plot/index.d.ts +1 -0
  979. package/esm/chart/box-plot/index.js +2 -0
  980. package/esm/chart/box-plot/index.js.map +1 -1
  981. package/esm/chart/cartesian/cartesian-transformer.d.ts +8 -0
  982. package/esm/chart/cartesian/{cartesian.js → cartesian-transformer.js} +9 -11
  983. package/esm/chart/cartesian/cartesian-transformer.js.map +1 -0
  984. package/esm/chart/cartesian/index.d.ts +1 -1
  985. package/esm/chart/cartesian/index.js +2 -2
  986. package/esm/chart/cartesian/index.js.map +1 -1
  987. package/esm/chart/chart-meta/data.js.map +1 -1
  988. package/esm/chart/circle-packing/circle-packing-transformer.d.ts +7 -0
  989. package/esm/chart/circle-packing/circle-packing-transformer.js +29 -0
  990. package/esm/chart/circle-packing/circle-packing-transformer.js.map +1 -0
  991. package/esm/chart/circle-packing/circle-packing.d.ts +6 -5
  992. package/esm/chart/circle-packing/circle-packing.js +7 -25
  993. package/esm/chart/circle-packing/circle-packing.js.map +1 -1
  994. package/esm/chart/circle-packing/index.d.ts +1 -0
  995. package/esm/chart/circle-packing/index.js +2 -0
  996. package/esm/chart/circle-packing/index.js.map +1 -1
  997. package/esm/chart/common/common-transformer.d.ts +7 -0
  998. package/esm/chart/common/common-transformer.js +26 -0
  999. package/esm/chart/common/common-transformer.js.map +1 -0
  1000. package/esm/chart/common/common.d.ts +7 -4
  1001. package/esm/chart/common/common.js +5 -25
  1002. package/esm/chart/common/common.js.map +1 -1
  1003. package/esm/chart/common/index.d.ts +1 -0
  1004. package/esm/chart/common/index.js +2 -0
  1005. package/esm/chart/common/index.js.map +1 -1
  1006. package/esm/chart/correlation/correlation-transformer.d.ts +6 -0
  1007. package/esm/chart/correlation/correlation-transformer.js +37 -0
  1008. package/esm/chart/correlation/correlation-transformer.js.map +1 -0
  1009. package/esm/chart/correlation/correlation.d.ts +6 -4
  1010. package/esm/chart/correlation/correlation.js +7 -33
  1011. package/esm/chart/correlation/correlation.js.map +1 -1
  1012. package/esm/chart/correlation/index.d.ts +1 -0
  1013. package/esm/chart/correlation/index.js +2 -0
  1014. package/esm/chart/correlation/index.js.map +1 -1
  1015. package/esm/chart/funnel/3d/funnel-3d.d.ts +14 -0
  1016. package/esm/chart/funnel/3d/funnel-3d.js +26 -0
  1017. package/esm/chart/funnel/3d/funnel-3d.js.map +1 -0
  1018. package/esm/chart/funnel/3d/index.d.ts +1 -0
  1019. package/esm/chart/funnel/3d/index.js +2 -0
  1020. package/esm/chart/funnel/3d/index.js.map +1 -0
  1021. package/esm/chart/funnel/funnel-transformer.d.ts +8 -0
  1022. package/esm/chart/funnel/{base.js → funnel-transformer.js} +4 -4
  1023. package/esm/chart/funnel/funnel-transformer.js.map +1 -0
  1024. package/esm/chart/funnel/funnel.d.ts +7 -2
  1025. package/esm/chart/funnel/funnel.js +9 -5
  1026. package/esm/chart/funnel/funnel.js.map +1 -1
  1027. package/esm/chart/funnel/index.d.ts +2 -1
  1028. package/esm/chart/funnel/index.js +3 -1
  1029. package/esm/chart/funnel/index.js.map +1 -1
  1030. package/esm/chart/funnel/interface.d.ts +1 -1
  1031. package/esm/chart/funnel/interface.js.map +1 -1
  1032. package/esm/chart/gauge/gauge-transformer.d.ts +9 -0
  1033. package/esm/chart/gauge/gauge-transformer.js +71 -0
  1034. package/esm/chart/gauge/gauge-transformer.js.map +1 -0
  1035. package/esm/chart/gauge/gauge.d.ts +8 -6
  1036. package/esm/chart/gauge/gauge.js +8 -68
  1037. package/esm/chart/gauge/gauge.js.map +1 -1
  1038. package/esm/chart/gauge/index.d.ts +1 -0
  1039. package/esm/chart/gauge/index.js +2 -0
  1040. package/esm/chart/gauge/index.js.map +1 -1
  1041. package/esm/chart/gauge/interface.d.ts +2 -2
  1042. package/esm/chart/gauge/interface.js.map +1 -1
  1043. package/esm/chart/heatmap/heatmap-transformer.d.ts +5 -0
  1044. package/esm/chart/heatmap/heatmap-transformer.js +12 -0
  1045. package/esm/chart/heatmap/heatmap-transformer.js.map +1 -0
  1046. package/esm/chart/heatmap/heatmap.d.ts +7 -3
  1047. package/esm/chart/heatmap/heatmap.js +9 -12
  1048. package/esm/chart/heatmap/heatmap.js.map +1 -1
  1049. package/esm/chart/heatmap/index.d.ts +1 -0
  1050. package/esm/chart/heatmap/index.js +2 -0
  1051. package/esm/chart/heatmap/index.js.map +1 -1
  1052. package/esm/chart/histogram/3d/histogram-3d.d.ts +14 -0
  1053. package/esm/chart/histogram/3d/histogram-3d.js +26 -0
  1054. package/esm/chart/histogram/3d/histogram-3d.js.map +1 -0
  1055. package/esm/chart/histogram/3d/index.d.ts +1 -0
  1056. package/esm/chart/histogram/3d/index.js +2 -0
  1057. package/esm/chart/histogram/3d/index.js.map +1 -0
  1058. package/esm/chart/histogram/base/base.d.ts +8 -0
  1059. package/esm/chart/histogram/base/base.js +13 -0
  1060. package/esm/chart/histogram/base/base.js.map +1 -0
  1061. package/esm/chart/histogram/base/histogram-base-transformer.d.ts +6 -0
  1062. package/esm/chart/histogram/{base.js → base/histogram-base-transformer.js} +3 -6
  1063. package/esm/chart/histogram/base/histogram-base-transformer.js.map +1 -0
  1064. package/esm/chart/histogram/base/index.d.ts +2 -0
  1065. package/esm/chart/histogram/base/index.js +4 -0
  1066. package/esm/chart/histogram/base/index.js.map +1 -0
  1067. package/esm/chart/histogram/histogram-transformer.d.ts +5 -0
  1068. package/esm/chart/histogram/histogram-transformer.js +10 -0
  1069. package/esm/chart/histogram/histogram-transformer.js.map +1 -0
  1070. package/esm/chart/histogram/histogram.d.ts +7 -3
  1071. package/esm/chart/histogram/histogram.js +7 -8
  1072. package/esm/chart/histogram/histogram.js.map +1 -1
  1073. package/esm/chart/histogram/index.d.ts +2 -1
  1074. package/esm/chart/histogram/index.js +3 -1
  1075. package/esm/chart/histogram/index.js.map +1 -1
  1076. package/esm/chart/index.d.ts +2 -4
  1077. package/esm/chart/index.js +4 -7
  1078. package/esm/chart/index.js.map +1 -1
  1079. package/esm/chart/interface/chart.d.ts +20 -7
  1080. package/esm/chart/interface/chart.js.map +1 -1
  1081. package/esm/chart/interface/common.d.ts +17 -1
  1082. package/esm/chart/interface/common.js.map +1 -1
  1083. package/esm/chart/line/index.d.ts +1 -0
  1084. package/esm/chart/line/index.js +2 -0
  1085. package/esm/chart/line/index.js.map +1 -1
  1086. package/esm/chart/line/interface.d.ts +1 -1
  1087. package/esm/chart/line/interface.js.map +1 -1
  1088. package/esm/chart/line/line-transformer.d.ts +6 -0
  1089. package/esm/chart/line/line-transformer.js +25 -0
  1090. package/esm/chart/line/line-transformer.js.map +1 -0
  1091. package/esm/chart/line/line.d.ts +6 -4
  1092. package/esm/chart/line/line.js +9 -26
  1093. package/esm/chart/line/line.js.map +1 -1
  1094. package/esm/chart/map/index.d.ts +1 -0
  1095. package/esm/chart/map/index.js +2 -0
  1096. package/esm/chart/map/index.js.map +1 -1
  1097. package/esm/chart/map/map-transformer.d.ts +8 -0
  1098. package/esm/chart/map/map-transformer.js +35 -0
  1099. package/esm/chart/map/map-transformer.js.map +1 -0
  1100. package/esm/chart/map/map.d.ts +6 -6
  1101. package/esm/chart/map/map.js +7 -31
  1102. package/esm/chart/map/map.js.map +1 -1
  1103. package/esm/chart/pie/3d/index.d.ts +1 -0
  1104. package/esm/{theme/builtin/common/legacy → chart/pie/3d}/index.js +1 -1
  1105. package/esm/chart/pie/3d/index.js.map +1 -0
  1106. package/esm/chart/pie/3d/pie-3d.d.ts +17 -0
  1107. package/esm/chart/pie/3d/pie-3d.js +34 -0
  1108. package/esm/chart/pie/3d/pie-3d.js.map +1 -0
  1109. package/esm/chart/pie/base/base.d.ts +8 -0
  1110. package/esm/chart/pie/base/base.js +12 -0
  1111. package/esm/chart/pie/base/base.js.map +1 -0
  1112. package/esm/chart/pie/base/index.d.ts +2 -0
  1113. package/esm/chart/pie/base/index.js +4 -0
  1114. package/esm/chart/pie/base/index.js.map +1 -0
  1115. package/esm/chart/pie/base/pie-transformer.d.ts +7 -0
  1116. package/esm/chart/pie/{base.js → base/pie-transformer.js} +3 -3
  1117. package/esm/chart/pie/base/pie-transformer.js.map +1 -0
  1118. package/esm/chart/pie/index.d.ts +2 -1
  1119. package/esm/chart/pie/index.js +3 -1
  1120. package/esm/chart/pie/index.js.map +1 -1
  1121. package/esm/chart/pie/pie.d.ts +7 -2
  1122. package/esm/chart/pie/pie.js +7 -3
  1123. package/esm/chart/pie/pie.js.map +1 -1
  1124. package/esm/chart/polar/index.d.ts +1 -1
  1125. package/esm/chart/polar/index.js +2 -2
  1126. package/esm/chart/polar/index.js.map +1 -1
  1127. package/esm/chart/polar/polar-transformer.d.ts +9 -0
  1128. package/esm/chart/polar/{polar.js → polar-transformer.js} +14 -14
  1129. package/esm/chart/polar/polar-transformer.js.map +1 -0
  1130. package/esm/chart/polar/progress-like/index.d.ts +1 -0
  1131. package/esm/chart/polar/progress-like/index.js +2 -0
  1132. package/esm/chart/polar/progress-like/index.js.map +1 -0
  1133. package/esm/chart/polar/progress-like/progress-like-transformer.d.ts +8 -0
  1134. package/esm/chart/polar/{progress-like.js → progress-like/progress-like-transformer.js} +5 -5
  1135. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -0
  1136. package/esm/chart/polar/rose-like/index.d.ts +1 -0
  1137. package/esm/chart/polar/rose-like/index.js +2 -0
  1138. package/esm/chart/polar/rose-like/index.js.map +1 -0
  1139. package/esm/chart/polar/rose-like/rose-like-transformer.d.ts +7 -0
  1140. package/esm/chart/polar/{rose-like.js → rose-like/rose-like-transformer.js} +3 -6
  1141. package/esm/chart/polar/rose-like/rose-like-transformer.js.map +1 -0
  1142. package/esm/chart/progress/circular/circular-progress-transformer.d.ts +7 -0
  1143. package/esm/chart/progress/circular/circular-progress-transformer.js +25 -0
  1144. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -0
  1145. package/esm/chart/progress/circular/circular.d.ts +8 -4
  1146. package/esm/chart/progress/circular/circular.js +9 -25
  1147. package/esm/chart/progress/circular/circular.js.map +1 -1
  1148. package/esm/chart/progress/circular/index.d.ts +1 -0
  1149. package/esm/chart/progress/circular/index.js +2 -0
  1150. package/esm/chart/progress/circular/index.js.map +1 -1
  1151. package/esm/chart/progress/circular/interface.d.ts +1 -1
  1152. package/esm/chart/progress/circular/interface.js.map +1 -1
  1153. package/esm/chart/progress/linear/index.d.ts +1 -0
  1154. package/esm/chart/progress/linear/index.js +2 -0
  1155. package/esm/chart/progress/linear/index.js.map +1 -1
  1156. package/esm/chart/progress/linear/interface.d.ts +1 -1
  1157. package/esm/chart/progress/linear/interface.js.map +1 -1
  1158. package/esm/chart/progress/linear/linear-progress-transformer.d.ts +7 -0
  1159. package/esm/chart/progress/linear/linear-progress-transformer.js +64 -0
  1160. package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -0
  1161. package/esm/chart/progress/linear/linear.d.ts +6 -5
  1162. package/esm/chart/progress/linear/linear.js +9 -64
  1163. package/esm/chart/progress/linear/linear.js.map +1 -1
  1164. package/esm/chart/radar/index.d.ts +1 -0
  1165. package/esm/chart/radar/index.js +2 -0
  1166. package/esm/chart/radar/index.js.map +1 -1
  1167. package/esm/chart/radar/radar-transformer.d.ts +6 -0
  1168. package/esm/chart/radar/radar-transformer.js +46 -0
  1169. package/esm/chart/radar/radar-transformer.js.map +1 -0
  1170. package/esm/chart/radar/radar.d.ts +8 -4
  1171. package/esm/chart/radar/radar.js +9 -46
  1172. package/esm/chart/radar/radar.js.map +1 -1
  1173. package/esm/chart/range-area/index.d.ts +1 -0
  1174. package/esm/chart/range-area/index.js +2 -0
  1175. package/esm/chart/range-area/index.js.map +1 -1
  1176. package/esm/chart/range-area/range-area-transformer.d.ts +6 -0
  1177. package/esm/chart/range-area/range-area-transformer.js +18 -0
  1178. package/esm/chart/range-area/range-area-transformer.js.map +1 -0
  1179. package/esm/chart/range-area/range-area.d.ts +7 -4
  1180. package/esm/chart/range-area/range-area.js +9 -18
  1181. package/esm/chart/range-area/range-area.js.map +1 -1
  1182. package/esm/chart/range-column/3d/index.d.ts +2 -0
  1183. package/esm/chart/range-column/3d/index.js +4 -0
  1184. package/esm/chart/range-column/3d/index.js.map +1 -0
  1185. package/esm/chart/range-column/3d/range-column-3d-transformer.d.ts +5 -0
  1186. package/esm/chart/range-column/3d/range-column-3d-transformer.js +15 -0
  1187. package/esm/chart/range-column/3d/range-column-3d-transformer.js.map +1 -0
  1188. package/esm/chart/range-column/3d/range-column-3d.d.ts +13 -0
  1189. package/esm/chart/range-column/3d/range-column-3d.js +26 -0
  1190. package/esm/chart/range-column/3d/range-column-3d.js.map +1 -0
  1191. package/esm/chart/range-column/index.d.ts +2 -1
  1192. package/esm/chart/range-column/index.js +3 -1
  1193. package/esm/chart/range-column/index.js.map +1 -1
  1194. package/esm/chart/range-column/range-column-transformer.d.ts +6 -0
  1195. package/esm/chart/range-column/range-column-transformer.js +21 -0
  1196. package/esm/chart/range-column/range-column-transformer.js.map +1 -0
  1197. package/esm/chart/range-column/range-column.d.ts +7 -4
  1198. package/esm/chart/range-column/range-column.js +9 -21
  1199. package/esm/chart/range-column/range-column.js.map +1 -1
  1200. package/esm/chart/rose/index.d.ts +1 -0
  1201. package/esm/chart/rose/index.js +2 -0
  1202. package/esm/chart/rose/index.js.map +1 -1
  1203. package/esm/chart/rose/rose-transformer.d.ts +6 -0
  1204. package/esm/chart/rose/rose-transformer.js +40 -0
  1205. package/esm/chart/rose/rose-transformer.js.map +1 -0
  1206. package/esm/chart/rose/rose.d.ts +8 -4
  1207. package/esm/chart/rose/rose.js +8 -37
  1208. package/esm/chart/rose/rose.js.map +1 -1
  1209. package/esm/chart/sankey/index.d.ts +1 -0
  1210. package/esm/chart/sankey/index.js +2 -0
  1211. package/esm/chart/sankey/index.js.map +1 -1
  1212. package/esm/chart/sankey/sankey-transformer.d.ts +6 -0
  1213. package/esm/chart/sankey/sankey-transformer.js +41 -0
  1214. package/esm/chart/sankey/sankey-transformer.js.map +1 -0
  1215. package/esm/chart/sankey/sankey.d.ts +6 -4
  1216. package/esm/chart/sankey/sankey.js +7 -39
  1217. package/esm/chart/sankey/sankey.js.map +1 -1
  1218. package/esm/chart/scatter/index.d.ts +1 -0
  1219. package/esm/chart/scatter/index.js +2 -0
  1220. package/esm/chart/scatter/index.js.map +1 -1
  1221. package/esm/chart/scatter/scatter-transformer.d.ts +5 -0
  1222. package/esm/chart/scatter/scatter-transformer.js +14 -0
  1223. package/esm/chart/scatter/scatter-transformer.js.map +1 -0
  1224. package/esm/chart/scatter/scatter.d.ts +6 -3
  1225. package/esm/chart/scatter/scatter.js +9 -15
  1226. package/esm/chart/scatter/scatter.js.map +1 -1
  1227. package/esm/chart/sequence/index.d.ts +1 -0
  1228. package/esm/chart/sequence/index.js +2 -0
  1229. package/esm/chart/sequence/index.js.map +1 -1
  1230. package/esm/chart/sequence/sequence-transformer.d.ts +7 -0
  1231. package/esm/chart/sequence/sequence-transformer.js +185 -0
  1232. package/esm/chart/sequence/sequence-transformer.js.map +1 -0
  1233. package/esm/chart/sequence/sequence.d.ts +9 -7
  1234. package/esm/chart/sequence/sequence.js +28 -194
  1235. package/esm/chart/sequence/sequence.js.map +1 -1
  1236. package/esm/chart/stack.js +1 -2
  1237. package/esm/chart/stack.js.map +1 -1
  1238. package/esm/chart/sunburst/index.d.ts +1 -0
  1239. package/esm/chart/sunburst/index.js +2 -0
  1240. package/esm/chart/sunburst/index.js.map +1 -1
  1241. package/esm/chart/sunburst/sunburst-transformer.d.ts +7 -0
  1242. package/esm/chart/sunburst/sunburst-transformer.js +42 -0
  1243. package/esm/chart/sunburst/sunburst-transformer.js.map +1 -0
  1244. package/esm/chart/sunburst/sunburst.d.ts +6 -5
  1245. package/esm/chart/sunburst/sunburst.js +7 -38
  1246. package/esm/chart/sunburst/sunburst.js.map +1 -1
  1247. package/esm/chart/treemap/index.d.ts +1 -0
  1248. package/esm/chart/treemap/index.js +2 -0
  1249. package/esm/chart/treemap/index.js.map +1 -1
  1250. package/esm/chart/treemap/treemap-transformer.d.ts +7 -0
  1251. package/esm/chart/treemap/treemap-transformer.js +37 -0
  1252. package/esm/chart/treemap/treemap-transformer.js.map +1 -0
  1253. package/esm/chart/treemap/treemap.d.ts +7 -4
  1254. package/esm/chart/treemap/treemap.js +7 -35
  1255. package/esm/chart/treemap/treemap.js.map +1 -1
  1256. package/esm/chart/util.d.ts +3 -3
  1257. package/esm/chart/util.js +9 -4
  1258. package/esm/chart/util.js.map +1 -1
  1259. package/esm/chart/waterfall/index.d.ts +1 -0
  1260. package/esm/chart/waterfall/index.js +2 -0
  1261. package/esm/chart/waterfall/index.js.map +1 -1
  1262. package/esm/chart/waterfall/waterfall-transformer.d.ts +7 -0
  1263. package/esm/chart/waterfall/waterfall-transformer.js +22 -0
  1264. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -0
  1265. package/esm/chart/waterfall/waterfall.d.ts +6 -3
  1266. package/esm/chart/waterfall/waterfall.js +6 -19
  1267. package/esm/chart/waterfall/waterfall.js.map +1 -1
  1268. package/esm/chart/word-cloud/3d/index.d.ts +2 -0
  1269. package/esm/chart/word-cloud/3d/index.js +4 -0
  1270. package/esm/chart/word-cloud/3d/index.js.map +1 -0
  1271. package/esm/chart/word-cloud/3d/word-cloud-3d-transformer.d.ts +6 -0
  1272. package/esm/chart/word-cloud/3d/word-cloud-3d-transformer.js +31 -0
  1273. package/esm/chart/word-cloud/3d/word-cloud-3d-transformer.js.map +1 -0
  1274. package/esm/chart/word-cloud/3d/word-cloud-3d.d.ts +15 -0
  1275. package/esm/chart/word-cloud/3d/word-cloud-3d.js +30 -0
  1276. package/esm/chart/word-cloud/3d/word-cloud-3d.js.map +1 -0
  1277. package/esm/chart/word-cloud/base/base.d.ts +9 -0
  1278. package/esm/chart/word-cloud/base/base.js +17 -0
  1279. package/esm/chart/word-cloud/base/base.js.map +1 -0
  1280. package/esm/chart/word-cloud/base/index.d.ts +2 -0
  1281. package/esm/chart/word-cloud/base/index.js +4 -0
  1282. package/esm/chart/word-cloud/base/index.js.map +1 -0
  1283. package/esm/chart/word-cloud/base/word-cloud-base-transformer.d.ts +5 -0
  1284. package/esm/chart/word-cloud/base/word-cloud-base-transformer.js +14 -0
  1285. package/esm/chart/word-cloud/base/word-cloud-base-transformer.js.map +1 -0
  1286. package/esm/chart/word-cloud/index.d.ts +2 -1
  1287. package/esm/chart/word-cloud/index.js +3 -1
  1288. package/esm/chart/word-cloud/index.js.map +1 -1
  1289. package/esm/chart/word-cloud/word-cloud-transformer.d.ts +5 -0
  1290. package/esm/chart/word-cloud/word-cloud-transformer.js +30 -0
  1291. package/esm/chart/word-cloud/word-cloud-transformer.js.map +1 -0
  1292. package/esm/chart/word-cloud/word-cloud.d.ts +6 -3
  1293. package/esm/chart/word-cloud/word-cloud.js +7 -28
  1294. package/esm/chart/word-cloud/word-cloud.js.map +1 -1
  1295. package/esm/compile/interface/compiler.d.ts +5 -0
  1296. package/esm/compile/interface/compiler.js.map +1 -1
  1297. package/esm/compile/mark/compilable-mark.d.ts +0 -5
  1298. package/esm/compile/mark/compilable-mark.js +1 -10
  1299. package/esm/compile/mark/compilable-mark.js.map +1 -1
  1300. package/esm/compile/mark/interface.d.ts +1 -4
  1301. package/esm/compile/mark/interface.js.map +1 -1
  1302. package/esm/component/axis/base-axis.d.ts +27 -4
  1303. package/esm/component/axis/base-axis.js +37 -22
  1304. package/esm/component/axis/base-axis.js.map +1 -1
  1305. package/esm/component/axis/cartesian/axis.d.ts +6 -7
  1306. package/esm/component/axis/cartesian/axis.js +42 -31
  1307. package/esm/component/axis/cartesian/axis.js.map +1 -1
  1308. package/esm/component/axis/cartesian/band-axis.d.ts +1 -0
  1309. package/esm/component/axis/cartesian/band-axis.js +3 -2
  1310. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  1311. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  1312. package/esm/component/axis/cartesian/linear-axis.d.ts +1 -0
  1313. package/esm/component/axis/cartesian/linear-axis.js +2 -1
  1314. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  1315. package/esm/component/axis/cartesian/log-axis.d.ts +1 -0
  1316. package/esm/component/axis/cartesian/log-axis.js +2 -1
  1317. package/esm/component/axis/cartesian/log-axis.js.map +1 -1
  1318. package/esm/component/axis/cartesian/symlog-axis.d.ts +1 -0
  1319. package/esm/component/axis/cartesian/symlog-axis.js +2 -1
  1320. package/esm/component/axis/cartesian/symlog-axis.js.map +1 -1
  1321. package/esm/component/axis/cartesian/time-axis.d.ts +1 -0
  1322. package/esm/component/axis/cartesian/time-axis.js +1 -1
  1323. package/esm/component/axis/cartesian/time-axis.js.map +1 -1
  1324. package/esm/component/axis/cartesian/util/common.d.ts +4 -0
  1325. package/esm/component/axis/cartesian/util/common.js +11 -0
  1326. package/esm/component/axis/cartesian/util/common.js.map +1 -1
  1327. package/esm/component/axis/interface/common.d.ts +1 -0
  1328. package/esm/component/axis/interface/common.js.map +1 -1
  1329. package/esm/component/axis/polar/axis.d.ts +7 -7
  1330. package/esm/component/axis/polar/axis.js +49 -35
  1331. package/esm/component/axis/polar/axis.js.map +1 -1
  1332. package/esm/component/axis/polar/band-axis.d.ts +1 -0
  1333. package/esm/component/axis/polar/band-axis.js +2 -1
  1334. package/esm/component/axis/polar/band-axis.js.map +1 -1
  1335. package/esm/component/axis/polar/interface/common.d.ts +0 -1
  1336. package/esm/component/axis/polar/interface/common.js.map +1 -1
  1337. package/esm/component/axis/polar/linear-axis.d.ts +1 -0
  1338. package/esm/component/axis/polar/linear-axis.js +2 -1
  1339. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  1340. package/esm/component/axis/polar/util/common.d.ts +5 -0
  1341. package/esm/component/axis/polar/util/common.js +11 -0
  1342. package/esm/component/axis/polar/util/common.js.map +1 -0
  1343. package/esm/component/axis/polar/util/index.d.ts +1 -0
  1344. package/esm/component/axis/polar/util/index.js +2 -0
  1345. package/esm/component/axis/polar/util/index.js.map +1 -0
  1346. package/esm/component/axis/util.d.ts +4 -3
  1347. package/esm/component/axis/util.js +8 -6
  1348. package/esm/component/axis/util.js.map +1 -1
  1349. package/esm/component/base/base-component-transformer.d.ts +10 -0
  1350. package/esm/component/base/base-component-transformer.js +25 -0
  1351. package/esm/component/base/base-component-transformer.js.map +1 -0
  1352. package/esm/component/base/base-component.d.ts +10 -6
  1353. package/esm/component/base/base-component.js +34 -23
  1354. package/esm/component/base/base-component.js.map +1 -1
  1355. package/esm/component/base/index.d.ts +1 -0
  1356. package/esm/component/base/index.js +2 -0
  1357. package/esm/component/base/index.js.map +1 -1
  1358. package/esm/component/base/util.d.ts +2 -2
  1359. package/esm/component/base/util.js +14 -16
  1360. package/esm/component/base/util.js.map +1 -1
  1361. package/esm/component/brush/brush.d.ts +9 -5
  1362. package/esm/component/brush/brush.js +58 -44
  1363. package/esm/component/brush/brush.js.map +1 -1
  1364. package/esm/component/crosshair/base.d.ts +5 -4
  1365. package/esm/component/crosshair/base.js +21 -13
  1366. package/esm/component/crosshair/base.js.map +1 -1
  1367. package/esm/component/crosshair/cartesian.d.ts +3 -2
  1368. package/esm/component/crosshair/cartesian.js +17 -10
  1369. package/esm/component/crosshair/cartesian.js.map +1 -1
  1370. package/esm/component/crosshair/polar.d.ts +3 -2
  1371. package/esm/component/crosshair/polar.js +17 -10
  1372. package/esm/component/crosshair/polar.js.map +1 -1
  1373. package/esm/component/crosshair/util.d.ts +3 -4
  1374. package/esm/component/crosshair/util.js +15 -13
  1375. package/esm/component/crosshair/util.js.map +1 -1
  1376. package/esm/component/custom-mark/custom-mark.d.ts +7 -5
  1377. package/esm/component/custom-mark/custom-mark.js +18 -14
  1378. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  1379. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -3
  1380. package/esm/component/data-zoom/data-filter-base-component.js +12 -11
  1381. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  1382. package/esm/component/data-zoom/data-zoom/data-zoom-transformer.d.ts +9 -0
  1383. package/esm/component/data-zoom/data-zoom/data-zoom-transformer.js +31 -0
  1384. package/esm/component/data-zoom/data-zoom/data-zoom-transformer.js.map +1 -0
  1385. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +12 -2
  1386. package/esm/component/data-zoom/data-zoom/data-zoom.js +38 -39
  1387. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  1388. package/esm/component/data-zoom/data-zoom/index.d.ts +1 -0
  1389. package/esm/component/data-zoom/data-zoom/index.js +2 -0
  1390. package/esm/component/data-zoom/data-zoom/index.js.map +1 -1
  1391. package/esm/component/data-zoom/data-zoom/interface.d.ts +2 -2
  1392. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  1393. package/esm/component/data-zoom/interface.d.ts +1 -1
  1394. package/esm/component/data-zoom/interface.js.map +1 -1
  1395. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +5 -1
  1396. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +17 -10
  1397. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  1398. package/esm/component/data-zoom/util.d.ts +2 -2
  1399. package/esm/component/data-zoom/util.js +2 -2
  1400. package/esm/component/data-zoom/util.js.map +1 -1
  1401. package/esm/component/geo/geo-coordinate.d.ts +4 -7
  1402. package/esm/component/geo/geo-coordinate.js +27 -25
  1403. package/esm/component/geo/geo-coordinate.js.map +1 -1
  1404. package/esm/component/index.d.ts +1 -1
  1405. package/esm/component/index.js +1 -1
  1406. package/esm/component/index.js.map +1 -1
  1407. package/esm/component/indicator/indicator.d.ts +5 -4
  1408. package/esm/component/indicator/indicator.js +20 -9
  1409. package/esm/component/indicator/indicator.js.map +1 -1
  1410. package/esm/component/interface/common.d.ts +6 -4
  1411. package/esm/component/interface/common.js.map +1 -1
  1412. package/esm/component/interface/type.d.ts +8 -0
  1413. package/esm/component/interface/type.js +13 -0
  1414. package/esm/component/interface/type.js.map +1 -1
  1415. package/esm/component/label/base-label.d.ts +2 -2
  1416. package/esm/component/label/base-label.js +3 -4
  1417. package/esm/component/label/base-label.js.map +1 -1
  1418. package/esm/component/label/index.d.ts +2 -0
  1419. package/esm/component/label/index.js +4 -0
  1420. package/esm/component/label/index.js.map +1 -1
  1421. package/esm/component/label/interface.d.ts +2 -2
  1422. package/esm/component/label/interface.js.map +1 -1
  1423. package/esm/component/label/label-transformer.d.ts +8 -0
  1424. package/esm/component/label/label-transformer.js +11 -0
  1425. package/esm/component/label/label-transformer.js.map +1 -0
  1426. package/esm/component/label/label.d.ts +13 -5
  1427. package/esm/component/label/label.js +39 -30
  1428. package/esm/component/label/label.js.map +1 -1
  1429. package/esm/component/label/{totalLabel.d.ts → total-label.d.ts} +7 -6
  1430. package/esm/component/label/{totalLabel.js → total-label.js} +35 -29
  1431. package/esm/component/label/total-label.js.map +1 -0
  1432. package/esm/component/label/util.d.ts +1 -0
  1433. package/esm/component/label/util.js +2 -1
  1434. package/esm/component/label/util.js.map +1 -1
  1435. package/esm/component/legend/base-legend.d.ts +3 -1
  1436. package/esm/component/legend/base-legend.js +8 -7
  1437. package/esm/component/legend/base-legend.js.map +1 -1
  1438. package/esm/component/legend/continuous/legend.d.ts +4 -6
  1439. package/esm/component/legend/continuous/legend.js +15 -12
  1440. package/esm/component/legend/continuous/legend.js.map +1 -1
  1441. package/esm/component/legend/discrete/legend.d.ts +4 -7
  1442. package/esm/component/legend/discrete/legend.js +17 -12
  1443. package/esm/component/legend/discrete/legend.js.map +1 -1
  1444. package/esm/component/legend/discrete/util.js +1 -1
  1445. package/esm/component/legend/discrete/util.js.map +1 -1
  1446. package/esm/component/legend/util.d.ts +1 -1
  1447. package/esm/component/map-label/component.d.ts +5 -2
  1448. package/esm/component/map-label/component.js +10 -5
  1449. package/esm/component/map-label/component.js.map +1 -1
  1450. package/esm/component/marker/mark-area/mark-area.d.ts +6 -4
  1451. package/esm/component/marker/mark-area/mark-area.js +17 -10
  1452. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  1453. package/esm/component/marker/mark-line/mark-line.d.ts +6 -4
  1454. package/esm/component/marker/mark-line/mark-line.js +17 -10
  1455. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  1456. package/esm/component/marker/mark-point/mark-point.d.ts +6 -4
  1457. package/esm/component/marker/mark-point/mark-point.js +17 -10
  1458. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  1459. package/esm/component/player/player.d.ts +4 -4
  1460. package/esm/component/player/player.js +9 -4
  1461. package/esm/component/player/player.js.map +1 -1
  1462. package/esm/component/title/title.d.ts +9 -6
  1463. package/esm/component/title/title.js +22 -16
  1464. package/esm/component/title/title.js.map +1 -1
  1465. package/esm/component/tooltip/handler/base.js +8 -10
  1466. package/esm/component/tooltip/handler/base.js.map +1 -1
  1467. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.js +7 -2
  1468. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.js.map +1 -1
  1469. package/esm/component/tooltip/index.d.ts +1 -0
  1470. package/esm/component/tooltip/index.js +2 -0
  1471. package/esm/component/tooltip/index.js.map +1 -1
  1472. package/esm/component/tooltip/tooltip-transformer.d.ts +8 -0
  1473. package/esm/component/tooltip/tooltip-transformer.js +17 -0
  1474. package/esm/component/tooltip/tooltip-transformer.js.map +1 -0
  1475. package/esm/component/tooltip/tooltip.d.ts +10 -8
  1476. package/esm/component/tooltip/tooltip.js +23 -22
  1477. package/esm/component/tooltip/tooltip.js.map +1 -1
  1478. package/esm/component/util.d.ts +2 -2
  1479. package/esm/component/util.js +2 -2
  1480. package/esm/component/util.js.map +1 -1
  1481. package/esm/constant/event.d.ts +1 -0
  1482. package/esm/constant/event.js +7 -6
  1483. package/esm/constant/event.js.map +1 -1
  1484. package/esm/constant/polar.d.ts +0 -10
  1485. package/esm/constant/polar.js +0 -20
  1486. package/esm/constant/polar.js.map +1 -1
  1487. package/esm/constant/scatter.js +2 -1
  1488. package/esm/constant/scroll-bar.js +1 -2
  1489. package/esm/core/factory.d.ts +12 -3
  1490. package/esm/core/factory.js +29 -1
  1491. package/esm/core/factory.js.map +1 -1
  1492. package/esm/core/index.d.ts +2 -1
  1493. package/esm/core/index.js +3 -1
  1494. package/esm/core/index.js.map +1 -1
  1495. package/esm/core/interface.d.ts +17 -11
  1496. package/esm/core/interface.js.map +1 -1
  1497. package/esm/core/vchart.d.ts +30 -7
  1498. package/esm/core/vchart.js +204 -137
  1499. package/esm/core/vchart.js.map +1 -1
  1500. package/esm/event/bubble.js +2 -1
  1501. package/esm/event/event-dispatcher.js +1 -2
  1502. package/esm/index-lark.js +1 -1
  1503. package/esm/index-lark.js.map +1 -1
  1504. package/esm/index-wx.js +1 -1
  1505. package/esm/index-wx.js.map +1 -1
  1506. package/esm/interaction/config.js +1 -1
  1507. package/esm/interaction/dimension-trigger.js +1 -1
  1508. package/esm/interaction/interaction.js +1 -1
  1509. package/esm/interaction/zoom/zoomable.js +17 -10
  1510. package/esm/interaction/zoom/zoomable.js.map +1 -1
  1511. package/esm/layout/base-layout.js +1 -1
  1512. package/esm/layout/index.js +1 -1
  1513. package/esm/layout/interface.js +1 -1
  1514. package/esm/layout/layout-item.js +1 -1
  1515. package/esm/mark/arc-3d.d.ts +2 -0
  1516. package/esm/mark/arc-3d.js +11 -1
  1517. package/esm/mark/arc-3d.js.map +1 -1
  1518. package/esm/mark/arc.d.ts +1 -0
  1519. package/esm/mark/arc.js +10 -0
  1520. package/esm/mark/arc.js.map +1 -1
  1521. package/esm/mark/area.d.ts +1 -0
  1522. package/esm/mark/area.js +10 -0
  1523. package/esm/mark/area.js.map +1 -1
  1524. package/esm/mark/box-plot.d.ts +1 -0
  1525. package/esm/mark/box-plot.js +7 -3
  1526. package/esm/mark/box-plot.js.map +1 -1
  1527. package/esm/mark/cell.d.ts +1 -0
  1528. package/esm/mark/cell.js +8 -0
  1529. package/esm/mark/cell.js.map +1 -1
  1530. package/esm/mark/component.d.ts +1 -0
  1531. package/esm/mark/component.js +6 -0
  1532. package/esm/mark/component.js.map +1 -1
  1533. package/esm/mark/group.d.ts +2 -1
  1534. package/esm/mark/group.js +8 -0
  1535. package/esm/mark/group.js.map +1 -1
  1536. package/esm/mark/image.d.ts +1 -0
  1537. package/esm/mark/image.js +8 -0
  1538. package/esm/mark/image.js.map +1 -1
  1539. package/esm/mark/label.d.ts +1 -0
  1540. package/esm/mark/label.js +8 -0
  1541. package/esm/mark/label.js.map +1 -1
  1542. package/esm/mark/line.d.ts +1 -0
  1543. package/esm/mark/line.js +10 -0
  1544. package/esm/mark/line.js.map +1 -1
  1545. package/esm/mark/link-path.d.ts +1 -0
  1546. package/esm/mark/link-path.js +6 -1
  1547. package/esm/mark/link-path.js.map +1 -1
  1548. package/esm/mark/path.d.ts +1 -0
  1549. package/esm/mark/path.js +8 -0
  1550. package/esm/mark/path.js.map +1 -1
  1551. package/esm/mark/polygon/polygon.d.ts +1 -0
  1552. package/esm/mark/polygon/polygon.js +10 -0
  1553. package/esm/mark/polygon/polygon.js.map +1 -1
  1554. package/esm/mark/polygon/pyramid-3d.d.ts +1 -0
  1555. package/esm/mark/polygon/pyramid-3d.js +11 -0
  1556. package/esm/mark/polygon/pyramid-3d.js.map +1 -1
  1557. package/esm/mark/progress-arc.d.ts +1 -0
  1558. package/esm/mark/progress-arc.js +10 -0
  1559. package/esm/mark/progress-arc.js.map +1 -1
  1560. package/esm/mark/rect-3d.d.ts +1 -0
  1561. package/esm/mark/rect-3d.js +10 -0
  1562. package/esm/mark/rect-3d.js.map +1 -1
  1563. package/esm/mark/rect.d.ts +1 -0
  1564. package/esm/mark/rect.js +10 -0
  1565. package/esm/mark/rect.js.map +1 -1
  1566. package/esm/mark/ripple.d.ts +1 -0
  1567. package/esm/mark/ripple.js +6 -1
  1568. package/esm/mark/ripple.js.map +1 -1
  1569. package/esm/mark/rule.d.ts +1 -0
  1570. package/esm/mark/rule.js +8 -0
  1571. package/esm/mark/rule.js.map +1 -1
  1572. package/esm/mark/symbol.d.ts +1 -0
  1573. package/esm/mark/symbol.js +8 -0
  1574. package/esm/mark/symbol.js.map +1 -1
  1575. package/esm/mark/text.d.ts +1 -0
  1576. package/esm/mark/text.js +7 -1
  1577. package/esm/mark/text.js.map +1 -1
  1578. package/esm/model/base-model-transformer.d.ts +24 -0
  1579. package/esm/model/base-model-transformer.js +37 -0
  1580. package/esm/model/base-model-transformer.js.map +1 -0
  1581. package/esm/model/base-model.d.ts +9 -14
  1582. package/esm/model/base-model.js +27 -40
  1583. package/esm/model/base-model.js.map +1 -1
  1584. package/esm/model/index.d.ts +3 -0
  1585. package/esm/model/index.js +6 -0
  1586. package/esm/model/index.js.map +1 -0
  1587. package/esm/model/interface.d.ts +31 -4
  1588. package/esm/model/interface.js.map +1 -1
  1589. package/esm/model/layout-model.js.map +1 -1
  1590. package/esm/plugin/base/base-plugin-service.d.ts +13 -0
  1591. package/esm/plugin/base/base-plugin-service.js +42 -0
  1592. package/esm/plugin/base/base-plugin-service.js.map +1 -0
  1593. package/esm/plugin/base/base-plugin.d.ts +9 -0
  1594. package/esm/plugin/base/base-plugin.js +11 -0
  1595. package/esm/plugin/base/base-plugin.js.map +1 -0
  1596. package/esm/plugin/base/interface.d.ts +22 -0
  1597. package/esm/plugin/base/interface.js +2 -0
  1598. package/esm/plugin/base/interface.js.map +1 -0
  1599. package/esm/plugin/chart/index.d.ts +2 -0
  1600. package/esm/plugin/chart/index.js +4 -0
  1601. package/esm/plugin/chart/index.js.map +1 -0
  1602. package/esm/plugin/chart/interface.d.ts +22 -2
  1603. package/esm/plugin/chart/interface.js.map +1 -1
  1604. package/esm/plugin/chart/media-query/index.d.ts +2 -0
  1605. package/esm/plugin/chart/media-query/index.js +4 -0
  1606. package/esm/plugin/chart/media-query/index.js.map +1 -0
  1607. package/esm/plugin/chart/media-query/interface/common.d.ts +28 -0
  1608. package/esm/plugin/chart/media-query/interface/common.js +2 -0
  1609. package/esm/plugin/chart/media-query/interface/common.js.map +1 -0
  1610. package/esm/plugin/chart/media-query/interface/index.d.ts +2 -0
  1611. package/esm/plugin/chart/media-query/interface/index.js +4 -0
  1612. package/esm/plugin/chart/media-query/interface/index.js.map +1 -0
  1613. package/esm/plugin/chart/media-query/interface/spec.d.ts +25 -0
  1614. package/esm/plugin/chart/media-query/interface/spec.js +2 -0
  1615. package/esm/plugin/chart/media-query/interface/spec.js.map +1 -0
  1616. package/esm/plugin/chart/media-query/media-query.d.ts +28 -0
  1617. package/esm/plugin/chart/media-query/media-query.js +118 -0
  1618. package/esm/plugin/chart/media-query/media-query.js.map +1 -0
  1619. package/esm/plugin/chart/media-query/util/action.d.ts +3 -0
  1620. package/esm/plugin/chart/media-query/util/action.js +30 -0
  1621. package/esm/plugin/chart/media-query/util/action.js.map +1 -0
  1622. package/esm/plugin/chart/media-query/util/filter.d.ts +4 -0
  1623. package/esm/plugin/chart/media-query/util/filter.js +83 -0
  1624. package/esm/plugin/chart/media-query/util/filter.js.map +1 -0
  1625. package/esm/plugin/chart/media-query/util/index.d.ts +2 -0
  1626. package/esm/plugin/chart/media-query/util/index.js +4 -0
  1627. package/esm/plugin/chart/media-query/util/index.js.map +1 -0
  1628. package/esm/plugin/chart/media-query/util/query.d.ts +3 -0
  1629. package/esm/plugin/chart/media-query/util/query.js +26 -0
  1630. package/esm/plugin/chart/media-query/util/query.js.map +1 -0
  1631. package/esm/plugin/chart/plugin-service.d.ts +12 -0
  1632. package/esm/plugin/chart/plugin-service.js +28 -0
  1633. package/esm/plugin/chart/plugin-service.js.map +1 -0
  1634. package/esm/plugin/chart/register.d.ts +2 -0
  1635. package/esm/plugin/chart/register.js +6 -0
  1636. package/esm/plugin/chart/register.js.map +1 -0
  1637. package/esm/plugin/components/axis-sync-plugin/axis-sync.d.ts +5 -3
  1638. package/esm/plugin/components/axis-sync-plugin/axis-sync.js +6 -4
  1639. package/esm/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -1
  1640. package/esm/plugin/components/interface.d.ts +15 -25
  1641. package/esm/plugin/components/interface.js.map +1 -1
  1642. package/esm/plugin/components/plugin-service.d.ts +2 -10
  1643. package/esm/plugin/components/plugin-service.js +3 -37
  1644. package/esm/plugin/components/plugin-service.js.map +1 -1
  1645. package/esm/plugin/index.d.ts +1 -0
  1646. package/esm/plugin/index.js +2 -0
  1647. package/esm/plugin/index.js.map +1 -0
  1648. package/esm/region/index.d.ts +3 -0
  1649. package/esm/region/index.js +6 -0
  1650. package/esm/region/index.js.map +1 -0
  1651. package/esm/region/interface.d.ts +10 -2
  1652. package/esm/region/interface.js.map +1 -1
  1653. package/esm/region/region-transformer.d.ts +8 -0
  1654. package/esm/region/region-transformer.js +11 -0
  1655. package/esm/region/region-transformer.js.map +1 -0
  1656. package/esm/region/region.d.ts +7 -4
  1657. package/esm/region/region.js +10 -14
  1658. package/esm/region/region.js.map +1 -1
  1659. package/esm/series/area/area-transformer.d.ts +5 -0
  1660. package/esm/series/area/area-transformer.js +12 -0
  1661. package/esm/series/area/area-transformer.js.map +1 -0
  1662. package/esm/series/area/area.d.ts +5 -3
  1663. package/esm/series/area/area.js +15 -17
  1664. package/esm/series/area/area.js.map +1 -1
  1665. package/esm/series/bar/bar-3d.js +2 -3
  1666. package/esm/series/bar/bar-3d.js.map +1 -1
  1667. package/esm/series/bar/bar-transformer.d.ts +5 -0
  1668. package/esm/series/bar/bar-transformer.js +10 -0
  1669. package/esm/series/bar/bar-transformer.js.map +1 -0
  1670. package/esm/series/bar/bar.d.ts +5 -3
  1671. package/esm/series/bar/bar.js +7 -6
  1672. package/esm/series/bar/bar.js.map +1 -1
  1673. package/esm/series/base/base-series-transformer.d.ts +18 -0
  1674. package/esm/series/base/base-series-transformer.js +51 -0
  1675. package/esm/series/base/base-series-transformer.js.map +1 -0
  1676. package/esm/series/base/base-series.d.ts +7 -8
  1677. package/esm/series/base/base-series.js +26 -38
  1678. package/esm/series/base/base-series.js.map +1 -1
  1679. package/esm/series/base/index.d.ts +2 -0
  1680. package/esm/series/base/index.js +4 -0
  1681. package/esm/series/base/index.js.map +1 -0
  1682. package/esm/series/box-plot/box-plot.d.ts +2 -3
  1683. package/esm/series/box-plot/box-plot.js +3 -4
  1684. package/esm/series/box-plot/box-plot.js.map +1 -1
  1685. package/esm/series/box-plot/interface.d.ts +1 -2
  1686. package/esm/series/box-plot/interface.js.map +1 -1
  1687. package/esm/series/cartesian/cartesian.d.ts +1 -1
  1688. package/esm/series/cartesian/cartesian.js +2 -2
  1689. package/esm/series/cartesian/cartesian.js.map +1 -1
  1690. package/esm/series/circle-packing/circle-packing.js +4 -5
  1691. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  1692. package/esm/series/circle-packing/interface.d.ts +1 -2
  1693. package/esm/series/circle-packing/interface.js.map +1 -1
  1694. package/esm/series/correlation/correlation-transformer.d.ts +5 -0
  1695. package/esm/series/correlation/correlation-transformer.js +10 -0
  1696. package/esm/series/correlation/correlation-transformer.js.map +1 -0
  1697. package/esm/series/correlation/correlation.d.ts +5 -4
  1698. package/esm/series/correlation/correlation.js +10 -8
  1699. package/esm/series/correlation/correlation.js.map +1 -1
  1700. package/esm/series/dot/dot.d.ts +2 -3
  1701. package/esm/series/dot/dot.js +5 -6
  1702. package/esm/series/dot/dot.js.map +1 -1
  1703. package/esm/series/funnel/3d/funnel-3d-transformer.d.ts +6 -0
  1704. package/esm/series/funnel/3d/funnel-3d-transformer.js +10 -0
  1705. package/esm/series/funnel/3d/funnel-3d-transformer.js.map +1 -0
  1706. package/esm/series/funnel/{funnel-3d.d.ts → 3d/funnel-3d.d.ts} +9 -9
  1707. package/esm/series/funnel/{funnel-3d.js → 3d/funnel-3d.js} +15 -14
  1708. package/esm/series/funnel/3d/funnel-3d.js.map +1 -0
  1709. package/esm/series/funnel/3d/index.d.ts +2 -0
  1710. package/esm/series/funnel/3d/index.js +4 -0
  1711. package/esm/series/funnel/3d/index.js.map +1 -0
  1712. package/esm/series/funnel/funnel-transformer.d.ts +5 -0
  1713. package/esm/series/funnel/funnel-transformer.js +10 -0
  1714. package/esm/series/funnel/funnel-transformer.js.map +1 -0
  1715. package/esm/series/funnel/funnel.d.ts +5 -3
  1716. package/esm/series/funnel/funnel.js +11 -10
  1717. package/esm/series/funnel/funnel.js.map +1 -1
  1718. package/esm/series/gauge/gauge-pointer.d.ts +2 -3
  1719. package/esm/series/gauge/gauge-pointer.js +3 -4
  1720. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  1721. package/esm/series/gauge/gauge-transformer.d.ts +5 -0
  1722. package/esm/series/gauge/gauge-transformer.js +10 -0
  1723. package/esm/series/gauge/gauge-transformer.js.map +1 -0
  1724. package/esm/series/gauge/gauge.d.ts +4 -3
  1725. package/esm/series/gauge/gauge.js +9 -9
  1726. package/esm/series/gauge/gauge.js.map +1 -1
  1727. package/esm/series/geo/interface.d.ts +1 -1
  1728. package/esm/series/geo/interface.js.map +1 -1
  1729. package/esm/series/heatmap/heatmap-transformer.d.ts +5 -0
  1730. package/esm/series/heatmap/heatmap-transformer.js +10 -0
  1731. package/esm/series/heatmap/heatmap-transformer.js.map +1 -0
  1732. package/esm/series/heatmap/heatmap.d.ts +5 -4
  1733. package/esm/series/heatmap/heatmap.js +10 -11
  1734. package/esm/series/heatmap/heatmap.js.map +1 -1
  1735. package/esm/series/index.d.ts +3 -3
  1736. package/esm/series/index.js +3 -3
  1737. package/esm/series/index.js.map +1 -1
  1738. package/esm/series/interface/common.d.ts +11 -6
  1739. package/esm/series/interface/common.js.map +1 -1
  1740. package/esm/series/interface/series.d.ts +2 -3
  1741. package/esm/series/interface/series.js.map +1 -1
  1742. package/esm/series/line/line.d.ts +5 -3
  1743. package/esm/series/line/line.js +10 -7
  1744. package/esm/series/line/line.js.map +1 -1
  1745. package/esm/series/link/link.d.ts +2 -3
  1746. package/esm/series/link/link.js +3 -4
  1747. package/esm/series/link/link.js.map +1 -1
  1748. package/esm/series/map/map-transformer.d.ts +5 -0
  1749. package/esm/series/map/map-transformer.js +10 -0
  1750. package/esm/series/map/map-transformer.js.map +1 -0
  1751. package/esm/series/map/map.d.ts +8 -3
  1752. package/esm/series/map/map.js +13 -8
  1753. package/esm/series/map/map.js.map +1 -1
  1754. package/esm/series/mixin/line-mixin-transformer.d.ts +5 -0
  1755. package/esm/series/mixin/line-mixin-transformer.js +12 -0
  1756. package/esm/series/mixin/line-mixin-transformer.js.map +1 -0
  1757. package/esm/series/mixin/line-mixin.d.ts +1 -2
  1758. package/esm/series/mixin/line-mixin.js +3 -7
  1759. package/esm/series/mixin/line-mixin.js.map +1 -1
  1760. package/esm/series/pie/3d/index.d.ts +2 -0
  1761. package/esm/series/pie/3d/index.js +4 -0
  1762. package/esm/series/pie/3d/index.js.map +1 -0
  1763. package/esm/series/pie/3d/pie-3d-transformer.d.ts +5 -0
  1764. package/esm/series/pie/3d/pie-3d-transformer.js +10 -0
  1765. package/esm/series/pie/3d/pie-3d-transformer.js.map +1 -0
  1766. package/esm/series/pie/3d/pie-3d.d.ts +20 -0
  1767. package/esm/series/pie/3d/pie-3d.js +59 -0
  1768. package/esm/series/pie/3d/pie-3d.js.map +1 -0
  1769. package/esm/series/pie/interface.d.ts +3 -0
  1770. package/esm/series/pie/interface.js.map +1 -1
  1771. package/esm/series/pie/pie-transformer.d.ts +9 -0
  1772. package/esm/series/pie/pie-transformer.js +24 -0
  1773. package/esm/series/pie/pie-transformer.js.map +1 -0
  1774. package/esm/series/pie/pie.d.ts +6 -13
  1775. package/esm/series/pie/pie.js +12 -58
  1776. package/esm/series/pie/pie.js.map +1 -1
  1777. package/esm/series/polar/index.d.ts +3 -0
  1778. package/esm/series/polar/index.js +6 -0
  1779. package/esm/series/polar/index.js.map +1 -0
  1780. package/esm/series/polar/polar.d.ts +0 -1
  1781. package/esm/series/polar/polar.js +0 -7
  1782. package/esm/series/polar/polar.js.map +1 -1
  1783. package/esm/series/progress/circular/circular.d.ts +2 -3
  1784. package/esm/series/progress/circular/circular.js +4 -5
  1785. package/esm/series/progress/circular/circular.js.map +1 -1
  1786. package/esm/series/progress/linear/linear.d.ts +1 -3
  1787. package/esm/series/progress/linear/linear.js +3 -3
  1788. package/esm/series/progress/linear/linear.js.map +1 -1
  1789. package/esm/series/radar/radar.d.ts +5 -3
  1790. package/esm/series/radar/radar.js +11 -8
  1791. package/esm/series/radar/radar.js.map +1 -1
  1792. package/esm/series/range-area/range-area.js +2 -2
  1793. package/esm/series/range-area/range-area.js.map +1 -1
  1794. package/esm/series/range-column/3d/index.d.ts +2 -0
  1795. package/esm/series/range-column/3d/index.js +4 -0
  1796. package/esm/series/range-column/3d/index.js.map +1 -0
  1797. package/esm/series/range-column/3d/range-column-3d-transformer.d.ts +5 -0
  1798. package/esm/series/range-column/3d/range-column-3d-transformer.js +13 -0
  1799. package/esm/series/range-column/3d/range-column-3d-transformer.js.map +1 -0
  1800. package/esm/series/range-column/{range-column-3d.d.ts → 3d/range-column-3d.d.ts} +6 -6
  1801. package/esm/series/range-column/{range-column-3d.js → 3d/range-column-3d.js} +7 -7
  1802. package/esm/series/range-column/3d/range-column-3d.js.map +1 -0
  1803. package/esm/series/range-column/range-column-transformer.d.ts +5 -0
  1804. package/esm/series/range-column/range-column-transformer.js +13 -0
  1805. package/esm/series/range-column/range-column-transformer.js.map +1 -0
  1806. package/esm/series/range-column/range-column.d.ts +2 -0
  1807. package/esm/series/range-column/range-column.js +10 -8
  1808. package/esm/series/range-column/range-column.js.map +1 -1
  1809. package/esm/series/rose/rose-transformer.d.ts +5 -0
  1810. package/esm/series/rose/rose-transformer.js +10 -0
  1811. package/esm/series/rose/rose-transformer.js.map +1 -0
  1812. package/esm/series/rose/rose.d.ts +4 -3
  1813. package/esm/series/rose/rose.js +7 -7
  1814. package/esm/series/rose/rose.js.map +1 -1
  1815. package/esm/series/sankey/sankey.js +5 -6
  1816. package/esm/series/sankey/sankey.js.map +1 -1
  1817. package/esm/series/scatter/scatter-transformer.d.ts +5 -0
  1818. package/esm/series/scatter/scatter-transformer.js +10 -0
  1819. package/esm/series/scatter/scatter-transformer.js.map +1 -0
  1820. package/esm/series/scatter/scatter.d.ts +5 -3
  1821. package/esm/series/scatter/scatter.js +8 -6
  1822. package/esm/series/scatter/scatter.js.map +1 -1
  1823. package/esm/series/sunburst/sunburst.d.ts +1 -1
  1824. package/esm/series/sunburst/sunburst.js +4 -5
  1825. package/esm/series/sunburst/sunburst.js.map +1 -1
  1826. package/esm/series/treemap/treemap.js +4 -5
  1827. package/esm/series/treemap/treemap.js.map +1 -1
  1828. package/esm/series/waterfall/waterfall-transformer.d.ts +5 -0
  1829. package/esm/series/waterfall/waterfall-transformer.js +10 -0
  1830. package/esm/series/waterfall/waterfall-transformer.js.map +1 -0
  1831. package/esm/series/waterfall/waterfall.d.ts +4 -3
  1832. package/esm/series/waterfall/waterfall.js +12 -11
  1833. package/esm/series/waterfall/waterfall.js.map +1 -1
  1834. package/esm/series/word-cloud/word-cloud-3d.js +5 -5
  1835. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  1836. package/esm/series/word-cloud/word-cloud.js +6 -6
  1837. package/esm/series/word-cloud/word-cloud.js.map +1 -1
  1838. package/esm/theme/builtin/common/component/axis/common-axis.js +4 -0
  1839. package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  1840. package/esm/theme/builtin/common/component/crosshair.js +8 -0
  1841. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  1842. package/esm/theme/builtin/common/component/data-zoom.js +2 -4
  1843. package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
  1844. package/esm/theme/builtin/index.d.ts +0 -1
  1845. package/esm/theme/builtin/index.js +0 -2
  1846. package/esm/theme/builtin/index.js.map +1 -1
  1847. package/esm/theme/color-scheme/util.js +2 -4
  1848. package/esm/theme/color-scheme/util.js.map +1 -1
  1849. package/esm/typings/spec/common.d.ts +2 -0
  1850. package/esm/typings/spec/common.js.map +1 -1
  1851. package/esm/util/color.d.ts +1 -3
  1852. package/esm/util/color.js +1 -5
  1853. package/esm/util/color.js.map +1 -1
  1854. package/esm/util/space.d.ts +1 -3
  1855. package/esm/util/space.js +0 -12
  1856. package/esm/util/space.js.map +1 -1
  1857. package/esm/vchart-all.js +1 -1
  1858. package/esm/vchart-all.js.map +1 -1
  1859. package/package.json +16 -16
  1860. package/cjs/chart/bar/bar-3d.d.ts +0 -9
  1861. package/cjs/chart/bar/bar-3d.js +0 -30
  1862. package/cjs/chart/bar/bar-3d.js.map +0 -1
  1863. package/cjs/chart/base-chart.js.map +0 -1
  1864. package/cjs/chart/cartesian/cartesian.d.ts +0 -8
  1865. package/cjs/chart/cartesian/cartesian.js.map +0 -1
  1866. package/cjs/chart/funnel/base.d.ts +0 -9
  1867. package/cjs/chart/funnel/base.js.map +0 -1
  1868. package/cjs/chart/funnel/funnel-3d.d.ts +0 -8
  1869. package/cjs/chart/funnel/funnel-3d.js +0 -23
  1870. package/cjs/chart/funnel/funnel-3d.js.map +0 -1
  1871. package/cjs/chart/histogram/base.d.ts +0 -6
  1872. package/cjs/chart/histogram/base.js.map +0 -1
  1873. package/cjs/chart/histogram/histogram-3d.d.ts +0 -8
  1874. package/cjs/chart/histogram/histogram-3d.js +0 -23
  1875. package/cjs/chart/histogram/histogram-3d.js.map +0 -1
  1876. package/cjs/chart/pie/base.d.ts +0 -5
  1877. package/cjs/chart/pie/base.js.map +0 -1
  1878. package/cjs/chart/pie/pie-3d.d.ts +0 -9
  1879. package/cjs/chart/pie/pie-3d.js +0 -27
  1880. package/cjs/chart/pie/pie-3d.js.map +0 -1
  1881. package/cjs/chart/polar/polar.d.ts +0 -9
  1882. package/cjs/chart/polar/polar.js.map +0 -1
  1883. package/cjs/chart/polar/progress-like.d.ts +0 -7
  1884. package/cjs/chart/polar/progress-like.js.map +0 -1
  1885. package/cjs/chart/polar/rose-like.d.ts +0 -7
  1886. package/cjs/chart/polar/rose-like.js.map +0 -1
  1887. package/cjs/chart/range-column/range-column-3d.d.ts +0 -9
  1888. package/cjs/chart/range-column/range-column-3d.js +0 -31
  1889. package/cjs/chart/range-column/range-column-3d.js.map +0 -1
  1890. package/cjs/chart/word-cloud/base.d.ts +0 -6
  1891. package/cjs/chart/word-cloud/base.js +0 -25
  1892. package/cjs/chart/word-cloud/base.js.map +0 -1
  1893. package/cjs/chart/word-cloud/word-cloud-3d.d.ts +0 -11
  1894. package/cjs/chart/word-cloud/word-cloud-3d.js +0 -55
  1895. package/cjs/chart/word-cloud/word-cloud-3d.js.map +0 -1
  1896. package/cjs/component/label/totalLabel.js.map +0 -1
  1897. package/cjs/plugin/components/basic-plugin.d.ts +0 -9
  1898. package/cjs/plugin/components/basic-plugin.js +0 -19
  1899. package/cjs/plugin/components/basic-plugin.js.map +0 -1
  1900. package/cjs/series/funnel/funnel-3d.js.map +0 -1
  1901. package/cjs/series/pie/pie-3d.d.ts +0 -16
  1902. package/cjs/series/pie/pie-3d.js +0 -93
  1903. package/cjs/series/pie/pie-3d.js.map +0 -1
  1904. package/cjs/series/range-column/range-column-3d.js.map +0 -1
  1905. package/cjs/theme/builtin/common/legacy/index.d.ts +0 -1
  1906. package/cjs/theme/builtin/common/legacy/index.js.map +0 -1
  1907. package/cjs/theme/builtin/common/legacy/legend/color-legend.d.ts +0 -2
  1908. package/cjs/theme/builtin/common/legacy/legend/color-legend.js +0 -43
  1909. package/cjs/theme/builtin/common/legacy/legend/color-legend.js.map +0 -1
  1910. package/cjs/theme/builtin/common/legacy/legend/continuous.d.ts +0 -2
  1911. package/cjs/theme/builtin/common/legacy/legend/continuous.js +0 -60
  1912. package/cjs/theme/builtin/common/legacy/legend/continuous.js.map +0 -1
  1913. package/cjs/theme/builtin/common/legacy/legend/index.d.ts +0 -2
  1914. package/cjs/theme/builtin/common/legacy/legend/index.js +0 -24
  1915. package/cjs/theme/builtin/common/legacy/legend/index.js.map +0 -1
  1916. package/cjs/theme/builtin/common/legacy/legend/size-legend.d.ts +0 -2
  1917. package/cjs/theme/builtin/common/legacy/legend/size-legend.js +0 -56
  1918. package/cjs/theme/builtin/common/legacy/legend/size-legend.js.map +0 -1
  1919. package/esm/chart/bar/bar-3d.d.ts +0 -9
  1920. package/esm/chart/bar/bar-3d.js +0 -30
  1921. package/esm/chart/bar/bar-3d.js.map +0 -1
  1922. package/esm/chart/base-chart.js.map +0 -1
  1923. package/esm/chart/cartesian/cartesian.d.ts +0 -8
  1924. package/esm/chart/cartesian/cartesian.js.map +0 -1
  1925. package/esm/chart/funnel/base.d.ts +0 -9
  1926. package/esm/chart/funnel/base.js.map +0 -1
  1927. package/esm/chart/funnel/funnel-3d.d.ts +0 -8
  1928. package/esm/chart/funnel/funnel-3d.js +0 -22
  1929. package/esm/chart/funnel/funnel-3d.js.map +0 -1
  1930. package/esm/chart/histogram/base.d.ts +0 -6
  1931. package/esm/chart/histogram/base.js.map +0 -1
  1932. package/esm/chart/histogram/histogram-3d.d.ts +0 -8
  1933. package/esm/chart/histogram/histogram-3d.js +0 -22
  1934. package/esm/chart/histogram/histogram-3d.js.map +0 -1
  1935. package/esm/chart/pie/base.d.ts +0 -5
  1936. package/esm/chart/pie/base.js.map +0 -1
  1937. package/esm/chart/pie/pie-3d.d.ts +0 -9
  1938. package/esm/chart/pie/pie-3d.js +0 -27
  1939. package/esm/chart/pie/pie-3d.js.map +0 -1
  1940. package/esm/chart/polar/polar.d.ts +0 -9
  1941. package/esm/chart/polar/polar.js.map +0 -1
  1942. package/esm/chart/polar/progress-like.d.ts +0 -7
  1943. package/esm/chart/polar/progress-like.js.map +0 -1
  1944. package/esm/chart/polar/rose-like.d.ts +0 -7
  1945. package/esm/chart/polar/rose-like.js.map +0 -1
  1946. package/esm/chart/range-column/range-column-3d.d.ts +0 -9
  1947. package/esm/chart/range-column/range-column-3d.js +0 -32
  1948. package/esm/chart/range-column/range-column-3d.js.map +0 -1
  1949. package/esm/chart/word-cloud/base.d.ts +0 -6
  1950. package/esm/chart/word-cloud/base.js +0 -21
  1951. package/esm/chart/word-cloud/base.js.map +0 -1
  1952. package/esm/chart/word-cloud/word-cloud-3d.d.ts +0 -11
  1953. package/esm/chart/word-cloud/word-cloud-3d.js.map +0 -1
  1954. package/esm/component/label/totalLabel.js.map +0 -1
  1955. package/esm/plugin/components/basic-plugin.d.ts +0 -9
  1956. package/esm/plugin/components/basic-plugin.js +0 -11
  1957. package/esm/plugin/components/basic-plugin.js.map +0 -1
  1958. package/esm/series/funnel/funnel-3d.js.map +0 -1
  1959. package/esm/series/pie/pie-3d.d.ts +0 -16
  1960. package/esm/series/pie/pie-3d.js +0 -99
  1961. package/esm/series/pie/pie-3d.js.map +0 -1
  1962. package/esm/series/range-column/range-column-3d.js.map +0 -1
  1963. package/esm/theme/builtin/common/legacy/index.d.ts +0 -1
  1964. package/esm/theme/builtin/common/legacy/index.js.map +0 -1
  1965. package/esm/theme/builtin/common/legacy/legend/color-legend.d.ts +0 -2
  1966. package/esm/theme/builtin/common/legacy/legend/color-legend.js +0 -39
  1967. package/esm/theme/builtin/common/legacy/legend/color-legend.js.map +0 -1
  1968. package/esm/theme/builtin/common/legacy/legend/continuous.d.ts +0 -2
  1969. package/esm/theme/builtin/common/legacy/legend/continuous.js +0 -54
  1970. package/esm/theme/builtin/common/legacy/legend/continuous.js.map +0 -1
  1971. package/esm/theme/builtin/common/legacy/legend/index.d.ts +0 -2
  1972. package/esm/theme/builtin/common/legacy/legend/index.js +0 -4
  1973. package/esm/theme/builtin/common/legacy/legend/index.js.map +0 -1
  1974. package/esm/theme/builtin/common/legacy/legend/size-legend.d.ts +0 -2
  1975. package/esm/theme/builtin/common/legacy/legend/size-legend.js +0 -54
  1976. package/esm/theme/builtin/common/legacy/legend/size-legend.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import { isArray, isValid, isValidNumber, isNil } from '@visactor/vutils';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ICartesianCrosshairSpec } from './interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport type { BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\nimport { LineCrosshair, RectCrosshair, Tag } from '@visactor/vrender-components';\nimport type { IAxisInfo, IBound, IHair } from './base';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { getDatumByValue, limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\nimport type { IAxis } from '../axis/interface';\nimport type { IOrientType, StringOrNumber } from '../../typings';\nimport { isXAxis } from '../axis/cartesian/util/common';\nimport { Factory } from '../../core/factory';\nimport { LayoutType } from './config';\n\ninterface ICrosshairInfoX {\n height: number;\n leftPos: number;\n topPos: number;\n x: number;\n bottom: { visible: boolean; text: StringOrNumber; dx: number; dy: number };\n top: { visible: boolean; text: StringOrNumber; dx: number; dy: number };\n visible: boolean;\n _isCache?: boolean;\n axis: IAxis;\n}\ninterface ICrosshairInfoY {\n width: number;\n leftPos: number;\n topPos: number;\n y: number;\n left: { visible: boolean; text: StringOrNumber; dx: number; dy: number };\n right: { visible: boolean; text: StringOrNumber; dx: number; dy: number };\n visible: boolean;\n _isCache?: boolean;\n axis: IAxis;\n}\n\n// 1. crosshair保存上次记录的x和y轴dimension\n// 2. 每次交互触发时,首先转化成dimension保存,然后依据dimension计算x和y绘制\n// 3. 如果同方向同时有多个轴,那么同时保存这些轴的数据\n// 4. 如果同方向的轴有多个离散轴,那么直接不显示\n\nexport class CartesianCrossHair<T extends ICartesianCrosshairSpec = ICartesianCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n specKey: string = 'crosshair';\n\n static type = ComponentTypeEnum.cartesianCrosshair;\n type = ComponentTypeEnum.cartesianCrosshair;\n name: string = ComponentTypeEnum.cartesianCrosshair;\n\n private _xHair: IHair | undefined;\n private _yHair: IHair | undefined;\n\n private _cacheXCrossHairInfo: ICrosshairInfoX | undefined;\n private _cacheYCrossHairInfo: ICrosshairInfoY | undefined;\n\n private _xCrosshair: IGroup;\n private _xTopLabel: Tag;\n private _xBottomLabel: Tag;\n\n private _yCrosshair: IGroup;\n private _yLeftLabel: Tag;\n private _yRightLabel: Tag;\n\n private _currValueX: Map<number, { v: StringOrNumber; axis: IAxis }>;\n private _currValueY: Map<number, { v: StringOrNumber; axis: IAxis }>;\n\n static createComponent(spec: any, options: IComponentOption) {\n const crosshairSpec = spec.crosshair;\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.xField || crosshairSpec.yField) {\n return new CartesianCrossHair(crosshairSpec, options);\n }\n return undefined;\n }\n const components: CartesianCrossHair[] = [];\n crosshairSpec.forEach((s: ICartesianCrosshairSpec, i: number) => {\n if (s.xField || s.yField) {\n components.push(new CartesianCrossHair(s, { ...options, specIndex: i }));\n }\n });\n return components;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._currValueX = new Map();\n this._currValueY = new Map();\n }\n\n protected _showDefaultCrosshairBySpec() {\n const { xField, yField } = this._spec as ICartesianCrosshairSpec;\n if (xField?.visible && xField.defaultSelect) {\n const { axisIndex, datum } = xField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.VERTICAL);\n }\n if (yField?.visible && yField.defaultSelect) {\n const { axisIndex, datum } = yField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.HORIZONTAL);\n }\n }\n\n private _defaultCrosshair(axisIndex: number, datum: StringOrNumber, tag: number) {\n const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex) as IAxis;\n if (!axis) {\n return;\n }\n // 横轴\n if (tag === LayoutType.VERTICAL) {\n this._currValueX.clear();\n this._currValueX.set(axisIndex, { axis, v: datum });\n } else {\n this._currValueY.clear();\n this._currValueY.set(axisIndex, { axis, v: datum });\n }\n this.layoutByValue(tag);\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IAxis>('x');\n const yAxisMap = this._getAxisInfoByField<IAxis>('y');\n return {\n xAxisMap: this._filterAxisByPoint(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint(yAxisMap, relativeX, relativeY)\n };\n }\n\n private _getValueAt(axis: IAxis, p: number): number | string {\n let value = axis.getScale().invert(p);\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n return value;\n }\n\n /**\n * clear axis value of crosshair\n */\n clearAxisValue() {\n this._currValueX.clear();\n this._currValueY.clear();\n }\n\n /**\n * set axis value of crosshair\n */\n setAxisValue(v: StringOrNumber, axis: IAxis) {\n if (isXAxis(axis.getOrient() as unknown as IOrientType)) {\n this._currValueX.set(axis.getSpecIndex(), {\n v,\n axis\n });\n } else {\n this._currValueY.set(axis.getSpecIndex(), {\n v,\n axis\n });\n }\n }\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n private _getAllAxisValues(\n axisMap: IAxisInfo<IAxis>,\n p: number,\n currValue: Map<number, { v: StringOrNumber; axis: IAxis }>,\n vertical: boolean\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n currValue.set(id, {\n v: this._getValueAt(\n axis,\n p -\n (vertical\n ? axis.getLayoutStartPoint().x - this.getLayoutStartPoint().x\n : axis.getLayoutStartPoint().y - this.getLayoutStartPoint().y)\n ),\n axis\n });\n });\n return true;\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this._findAllAxisContains(relativeX, relativeY);\n if (xAxisMap && xAxisMap.size === 0 && yAxisMap && yAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this._currValueX.clear();\n this._currValueY.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && xAxisMap.size && this._getAllAxisValues(xAxisMap, relativeX, this._currValueX, true);\n yAxisMap && yAxisMap.size && this._getAllAxisValues(yAxisMap, relativeY, this._currValueY, false);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n hide() {\n // 隐藏\n this._xCrosshair && this._xCrosshair.hideAll();\n this._xTopLabel && this._xTopLabel.hideAll();\n this._xBottomLabel && this._xBottomLabel.hideAll();\n\n this._yCrosshair && this._yCrosshair.hideAll();\n this._yLeftLabel && this._yLeftLabel.hideAll();\n this._yRightLabel && this._yRightLabel.hideAll();\n }\n\n layoutByValue(tag: number = LayoutType.ALL) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<ICartesianSeries>();\n if (!series) {\n return;\n }\n let xCrossHairInfo: ICrosshairInfoX = {\n height: 0,\n leftPos: 0,\n topPos: 0,\n x: 0,\n bottom: { visible: false, text: '', dx: 0, dy: 0 },\n top: { visible: false, text: '', dx: 0, dy: 0 },\n visible: false,\n axis: null\n };\n let yCrossHairInfo: ICrosshairInfoY = {\n width: 0,\n leftPos: 0,\n topPos: 0,\n y: 0,\n left: { visible: false, text: '', dx: 0, dy: 0 },\n right: { visible: false, text: '', dx: 0, dy: 0 },\n visible: false,\n axis: null\n };\n // 计算x轴和y轴对应的region区域\n const getRegionArea = (outRegion: IBound, currentValue: Map<number, { v: StringOrNumber; axis: IAxis }>) => {\n currentValue.forEach(({ axis }) => {\n const regions = axis.getRegions();\n regions.forEach(r => {\n outRegion.x1 = Math.min(outRegion.x1, r.getLayoutStartPoint().x);\n outRegion.y1 = Math.min(outRegion.y1, r.getLayoutStartPoint().y);\n outRegion.x2 = Math.max(outRegion.x2, r.getLayoutStartPoint().x + r.getLayoutRect().width);\n outRegion.y2 = Math.max(outRegion.y2, r.getLayoutStartPoint().y + r.getLayoutRect().height);\n });\n });\n };\n // 计算x和y的坐标\n let x = 0;\n let y = 0;\n if (this._currValueX.size) {\n const item = Array.from(this._currValueX.values())[0];\n x = item.axis.getScale().scale(item.v) + item.axis.getLayoutStartPoint().x - this.getLayoutStartPoint().x;\n xCrossHairInfo.axis = item.axis;\n }\n if (this._currValueY.size) {\n const item = Array.from(this._currValueY.values())[0];\n y = item.axis.getScale().scale(item.v) + item.axis.getLayoutStartPoint().y - this.getLayoutStartPoint().y;\n yCrossHairInfo.axis = item.axis;\n }\n\n xCrossHairInfo.visible = !!this._currValueX.size && Number.isFinite(x);\n yCrossHairInfo.visible = !!this._currValueY.size && Number.isFinite(y);\n\n const xRegion = { x1: Infinity, y1: Infinity, x2: -Infinity, y2: -Infinity };\n const yRegion = { x1: Infinity, y1: Infinity, x2: -Infinity, y2: -Infinity };\n getRegionArea(xRegion, this._currValueX);\n getRegionArea(yRegion, this._currValueY);\n\n let indexWidth;\n let valueHeight;\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this._xHair) {\n this._currValueX.forEach(({ axis, v }) => {\n v = v ?? '';\n const xScale = axis.getScale();\n if (isDiscrete(xScale.type)) {\n indexWidth = (xScale as BandScale).bandwidth();\n } else if (isContinuous(xScale.type)) {\n const fieldX = series.fieldX[0];\n const fieldX2 = series.fieldX2;\n const datum = getDatumByValue(series.getViewData().latestData, +v, fieldX, fieldX2);\n if (datum) {\n const startX = series.dataToPositionX(datum);\n if (fieldX2) {\n indexWidth = Math.abs(startX - series.dataToPositionX1(datum));\n v = `${datum[fieldX]} ~ ${datum[fieldX2]}`;\n } else {\n indexWidth = 1;\n }\n x = startX;\n }\n }\n if (this._xHair.label?.visible) {\n const labelOffset = getAxisLabelOffset(axis.getSpec());\n if (axis.getOrient() === 'bottom') {\n xCrossHairInfo.bottom.visible = true;\n xCrossHairInfo.bottom.text = v;\n xCrossHairInfo.bottom.dx = 0;\n xCrossHairInfo.bottom.dy = labelOffset;\n } else if (axis.getOrient() === 'top') {\n xCrossHairInfo.top.visible = true;\n xCrossHairInfo.top.text = v;\n xCrossHairInfo.top.dx = 0;\n xCrossHairInfo.top.dy = -labelOffset;\n }\n }\n });\n }\n\n if (this._yHair) {\n this._currValueY.forEach(({ axis, v }) => {\n v = v ?? '';\n const yScale = axis.getScale();\n if (isDiscrete(yScale.type)) {\n valueHeight = (yScale as BandScale).bandwidth();\n } else if (isContinuous(yScale.type)) {\n const fieldY = series.fieldY[0];\n const fieldY2 = series.fieldY2;\n const datum = getDatumByValue(series.getViewData().latestData, +v, fieldY, fieldY2);\n if (datum) {\n const startY = series.dataToPositionY(datum);\n if (fieldY2) {\n valueHeight = Math.abs(startY - series.dataToPositionY1(datum));\n v = `${datum[fieldY]} ~ ${datum[fieldY2]}`;\n } else {\n valueHeight = 1;\n }\n y = startY;\n }\n }\n if (this._yHair.label?.visible) {\n const labelOffset = getAxisLabelOffset(axis.getSpec());\n if (axis.getOrient() === 'left') {\n yCrossHairInfo.left.visible = true;\n yCrossHairInfo.left.text = v;\n yCrossHairInfo.left.dx = -labelOffset;\n yCrossHairInfo.left.dy = 0;\n } else if (axis.getOrient() === 'right') {\n yCrossHairInfo.right.visible = true;\n yCrossHairInfo.right.text = v;\n yCrossHairInfo.right.dx = labelOffset;\n yCrossHairInfo.right.dy = 0;\n }\n }\n });\n }\n\n if (this.enableRemain && !xCrossHairInfo.visible && isValid(this._cacheXCrossHairInfo)) {\n xCrossHairInfo = this._cacheXCrossHairInfo;\n } else {\n xCrossHairInfo.leftPos = xRegion.x1;\n xCrossHairInfo.topPos = xRegion.y1;\n xCrossHairInfo.height = xRegion.y2 - xRegion.y1;\n xCrossHairInfo.x = x + this.getLayoutStartPoint().x;\n if (this._xHair?.label?.formatMethod) {\n const { top, bottom } = xCrossHairInfo;\n bottom.visible && (bottom.text = this._xHair.label.formatMethod(bottom.text, 'bottom') as string);\n top.visible && (top.text = this._xHair.label.formatMethod(top.text, 'top') as string);\n }\n }\n\n if (this.enableRemain && !yCrossHairInfo.visible && isValid(this._cacheYCrossHairInfo)) {\n yCrossHairInfo = this._cacheYCrossHairInfo;\n } else {\n yCrossHairInfo.leftPos = yRegion.x1;\n yCrossHairInfo.topPos = yRegion.y1;\n yCrossHairInfo.width = yRegion.x2 - yRegion.x1;\n yCrossHairInfo.y = y + this.getLayoutStartPoint().y;\n if (this._yHair?.label?.formatMethod) {\n const { left, right } = yCrossHairInfo;\n left.visible && (left.text = this._yHair.label.formatMethod(left.text, 'left') as string);\n right.visible && (right.text = this._yHair.label.formatMethod(right.text, 'right') as string);\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(yCrossHairInfo, valueHeight ?? 0);\n LayoutType.VERTICAL && this._layoutVertical(xCrossHairInfo, indexWidth ?? 0);\n }\n\n if (this.enableRemain) {\n this._cacheXCrossHairInfo = { ...xCrossHairInfo, _isCache: true };\n this._cacheYCrossHairInfo = { ...yCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfoX, bandWidth: number) {\n if ((crosshairInfo._isCache && this.enableRemain) || !this._xHair) {\n return;\n }\n\n const { x, topPos, height, top, bottom, visible } = crosshairInfo;\n\n if (visible) {\n // 外部设置的size\n const type = this._xHair.type;\n let positionAttribute;\n if (type === 'line') {\n positionAttribute = {\n start: { x: x + bandWidth / 2, y: topPos },\n end: { x: x + bandWidth / 2, y: topPos + height }\n };\n } else if (type === 'rect') {\n const extend = this._getRectSize(this._xHair, bandWidth, crosshairInfo.axis);\n\n positionAttribute = {\n start: { x: x - extend / 2, y: topPos },\n end: { x: x + bandWidth + extend / 2, y: topPos + height }\n };\n }\n this._updateCrosshair('x', type, positionAttribute);\n // 文本\n if (top.visible) {\n const updateAttrs = {\n x: x + bandWidth / 2,\n y: topPos,\n ...top,\n ...this._xHair.label,\n textStyle: {\n ...this._xHair.label?.textStyle,\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._xTopLabel, updateAttrs, label => {\n label.name = 'crosshair-x-top-label';\n this._xTopLabel = label;\n });\n } else {\n this._xTopLabel && this._xTopLabel.hideAll();\n }\n\n if (bottom.visible) {\n const updateAttrs = {\n x: x + bandWidth / 2,\n y: topPos + height,\n ...bottom,\n ...this._xHair.label,\n textStyle: {\n ...this._xHair.label?.textStyle,\n textAlign: 'center',\n textBaseline: 'top'\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._xBottomLabel, updateAttrs, label => {\n label.name = 'crosshair-x-bottom-label';\n this._xBottomLabel = label;\n });\n } else {\n this._xBottomLabel && this._xBottomLabel.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfoY, bandHeight: number) {\n if ((crosshairInfo._isCache && this.enableRemain) || !this._yHair) {\n return;\n }\n const { leftPos, width, y, left, right, visible } = crosshairInfo;\n if (visible) {\n const type = this._yHair.type;\n let positionAttribute;\n if (type === 'line') {\n positionAttribute = {\n start: { x: leftPos, y: y + bandHeight / 2 },\n end: { x: leftPos + width, y: y + bandHeight / 2 }\n };\n } else if (type === 'rect') {\n const extend = this._getRectSize(this._yHair, bandHeight, crosshairInfo.axis);\n\n positionAttribute = {\n start: { x: leftPos, y: y - extend / 2 },\n end: { x: leftPos + width, y: y + bandHeight + extend / 2 }\n };\n }\n this._updateCrosshair('y', type, positionAttribute);\n\n // 文本\n if (left.visible) {\n const updateAttrs = {\n x: leftPos,\n y: y + bandHeight / 2,\n ...left,\n ...this._yHair.label,\n textStyle: {\n ...this._yHair.label?.textStyle,\n textAlign: 'right',\n textBaseline: 'middle'\n },\n zIndex: this.labelZIndex\n };\n\n this._updateCrosshairLabel(this._yLeftLabel, updateAttrs, label => {\n label.name = 'crosshair-y-left-label';\n this._yLeftLabel = label;\n });\n } else {\n this._yLeftLabel && this._yLeftLabel.hideAll();\n }\n\n if (right.visible) {\n const updateAttrs = {\n x: leftPos + width,\n y: y + bandHeight,\n ...right,\n ...this._yHair.label,\n textStyle: {\n ...this._yHair.label?.textStyle,\n textAlign: 'left',\n textBaseline: 'middle'\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._yRightLabel, updateAttrs, label => {\n label.name = 'crosshair-y-right-label';\n this._yRightLabel = label;\n });\n } else {\n this._yRightLabel && this._yRightLabel.hideAll();\n }\n }\n }\n\n private _getRectSize(hair: IHair, bandSize: number, axis: IAxis) {\n // 外部设置的size\n let extend = 0;\n if (hair.style?.sizePercent) {\n extend = (hair.style.sizePercent - 1) * bandSize;\n } else if (typeof hair.style?.size === 'number') {\n extend = hair.style.size - bandSize;\n } else if (typeof hair.style?.size === 'function') {\n const axisRect = axis.getLayoutRect();\n extend = hair.style.size(axisRect, axis) - bandSize;\n }\n\n return extend;\n }\n\n protected _parseFieldInfo() {\n const { xField, yField } = this._spec as ICartesianCrosshairSpec;\n if (xField && xField.visible) {\n this._xHair = this._parseField(xField, 'xField');\n }\n if (yField && yField.visible) {\n this._yHair = this._parseField(yField, 'yField');\n }\n }\n\n private _updateCrosshair(dim: string, type: string, attributes: any) {\n const container = this.getContainer();\n let crosshair;\n let style;\n if (dim === 'x') {\n crosshair = this._xCrosshair;\n style = this._xHair.style;\n } else {\n crosshair = this._yCrosshair;\n style = this._yHair.style;\n }\n if (crosshair) {\n crosshair.setAttributes(attributes);\n } else {\n // 创建\n if (type === 'line') {\n crosshair = new LineCrosshair({\n ...attributes,\n lineStyle: style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else if (type === 'rect') {\n crosshair = new RectCrosshair({\n ...attributes,\n rectStyle: style,\n zIndex: this.gridZIndex\n });\n }\n // 添加至场景树\n container?.add(crosshair as unknown as INode);\n if (dim === 'x') {\n this._xCrosshair = crosshair as unknown as IGroup;\n } else {\n this._yCrosshair = crosshair as unknown as IGroup;\n }\n }\n }\n\n private _updateCrosshairLabel(label: Tag, attributes: any, callback: (label: Tag) => void) {\n const container = this.getContainer();\n if (label) {\n label.setAttributes(attributes);\n } else {\n label = new Tag(attributes);\n callback(label);\n container?.add(label as unknown as INode);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [\n this._xCrosshair,\n this._xTopLabel,\n this._xBottomLabel,\n this._yCrosshair,\n this._yLeftLabel,\n this._yRightLabel\n ] as unknown as IGraphic[];\n }\n}\n\nexport const registerCartesianCrossHair = () => {\n Factory.registerComponent(CartesianCrossHair.type, CartesianCrossHair);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\nimport { isArray, isValid, isValidNumber, isNil } from '@visactor/vutils';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ICartesianCrosshairSpec } from './interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport type { BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\nimport { LineCrosshair, RectCrosshair, Tag } from '@visactor/vrender-components';\nimport type { IAxisInfo, IBound, IHair } from './base';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { getDatumByValue, limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\nimport type { IAxis } from '../axis/interface';\nimport type { IOrientType, StringOrNumber } from '../../typings';\nimport { isXAxis } from '../axis/cartesian/util/common';\nimport { Factory } from '../../core/factory';\nimport { LayoutType } from './config';\nimport type { IModelSpecInfo } from '../../model/interface';\n\ninterface ICrosshairInfoX {\n height: number;\n leftPos: number;\n topPos: number;\n x: number;\n bottom: { visible: boolean; text: StringOrNumber; dx: number; dy: number };\n top: { visible: boolean; text: StringOrNumber; dx: number; dy: number };\n visible: boolean;\n _isCache?: boolean;\n axis: IAxis;\n}\ninterface ICrosshairInfoY {\n width: number;\n leftPos: number;\n topPos: number;\n y: number;\n left: { visible: boolean; text: StringOrNumber; dx: number; dy: number };\n right: { visible: boolean; text: StringOrNumber; dx: number; dy: number };\n visible: boolean;\n _isCache?: boolean;\n axis: IAxis;\n}\n\n// 1. crosshair保存上次记录的x和y轴dimension\n// 2. 每次交互触发时,首先转化成dimension保存,然后依据dimension计算x和y绘制\n// 3. 如果同方向同时有多个轴,那么同时保存这些轴的数据\n// 4. 如果同方向的轴有多个离散轴,那么直接不显示\n\nexport class CartesianCrossHair<T extends ICartesianCrosshairSpec = ICartesianCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n\n static type = ComponentTypeEnum.cartesianCrosshair;\n type = ComponentTypeEnum.cartesianCrosshair;\n name: string = ComponentTypeEnum.cartesianCrosshair;\n\n private _xHair: IHair | undefined;\n private _yHair: IHair | undefined;\n\n private _cacheXCrossHairInfo: ICrosshairInfoX | undefined;\n private _cacheYCrossHairInfo: ICrosshairInfoY | undefined;\n\n private _xCrosshair: IGroup;\n private _xTopLabel: Tag;\n private _xBottomLabel: Tag;\n\n private _yCrosshair: IGroup;\n private _yLeftLabel: Tag;\n private _yRightLabel: Tag;\n\n private _currValueX: Map<number, { v: StringOrNumber; axis: IAxis }>;\n private _currValueY: Map<number, { v: StringOrNumber; axis: IAxis }>;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const crosshairSpec = chartSpec[this.specKey];\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.xField || crosshairSpec.yField) {\n return [\n {\n spec: crosshairSpec,\n specPath: [this.specKey],\n type: ComponentTypeEnum.cartesianCrosshair\n }\n ];\n }\n return undefined;\n }\n const specInfos: IModelSpecInfo[] = [];\n crosshairSpec.forEach((s: ICartesianCrosshairSpec, i: number) => {\n if (s.xField || s.yField) {\n specInfos.push({\n spec: s,\n specIndex: i,\n specPath: [this.specKey, i],\n type: ComponentTypeEnum.cartesianCrosshair\n });\n }\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._currValueX = new Map();\n this._currValueY = new Map();\n }\n\n protected _showDefaultCrosshairBySpec() {\n const { xField, yField } = this._spec as ICartesianCrosshairSpec;\n if (xField?.visible && xField.defaultSelect) {\n const { axisIndex, datum } = xField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.VERTICAL);\n }\n if (yField?.visible && yField.defaultSelect) {\n const { axisIndex, datum } = yField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.HORIZONTAL);\n }\n }\n\n private _defaultCrosshair(axisIndex: number, datum: StringOrNumber, tag: number) {\n const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex) as IAxis;\n if (!axis) {\n return;\n }\n // 横轴\n if (tag === LayoutType.VERTICAL) {\n this._currValueX.clear();\n this._currValueX.set(axisIndex, { axis, v: datum });\n } else {\n this._currValueY.clear();\n this._currValueY.set(axisIndex, { axis, v: datum });\n }\n this.layoutByValue(tag);\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IAxis>('x');\n const yAxisMap = this._getAxisInfoByField<IAxis>('y');\n return {\n xAxisMap: this._filterAxisByPoint(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint(yAxisMap, relativeX, relativeY)\n };\n }\n\n private _getValueAt(axis: IAxis, p: number): number | string {\n let value = axis.getScale().invert(p);\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n return value;\n }\n\n /**\n * clear axis value of crosshair\n */\n clearAxisValue() {\n this._currValueX.clear();\n this._currValueY.clear();\n }\n\n /**\n * set axis value of crosshair\n */\n setAxisValue(v: StringOrNumber, axis: IAxis) {\n if (isXAxis(axis.getOrient() as unknown as IOrientType)) {\n this._currValueX.set(axis.getSpecIndex(), {\n v,\n axis\n });\n } else {\n this._currValueY.set(axis.getSpecIndex(), {\n v,\n axis\n });\n }\n }\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n private _getAllAxisValues(\n axisMap: IAxisInfo<IAxis>,\n p: number,\n currValue: Map<number, { v: StringOrNumber; axis: IAxis }>,\n vertical: boolean\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n currValue.set(id, {\n v: this._getValueAt(\n axis,\n p -\n (vertical\n ? axis.getLayoutStartPoint().x - this.getLayoutStartPoint().x\n : axis.getLayoutStartPoint().y - this.getLayoutStartPoint().y)\n ),\n axis\n });\n });\n return true;\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this._findAllAxisContains(relativeX, relativeY);\n if (xAxisMap && xAxisMap.size === 0 && yAxisMap && yAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this._currValueX.clear();\n this._currValueY.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && xAxisMap.size && this._getAllAxisValues(xAxisMap, relativeX, this._currValueX, true);\n yAxisMap && yAxisMap.size && this._getAllAxisValues(yAxisMap, relativeY, this._currValueY, false);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n hide() {\n // 隐藏\n this._xCrosshair && this._xCrosshair.hideAll();\n this._xTopLabel && this._xTopLabel.hideAll();\n this._xBottomLabel && this._xBottomLabel.hideAll();\n\n this._yCrosshair && this._yCrosshair.hideAll();\n this._yLeftLabel && this._yLeftLabel.hideAll();\n this._yRightLabel && this._yRightLabel.hideAll();\n }\n\n layoutByValue(tag: number = LayoutType.ALL) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<ICartesianSeries>();\n if (!series) {\n return;\n }\n let xCrossHairInfo: ICrosshairInfoX = {\n height: 0,\n leftPos: 0,\n topPos: 0,\n x: 0,\n bottom: { visible: false, text: '', dx: 0, dy: 0 },\n top: { visible: false, text: '', dx: 0, dy: 0 },\n visible: false,\n axis: null\n };\n let yCrossHairInfo: ICrosshairInfoY = {\n width: 0,\n leftPos: 0,\n topPos: 0,\n y: 0,\n left: { visible: false, text: '', dx: 0, dy: 0 },\n right: { visible: false, text: '', dx: 0, dy: 0 },\n visible: false,\n axis: null\n };\n // 计算x轴和y轴对应的region区域\n const getRegionArea = (outRegion: IBound, currentValue: Map<number, { v: StringOrNumber; axis: IAxis }>) => {\n currentValue.forEach(({ axis }) => {\n const regions = axis.getRegions();\n regions.forEach(r => {\n outRegion.x1 = Math.min(outRegion.x1, r.getLayoutStartPoint().x);\n outRegion.y1 = Math.min(outRegion.y1, r.getLayoutStartPoint().y);\n outRegion.x2 = Math.max(outRegion.x2, r.getLayoutStartPoint().x + r.getLayoutRect().width);\n outRegion.y2 = Math.max(outRegion.y2, r.getLayoutStartPoint().y + r.getLayoutRect().height);\n });\n });\n };\n // 计算x和y的坐标\n let x = 0;\n let y = 0;\n if (this._currValueX.size) {\n const item = Array.from(this._currValueX.values())[0];\n x = item.axis.getScale().scale(item.v) + item.axis.getLayoutStartPoint().x - this.getLayoutStartPoint().x;\n xCrossHairInfo.axis = item.axis;\n }\n if (this._currValueY.size) {\n const item = Array.from(this._currValueY.values())[0];\n y = item.axis.getScale().scale(item.v) + item.axis.getLayoutStartPoint().y - this.getLayoutStartPoint().y;\n yCrossHairInfo.axis = item.axis;\n }\n\n xCrossHairInfo.visible = !!this._currValueX.size && Number.isFinite(x);\n yCrossHairInfo.visible = !!this._currValueY.size && Number.isFinite(y);\n\n const xRegion = { x1: Infinity, y1: Infinity, x2: -Infinity, y2: -Infinity };\n const yRegion = { x1: Infinity, y1: Infinity, x2: -Infinity, y2: -Infinity };\n getRegionArea(xRegion, this._currValueX);\n getRegionArea(yRegion, this._currValueY);\n\n let indexWidth;\n let valueHeight;\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this._xHair) {\n this._currValueX.forEach(({ axis, v }) => {\n v = v ?? '';\n const xScale = axis.getScale();\n if (isDiscrete(xScale.type)) {\n indexWidth = (xScale as BandScale).bandwidth();\n } else if (isContinuous(xScale.type)) {\n const fieldX = series.fieldX[0];\n const fieldX2 = series.fieldX2;\n const datum = getDatumByValue(series.getViewData().latestData, +v, fieldX, fieldX2);\n if (datum) {\n const startX = series.dataToPositionX(datum);\n if (fieldX2) {\n indexWidth = Math.abs(startX - series.dataToPositionX1(datum));\n v = `${datum[fieldX]} ~ ${datum[fieldX2]}`;\n } else {\n indexWidth = 1;\n }\n x = startX;\n }\n }\n if (this._xHair.label?.visible) {\n const labelOffset = getAxisLabelOffset(axis.getSpec());\n if (axis.getOrient() === 'bottom') {\n xCrossHairInfo.bottom.visible = true;\n xCrossHairInfo.bottom.text = v;\n xCrossHairInfo.bottom.dx = 0;\n xCrossHairInfo.bottom.dy = labelOffset;\n } else if (axis.getOrient() === 'top') {\n xCrossHairInfo.top.visible = true;\n xCrossHairInfo.top.text = v;\n xCrossHairInfo.top.dx = 0;\n xCrossHairInfo.top.dy = -labelOffset;\n }\n }\n });\n }\n\n if (this._yHair) {\n this._currValueY.forEach(({ axis, v }) => {\n v = v ?? '';\n const yScale = axis.getScale();\n if (isDiscrete(yScale.type)) {\n valueHeight = (yScale as BandScale).bandwidth();\n } else if (isContinuous(yScale.type)) {\n const fieldY = series.fieldY[0];\n const fieldY2 = series.fieldY2;\n const datum = getDatumByValue(series.getViewData().latestData, +v, fieldY, fieldY2);\n if (datum) {\n const startY = series.dataToPositionY(datum);\n if (fieldY2) {\n valueHeight = Math.abs(startY - series.dataToPositionY1(datum));\n v = `${datum[fieldY]} ~ ${datum[fieldY2]}`;\n } else {\n valueHeight = 1;\n }\n y = startY;\n }\n }\n if (this._yHair.label?.visible) {\n const labelOffset = getAxisLabelOffset(axis.getSpec());\n if (axis.getOrient() === 'left') {\n yCrossHairInfo.left.visible = true;\n yCrossHairInfo.left.text = v;\n yCrossHairInfo.left.dx = -labelOffset;\n yCrossHairInfo.left.dy = 0;\n } else if (axis.getOrient() === 'right') {\n yCrossHairInfo.right.visible = true;\n yCrossHairInfo.right.text = v;\n yCrossHairInfo.right.dx = labelOffset;\n yCrossHairInfo.right.dy = 0;\n }\n }\n });\n }\n\n if (this.enableRemain && !xCrossHairInfo.visible && isValid(this._cacheXCrossHairInfo)) {\n xCrossHairInfo = this._cacheXCrossHairInfo;\n } else {\n xCrossHairInfo.leftPos = xRegion.x1;\n xCrossHairInfo.topPos = xRegion.y1;\n xCrossHairInfo.height = xRegion.y2 - xRegion.y1;\n xCrossHairInfo.x = x + this.getLayoutStartPoint().x;\n if (this._xHair?.label?.formatMethod) {\n const { top, bottom } = xCrossHairInfo;\n bottom.visible && (bottom.text = this._xHair.label.formatMethod(bottom.text, 'bottom') as string);\n top.visible && (top.text = this._xHair.label.formatMethod(top.text, 'top') as string);\n }\n }\n\n if (this.enableRemain && !yCrossHairInfo.visible && isValid(this._cacheYCrossHairInfo)) {\n yCrossHairInfo = this._cacheYCrossHairInfo;\n } else {\n yCrossHairInfo.leftPos = yRegion.x1;\n yCrossHairInfo.topPos = yRegion.y1;\n yCrossHairInfo.width = yRegion.x2 - yRegion.x1;\n yCrossHairInfo.y = y + this.getLayoutStartPoint().y;\n if (this._yHair?.label?.formatMethod) {\n const { left, right } = yCrossHairInfo;\n left.visible && (left.text = this._yHair.label.formatMethod(left.text, 'left') as string);\n right.visible && (right.text = this._yHair.label.formatMethod(right.text, 'right') as string);\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(yCrossHairInfo, valueHeight ?? 0);\n LayoutType.VERTICAL && this._layoutVertical(xCrossHairInfo, indexWidth ?? 0);\n }\n\n if (this.enableRemain) {\n this._cacheXCrossHairInfo = { ...xCrossHairInfo, _isCache: true };\n this._cacheYCrossHairInfo = { ...yCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfoX, bandWidth: number) {\n if ((crosshairInfo._isCache && this.enableRemain) || !this._xHair) {\n return;\n }\n\n const { x, topPos, height, top, bottom, visible } = crosshairInfo;\n\n if (visible) {\n // 外部设置的size\n const type = this._xHair.type;\n let positionAttribute;\n if (type === 'line') {\n positionAttribute = {\n start: { x: x + bandWidth / 2, y: topPos },\n end: { x: x + bandWidth / 2, y: topPos + height }\n };\n } else if (type === 'rect') {\n const extend = this._getRectSize(this._xHair, bandWidth, crosshairInfo.axis);\n\n positionAttribute = {\n start: { x: x - extend / 2, y: topPos },\n end: { x: x + bandWidth + extend / 2, y: topPos + height }\n };\n }\n this._updateCrosshair('x', type, positionAttribute);\n // 文本\n if (top.visible) {\n const updateAttrs = {\n x: x + bandWidth / 2,\n y: topPos,\n ...top,\n ...this._xHair.label,\n textStyle: {\n ...this._xHair.label?.textStyle,\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._xTopLabel, updateAttrs, label => {\n label.name = 'crosshair-x-top-label';\n this._xTopLabel = label;\n });\n } else {\n this._xTopLabel && this._xTopLabel.hideAll();\n }\n\n if (bottom.visible) {\n const updateAttrs = {\n x: x + bandWidth / 2,\n y: topPos + height,\n ...bottom,\n ...this._xHair.label,\n textStyle: {\n ...this._xHair.label?.textStyle,\n textAlign: 'center',\n textBaseline: 'top'\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._xBottomLabel, updateAttrs, label => {\n label.name = 'crosshair-x-bottom-label';\n this._xBottomLabel = label;\n });\n } else {\n this._xBottomLabel && this._xBottomLabel.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfoY, bandHeight: number) {\n if ((crosshairInfo._isCache && this.enableRemain) || !this._yHair) {\n return;\n }\n const { leftPos, width, y, left, right, visible } = crosshairInfo;\n if (visible) {\n const type = this._yHair.type;\n let positionAttribute;\n if (type === 'line') {\n positionAttribute = {\n start: { x: leftPos, y: y + bandHeight / 2 },\n end: { x: leftPos + width, y: y + bandHeight / 2 }\n };\n } else if (type === 'rect') {\n const extend = this._getRectSize(this._yHair, bandHeight, crosshairInfo.axis);\n\n positionAttribute = {\n start: { x: leftPos, y: y - extend / 2 },\n end: { x: leftPos + width, y: y + bandHeight + extend / 2 }\n };\n }\n this._updateCrosshair('y', type, positionAttribute);\n\n // 文本\n if (left.visible) {\n const updateAttrs = {\n x: leftPos,\n y: y + bandHeight / 2,\n ...left,\n ...this._yHair.label,\n textStyle: {\n ...this._yHair.label?.textStyle,\n textAlign: 'right',\n textBaseline: 'middle'\n },\n zIndex: this.labelZIndex\n };\n\n this._updateCrosshairLabel(this._yLeftLabel, updateAttrs, label => {\n label.name = 'crosshair-y-left-label';\n this._yLeftLabel = label;\n });\n } else {\n this._yLeftLabel && this._yLeftLabel.hideAll();\n }\n\n if (right.visible) {\n const updateAttrs = {\n x: leftPos + width,\n y: y + bandHeight,\n ...right,\n ...this._yHair.label,\n textStyle: {\n ...this._yHair.label?.textStyle,\n textAlign: 'left',\n textBaseline: 'middle'\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._yRightLabel, updateAttrs, label => {\n label.name = 'crosshair-y-right-label';\n this._yRightLabel = label;\n });\n } else {\n this._yRightLabel && this._yRightLabel.hideAll();\n }\n }\n }\n\n private _getRectSize(hair: IHair, bandSize: number, axis: IAxis) {\n // 外部设置的size\n let extend = 0;\n if (hair.style?.sizePercent) {\n extend = (hair.style.sizePercent - 1) * bandSize;\n } else if (typeof hair.style?.size === 'number') {\n extend = hair.style.size - bandSize;\n } else if (typeof hair.style?.size === 'function') {\n const axisRect = axis.getLayoutRect();\n extend = hair.style.size(axisRect, axis) - bandSize;\n }\n\n return extend;\n }\n\n protected _parseFieldInfo() {\n const { xField, yField } = this._spec as ICartesianCrosshairSpec;\n if (xField && xField.visible) {\n this._xHair = this._parseField(xField, 'xField');\n }\n if (yField && yField.visible) {\n this._yHair = this._parseField(yField, 'yField');\n }\n }\n\n private _updateCrosshair(dim: string, type: string, attributes: any) {\n const container = this.getContainer();\n let crosshair;\n let style;\n if (dim === 'x') {\n crosshair = this._xCrosshair;\n style = this._xHair.style;\n } else {\n crosshair = this._yCrosshair;\n style = this._yHair.style;\n }\n if (crosshair) {\n crosshair.setAttributes(attributes);\n } else {\n // 创建\n if (type === 'line') {\n crosshair = new LineCrosshair({\n ...attributes,\n lineStyle: style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else if (type === 'rect') {\n crosshair = new RectCrosshair({\n ...attributes,\n rectStyle: style,\n zIndex: this.gridZIndex\n });\n }\n // 添加至场景树\n container?.add(crosshair as unknown as INode);\n if (dim === 'x') {\n this._xCrosshair = crosshair as unknown as IGroup;\n } else {\n this._yCrosshair = crosshair as unknown as IGroup;\n }\n }\n }\n\n private _updateCrosshairLabel(label: Tag, attributes: any, callback: (label: Tag) => void) {\n const container = this.getContainer();\n if (label) {\n label.setAttributes(attributes);\n } else {\n label = new Tag(attributes);\n callback(label);\n container?.add(label as unknown as INode);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [\n this._xCrosshair,\n this._xTopLabel,\n this._xBottomLabel,\n this._yCrosshair,\n this._yLeftLabel,\n this._yRightLabel\n ] as unknown as IGraphic[];\n }\n}\n\nexport const registerCartesianCrossHair = () => {\n Factory.registerComponent(CartesianCrossHair.type, CartesianCrossHair);\n};\n"]}
@@ -2,10 +2,11 @@ import type { IComponentOption } from '../interface';
2
2
  import { ComponentTypeEnum } from '../interface/type';
3
3
  import type { IPolarCrosshairSpec } from './interface';
4
4
  import { BaseCrossHair } from './base';
5
+ import type { Maybe } from '@visactor/vutils';
5
6
  import type { IGraphic } from '@visactor/vrender-core';
7
+ import type { IModelSpecInfo } from '../../model/interface';
6
8
  export declare class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {
7
9
  static specKey: string;
8
- specKey: string;
9
10
  static type: ComponentTypeEnum;
10
11
  type: ComponentTypeEnum;
11
12
  name: string;
@@ -19,7 +20,7 @@ export declare class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrossh
19
20
  private _radiusLabelCrosshair;
20
21
  private _angleCrosshair;
21
22
  private _angleLabelCrosshair;
22
- static createComponent(spec: any, options: IComponentOption): PolarCrossHair<any> | PolarCrossHair<IPolarCrosshairSpec>[];
23
+ static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
23
24
  constructor(spec: T, options: IComponentOption);
24
25
  protected _showDefaultCrosshairBySpec(): void;
25
26
  private _defaultCrosshair;
@@ -33,20 +33,27 @@ import { Factory } from "../../core/factory";
33
33
  import { LayoutType } from "./config";
34
34
 
35
35
  export class PolarCrossHair extends BaseCrossHair {
36
- static createComponent(spec, options) {
37
- const crosshairSpec = spec.crosshair;
36
+ static getSpecInfo(chartSpec) {
37
+ const crosshairSpec = chartSpec[this.specKey];
38
38
  if (isNil(crosshairSpec)) return;
39
- if (!isArray(crosshairSpec)) return crosshairSpec.categoryField || crosshairSpec.valueField ? new PolarCrossHair(crosshairSpec, options) : void 0;
40
- const components = [];
39
+ if (!isArray(crosshairSpec)) return crosshairSpec.categoryField || crosshairSpec.valueField ? [ {
40
+ spec: crosshairSpec,
41
+ specPath: [ this.specKey ],
42
+ type: ComponentTypeEnum.polarCrosshair
43
+ } ] : void 0;
44
+ const specInfos = [];
41
45
  return crosshairSpec.forEach(((s, i) => {
42
- (s.categoryField || s.valueField) && components.push(new PolarCrossHair(s, Object.assign(Object.assign({}, options), {
43
- specIndex: i
44
- })));
45
- })), components;
46
+ (s.categoryField || s.valueField) && specInfos.push({
47
+ spec: s,
48
+ specIndex: i,
49
+ specPath: [ this.specKey, i ],
50
+ type: ComponentTypeEnum.polarCrosshair
51
+ });
52
+ })), specInfos;
46
53
  }
47
54
  constructor(spec, options) {
48
- super(spec, options), this.specKey = "crosshair", this.type = ComponentTypeEnum.polarCrosshair,
49
- this.name = ComponentTypeEnum.polarCrosshair, this._currValueAngle = new Map, this._currValueRadius = new Map;
55
+ super(spec, options), this.type = ComponentTypeEnum.polarCrosshair, this.name = ComponentTypeEnum.polarCrosshair,
56
+ this._currValueAngle = new Map, this._currValueRadius = new Map;
50
57
  }
51
58
  _showDefaultCrosshairBySpec() {
52
59
  const {categoryField: categoryField, valueField: valueField} = this._spec;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IPolarSeries } from '../../series/interface/series';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IPolarCrosshairSpec } from './interface';\nimport type { BandScale } from '@visactor/vscale';\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\nimport { Tag } from '@visactor/vrender-components';\nimport { LineCrosshair, SectorCrosshair, CircleCrosshair, PolygonCrosshair } from '@visactor/vrender-components';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IPoint, StringOrNumber } from '../../typings';\nimport type { IAxisInfo, IHair } from './base';\nimport { BaseCrossHair } from './base';\nimport {\n polarToCartesian,\n getIntersectPoint,\n PointService,\n getAngleByPoint,\n isArray,\n isValid,\n isValidNumber,\n isNil,\n clamp\n} from '@visactor/vutils';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { angleLabelOrientAttribute, radiusLabelOrientAttribute } from '../../util/math';\nimport { limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\nimport { Factory } from '../../core/factory';\nimport { LayoutType } from './config';\n\ninterface ICrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: { visible: boolean; text: StringOrNumber; offset: number };\n axis?: IPolarAxis;\n}\n\nexport class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n specKey: string = 'crosshair';\n\n static type = ComponentTypeEnum.polarCrosshair;\n type = ComponentTypeEnum.polarCrosshair;\n name: string = ComponentTypeEnum.polarCrosshair;\n private _currValueAngle: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n private _currValueRadius: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n\n private _angleHair: IHair | undefined;\n private _radiusHair: (IHair & { smooth: boolean }) | undefined;\n\n private _cacheAngleCrossHairInfo: ICrosshairInfo | undefined;\n private _cacheRadiusCrossHairInfo: ICrosshairInfo | undefined;\n\n private _radiusCrosshair: IGroup;\n private _radiusLabelCrosshair: Tag;\n private _angleCrosshair: IGroup;\n private _angleLabelCrosshair: Tag;\n\n static createComponent(spec: any, options: IComponentOption) {\n const crosshairSpec = spec.crosshair;\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.categoryField || crosshairSpec.valueField) {\n return new PolarCrossHair(crosshairSpec, options);\n }\n return undefined;\n }\n const components: PolarCrossHair[] = [];\n crosshairSpec.forEach((s: IPolarCrosshairSpec, i: number) => {\n if (s.categoryField || s.valueField) {\n components.push(new PolarCrossHair(s, { ...options, specIndex: i }));\n }\n });\n return components;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._currValueAngle = new Map();\n this._currValueRadius = new Map();\n }\n\n protected _showDefaultCrosshairBySpec() {\n const { categoryField, valueField } = this._spec as IPolarCrosshairSpec;\n if (categoryField?.visible && categoryField.defaultSelect) {\n const { axisIndex, datum } = categoryField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.VERTICAL);\n }\n if (valueField?.visible && valueField.defaultSelect) {\n const { axisIndex, datum } = valueField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.HORIZONTAL);\n }\n }\n\n private _defaultCrosshair(axisIndex: number, datum: StringOrNumber, tag: number) {\n const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex) as IPolarAxis;\n if (!axis) {\n return;\n }\n // 横轴\n if (tag === LayoutType.VERTICAL) {\n this._currValueAngle.clear();\n // 根据数值拿到对应的坐标点\n const polarCoord = {\n angle: axis.valueToPosition(datum),\n radius: axis.getOuterRadius()\n };\n const canvasPosition = axis.coordToPoint(polarCoord);\n this._currValueAngle.set(axisIndex, this._getValueByAxis(axis, canvasPosition));\n } else {\n this._currValueRadius.clear();\n // 根据数值拿到对应的坐标点\n const polarCoord = {\n angle: axis.startAngle,\n radius: axis.valueToPosition(datum)\n };\n const canvasPosition = axis.coordToPoint(polarCoord);\n this._currValueRadius.set(axisIndex, this._getValueByAxis(axis, canvasPosition));\n }\n this.layoutByValue(LayoutType.ALL);\n }\n\n hide() {\n this._radiusCrosshair && this._radiusCrosshair.hideAll();\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n this._angleCrosshair && this._angleCrosshair.hideAll();\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const angleAxisMap = this._getAxisInfoByField<IPolarAxis>('category');\n const radiusAxisMap = this._getAxisInfoByField<IPolarAxis>('value');\n return {\n angleAxisMap: this._filterAxisByPoint<IPolarAxis>(angleAxisMap, relativeX, relativeY),\n radiusAxisMap: this._filterAxisByPoint<IPolarAxis>(radiusAxisMap, relativeX, relativeY)\n };\n }\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n private _getAllAxisValues(\n axisMap: IAxisInfo<IPolarAxis>,\n point: IPoint,\n currValue: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n currValue.set(id, this._getValueByAxis(axis, point));\n });\n return true;\n }\n\n private _getValueByAxis(axis: IPolarAxis, point: IPoint) {\n const { x: axisStartX, y: axisStartY } = axis.getLayoutStartPoint();\n const { x, y } = this.getLayoutStartPoint();\n let value = axis.positionToData({\n x: point.x - (axisStartX - x),\n y: point.y - (axisStartY - y)\n });\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n const center = {\n x: axis.getCenter().x + this.getLayoutStartPoint().x,\n y: axis.getCenter().y + this.getLayoutStartPoint().y\n };\n\n return {\n v: value,\n axis,\n center,\n innerRadius: axis.getInnerRadius(),\n radius: axis.getOuterRadius(),\n startAngle: axis.startAngle,\n endAngle: axis.endAngle,\n distance: PointService.distancePP(point, axis.getCenter()),\n coord: axis.pointToCoord(point),\n point\n };\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { angleAxisMap, radiusAxisMap } = this._findAllAxisContains(relativeX, relativeY);\n if (angleAxisMap.size === 0 && radiusAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this._currValueAngle.clear();\n this._currValueRadius.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n angleAxisMap && this._getAllAxisValues(angleAxisMap, { x: relativeX, y: relativeY }, this._currValueAngle);\n radiusAxisMap && this._getAllAxisValues(radiusAxisMap, { x: relativeX, y: relativeY }, this._currValueRadius);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n layoutByValue(tag: number = LayoutType.ALL) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<IPolarSeries>();\n if (!series) {\n return;\n }\n let angleCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n let radiusCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n sides: (series.angleAxisHelper.getScale(0) as BandScale).ticks().length,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this._angleHair) {\n angleCrossHairInfo.visible = !!this._currValueAngle.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n this._currValueAngle.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n mergeSpec(angleCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([v]);\n angleCrossHairInfo.angle = angle;\n if (this._angleHair.label?.visible) {\n angleCrossHairInfo.label.visible = true;\n angleCrossHairInfo.label.text = v;\n angleCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n angleCrossHairInfo.startAngle = angle - bandWidth / 2;\n angleCrossHairInfo.endAngle = angle + bandWidth / 2;\n });\n }\n\n if (this._radiusHair) {\n radiusCrossHairInfo.visible = !!this._currValueRadius.size;\n this._currValueRadius.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n if (this._radiusHair.label?.visible) {\n radiusCrossHairInfo.label.visible = true;\n radiusCrossHairInfo.label.text = v;\n radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n radiusCrossHairInfo.angle = coord.angle;\n radiusCrossHairInfo.axis = axis;\n mergeSpec(radiusCrossHairInfo, rest);\n });\n }\n\n if (this.enableRemain && !angleCrossHairInfo.visible && isValid(this._cacheAngleCrossHairInfo)) {\n angleCrossHairInfo = this._cacheAngleCrossHairInfo;\n } else {\n if (this._angleHair?.label?.formatMethod && angleCrossHairInfo.label.visible) {\n const { label } = angleCrossHairInfo;\n label.text = this._angleHair.label.formatMethod(label.text, 'angle') as string;\n }\n }\n\n if (this.enableRemain && !radiusCrossHairInfo.visible && isValid(this._cacheRadiusCrossHairInfo)) {\n radiusCrossHairInfo = this._cacheRadiusCrossHairInfo;\n } else {\n if (this._radiusHair?.label?.formatMethod && radiusCrossHairInfo.label.visible) {\n const { label } = radiusCrossHairInfo;\n label.text = this._radiusHair.label.formatMethod(label.text, 'radius') as string;\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(radiusCrossHairInfo);\n LayoutType.VERTICAL && this._layoutVertical(angleCrossHairInfo);\n }\n\n if (this.enableRemain) {\n this._cacheAngleCrossHairInfo = { ...angleCrossHairInfo, _isCache: true };\n this._cacheRadiusCrossHairInfo = { ...radiusCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const container = this.getContainer();\n const { angle, innerRadius, radius, label, startAngle, endAngle, center, visible } = crosshairInfo;\n if (visible) {\n const crosshairType = this._angleHair.type === 'rect' ? 'sector' : 'line';\n let positionAttrs;\n if (crosshairType === 'sector') {\n positionAttrs = {\n center,\n innerRadius,\n radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n } else {\n positionAttrs = {\n start: polarToCartesian(center, innerRadius, angle),\n end: polarToCartesian(center, radius, angle)\n };\n }\n\n if (this._angleCrosshair) {\n this._angleCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n // 创建\n if (crosshairType === 'line') {\n crosshair = new LineCrosshair({\n ...(positionAttrs as { start: IPoint; end: IPoint }),\n lineStyle: this._angleHair.style,\n zIndex: this.gridZIndex\n });\n } else if (crosshairType === 'sector') {\n crosshair = new SectorCrosshair({\n ...(positionAttrs as {\n center: IPoint;\n innerRadius: number;\n radius: number;\n startAngle: number;\n endAngle: number;\n }),\n sectorStyle: this._angleHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._angleCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = angleLabelOrientAttribute(angle);\n const labelAttrs = {\n ...polarToCartesian(center, radius + label.offset, angle),\n ...this._angleHair.label,\n ...label,\n textStyle: {\n ...this._angleHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._angleLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-angle-label';\n this._angleLabelCrosshair = label;\n });\n } else {\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const { center, startAngle, endAngle, distance, sides, axis, label, point, radius, innerRadius, visible } =\n crosshairInfo;\n const container = this.getContainer();\n if (visible) {\n const crosshairType = this._radiusHair.smooth ? 'circle' : 'polygon';\n\n let polygonRadius = distance;\n if (crosshairType === 'polygon') {\n const axisCenter = axis.getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, distance, preAngle);\n const nextPoint = polarToCartesian(axisCenter, distance, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance,\n innerRadius,\n radius\n );\n }\n }\n const positionAttrs = {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n\n if (this._radiusCrosshair) {\n this._radiusCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n if (crosshairType === 'polygon') {\n crosshair = new PolygonCrosshair({\n ...positionAttrs,\n lineStyle: this._radiusHair.style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else {\n crosshair = new CircleCrosshair({\n ...positionAttrs,\n lineStyle: this._radiusHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._radiusCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = radiusLabelOrientAttribute(startAngle);\n const labelAttrs = {\n ...polarToCartesian(center, polygonRadius, startAngle),\n ...this._radiusHair.label,\n ...label,\n textStyle: {\n ...this._radiusHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._radiusLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-radius-label';\n this._radiusLabelCrosshair = label;\n });\n } else {\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n }\n }\n }\n\n protected _parseFieldInfo() {\n const { categoryField, valueField } = this._spec as IPolarCrosshairSpec;\n if (categoryField && categoryField.visible) {\n this._angleHair = this._parseField(categoryField, 'categoryField');\n }\n if (valueField && valueField.visible) {\n this._radiusHair = this._parseField(valueField, 'valueField');\n this._radiusHair.smooth = valueField?.line?.smooth;\n }\n }\n\n private _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container?.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [\n this._radiusCrosshair,\n this._radiusLabelCrosshair,\n this._angleCrosshair,\n this._angleLabelCrosshair\n ] as unknown as IGroup[];\n }\n}\n\nexport const registerPolarCrossHair = () => {\n Factory.registerComponent(PolarCrossHair.type, PolarCrossHair);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IPolarSeries } from '../../series/interface/series';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IPolarCrosshairSpec } from './interface';\nimport type { BandScale } from '@visactor/vscale';\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\nimport { Tag } from '@visactor/vrender-components';\nimport { LineCrosshair, SectorCrosshair, CircleCrosshair, PolygonCrosshair } from '@visactor/vrender-components';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IPoint, StringOrNumber } from '../../typings';\nimport type { IAxisInfo, IHair } from './base';\nimport { BaseCrossHair } from './base';\nimport type { Maybe } from '@visactor/vutils';\nimport {\n polarToCartesian,\n getIntersectPoint,\n PointService,\n getAngleByPoint,\n isArray,\n isValid,\n isValidNumber,\n isNil,\n clamp\n} from '@visactor/vutils';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { angleLabelOrientAttribute, radiusLabelOrientAttribute } from '../../util/math';\nimport { limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\nimport { Factory } from '../../core/factory';\nimport { LayoutType } from './config';\nimport type { IModelSpecInfo } from '../../model/interface';\n\ninterface ICrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: { visible: boolean; text: StringOrNumber; offset: number };\n axis?: IPolarAxis;\n}\n\nexport class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n\n static type = ComponentTypeEnum.polarCrosshair;\n type = ComponentTypeEnum.polarCrosshair;\n name: string = ComponentTypeEnum.polarCrosshair;\n private _currValueAngle: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n private _currValueRadius: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n\n private _angleHair: IHair | undefined;\n private _radiusHair: (IHair & { smooth: boolean }) | undefined;\n\n private _cacheAngleCrossHairInfo: ICrosshairInfo | undefined;\n private _cacheRadiusCrossHairInfo: ICrosshairInfo | undefined;\n\n private _radiusCrosshair: IGroup;\n private _radiusLabelCrosshair: Tag;\n private _angleCrosshair: IGroup;\n private _angleLabelCrosshair: Tag;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const crosshairSpec = chartSpec[this.specKey];\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.categoryField || crosshairSpec.valueField) {\n return [\n {\n spec: crosshairSpec,\n specPath: [this.specKey],\n type: ComponentTypeEnum.polarCrosshair\n }\n ];\n }\n return undefined;\n }\n const specInfos: IModelSpecInfo[] = [];\n crosshairSpec.forEach((s: IPolarCrosshairSpec, i: number) => {\n if (s.categoryField || s.valueField) {\n specInfos.push({\n spec: s,\n specIndex: i,\n specPath: [this.specKey, i],\n type: ComponentTypeEnum.polarCrosshair\n });\n }\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._currValueAngle = new Map();\n this._currValueRadius = new Map();\n }\n\n protected _showDefaultCrosshairBySpec() {\n const { categoryField, valueField } = this._spec as IPolarCrosshairSpec;\n if (categoryField?.visible && categoryField.defaultSelect) {\n const { axisIndex, datum } = categoryField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.VERTICAL);\n }\n if (valueField?.visible && valueField.defaultSelect) {\n const { axisIndex, datum } = valueField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.HORIZONTAL);\n }\n }\n\n private _defaultCrosshair(axisIndex: number, datum: StringOrNumber, tag: number) {\n const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex) as IPolarAxis;\n if (!axis) {\n return;\n }\n // 横轴\n if (tag === LayoutType.VERTICAL) {\n this._currValueAngle.clear();\n // 根据数值拿到对应的坐标点\n const polarCoord = {\n angle: axis.valueToPosition(datum),\n radius: axis.getOuterRadius()\n };\n const canvasPosition = axis.coordToPoint(polarCoord);\n this._currValueAngle.set(axisIndex, this._getValueByAxis(axis, canvasPosition));\n } else {\n this._currValueRadius.clear();\n // 根据数值拿到对应的坐标点\n const polarCoord = {\n angle: axis.startAngle,\n radius: axis.valueToPosition(datum)\n };\n const canvasPosition = axis.coordToPoint(polarCoord);\n this._currValueRadius.set(axisIndex, this._getValueByAxis(axis, canvasPosition));\n }\n this.layoutByValue(LayoutType.ALL);\n }\n\n hide() {\n this._radiusCrosshair && this._radiusCrosshair.hideAll();\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n this._angleCrosshair && this._angleCrosshair.hideAll();\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const angleAxisMap = this._getAxisInfoByField<IPolarAxis>('category');\n const radiusAxisMap = this._getAxisInfoByField<IPolarAxis>('value');\n return {\n angleAxisMap: this._filterAxisByPoint<IPolarAxis>(angleAxisMap, relativeX, relativeY),\n radiusAxisMap: this._filterAxisByPoint<IPolarAxis>(radiusAxisMap, relativeX, relativeY)\n };\n }\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n private _getAllAxisValues(\n axisMap: IAxisInfo<IPolarAxis>,\n point: IPoint,\n currValue: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n currValue.set(id, this._getValueByAxis(axis, point));\n });\n return true;\n }\n\n private _getValueByAxis(axis: IPolarAxis, point: IPoint) {\n const { x: axisStartX, y: axisStartY } = axis.getLayoutStartPoint();\n const { x, y } = this.getLayoutStartPoint();\n let value = axis.positionToData({\n x: point.x - (axisStartX - x),\n y: point.y - (axisStartY - y)\n });\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n const center = {\n x: axis.getCenter().x + this.getLayoutStartPoint().x,\n y: axis.getCenter().y + this.getLayoutStartPoint().y\n };\n\n return {\n v: value,\n axis,\n center,\n innerRadius: axis.getInnerRadius(),\n radius: axis.getOuterRadius(),\n startAngle: axis.startAngle,\n endAngle: axis.endAngle,\n distance: PointService.distancePP(point, axis.getCenter()),\n coord: axis.pointToCoord(point),\n point\n };\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { angleAxisMap, radiusAxisMap } = this._findAllAxisContains(relativeX, relativeY);\n if (angleAxisMap.size === 0 && radiusAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this._currValueAngle.clear();\n this._currValueRadius.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n angleAxisMap && this._getAllAxisValues(angleAxisMap, { x: relativeX, y: relativeY }, this._currValueAngle);\n radiusAxisMap && this._getAllAxisValues(radiusAxisMap, { x: relativeX, y: relativeY }, this._currValueRadius);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n layoutByValue(tag: number = LayoutType.ALL) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<IPolarSeries>();\n if (!series) {\n return;\n }\n let angleCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n let radiusCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n sides: (series.angleAxisHelper.getScale(0) as BandScale).ticks().length,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this._angleHair) {\n angleCrossHairInfo.visible = !!this._currValueAngle.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n this._currValueAngle.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n mergeSpec(angleCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([v]);\n angleCrossHairInfo.angle = angle;\n if (this._angleHair.label?.visible) {\n angleCrossHairInfo.label.visible = true;\n angleCrossHairInfo.label.text = v;\n angleCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n angleCrossHairInfo.startAngle = angle - bandWidth / 2;\n angleCrossHairInfo.endAngle = angle + bandWidth / 2;\n });\n }\n\n if (this._radiusHair) {\n radiusCrossHairInfo.visible = !!this._currValueRadius.size;\n this._currValueRadius.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n if (this._radiusHair.label?.visible) {\n radiusCrossHairInfo.label.visible = true;\n radiusCrossHairInfo.label.text = v;\n radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n radiusCrossHairInfo.angle = coord.angle;\n radiusCrossHairInfo.axis = axis;\n mergeSpec(radiusCrossHairInfo, rest);\n });\n }\n\n if (this.enableRemain && !angleCrossHairInfo.visible && isValid(this._cacheAngleCrossHairInfo)) {\n angleCrossHairInfo = this._cacheAngleCrossHairInfo;\n } else {\n if (this._angleHair?.label?.formatMethod && angleCrossHairInfo.label.visible) {\n const { label } = angleCrossHairInfo;\n label.text = this._angleHair.label.formatMethod(label.text, 'angle') as string;\n }\n }\n\n if (this.enableRemain && !radiusCrossHairInfo.visible && isValid(this._cacheRadiusCrossHairInfo)) {\n radiusCrossHairInfo = this._cacheRadiusCrossHairInfo;\n } else {\n if (this._radiusHair?.label?.formatMethod && radiusCrossHairInfo.label.visible) {\n const { label } = radiusCrossHairInfo;\n label.text = this._radiusHair.label.formatMethod(label.text, 'radius') as string;\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(radiusCrossHairInfo);\n LayoutType.VERTICAL && this._layoutVertical(angleCrossHairInfo);\n }\n\n if (this.enableRemain) {\n this._cacheAngleCrossHairInfo = { ...angleCrossHairInfo, _isCache: true };\n this._cacheRadiusCrossHairInfo = { ...radiusCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const container = this.getContainer();\n const { angle, innerRadius, radius, label, startAngle, endAngle, center, visible } = crosshairInfo;\n if (visible) {\n const crosshairType = this._angleHair.type === 'rect' ? 'sector' : 'line';\n let positionAttrs;\n if (crosshairType === 'sector') {\n positionAttrs = {\n center,\n innerRadius,\n radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n } else {\n positionAttrs = {\n start: polarToCartesian(center, innerRadius, angle),\n end: polarToCartesian(center, radius, angle)\n };\n }\n\n if (this._angleCrosshair) {\n this._angleCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n // 创建\n if (crosshairType === 'line') {\n crosshair = new LineCrosshair({\n ...(positionAttrs as { start: IPoint; end: IPoint }),\n lineStyle: this._angleHair.style,\n zIndex: this.gridZIndex\n });\n } else if (crosshairType === 'sector') {\n crosshair = new SectorCrosshair({\n ...(positionAttrs as {\n center: IPoint;\n innerRadius: number;\n radius: number;\n startAngle: number;\n endAngle: number;\n }),\n sectorStyle: this._angleHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._angleCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = angleLabelOrientAttribute(angle);\n const labelAttrs = {\n ...polarToCartesian(center, radius + label.offset, angle),\n ...this._angleHair.label,\n ...label,\n textStyle: {\n ...this._angleHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._angleLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-angle-label';\n this._angleLabelCrosshair = label;\n });\n } else {\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const { center, startAngle, endAngle, distance, sides, axis, label, point, radius, innerRadius, visible } =\n crosshairInfo;\n const container = this.getContainer();\n if (visible) {\n const crosshairType = this._radiusHair.smooth ? 'circle' : 'polygon';\n\n let polygonRadius = distance;\n if (crosshairType === 'polygon') {\n const axisCenter = axis.getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, distance, preAngle);\n const nextPoint = polarToCartesian(axisCenter, distance, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance,\n innerRadius,\n radius\n );\n }\n }\n const positionAttrs = {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n\n if (this._radiusCrosshair) {\n this._radiusCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n if (crosshairType === 'polygon') {\n crosshair = new PolygonCrosshair({\n ...positionAttrs,\n lineStyle: this._radiusHair.style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else {\n crosshair = new CircleCrosshair({\n ...positionAttrs,\n lineStyle: this._radiusHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._radiusCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = radiusLabelOrientAttribute(startAngle);\n const labelAttrs = {\n ...polarToCartesian(center, polygonRadius, startAngle),\n ...this._radiusHair.label,\n ...label,\n textStyle: {\n ...this._radiusHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._radiusLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-radius-label';\n this._radiusLabelCrosshair = label;\n });\n } else {\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n }\n }\n }\n\n protected _parseFieldInfo() {\n const { categoryField, valueField } = this._spec as IPolarCrosshairSpec;\n if (categoryField && categoryField.visible) {\n this._angleHair = this._parseField(categoryField, 'categoryField');\n }\n if (valueField && valueField.visible) {\n this._radiusHair = this._parseField(valueField, 'valueField');\n this._radiusHair.smooth = valueField?.line?.smooth;\n }\n }\n\n private _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container?.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [\n this._radiusCrosshair,\n this._radiusLabelCrosshair,\n this._angleCrosshair,\n this._angleLabelCrosshair\n ] as unknown as IGroup[];\n }\n}\n\nexport const registerPolarCrossHair = () => {\n Factory.registerComponent(PolarCrossHair.type, PolarCrossHair);\n};\n"]}
@@ -1,10 +1,9 @@
1
1
  import type { Tag } from '@visactor/vrender-components';
2
2
  import type { IBoundsLike } from '@visactor/vutils';
3
3
  import type { Datum } from '../../typings';
4
- import type { IChart } from '../../chart/interface';
5
4
  import type { ICrosshairTheme } from './interface';
6
- import type { IModelOption } from '../../model/interface';
5
+ import type { ITheme } from '../../theme';
7
6
  export declare function limitTagInBounds(shape: Tag, bounds: IBoundsLike): void;
8
7
  export declare function getDatumByValue(data: Datum[], value: number, startField: string, endField?: string): Datum | null;
9
- export declare const getCartesianCrosshairTheme: (option: Partial<IModelOption>, chart: IChart) => ICrosshairTheme;
10
- export declare const getPolarCrosshairTheme: (option: Partial<IModelOption>, chart: IChart) => ICrosshairTheme;
8
+ export declare const getCartesianCrosshairTheme: (chartTheme: ITheme, chartSpec: any) => ICrosshairTheme;
9
+ export declare const getPolarCrosshairTheme: (chartTheme: ITheme, chartSpec: any) => ICrosshairTheme;
@@ -1,4 +1,4 @@
1
- import { isValid } from "@visactor/vutils";
1
+ import { array, isValid } from "@visactor/vutils";
2
2
 
3
3
  import { mergeSpec } from "../../util/spec/merge-spec";
4
4
 
@@ -10,6 +10,8 @@ import { getComponentThemeFromOption } from "../util";
10
10
 
11
11
  import { ComponentTypeEnum } from "../interface/type";
12
12
 
13
+ import { isDiscreteAxis } from "../axis/util";
14
+
13
15
  export function limitTagInBounds(shape, bounds) {
14
16
  const {x1: regionMinX, y1: regionMinY, x2: regionMaxX, y2: regionMaxY} = bounds, {x1: x1, y1: y1, x2: x2, y2: y2} = shape.AABBBounds, {dx: originDx = 0, dy: originDy = 0} = shape.attribute;
15
17
  let dx = 0, dy = 0;
@@ -28,28 +30,28 @@ export function getDatumByValue(data, value, startField, endField) {
28
30
  return null;
29
31
  }
30
32
 
31
- export const getCartesianCrosshairTheme = (option, chart) => {
32
- var _a;
33
- const axes = chart.getAllComponents().filter((component => component.type.includes("Axis"))), {bandField: bandField, linearField: linearField, xField: xField, yField: yField} = null !== (_a = getComponentThemeFromOption(ComponentTypeEnum.crosshair, option)) && void 0 !== _a ? _a : {}, xAxis = axes.find((axis => isXAxis(axis.getOrient())));
33
+ export const getCartesianCrosshairTheme = (chartTheme, chartSpec) => {
34
+ var _a, _b;
35
+ const axes = array(null !== (_a = chartSpec.axes) && void 0 !== _a ? _a : []), {bandField: bandField, linearField: linearField, xField: xField, yField: yField} = null !== (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme)) && void 0 !== _b ? _b : {}, xAxis = axes.find((axis => isXAxis(axis.orient)));
34
36
  let newXField;
35
- newXField = isValid(xAxis) ? mergeSpec({}, isDiscrete(xAxis.getScale().type) ? bandField : linearField, xField) : xField;
36
- const yAxis = axes.find((axis => isYAxis(axis.getOrient())));
37
+ newXField = isValid(xAxis) ? mergeSpec({}, isDiscreteAxis(xAxis.type) ? bandField : linearField, xField) : xField;
38
+ const yAxis = axes.find((axis => isYAxis(axis.orient)));
37
39
  let newYField;
38
- return newYField = isValid(yAxis) ? mergeSpec({}, isDiscrete(yAxis.getScale().type) ? bandField : linearField, yField) : yField,
40
+ return newYField = isValid(yAxis) ? mergeSpec({}, isDiscrete(yAxis.type) ? bandField : linearField, yField) : yField,
39
41
  {
40
42
  xField: newXField,
41
43
  yField: newYField
42
44
  };
43
45
  };
44
46
 
45
- export const getPolarCrosshairTheme = (option, chart) => {
46
- var _a;
47
- const axes = chart.getAllComponents().filter((component => component.type.includes("Axis"))), {bandField: bandField, linearField: linearField, categoryField: categoryField, valueField: valueField} = null !== (_a = getComponentThemeFromOption(ComponentTypeEnum.crosshair, option)) && void 0 !== _a ? _a : {}, angleAxis = axes.find((axis => "angle" === axis.getOrient()));
47
+ export const getPolarCrosshairTheme = (chartTheme, chartSpec) => {
48
+ var _a, _b;
49
+ const axes = array(null !== (_a = chartSpec.axes) && void 0 !== _a ? _a : []), {bandField: bandField, linearField: linearField, categoryField: categoryField, valueField: valueField} = null !== (_b = getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme)) && void 0 !== _b ? _b : {}, angleAxis = axes.find((axis => "angle" === axis.orient));
48
50
  let newAngleField;
49
- newAngleField = isValid(angleAxis) ? mergeSpec({}, isDiscrete(angleAxis.getScale().type) ? bandField : linearField, categoryField) : categoryField;
50
- const radiusAxis = axes.find((axis => "radius" === axis.getOrient()));
51
+ newAngleField = isValid(angleAxis) ? mergeSpec({}, isDiscreteAxis(angleAxis.type) ? bandField : linearField, categoryField) : categoryField;
52
+ const radiusAxis = axes.find((axis => "radius" === axis.orient));
51
53
  let newRadiusField;
52
- return newRadiusField = isValid(radiusAxis) ? mergeSpec({}, isDiscrete(radiusAxis.getScale().type) ? bandField : linearField, valueField) : valueField,
54
+ return newRadiusField = isValid(radiusAxis) ? mergeSpec({}, isDiscrete(radiusAxis.type) ? bandField : linearField, valueField) : valueField,
53
55
  {
54
56
  categoryField: newAngleField,
55
57
  valueField: newRadiusField
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { Tag } from '@visactor/vrender-components';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { Datum, IOrientType } from '../../typings';\nimport type { IChart } from '../../chart/interface';\nimport type { ICrosshairTheme } from './interface';\nimport { isValid } from '@visactor/vutils';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { isXAxis, isYAxis } from '../axis/cartesian/util/common';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { IAxis } from '../axis';\nimport type { IModelOption } from '../../model/interface';\nimport { getComponentThemeFromOption } from '../util';\nimport { ComponentTypeEnum } from '../interface/type';\n\nexport function limitTagInBounds(shape: Tag, bounds: IBoundsLike) {\n const { x1: regionMinX, y1: regionMinY, x2: regionMaxX, y2: regionMaxY } = bounds;\n const { x1, y1, x2, y2 } = shape.AABBBounds;\n const { dx: originDx = 0, dy: originDy = 0 } = shape.attribute;\n\n let dx = 0;\n let dy = 0;\n if (x1 < regionMinX) {\n // 超出左侧\n dx = regionMinX - x1;\n }\n if (y1 < regionMinY) {\n // 超出顶部\n dy = regionMinY - y1;\n }\n\n if (x2 > regionMaxX) {\n // 超出右侧\n dx = regionMaxX - x2;\n }\n\n if (y2 > regionMaxY) {\n // 整体超出顶部\n dy = regionMaxY - y2;\n }\n if (dx) {\n shape.setAttribute('dx', dx + originDx);\n }\n if (dy) {\n shape.setAttribute('dy', dy + originDy);\n }\n}\n\n// 二分查找数据\nexport function getDatumByValue(data: Datum[], value: number, startField: string, endField?: string): Datum | null {\n let left = 0;\n let right = data.length - 1;\n\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n const record = data[mid];\n\n if (record[startField] <= value && record[endField || startField] >= value) {\n return record;\n }\n\n if (record[startField] > value) {\n right = mid - 1;\n } else {\n left = mid + 1;\n }\n }\n\n return null;\n}\n\nexport const getCartesianCrosshairTheme = (option: Partial<IModelOption>, chart: IChart): ICrosshairTheme => {\n const axes = chart.getAllComponents().filter(component => component.type.includes('Axis')) as IAxis[];\n const { bandField, linearField, xField, yField } =\n getComponentThemeFromOption(ComponentTypeEnum.crosshair, option) ?? {};\n\n const xAxis = axes.find(axis => isXAxis(axis.getOrient() as IOrientType));\n let newXField;\n if (isValid(xAxis)) {\n newXField = mergeSpec({}, isDiscrete(xAxis.getScale().type) ? bandField : linearField, xField);\n } else {\n newXField = xField;\n }\n\n const yAxis = axes.find(axis => isYAxis(axis.getOrient() as IOrientType));\n let newYField;\n if (isValid(yAxis)) {\n newYField = mergeSpec({}, isDiscrete(yAxis.getScale().type) ? bandField : linearField, yField);\n } else {\n newYField = yField;\n }\n\n return {\n xField: newXField,\n yField: newYField\n };\n};\n\nexport const getPolarCrosshairTheme = (option: Partial<IModelOption>, chart: IChart): ICrosshairTheme => {\n const axes = chart.getAllComponents().filter(component => component.type.includes('Axis')) as IAxis[];\n const { bandField, linearField, categoryField, valueField } =\n getComponentThemeFromOption(ComponentTypeEnum.crosshair, option) ?? {};\n\n const angleAxis = axes.find(axis => axis.getOrient() === 'angle');\n let newAngleField;\n if (isValid(angleAxis)) {\n newAngleField = mergeSpec({}, isDiscrete(angleAxis.getScale().type) ? bandField : linearField, categoryField);\n } else {\n newAngleField = categoryField;\n }\n\n const radiusAxis = axes.find(axis => axis.getOrient() === 'radius');\n let newRadiusField;\n if (isValid(radiusAxis)) {\n newRadiusField = mergeSpec({}, isDiscrete(radiusAxis.getScale().type) ? bandField : linearField, valueField);\n } else {\n newRadiusField = valueField;\n }\n\n return {\n categoryField: newAngleField,\n valueField: newRadiusField\n };\n};\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { Tag } from '@visactor/vrender-components';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { Datum } from '../../typings';\nimport type { ICrosshairTheme } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isValid } from '@visactor/vutils';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { isXAxis, isYAxis } from '../axis/cartesian/util/common';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { ICartesianAxisCommonSpec, IPolarAxisCommonSpec } from '../axis';\nimport { getComponentThemeFromOption } from '../util';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ITheme } from '../../theme';\nimport { isDiscreteAxis } from '../axis/util';\n\nexport function limitTagInBounds(shape: Tag, bounds: IBoundsLike) {\n const { x1: regionMinX, y1: regionMinY, x2: regionMaxX, y2: regionMaxY } = bounds;\n const { x1, y1, x2, y2 } = shape.AABBBounds;\n const { dx: originDx = 0, dy: originDy = 0 } = shape.attribute;\n\n let dx = 0;\n let dy = 0;\n if (x1 < regionMinX) {\n // 超出左侧\n dx = regionMinX - x1;\n }\n if (y1 < regionMinY) {\n // 超出顶部\n dy = regionMinY - y1;\n }\n\n if (x2 > regionMaxX) {\n // 超出右侧\n dx = regionMaxX - x2;\n }\n\n if (y2 > regionMaxY) {\n // 整体超出顶部\n dy = regionMaxY - y2;\n }\n if (dx) {\n shape.setAttribute('dx', dx + originDx);\n }\n if (dy) {\n shape.setAttribute('dy', dy + originDy);\n }\n}\n\n// 二分查找数据\nexport function getDatumByValue(data: Datum[], value: number, startField: string, endField?: string): Datum | null {\n let left = 0;\n let right = data.length - 1;\n\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n const record = data[mid];\n\n if (record[startField] <= value && record[endField || startField] >= value) {\n return record;\n }\n\n if (record[startField] > value) {\n right = mid - 1;\n } else {\n left = mid + 1;\n }\n }\n\n return null;\n}\n\nexport const getCartesianCrosshairTheme = (chartTheme: ITheme, chartSpec: any): ICrosshairTheme => {\n const axes: ICartesianAxisCommonSpec[] = array(chartSpec.axes ?? []);\n const { bandField, linearField, xField, yField } =\n getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme) ?? {};\n\n const xAxis = axes.find(axis => isXAxis(axis.orient));\n let newXField;\n if (isValid(xAxis)) {\n newXField = mergeSpec({}, isDiscreteAxis(xAxis.type) ? bandField : linearField, xField);\n } else {\n newXField = xField;\n }\n\n const yAxis = axes.find(axis => isYAxis(axis.orient));\n let newYField;\n if (isValid(yAxis)) {\n newYField = mergeSpec({}, isDiscrete(yAxis.type) ? bandField : linearField, yField);\n } else {\n newYField = yField;\n }\n\n return {\n xField: newXField,\n yField: newYField\n };\n};\n\nexport const getPolarCrosshairTheme = (chartTheme: ITheme, chartSpec: any): ICrosshairTheme => {\n const axes: IPolarAxisCommonSpec[] = array(chartSpec.axes ?? []);\n const { bandField, linearField, categoryField, valueField } =\n getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme) ?? {};\n\n const angleAxis = axes.find(axis => axis.orient === 'angle');\n let newAngleField;\n if (isValid(angleAxis)) {\n newAngleField = mergeSpec({}, isDiscreteAxis(angleAxis.type) ? bandField : linearField, categoryField);\n } else {\n newAngleField = categoryField;\n }\n\n const radiusAxis = axes.find(axis => axis.orient === 'radius');\n let newRadiusField;\n if (isValid(radiusAxis)) {\n newRadiusField = mergeSpec({}, isDiscrete(radiusAxis.type) ? bandField : linearField, valueField);\n } else {\n newRadiusField = valueField;\n }\n\n return {\n categoryField: newAngleField,\n valueField: newRadiusField\n };\n};\n"]}
@@ -1,24 +1,26 @@
1
1
  import { BaseComponent } from '../base/base-component';
2
2
  import { ComponentTypeEnum } from '../interface/type';
3
- import type { IComponentOption } from '../interface';
4
3
  import type { IRegion } from '../../region/interface';
5
- import type { IModelRenderOption } from '../../model/interface';
4
+ import type { IModelRenderOption, IModelSpecInfo } from '../../model/interface';
6
5
  import type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec } from '../../typings';
7
6
  import type { MarkTypeEnum } from '../../mark/interface';
7
+ import type { Maybe } from '@visactor/vutils';
8
8
  import type { IGraphic } from '@visactor/vrender-core';
9
- export declare class CustomMark extends BaseComponent<any> {
9
+ export declare class CustomMark<T = any> extends BaseComponent<any> {
10
10
  static type: ComponentTypeEnum;
11
11
  type: ComponentTypeEnum;
12
+ static specKey: string;
13
+ specKey: string;
12
14
  layoutType: 'none';
13
15
  layoutZIndex: number;
14
16
  layoutLevel: number;
15
17
  protected _spec: (ICustomMarkSpec<Exclude<EnableMarkType, MarkTypeEnum.group>> | ICustomMarkGroupSpec)[];
16
- static createComponent(spec: any, options: IComponentOption): CustomMark[];
18
+ static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
17
19
  created(): void;
18
20
  protected initMarks(): void;
19
21
  private _createExtensionMark;
20
22
  initEvent(): void;
21
- _compareSpec(): {
23
+ _compareSpec(spec: T, prevSpec: T): {
22
24
  change: boolean;
23
25
  reMake: boolean;
24
26
  reRender: boolean;