@visactor/vchart 1.12.0-alpha.8 → 1.12.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 (768) hide show
  1. package/build/es5/index.js +12 -12
  2. package/build/index.js +37732 -38851
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/animate-manager.js +2 -2
  6. package/cjs/animation/animate-manager.js.map +1 -1
  7. package/cjs/animation/config.d.ts +4 -0
  8. package/cjs/animation/config.js +4 -0
  9. package/cjs/animation/config.js.map +1 -1
  10. package/cjs/animation/spec.d.ts +2 -1
  11. package/cjs/animation/spec.js.map +1 -1
  12. package/cjs/animation/utils.js +13 -9
  13. package/cjs/animation/utils.js.map +1 -1
  14. package/cjs/chart/bar/3d/bar-3d.js +2 -2
  15. package/cjs/chart/bar/3d/bar-3d.js.map +1 -1
  16. package/cjs/chart/base/base-chart-transformer.js +1 -0
  17. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  18. package/cjs/chart/base/base-chart.js +12 -10
  19. package/cjs/chart/base/base-chart.js.map +1 -1
  20. package/cjs/chart/funnel/3d/funnel-3d.js +2 -2
  21. package/cjs/chart/funnel/3d/funnel-3d.js.map +1 -1
  22. package/cjs/chart/gauge/gauge-transformer.js +3 -3
  23. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  24. package/cjs/chart/histogram/3d/histogram-3d.js +2 -2
  25. package/cjs/chart/histogram/3d/histogram-3d.js.map +1 -1
  26. package/cjs/chart/liquid/liquid-transformer.js +1 -0
  27. package/cjs/chart/liquid/liquid-transformer.js.map +1 -1
  28. package/cjs/chart/pie/3d/pie-3d.js +2 -2
  29. package/cjs/chart/pie/3d/pie-3d.js.map +1 -1
  30. package/cjs/chart/pie/base/pie-transformer.js +4 -1
  31. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  32. package/cjs/chart/polar/interface.d.ts +3 -2
  33. package/cjs/chart/polar/interface.js.map +1 -1
  34. package/cjs/chart/range-column/3d/range-column-3d.js +3 -2
  35. package/cjs/chart/range-column/3d/range-column-3d.js.map +1 -1
  36. package/cjs/chart/rose/rose-transformer.js +4 -4
  37. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  38. package/cjs/chart/stack.js +4 -3
  39. package/cjs/chart/stack.js.map +1 -1
  40. package/cjs/chart/sunburst/sunburst-transformer.js +2 -2
  41. package/cjs/chart/sunburst/sunburst-transformer.js.map +1 -1
  42. package/cjs/chart/util.js +4 -3
  43. package/cjs/chart/util.js.map +1 -1
  44. package/cjs/chart/word-cloud/3d/word-cloud-3d.js +5 -3
  45. package/cjs/chart/word-cloud/3d/word-cloud-3d.js.map +1 -1
  46. package/cjs/chart/word-cloud/word-cloud-transformer.js +2 -1
  47. package/cjs/chart/word-cloud/word-cloud-transformer.js.map +1 -1
  48. package/cjs/compile/compilable-base.js +1 -2
  49. package/cjs/compile/compiler.js +7 -7
  50. package/cjs/compile/compiler.js.map +1 -1
  51. package/cjs/compile/mark/compilable-mark.js +6 -6
  52. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  53. package/cjs/compile/mark/mark-data.js +2 -2
  54. package/cjs/compile/mark/mark-data.js.map +1 -1
  55. package/cjs/compile/mark/mark-state-manager.js +3 -3
  56. package/cjs/compile/mark/mark-state-manager.js.map +1 -1
  57. package/cjs/component/axis/base-axis.d.ts +1 -0
  58. package/cjs/component/axis/base-axis.js +18 -16
  59. package/cjs/component/axis/base-axis.js.map +1 -1
  60. package/cjs/component/axis/cartesian/axis.js +10 -10
  61. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  62. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -0
  63. package/cjs/component/axis/cartesian/band-axis.js +7 -1
  64. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  65. package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -0
  66. package/cjs/component/axis/cartesian/linear-axis.js +7 -1
  67. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  68. package/cjs/component/axis/cartesian/log-axis.d.ts +1 -0
  69. package/cjs/component/axis/cartesian/log-axis.js +7 -1
  70. package/cjs/component/axis/cartesian/log-axis.js.map +1 -1
  71. package/cjs/component/axis/cartesian/symlog-axis.d.ts +1 -0
  72. package/cjs/component/axis/cartesian/symlog-axis.js +7 -1
  73. package/cjs/component/axis/cartesian/symlog-axis.js.map +1 -1
  74. package/cjs/component/axis/cartesian/time-axis.d.ts +1 -0
  75. package/cjs/component/axis/cartesian/time-axis.js +8 -2
  76. package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
  77. package/cjs/component/axis/interface/common.d.ts +2 -2
  78. package/cjs/component/axis/interface/common.js.map +1 -1
  79. package/cjs/component/axis/mixin/linear-axis-mixin.js +5 -5
  80. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  81. package/cjs/component/axis/polar/axis.d.ts +2 -2
  82. package/cjs/component/axis/polar/axis.js +21 -25
  83. package/cjs/component/axis/polar/axis.js.map +1 -1
  84. package/cjs/component/axis/polar/band-axis.d.ts +1 -0
  85. package/cjs/component/axis/polar/band-axis.js +8 -1
  86. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  87. package/cjs/component/axis/polar/interface/spec.d.ts +3 -2
  88. package/cjs/component/axis/polar/interface/spec.js.map +1 -1
  89. package/cjs/component/axis/polar/linear-axis.d.ts +1 -0
  90. package/cjs/component/axis/polar/linear-axis.js +8 -1
  91. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  92. package/cjs/component/axis/polar/util/common.d.ts +3 -0
  93. package/cjs/component/axis/polar/util/common.js +14 -5
  94. package/cjs/component/axis/polar/util/common.js.map +1 -1
  95. package/cjs/component/base/base-component.js +2 -2
  96. package/cjs/component/base/base-component.js.map +1 -1
  97. package/cjs/component/brush/brush.js +18 -17
  98. package/cjs/component/brush/brush.js.map +1 -1
  99. package/cjs/component/crosshair/base.d.ts +1 -0
  100. package/cjs/component/crosshair/base.js +28 -31
  101. package/cjs/component/crosshair/base.js.map +1 -1
  102. package/cjs/component/crosshair/utils/common.js +6 -5
  103. package/cjs/component/crosshair/utils/common.js.map +1 -1
  104. package/cjs/component/custom-mark/custom-mark.js +4 -4
  105. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  106. package/cjs/component/data-zoom/data-filter-base-component.js +3 -3
  107. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  108. package/cjs/component/data-zoom/data-zoom/data-zoom.js +3 -3
  109. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  110. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +4 -4
  111. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  112. package/cjs/component/geo/geo-coordinate.js +10 -7
  113. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  114. package/cjs/component/geo/interface.d.ts +4 -0
  115. package/cjs/component/geo/interface.js.map +1 -1
  116. package/cjs/component/indicator/indicator.js +3 -3
  117. package/cjs/component/indicator/indicator.js.map +1 -1
  118. package/cjs/component/indicator/interface.d.ts +3 -1
  119. package/cjs/component/indicator/interface.js.map +1 -1
  120. package/cjs/component/label/base-label.js +2 -2
  121. package/cjs/component/label/base-label.js.map +1 -1
  122. package/cjs/component/label/label.js +7 -7
  123. package/cjs/component/label/label.js.map +1 -1
  124. package/cjs/component/label/total-label.js +5 -5
  125. package/cjs/component/label/total-label.js.map +1 -1
  126. package/cjs/component/legend/base-legend.js +8 -7
  127. package/cjs/component/legend/base-legend.js.map +1 -1
  128. package/cjs/component/legend/continuous/legend.js +2 -2
  129. package/cjs/component/legend/continuous/legend.js.map +1 -1
  130. package/cjs/component/legend/discrete/legend.js +4 -4
  131. package/cjs/component/legend/discrete/legend.js.map +1 -1
  132. package/cjs/component/legend/util.d.ts +1 -1
  133. package/cjs/component/map-label/component.d.ts +1 -1
  134. package/cjs/component/map-label/component.js +5 -5
  135. package/cjs/component/map-label/component.js.map +1 -1
  136. package/cjs/component/marker/interface.d.ts +2 -1
  137. package/cjs/component/marker/interface.js.map +1 -1
  138. package/cjs/component/marker/mark-area/base-mark-area.js +2 -2
  139. package/cjs/component/marker/mark-area/base-mark-area.js.map +1 -1
  140. package/cjs/component/marker/mark-line/base-mark-line.js +2 -2
  141. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  142. package/cjs/component/marker/mark-point/base-mark-point.js +2 -2
  143. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  144. package/cjs/component/marker/utils.js +2 -1
  145. package/cjs/component/marker/utils.js.map +1 -1
  146. package/cjs/component/player/player.js +9 -9
  147. package/cjs/component/player/player.js.map +1 -1
  148. package/cjs/component/title/title.js +2 -2
  149. package/cjs/component/title/title.js.map +1 -1
  150. package/cjs/component/tooltip/constant.js +3 -3
  151. package/cjs/component/tooltip/constant.js.map +1 -1
  152. package/cjs/component/tooltip/processor/base.js +2 -2
  153. package/cjs/component/tooltip/processor/base.js.map +1 -1
  154. package/cjs/component/tooltip/tooltip-transformer.js +3 -3
  155. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  156. package/cjs/component/tooltip/tooltip.d.ts +1 -0
  157. package/cjs/component/tooltip/tooltip.js +17 -13
  158. package/cjs/component/tooltip/tooltip.js.map +1 -1
  159. package/cjs/component/tooltip/utils/show-tooltip.js +3 -3
  160. package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
  161. package/cjs/constant/attribute.d.ts +13 -0
  162. package/cjs/constant/attribute.js +15 -0
  163. package/cjs/constant/attribute.js.map +1 -0
  164. package/cjs/constant/data.d.ts +22 -0
  165. package/cjs/constant/data.js +23 -0
  166. package/cjs/constant/data.js.map +1 -0
  167. package/cjs/constant/gradient.d.ts +43 -0
  168. package/cjs/constant/gradient.js +28 -0
  169. package/cjs/constant/gradient.js.map +1 -0
  170. package/cjs/constant/layout.d.ts +33 -0
  171. package/cjs/constant/layout.js +22 -3
  172. package/cjs/constant/layout.js.map +1 -1
  173. package/cjs/constant/scroll-bar.js +2 -1
  174. package/cjs/core/index.d.ts +2 -2
  175. package/cjs/core/index.js +2 -2
  176. package/cjs/core/index.js.map +1 -1
  177. package/cjs/core/interface.d.ts +15 -3
  178. package/cjs/core/interface.js.map +1 -1
  179. package/cjs/core/vchart.d.ts +9 -1
  180. package/cjs/core/vchart.js +80 -56
  181. package/cjs/core/vchart.js.map +1 -1
  182. package/cjs/data/register.js +1 -2
  183. package/cjs/data/transforms/correlation-center.js +3 -3
  184. package/cjs/data/transforms/correlation-center.js.map +1 -1
  185. package/cjs/data/transforms/correlation.js +4 -4
  186. package/cjs/data/transforms/correlation.js.map +1 -1
  187. package/cjs/data/transforms/data-key.js +3 -3
  188. package/cjs/data/transforms/data-key.js.map +1 -1
  189. package/cjs/data/transforms/legend-data/discrete/discrete.js +2 -2
  190. package/cjs/data/transforms/legend-data/discrete/discrete.js.map +1 -1
  191. package/cjs/data/transforms/map.js +3 -3
  192. package/cjs/data/transforms/map.js.map +1 -1
  193. package/cjs/data/transforms/pie.d.ts +6 -4
  194. package/cjs/data/transforms/pie.js +14 -7
  195. package/cjs/data/transforms/pie.js.map +1 -1
  196. package/cjs/data/transforms/waterfall.js +2 -2
  197. package/cjs/data/transforms/waterfall.js.map +1 -1
  198. package/cjs/event/bubble.d.ts +3 -0
  199. package/cjs/event/bubble.js +13 -4
  200. package/cjs/event/bubble.js.map +1 -1
  201. package/cjs/event/event-dispatcher.d.ts +3 -1
  202. package/cjs/event/event-dispatcher.js +29 -27
  203. package/cjs/event/event-dispatcher.js.map +1 -1
  204. package/cjs/event/event.d.ts +2 -0
  205. package/cjs/event/event.js +6 -0
  206. package/cjs/event/event.js.map +1 -1
  207. package/cjs/event/events/dimension/dimension-click.js +2 -2
  208. package/cjs/event/events/dimension/dimension-click.js.map +1 -1
  209. package/cjs/event/events/dimension/dimension-hover.js +4 -4
  210. package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
  211. package/cjs/event/events/dimension/util/cartesian.js +1 -2
  212. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  213. package/cjs/event/events/dimension/util/polar.js +1 -2
  214. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  215. package/cjs/event/interface.d.ts +6 -1
  216. package/cjs/event/interface.js.map +1 -1
  217. package/cjs/index-lark.js +2 -2
  218. package/cjs/index-lark.js.map +1 -1
  219. package/cjs/index-wx-simple.js +2 -2
  220. package/cjs/index-wx-simple.js.map +1 -1
  221. package/cjs/index-wx.d.ts +3 -1
  222. package/cjs/index-wx.js +4 -3
  223. package/cjs/index-wx.js.map +1 -1
  224. package/cjs/index.d.ts +1 -0
  225. package/cjs/index.js +1 -1
  226. package/cjs/index.js.map +1 -1
  227. package/cjs/interaction/config.js +1 -1
  228. package/cjs/interaction/dimension-trigger.js +1 -1
  229. package/cjs/interaction/drill/drillable.js +3 -3
  230. package/cjs/interaction/drill/drillable.js.map +1 -1
  231. package/cjs/interaction/index.js +1 -1
  232. package/cjs/interaction/interaction.js +1 -1
  233. package/cjs/interaction/zoom/zoomable.d.ts +10 -33
  234. package/cjs/interaction/zoom/zoomable.js +29 -25
  235. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  236. package/cjs/layout/base-layout.js +3 -2
  237. package/cjs/layout/base-layout.js.map +1 -1
  238. package/cjs/layout/layout-item.js +17 -18
  239. package/cjs/layout/layout-item.js.map +1 -1
  240. package/cjs/mark/arc.js +2 -2
  241. package/cjs/mark/arc.js.map +1 -1
  242. package/cjs/mark/base/base-line.js +1 -2
  243. package/cjs/mark/base/base-line.js.map +1 -1
  244. package/cjs/mark/base/base-mark.js +12 -8
  245. package/cjs/mark/base/base-mark.js.map +1 -1
  246. package/cjs/mark/utils/common.d.ts +1 -0
  247. package/cjs/mark/utils/common.js +7 -2
  248. package/cjs/mark/utils/common.js.map +1 -1
  249. package/cjs/model/interface.d.ts +1 -0
  250. package/cjs/model/interface.js.map +1 -1
  251. package/cjs/plugin/components/axis-sync/tick-align-transform.js +1 -1
  252. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  253. package/cjs/plugin/other.d.ts +6 -0
  254. package/cjs/plugin/other.js +47 -0
  255. package/cjs/plugin/other.js.map +1 -0
  256. package/cjs/region/region.js +12 -12
  257. package/cjs/region/region.js.map +1 -1
  258. package/cjs/series/area/area.js +7 -7
  259. package/cjs/series/area/area.js.map +1 -1
  260. package/cjs/series/bar/bar.js +26 -25
  261. package/cjs/series/bar/bar.js.map +1 -1
  262. package/cjs/series/base/base-series-transformer.js +1 -2
  263. package/cjs/series/base/base-series-transformer.js.map +1 -1
  264. package/cjs/series/base/base-series.js +16 -16
  265. package/cjs/series/base/base-series.js.map +1 -1
  266. package/cjs/series/base/constant.js +3 -3
  267. package/cjs/series/base/constant.js.map +1 -1
  268. package/cjs/series/box-plot/box-plot.js +8 -9
  269. package/cjs/series/box-plot/box-plot.js.map +1 -1
  270. package/cjs/series/cartesian/cartesian.js +11 -11
  271. package/cjs/series/cartesian/cartesian.js.map +1 -1
  272. package/cjs/series/circle-packing/circle-packing.js +5 -5
  273. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  274. package/cjs/series/correlation/correlation.js +13 -13
  275. package/cjs/series/correlation/correlation.js.map +1 -1
  276. package/cjs/series/dot/dot.js +12 -12
  277. package/cjs/series/dot/dot.js.map +1 -1
  278. package/cjs/series/funnel/3d/funnel-3d.js +4 -4
  279. package/cjs/series/funnel/3d/funnel-3d.js.map +1 -1
  280. package/cjs/series/funnel/funnel.js +11 -11
  281. package/cjs/series/funnel/funnel.js.map +1 -1
  282. package/cjs/series/gauge/gauge.js +7 -7
  283. package/cjs/series/gauge/gauge.js.map +1 -1
  284. package/cjs/series/geo/geo.js +2 -2
  285. package/cjs/series/geo/geo.js.map +1 -1
  286. package/cjs/series/heatmap/heatmap.js +4 -4
  287. package/cjs/series/heatmap/heatmap.js.map +1 -1
  288. package/cjs/series/interface/type.d.ts +2 -0
  289. package/cjs/series/interface/type.js +5 -4
  290. package/cjs/series/interface/type.js.map +1 -1
  291. package/cjs/series/link/link.js +6 -6
  292. package/cjs/series/link/link.js.map +1 -1
  293. package/cjs/series/liquid/animation.d.ts +2 -1
  294. package/cjs/series/liquid/animation.js +32 -4
  295. package/cjs/series/liquid/animation.js.map +1 -1
  296. package/cjs/series/liquid/constant.js +5 -1
  297. package/cjs/series/liquid/constant.js.map +1 -1
  298. package/cjs/series/liquid/interface.d.ts +1 -0
  299. package/cjs/series/liquid/interface.js.map +1 -1
  300. package/cjs/series/liquid/liquid.d.ts +9 -2
  301. package/cjs/series/liquid/liquid.js +97 -65
  302. package/cjs/series/liquid/liquid.js.map +1 -1
  303. package/cjs/series/liquid/util.js +1 -1
  304. package/cjs/series/liquid/util.js.map +1 -1
  305. package/cjs/series/map/map.js +7 -7
  306. package/cjs/series/map/map.js.map +1 -1
  307. package/cjs/series/mixin/line-mixin.js +18 -18
  308. package/cjs/series/mixin/line-mixin.js.map +1 -1
  309. package/cjs/series/mosaic/mosaic.js +6 -6
  310. package/cjs/series/mosaic/mosaic.js.map +1 -1
  311. package/cjs/series/pie/3d/pie-3d.js +5 -5
  312. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  313. package/cjs/series/pie/animation/centerOffset.js +5 -5
  314. package/cjs/series/pie/animation/centerOffset.js.map +1 -1
  315. package/cjs/series/pie/interface.d.ts +8 -1
  316. package/cjs/series/pie/interface.js.map +1 -1
  317. package/cjs/series/pie/pie.d.ts +4 -1
  318. package/cjs/series/pie/pie.js +57 -49
  319. package/cjs/series/pie/pie.js.map +1 -1
  320. package/cjs/series/polar/polar.js +2 -2
  321. package/cjs/series/polar/polar.js.map +1 -1
  322. package/cjs/series/polar/progress-like/progress-like.js +10 -10
  323. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  324. package/cjs/series/polar/rose-like/rose-like.js +3 -3
  325. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  326. package/cjs/series/progress/circular/circular.js +5 -5
  327. package/cjs/series/progress/circular/circular.js.map +1 -1
  328. package/cjs/series/progress/linear/linear.js +6 -6
  329. package/cjs/series/progress/linear/linear.js.map +1 -1
  330. package/cjs/series/radar/radar.js +7 -7
  331. package/cjs/series/radar/radar.js.map +1 -1
  332. package/cjs/series/range-area/range-area.js +5 -5
  333. package/cjs/series/range-area/range-area.js.map +1 -1
  334. package/cjs/series/sankey/sankey.js +6 -6
  335. package/cjs/series/sankey/sankey.js.map +1 -1
  336. package/cjs/series/scatter/scatter.js +9 -9
  337. package/cjs/series/scatter/scatter.js.map +1 -1
  338. package/cjs/series/sunburst/sunburst.js +5 -5
  339. package/cjs/series/sunburst/sunburst.js.map +1 -1
  340. package/cjs/series/treemap/treemap.js +12 -11
  341. package/cjs/series/treemap/treemap.js.map +1 -1
  342. package/cjs/series/util/label-mark.js +2 -2
  343. package/cjs/series/util/label-mark.js.map +1 -1
  344. package/cjs/series/venn/venn.js +8 -8
  345. package/cjs/series/venn/venn.js.map +1 -1
  346. package/cjs/series/waterfall/waterfall.js +8 -8
  347. package/cjs/series/waterfall/waterfall.js.map +1 -1
  348. package/cjs/series/word-cloud/base.d.ts +11 -11
  349. package/cjs/series/word-cloud/base.js +98 -122
  350. package/cjs/series/word-cloud/base.js.map +1 -1
  351. package/cjs/series/word-cloud/constant.js +4 -0
  352. package/cjs/series/word-cloud/constant.js.map +1 -1
  353. package/cjs/series/word-cloud/interface.d.ts +5 -2
  354. package/cjs/series/word-cloud/interface.js.map +1 -1
  355. package/cjs/series/word-cloud/word-cloud-3d.js +2 -2
  356. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  357. package/cjs/theme/builtin/common/series/sunburst.js +3 -3
  358. package/cjs/theme/builtin/common/series/sunburst.js.map +1 -1
  359. package/cjs/theme/interface.d.ts +2 -0
  360. package/cjs/theme/interface.js.map +1 -1
  361. package/cjs/typings/interpolate.d.ts +1 -3
  362. package/cjs/typings/interpolate.js +2 -3
  363. package/cjs/typings/interpolate.js.map +1 -1
  364. package/cjs/util/data.js +21 -21
  365. package/cjs/util/data.js.map +1 -1
  366. package/cjs/util/env.js +1 -1
  367. package/cjs/util/env.js.map +1 -1
  368. package/cjs/util/math.d.ts +1 -2
  369. package/cjs/util/math.js +5 -10
  370. package/cjs/util/math.js.map +1 -1
  371. package/cjs/vchart-all.js +2 -2
  372. package/cjs/vchart-all.js.map +1 -1
  373. package/cjs/vchart-empty.d.ts +4 -0
  374. package/cjs/{plugin/index.js → vchart-empty.js} +11 -2
  375. package/cjs/vchart-empty.js.map +1 -0
  376. package/cjs/vchart-pie.d.ts +4 -0
  377. package/cjs/vchart-pie.js +35 -0
  378. package/cjs/vchart-pie.js.map +1 -0
  379. package/cjs/vchart-simple.js +2 -2
  380. package/cjs/vchart-simple.js.map +1 -1
  381. package/esm/animation/animate-manager.js +1 -1
  382. package/esm/animation/animate-manager.js.map +1 -1
  383. package/esm/animation/config.d.ts +4 -0
  384. package/esm/animation/config.js +4 -0
  385. package/esm/animation/config.js.map +1 -1
  386. package/esm/animation/spec.d.ts +2 -1
  387. package/esm/animation/spec.js.map +1 -1
  388. package/esm/animation/utils.js +9 -4
  389. package/esm/animation/utils.js.map +1 -1
  390. package/esm/chart/bar/3d/bar-3d.js +3 -1
  391. package/esm/chart/bar/3d/bar-3d.js.map +1 -1
  392. package/esm/chart/base/base-chart-transformer.js +1 -0
  393. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  394. package/esm/chart/base/base-chart.js +6 -4
  395. package/esm/chart/base/base-chart.js.map +1 -1
  396. package/esm/chart/funnel/3d/funnel-3d.js +3 -1
  397. package/esm/chart/funnel/3d/funnel-3d.js.map +1 -1
  398. package/esm/chart/gauge/gauge-transformer.js +1 -1
  399. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  400. package/esm/chart/histogram/3d/histogram-3d.js +3 -1
  401. package/esm/chart/histogram/3d/histogram-3d.js.map +1 -1
  402. package/esm/chart/liquid/liquid-transformer.js +1 -0
  403. package/esm/chart/liquid/liquid-transformer.js.map +1 -1
  404. package/esm/chart/pie/3d/pie-3d.js +3 -1
  405. package/esm/chart/pie/3d/pie-3d.js.map +1 -1
  406. package/esm/chart/pie/base/pie-transformer.js +4 -1
  407. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  408. package/esm/chart/polar/interface.d.ts +3 -2
  409. package/esm/chart/polar/interface.js.map +1 -1
  410. package/esm/chart/range-column/3d/range-column-3d.js +3 -1
  411. package/esm/chart/range-column/3d/range-column-3d.js.map +1 -1
  412. package/esm/chart/rose/rose-transformer.js +1 -1
  413. package/esm/chart/rose/rose-transformer.js.map +1 -1
  414. package/esm/chart/stack.js +3 -2
  415. package/esm/chart/stack.js.map +1 -1
  416. package/esm/chart/sunburst/sunburst-transformer.js +1 -1
  417. package/esm/chart/sunburst/sunburst-transformer.js.map +1 -1
  418. package/esm/chart/util.js +5 -2
  419. package/esm/chart/util.js.map +1 -1
  420. package/esm/chart/word-cloud/3d/word-cloud-3d.js +5 -2
  421. package/esm/chart/word-cloud/3d/word-cloud-3d.js.map +1 -1
  422. package/esm/chart/word-cloud/word-cloud-transformer.js +2 -1
  423. package/esm/chart/word-cloud/word-cloud-transformer.js.map +1 -1
  424. package/esm/compile/compilable-base.js +1 -2
  425. package/esm/compile/compiler.js +1 -3
  426. package/esm/compile/compiler.js.map +1 -1
  427. package/esm/compile/mark/compilable-mark.js +5 -1
  428. package/esm/compile/mark/compilable-mark.js.map +1 -1
  429. package/esm/compile/mark/mark-data.js +1 -1
  430. package/esm/compile/mark/mark-data.js.map +1 -1
  431. package/esm/compile/mark/mark-state-manager.js +1 -1
  432. package/esm/compile/mark/mark-state-manager.js.map +1 -1
  433. package/esm/component/axis/base-axis.d.ts +1 -0
  434. package/esm/component/axis/base-axis.js +18 -14
  435. package/esm/component/axis/base-axis.js.map +1 -1
  436. package/esm/component/axis/cartesian/axis.js +3 -3
  437. package/esm/component/axis/cartesian/axis.js.map +1 -1
  438. package/esm/component/axis/cartesian/band-axis.d.ts +1 -0
  439. package/esm/component/axis/cartesian/band-axis.js +12 -1
  440. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  441. package/esm/component/axis/cartesian/linear-axis.d.ts +1 -0
  442. package/esm/component/axis/cartesian/linear-axis.js +12 -1
  443. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  444. package/esm/component/axis/cartesian/log-axis.d.ts +1 -0
  445. package/esm/component/axis/cartesian/log-axis.js +12 -1
  446. package/esm/component/axis/cartesian/log-axis.js.map +1 -1
  447. package/esm/component/axis/cartesian/symlog-axis.d.ts +1 -0
  448. package/esm/component/axis/cartesian/symlog-axis.js +12 -1
  449. package/esm/component/axis/cartesian/symlog-axis.js.map +1 -1
  450. package/esm/component/axis/cartesian/time-axis.d.ts +1 -0
  451. package/esm/component/axis/cartesian/time-axis.js +13 -2
  452. package/esm/component/axis/cartesian/time-axis.js.map +1 -1
  453. package/esm/component/axis/interface/common.d.ts +2 -2
  454. package/esm/component/axis/interface/common.js.map +1 -1
  455. package/esm/component/axis/mixin/linear-axis-mixin.js +2 -2
  456. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  457. package/esm/component/axis/polar/axis.d.ts +2 -2
  458. package/esm/component/axis/polar/axis.js +21 -24
  459. package/esm/component/axis/polar/axis.js.map +1 -1
  460. package/esm/component/axis/polar/band-axis.d.ts +1 -0
  461. package/esm/component/axis/polar/band-axis.js +12 -0
  462. package/esm/component/axis/polar/band-axis.js.map +1 -1
  463. package/esm/component/axis/polar/interface/spec.d.ts +3 -2
  464. package/esm/component/axis/polar/interface/spec.js.map +1 -1
  465. package/esm/component/axis/polar/linear-axis.d.ts +1 -0
  466. package/esm/component/axis/polar/linear-axis.js +12 -0
  467. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  468. package/esm/component/axis/polar/util/common.d.ts +3 -0
  469. package/esm/component/axis/polar/util/common.js +9 -2
  470. package/esm/component/axis/polar/util/common.js.map +1 -1
  471. package/esm/component/base/base-component.js +1 -1
  472. package/esm/component/base/base-component.js.map +1 -1
  473. package/esm/component/brush/brush.js +8 -3
  474. package/esm/component/brush/brush.js.map +1 -1
  475. package/esm/component/crosshair/base.d.ts +1 -0
  476. package/esm/component/crosshair/base.js +21 -23
  477. package/esm/component/crosshair/base.js.map +1 -1
  478. package/esm/component/crosshair/utils/common.js +6 -5
  479. package/esm/component/crosshair/utils/common.js.map +1 -1
  480. package/esm/component/custom-mark/custom-mark.js +3 -1
  481. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  482. package/esm/component/data-zoom/data-filter-base-component.js +2 -2
  483. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  484. package/esm/component/data-zoom/data-zoom/data-zoom.js +3 -1
  485. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  486. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +3 -1
  487. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  488. package/esm/component/geo/geo-coordinate.js +10 -5
  489. package/esm/component/geo/geo-coordinate.js.map +1 -1
  490. package/esm/component/geo/interface.d.ts +4 -0
  491. package/esm/component/geo/interface.js.map +1 -1
  492. package/esm/component/indicator/indicator.js +1 -1
  493. package/esm/component/indicator/indicator.js.map +1 -1
  494. package/esm/component/indicator/interface.d.ts +3 -1
  495. package/esm/component/indicator/interface.js.map +1 -1
  496. package/esm/component/label/base-label.js +1 -1
  497. package/esm/component/label/base-label.js.map +1 -1
  498. package/esm/component/label/label.js +7 -1
  499. package/esm/component/label/label.js.map +1 -1
  500. package/esm/component/label/total-label.js +5 -1
  501. package/esm/component/label/total-label.js.map +1 -1
  502. package/esm/component/legend/base-legend.js +5 -2
  503. package/esm/component/legend/base-legend.js.map +1 -1
  504. package/esm/component/legend/continuous/legend.js +1 -1
  505. package/esm/component/legend/continuous/legend.js.map +1 -1
  506. package/esm/component/legend/discrete/legend.js +1 -1
  507. package/esm/component/legend/discrete/legend.js.map +1 -1
  508. package/esm/component/legend/util.d.ts +1 -1
  509. package/esm/component/map-label/component.d.ts +1 -1
  510. package/esm/component/map-label/component.js +1 -1
  511. package/esm/component/map-label/component.js.map +1 -1
  512. package/esm/component/marker/interface.d.ts +2 -1
  513. package/esm/component/marker/interface.js.map +1 -1
  514. package/esm/component/marker/mark-area/base-mark-area.js +1 -1
  515. package/esm/component/marker/mark-area/base-mark-area.js.map +1 -1
  516. package/esm/component/marker/mark-line/base-mark-line.js +1 -1
  517. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  518. package/esm/component/marker/mark-point/base-mark-point.js +1 -1
  519. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  520. package/esm/component/marker/utils.js +2 -1
  521. package/esm/component/marker/utils.js.map +1 -1
  522. package/esm/component/player/player.js +3 -1
  523. package/esm/component/player/player.js.map +1 -1
  524. package/esm/component/title/title.js +1 -1
  525. package/esm/component/title/title.js.map +1 -1
  526. package/esm/component/tooltip/constant.js +1 -1
  527. package/esm/component/tooltip/constant.js.map +1 -1
  528. package/esm/component/tooltip/processor/base.js +1 -1
  529. package/esm/component/tooltip/processor/base.js.map +1 -1
  530. package/esm/component/tooltip/tooltip-transformer.js +4 -2
  531. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  532. package/esm/component/tooltip/tooltip.d.ts +1 -0
  533. package/esm/component/tooltip/tooltip.js +11 -7
  534. package/esm/component/tooltip/tooltip.js.map +1 -1
  535. package/esm/component/tooltip/utils/show-tooltip.js +1 -1
  536. package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
  537. package/esm/constant/attribute.d.ts +13 -0
  538. package/esm/constant/attribute.js +11 -0
  539. package/esm/constant/attribute.js.map +1 -0
  540. package/esm/constant/data.d.ts +22 -0
  541. package/esm/constant/data.js +46 -0
  542. package/esm/constant/data.js.map +1 -0
  543. package/esm/constant/gradient.d.ts +43 -0
  544. package/esm/constant/gradient.js +31 -0
  545. package/esm/constant/gradient.js.map +1 -0
  546. package/esm/constant/layout.d.ts +33 -0
  547. package/esm/constant/layout.js +25 -1
  548. package/esm/constant/layout.js.map +1 -1
  549. package/esm/constant/scroll-bar.js +2 -1
  550. package/esm/core/index.d.ts +2 -2
  551. package/esm/core/index.js +3 -3
  552. package/esm/core/index.js.map +1 -1
  553. package/esm/core/interface.d.ts +15 -3
  554. package/esm/core/interface.js.map +1 -1
  555. package/esm/core/vchart.d.ts +9 -1
  556. package/esm/core/vchart.js +76 -54
  557. package/esm/core/vchart.js.map +1 -1
  558. package/esm/data/register.js +1 -2
  559. package/esm/data/transforms/correlation-center.js +1 -1
  560. package/esm/data/transforms/correlation-center.js.map +1 -1
  561. package/esm/data/transforms/correlation.js +1 -1
  562. package/esm/data/transforms/correlation.js.map +1 -1
  563. package/esm/data/transforms/data-key.js +1 -1
  564. package/esm/data/transforms/data-key.js.map +1 -1
  565. package/esm/data/transforms/legend-data/discrete/discrete.js +1 -1
  566. package/esm/data/transforms/legend-data/discrete/discrete.js.map +1 -1
  567. package/esm/data/transforms/map.js +3 -1
  568. package/esm/data/transforms/map.js.map +1 -1
  569. package/esm/data/transforms/pie.d.ts +6 -4
  570. package/esm/data/transforms/pie.js +15 -6
  571. package/esm/data/transforms/pie.js.map +1 -1
  572. package/esm/data/transforms/waterfall.js +1 -1
  573. package/esm/data/transforms/waterfall.js.map +1 -1
  574. package/esm/event/bubble.d.ts +3 -0
  575. package/esm/event/bubble.js +10 -1
  576. package/esm/event/bubble.js.map +1 -1
  577. package/esm/event/event-dispatcher.d.ts +3 -1
  578. package/esm/event/event-dispatcher.js +29 -27
  579. package/esm/event/event-dispatcher.js.map +1 -1
  580. package/esm/event/event.d.ts +2 -0
  581. package/esm/event/event.js +6 -0
  582. package/esm/event/event.js.map +1 -1
  583. package/esm/event/events/dimension/dimension-click.js +1 -1
  584. package/esm/event/events/dimension/dimension-click.js.map +1 -1
  585. package/esm/event/events/dimension/dimension-hover.js +1 -1
  586. package/esm/event/events/dimension/dimension-hover.js.map +1 -1
  587. package/esm/event/events/dimension/util/cartesian.js +0 -3
  588. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  589. package/esm/event/events/dimension/util/polar.js +0 -3
  590. package/esm/event/events/dimension/util/polar.js.map +1 -1
  591. package/esm/event/interface.d.ts +6 -1
  592. package/esm/event/interface.js.map +1 -1
  593. package/esm/index-lark.js +3 -1
  594. package/esm/index-lark.js.map +1 -1
  595. package/esm/index-wx-simple.js +3 -1
  596. package/esm/index-wx-simple.js.map +1 -1
  597. package/esm/index-wx.d.ts +3 -1
  598. package/esm/index-wx.js +6 -2
  599. package/esm/index-wx.js.map +1 -1
  600. package/esm/index.d.ts +1 -0
  601. package/esm/index.js +2 -0
  602. package/esm/index.js.map +1 -1
  603. package/esm/interaction/config.js +1 -1
  604. package/esm/interaction/dimension-trigger.js +1 -1
  605. package/esm/interaction/drill/drillable.js +1 -1
  606. package/esm/interaction/drill/drillable.js.map +1 -1
  607. package/esm/interaction/index.js +1 -1
  608. package/esm/interaction/interaction.js +1 -1
  609. package/esm/interaction/zoom/zoomable.d.ts +10 -33
  610. package/esm/interaction/zoom/zoomable.js +12 -8
  611. package/esm/interaction/zoom/zoomable.js.map +1 -1
  612. package/esm/layout/base-layout.js +3 -2
  613. package/esm/layout/base-layout.js.map +1 -1
  614. package/esm/layout/layout-item.js +1 -1
  615. package/esm/layout/layout-item.js.map +1 -1
  616. package/esm/mark/arc.js +1 -1
  617. package/esm/mark/arc.js.map +1 -1
  618. package/esm/mark/base/base-line.js +1 -2
  619. package/esm/mark/base/base-line.js.map +1 -1
  620. package/esm/mark/base/base-mark.js +10 -2
  621. package/esm/mark/base/base-mark.js.map +1 -1
  622. package/esm/mark/utils/common.d.ts +1 -0
  623. package/esm/mark/utils/common.js +4 -0
  624. package/esm/mark/utils/common.js.map +1 -1
  625. package/esm/model/interface.d.ts +1 -0
  626. package/esm/model/interface.js.map +1 -1
  627. package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
  628. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  629. package/esm/plugin/other.d.ts +6 -0
  630. package/esm/plugin/other.js +18 -0
  631. package/esm/plugin/other.js.map +1 -0
  632. package/esm/region/region.js +5 -1
  633. package/esm/region/region.js.map +1 -1
  634. package/esm/series/area/area.js +1 -1
  635. package/esm/series/area/area.js.map +1 -1
  636. package/esm/series/bar/bar.js +3 -1
  637. package/esm/series/bar/bar.js.map +1 -1
  638. package/esm/series/base/base-series-transformer.js +1 -2
  639. package/esm/series/base/base-series-transformer.js.map +1 -1
  640. package/esm/series/base/base-series.js +7 -3
  641. package/esm/series/base/base-series.js.map +1 -1
  642. package/esm/series/base/constant.js +1 -1
  643. package/esm/series/base/constant.js.map +1 -1
  644. package/esm/series/box-plot/box-plot.js +5 -1
  645. package/esm/series/box-plot/box-plot.js.map +1 -1
  646. package/esm/series/cartesian/cartesian.js +5 -1
  647. package/esm/series/cartesian/cartesian.js.map +1 -1
  648. package/esm/series/circle-packing/circle-packing.js +3 -1
  649. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  650. package/esm/series/correlation/correlation.js +6 -2
  651. package/esm/series/correlation/correlation.js.map +1 -1
  652. package/esm/series/dot/dot.js +3 -1
  653. package/esm/series/dot/dot.js.map +1 -1
  654. package/esm/series/funnel/3d/funnel-3d.js +1 -1
  655. package/esm/series/funnel/3d/funnel-3d.js.map +1 -1
  656. package/esm/series/funnel/funnel.js +6 -2
  657. package/esm/series/funnel/funnel.js.map +1 -1
  658. package/esm/series/gauge/gauge.js +4 -4
  659. package/esm/series/gauge/gauge.js.map +1 -1
  660. package/esm/series/geo/geo.js +1 -1
  661. package/esm/series/geo/geo.js.map +1 -1
  662. package/esm/series/heatmap/heatmap.js +1 -1
  663. package/esm/series/heatmap/heatmap.js.map +1 -1
  664. package/esm/series/interface/type.d.ts +2 -0
  665. package/esm/series/interface/type.js +5 -4
  666. package/esm/series/interface/type.js.map +1 -1
  667. package/esm/series/link/link.js +3 -1
  668. package/esm/series/link/link.js.map +1 -1
  669. package/esm/series/liquid/animation.d.ts +2 -1
  670. package/esm/series/liquid/animation.js +30 -2
  671. package/esm/series/liquid/animation.js.map +1 -1
  672. package/esm/series/liquid/constant.js +5 -1
  673. package/esm/series/liquid/constant.js.map +1 -1
  674. package/esm/series/liquid/interface.d.ts +1 -0
  675. package/esm/series/liquid/interface.js.map +1 -1
  676. package/esm/series/liquid/liquid.d.ts +9 -2
  677. package/esm/series/liquid/liquid.js +95 -62
  678. package/esm/series/liquid/liquid.js.map +1 -1
  679. package/esm/series/liquid/util.js +1 -1
  680. package/esm/series/liquid/util.js.map +1 -1
  681. package/esm/series/map/map.js +3 -1
  682. package/esm/series/map/map.js.map +1 -1
  683. package/esm/series/mixin/line-mixin.js +1 -1
  684. package/esm/series/mixin/line-mixin.js.map +1 -1
  685. package/esm/series/mosaic/mosaic.js +1 -1
  686. package/esm/series/mosaic/mosaic.js.map +1 -1
  687. package/esm/series/pie/3d/pie-3d.js +3 -1
  688. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  689. package/esm/series/pie/animation/centerOffset.js +1 -1
  690. package/esm/series/pie/animation/centerOffset.js.map +1 -1
  691. package/esm/series/pie/interface.d.ts +8 -1
  692. package/esm/series/pie/interface.js.map +1 -1
  693. package/esm/series/pie/pie.d.ts +4 -1
  694. package/esm/series/pie/pie.js +44 -25
  695. package/esm/series/pie/pie.js.map +1 -1
  696. package/esm/series/polar/polar.js +1 -1
  697. package/esm/series/polar/polar.js.map +1 -1
  698. package/esm/series/polar/progress-like/progress-like.js +5 -1
  699. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  700. package/esm/series/polar/rose-like/rose-like.js +1 -1
  701. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  702. package/esm/series/progress/circular/circular.js +3 -1
  703. package/esm/series/progress/circular/circular.js.map +1 -1
  704. package/esm/series/progress/linear/linear.js +1 -1
  705. package/esm/series/progress/linear/linear.js.map +1 -1
  706. package/esm/series/radar/radar.js +5 -1
  707. package/esm/series/radar/radar.js.map +1 -1
  708. package/esm/series/range-area/range-area.js +1 -1
  709. package/esm/series/range-area/range-area.js.map +1 -1
  710. package/esm/series/sankey/sankey.js +5 -1
  711. package/esm/series/sankey/sankey.js.map +1 -1
  712. package/esm/series/scatter/scatter.js +1 -1
  713. package/esm/series/scatter/scatter.js.map +1 -1
  714. package/esm/series/sunburst/sunburst.js +3 -1
  715. package/esm/series/sunburst/sunburst.js.map +1 -1
  716. package/esm/series/treemap/treemap.js +10 -3
  717. package/esm/series/treemap/treemap.js.map +1 -1
  718. package/esm/series/util/label-mark.js +1 -1
  719. package/esm/series/util/label-mark.js.map +1 -1
  720. package/esm/series/venn/venn.js +3 -1
  721. package/esm/series/venn/venn.js.map +1 -1
  722. package/esm/series/waterfall/waterfall.js +7 -1
  723. package/esm/series/waterfall/waterfall.js.map +1 -1
  724. package/esm/series/word-cloud/base.d.ts +11 -11
  725. package/esm/series/word-cloud/base.js +96 -122
  726. package/esm/series/word-cloud/base.js.map +1 -1
  727. package/esm/series/word-cloud/constant.js +4 -0
  728. package/esm/series/word-cloud/constant.js.map +1 -1
  729. package/esm/series/word-cloud/interface.d.ts +5 -2
  730. package/esm/series/word-cloud/interface.js.map +1 -1
  731. package/esm/series/word-cloud/word-cloud-3d.js +1 -1
  732. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  733. package/esm/theme/builtin/common/series/sunburst.js +1 -1
  734. package/esm/theme/builtin/common/series/sunburst.js.map +1 -1
  735. package/esm/theme/interface.d.ts +2 -0
  736. package/esm/theme/interface.js.map +1 -1
  737. package/esm/typings/interpolate.d.ts +1 -3
  738. package/esm/typings/interpolate.js +0 -4
  739. package/esm/typings/interpolate.js.map +1 -1
  740. package/esm/util/data.js +1 -1
  741. package/esm/util/data.js.map +1 -1
  742. package/esm/util/env.js +1 -1
  743. package/esm/util/env.js.map +1 -1
  744. package/esm/util/math.d.ts +1 -2
  745. package/esm/util/math.js +0 -4
  746. package/esm/util/math.js.map +1 -1
  747. package/esm/vchart-all.js +6 -2
  748. package/esm/vchart-all.js.map +1 -1
  749. package/esm/vchart-empty.d.ts +4 -0
  750. package/esm/vchart-empty.js +8 -0
  751. package/esm/vchart-empty.js.map +1 -0
  752. package/esm/vchart-pie.d.ts +4 -0
  753. package/esm/vchart-pie.js +20 -0
  754. package/esm/vchart-pie.js.map +1 -0
  755. package/esm/vchart-simple.js +3 -1
  756. package/esm/vchart-simple.js.map +1 -1
  757. package/package.json +20 -18
  758. package/cjs/constant/index.d.ts +0 -117
  759. package/cjs/constant/index.js +0 -89
  760. package/cjs/constant/index.js.map +0 -1
  761. package/cjs/plugin/index.d.ts +0 -2
  762. package/cjs/plugin/index.js.map +0 -1
  763. package/esm/constant/index.d.ts +0 -117
  764. package/esm/constant/index.js +0 -126
  765. package/esm/constant/index.js.map +0 -1
  766. package/esm/plugin/index.d.ts +0 -2
  767. package/esm/plugin/index.js +0 -4
  768. package/esm/plugin/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/event-dispatcher.ts"],"names":[],"mappings":"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","file":"event-dispatcher.js","sourcesContent":["import { Bubble } from './bubble';\nimport { isValid, debounce, throttle, get, isFunction } from '@visactor/vutils';\nimport { BASE_EVENTS, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant/event';\nimport type {\n EventType,\n EventQuery,\n EventHandler,\n EventParamsDefinition,\n IEventDispatcher,\n EventBubbleLevel,\n BaseEventParams,\n EventParams,\n EventFilter,\n EventSourceType,\n InteractionEventParam\n} from './interface';\nimport type { VChart } from '../core/vchart';\nimport type { CompilerListenerParameters } from '../compile/interface';\nimport type { Compiler } from '../compile/compiler';\nimport type { StringOrNumber } from '../typings';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport { Factory as VGrammarFactory } from '@visactor/vgrammar-core';\n\nconst componentTypeMap = {\n cartesianAxis: 'axis',\n 'cartesianAxis-band': 'axis',\n 'cartesianAxis-linear': 'axis',\n 'cartesianAxis-time': 'axis',\n polarAxis: 'axis',\n 'polarAxis-band': 'axis',\n 'polarAxis-linear': 'axis',\n discreteLegend: 'legend',\n continuousLegend: 'legend',\n colorLegend: 'legend',\n sizeLegend: 'legend',\n label: 'label',\n markLine: 'markLine',\n markArea: 'markArea',\n markPoint: 'markPoint',\n polarMarkLine: 'polarMarkLine',\n polarMarkArea: 'polarMarkArea',\n polarMarkPoint: 'polarMarkPoint',\n geoMarkPoint: 'geoMarkPoint'\n};\n\nexport class EventDispatcher implements IEventDispatcher {\n globalInstance: VChart;\n\n // view 事件与 window 事件视作为不同类型的事件信息,进行独立的冒泡处理\n private _viewBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _windowBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _canvasBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n\n private _viewListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _windowListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _canvasListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n\n private _compiler: Compiler;\n\n constructor(vchart: VChart, compiler: Compiler) {\n this.globalInstance = vchart;\n this._compiler = compiler;\n }\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): this {\n // 解析 query 配置并生成最终 handler 内容\n this._parseQuery(handler);\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler.filter?.source || Event_Source_Type.chart);\n\n if (!bubbles.get(eType)) {\n bubbles.set(eType, new Bubble());\n }\n\n // 挂载事件监听\n const bubble = bubbles.get(eType) as Bubble;\n bubble.addHandler(handler, handler.filter?.level as EventBubbleLevel);\n if (this._isValidEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegate.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n } else if (this._isInteractionEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegateInteractionEvent.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n }\n return this;\n }\n\n unregister<Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>): this {\n let clean: boolean = false;\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler?.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler?.filter?.source || Event_Source_Type.chart);\n\n if (!handler) {\n const bubble = bubbles.get(eType);\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n } else {\n const bubble = bubbles.get(eType);\n bubble?.removeHandler(handler);\n if (bubble?.getCount() === 0) {\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n }\n\n if ((handler?.wrappedCallback as any)?.cancel) {\n // 取消debounce/throttle事件,释放闭包内部的上下文对象\n (handler.wrappedCallback as any).cancel();\n }\n }\n // 某个事件下所有的监听取消之后删除语法层事件的代理\n if (clean && this._isValidEvent(eType)) {\n const callback = listeners.get(eType) as (params: CompilerListenerParameters) => void;\n this._compiler.removeEventListener(handler?.filter?.source || Event_Source_Type.chart, eType, callback);\n listeners.delete(eType);\n }\n return this;\n }\n\n dispatch<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n // 默认事件类别为 view\n const bubble = this.getEventBubble((params as BaseEventParams).source || Event_Source_Type.chart).get(\n eType\n ) as Bubble;\n // 没有任何监听事件时,bubble 不存在\n if (!bubble) {\n return this;\n }\n\n // 事件冒泡逻辑:Mark -> Model -> Chart -> VChart\n let stopBubble: boolean = false;\n\n if (level) {\n // 如果指定了 level,则直接处理,不进行冒泡\n const handlers = bubble.getHandlers(level);\n stopBubble = this._invoke(handlers, eType, params);\n } else {\n // Mark 级别的事件只包含对语法层代理的基础事件\n const handlers = bubble.getHandlers(Event_Bubble_Level.mark);\n stopBubble = this._invoke(handlers, eType, params);\n\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.model);\n stopBubble = this._invoke(handlers, eType, params);\n }\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.chart);\n stopBubble = this._invoke(handlers, eType, params);\n }\n if (!stopBubble) {\n const handlers = bubble.getHandlers(Event_Bubble_Level.vchart);\n stopBubble = this._invoke(handlers, eType, params);\n }\n }\n\n return this;\n }\n\n clear(): void {\n for (const entry of this._viewListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.chart, entry[0], entry[1]);\n }\n this._viewListeners.clear();\n for (const entry of this._windowListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.window, entry[0], entry[1]);\n }\n this._windowListeners.clear();\n for (const entry of this._canvasListeners.entries()) {\n this._compiler.removeEventListener(Event_Source_Type.canvas, entry[0], entry[1]);\n }\n this._canvasListeners.clear();\n for (const bubble of this._viewBubbles.values()) {\n bubble.release();\n }\n this._viewBubbles.clear();\n for (const bubble of this._windowBubbles.values()) {\n bubble.release();\n }\n this._windowBubbles.clear();\n for (const bubble of this._canvasBubbles.values()) {\n bubble.release();\n }\n this._canvasBubbles.clear();\n }\n\n release(): void {\n this.clear();\n this.globalInstance = null;\n this._compiler = null;\n }\n\n /**\n * 基于转换后的事件筛选配置过滤需要调用的 handler\n */\n private _filter<Evt extends EventType>(filter: EventFilter, evt: Evt, params: EventParamsDefinition[Evt]): boolean {\n if (isFunction(filter.filter) && !filter.filter(params)) {\n return false;\n }\n\n // 事件 level 不需要筛选,在冒泡流程中已经处理了 level 的逻辑\n if (filter.nodeName && get(params, 'node.name') !== filter.nodeName) {\n return false;\n }\n\n if (filter.markName && (params as BaseEventParams)?.mark?.name !== filter.markName) {\n // 对于 markName 的筛选需要包含所有父级 mark 的 name\n return false;\n }\n\n let modelType = params.model?.type;\n if (componentTypeMap[modelType]) {\n modelType = componentTypeMap[modelType];\n }\n if (filter.type && modelType !== filter.type) {\n return false;\n }\n\n // 如果配置了 level 为 'mark' 并且没有配置 type,则只在事件参数中包含了 mark 时才触发\n if (filter.level === 'mark' && !filter.type && !(params as BaseEventParams)?.mark) {\n return false;\n }\n\n // 如果配置了 level 为 'model' 并且没有配置 type,则只在事件参数中包含了 model 时才触发\n if (filter.level === 'model' && !filter.type && !(params as BaseEventParams)?.model) {\n return false;\n }\n\n if (isValid(filter.userId) && params.model?.userId !== filter.userId) {\n return false;\n }\n\n return true;\n }\n\n private _prepareParams<Evt extends EventType>(\n filter: EventFilter,\n params: EventParamsDefinition[Evt]\n ): EventParamsDefinition[Evt] {\n // 如果针对于 mark 做了筛选,则事件参数转为筛选器制定的父级 mark\n if (filter.markName && params.mark && (params as BaseEventParams).itemMap) {\n const markId = params.mark.getProductId();\n const item = (params as BaseEventParams).itemMap.get(markId);\n const datum = item?.getDatum();\n return { ...params, item, datum };\n }\n return { ...params };\n }\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegate = (listenerParams: CompilerListenerParameters) => {\n const chart = this.globalInstance.getChart();\n const model = (isValid(listenerParams.modelId) && chart?.getModelById(listenerParams.modelId)) || undefined;\n const mark = (isValid(listenerParams.markId) && chart?.getMarkById(listenerParams.markId)) || null;\n\n // FIXME: 这里操作的应当是场景树结构,与 vgrammar 结构无关\n // 遍历取到所有父级的 mark 以支持子元素响应父元素事件\n const itemMap = new Map<string, any>();\n let targetMark: any = listenerParams.item?.mark;\n if (targetMark && isValid(targetMark.id())) {\n itemMap.set(targetMark.id(), listenerParams.item);\n }\n while (targetMark?.elements) {\n const id = targetMark.id();\n // 由于父级的 markName 可能重复,因此只取最近的父级 mark\n if (isValid(id) && !itemMap.has(id)) {\n itemMap.set(id, targetMark.elements[0]);\n }\n targetMark = targetMark.group;\n }\n\n const params: BaseEventParams = {\n event: listenerParams.event,\n item: listenerParams.item,\n datum: listenerParams.datum,\n source: listenerParams.source,\n itemMap,\n chart,\n model,\n mark: mark ?? undefined,\n node: get(listenerParams.event, 'target')\n };\n this.dispatch(listenerParams.type, params);\n };\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegateInteractionEvent = (listenerParams: CompilerListenerParameters) => {\n const chart = this.globalInstance.getChart();\n const event = listenerParams.event;\n let items: IElement[] = null;\n\n if ((event as any).elements) {\n items = (event as any).elements;\n }\n\n const params: InteractionEventParam = {\n event: listenerParams.event,\n chart,\n items,\n datums:\n items &&\n items.map(item => {\n return item.getDatum();\n })\n };\n this.dispatch(listenerParams.type, params);\n };\n\n /**\n * 调用相应事件监听下的 handlers\n */\n private _invoke<Evt extends EventType>(\n handlers: EventHandler<EventParams>[],\n type: EventType,\n params: EventParamsDefinition[Evt]\n ): boolean {\n const result = handlers.map(handler => {\n const filter = handler.filter as EventFilter;\n if (!handler.query || this._filter(filter, type, params)) {\n const callback = handler.wrappedCallback || handler.callback;\n const stopBubble = callback.call(null, this._prepareParams(filter, params));\n const doStopBubble = stopBubble ?? handler.query?.consume;\n if (doStopBubble) {\n (params as BaseEventParams).event?.stopPropagation();\n (params as BaseEventParams).event?.preventDefault();\n }\n return !!doStopBubble;\n }\n return undefined;\n });\n // 如果某个事件回调阻止了冒泡,则阻止更高级别事件的调用过程\n return result.some(r => r === true);\n }\n\n /**\n * 依据事件 query 得到事件冒泡层级\n */\n private _getQueryLevel(query: EventQuery | null): EventBubbleLevel {\n // 事件默认监听在 vchart 层\n if (!query) {\n return Event_Bubble_Level.vchart;\n }\n if (query.level) {\n return query.level;\n }\n if (isValid(query.id)) {\n return Event_Bubble_Level.model;\n }\n\n return Event_Bubble_Level.vchart;\n }\n\n /**\n * 将用户 query 配置转换为最终事件筛选参数\n */\n private _parseQuery(handler: EventHandler<EventParams>): EventHandler<EventParams> {\n const query = handler.query;\n // 处理 query 带来的函数封装\n if (query?.throttle) {\n handler.wrappedCallback = throttle(handler.callback, query.throttle);\n } else if (query?.debounce) {\n handler.wrappedCallback = debounce(handler.callback, query.debounce);\n }\n let level = this._getQueryLevel(query);\n let type: string | null = null;\n let source: EventSourceType = Event_Source_Type.chart;\n let nodeName: string | null = null;\n let markName: string | null = null;\n let userId: StringOrNumber | null = null;\n\n if (query?.nodeName) {\n nodeName = query.nodeName;\n }\n\n if (query?.markName) {\n markName = query.markName;\n }\n\n if (query?.type && (level === Event_Bubble_Level.model || level === Event_Bubble_Level.mark)) {\n type = query.type;\n }\n if (query?.source) {\n source = query.source;\n }\n\n if (isValid(query?.id)) {\n userId = query?.id;\n level = Event_Bubble_Level.model; // 如果用户配置了 id,那么默认 level 为 model\n }\n handler.filter = {\n level,\n markName,\n type,\n source,\n nodeName,\n userId,\n filter: query?.filter ?? null\n };\n return handler;\n }\n\n private getEventBubble(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewBubbles;\n case Event_Source_Type.window:\n return this._windowBubbles;\n case Event_Source_Type.canvas:\n return this._canvasBubbles;\n default:\n return this._viewBubbles;\n }\n }\n\n private getEventListeners(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewListeners;\n case Event_Source_Type.window:\n return this._windowListeners;\n case Event_Source_Type.canvas:\n return this._canvasListeners;\n default:\n return this._viewListeners;\n }\n }\n\n private _isValidEvent(eType: string) {\n return BASE_EVENTS.includes(eType) || (Object.values(VGRAMMAR_HOOK_EVENT) as string[]).includes(eType);\n }\n\n private _isInteractionEvent(eType: string) {\n let interactionType: string;\n\n return (\n eType &&\n ((interactionType = eType.split(':')[0]), interactionType) &&\n VGrammarFactory.hasInteraction(interactionType)\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/event-dispatcher.ts"],"names":[],"mappings":"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","file":"event-dispatcher.js","sourcesContent":["import { Bubble } from './bubble';\nimport { isValid, debounce, throttle, get, isFunction } from '@visactor/vutils';\nimport { BASE_EVENTS, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant/event';\nimport type {\n EventType,\n EventQuery,\n EventHandler,\n EventParamsDefinition,\n IEventDispatcher,\n EventBubbleLevel,\n BaseEventParams,\n EventParams,\n EventFilter,\n EventSourceType,\n InteractionEventParam,\n EventCallback\n} from './interface';\nimport type { VChart } from '../core/vchart';\nimport type { CompilerListenerParameters } from '../compile/interface';\nimport type { Compiler } from '../compile/compiler';\nimport type { StringOrNumber } from '../typings';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport { Factory as VGrammarFactory } from '@visactor/vgrammar-core';\n\nconst componentTypeMap = {\n cartesianAxis: 'axis',\n 'cartesianAxis-band': 'axis',\n 'cartesianAxis-linear': 'axis',\n 'cartesianAxis-time': 'axis',\n polarAxis: 'axis',\n 'polarAxis-band': 'axis',\n 'polarAxis-linear': 'axis',\n discreteLegend: 'legend',\n continuousLegend: 'legend',\n colorLegend: 'legend',\n sizeLegend: 'legend',\n label: 'label',\n markLine: 'markLine',\n markArea: 'markArea',\n markPoint: 'markPoint',\n polarMarkLine: 'polarMarkLine',\n polarMarkArea: 'polarMarkArea',\n polarMarkPoint: 'polarMarkPoint',\n geoMarkPoint: 'geoMarkPoint'\n};\n\nexport class EventDispatcher implements IEventDispatcher {\n globalInstance: VChart;\n\n // view 事件与 window 事件视作为不同类型的事件信息,进行独立的冒泡处理\n private _viewBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _windowBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n private _canvasBubbles: Map<EventType, Bubble> = new Map<EventType, Bubble>();\n\n private _viewListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _windowListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n private _canvasListeners: Map<string, (params: CompilerListenerParameters) => void> = new Map<\n string,\n (params: CompilerListenerParameters) => void\n >();\n\n private _compiler: Compiler;\n\n constructor(vchart: VChart, compiler: Compiler) {\n this.globalInstance = vchart;\n this._compiler = compiler;\n }\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): this {\n // 解析 query 配置并生成最终 handler 内容\n this._parseQuery(handler);\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler.filter?.source || Event_Source_Type.chart);\n\n if (!bubbles.get(eType)) {\n bubbles.set(eType, new Bubble());\n }\n\n // 挂载事件监听\n const bubble = bubbles.get(eType) as Bubble;\n bubble.addHandler(handler, handler.filter?.level as EventBubbleLevel);\n if (this._isValidEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegate.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n } else if (this._isInteractionEvent(eType) && !listeners.has(eType)) {\n const callback = this._onDelegateInteractionEvent.bind(this);\n this._compiler.addEventListener(handler.filter?.source as EventSourceType, eType, callback);\n listeners.set(eType, callback);\n }\n return this;\n }\n\n unregister<Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>): this {\n let clean: boolean = false;\n // view/window 事件做独立的处理\n const bubbles = this.getEventBubble(handler?.filter?.source || Event_Source_Type.chart);\n const listeners = this.getEventListeners(handler?.filter?.source || Event_Source_Type.chart);\n\n if (!handler) {\n const bubble = bubbles.get(eType);\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n } else {\n const bubble = bubbles.get(eType);\n bubble?.removeHandler(handler);\n if (bubble?.getCount() === 0) {\n bubble?.release();\n bubbles.delete(eType);\n clean = true;\n }\n\n if ((handler?.wrappedCallback as any)?.cancel) {\n // 取消debounce/throttle事件,释放闭包内部的上下文对象\n (handler.wrappedCallback as any).cancel();\n }\n }\n // 某个事件下所有的监听取消之后删除语法层事件的代理\n if (clean && this._isValidEvent(eType)) {\n const callback = listeners.get(eType) as (params: CompilerListenerParameters) => void;\n this._compiler.removeEventListener(handler?.filter?.source || Event_Source_Type.chart, eType, callback);\n listeners.delete(eType);\n }\n return this;\n }\n\n dispatch<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n // 默认事件类别为 view\n const bubble = this.getEventBubble((params as BaseEventParams).source || Event_Source_Type.chart).get(\n eType\n ) as Bubble;\n // 没有任何监听事件时,bubble 不存在\n if (!bubble) {\n return this;\n }\n\n // 事件冒泡逻辑:Mark -> Model -> Chart -> VChart\n let stopBubble: boolean = false;\n\n if (level) {\n // 如果指定了 level,则直接处理,不进行冒泡\n const handlers = bubble.getHandlers(level);\n stopBubble = this._invoke(handlers, eType, params);\n } else {\n const levels = [\n Event_Bubble_Level.mark,\n Event_Bubble_Level.model,\n Event_Bubble_Level.chart,\n Event_Bubble_Level.vchart\n ];\n let i = 0;\n\n // Mark 级别的事件只包含对语法层代理的基础事件\n while (!stopBubble && i < levels.length) {\n stopBubble = this._invoke(bubble.getHandlers(levels[i]), eType, params);\n i++;\n }\n }\n\n return this;\n }\n\n prevent<Evt extends EventType>(eType: Evt, except?: EventCallback<EventParams>): this {\n const eventTypes = ['canvas', 'chart', 'window'] as EventSourceType[];\n eventTypes.forEach(type => {\n const bubble = this.getEventBubble(type).get(eType);\n if (bubble) {\n bubble.getAllHandlers().forEach(handler => {\n if (!except || handler.callback !== except) {\n bubble.preventHandler(handler);\n }\n });\n }\n });\n return this;\n }\n\n allow<Evt extends EventType>(eType: Evt): this {\n const eventTypes = ['canvas', 'chart', 'window'] as EventSourceType[];\n eventTypes.forEach(type => {\n const bubble = this.getEventBubble(type).get(eType);\n if (bubble) {\n bubble.getAllHandlers().forEach(handler => bubble.allowHandler(handler));\n }\n });\n return this;\n }\n\n clear(): void {\n const types = [Event_Source_Type.chart, Event_Source_Type.window, Event_Source_Type.canvas];\n\n types.forEach(type => {\n const listeners = this.getEventListeners(type);\n for (const entry of listeners.entries()) {\n this._compiler.removeEventListener(type, entry[0], entry[1]);\n }\n listeners.clear();\n });\n\n [this._viewBubbles, this._windowBubbles, this._canvasBubbles].forEach(bubbles => {\n for (const bubble of bubbles.values()) {\n bubble.release();\n }\n bubbles.clear();\n });\n }\n\n release(): void {\n this.clear();\n this.globalInstance = null;\n this._compiler = null;\n }\n\n /**\n * 基于转换后的事件筛选配置过滤需要调用的 handler\n */\n private _filter<Evt extends EventType>(filter: EventFilter, evt: Evt, params: EventParamsDefinition[Evt]): boolean {\n if (isFunction(filter.filter) && !filter.filter(params)) {\n return false;\n }\n\n // 事件 level 不需要筛选,在冒泡流程中已经处理了 level 的逻辑\n if (filter.nodeName && get(params, 'node.name') !== filter.nodeName) {\n return false;\n }\n\n if (filter.markName && (params as BaseEventParams)?.mark?.name !== filter.markName) {\n // 对于 markName 的筛选需要包含所有父级 mark 的 name\n return false;\n }\n\n let modelType = params.model?.type;\n if (componentTypeMap[modelType]) {\n modelType = componentTypeMap[modelType];\n }\n if (filter.type && modelType !== filter.type) {\n return false;\n }\n\n // 如果配置了 level 为 'mark' 并且没有配置 type,则只在事件参数中包含了 mark 时才触发\n if (filter.level === 'mark' && !filter.type && !(params as BaseEventParams)?.mark) {\n return false;\n }\n\n // 如果配置了 level 为 'model' 并且没有配置 type,则只在事件参数中包含了 model 时才触发\n if (filter.level === 'model' && !filter.type && !(params as BaseEventParams)?.model) {\n return false;\n }\n\n if (isValid(filter.userId) && params.model?.userId !== filter.userId) {\n return false;\n }\n\n return true;\n }\n\n private _prepareParams<Evt extends EventType>(\n filter: EventFilter,\n params: EventParamsDefinition[Evt]\n ): EventParamsDefinition[Evt] {\n // 如果针对于 mark 做了筛选,则事件参数转为筛选器制定的父级 mark\n if (filter.markName && params.mark && (params as BaseEventParams).itemMap) {\n const markId = params.mark.getProductId();\n const item = (params as BaseEventParams).itemMap.get(markId);\n const datum = item?.getDatum();\n return { ...params, item, datum };\n }\n return { ...params };\n }\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegate = (listenerParams: CompilerListenerParameters) => {\n const chart = this.globalInstance.getChart();\n const model = (isValid(listenerParams.modelId) && chart?.getModelById(listenerParams.modelId)) || undefined;\n const mark = (isValid(listenerParams.markId) && chart?.getMarkById(listenerParams.markId)) || null;\n\n // FIXME: 这里操作的应当是场景树结构,与 vgrammar 结构无关\n // 遍历取到所有父级的 mark 以支持子元素响应父元素事件\n const itemMap = new Map<string, any>();\n let targetMark: any = listenerParams.item?.mark;\n if (targetMark && isValid(targetMark.id())) {\n itemMap.set(targetMark.id(), listenerParams.item);\n }\n while (targetMark?.elements) {\n const id = targetMark.id();\n // 由于父级的 markName 可能重复,因此只取最近的父级 mark\n if (isValid(id) && !itemMap.has(id)) {\n itemMap.set(id, targetMark.elements[0]);\n }\n targetMark = targetMark.group;\n }\n\n const params: BaseEventParams = {\n event: listenerParams.event,\n item: listenerParams.item,\n datum: listenerParams.datum,\n source: listenerParams.source,\n itemMap,\n chart,\n model,\n mark: mark ?? undefined,\n node: get(listenerParams.event, 'target')\n };\n this.dispatch(listenerParams.type, params);\n };\n\n /**\n * 代理语法层事件的监听回调\n */\n private _onDelegateInteractionEvent = (listenerParams: CompilerListenerParameters) => {\n const chart = this.globalInstance.getChart();\n const event = listenerParams.event;\n let items: IElement[] = null;\n\n if ((event as any).elements) {\n items = (event as any).elements;\n }\n\n const params: InteractionEventParam = {\n event: listenerParams.event,\n chart,\n items,\n datums:\n items &&\n items.map(item => {\n return item.getDatum();\n })\n };\n this.dispatch(listenerParams.type, params);\n };\n\n /**\n * 调用相应事件监听下的 handlers\n */\n private _invoke<Evt extends EventType>(\n handlers: EventHandler<EventParams>[],\n type: EventType,\n params: EventParamsDefinition[Evt]\n ): boolean {\n const result = handlers.map(handler => {\n const filter = handler.filter as EventFilter;\n if (!handler.prevented && (!handler.query || this._filter(filter, type, params))) {\n const callback = handler.wrappedCallback || handler.callback;\n const stopBubble = callback.call(null, this._prepareParams(filter, params));\n const doStopBubble = stopBubble ?? handler.query?.consume;\n if (doStopBubble) {\n (params as BaseEventParams).event?.stopPropagation();\n (params as BaseEventParams).event?.preventDefault();\n }\n return !!doStopBubble;\n }\n return undefined;\n });\n // 如果某个事件回调阻止了冒泡,则阻止更高级别事件的调用过程\n return result.some(r => r === true);\n }\n\n /**\n * 依据事件 query 得到事件冒泡层级\n */\n private _getQueryLevel(query: EventQuery | null): EventBubbleLevel {\n // 事件默认监听在 vchart 层\n if (!query) {\n return Event_Bubble_Level.vchart;\n }\n if (query.level) {\n return query.level;\n }\n if (isValid(query.id)) {\n return Event_Bubble_Level.model;\n }\n\n return Event_Bubble_Level.vchart;\n }\n\n /**\n * 将用户 query 配置转换为最终事件筛选参数\n */\n private _parseQuery(handler: EventHandler<EventParams>): EventHandler<EventParams> {\n const query = handler.query;\n // 处理 query 带来的函数封装\n if (query?.throttle) {\n handler.wrappedCallback = throttle(handler.callback, query.throttle);\n } else if (query?.debounce) {\n handler.wrappedCallback = debounce(handler.callback, query.debounce);\n }\n let level = this._getQueryLevel(query);\n let type: string | null = null;\n let source: EventSourceType = Event_Source_Type.chart;\n let nodeName: string | null = null;\n let markName: string | null = null;\n let userId: StringOrNumber | null = null;\n\n if (query?.nodeName) {\n nodeName = query.nodeName;\n }\n\n if (query?.markName) {\n markName = query.markName;\n }\n\n if (query?.type && (level === Event_Bubble_Level.model || level === Event_Bubble_Level.mark)) {\n type = query.type;\n }\n if (query?.source) {\n source = query.source;\n }\n\n if (isValid(query?.id)) {\n userId = query?.id;\n level = Event_Bubble_Level.model; // 如果用户配置了 id,那么默认 level 为 model\n }\n handler.filter = {\n level,\n markName,\n type,\n source,\n nodeName,\n userId,\n filter: query?.filter ?? null\n };\n return handler;\n }\n\n private getEventBubble(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewBubbles;\n case Event_Source_Type.window:\n return this._windowBubbles;\n case Event_Source_Type.canvas:\n return this._canvasBubbles;\n default:\n return this._viewBubbles;\n }\n }\n\n private getEventListeners(source: EventSourceType) {\n switch (source) {\n case Event_Source_Type.chart:\n return this._viewListeners;\n case Event_Source_Type.window:\n return this._windowListeners;\n case Event_Source_Type.canvas:\n return this._canvasListeners;\n default:\n return this._viewListeners;\n }\n }\n\n private _isValidEvent(eType: string) {\n return BASE_EVENTS.includes(eType) || (Object.values(VGRAMMAR_HOOK_EVENT) as string[]).includes(eType);\n }\n\n private _isInteractionEvent(eType: string) {\n let interactionType: string;\n\n return (\n eType &&\n ((interactionType = eType.split(':')[0]), interactionType) &&\n VGrammarFactory.hasInteraction(interactionType)\n );\n }\n}\n"]}
@@ -14,5 +14,7 @@ export declare class Event implements IEvent {
14
14
  off<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>): this;
15
15
  off<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;
16
16
  emit<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this;
17
+ prevent<Evt extends EventType>(eType: Evt, except?: EventCallback<EventParamsDefinition[Evt]>): this;
18
+ allow<Evt extends EventType>(eType: Evt): this;
17
19
  release(): void;
18
20
  }
@@ -50,6 +50,12 @@ export class Event {
50
50
  emit(eType, params, level) {
51
51
  return this._eventDispatcher.dispatch(eType, params, level), this;
52
52
  }
53
+ prevent(eType, except) {
54
+ return this._eventDispatcher.prevent(eType, except), this;
55
+ }
56
+ allow(eType) {
57
+ return this._eventDispatcher.allow(eType), this;
58
+ }
53
59
  release() {
54
60
  this._eventDispatcher.clear(), this._composedEventMap.clear();
55
61
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["/*eslint no-dupe-class-members: \"off\"*/\n\nimport type { RenderMode } from '../typings/spec/common';\nimport { ComposedEventMapper } from './events';\nimport type {\n EventType,\n EventQuery,\n EventCallback,\n EventParamsDefinition,\n IEvent,\n IEventDispatcher,\n IComposedEvent,\n EventParams,\n EventHandler,\n EventBubbleLevel\n} from './interface';\n\nexport class Event implements IEvent {\n private _eventDispatcher: IEventDispatcher;\n private _mode: RenderMode;\n\n private _composedEventMap: Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }> =\n new Map();\n getComposedEventMap() {\n return this._composedEventMap;\n }\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n }\n\n on<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n on<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n on<Evt extends EventType>(\n eType: Evt,\n query: EventQuery | EventCallback<EventParamsDefinition[Evt]>,\n callback?: EventCallback<EventParamsDefinition[Evt]>\n ): this {\n const handler =\n typeof query === 'function'\n ? { query: null, callback: query }\n : {\n query,\n callback: callback as EventCallback<EventParamsDefinition[Evt]>\n };\n\n if (ComposedEventMapper[eType as string]) {\n const composedEvent = new ComposedEventMapper[eType as string](\n this._eventDispatcher,\n this._mode\n ) as IComposedEvent;\n composedEvent.register(eType, handler);\n this._composedEventMap.set(callback as EventCallback<EventParamsDefinition[Evt]>, {\n eventType: eType,\n event: composedEvent\n });\n } else {\n this._eventDispatcher.register(eType, handler);\n }\n\n return this;\n }\n\n off<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>): this;\n off<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n off<Evt extends EventType>(\n eType: Evt,\n query?: EventQuery | EventCallback<EventParamsDefinition[Evt]>,\n cb?: EventCallback<EventParamsDefinition[Evt]>\n ): this {\n const callback = (cb ?? query) as EventCallback<EventParamsDefinition[Evt]>;\n if (ComposedEventMapper[eType as string]) {\n if (callback) {\n this._composedEventMap.get(callback)?.event.unregister();\n this._composedEventMap.delete(callback);\n } else {\n for (const entry of this._composedEventMap.entries()) {\n if (entry[1].eventType === eType) {\n this._composedEventMap.get(entry[0])?.event.unregister();\n this._composedEventMap.delete(entry[0]);\n }\n }\n }\n } else {\n if (callback) {\n const handler: EventHandler<EventParamsDefinition[Evt]> = {\n callback,\n query: null,\n // 卸载事件时无需处理 source 以外的参数\n filter: {\n nodeName: null,\n type: eType,\n level: null,\n source: (query as EventQuery).source,\n markName: null,\n filter: null,\n userId: null\n }\n };\n this._eventDispatcher.unregister(eType, handler);\n } else {\n this._eventDispatcher.unregister(eType);\n }\n }\n return this;\n }\n\n emit<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n this._eventDispatcher.dispatch(eType, params, level);\n return this;\n }\n\n release(): void {\n this._eventDispatcher.clear();\n this._composedEventMap.clear();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["/*eslint no-dupe-class-members: \"off\"*/\n\nimport type { RenderMode } from '../typings/spec/common';\nimport { ComposedEventMapper } from './events';\nimport type {\n EventType,\n EventQuery,\n EventCallback,\n EventParamsDefinition,\n IEvent,\n IEventDispatcher,\n IComposedEvent,\n EventParams,\n EventHandler,\n EventBubbleLevel\n} from './interface';\n\nexport class Event implements IEvent {\n private _eventDispatcher: IEventDispatcher;\n private _mode: RenderMode;\n\n private _composedEventMap: Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }> =\n new Map();\n getComposedEventMap() {\n return this._composedEventMap;\n }\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n }\n\n on<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n on<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n on<Evt extends EventType>(\n eType: Evt,\n query: EventQuery | EventCallback<EventParamsDefinition[Evt]>,\n callback?: EventCallback<EventParamsDefinition[Evt]>\n ): this {\n const handler =\n typeof query === 'function'\n ? { query: null, callback: query }\n : {\n query,\n callback: callback as EventCallback<EventParamsDefinition[Evt]>\n };\n\n if (ComposedEventMapper[eType as string]) {\n const composedEvent = new ComposedEventMapper[eType as string](\n this._eventDispatcher,\n this._mode\n ) as IComposedEvent;\n composedEvent.register(eType, handler);\n this._composedEventMap.set(callback as EventCallback<EventParamsDefinition[Evt]>, {\n eventType: eType,\n event: composedEvent\n });\n } else {\n this._eventDispatcher.register(eType, handler);\n }\n\n return this;\n }\n\n off<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>): this;\n off<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>): this;\n off<Evt extends EventType>(\n eType: Evt,\n query?: EventQuery | EventCallback<EventParamsDefinition[Evt]>,\n cb?: EventCallback<EventParamsDefinition[Evt]>\n ): this {\n const callback = (cb ?? query) as EventCallback<EventParamsDefinition[Evt]>;\n if (ComposedEventMapper[eType as string]) {\n if (callback) {\n this._composedEventMap.get(callback)?.event.unregister();\n this._composedEventMap.delete(callback);\n } else {\n for (const entry of this._composedEventMap.entries()) {\n if (entry[1].eventType === eType) {\n this._composedEventMap.get(entry[0])?.event.unregister();\n this._composedEventMap.delete(entry[0]);\n }\n }\n }\n } else {\n if (callback) {\n const handler: EventHandler<EventParamsDefinition[Evt]> = {\n callback,\n query: null,\n // 卸载事件时无需处理 source 以外的参数\n filter: {\n nodeName: null,\n type: eType,\n level: null,\n source: (query as EventQuery).source,\n markName: null,\n filter: null,\n userId: null\n }\n };\n this._eventDispatcher.unregister(eType, handler);\n } else {\n this._eventDispatcher.unregister(eType);\n }\n }\n return this;\n }\n\n emit<Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel): this {\n this._eventDispatcher.dispatch(eType, params, level);\n return this;\n }\n\n prevent<Evt extends EventType>(eType: Evt, except?: EventCallback<EventParamsDefinition[Evt]>) {\n this._eventDispatcher.prevent(eType, except);\n return this;\n }\n\n allow<Evt extends EventType>(eType: Evt) {\n this._eventDispatcher.allow(eType);\n return this;\n }\n\n release(): void {\n this._eventDispatcher.clear();\n this._composedEventMap.clear();\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Event_Source_Type } from "../../../constant";
1
+ import { Event_Source_Type } from "../../../constant/event";
2
2
 
3
3
  import { DimensionEvent } from "./base";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/events/dimension/dimension-click.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAAvD;;QAiBU,YAAO,GAAG,CAAC,MAAuB,EAAE,EAAE;YAC5C,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO;aACR;YACD,MAAM,CAAC,GAAI,MAAM,CAAC,KAAa,CAAC,KAAK,CAAC;YACtC,MAAM,CAAC,GAAI,MAAM,CAAC,KAAa,CAAC,KAAK,CAAC;YACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,mBAAmB,EAAE;gBACxB,OAAO;aACR;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,kCACnB,MAAM,KACT,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAC1C,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAhCC,QAAQ,CAAwB,KAAU,EAAE,OAAiD;QAC3F,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAe,YAAY,EAAE;YACzD,KAAK,kCAAO,OAAO,CAAC,KAAK,KAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,GAAE;YAC5D,QAAQ,EAAE,IAAI,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,YAAY,EAAE;YAC7C,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;CAkBF","file":"dimension-click.js","sourcesContent":["import { Event_Source_Type } from '../../../constant';\nimport type { BaseEventParams, EventHandler, EventParamsDefinition, EventType } from '../../interface';\nimport { DimensionEvent } from './base';\n\nexport class DimensionClickEvent extends DimensionEvent {\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) {\n this._callback = handler.callback;\n\n this._eventDispatcher.register<'pointertap'>('pointertap', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onClick\n });\n }\n\n unregister() {\n this._eventDispatcher.unregister('pointertap', {\n query: null,\n callback: this.onClick\n });\n }\n\n private onClick = (params: BaseEventParams) => {\n if (!params) {\n return;\n }\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const targetDimensionInfo = this.getTargetDimensionInfo(x, y);\n if (!targetDimensionInfo) {\n return;\n }\n this._callback.call(null, {\n ...params,\n action: 'click',\n dimensionInfo: targetDimensionInfo.slice()\n });\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/event/events/dimension/dimension-click.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAAvD;;QAiBU,YAAO,GAAG,CAAC,MAAuB,EAAE,EAAE;YAC5C,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO;aACR;YACD,MAAM,CAAC,GAAI,MAAM,CAAC,KAAa,CAAC,KAAK,CAAC;YACtC,MAAM,CAAC,GAAI,MAAM,CAAC,KAAa,CAAC,KAAK,CAAC;YACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,mBAAmB,EAAE;gBACxB,OAAO;aACR;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,kCACnB,MAAM,KACT,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAC1C,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAhCC,QAAQ,CAAwB,KAAU,EAAE,OAAiD;QAC3F,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAe,YAAY,EAAE;YACzD,KAAK,kCAAO,OAAO,CAAC,KAAK,KAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,GAAE;YAC5D,QAAQ,EAAE,IAAI,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,YAAY,EAAE;YAC7C,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;CAkBF","file":"dimension-click.js","sourcesContent":["import { Event_Source_Type } from '../../../constant/event';\nimport type { BaseEventParams, EventHandler, EventParamsDefinition, EventType } from '../../interface';\nimport { DimensionEvent } from './base';\n\nexport class DimensionClickEvent extends DimensionEvent {\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) {\n this._callback = handler.callback;\n\n this._eventDispatcher.register<'pointertap'>('pointertap', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onClick\n });\n }\n\n unregister() {\n this._eventDispatcher.unregister('pointertap', {\n query: null,\n callback: this.onClick\n });\n }\n\n private onClick = (params: BaseEventParams) => {\n if (!params) {\n return;\n }\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const targetDimensionInfo = this.getTargetDimensionInfo(x, y);\n if (!targetDimensionInfo) {\n return;\n }\n this._callback.call(null, {\n ...params,\n action: 'click',\n dimensionInfo: targetDimensionInfo.slice()\n });\n };\n}\n"]}
@@ -4,7 +4,7 @@ import { DimensionEvent } from "./base";
4
4
 
5
5
  import { isSameDimensionInfo } from "./util/common";
6
6
 
7
- import { Event_Source_Type } from "../../../constant";
7
+ import { Event_Source_Type } from "../../../constant/event";
8
8
 
9
9
  export class DimensionHoverEvent extends DimensionEvent {
10
10
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/events/dimension/dimension-hover.ts"],"names":[],"mappings":"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","file":"dimension-hover.js","sourcesContent":["import { isMobileLikeMode } from '../../../util/env';\nimport type { BaseEventParams, EventHandler, EventParamsDefinition, EventType } from '../../interface';\nimport { DimensionEvent } from './base';\nimport { isSameDimensionInfo } from './util/common';\nimport { Event_Source_Type } from '../../../constant';\nimport type { IDimensionInfo } from './interface';\n\nexport class DimensionHoverEvent extends DimensionEvent {\n private _cacheDimensionInfo: IDimensionInfo[] | null = null;\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) {\n this._callback = handler.callback;\n\n this._eventDispatcher.register<'pointermove'>('pointermove', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onMouseMove\n });\n\n this._eventDispatcher.register<'pointerout'>('pointerout', {\n query: { ...handler.query, source: Event_Source_Type.canvas },\n callback: this.onMouseOut\n });\n\n if (isMobileLikeMode(this._mode)) {\n // 移动端点按也触发 hover\n this._eventDispatcher.register<'pointerdown'>('pointerdown', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onMouseMove\n });\n }\n }\n\n unregister() {\n this._eventDispatcher.unregister('pointermove', {\n query: null,\n callback: this.onMouseMove\n });\n\n if (isMobileLikeMode(this._mode)) {\n // 移动端点按也出发 hover\n this._eventDispatcher.unregister('pointerdown', {\n query: null,\n callback: this.onMouseMove\n });\n }\n }\n\n private onMouseMove = (params: BaseEventParams) => {\n if (!params) {\n return;\n }\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const targetDimensionInfo = this.getTargetDimensionInfo(x, y);\n if (targetDimensionInfo === null && this._cacheDimensionInfo !== null) {\n // 鼠标移出某维度\n this._callback.call(null, {\n ...params,\n action: 'leave',\n dimensionInfo: this._cacheDimensionInfo.slice()\n });\n this._cacheDimensionInfo = targetDimensionInfo;\n } else if (\n targetDimensionInfo !== null &&\n (this._cacheDimensionInfo === null ||\n targetDimensionInfo.length !== this._cacheDimensionInfo.length ||\n targetDimensionInfo.some((info, i) => !isSameDimensionInfo(info, this._cacheDimensionInfo![i])))\n ) {\n // 鼠标移入某维度\n this._callback.call(null, {\n ...params,\n action: 'enter',\n dimensionInfo: targetDimensionInfo.slice()\n });\n this._cacheDimensionInfo = targetDimensionInfo;\n } else if (targetDimensionInfo !== null) {\n // 鼠标在某维度上滑动\n this._callback.call(null, {\n ...params,\n action: 'move',\n dimensionInfo: targetDimensionInfo.slice()\n });\n }\n };\n\n private onMouseOut = (params: BaseEventParams) => {\n if (!params) {\n return;\n }\n // 鼠标移出某维度\n this._callback.call(null, {\n ...params,\n action: 'leave',\n dimensionInfo: this._cacheDimensionInfo ? this._cacheDimensionInfo.slice() : []\n });\n this._cacheDimensionInfo = null;\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/event/events/dimension/dimension-hover.ts"],"names":[],"mappings":"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","file":"dimension-hover.js","sourcesContent":["import { isMobileLikeMode } from '../../../util/env';\nimport type { BaseEventParams, EventHandler, EventParamsDefinition, EventType } from '../../interface';\nimport { DimensionEvent } from './base';\nimport { isSameDimensionInfo } from './util/common';\nimport { Event_Source_Type } from '../../../constant/event';\nimport type { IDimensionInfo } from './interface';\n\nexport class DimensionHoverEvent extends DimensionEvent {\n private _cacheDimensionInfo: IDimensionInfo[] | null = null;\n\n register<Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) {\n this._callback = handler.callback;\n\n this._eventDispatcher.register<'pointermove'>('pointermove', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onMouseMove\n });\n\n this._eventDispatcher.register<'pointerout'>('pointerout', {\n query: { ...handler.query, source: Event_Source_Type.canvas },\n callback: this.onMouseOut\n });\n\n if (isMobileLikeMode(this._mode)) {\n // 移动端点按也触发 hover\n this._eventDispatcher.register<'pointerdown'>('pointerdown', {\n query: { ...handler.query, source: Event_Source_Type.chart },\n callback: this.onMouseMove\n });\n }\n }\n\n unregister() {\n this._eventDispatcher.unregister('pointermove', {\n query: null,\n callback: this.onMouseMove\n });\n\n if (isMobileLikeMode(this._mode)) {\n // 移动端点按也出发 hover\n this._eventDispatcher.unregister('pointerdown', {\n query: null,\n callback: this.onMouseMove\n });\n }\n }\n\n private onMouseMove = (params: BaseEventParams) => {\n if (!params) {\n return;\n }\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const targetDimensionInfo = this.getTargetDimensionInfo(x, y);\n if (targetDimensionInfo === null && this._cacheDimensionInfo !== null) {\n // 鼠标移出某维度\n this._callback.call(null, {\n ...params,\n action: 'leave',\n dimensionInfo: this._cacheDimensionInfo.slice()\n });\n this._cacheDimensionInfo = targetDimensionInfo;\n } else if (\n targetDimensionInfo !== null &&\n (this._cacheDimensionInfo === null ||\n targetDimensionInfo.length !== this._cacheDimensionInfo.length ||\n targetDimensionInfo.some((info, i) => !isSameDimensionInfo(info, this._cacheDimensionInfo![i])))\n ) {\n // 鼠标移入某维度\n this._callback.call(null, {\n ...params,\n action: 'enter',\n dimensionInfo: targetDimensionInfo.slice()\n });\n this._cacheDimensionInfo = targetDimensionInfo;\n } else if (targetDimensionInfo !== null) {\n // 鼠标在某维度上滑动\n this._callback.call(null, {\n ...params,\n action: 'move',\n dimensionInfo: targetDimensionInfo.slice()\n });\n }\n };\n\n private onMouseOut = (params: BaseEventParams) => {\n if (!params) {\n return;\n }\n // 鼠标移出某维度\n this._callback.call(null, {\n ...params,\n action: 'leave',\n dimensionInfo: this._cacheDimensionInfo ? this._cacheDimensionInfo.slice() : []\n });\n this._cacheDimensionInfo = null;\n };\n}\n"]}
@@ -6,8 +6,6 @@ import { isNil } from "@visactor/vutils";
6
6
 
7
7
  import { isXAxis, isYAxis } from "../../../../component/axis/cartesian/util/common";
8
8
 
9
- import { getFirstSeries } from "../../../../util/model";
10
-
11
9
  const discreteXAxisGetDimensionField = series => series.fieldX[0], discreteYAxisGetDimensionField = series => series.fieldY[0], continuousXAxisGetDimensionField = series => {
12
10
  var _a;
13
11
  return [ series.fieldX[0], null !== (_a = series.fieldX2) && void 0 !== _a ? _a : series.fieldX[1] ];
@@ -19,7 +17,6 @@ const discreteXAxisGetDimensionField = series => series.fieldX[0], discreteYAxis
19
17
  export const getCartesianDimensionInfo = (chart, pos, isTooltip) => {
20
18
  var _a, _b;
21
19
  if (!chart) return null;
22
- if (!getFirstSeries(chart.getRegionsInIndex(), "cartesian")) return null;
23
20
  const {x: x, y: y} = pos, xAxisList = null !== (_a = getAxis(chart, (cmp => isXAxis(cmp.getOrient())), pos)) && void 0 !== _a ? _a : [], yAxisList = null !== (_b = getAxis(chart, (cmp => isYAxis(cmp.getOrient())), pos)) && void 0 !== _b ? _b : [], bandAxisSet = new Set, linearAxisSet = new Set, forceAxisSet = new Set;
24
21
  [ xAxisList, yAxisList ].forEach((axisList => axisList.forEach((axis => {
25
22
  isDiscrete(axis.getScale().type) ? bandAxisSet.add(axis) : linearAxisSet.add(axis),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/events/dimension/util/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { IChart } from '../../../../chart/interface';\nimport type { IDimensionInfo } from '../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport { getDimensionData, getAxis } from './common';\nimport type { CartesianAxis } from '../../../../component/axis/cartesian';\nimport type { ICartesianSeries } from '../../../../series/interface';\nimport { isNil } from '@visactor/vutils';\nimport { isXAxis, isYAxis } from '../../../../component/axis/cartesian/util/common';\nimport { Direction } from '../../../../typings/space';\nimport type { ILayoutPoint } from '../../../../typings/layout';\nimport { getFirstSeries } from '../../../../util/model';\n\nconst discreteXAxisGetDimensionField = (series: ICartesianSeries) => series.fieldX[0];\nconst discreteYAxisGetDimensionField = (series: ICartesianSeries) => series.fieldY[0];\nconst continuousXAxisGetDimensionField = (series: ICartesianSeries) => [\n series.fieldX[0],\n series.fieldX2 ?? series.fieldX[1]\n];\nconst continuousYAxisGetDimensionField = (series: ICartesianSeries) => [\n series.fieldY[0],\n series.fieldY2 ?? series.fieldY[1]\n];\n\nconst getDimensionFieldFunc = (isXAxis: boolean, isDiscreteAxis: boolean) =>\n isXAxis\n ? isDiscreteAxis\n ? discreteXAxisGetDimensionField\n : continuousXAxisGetDimensionField\n : isDiscreteAxis\n ? discreteYAxisGetDimensionField\n : continuousYAxisGetDimensionField;\n\nexport const getCartesianDimensionInfo = (\n chart: IChart | undefined,\n pos: ILayoutPoint,\n isTooltip?: boolean\n): IDimensionInfo[] | null => {\n if (!chart) {\n return null;\n }\n const series = getFirstSeries(chart.getRegionsInIndex(), 'cartesian');\n if (!series) {\n return null;\n }\n\n const { x, y } = pos;\n const xAxisList = getAxis(chart, (cmp: CartesianAxis) => isXAxis(cmp.getOrient()), pos) ?? [];\n const yAxisList = getAxis(chart, (cmp: CartesianAxis) => isYAxis(cmp.getOrient()), pos) ?? [];\n\n /** 离散轴集合 */\n const bandAxisSet: Set<CartesianAxis> = new Set();\n /** 连续轴集合 */\n const linearAxisSet: Set<CartesianAxis> = new Set();\n /** 必须包含的轴的集合 */\n const forceAxisSet: Set<CartesianAxis> = new Set();\n\n [xAxisList, yAxisList].forEach(axisList =>\n axisList.forEach(axis => {\n const isDiscreteAxis = isDiscrete(axis.getScale().type);\n if (isDiscreteAxis) {\n bandAxisSet.add(axis);\n } else {\n linearAxisSet.add(axis);\n }\n if (isTooltip && axis.getSpec().hasDimensionTooltip) {\n forceAxisSet.add(axis);\n }\n })\n );\n\n const targetAxisInfo: IDimensionInfo[] = [];\n\n const addAxisDimensionInfo = (orient: 'x' | 'y') => {\n const isXAxis = orient === 'x';\n const posValue = isXAxis ? x : y;\n const axisList = isXAxis ? xAxisList : yAxisList;\n axisList.forEach(axis => {\n if (forceAxisSet.size > 0) {\n if (forceAxisSet.has(axis)) {\n const info = getDimensionInfoByPosition(\n axis,\n posValue,\n orient,\n getDimensionFieldFunc(isXAxis, isDiscrete(axis.getScale().type))\n );\n info && targetAxisInfo.push(info);\n }\n } else {\n const hasDiscreteAxis = bandAxisSet.size > 0;\n if ((hasDiscreteAxis ? bandAxisSet : linearAxisSet).has(axis)) {\n const info = getDimensionInfoByPosition(\n axis,\n posValue,\n orient,\n getDimensionFieldFunc(isXAxis, hasDiscreteAxis)\n );\n info && targetAxisInfo.push(info);\n }\n }\n });\n };\n\n // 优先筛选 band 轴,其次按照 direction 判断\n if (chart.getSpec().direction === Direction.horizontal) {\n addAxisDimensionInfo('y');\n if (targetAxisInfo.length === 0) {\n addAxisDimensionInfo('x');\n }\n } else {\n addAxisDimensionInfo('x');\n if (targetAxisInfo.length === 0) {\n addAxisDimensionInfo('y');\n }\n }\n\n if (!targetAxisInfo.length) {\n return null;\n }\n return targetAxisInfo;\n};\n\nexport const getDimensionInfoByPosition = (\n axis: CartesianAxis,\n posValue: number,\n posKey: 'x' | 'y',\n getDimensionField: (series: ICartesianSeries) => string | string[]\n): IDimensionInfo | null => {\n const scale = axis.getScale();\n const scalePos = posValue - axis.getLayoutStartPoint()[posKey];\n // 判断是否在 range 范围内\n if ((scalePos - scale.range()[0]) * (scalePos - scale.range()[1]) > 0) {\n return null;\n }\n\n const value = scale.invert(scalePos);\n return getDimensionInfoByValue(axis, value, getDimensionField);\n};\n\nexport const getDimensionInfoByValue = (\n axis: CartesianAxis,\n value: any,\n getDimensionField?: (series: ICartesianSeries) => string | string[]\n): IDimensionInfo | null => {\n const scale = axis.getScale();\n\n if (isNil(value)) {\n return null;\n }\n const domain = scale.domain();\n let index: number | undefined = domain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(\n value,\n axis,\n 'cartesian',\n getDimensionField ?? (isXAxis(axis.getOrient()) ? discreteXAxisGetDimensionField : discreteYAxisGetDimensionField)\n );\n return { index, value, position: scale.scale(value), axis, data };\n};\n"]}
1
+ {"version":3,"sources":["../src/event/events/dimension/util/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { IChart } from '../../../../chart/interface';\nimport type { IDimensionInfo } from '../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport { getDimensionData, getAxis } from './common';\nimport type { CartesianAxis } from '../../../../component/axis/cartesian';\nimport type { ICartesianSeries } from '../../../../series/interface';\nimport { isNil } from '@visactor/vutils';\nimport { isXAxis, isYAxis } from '../../../../component/axis/cartesian/util/common';\nimport { Direction } from '../../../../typings/space';\nimport type { ILayoutPoint } from '../../../../typings/layout';\n\nconst discreteXAxisGetDimensionField = (series: ICartesianSeries) => series.fieldX[0];\nconst discreteYAxisGetDimensionField = (series: ICartesianSeries) => series.fieldY[0];\nconst continuousXAxisGetDimensionField = (series: ICartesianSeries) => [\n series.fieldX[0],\n series.fieldX2 ?? series.fieldX[1]\n];\nconst continuousYAxisGetDimensionField = (series: ICartesianSeries) => [\n series.fieldY[0],\n series.fieldY2 ?? series.fieldY[1]\n];\n\nconst getDimensionFieldFunc = (isXAxis: boolean, isDiscreteAxis: boolean) =>\n isXAxis\n ? isDiscreteAxis\n ? discreteXAxisGetDimensionField\n : continuousXAxisGetDimensionField\n : isDiscreteAxis\n ? discreteYAxisGetDimensionField\n : continuousYAxisGetDimensionField;\n\nexport const getCartesianDimensionInfo = (\n chart: IChart | undefined,\n pos: ILayoutPoint,\n isTooltip?: boolean\n): IDimensionInfo[] | null => {\n if (!chart) {\n return null;\n }\n\n const { x, y } = pos;\n const xAxisList = getAxis(chart, (cmp: CartesianAxis) => isXAxis(cmp.getOrient()), pos) ?? [];\n const yAxisList = getAxis(chart, (cmp: CartesianAxis) => isYAxis(cmp.getOrient()), pos) ?? [];\n\n /** 离散轴集合 */\n const bandAxisSet: Set<CartesianAxis> = new Set();\n /** 连续轴集合 */\n const linearAxisSet: Set<CartesianAxis> = new Set();\n /** 必须包含的轴的集合 */\n const forceAxisSet: Set<CartesianAxis> = new Set();\n\n [xAxisList, yAxisList].forEach(axisList =>\n axisList.forEach(axis => {\n const isDiscreteAxis = isDiscrete(axis.getScale().type);\n if (isDiscreteAxis) {\n bandAxisSet.add(axis);\n } else {\n linearAxisSet.add(axis);\n }\n if (isTooltip && axis.getSpec().hasDimensionTooltip) {\n forceAxisSet.add(axis);\n }\n })\n );\n\n const targetAxisInfo: IDimensionInfo[] = [];\n\n const addAxisDimensionInfo = (orient: 'x' | 'y') => {\n const isXAxis = orient === 'x';\n const posValue = isXAxis ? x : y;\n const axisList = isXAxis ? xAxisList : yAxisList;\n axisList.forEach(axis => {\n if (forceAxisSet.size > 0) {\n if (forceAxisSet.has(axis)) {\n const info = getDimensionInfoByPosition(\n axis,\n posValue,\n orient,\n getDimensionFieldFunc(isXAxis, isDiscrete(axis.getScale().type))\n );\n info && targetAxisInfo.push(info);\n }\n } else {\n const hasDiscreteAxis = bandAxisSet.size > 0;\n if ((hasDiscreteAxis ? bandAxisSet : linearAxisSet).has(axis)) {\n const info = getDimensionInfoByPosition(\n axis,\n posValue,\n orient,\n getDimensionFieldFunc(isXAxis, hasDiscreteAxis)\n );\n info && targetAxisInfo.push(info);\n }\n }\n });\n };\n\n // 优先筛选 band 轴,其次按照 direction 判断\n if (chart.getSpec().direction === Direction.horizontal) {\n addAxisDimensionInfo('y');\n if (targetAxisInfo.length === 0) {\n addAxisDimensionInfo('x');\n }\n } else {\n addAxisDimensionInfo('x');\n if (targetAxisInfo.length === 0) {\n addAxisDimensionInfo('y');\n }\n }\n\n if (!targetAxisInfo.length) {\n return null;\n }\n return targetAxisInfo;\n};\n\nexport const getDimensionInfoByPosition = (\n axis: CartesianAxis,\n posValue: number,\n posKey: 'x' | 'y',\n getDimensionField: (series: ICartesianSeries) => string | string[]\n): IDimensionInfo | null => {\n const scale = axis.getScale();\n const scalePos = posValue - axis.getLayoutStartPoint()[posKey];\n // 判断是否在 range 范围内\n if ((scalePos - scale.range()[0]) * (scalePos - scale.range()[1]) > 0) {\n return null;\n }\n\n const value = scale.invert(scalePos);\n return getDimensionInfoByValue(axis, value, getDimensionField);\n};\n\nexport const getDimensionInfoByValue = (\n axis: CartesianAxis,\n value: any,\n getDimensionField?: (series: ICartesianSeries) => string | string[]\n): IDimensionInfo | null => {\n const scale = axis.getScale();\n\n if (isNil(value)) {\n return null;\n }\n const domain = scale.domain();\n let index: number | undefined = domain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(\n value,\n axis,\n 'cartesian',\n getDimensionField ?? (isXAxis(axis.getOrient()) ? discreteXAxisGetDimensionField : discreteYAxisGetDimensionField)\n );\n return { index, value, position: scale.scale(value), axis, data };\n};\n"]}
@@ -6,8 +6,6 @@ import { isNil, maxInArray, minInArray } from "@visactor/vutils";
6
6
 
7
7
  import { distance, vectorAngle } from "../../../../util/math";
8
8
 
9
- import { getFirstSeries } from "../../../../util/model";
10
-
11
9
  const angleStandardize = (angle, range) => {
12
10
  const unit = 2 * Math.PI, min = minInArray(range), max = maxInArray(range);
13
11
  return angle < min ? angle += Math.ceil((min - angle) / unit) * unit : angle > max && (angle -= Math.ceil((angle - max) / unit) * unit),
@@ -16,7 +14,6 @@ const angleStandardize = (angle, range) => {
16
14
 
17
15
  export const getPolarDimensionInfo = (chart, pos) => {
18
16
  if (!chart) return null;
19
- if (!getFirstSeries(chart.getRegionsInIndex(), "polar")) return null;
20
17
  const {x: x, y: y} = pos, angleAxisList = getAxis(chart, (cmp => "angle" === cmp.getOrient()), pos), radiusAxisList = getAxis(chart, (cmp => "radius" === cmp.getOrient()), pos), targetAxisInfo = [], getDimensionField = series => series.getDimensionField()[0];
21
18
  return angleAxisList && angleAxisList.forEach((axis => {
22
19
  var _a;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/events/dimension/util/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IChart } from '../../../../chart/interface';\nimport type { IDimensionInfo } from '../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport { getAxis, getDimensionData } from './common';\nimport type { IPolarSeries } from '../../../../series/interface';\nimport { isNil, maxInArray, minInArray } from '@visactor/vutils';\nimport { distance, vectorAngle } from '../../../../util/math';\nimport type { ILayoutPoint } from '../../../../typings/layout';\nimport type { PolarAxis } from '../../../../component';\nimport { getFirstSeries } from '../../../../util/model';\n\n/** 将角度标准化为 range 范围内的角度 */\nconst angleStandardize = (angle: number, range: [number, number]) => {\n const unit = Math.PI * 2;\n const min = minInArray(range);\n const max = maxInArray(range);\n if (angle < min) {\n angle += Math.ceil((min - angle) / unit) * unit;\n } else if (angle > max) {\n angle -= Math.ceil((angle - max) / unit) * unit;\n }\n return angle;\n};\n\nexport const getPolarDimensionInfo = (chart: IChart | undefined, pos: ILayoutPoint): IDimensionInfo[] | null => {\n if (!chart) {\n return null;\n }\n const series = getFirstSeries(chart.getRegionsInIndex(), 'polar');\n if (!series) {\n return null;\n }\n\n const { x, y } = pos;\n const angleAxisList = getAxis(chart, (cmp: PolarAxis) => cmp.getOrient() === 'angle', pos);\n const radiusAxisList = getAxis(chart, (cmp: PolarAxis) => cmp.getOrient() === 'radius', pos);\n const targetAxisInfo: IDimensionInfo[] = [];\n\n const getDimensionField = (series: IPolarSeries) => series.getDimensionField()[0];\n\n if (angleAxisList) {\n angleAxisList.forEach(axis => {\n const angleScale = axis.getScale();\n // 限定为离散轴\n if (angleScale && isDiscrete(angleScale.type)) {\n const angleDomain = angleScale.domain();\n const angleRange = angleScale.range();\n const center = axis.getCenter();\n const vector = {\n x: x - axis.getLayoutStartPoint().x - center.x,\n y: y - axis.getLayoutStartPoint().y - center.y\n };\n\n // 计算顺时针角度\n let angle = vectorAngle({ x: 1, y: 0 }, vector);\n angle = angleStandardize(angle, angleRange);\n\n // 计算半径\n const radius = distance(vector);\n const radiusScale = radiusAxisList[0]?.getScale(); // FIXME: 想办法获取到和当前角度轴对应的径向轴,而不是取第一个\n const radiusRange = radiusScale?.range();\n\n // 判断是否在 range 范围内\n if (\n (angle - angleRange?.[0]) * (angle - angleRange?.[1]) > 0 ||\n (radius - radiusRange?.[0]) * (radius - radiusRange?.[1]) > 0\n ) {\n return;\n }\n\n const value = axis.invert(angle);\n if (isNil(value)) {\n return;\n }\n let index: number | undefined = angleDomain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(value, axis, 'polar', getDimensionField);\n targetAxisInfo.push({ index, value, position: angleScale.scale(value), axis, data });\n }\n });\n }\n if (radiusAxisList) {\n radiusAxisList.forEach(axis => {\n const radiusScale = axis.getScale();\n const radiusRange = radiusScale?.range();\n\n // 限定为离散轴\n if (radiusScale && isDiscrete(radiusScale.type)) {\n const center = axis.getCenter();\n const vector = {\n x: x - axis.getLayoutStartPoint().x - center.x,\n y: y - axis.getLayoutStartPoint().y - center.y\n };\n\n // 计算顺时针角度\n let angle = vectorAngle({ x: 1, y: 0 }, vector);\n if (angle < -Math.PI / 2) {\n angle = Math.PI * 2 + angle;\n }\n\n // 计算半径\n const radius = distance(vector);\n const angleScale = angleAxisList[0]?.getScale(); // FIXME: 想办法获取到和当前径向轴对应的角度轴,而不是取第一个\n const angleRange = angleScale?.range();\n\n // 判断是否在 range 范围内\n if (\n (angle - angleRange?.[0]) * (angle - angleRange?.[1]) > 0 ||\n (radius - radiusRange?.[0]) * (radius - radiusRange?.[1]) > 0\n ) {\n return;\n }\n\n const value = radiusScale.invert(radius);\n if (isNil(value)) {\n return;\n }\n const domain = radiusScale.domain();\n let index: number | undefined = domain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(value, axis, 'polar', getDimensionField);\n targetAxisInfo.push({ index, value, position: radiusScale.scale(value), axis, data });\n }\n });\n }\n if (!targetAxisInfo.length) {\n return null;\n }\n return targetAxisInfo;\n};\n"]}
1
+ {"version":3,"sources":["../src/event/events/dimension/util/polar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI9D,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,KAAuB,EAAE,EAAE;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,KAAK,GAAG,GAAG,EAAE;QACf,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;KACjD;SAAM,IAAI,KAAK,GAAG,GAAG,EAAE;QACtB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;KACjD;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAyB,EAAE,GAAiB,EAA2B,EAAE;IAC7G,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;IACrB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAc,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3F,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAc,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7F,MAAM,cAAc,GAAqB,EAAE,CAAC;IAE5C,MAAM,iBAAiB,GAAG,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IAElF,IAAI,aAAa,EAAE;QACjB,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEnC,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC7C,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG;oBACb,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;oBAC9C,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;iBAC/C,CAAC;gBAGF,IAAI,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAChD,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBAG5C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,WAAW,GAAG,MAAA,cAAc,CAAC,CAAC,CAAC,0CAAE,QAAQ,EAAE,CAAC;gBAClD,MAAM,WAAW,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,EAAE,CAAC;gBAGzC,IACE,CAAC,KAAK,IAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,CAAA,CAAC,GAAG,CAAC,KAAK,IAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,CAAA,CAAC,GAAG,CAAC;oBACzD,CAAC,MAAM,IAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,CAAC,CAAC,CAAA,CAAC,GAAG,CAAC,MAAM,IAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,CAAC,CAAC,CAAA,CAAC,GAAG,CAAC,EAC7D;oBACA,OAAO;iBACR;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;oBAChB,OAAO;iBACR;gBACD,IAAI,KAAK,GAAuB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,EAAE,MAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACtG,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,KAAK,GAAG,SAAS,CAAC;iBACnB;gBAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;gBACvE,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtF;QACH,CAAC,CAAC,CAAC;KACJ;IACD,IAAI,cAAc,EAAE;QAClB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,EAAE,CAAC;YAGzC,IAAI,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG;oBACb,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;oBAC9C,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;iBAC/C,CAAC;gBAGF,IAAI,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAChD,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE;oBACxB,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC7B;gBAGD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,UAAU,GAAG,MAAA,aAAa,CAAC,CAAC,CAAC,0CAAE,QAAQ,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,CAAC;gBAGvC,IACE,CAAC,KAAK,IAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,CAAA,CAAC,GAAG,CAAC,KAAK,IAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,CAAA,CAAC,GAAG,CAAC;oBACzD,CAAC,MAAM,IAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,CAAC,CAAC,CAAA,CAAC,GAAG,CAAC,MAAM,IAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,CAAC,CAAC,CAAA,CAAC,GAAG,CAAC,EAC7D;oBACA,OAAO;iBACR;gBAED,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;oBAChB,OAAO;iBACR;gBACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;gBACpC,IAAI,KAAK,GAAuB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,EAAE,MAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjG,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,KAAK,GAAG,SAAS,CAAC;iBACnB;gBAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;gBACvE,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACvF;QACH,CAAC,CAAC,CAAC;KACJ;IACD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC","file":"polar.js","sourcesContent":["import type { IChart } from '../../../../chart/interface';\nimport type { IDimensionInfo } from '../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport { getAxis, getDimensionData } from './common';\nimport type { IPolarSeries } from '../../../../series/interface';\nimport { isNil, maxInArray, minInArray } from '@visactor/vutils';\nimport { distance, vectorAngle } from '../../../../util/math';\nimport type { ILayoutPoint } from '../../../../typings/layout';\nimport type { PolarAxis } from '../../../../component';\n/** 将角度标准化为 range 范围内的角度 */\nconst angleStandardize = (angle: number, range: [number, number]) => {\n const unit = Math.PI * 2;\n const min = minInArray(range);\n const max = maxInArray(range);\n if (angle < min) {\n angle += Math.ceil((min - angle) / unit) * unit;\n } else if (angle > max) {\n angle -= Math.ceil((angle - max) / unit) * unit;\n }\n return angle;\n};\n\nexport const getPolarDimensionInfo = (chart: IChart | undefined, pos: ILayoutPoint): IDimensionInfo[] | null => {\n if (!chart) {\n return null;\n }\n\n const { x, y } = pos;\n const angleAxisList = getAxis(chart, (cmp: PolarAxis) => cmp.getOrient() === 'angle', pos);\n const radiusAxisList = getAxis(chart, (cmp: PolarAxis) => cmp.getOrient() === 'radius', pos);\n const targetAxisInfo: IDimensionInfo[] = [];\n\n const getDimensionField = (series: IPolarSeries) => series.getDimensionField()[0];\n\n if (angleAxisList) {\n angleAxisList.forEach(axis => {\n const angleScale = axis.getScale();\n // 限定为离散轴\n if (angleScale && isDiscrete(angleScale.type)) {\n const angleDomain = angleScale.domain();\n const angleRange = angleScale.range();\n const center = axis.getCenter();\n const vector = {\n x: x - axis.getLayoutStartPoint().x - center.x,\n y: y - axis.getLayoutStartPoint().y - center.y\n };\n\n // 计算顺时针角度\n let angle = vectorAngle({ x: 1, y: 0 }, vector);\n angle = angleStandardize(angle, angleRange);\n\n // 计算半径\n const radius = distance(vector);\n const radiusScale = radiusAxisList[0]?.getScale(); // FIXME: 想办法获取到和当前角度轴对应的径向轴,而不是取第一个\n const radiusRange = radiusScale?.range();\n\n // 判断是否在 range 范围内\n if (\n (angle - angleRange?.[0]) * (angle - angleRange?.[1]) > 0 ||\n (radius - radiusRange?.[0]) * (radius - radiusRange?.[1]) > 0\n ) {\n return;\n }\n\n const value = axis.invert(angle);\n if (isNil(value)) {\n return;\n }\n let index: number | undefined = angleDomain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(value, axis, 'polar', getDimensionField);\n targetAxisInfo.push({ index, value, position: angleScale.scale(value), axis, data });\n }\n });\n }\n if (radiusAxisList) {\n radiusAxisList.forEach(axis => {\n const radiusScale = axis.getScale();\n const radiusRange = radiusScale?.range();\n\n // 限定为离散轴\n if (radiusScale && isDiscrete(radiusScale.type)) {\n const center = axis.getCenter();\n const vector = {\n x: x - axis.getLayoutStartPoint().x - center.x,\n y: y - axis.getLayoutStartPoint().y - center.y\n };\n\n // 计算顺时针角度\n let angle = vectorAngle({ x: 1, y: 0 }, vector);\n if (angle < -Math.PI / 2) {\n angle = Math.PI * 2 + angle;\n }\n\n // 计算半径\n const radius = distance(vector);\n const angleScale = angleAxisList[0]?.getScale(); // FIXME: 想办法获取到和当前径向轴对应的角度轴,而不是取第一个\n const angleRange = angleScale?.range();\n\n // 判断是否在 range 范围内\n if (\n (angle - angleRange?.[0]) * (angle - angleRange?.[1]) > 0 ||\n (radius - radiusRange?.[0]) * (radius - radiusRange?.[1]) > 0\n ) {\n return;\n }\n\n const value = radiusScale.invert(radius);\n if (isNil(value)) {\n return;\n }\n const domain = radiusScale.domain();\n let index: number | undefined = domain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(value, axis, 'polar', getDimensionField);\n targetAxisInfo.push({ index, value, position: radiusScale.scale(value), axis, data });\n }\n });\n }\n if (!targetAxisInfo.length) {\n return null;\n }\n return targetAxisInfo;\n};\n"]}
@@ -6,7 +6,7 @@ import type { IMark, MarkType } from '../mark/interface';
6
6
  import type { VChart } from '../core/vchart';
7
7
  import type { DimensionEventParams } from './events/dimension/interface';
8
8
  import type { Datum, IPoint, StringOrNumber } from '../typings';
9
- import type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';
9
+ import type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant/event';
10
10
  import type { SeriesType } from '../series/interface';
11
11
  import type { TooltipEventParams } from '../component/tooltip/interface/event';
12
12
  import type { ILayoutItem } from '../layout/interface';
@@ -63,6 +63,7 @@ export type EventHandler<Params extends EventParams> = {
63
63
  query: EventQuery | null;
64
64
  wrappedCallback?: EventCallback<Params>;
65
65
  filter?: EventFilter;
66
+ prevented?: boolean;
66
67
  };
67
68
  export type ExtendEventParam = EventParams & {
68
69
  event?: Event;
@@ -153,6 +154,8 @@ export interface IEventDispatcher {
153
154
  dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;
154
155
  clear: () => void;
155
156
  release: () => void;
157
+ prevent: <Evt extends EventType>(eType: Evt, except: EventCallback<EventParamsDefinition[Evt]>) => void;
158
+ allow: <Evt extends EventType>(eType: Evt) => void;
156
159
  }
157
160
  export interface IEvent {
158
161
  on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) & (<Evt extends EventType>(eType: Evt, query: EventQuery, callback: EventCallback<EventParamsDefinition[Evt]>) => this);
@@ -163,6 +166,8 @@ export interface IEvent {
163
166
  eventType: EventType;
164
167
  event: IComposedEvent;
165
168
  }>;
169
+ prevent: <Evt extends EventType>(eType: Evt, except: EventCallback<EventParamsDefinition[Evt]>) => void;
170
+ allow: <Evt extends EventType>(eType: Evt) => void;
166
171
  }
167
172
  export interface IComposedEvent {
168
173
  register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { IChart } from '../chart/interface';\nimport type { IModel } from '../model/interface';\nimport type { IMark, MarkType } from '../mark/interface';\nimport type { VChart } from '../core/vchart';\nimport type { DimensionEventParams } from './events/dimension/interface';\nimport type { Datum, IPoint, StringOrNumber } from '../typings';\nimport type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';\nimport type { SeriesType } from '../series/interface';\nimport type { TooltipEventParams } from '../component/tooltip/interface/event';\nimport type { ILayoutItem } from '../layout/interface';\nimport type { IVChart } from '../core/interface';\n\nexport type EventType =\n | 'pointerdown'\n | 'pointerup'\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointermove'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n | 'mouseenter'\n | 'mouseleave'\n | 'wheel'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n | 'tap'\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe'\n | keyof typeof ChartEvent\n | keyof typeof VGRAMMAR_HOOK_EVENT\n | string;\n\nexport type EventBubbleLevel = keyof typeof Event_Bubble_Level;\n\nexport type ComponentType =\n | 'axis'\n | 'dataZoom'\n | 'indicator'\n | 'legend'\n | 'mapLabel'\n | 'markLine'\n | 'markArea'\n | 'markPoint'\n | 'tooltip'\n | 'title'\n | 'label'\n | 'totalLabel'\n | 'customMark';\nexport type EventTargetType = MarkType | ComponentType | SeriesType;\n\nexport type EventSourceType = keyof typeof Event_Source_Type;\n\n/**\n * 事件 API 中的事件筛选配置\n */\nexport type EventQuery = {\n /**\n * 事件的冒泡层级配置,其中 model 指的是图表的内部模型,包括 region、series 以及 component\n */\n level?: EventBubbleLevel;\n /**\n * 事件来源配置。\n * - `window`: window 事件\n * - `chart`: 图表事件\n */\n source?: EventSourceType;\n\n /**\n * vrender 图形节点名称\n */\n nodeName?: string;\n /**\n * mark 图元名称\n */\n markName?: string;\n /**\n * 仅在 level 为 'mark' 或者 'model' 的场景下使用,用于筛选 mark 类型或者图表组成元素模型类型\n */\n type?: EventTargetType;\n /**\n * 用户在 spec 上配置的 id\n */\n id?: StringOrNumber;\n /**\n * 自定义过滤函数\n * @param params\n * @returns\n */\n filter?: (params: Partial<BaseEventParams>) => boolean;\n\n throttle?: number;\n debounce?: number;\n /**\n * 是否阻止冒泡\n */\n consume?: boolean;\n};\n\nexport type EventParams = {\n /**\n * 事件对象\n */\n event?: SuperEvent;\n /**\n * 供不同的事件用于存储期望携带的数据\n */\n value?: any;\n /**\n * 事件来源的 mark\n */\n mark?: IMark;\n /**\n * 事件来源的 model\n */\n model?: IModel;\n /**\n * 事件来源的 chart\n */\n chart?: IChart;\n /**\n * 事件拾取到的图元的数据\n */\n datum?: Datum;\n /**\n * 拾取到的图形节点\n */\n node?: IGraphic;\n /**\n * @since 1.10.4\n * 生命周期相关事件,包括:\n * - 'rendered'\n * - 'initialized'\n * - 'animationFinished'\n * - 'renderFinished'\n * - 'layoutStart'\n * - 'layoutEnd'\n * 会返回vchart实例\n */\n vchart?: IVChart;\n};\n\ntype SuperEvent = Event & {\n [key: string]: any;\n};\n\nexport type BaseEventParams = EventParams & {\n /**\n * 事件对象\n */\n event: SuperEvent;\n item: IElement;\n datum: Datum;\n source: EventSourceType;\n itemMap: Map<string, any>;\n};\n\nexport type EventCallback<Params extends EventParams> = (params: Params) => boolean | void;\n\n/**\n * 内部事件分发中所应用的事件筛选配置\n */\nexport type EventFilter = {\n source: EventSourceType;\n level: EventBubbleLevel;\n type: string | null;\n markName: string | null;\n nodeName: string | null;\n userId: StringOrNumber | null;\n filter: (params: Partial<BaseEventParams>) => boolean | null;\n};\n\nexport type EventHandler<Params extends EventParams> = {\n callback: EventCallback<Params>;\n query: EventQuery | null;\n // 如果有 debounce/throttle 配置则需要封装原始回调函数\n wrappedCallback?: EventCallback<Params>;\n // 转换后的事件筛选配置\n filter?: EventFilter;\n};\n\nexport type ExtendEventParam = EventParams & {\n event?: Event;\n item?: any;\n datum?: Datum;\n source?: EventSourceType;\n itemMap?: Map<string, any>;\n};\n\nexport type LayoutEventParam = {\n elements: (ILayoutItem & { type: string })[];\n} & Partial<BaseEventParams>;\n\nexport type PanEventParam = ExtendEventParam & {\n // x/y方向上的偏移值\n delta: [number, number];\n};\n\nexport type ZoomEventParam = ExtendEventParam & {\n // 缩放值\n scale: number;\n // 缩放中心\n scaleCenter: IPoint;\n};\n\nexport type InteractionEventParam = {\n items?: IElement[];\n datums?: Datum[];\n} & Partial<BaseEventParams>;\n\nexport type EventParamsDefinition = {\n // 基础事件回调参数\n pointerdown: BaseEventParams;\n pointerup: BaseEventParams;\n pointerupoutside: BaseEventParams;\n pointertap: BaseEventParams;\n pointerover: BaseEventParams;\n pointermove: BaseEventParams;\n pointerenter: BaseEventParams;\n pointerleave: BaseEventParams;\n pointerout: BaseEventParams;\n mousedown: BaseEventParams;\n mouseup: BaseEventParams;\n mouseupoutside: BaseEventParams;\n rightdown: BaseEventParams;\n rightup: BaseEventParams;\n rightupoutside: BaseEventParams;\n click: BaseEventParams;\n dblclick: BaseEventParams;\n mousemove: BaseEventParams;\n mouseover: BaseEventParams;\n mouseout: BaseEventParams;\n mouseenter: BaseEventParams;\n mouseleave: BaseEventParams;\n wheel: BaseEventParams;\n touchstart: BaseEventParams;\n touchend: BaseEventParams;\n touchendoutside: BaseEventParams;\n touchmove: BaseEventParams;\n touchcancel: BaseEventParams;\n\n dragstart: BaseEventParams;\n drag: BaseEventParams;\n dragenter: BaseEventParams;\n dragleave: BaseEventParams;\n dragover: BaseEventParams;\n dragend: BaseEventParams;\n drop: BaseEventParams;\n\n tap: BaseEventParams;\n pan: BaseEventParams;\n panstart: BaseEventParams;\n panend: BaseEventParams;\n press: BaseEventParams;\n pressup: BaseEventParams;\n pressend: BaseEventParams;\n pinch: BaseEventParams;\n pinchstart: BaseEventParams;\n pinchend: BaseEventParams;\n swipe: BaseEventParams;\n\n // VChart 内置的扩展组合事件\n dimensionHover: DimensionEventParams;\n dimensionClick: DimensionEventParams;\n tooltipShow: TooltipEventParams;\n tooltipHide: TooltipEventParams;\n tooltipRelease: TooltipEventParams;\n afterLayout: LayoutEventParam;\n\n // 交互相关事件\n 'element-select:start': InteractionEventParam;\n 'element-select:reset': InteractionEventParam;\n 'element-highlight:start': InteractionEventParam;\n 'element-highlight:reset': InteractionEventParam;\n\n // 扩展事件参数\n [key: string]: ExtendEventParam;\n};\n\nexport interface IEventDispatcher {\n globalInstance: VChart;\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => this;\n unregister: <Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>) => this;\n dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;\n clear: () => void;\n release: () => void;\n}\n\nexport interface IEvent {\n on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n off: (<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n emit: <Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel) => void;\n release: () => void;\n\n getComposedEventMap: () => Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }>;\n}\n\nexport interface IComposedEvent {\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;\n unregister: () => void;\n dispatch: (v: unknown, opt: unknown) => unknown;\n}\n"]}
1
+ {"version":3,"sources":["../src/event/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { IChart } from '../chart/interface';\nimport type { IModel } from '../model/interface';\nimport type { IMark, MarkType } from '../mark/interface';\nimport type { VChart } from '../core/vchart';\nimport type { DimensionEventParams } from './events/dimension/interface';\nimport type { Datum, IPoint, StringOrNumber } from '../typings';\nimport type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant/event';\nimport type { SeriesType } from '../series/interface';\nimport type { TooltipEventParams } from '../component/tooltip/interface/event';\nimport type { ILayoutItem } from '../layout/interface';\nimport type { IVChart } from '../core/interface';\n\nexport type EventType =\n | 'pointerdown'\n | 'pointerup'\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointermove'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n | 'mouseenter'\n | 'mouseleave'\n | 'wheel'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n | 'tap'\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe'\n | keyof typeof ChartEvent\n | keyof typeof VGRAMMAR_HOOK_EVENT\n | string;\n\nexport type EventBubbleLevel = keyof typeof Event_Bubble_Level;\n\nexport type ComponentType =\n | 'axis'\n | 'dataZoom'\n | 'indicator'\n | 'legend'\n | 'mapLabel'\n | 'markLine'\n | 'markArea'\n | 'markPoint'\n | 'tooltip'\n | 'title'\n | 'label'\n | 'totalLabel'\n | 'customMark';\nexport type EventTargetType = MarkType | ComponentType | SeriesType;\n\nexport type EventSourceType = keyof typeof Event_Source_Type;\n\n/**\n * 事件 API 中的事件筛选配置\n */\nexport type EventQuery = {\n /**\n * 事件的冒泡层级配置,其中 model 指的是图表的内部模型,包括 region、series 以及 component\n */\n level?: EventBubbleLevel;\n /**\n * 事件来源配置。\n * - `window`: window 事件\n * - `chart`: 图表事件\n */\n source?: EventSourceType;\n\n /**\n * vrender 图形节点名称\n */\n nodeName?: string;\n /**\n * mark 图元名称\n */\n markName?: string;\n /**\n * 仅在 level 为 'mark' 或者 'model' 的场景下使用,用于筛选 mark 类型或者图表组成元素模型类型\n */\n type?: EventTargetType;\n /**\n * 用户在 spec 上配置的 id\n */\n id?: StringOrNumber;\n /**\n * 自定义过滤函数\n * @param params\n * @returns\n */\n filter?: (params: Partial<BaseEventParams>) => boolean;\n\n throttle?: number;\n debounce?: number;\n /**\n * 是否阻止冒泡\n */\n consume?: boolean;\n};\n\nexport type EventParams = {\n /**\n * 事件对象\n */\n event?: SuperEvent;\n /**\n * 供不同的事件用于存储期望携带的数据\n */\n value?: any;\n /**\n * 事件来源的 mark\n */\n mark?: IMark;\n /**\n * 事件来源的 model\n */\n model?: IModel;\n /**\n * 事件来源的 chart\n */\n chart?: IChart;\n /**\n * 事件拾取到的图元的数据\n */\n datum?: Datum;\n /**\n * 拾取到的图形节点\n */\n node?: IGraphic;\n /**\n * @since 1.10.4\n * 生命周期相关事件,包括:\n * - 'rendered'\n * - 'initialized'\n * - 'animationFinished'\n * - 'renderFinished'\n * - 'layoutStart'\n * - 'layoutEnd'\n * 会返回vchart实例\n */\n vchart?: IVChart;\n};\n\ntype SuperEvent = Event & {\n [key: string]: any;\n};\n\nexport type BaseEventParams = EventParams & {\n /**\n * 事件对象\n */\n event: SuperEvent;\n item: IElement;\n datum: Datum;\n source: EventSourceType;\n itemMap: Map<string, any>;\n};\n\nexport type EventCallback<Params extends EventParams> = (params: Params) => boolean | void;\n\n/**\n * 内部事件分发中所应用的事件筛选配置\n */\nexport type EventFilter = {\n source: EventSourceType;\n level: EventBubbleLevel;\n type: string | null;\n markName: string | null;\n nodeName: string | null;\n userId: StringOrNumber | null;\n filter: (params: Partial<BaseEventParams>) => boolean | null;\n};\n\nexport type EventHandler<Params extends EventParams> = {\n callback: EventCallback<Params>;\n query: EventQuery | null;\n // 如果有 debounce/throttle 配置则需要封装原始回调函数\n wrappedCallback?: EventCallback<Params>;\n // 转换后的事件筛选配置\n filter?: EventFilter;\n // handler 是否被禁止触发\n prevented?: boolean;\n};\n\nexport type ExtendEventParam = EventParams & {\n event?: Event;\n item?: any;\n datum?: Datum;\n source?: EventSourceType;\n itemMap?: Map<string, any>;\n};\n\nexport type LayoutEventParam = {\n elements: (ILayoutItem & { type: string })[];\n} & Partial<BaseEventParams>;\n\nexport type PanEventParam = ExtendEventParam & {\n // x/y方向上的偏移值\n delta: [number, number];\n};\n\nexport type ZoomEventParam = ExtendEventParam & {\n // 缩放值\n scale: number;\n // 缩放中心\n scaleCenter: IPoint;\n};\n\nexport type InteractionEventParam = {\n items?: IElement[];\n datums?: Datum[];\n} & Partial<BaseEventParams>;\n\nexport type EventParamsDefinition = {\n // 基础事件回调参数\n pointerdown: BaseEventParams;\n pointerup: BaseEventParams;\n pointerupoutside: BaseEventParams;\n pointertap: BaseEventParams;\n pointerover: BaseEventParams;\n pointermove: BaseEventParams;\n pointerenter: BaseEventParams;\n pointerleave: BaseEventParams;\n pointerout: BaseEventParams;\n mousedown: BaseEventParams;\n mouseup: BaseEventParams;\n mouseupoutside: BaseEventParams;\n rightdown: BaseEventParams;\n rightup: BaseEventParams;\n rightupoutside: BaseEventParams;\n click: BaseEventParams;\n dblclick: BaseEventParams;\n mousemove: BaseEventParams;\n mouseover: BaseEventParams;\n mouseout: BaseEventParams;\n mouseenter: BaseEventParams;\n mouseleave: BaseEventParams;\n wheel: BaseEventParams;\n touchstart: BaseEventParams;\n touchend: BaseEventParams;\n touchendoutside: BaseEventParams;\n touchmove: BaseEventParams;\n touchcancel: BaseEventParams;\n\n dragstart: BaseEventParams;\n drag: BaseEventParams;\n dragenter: BaseEventParams;\n dragleave: BaseEventParams;\n dragover: BaseEventParams;\n dragend: BaseEventParams;\n drop: BaseEventParams;\n\n tap: BaseEventParams;\n pan: BaseEventParams;\n panstart: BaseEventParams;\n panend: BaseEventParams;\n press: BaseEventParams;\n pressup: BaseEventParams;\n pressend: BaseEventParams;\n pinch: BaseEventParams;\n pinchstart: BaseEventParams;\n pinchend: BaseEventParams;\n swipe: BaseEventParams;\n\n // VChart 内置的扩展组合事件\n dimensionHover: DimensionEventParams;\n dimensionClick: DimensionEventParams;\n tooltipShow: TooltipEventParams;\n tooltipHide: TooltipEventParams;\n tooltipRelease: TooltipEventParams;\n afterLayout: LayoutEventParam;\n\n // 交互相关事件\n 'element-select:start': InteractionEventParam;\n 'element-select:reset': InteractionEventParam;\n 'element-highlight:start': InteractionEventParam;\n 'element-highlight:reset': InteractionEventParam;\n\n // 扩展事件参数\n [key: string]: ExtendEventParam;\n};\n\nexport interface IEventDispatcher {\n globalInstance: VChart;\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => this;\n unregister: <Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>) => this;\n dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;\n clear: () => void;\n release: () => void;\n prevent: <Evt extends EventType>(eType: Evt, except: EventCallback<EventParamsDefinition[Evt]>) => void;\n allow: <Evt extends EventType>(eType: Evt) => void;\n}\n\nexport interface IEvent {\n on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n off: (<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n emit: <Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel) => void;\n release: () => void;\n\n getComposedEventMap: () => Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }>;\n prevent: <Evt extends EventType>(eType: Evt, except: EventCallback<EventParamsDefinition[Evt]>) => void;\n allow: <Evt extends EventType>(eType: Evt) => void;\n}\n\nexport interface IComposedEvent {\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;\n unregister: () => void;\n dispatch: (v: unknown, opt: unknown) => unknown;\n}\n"]}
package/esm/index-lark.js CHANGED
@@ -92,7 +92,9 @@ import { registerGridLayout } from "./layout/grid-layout/grid-layout";
92
92
 
93
93
  import { registerPoptip } from "./component/poptip";
94
94
 
95
- import { registerCanvasTooltipHandler, registerFormatPlugin } from "./plugin";
95
+ import { registerCanvasTooltipHandler } from "./plugin/components/tooltip-handler";
96
+
97
+ import { registerFormatPlugin } from "./plugin/chart/formatter";
96
98
 
97
99
  import { registerElementHighlight, registerElementSelect } from "@visactor/vgrammar-core";
98
100
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index-lark.ts"],"names":[],"mappings":"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","file":"index-lark.js","sourcesContent":["/**\n * @description 包含基础的折柱饼图,提供坐标轴、离散图例以及 tooltip、crosshair、label 组件\n */\nimport { VChart } from './core';\nimport { registerLarkEnv } from './env';\n\nimport { registerLineChart } from './chart/line';\nimport { registerAreaChart } from './chart/area';\nimport { registerBarChart } from './chart/bar';\nimport { registerScatterChart } from './chart/scatter';\nimport { registerMapChart } from './chart/map';\nimport { registerPieChart } from './chart/pie';\nimport { registerRoseChart } from './chart/rose';\nimport { registerRadarChart } from './chart/radar';\nimport { registerCommonChart } from './chart/common';\nimport { registerHistogramChart } from './chart/histogram';\nimport { registerCircularProgressChart } from './chart/progress/circular';\nimport { registerGaugeChart } from './chart/gauge';\nimport { registerWordCloudChart } from './chart/word-cloud';\nimport { registerFunnelChart } from './chart/funnel';\nimport { registerLinearProgressChart } from './chart/progress/linear';\nimport { registerRangeColumnChart } from './chart/range-column';\nimport { registerSunburstChart } from './chart/sunburst';\nimport { registerCirclePackingChart } from './chart/circle-packing';\nimport { registerTreemapChart } from './chart/treemap';\nimport { registerWaterfallChart } from './chart/waterfall';\nimport { registerBoxplotChart } from './chart/box-plot';\nimport { registerSankeyChart } from './chart/sankey';\nimport { registerRangeAreaChart } from './chart/range-area';\nimport { registerHeatmapChart } from './chart/heatmap';\nimport { registerCorrelationChart } from './chart/correlation';\nimport {\n registerCartesianBandAxis,\n registerCartesianLinearAxis,\n registerCartesianLogAxis,\n registerCartesianSymlogAxis,\n registerCartesianTimeAxis\n} from './component/axis/cartesian';\nimport { registerPolarBandAxis, registerPolarLinearAxis } from './component/axis/polar';\nimport { registerContinuousLegend, registerDiscreteLegend } from './component/legend';\nimport { registerTooltip } from './component/tooltip';\nimport { registerCartesianCrossHair, registerPolarCrossHair } from './component/crosshair';\nimport { registerDataZoom, registerScrollBar } from './component/data-zoom';\nimport { registerIndicator } from './component/indicator';\nimport { registerGeoCoordinate } from './component/geo';\nimport { registerMarkLine, registerPolarMarkLine } from './component/marker/mark-line';\nimport { registerTitle } from './component/title';\nimport { registerMarkArea, registerPolarMarkArea } from './component/marker/mark-area';\nimport { registerPlayer } from './component/player';\nimport { registerLabel } from './component/label';\nimport { registerTotalLabel } from './component/label/total-label';\nimport { registerMarkPoint, registerPolarMarkPoint, registerGeoMarkPoint } from './component/marker/mark-point';\nimport { registerBrush } from './component/brush';\nimport { registerCustomMark } from './component/custom-mark';\nimport { registerMapLabel } from './component/map-label';\nimport { registerGridLayout } from './layout/grid-layout/grid-layout';\nimport { registerPoptip } from './component/poptip';\nimport { registerCanvasTooltipHandler, registerFormatPlugin } from './plugin';\n\nimport { registerElementHighlight, registerElementSelect } from '@visactor/vgrammar-core';\n\nVChart.useRegisters([\n // charts\n registerLineChart,\n registerAreaChart,\n registerBarChart,\n registerScatterChart,\n registerPieChart,\n registerRoseChart,\n registerRadarChart,\n registerHistogramChart,\n registerMapChart,\n registerGaugeChart,\n registerWordCloudChart,\n registerFunnelChart,\n registerWaterfallChart,\n registerBoxplotChart,\n registerCircularProgressChart,\n registerLinearProgressChart,\n registerRangeColumnChart,\n registerRangeAreaChart,\n registerSunburstChart,\n registerCirclePackingChart,\n registerTreemapChart,\n registerSankeyChart,\n registerHeatmapChart,\n registerCorrelationChart,\n // 优化vchart-all体积, 默认不注册\n // registerLiquidChart,\n // registerVennChart,\n registerCommonChart,\n\n // components\n registerCartesianLinearAxis,\n registerCartesianBandAxis,\n registerCartesianTimeAxis,\n registerCartesianLogAxis,\n registerCartesianSymlogAxis,\n registerPolarBandAxis,\n registerPolarLinearAxis,\n\n registerDiscreteLegend,\n registerContinuousLegend,\n\n registerTooltip,\n registerCartesianCrossHair,\n registerPolarCrossHair,\n\n registerDataZoom,\n registerScrollBar,\n registerIndicator,\n registerGeoCoordinate,\n\n registerMarkLine,\n registerMarkArea,\n registerMarkPoint,\n registerPolarMarkLine,\n registerPolarMarkArea,\n registerPolarMarkPoint,\n registerGeoMarkPoint,\n\n registerTitle,\n registerPlayer,\n registerLabel,\n registerTotalLabel,\n registerBrush,\n registerCustomMark,\n registerMapLabel,\n registerPoptip,\n\n // layout\n registerGridLayout,\n\n // plugin\n registerCanvasTooltipHandler,\n registerFormatPlugin,\n\n // vgrammar interactions,\n registerElementHighlight,\n registerElementSelect\n]);\n\n// load env code\nVChart.useRegisters([registerLarkEnv]);\n\nexport { VChart };\n\nexport default VChart;\n\nexport * from './core';\n"]}
1
+ {"version":3,"sources":["../src/index-lark.ts"],"names":[],"mappings":"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","file":"index-lark.js","sourcesContent":["/**\n * @description 包含基础的折柱饼图,提供坐标轴、离散图例以及 tooltip、crosshair、label 组件\n */\nimport { VChart } from './core';\nimport { registerLarkEnv } from './env';\n\nimport { registerLineChart } from './chart/line';\nimport { registerAreaChart } from './chart/area';\nimport { registerBarChart } from './chart/bar';\nimport { registerScatterChart } from './chart/scatter';\nimport { registerMapChart } from './chart/map';\nimport { registerPieChart } from './chart/pie';\nimport { registerRoseChart } from './chart/rose';\nimport { registerRadarChart } from './chart/radar';\nimport { registerCommonChart } from './chart/common';\nimport { registerHistogramChart } from './chart/histogram';\nimport { registerCircularProgressChart } from './chart/progress/circular';\nimport { registerGaugeChart } from './chart/gauge';\nimport { registerWordCloudChart } from './chart/word-cloud';\nimport { registerFunnelChart } from './chart/funnel';\nimport { registerLinearProgressChart } from './chart/progress/linear';\nimport { registerRangeColumnChart } from './chart/range-column';\nimport { registerSunburstChart } from './chart/sunburst';\nimport { registerCirclePackingChart } from './chart/circle-packing';\nimport { registerTreemapChart } from './chart/treemap';\nimport { registerWaterfallChart } from './chart/waterfall';\nimport { registerBoxplotChart } from './chart/box-plot';\nimport { registerSankeyChart } from './chart/sankey';\nimport { registerRangeAreaChart } from './chart/range-area';\nimport { registerHeatmapChart } from './chart/heatmap';\nimport { registerCorrelationChart } from './chart/correlation';\nimport {\n registerCartesianBandAxis,\n registerCartesianLinearAxis,\n registerCartesianLogAxis,\n registerCartesianSymlogAxis,\n registerCartesianTimeAxis\n} from './component/axis/cartesian';\nimport { registerPolarBandAxis, registerPolarLinearAxis } from './component/axis/polar';\nimport { registerContinuousLegend, registerDiscreteLegend } from './component/legend';\nimport { registerTooltip } from './component/tooltip';\nimport { registerCartesianCrossHair, registerPolarCrossHair } from './component/crosshair';\nimport { registerDataZoom, registerScrollBar } from './component/data-zoom';\nimport { registerIndicator } from './component/indicator';\nimport { registerGeoCoordinate } from './component/geo';\nimport { registerMarkLine, registerPolarMarkLine } from './component/marker/mark-line';\nimport { registerTitle } from './component/title';\nimport { registerMarkArea, registerPolarMarkArea } from './component/marker/mark-area';\nimport { registerPlayer } from './component/player';\nimport { registerLabel } from './component/label';\nimport { registerTotalLabel } from './component/label/total-label';\nimport { registerMarkPoint, registerPolarMarkPoint, registerGeoMarkPoint } from './component/marker/mark-point';\nimport { registerBrush } from './component/brush';\nimport { registerCustomMark } from './component/custom-mark';\nimport { registerMapLabel } from './component/map-label';\nimport { registerGridLayout } from './layout/grid-layout/grid-layout';\nimport { registerPoptip } from './component/poptip';\nimport { registerCanvasTooltipHandler } from './plugin/components/tooltip-handler';\nimport { registerFormatPlugin } from './plugin/chart/formatter';\n\nimport { registerElementHighlight, registerElementSelect } from '@visactor/vgrammar-core';\n\nVChart.useRegisters([\n // charts\n registerLineChart,\n registerAreaChart,\n registerBarChart,\n registerScatterChart,\n registerPieChart,\n registerRoseChart,\n registerRadarChart,\n registerHistogramChart,\n registerMapChart,\n registerGaugeChart,\n registerWordCloudChart,\n registerFunnelChart,\n registerWaterfallChart,\n registerBoxplotChart,\n registerCircularProgressChart,\n registerLinearProgressChart,\n registerRangeColumnChart,\n registerRangeAreaChart,\n registerSunburstChart,\n registerCirclePackingChart,\n registerTreemapChart,\n registerSankeyChart,\n registerHeatmapChart,\n registerCorrelationChart,\n // 优化vchart-all体积, 默认不注册\n // registerLiquidChart,\n // registerVennChart,\n registerCommonChart,\n\n // components\n registerCartesianLinearAxis,\n registerCartesianBandAxis,\n registerCartesianTimeAxis,\n registerCartesianLogAxis,\n registerCartesianSymlogAxis,\n registerPolarBandAxis,\n registerPolarLinearAxis,\n\n registerDiscreteLegend,\n registerContinuousLegend,\n\n registerTooltip,\n registerCartesianCrossHair,\n registerPolarCrossHair,\n\n registerDataZoom,\n registerScrollBar,\n registerIndicator,\n registerGeoCoordinate,\n\n registerMarkLine,\n registerMarkArea,\n registerMarkPoint,\n registerPolarMarkLine,\n registerPolarMarkArea,\n registerPolarMarkPoint,\n registerGeoMarkPoint,\n\n registerTitle,\n registerPlayer,\n registerLabel,\n registerTotalLabel,\n registerBrush,\n registerCustomMark,\n registerMapLabel,\n registerPoptip,\n\n // layout\n registerGridLayout,\n\n // plugin\n registerCanvasTooltipHandler,\n registerFormatPlugin,\n\n // vgrammar interactions,\n registerElementHighlight,\n registerElementSelect\n]);\n\n// load env code\nVChart.useRegisters([registerLarkEnv]);\n\nexport { VChart };\n\nexport default VChart;\n\nexport * from './core';\n"]}
@@ -24,7 +24,9 @@ import { registerCartesianLinearAxis } from "./component/axis/cartesian/linear-a
24
24
 
25
25
  import { registerWXEnv } from "./env";
26
26
 
27
- import { registerCanvasTooltipHandler, registerFormatPlugin } from "./plugin";
27
+ import { registerCanvasTooltipHandler } from "./plugin/components/tooltip-handler";
28
+
29
+ import { registerFormatPlugin } from "./plugin/chart/formatter";
28
30
 
29
31
  import { registerElementHighlight, registerElementSelect } from "@visactor/vgrammar-core";
30
32
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index-wx-simple.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,cAAc,QAAQ,CAAC;AAEvB,MAAM,CAAC,YAAY,CAAC;IAElB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IAGnB,2BAA2B;IAC3B,yBAAyB;IACzB,sBAAsB;IACtB,eAAe;IACf,0BAA0B;IAC1B,aAAa;IAGb,4BAA4B;IAC5B,oBAAoB;IAGpB,wBAAwB;IACxB,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,eAAe,MAAM,CAAC","file":"index-wx-simple.js","sourcesContent":["/**\n * @description 包含基础的折柱饼图,提供坐标轴、离散图例以及 tooltip、crosshair、label 组件\n */\nimport { VChart } from './core';\nimport { registerLineChart } from './chart/line/line';\nimport { registerBarChart } from './chart/bar/bar';\nimport { registerAreaChart } from './chart/area/area';\nimport { registerPieChart } from './chart/pie/pie';\nimport { registerCommonChart } from './chart/common/common';\n\nimport { registerLabel } from './component/label/label';\nimport { registerCartesianCrossHair } from './component/crosshair/cartesian';\nimport { registerTooltip } from './component/tooltip/tooltip';\nimport { registerDiscreteLegend } from './component/legend/discrete/legend';\nimport { registerCartesianBandAxis } from './component/axis/cartesian/band-axis';\nimport { registerCartesianLinearAxis } from './component/axis/cartesian/linear-axis';\nimport { registerWXEnv } from './env';\nimport { registerCanvasTooltipHandler, registerFormatPlugin } from './plugin';\nimport { registerElementHighlight, registerElementSelect } from '@visactor/vgrammar-core';\n\nexport * from './core';\n\nVChart.useRegisters([\n // charts\n registerLineChart,\n registerAreaChart,\n registerBarChart,\n registerPieChart,\n registerCommonChart,\n\n // components\n registerCartesianLinearAxis,\n registerCartesianBandAxis,\n registerDiscreteLegend,\n registerTooltip,\n registerCartesianCrossHair,\n registerLabel,\n\n // plugin\n registerCanvasTooltipHandler,\n registerFormatPlugin,\n\n // vgrammar interactions,\n registerElementHighlight,\n registerElementSelect\n]);\n\nVChart.useRegisters([registerWXEnv]);\n\nexport { VChart };\n\nexport default VChart;\n"]}
1
+ {"version":3,"sources":["../src/index-wx-simple.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,cAAc,QAAQ,CAAC;AAEvB,MAAM,CAAC,YAAY,CAAC;IAElB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IAGnB,2BAA2B;IAC3B,yBAAyB;IACzB,sBAAsB;IACtB,eAAe;IACf,0BAA0B;IAC1B,aAAa;IAGb,4BAA4B;IAC5B,oBAAoB;IAGpB,wBAAwB;IACxB,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,eAAe,MAAM,CAAC","file":"index-wx-simple.js","sourcesContent":["/**\n * @description 包含基础的折柱饼图,提供坐标轴、离散图例以及 tooltip、crosshair、label 组件\n */\nimport { VChart } from './core';\nimport { registerLineChart } from './chart/line/line';\nimport { registerBarChart } from './chart/bar/bar';\nimport { registerAreaChart } from './chart/area/area';\nimport { registerPieChart } from './chart/pie/pie';\nimport { registerCommonChart } from './chart/common/common';\n\nimport { registerLabel } from './component/label/label';\nimport { registerCartesianCrossHair } from './component/crosshair/cartesian';\nimport { registerTooltip } from './component/tooltip/tooltip';\nimport { registerDiscreteLegend } from './component/legend/discrete/legend';\nimport { registerCartesianBandAxis } from './component/axis/cartesian/band-axis';\nimport { registerCartesianLinearAxis } from './component/axis/cartesian/linear-axis';\nimport { registerWXEnv } from './env';\nimport { registerCanvasTooltipHandler } from './plugin/components/tooltip-handler';\nimport { registerFormatPlugin } from './plugin/chart/formatter';\nimport { registerElementHighlight, registerElementSelect } from '@visactor/vgrammar-core';\n\nexport * from './core';\n\nVChart.useRegisters([\n // charts\n registerLineChart,\n registerAreaChart,\n registerBarChart,\n registerPieChart,\n registerCommonChart,\n\n // components\n registerCartesianLinearAxis,\n registerCartesianBandAxis,\n registerDiscreteLegend,\n registerTooltip,\n registerCartesianCrossHair,\n registerLabel,\n\n // plugin\n registerCanvasTooltipHandler,\n registerFormatPlugin,\n\n // vgrammar interactions,\n registerElementHighlight,\n registerElementSelect\n]);\n\nVChart.useRegisters([registerWXEnv]);\n\nexport { VChart };\n\nexport default VChart;\n"]}
package/esm/index-wx.d.ts CHANGED
@@ -2,4 +2,6 @@ import { VChart } from './core';
2
2
  export { VChart };
3
3
  export default VChart;
4
4
  export * from './core';
5
- export * from './plugin';
5
+ export * from './plugin/chart';
6
+ export * from './plugin/components/tooltip-handler';
7
+ export * from './plugin/components/axis-sync';