@visactor/vchart 1.12.4-alpha.1 → 1.12.4-alpha.2

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 (795) hide show
  1. package/build/es5/index.js +2 -2
  2. package/build/index.js +4449 -4316
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.js +1 -1
  6. package/cjs/animation/utils.js.map +1 -1
  7. package/cjs/chart/base/base-chart-transformer.js +4 -4
  8. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  9. package/cjs/chart/base/base-chart.d.ts +1 -0
  10. package/cjs/chart/base/base-chart.js +21 -13
  11. package/cjs/chart/base/base-chart.js.map +1 -1
  12. package/cjs/chart/chart-meta/data.d.ts +1 -2
  13. package/cjs/chart/chart-meta/data.js +11 -11
  14. package/cjs/chart/chart-meta/data.js.map +1 -1
  15. package/cjs/chart/gauge/interface.d.ts +1 -1
  16. package/cjs/chart/gauge/interface.js.map +1 -1
  17. package/cjs/chart/mosaic/mosaic.d.ts +0 -1
  18. package/cjs/chart/mosaic/mosaic.js +0 -3
  19. package/cjs/chart/mosaic/mosaic.js.map +1 -1
  20. package/cjs/chart/pie/interface.d.ts +2 -2
  21. package/cjs/chart/pie/interface.js.map +1 -1
  22. package/cjs/chart/polar/interface.d.ts +2 -0
  23. package/cjs/chart/polar/interface.js.map +1 -1
  24. package/cjs/chart/treemap/interface.d.ts +1 -1
  25. package/cjs/chart/treemap/interface.js.map +1 -1
  26. package/cjs/chart/venn/interface.d.ts +2 -2
  27. package/cjs/chart/venn/interface.js.map +1 -1
  28. package/cjs/compile/compiler.js +4 -1
  29. package/cjs/compile/compiler.js.map +1 -1
  30. package/cjs/compile/interface/compiler.d.ts +15 -0
  31. package/cjs/compile/interface/compiler.js.map +1 -1
  32. package/cjs/compile/mark/compilable-mark.d.ts +7 -39
  33. package/cjs/compile/mark/compilable-mark.js +20 -90
  34. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  35. package/cjs/compile/mark/interface.d.ts +5 -25
  36. package/cjs/compile/mark/interface.js.map +1 -1
  37. package/cjs/component/axis/base-axis.d.ts +2 -2
  38. package/cjs/component/axis/base-axis.js +36 -26
  39. package/cjs/component/axis/base-axis.js.map +1 -1
  40. package/cjs/component/axis/cartesian/axis.d.ts +2 -0
  41. package/cjs/component/axis/cartesian/axis.js +41 -8
  42. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  43. package/cjs/component/axis/cartesian/interface/common.d.ts +1 -0
  44. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  45. package/cjs/component/axis/interface/spec.d.ts +1 -0
  46. package/cjs/component/axis/interface/spec.js.map +1 -1
  47. package/cjs/component/axis/mixin/linear-axis-mixin.js +1 -1
  48. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  49. package/cjs/component/axis/mixin/util/break-data.d.ts +1 -1
  50. package/cjs/component/axis/mixin/util/break-data.js +35 -12
  51. package/cjs/component/axis/mixin/util/break-data.js.map +1 -1
  52. package/cjs/component/axis/polar/axis.d.ts +1 -1
  53. package/cjs/component/axis/polar/axis.js +10 -36
  54. package/cjs/component/axis/polar/axis.js.map +1 -1
  55. package/cjs/component/axis/polar/interface/spec.d.ts +3 -1
  56. package/cjs/component/axis/polar/interface/spec.js.map +1 -1
  57. package/cjs/component/axis/polar/util/common.js +1 -1
  58. package/cjs/component/axis/polar/util/common.js.map +1 -1
  59. package/cjs/component/base/base-component.js +1 -3
  60. package/cjs/component/base/base-component.js.map +1 -1
  61. package/cjs/component/brush/brush.js +2 -8
  62. package/cjs/component/brush/brush.js.map +1 -1
  63. package/cjs/component/crosshair/cartesian.js +2 -18
  64. package/cjs/component/crosshair/cartesian.js.map +1 -1
  65. package/cjs/component/crosshair/polar.js +2 -18
  66. package/cjs/component/crosshair/polar.js.map +1 -1
  67. package/cjs/component/custom-mark/custom-mark.d.ts +1 -4
  68. package/cjs/component/custom-mark/custom-mark.js +3 -28
  69. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  70. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -0
  71. package/cjs/component/data-zoom/data-filter-base-component.js +31 -15
  72. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  73. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +0 -3
  74. package/cjs/component/data-zoom/data-zoom/data-zoom.js +0 -19
  75. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  76. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -3
  77. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +5 -20
  78. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  79. package/cjs/component/data-zoom/util.js +11 -3
  80. package/cjs/component/data-zoom/util.js.map +1 -1
  81. package/cjs/component/geo/geo-coordinate.d.ts +7 -0
  82. package/cjs/component/geo/geo-coordinate.js +10 -2
  83. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  84. package/cjs/component/indicator/indicator.js +2 -18
  85. package/cjs/component/indicator/indicator.js.map +1 -1
  86. package/cjs/component/interface/common.d.ts +1 -1
  87. package/cjs/component/interface/common.js.map +1 -1
  88. package/cjs/component/interface/index.d.ts +0 -1
  89. package/cjs/component/interface/index.js +1 -1
  90. package/cjs/component/interface/index.js.map +1 -1
  91. package/cjs/component/label/base-label.d.ts +1 -2
  92. package/cjs/component/label/base-label.js +0 -3
  93. package/cjs/component/label/base-label.js.map +1 -1
  94. package/cjs/component/label/interface.d.ts +2 -2
  95. package/cjs/component/label/interface.js.map +1 -1
  96. package/cjs/component/label/label.d.ts +0 -1
  97. package/cjs/component/label/label.js +18 -21
  98. package/cjs/component/label/label.js.map +1 -1
  99. package/cjs/component/label/total-label.d.ts +1 -1
  100. package/cjs/component/label/total-label.js +7 -13
  101. package/cjs/component/label/total-label.js.map +1 -1
  102. package/cjs/component/label/util.d.ts +5 -5
  103. package/cjs/component/label/util.js +13 -8
  104. package/cjs/component/label/util.js.map +1 -1
  105. package/cjs/component/legend/continuous/legend.js +6 -18
  106. package/cjs/component/legend/continuous/legend.js.map +1 -1
  107. package/cjs/component/legend/discrete/legend.js +1 -17
  108. package/cjs/component/legend/discrete/legend.js.map +1 -1
  109. package/cjs/component/map-label/component.js +3 -8
  110. package/cjs/component/map-label/component.js.map +1 -1
  111. package/cjs/component/marker/base-marker.d.ts +4 -1
  112. package/cjs/component/marker/base-marker.js +14 -19
  113. package/cjs/component/marker/base-marker.js.map +1 -1
  114. package/cjs/component/marker/interface.d.ts +9 -2
  115. package/cjs/component/marker/interface.js.map +1 -1
  116. package/cjs/component/marker/mark-area/base-mark-area.js +5 -5
  117. package/cjs/component/marker/mark-area/base-mark-area.js.map +1 -1
  118. package/cjs/component/marker/mark-line/base-mark-line.js +9 -9
  119. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  120. package/cjs/component/marker/mark-point/base-mark-point.js +16 -15
  121. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  122. package/cjs/component/marker/utils.d.ts +4 -4
  123. package/cjs/component/marker/utils.js +7 -7
  124. package/cjs/component/marker/utils.js.map +1 -1
  125. package/cjs/component/player/player.d.ts +1 -3
  126. package/cjs/component/player/player.js +0 -9
  127. package/cjs/component/player/player.js.map +1 -1
  128. package/cjs/component/title/interface/spec.d.ts +3 -3
  129. package/cjs/component/title/interface/spec.js.map +1 -1
  130. package/cjs/component/title/interface/theme.d.ts +1 -1
  131. package/cjs/component/title/interface/theme.js.map +1 -1
  132. package/cjs/component/title/title.js +22 -34
  133. package/cjs/component/title/title.js.map +1 -1
  134. package/cjs/component/tooltip/constant.d.ts +5 -4
  135. package/cjs/component/tooltip/constant.js +7 -7
  136. package/cjs/component/tooltip/constant.js.map +1 -1
  137. package/cjs/component/tooltip/interface/common.d.ts +1 -1
  138. package/cjs/component/tooltip/interface/common.js.map +1 -1
  139. package/cjs/component/tooltip/interface/spec.d.ts +23 -3
  140. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  141. package/cjs/component/tooltip/interface/theme.d.ts +2 -2
  142. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  143. package/cjs/component/tooltip/processor/base.d.ts +3 -5
  144. package/cjs/component/tooltip/processor/base.js +24 -27
  145. package/cjs/component/tooltip/processor/base.js.map +1 -1
  146. package/cjs/component/tooltip/processor/group-tooltip.js +1 -1
  147. package/cjs/component/tooltip/processor/group-tooltip.js.map +1 -1
  148. package/cjs/component/tooltip/processor/mark-tooltip.js +31 -5
  149. package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
  150. package/cjs/component/tooltip/tooltip-transformer.js +2 -4
  151. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  152. package/cjs/component/tooltip/tooltip.d.ts +13 -6
  153. package/cjs/component/tooltip/tooltip.js +107 -83
  154. package/cjs/component/tooltip/tooltip.js.map +1 -1
  155. package/cjs/component/tooltip/utils/common.d.ts +6 -4
  156. package/cjs/component/tooltip/utils/common.js +54 -7
  157. package/cjs/component/tooltip/utils/common.js.map +1 -1
  158. package/cjs/component/tooltip/utils/get-spec.d.ts +4 -4
  159. package/cjs/component/tooltip/utils/get-spec.js +20 -82
  160. package/cjs/component/tooltip/utils/get-spec.js.map +1 -1
  161. package/cjs/component/tooltip/utils/get-value.d.ts +1 -2
  162. package/cjs/component/tooltip/utils/get-value.js +2 -12
  163. package/cjs/component/tooltip/utils/get-value.js.map +1 -1
  164. package/cjs/component/tooltip/utils/index.d.ts +0 -1
  165. package/cjs/component/tooltip/utils/index.js +1 -2
  166. package/cjs/component/tooltip/utils/index.js.map +1 -1
  167. package/cjs/component/util.d.ts +3 -0
  168. package/cjs/component/util.js +16 -1
  169. package/cjs/component/util.js.map +1 -1
  170. package/cjs/core/factory.js +3 -1
  171. package/cjs/core/factory.js.map +1 -1
  172. package/cjs/core/index.d.ts +1 -1
  173. package/cjs/core/index.js +1 -1
  174. package/cjs/core/index.js.map +1 -1
  175. package/cjs/core/vchart.d.ts +1 -1
  176. package/cjs/core/vchart.js +31 -31
  177. package/cjs/core/vchart.js.map +1 -1
  178. package/cjs/data/initialize.d.ts +1 -2
  179. package/cjs/data/initialize.js +5 -5
  180. package/cjs/data/initialize.js.map +1 -1
  181. package/cjs/data/transforms/pie.d.ts +3 -0
  182. package/cjs/data/transforms/pie.js +8 -3
  183. package/cjs/data/transforms/pie.js.map +1 -1
  184. package/cjs/event/event-dispatcher.js +1 -9
  185. package/cjs/event/event-dispatcher.js.map +1 -1
  186. package/cjs/interaction/zoom/zoomable.js +2 -1
  187. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  188. package/cjs/mark/base/base-line.js +3 -1
  189. package/cjs/mark/base/base-line.js.map +1 -1
  190. package/cjs/mark/base/base-mark.js +3 -3
  191. package/cjs/mark/base/base-mark.js.map +1 -1
  192. package/cjs/mark/group.js +1 -1
  193. package/cjs/mark/group.js.map +1 -1
  194. package/cjs/mark/interface/common.d.ts +10 -0
  195. package/cjs/mark/interface/common.js.map +1 -1
  196. package/cjs/model/base-model.d.ts +2 -2
  197. package/cjs/model/base-model.js +2 -2
  198. package/cjs/model/base-model.js.map +1 -1
  199. package/cjs/model/interface.d.ts +14 -0
  200. package/cjs/model/interface.js.map +1 -1
  201. package/cjs/plugin/chart/media-query/media-query.d.ts +1 -0
  202. package/cjs/plugin/chart/media-query/media-query.js +3 -1
  203. package/cjs/plugin/chart/media-query/media-query.js.map +1 -1
  204. package/cjs/plugin/chart/plugin-service.d.ts +2 -0
  205. package/cjs/plugin/chart/plugin-service.js +5 -0
  206. package/cjs/plugin/chart/plugin-service.js.map +1 -1
  207. package/cjs/plugin/components/axis-sync/zero-align-transform.d.ts +1 -0
  208. package/cjs/plugin/components/axis-sync/zero-align-transform.js +17 -4
  209. package/cjs/plugin/components/axis-sync/zero-align-transform.js.map +1 -1
  210. package/cjs/plugin/components/tooltip-handler/base.d.ts +1 -16
  211. package/cjs/plugin/components/tooltip-handler/base.js +84 -228
  212. package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
  213. package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +1 -1
  214. package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
  215. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.d.ts +0 -1
  216. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +7 -19
  217. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  218. package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js +16 -14
  219. package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
  220. package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js +7 -2
  221. package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js.map +1 -1
  222. package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js +2 -2
  223. package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js.map +1 -1
  224. package/cjs/plugin/components/tooltip-handler/interface/style.d.ts +1 -2
  225. package/cjs/plugin/components/tooltip-handler/interface/style.js.map +1 -1
  226. package/cjs/plugin/components/tooltip-handler/utils/attribute.js +7 -7
  227. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  228. package/cjs/plugin/components/tooltip-handler/utils/common.js.map +1 -1
  229. package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +3 -5
  230. package/cjs/plugin/components/tooltip-handler/utils/position.js +22 -29
  231. package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  232. package/cjs/region/interface.d.ts +3 -1
  233. package/cjs/region/interface.js.map +1 -1
  234. package/cjs/region/region.js +10 -7
  235. package/cjs/region/region.js.map +1 -1
  236. package/cjs/series/area/area-transformer.js +1 -2
  237. package/cjs/series/area/area-transformer.js.map +1 -1
  238. package/cjs/series/area/area.d.ts +2 -0
  239. package/cjs/series/area/area.js +51 -35
  240. package/cjs/series/area/area.js.map +1 -1
  241. package/cjs/series/bar/bar.d.ts +4 -4
  242. package/cjs/series/bar/bar.js +68 -62
  243. package/cjs/series/bar/bar.js.map +1 -1
  244. package/cjs/series/base/base-series-transformer.js +7 -4
  245. package/cjs/series/base/base-series-transformer.js.map +1 -1
  246. package/cjs/series/base/base-series.d.ts +8 -7
  247. package/cjs/series/base/base-series.js +47 -34
  248. package/cjs/series/base/base-series.js.map +1 -1
  249. package/cjs/series/base/constant.js +1 -0
  250. package/cjs/series/base/constant.js.map +1 -1
  251. package/cjs/series/base/tooltip-helper.d.ts +30 -6
  252. package/cjs/series/base/tooltip-helper.js +80 -73
  253. package/cjs/series/base/tooltip-helper.js.map +1 -1
  254. package/cjs/series/box-plot/box-plot.d.ts +1 -0
  255. package/cjs/series/box-plot/box-plot.js +9 -5
  256. package/cjs/series/box-plot/box-plot.js.map +1 -1
  257. package/cjs/series/box-plot/tooltip-helper.d.ts +2 -2
  258. package/cjs/series/box-plot/tooltip-helper.js +26 -67
  259. package/cjs/series/box-plot/tooltip-helper.js.map +1 -1
  260. package/cjs/series/cartesian/cartesian.d.ts +1 -1
  261. package/cjs/series/circle-packing/circle-packing.js +4 -4
  262. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  263. package/cjs/series/correlation/correlation.d.ts +1 -0
  264. package/cjs/series/correlation/correlation.js +16 -6
  265. package/cjs/series/correlation/correlation.js.map +1 -1
  266. package/cjs/series/dot/dot.d.ts +0 -1
  267. package/cjs/series/dot/dot.js +7 -8
  268. package/cjs/series/dot/dot.js.map +1 -1
  269. package/cjs/series/dot/tooltip-helper.d.ts +8 -2
  270. package/cjs/series/dot/tooltip-helper.js +42 -41
  271. package/cjs/series/dot/tooltip-helper.js.map +1 -1
  272. package/cjs/series/funnel/3d/funnel-3d.js +2 -1
  273. package/cjs/series/funnel/3d/funnel-3d.js.map +1 -1
  274. package/cjs/series/funnel/funnel.d.ts +2 -0
  275. package/cjs/series/funnel/funnel.js +35 -27
  276. package/cjs/series/funnel/funnel.js.map +1 -1
  277. package/cjs/series/funnel/interface.d.ts +3 -1
  278. package/cjs/series/funnel/interface.js.map +1 -1
  279. package/cjs/series/gauge/interface.d.ts +1 -1
  280. package/cjs/series/gauge/interface.js.map +1 -1
  281. package/cjs/series/gauge/pointer-tooltip-helper.d.ts +2 -1
  282. package/cjs/series/gauge/pointer-tooltip-helper.js +3 -8
  283. package/cjs/series/gauge/pointer-tooltip-helper.js.map +1 -1
  284. package/cjs/series/heatmap/heatmap.js +10 -10
  285. package/cjs/series/heatmap/heatmap.js.map +1 -1
  286. package/cjs/series/heatmap/tooltip-helper.d.ts +2 -3
  287. package/cjs/series/heatmap/tooltip-helper.js +3 -5
  288. package/cjs/series/heatmap/tooltip-helper.js.map +1 -1
  289. package/cjs/series/interface/common.d.ts +1 -9
  290. package/cjs/series/interface/common.js.map +1 -1
  291. package/cjs/series/interface/tooltip-helper.d.ts +5 -4
  292. package/cjs/series/interface/tooltip-helper.js.map +1 -1
  293. package/cjs/series/link/link.js +7 -3
  294. package/cjs/series/link/link.js.map +1 -1
  295. package/cjs/series/link/tooltip-helper.d.ts +5 -2
  296. package/cjs/series/link/tooltip-helper.js +26 -27
  297. package/cjs/series/link/tooltip-helper.js.map +1 -1
  298. package/cjs/series/liquid/liquid.js +11 -6
  299. package/cjs/series/liquid/liquid.js.map +1 -1
  300. package/cjs/series/liquid/tooltip-helper.d.ts +4 -5
  301. package/cjs/series/liquid/tooltip-helper.js +2 -22
  302. package/cjs/series/liquid/tooltip-helper.js.map +1 -1
  303. package/cjs/series/map/map.d.ts +1 -0
  304. package/cjs/series/map/map.js +7 -2
  305. package/cjs/series/map/map.js.map +1 -1
  306. package/cjs/series/mixin/line-mixin.d.ts +2 -2
  307. package/cjs/series/mixin/line-mixin.js +15 -14
  308. package/cjs/series/mixin/line-mixin.js.map +1 -1
  309. package/cjs/series/pie/3d/pie-3d.js +3 -1
  310. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  311. package/cjs/series/pie/interface.d.ts +3 -3
  312. package/cjs/series/pie/interface.js.map +1 -1
  313. package/cjs/series/pie/pie.d.ts +1 -0
  314. package/cjs/series/pie/pie.js +20 -11
  315. package/cjs/series/pie/pie.js.map +1 -1
  316. package/cjs/series/polar/animation.d.ts +9 -11
  317. package/cjs/series/polar/animation.js +28 -35
  318. package/cjs/series/polar/animation.js.map +1 -1
  319. package/cjs/series/polar/polar.js +9 -2
  320. package/cjs/series/polar/polar.js.map +1 -1
  321. package/cjs/series/polar/progress-like/progress-like.js +29 -24
  322. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  323. package/cjs/series/progress/circular/circular.js +6 -4
  324. package/cjs/series/progress/circular/circular.js.map +1 -1
  325. package/cjs/series/progress/linear/linear.js +10 -8
  326. package/cjs/series/progress/linear/linear.js.map +1 -1
  327. package/cjs/series/progress/linear/tooltip-helper.d.ts +2 -3
  328. package/cjs/series/progress/linear/tooltip-helper.js +2 -11
  329. package/cjs/series/progress/linear/tooltip-helper.js.map +1 -1
  330. package/cjs/series/radar/animation.d.ts +0 -3
  331. package/cjs/series/radar/animation.js +4 -4
  332. package/cjs/series/radar/animation.js.map +1 -1
  333. package/cjs/series/radar/radar.js +15 -11
  334. package/cjs/series/radar/radar.js.map +1 -1
  335. package/cjs/series/range-area/range-area.js +3 -2
  336. package/cjs/series/range-area/range-area.js.map +1 -1
  337. package/cjs/series/range-area/tooltip-helper.d.ts +1 -3
  338. package/cjs/series/range-area/tooltip-helper.js +2 -50
  339. package/cjs/series/range-area/tooltip-helper.js.map +1 -1
  340. package/cjs/series/range-column/range-column.js +5 -4
  341. package/cjs/series/range-column/range-column.js.map +1 -1
  342. package/cjs/series/range-column/tooltip-helper.d.ts +1 -2
  343. package/cjs/series/range-column/tooltip-helper.js +2 -19
  344. package/cjs/series/range-column/tooltip-helper.js.map +1 -1
  345. package/cjs/series/rose/rose.js +5 -4
  346. package/cjs/series/rose/rose.js.map +1 -1
  347. package/cjs/series/sankey/sankey.d.ts +2 -1
  348. package/cjs/series/sankey/sankey.js +17 -6
  349. package/cjs/series/sankey/sankey.js.map +1 -1
  350. package/cjs/series/sankey/tooltip-helper.d.ts +3 -3
  351. package/cjs/series/sankey/tooltip-helper.js +10 -57
  352. package/cjs/series/sankey/tooltip-helper.js.map +1 -1
  353. package/cjs/series/scatter/scatter.js +8 -10
  354. package/cjs/series/scatter/scatter.js.map +1 -1
  355. package/cjs/series/sunburst/sunburst.js +3 -2
  356. package/cjs/series/sunburst/sunburst.js.map +1 -1
  357. package/cjs/series/treemap/treemap.js +6 -4
  358. package/cjs/series/treemap/treemap.js.map +1 -1
  359. package/cjs/series/waterfall/waterfall.d.ts +1 -0
  360. package/cjs/series/waterfall/waterfall.js +7 -2
  361. package/cjs/series/waterfall/waterfall.js.map +1 -1
  362. package/cjs/series/word-cloud/base.js +32 -17
  363. package/cjs/series/word-cloud/base.js.map +1 -1
  364. package/cjs/series/word-cloud/word-cloud-3d.js +2 -1
  365. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  366. package/cjs/theme/builtin/common/component/title.js.map +1 -1
  367. package/cjs/theme/builtin/common/mark.js +2 -0
  368. package/cjs/theme/builtin/common/mark.js.map +1 -1
  369. package/cjs/theme/builtin/common/series/linear-progress.js +4 -1
  370. package/cjs/theme/builtin/common/series/linear-progress.js.map +1 -1
  371. package/cjs/theme/builtin/dark/color-scheme.js +2 -1
  372. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
  373. package/cjs/theme/builtin/light/color-scheme.js +2 -1
  374. package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
  375. package/cjs/typings/spec/common.d.ts +6 -3
  376. package/cjs/typings/spec/common.js.map +1 -1
  377. package/cjs/typings/tooltip/position.d.ts +1 -0
  378. package/cjs/typings/tooltip/position.js.map +1 -1
  379. package/cjs/typings/tooltip/shape.d.ts +0 -1
  380. package/cjs/typings/tooltip/shape.js.map +1 -1
  381. package/cjs/typings/tooltip/tooltip.d.ts +7 -0
  382. package/cjs/typings/tooltip/tooltip.js.map +1 -1
  383. package/cjs/util/array.js +2 -1
  384. package/cjs/util/array.js.map +1 -1
  385. package/cjs/util/math.d.ts +1 -0
  386. package/cjs/util/math.js +7 -2
  387. package/cjs/util/math.js.map +1 -1
  388. package/cjs/util/scale.d.ts +1 -1
  389. package/cjs/util/scale.js +2 -2
  390. package/cjs/util/scale.js.map +1 -1
  391. package/esm/animation/utils.js +1 -1
  392. package/esm/animation/utils.js.map +1 -1
  393. package/esm/chart/base/base-chart-transformer.js +5 -3
  394. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  395. package/esm/chart/base/base-chart.d.ts +1 -0
  396. package/esm/chart/base/base-chart.js +23 -13
  397. package/esm/chart/base/base-chart.js.map +1 -1
  398. package/esm/chart/chart-meta/data.d.ts +1 -2
  399. package/esm/chart/chart-meta/data.js +12 -10
  400. package/esm/chart/chart-meta/data.js.map +1 -1
  401. package/esm/chart/gauge/interface.d.ts +1 -1
  402. package/esm/chart/gauge/interface.js.map +1 -1
  403. package/esm/chart/mosaic/mosaic.d.ts +0 -1
  404. package/esm/chart/mosaic/mosaic.js +0 -3
  405. package/esm/chart/mosaic/mosaic.js.map +1 -1
  406. package/esm/chart/pie/interface.d.ts +2 -2
  407. package/esm/chart/pie/interface.js.map +1 -1
  408. package/esm/chart/polar/interface.d.ts +2 -0
  409. package/esm/chart/polar/interface.js.map +1 -1
  410. package/esm/chart/treemap/interface.d.ts +1 -1
  411. package/esm/chart/treemap/interface.js.map +1 -1
  412. package/esm/chart/venn/interface.d.ts +2 -2
  413. package/esm/chart/venn/interface.js.map +1 -1
  414. package/esm/compile/compiler.js +2 -1
  415. package/esm/compile/compiler.js.map +1 -1
  416. package/esm/compile/interface/compiler.d.ts +15 -0
  417. package/esm/compile/interface/compiler.js.map +1 -1
  418. package/esm/compile/mark/compilable-mark.d.ts +7 -39
  419. package/esm/compile/mark/compilable-mark.js +21 -90
  420. package/esm/compile/mark/compilable-mark.js.map +1 -1
  421. package/esm/compile/mark/interface.d.ts +5 -25
  422. package/esm/compile/mark/interface.js.map +1 -1
  423. package/esm/component/axis/base-axis.d.ts +2 -2
  424. package/esm/component/axis/base-axis.js +31 -22
  425. package/esm/component/axis/base-axis.js.map +1 -1
  426. package/esm/component/axis/cartesian/axis.d.ts +2 -0
  427. package/esm/component/axis/cartesian/axis.js +42 -9
  428. package/esm/component/axis/cartesian/axis.js.map +1 -1
  429. package/esm/component/axis/cartesian/interface/common.d.ts +1 -0
  430. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  431. package/esm/component/axis/interface/spec.d.ts +1 -0
  432. package/esm/component/axis/interface/spec.js.map +1 -1
  433. package/esm/component/axis/mixin/linear-axis-mixin.js +1 -1
  434. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  435. package/esm/component/axis/mixin/util/break-data.d.ts +1 -1
  436. package/esm/component/axis/mixin/util/break-data.js +35 -12
  437. package/esm/component/axis/mixin/util/break-data.js.map +1 -1
  438. package/esm/component/axis/polar/axis.d.ts +1 -1
  439. package/esm/component/axis/polar/axis.js +10 -37
  440. package/esm/component/axis/polar/axis.js.map +1 -1
  441. package/esm/component/axis/polar/interface/spec.d.ts +3 -1
  442. package/esm/component/axis/polar/interface/spec.js.map +1 -1
  443. package/esm/component/axis/polar/util/common.js +2 -2
  444. package/esm/component/axis/polar/util/common.js.map +1 -1
  445. package/esm/component/base/base-component.js +1 -3
  446. package/esm/component/base/base-component.js.map +1 -1
  447. package/esm/component/brush/brush.js +4 -8
  448. package/esm/component/brush/brush.js.map +1 -1
  449. package/esm/component/crosshair/cartesian.js +4 -18
  450. package/esm/component/crosshair/cartesian.js.map +1 -1
  451. package/esm/component/crosshair/polar.js +4 -18
  452. package/esm/component/crosshair/polar.js.map +1 -1
  453. package/esm/component/custom-mark/custom-mark.d.ts +1 -4
  454. package/esm/component/custom-mark/custom-mark.js +3 -30
  455. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  456. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -0
  457. package/esm/component/data-zoom/data-filter-base-component.js +28 -14
  458. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  459. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +0 -3
  460. package/esm/component/data-zoom/data-zoom/data-zoom.js +1 -20
  461. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  462. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -3
  463. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +6 -21
  464. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  465. package/esm/component/data-zoom/util.js +11 -2
  466. package/esm/component/data-zoom/util.js.map +1 -1
  467. package/esm/component/geo/geo-coordinate.d.ts +7 -0
  468. package/esm/component/geo/geo-coordinate.js +11 -3
  469. package/esm/component/geo/geo-coordinate.js.map +1 -1
  470. package/esm/component/indicator/indicator.js +4 -18
  471. package/esm/component/indicator/indicator.js.map +1 -1
  472. package/esm/component/interface/common.d.ts +1 -1
  473. package/esm/component/interface/common.js.map +1 -1
  474. package/esm/component/interface/index.d.ts +0 -1
  475. package/esm/component/interface/index.js +0 -2
  476. package/esm/component/interface/index.js.map +1 -1
  477. package/esm/component/label/base-label.d.ts +1 -2
  478. package/esm/component/label/base-label.js +0 -3
  479. package/esm/component/label/base-label.js.map +1 -1
  480. package/esm/component/label/interface.d.ts +2 -2
  481. package/esm/component/label/interface.js.map +1 -1
  482. package/esm/component/label/label.d.ts +0 -1
  483. package/esm/component/label/label.js +18 -23
  484. package/esm/component/label/label.js.map +1 -1
  485. package/esm/component/label/total-label.d.ts +1 -1
  486. package/esm/component/label/total-label.js +6 -14
  487. package/esm/component/label/total-label.js.map +1 -1
  488. package/esm/component/label/util.d.ts +5 -5
  489. package/esm/component/label/util.js +13 -8
  490. package/esm/component/label/util.js.map +1 -1
  491. package/esm/component/legend/continuous/legend.js +7 -18
  492. package/esm/component/legend/continuous/legend.js.map +1 -1
  493. package/esm/component/legend/discrete/legend.js +3 -19
  494. package/esm/component/legend/discrete/legend.js.map +1 -1
  495. package/esm/component/map-label/component.js +3 -7
  496. package/esm/component/map-label/component.js.map +1 -1
  497. package/esm/component/marker/base-marker.d.ts +4 -1
  498. package/esm/component/marker/base-marker.js +16 -19
  499. package/esm/component/marker/base-marker.js.map +1 -1
  500. package/esm/component/marker/interface.d.ts +9 -2
  501. package/esm/component/marker/interface.js.map +1 -1
  502. package/esm/component/marker/mark-area/base-mark-area.js +5 -5
  503. package/esm/component/marker/mark-area/base-mark-area.js.map +1 -1
  504. package/esm/component/marker/mark-line/base-mark-line.js +9 -9
  505. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  506. package/esm/component/marker/mark-point/base-mark-point.js +15 -15
  507. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  508. package/esm/component/marker/utils.d.ts +4 -4
  509. package/esm/component/marker/utils.js +8 -7
  510. package/esm/component/marker/utils.js.map +1 -1
  511. package/esm/component/player/player.d.ts +1 -3
  512. package/esm/component/player/player.js +1 -10
  513. package/esm/component/player/player.js.map +1 -1
  514. package/esm/component/title/interface/spec.d.ts +3 -3
  515. package/esm/component/title/interface/spec.js.map +1 -1
  516. package/esm/component/title/interface/theme.d.ts +1 -1
  517. package/esm/component/title/interface/theme.js.map +1 -1
  518. package/esm/component/title/title.js +23 -35
  519. package/esm/component/title/title.js.map +1 -1
  520. package/esm/component/tooltip/constant.d.ts +5 -4
  521. package/esm/component/tooltip/constant.js +6 -3
  522. package/esm/component/tooltip/constant.js.map +1 -1
  523. package/esm/component/tooltip/interface/common.d.ts +1 -1
  524. package/esm/component/tooltip/interface/common.js.map +1 -1
  525. package/esm/component/tooltip/interface/spec.d.ts +23 -3
  526. package/esm/component/tooltip/interface/spec.js.map +1 -1
  527. package/esm/component/tooltip/interface/theme.d.ts +2 -2
  528. package/esm/component/tooltip/interface/theme.js.map +1 -1
  529. package/esm/component/tooltip/processor/base.d.ts +3 -5
  530. package/esm/component/tooltip/processor/base.js +24 -28
  531. package/esm/component/tooltip/processor/base.js.map +1 -1
  532. package/esm/component/tooltip/processor/group-tooltip.js +1 -1
  533. package/esm/component/tooltip/processor/group-tooltip.js.map +1 -1
  534. package/esm/component/tooltip/processor/mark-tooltip.js +32 -4
  535. package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
  536. package/esm/component/tooltip/tooltip-transformer.js +2 -4
  537. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  538. package/esm/component/tooltip/tooltip.d.ts +13 -6
  539. package/esm/component/tooltip/tooltip.js +108 -84
  540. package/esm/component/tooltip/tooltip.js.map +1 -1
  541. package/esm/component/tooltip/utils/common.d.ts +6 -4
  542. package/esm/component/tooltip/utils/common.js +48 -5
  543. package/esm/component/tooltip/utils/common.js.map +1 -1
  544. package/esm/component/tooltip/utils/get-spec.d.ts +4 -4
  545. package/esm/component/tooltip/utils/get-spec.js +24 -80
  546. package/esm/component/tooltip/utils/get-spec.js.map +1 -1
  547. package/esm/component/tooltip/utils/get-value.d.ts +1 -2
  548. package/esm/component/tooltip/utils/get-value.js +1 -9
  549. package/esm/component/tooltip/utils/get-value.js.map +1 -1
  550. package/esm/component/tooltip/utils/index.d.ts +0 -1
  551. package/esm/component/tooltip/utils/index.js +0 -2
  552. package/esm/component/tooltip/utils/index.js.map +1 -1
  553. package/esm/component/util.d.ts +3 -0
  554. package/esm/component/util.js +14 -1
  555. package/esm/component/util.js.map +1 -1
  556. package/esm/core/factory.js +3 -1
  557. package/esm/core/factory.js.map +1 -1
  558. package/esm/core/index.d.ts +1 -1
  559. package/esm/core/index.js +1 -1
  560. package/esm/core/index.js.map +1 -1
  561. package/esm/core/vchart.d.ts +1 -1
  562. package/esm/core/vchart.js +33 -32
  563. package/esm/core/vchart.js.map +1 -1
  564. package/esm/data/initialize.d.ts +1 -2
  565. package/esm/data/initialize.js +6 -7
  566. package/esm/data/initialize.js.map +1 -1
  567. package/esm/data/transforms/pie.d.ts +3 -0
  568. package/esm/data/transforms/pie.js +6 -3
  569. package/esm/data/transforms/pie.js.map +1 -1
  570. package/esm/event/event-dispatcher.js +1 -9
  571. package/esm/event/event-dispatcher.js.map +1 -1
  572. package/esm/interaction/zoom/zoomable.js +2 -1
  573. package/esm/interaction/zoom/zoomable.js.map +1 -1
  574. package/esm/mark/base/base-line.js +3 -1
  575. package/esm/mark/base/base-line.js.map +1 -1
  576. package/esm/mark/base/base-mark.js +2 -2
  577. package/esm/mark/base/base-mark.js.map +1 -1
  578. package/esm/mark/group.js +1 -1
  579. package/esm/mark/group.js.map +1 -1
  580. package/esm/mark/interface/common.d.ts +10 -0
  581. package/esm/mark/interface/common.js.map +1 -1
  582. package/esm/model/base-model.d.ts +2 -2
  583. package/esm/model/base-model.js +2 -2
  584. package/esm/model/base-model.js.map +1 -1
  585. package/esm/model/interface.d.ts +14 -0
  586. package/esm/model/interface.js.map +1 -1
  587. package/esm/plugin/chart/media-query/media-query.d.ts +1 -0
  588. package/esm/plugin/chart/media-query/media-query.js +3 -1
  589. package/esm/plugin/chart/media-query/media-query.js.map +1 -1
  590. package/esm/plugin/chart/plugin-service.d.ts +2 -0
  591. package/esm/plugin/chart/plugin-service.js +5 -0
  592. package/esm/plugin/chart/plugin-service.js.map +1 -1
  593. package/esm/plugin/components/axis-sync/zero-align-transform.d.ts +1 -0
  594. package/esm/plugin/components/axis-sync/zero-align-transform.js +17 -4
  595. package/esm/plugin/components/axis-sync/zero-align-transform.js.map +1 -1
  596. package/esm/plugin/components/tooltip-handler/base.d.ts +1 -16
  597. package/esm/plugin/components/tooltip-handler/base.js +80 -220
  598. package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
  599. package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +1 -1
  600. package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
  601. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.d.ts +0 -1
  602. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +6 -19
  603. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  604. package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js +16 -14
  605. package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
  606. package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js +8 -3
  607. package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js.map +1 -1
  608. package/esm/plugin/components/tooltip-handler/dom/model/title-model.js +2 -2
  609. package/esm/plugin/components/tooltip-handler/dom/model/title-model.js.map +1 -1
  610. package/esm/plugin/components/tooltip-handler/interface/style.d.ts +1 -2
  611. package/esm/plugin/components/tooltip-handler/interface/style.js.map +1 -1
  612. package/esm/plugin/components/tooltip-handler/utils/attribute.js +7 -7
  613. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  614. package/esm/plugin/components/tooltip-handler/utils/common.js.map +1 -1
  615. package/esm/plugin/components/tooltip-handler/utils/position.d.ts +3 -5
  616. package/esm/plugin/components/tooltip-handler/utils/position.js +20 -25
  617. package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  618. package/esm/region/interface.d.ts +3 -1
  619. package/esm/region/interface.js.map +1 -1
  620. package/esm/region/region.js +10 -7
  621. package/esm/region/region.js.map +1 -1
  622. package/esm/series/area/area-transformer.js +1 -2
  623. package/esm/series/area/area-transformer.js.map +1 -1
  624. package/esm/series/area/area.d.ts +2 -0
  625. package/esm/series/area/area.js +51 -35
  626. package/esm/series/area/area.js.map +1 -1
  627. package/esm/series/bar/bar.d.ts +4 -4
  628. package/esm/series/bar/bar.js +67 -61
  629. package/esm/series/bar/bar.js.map +1 -1
  630. package/esm/series/base/base-series-transformer.js +7 -4
  631. package/esm/series/base/base-series-transformer.js.map +1 -1
  632. package/esm/series/base/base-series.d.ts +8 -7
  633. package/esm/series/base/base-series.js +45 -33
  634. package/esm/series/base/base-series.js.map +1 -1
  635. package/esm/series/base/constant.js +1 -0
  636. package/esm/series/base/constant.js.map +1 -1
  637. package/esm/series/base/tooltip-helper.d.ts +30 -6
  638. package/esm/series/base/tooltip-helper.js +85 -74
  639. package/esm/series/base/tooltip-helper.js.map +1 -1
  640. package/esm/series/box-plot/box-plot.d.ts +1 -0
  641. package/esm/series/box-plot/box-plot.js +9 -5
  642. package/esm/series/box-plot/box-plot.js.map +1 -1
  643. package/esm/series/box-plot/tooltip-helper.d.ts +2 -2
  644. package/esm/series/box-plot/tooltip-helper.js +26 -67
  645. package/esm/series/box-plot/tooltip-helper.js.map +1 -1
  646. package/esm/series/cartesian/cartesian.d.ts +1 -1
  647. package/esm/series/circle-packing/circle-packing.js +4 -4
  648. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  649. package/esm/series/correlation/correlation.d.ts +1 -0
  650. package/esm/series/correlation/correlation.js +16 -6
  651. package/esm/series/correlation/correlation.js.map +1 -1
  652. package/esm/series/dot/dot.d.ts +0 -1
  653. package/esm/series/dot/dot.js +7 -8
  654. package/esm/series/dot/dot.js.map +1 -1
  655. package/esm/series/dot/tooltip-helper.d.ts +8 -2
  656. package/esm/series/dot/tooltip-helper.js +42 -41
  657. package/esm/series/dot/tooltip-helper.js.map +1 -1
  658. package/esm/series/funnel/3d/funnel-3d.js +2 -1
  659. package/esm/series/funnel/3d/funnel-3d.js.map +1 -1
  660. package/esm/series/funnel/funnel.d.ts +2 -0
  661. package/esm/series/funnel/funnel.js +35 -27
  662. package/esm/series/funnel/funnel.js.map +1 -1
  663. package/esm/series/funnel/interface.d.ts +3 -1
  664. package/esm/series/funnel/interface.js.map +1 -1
  665. package/esm/series/gauge/interface.d.ts +1 -1
  666. package/esm/series/gauge/interface.js.map +1 -1
  667. package/esm/series/gauge/pointer-tooltip-helper.d.ts +2 -1
  668. package/esm/series/gauge/pointer-tooltip-helper.js +2 -9
  669. package/esm/series/gauge/pointer-tooltip-helper.js.map +1 -1
  670. package/esm/series/heatmap/heatmap.js +10 -10
  671. package/esm/series/heatmap/heatmap.js.map +1 -1
  672. package/esm/series/heatmap/tooltip-helper.d.ts +2 -3
  673. package/esm/series/heatmap/tooltip-helper.js +2 -6
  674. package/esm/series/heatmap/tooltip-helper.js.map +1 -1
  675. package/esm/series/interface/common.d.ts +1 -9
  676. package/esm/series/interface/common.js.map +1 -1
  677. package/esm/series/interface/tooltip-helper.d.ts +5 -4
  678. package/esm/series/interface/tooltip-helper.js.map +1 -1
  679. package/esm/series/link/link.js +7 -3
  680. package/esm/series/link/link.js.map +1 -1
  681. package/esm/series/link/tooltip-helper.d.ts +5 -2
  682. package/esm/series/link/tooltip-helper.js +26 -27
  683. package/esm/series/link/tooltip-helper.js.map +1 -1
  684. package/esm/series/liquid/liquid.js +11 -6
  685. package/esm/series/liquid/liquid.js.map +1 -1
  686. package/esm/series/liquid/tooltip-helper.d.ts +4 -5
  687. package/esm/series/liquid/tooltip-helper.js +2 -22
  688. package/esm/series/liquid/tooltip-helper.js.map +1 -1
  689. package/esm/series/map/map.d.ts +1 -0
  690. package/esm/series/map/map.js +7 -2
  691. package/esm/series/map/map.js.map +1 -1
  692. package/esm/series/mixin/line-mixin.d.ts +2 -2
  693. package/esm/series/mixin/line-mixin.js +15 -14
  694. package/esm/series/mixin/line-mixin.js.map +1 -1
  695. package/esm/series/pie/3d/pie-3d.js +3 -1
  696. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  697. package/esm/series/pie/interface.d.ts +3 -3
  698. package/esm/series/pie/interface.js.map +1 -1
  699. package/esm/series/pie/pie.d.ts +1 -0
  700. package/esm/series/pie/pie.js +22 -11
  701. package/esm/series/pie/pie.js.map +1 -1
  702. package/esm/series/polar/animation.d.ts +9 -11
  703. package/esm/series/polar/animation.js +27 -35
  704. package/esm/series/polar/animation.js.map +1 -1
  705. package/esm/series/polar/polar.js +9 -1
  706. package/esm/series/polar/polar.js.map +1 -1
  707. package/esm/series/polar/progress-like/progress-like.js +28 -23
  708. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  709. package/esm/series/progress/circular/circular.js +6 -4
  710. package/esm/series/progress/circular/circular.js.map +1 -1
  711. package/esm/series/progress/linear/linear.js +10 -8
  712. package/esm/series/progress/linear/linear.js.map +1 -1
  713. package/esm/series/progress/linear/tooltip-helper.d.ts +2 -3
  714. package/esm/series/progress/linear/tooltip-helper.js +2 -11
  715. package/esm/series/progress/linear/tooltip-helper.js.map +1 -1
  716. package/esm/series/radar/animation.d.ts +0 -3
  717. package/esm/series/radar/animation.js +4 -4
  718. package/esm/series/radar/animation.js.map +1 -1
  719. package/esm/series/radar/radar.js +15 -11
  720. package/esm/series/radar/radar.js.map +1 -1
  721. package/esm/series/range-area/range-area.js +3 -2
  722. package/esm/series/range-area/range-area.js.map +1 -1
  723. package/esm/series/range-area/tooltip-helper.d.ts +1 -3
  724. package/esm/series/range-area/tooltip-helper.js +2 -50
  725. package/esm/series/range-area/tooltip-helper.js.map +1 -1
  726. package/esm/series/range-column/range-column.js +5 -4
  727. package/esm/series/range-column/range-column.js.map +1 -1
  728. package/esm/series/range-column/tooltip-helper.d.ts +1 -2
  729. package/esm/series/range-column/tooltip-helper.js +2 -19
  730. package/esm/series/range-column/tooltip-helper.js.map +1 -1
  731. package/esm/series/rose/rose.js +5 -4
  732. package/esm/series/rose/rose.js.map +1 -1
  733. package/esm/series/sankey/sankey.d.ts +2 -1
  734. package/esm/series/sankey/sankey.js +17 -6
  735. package/esm/series/sankey/sankey.js.map +1 -1
  736. package/esm/series/sankey/tooltip-helper.d.ts +3 -3
  737. package/esm/series/sankey/tooltip-helper.js +10 -57
  738. package/esm/series/sankey/tooltip-helper.js.map +1 -1
  739. package/esm/series/scatter/scatter.js +8 -10
  740. package/esm/series/scatter/scatter.js.map +1 -1
  741. package/esm/series/sunburst/sunburst.js +3 -2
  742. package/esm/series/sunburst/sunburst.js.map +1 -1
  743. package/esm/series/treemap/treemap.js +6 -4
  744. package/esm/series/treemap/treemap.js.map +1 -1
  745. package/esm/series/waterfall/waterfall.d.ts +1 -0
  746. package/esm/series/waterfall/waterfall.js +7 -2
  747. package/esm/series/waterfall/waterfall.js.map +1 -1
  748. package/esm/series/word-cloud/base.js +31 -17
  749. package/esm/series/word-cloud/base.js.map +1 -1
  750. package/esm/series/word-cloud/word-cloud-3d.js +2 -1
  751. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  752. package/esm/theme/builtin/common/component/title.js.map +1 -1
  753. package/esm/theme/builtin/common/mark.js +2 -0
  754. package/esm/theme/builtin/common/mark.js.map +1 -1
  755. package/esm/theme/builtin/common/series/linear-progress.js +4 -1
  756. package/esm/theme/builtin/common/series/linear-progress.js.map +1 -1
  757. package/esm/theme/builtin/dark/color-scheme.js +2 -1
  758. package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
  759. package/esm/theme/builtin/light/color-scheme.js +2 -1
  760. package/esm/theme/builtin/light/color-scheme.js.map +1 -1
  761. package/esm/typings/spec/common.d.ts +6 -3
  762. package/esm/typings/spec/common.js.map +1 -1
  763. package/esm/typings/tooltip/position.d.ts +1 -0
  764. package/esm/typings/tooltip/position.js.map +1 -1
  765. package/esm/typings/tooltip/shape.d.ts +0 -1
  766. package/esm/typings/tooltip/shape.js.map +1 -1
  767. package/esm/typings/tooltip/tooltip.d.ts +7 -0
  768. package/esm/typings/tooltip/tooltip.js.map +1 -1
  769. package/esm/util/array.js +2 -1
  770. package/esm/util/array.js.map +1 -1
  771. package/esm/util/math.d.ts +1 -0
  772. package/esm/util/math.js +4 -0
  773. package/esm/util/math.js.map +1 -1
  774. package/esm/util/scale.d.ts +1 -1
  775. package/esm/util/scale.js +2 -2
  776. package/esm/util/scale.js.map +1 -1
  777. package/package.json +18 -18
  778. package/cjs/component/interface/tooltip-helper.d.ts +0 -5
  779. package/cjs/component/interface/tooltip-helper.js +0 -6
  780. package/cjs/component/interface/tooltip-helper.js.map +0 -1
  781. package/cjs/component/tooltip/utils/compose.d.ts +0 -4
  782. package/cjs/component/tooltip/utils/compose.js +0 -120
  783. package/cjs/component/tooltip/utils/compose.js.map +0 -1
  784. package/cjs/model/tooltip-helper.d.ts +0 -29
  785. package/cjs/model/tooltip-helper.js +0 -19
  786. package/cjs/model/tooltip-helper.js.map +0 -1
  787. package/esm/component/interface/tooltip-helper.d.ts +0 -5
  788. package/esm/component/interface/tooltip-helper.js +0 -2
  789. package/esm/component/interface/tooltip-helper.js.map +0 -1
  790. package/esm/component/tooltip/utils/compose.d.ts +0 -4
  791. package/esm/component/tooltip/utils/compose.js +0 -105
  792. package/esm/component/tooltip/utils/compose.js.map +0 -1
  793. package/esm/model/tooltip-helper.d.ts +0 -29
  794. package/esm/model/tooltip-helper.js +0 -11
  795. package/esm/model/tooltip-helper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/initialize.ts"],"names":[],"mappings":"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","file":"initialize.js","sourcesContent":["import type { utilFunctionCtx } from '../typings/params';\nimport { warn, error } from '../util/debug';\nimport { isString, merge, cloneDeep } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, DataView } from '@visactor/vdataset';\nimport type { IDataViewOptions, IFields, ITransformOptions } from '@visactor/vdataset';\nimport type { IDataValues, SheetParseOptions } from '../typings/spec/common';\nimport { registerDataSetInstanceTransform } from './register';\nimport { copyDataView } from './transforms/copy-data-view';\nimport type { IParserOptions } from '@visactor/vdataset';\n\nexport function initializeData() {\n // todo\n}\n\nexport function initCSVData() {\n // todo\n}\n\nexport function initData() {\n // todo\n}\n\nexport function initFoldData() {\n // todo\n}\n\nexport function dataViewFromDataView(rawData: DataView, dataSet?: DataSet, op?: IDataViewOptions) {\n dataSet = dataSet instanceof DataSet ? dataSet : rawData.dataSet;\n registerDataSetInstanceTransform(dataSet, 'copyDataView', copyDataView);\n const viewData = new DataView(dataSet, op);\n viewData.parse([rawData], {\n type: 'dataview'\n });\n viewData.transform({\n type: 'copyDataView',\n level: TransformLevel.copyDataView\n });\n return viewData;\n}\n\n/**\n * 将数据实例化为 DataView\n * @param data 数据\n * @param dataSet 数据集\n * @returns\n */\nexport function dataToDataView(\n data: DataView | IDataValues,\n dataSet: DataSet,\n sourceDataViews: DataView[] = [],\n ctx: utilFunctionCtx = {}\n) {\n if (data instanceof DataView) {\n return data;\n }\n\n const { id, values = [], fromDataIndex, fromDataId, transforms = [] } = data;\n const parser = (data.parser ? cloneDeep(data.parser) : { clone: true }) as IParserOptions;\n const fields = cloneDeep(data.fields);\n // set parser.clone default value to true\n parser.clone = !(parser.clone === false);\n let dataView: DataView;\n const existDataView = sourceDataViews.find(dv => dv.name === id);\n if (existDataView) {\n dataView = existDataView;\n } else {\n const initOption: IDataViewOptions = { name: id };\n // fields 支持在dataView初始化参数中传入\n if (fields) {\n initOption.fields = fields as IFields;\n }\n dataView = new DataView(dataSet, initOption);\n if (typeof fromDataId === 'string') {\n // 使用id查找上游dataview\n const fromDataView = sourceDataViews.find(dv => dv.name === fromDataId);\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataId ${fromDataId}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (typeof fromDataIndex === 'number') {\n // 使用index查找上游dataview\n const fromDataView = sourceDataViews[fromDataIndex];\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataIndex ${fromDataIndex}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (Array.isArray(values)) {\n dataView.parse(values, parser);\n } else if (isString(values) && (!parser || ['csv', 'dsv', 'tsv'].includes((parser as SheetParseOptions).type))) {\n // 内置 csv parser\n dataView.parse(values, (parser as SheetParseOptions) ?? { type: 'csv' });\n } else {\n // 如果 values 不符合要求,则默认设置为 [],同时打印错误信息\n dataView.parse([]);\n warn('values should be array');\n }\n // 处理transform\n if (transforms && transforms.length) {\n transforms.forEach((transform: ITransformOptions) => {\n if (dataSet.getTransform(transform.type)) {\n dataView.transform(transform);\n }\n });\n }\n }\n\n return dataView;\n}\n\nexport function updateDataViewInData(dataView: DataView, data: IDataValues, forceMerge: boolean) {\n if (!dataView) {\n return;\n }\n if (data.fields) {\n dataView.setFields(data.fields as any, forceMerge);\n }\n dataView.parseNewData(data.values, data.parser as any);\n}\n\nexport enum TransformLevel {\n copyDataView = -10,\n\n treemapFilter = -8,\n treemapFlatten = -7,\n\n dotObjFlat = -7,\n linkDotInfo = -7,\n sankeyLayout = -7,\n\n dataZoomFilter = -6,\n legendFilter = -5\n}\n"]}
1
+ {"version":3,"sources":["../src/data/initialize.ts"],"names":[],"mappings":"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","file":"initialize.js","sourcesContent":["import { warn } from '../util/debug';\nimport { isString, cloneDeep } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, DataView } from '@visactor/vdataset';\nimport type { IDataViewOptions, IFields, ITransformOptions } from '@visactor/vdataset';\nimport type { IDataValues, SheetParseOptions } from '../typings/spec/common';\nimport { registerDataSetInstanceTransform } from './register';\nimport { copyDataView } from './transforms/copy-data-view';\nimport type { IParserOptions } from '@visactor/vdataset';\n\nexport function initializeData() {\n // todo\n}\n\nexport function initCSVData() {\n // todo\n}\n\nexport function initData() {\n // todo\n}\n\nexport function initFoldData() {\n // todo\n}\n\nexport function dataViewFromDataView(rawData: DataView, dataSet?: DataSet, op?: IDataViewOptions) {\n dataSet = dataSet instanceof DataSet ? dataSet : rawData.dataSet;\n registerDataSetInstanceTransform(dataSet, 'copyDataView', copyDataView);\n const viewData = new DataView(dataSet, op);\n viewData.parse([rawData], {\n type: 'dataview'\n });\n viewData.transform({\n type: 'copyDataView',\n level: TransformLevel.copyDataView\n });\n return viewData;\n}\n\n/**\n * 将数据实例化为 DataView\n * @param data 数据\n * @param dataSet 数据集\n * @returns\n */\nexport function dataToDataView(data: DataView | IDataValues, dataSet: DataSet, sourceDataViews: DataView[] = []) {\n if (data instanceof DataView) {\n return data;\n }\n\n const { id, values = [], fromDataIndex, fromDataId, transforms = [] } = data;\n const parser = (data.parser ? cloneDeep(data.parser) : { clone: true }) as IParserOptions;\n const fields = cloneDeep(data.fields);\n // set parser.clone default value to true\n parser.clone = !(parser.clone === false);\n let dataView: DataView;\n const existDataView = sourceDataViews.find(dv => dv.name === id);\n if (existDataView) {\n dataView = existDataView;\n } else {\n const initOption: IDataViewOptions = { name: id };\n // fields 支持在dataView初始化参数中传入\n if (fields) {\n initOption.fields = fields as IFields;\n }\n dataView = new DataView(dataSet, initOption);\n if (typeof fromDataId === 'string') {\n // 使用id查找上游dataview\n const fromDataView = sourceDataViews.find(dv => dv.name === fromDataId);\n if (!fromDataView) {\n warn(`no data matches fromDataId ${fromDataId}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (typeof fromDataIndex === 'number') {\n // 使用index查找上游dataview\n const fromDataView = sourceDataViews[fromDataIndex];\n if (!fromDataView) {\n warn(`no data matches fromDataIndex ${fromDataIndex}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (Array.isArray(values)) {\n dataView.parse(values, parser);\n } else if (isString(values) && (!parser || ['csv', 'dsv', 'tsv'].includes((parser as SheetParseOptions).type))) {\n // 内置 csv parser\n dataView.parse(values, (parser as SheetParseOptions) ?? { type: 'csv' });\n } else {\n // 如果 values 不符合要求,则默认设置为 [],同时打印错误信息\n dataView.parse([]);\n warn('values should be array');\n }\n // 处理transform\n if (transforms && transforms.length) {\n transforms.forEach((transform: ITransformOptions) => {\n if (dataSet.getTransform(transform.type)) {\n dataView.transform(transform);\n }\n });\n }\n }\n\n return dataView;\n}\n\nexport function updateDataViewInData(dataView: DataView, data: IDataValues, forceMerge: boolean) {\n if (!dataView) {\n return;\n }\n if (data.fields) {\n dataView.setFields(data.fields as any, forceMerge);\n }\n dataView.parseNewData(data.values, data.parser as any);\n}\n\nexport enum TransformLevel {\n copyDataView = -10,\n\n treemapFilter = -8,\n treemapFlatten = -7,\n\n dotObjFlat = -7,\n linkDotInfo = -7,\n sankeyLayout = -7,\n\n dataZoomFilter = -6,\n legendFilter = -5\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { DataView } from '@visactor/vdataset';
2
+ import type { Datum } from '../../typings';
2
3
  export interface IPieOpt {
3
4
  angleField: () => string;
4
5
  startAngle: () => number;
@@ -13,7 +14,9 @@ export interface IPieOpt {
13
14
  asK: string;
14
15
  showAllZero: boolean;
15
16
  supportNegative: boolean;
17
+ showEmptyCircle: boolean;
16
18
  }
17
19
  export declare const pie: (originData: Array<DataView>, op: IPieOpt) => {
18
20
  [x: string]: any;
19
21
  }[];
22
+ export declare const isDataEmpty: (data: Datum[], angleField: string, supportNegative: boolean) => boolean;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.pie = void 0;
5
+ }), exports.isDataEmpty = exports.pie = void 0;
6
6
 
7
7
  const type_1 = require("../../util/type"), math_1 = require("../../util/math"), polar_1 = require("../../constant/polar"), vutils_1 = require("@visactor/vutils");
8
8
 
@@ -11,9 +11,10 @@ function transformInvalidValue(value) {
11
11
  }
12
12
 
13
13
  const pie = (originData, op) => {
14
- const data = originData.map((datum => Object.assign({}, datum)));
14
+ const {asStartAngle: asStartAngle, asEndAngle: asEndAngle, asMiddleAngle: asMiddleAngle, asRadian: asRadian, asRatio: asRatio, asQuadrant: asQuadrant, asK: asK, showAllZero: showAllZero, supportNegative: supportNegative, showEmptyCircle: showEmptyCircle} = op, angleField = op.angleField(), startAngle = op.startAngle(), endAngle = op.endAngle(), minAngle = op.minAngle(), data = originData.map((datum => Object.assign({}, datum)));
15
15
  if (!data || 0 === data.length) return data;
16
- const {asStartAngle: asStartAngle, asEndAngle: asEndAngle, asMiddleAngle: asMiddleAngle, asRadian: asRadian, asRatio: asRatio, asQuadrant: asQuadrant, asK: asK, showAllZero: showAllZero, supportNegative: supportNegative} = op, angleField = op.angleField(), startAngle = op.startAngle(), endAngle = op.endAngle(), minAngle = op.minAngle(), appendArcInfo = (data, startAngle, angle) => {
16
+ if (!showAllZero && showEmptyCircle && (0, exports.isDataEmpty)(data, angleField, supportNegative)) return data;
17
+ const appendArcInfo = (data, startAngle, angle) => {
17
18
  data[asStartAngle] = startAngle, data[asEndAngle] = startAngle + angle, data[asMiddleAngle] = startAngle + angle / 2,
18
19
  data[asRadian] = angle, data[asQuadrant] = (0, vutils_1.computeQuadrant)(startAngle + angle / 2);
19
20
  };
@@ -55,4 +56,8 @@ const pie = (originData, op) => {
55
56
  };
56
57
 
57
58
  exports.pie = pie;
59
+
60
+ const isDataEmpty = (data, angleField, supportNegative) => !!(0, vutils_1.isNil)(data) || (0 === data.length || (!!data.every((datum => 0 === transformInvalidValue(datum[angleField]))) || !supportNegative && 0 === data.reduce(((sum, datum) => sum + transformInvalidValue(datum[angleField])), 0)));
61
+
62
+ exports.isDataEmpty = isDataEmpty;
58
63
  //# sourceMappingURL=pie.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\nimport { couldBeValidNumber } from '../../util/type';\nimport { getPercentValue } from '../../util/math';\nimport { ARC_TRANSFORM_VALUE } from '../../constant/polar';\nimport { computeQuadrant } from '@visactor/vutils';\n\nexport interface IPieOpt {\n angleField: () => string;\n startAngle: () => number;\n endAngle: () => number;\n minAngle: () => number;\n\n asStartAngle: string;\n asEndAngle: string;\n asMiddleAngle: string;\n asRadian: string;\n asRatio: string;\n asQuadrant: string;\n asK: string;\n showAllZero: boolean;\n supportNegative: boolean;\n}\n\nfunction transformInvalidValue(value: any) {\n if (!couldBeValidNumber(value)) {\n return 0;\n }\n return Number.parseFloat(value);\n}\n\nexport const pie = (originData: Array<DataView>, op: IPieOpt) => {\n const data = originData.map((datum: Datum) => ({ ...datum }));\n if (!data || data.length === 0) {\n return data;\n }\n const { asStartAngle, asEndAngle, asMiddleAngle, asRadian, asRatio, asQuadrant, asK, showAllZero, supportNegative } =\n op;\n\n const angleField = op.angleField();\n const startAngle = op.startAngle();\n const endAngle = op.endAngle();\n const minAngle = op.minAngle();\n\n const appendArcInfo = (data: Datum, startAngle: number, angle: number) => {\n data[asStartAngle] = startAngle;\n data[asEndAngle] = startAngle + angle;\n data[asMiddleAngle] = startAngle + angle / 2;\n data[asRadian] = angle;\n data[asQuadrant] = computeQuadrant(startAngle + angle / 2);\n };\n\n let total = 0;\n let max = -Infinity;\n let isAllZero = true;\n for (let index = 0; index < data.length; index++) {\n const angleFieldValue = supportNegative\n ? Math.abs(transformInvalidValue(data[index][angleField]))\n : transformInvalidValue(data[index][angleField]);\n total += angleFieldValue;\n max = Math.max(angleFieldValue, max);\n if (isAllZero && angleFieldValue !== 0) {\n isAllZero = false;\n }\n\n data[index][ARC_TRANSFORM_VALUE] = angleFieldValue;\n }\n\n const valueList = data.map(d => Number(d[angleField]));\n const angleRange = endAngle - startAngle;\n let lastAngle = startAngle;\n let restAngle = angleRange;\n let largeThanMinAngleTotal = 0;\n const percents = getPercentValue(valueList);\n\n data.forEach((d, i) => {\n const angleFieldValue = d[ARC_TRANSFORM_VALUE];\n const ratio = total ? angleFieldValue / total : 0;\n let radian = ratio * angleRange;\n\n if (radian < minAngle) {\n radian = minAngle;\n restAngle -= minAngle;\n } else {\n largeThanMinAngleTotal += angleFieldValue;\n }\n\n const dStartAngle = lastAngle;\n const dEndAngle = lastAngle + radian;\n\n d[asRatio] = ratio;\n d[asK] = max ? angleFieldValue / max : 0;\n d._percent_ = (percents as number[])[i];\n appendArcInfo(d, dStartAngle, radian);\n\n lastAngle = dEndAngle;\n });\n\n if (restAngle < angleRange) {\n if (restAngle <= 1e-3) {\n const angle = angleRange / data.length;\n data.forEach((d, index) => {\n appendArcInfo(d, startAngle + index * angle, angle);\n });\n } else {\n const unitRadian = restAngle / largeThanMinAngleTotal;\n lastAngle = startAngle;\n data.forEach(d => {\n const angle = d[asRadian] === minAngle ? minAngle : d[ARC_TRANSFORM_VALUE] * unitRadian;\n appendArcInfo(d, lastAngle, angle);\n\n lastAngle += angle;\n });\n }\n }\n\n if (total !== 0) {\n // 数据都为 0 时,起始角和结束角相同,不应该强制赋值\n // 防止一个扇区的角度会因为浮点数精度问题和传入的 endAngle 不相等\n data[data.length - 1][asEndAngle] = endAngle;\n }\n\n if (isAllZero && showAllZero) {\n const angle = angleRange / data.length;\n data.forEach((d, index) => {\n appendArcInfo(d, startAngle + index * angle, angle);\n });\n }\n return data;\n};\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\nimport { couldBeValidNumber } from '../../util/type';\nimport { getPercentValue } from '../../util/math';\nimport { ARC_TRANSFORM_VALUE } from '../../constant/polar';\nimport { computeQuadrant, isNil } from '@visactor/vutils';\n\nexport interface IPieOpt {\n angleField: () => string;\n startAngle: () => number;\n endAngle: () => number;\n minAngle: () => number;\n\n asStartAngle: string;\n asEndAngle: string;\n asMiddleAngle: string;\n asRadian: string;\n asRatio: string;\n asQuadrant: string;\n asK: string;\n showAllZero: boolean;\n supportNegative: boolean;\n showEmptyCircle: boolean;\n}\n\nfunction transformInvalidValue(value: any) {\n if (!couldBeValidNumber(value)) {\n return 0;\n }\n return Number.parseFloat(value);\n}\n\nexport const pie = (originData: Array<DataView>, op: IPieOpt) => {\n const {\n asStartAngle,\n asEndAngle,\n asMiddleAngle,\n asRadian,\n asRatio,\n asQuadrant,\n asK,\n showAllZero,\n supportNegative,\n showEmptyCircle\n } = op;\n\n const angleField = op.angleField();\n const startAngle = op.startAngle();\n const endAngle = op.endAngle();\n const minAngle = op.minAngle();\n\n const data = originData.map((datum: Datum) => ({ ...datum }));\n if (!data || data.length === 0) {\n return data;\n }\n\n if (!showAllZero && showEmptyCircle && isDataEmpty(data, angleField, supportNegative)) {\n return data;\n }\n\n const appendArcInfo = (data: Datum, startAngle: number, angle: number) => {\n data[asStartAngle] = startAngle;\n data[asEndAngle] = startAngle + angle;\n data[asMiddleAngle] = startAngle + angle / 2;\n data[asRadian] = angle;\n data[asQuadrant] = computeQuadrant(startAngle + angle / 2);\n };\n\n let total = 0;\n let max = -Infinity;\n let isAllZero = true;\n for (let index = 0; index < data.length; index++) {\n const angleFieldValue = supportNegative\n ? Math.abs(transformInvalidValue(data[index][angleField]))\n : transformInvalidValue(data[index][angleField]);\n total += angleFieldValue;\n max = Math.max(angleFieldValue, max);\n if (isAllZero && angleFieldValue !== 0) {\n isAllZero = false;\n }\n\n data[index][ARC_TRANSFORM_VALUE] = angleFieldValue;\n }\n\n const valueList = data.map(d => Number(d[angleField]));\n const angleRange = endAngle - startAngle;\n let lastAngle = startAngle;\n let restAngle = angleRange;\n let largeThanMinAngleTotal = 0;\n const percents = getPercentValue(valueList);\n\n data.forEach((d, i) => {\n const angleFieldValue = d[ARC_TRANSFORM_VALUE];\n const ratio = total ? angleFieldValue / total : 0;\n let radian = ratio * angleRange;\n\n if (radian < minAngle) {\n radian = minAngle;\n restAngle -= minAngle;\n } else {\n largeThanMinAngleTotal += angleFieldValue;\n }\n\n const dStartAngle = lastAngle;\n const dEndAngle = lastAngle + radian;\n\n d[asRatio] = ratio;\n d[asK] = max ? angleFieldValue / max : 0;\n d._percent_ = (percents as number[])[i];\n appendArcInfo(d, dStartAngle, radian);\n\n lastAngle = dEndAngle;\n });\n\n if (restAngle < angleRange) {\n if (restAngle <= 1e-3) {\n const angle = angleRange / data.length;\n data.forEach((d, index) => {\n appendArcInfo(d, startAngle + index * angle, angle);\n });\n } else {\n const unitRadian = restAngle / largeThanMinAngleTotal;\n lastAngle = startAngle;\n data.forEach(d => {\n const angle = d[asRadian] === minAngle ? minAngle : d[ARC_TRANSFORM_VALUE] * unitRadian;\n appendArcInfo(d, lastAngle, angle);\n\n lastAngle += angle;\n });\n }\n }\n\n if (total !== 0) {\n // 数据都为 0 时,起始角和结束角相同,不应该强制赋值\n // 防止一个扇区的角度会因为浮点数精度问题和传入的 endAngle 不相等\n data[data.length - 1][asEndAngle] = endAngle;\n }\n\n if (isAllZero && showAllZero) {\n const angle = angleRange / data.length;\n data.forEach((d, index) => {\n appendArcInfo(d, startAngle + index * angle, angle);\n });\n }\n return data;\n};\n\nexport const isDataEmpty = (data: Datum[], angleField: string, supportNegative: boolean) => {\n if (isNil(data)) {\n return true;\n }\n if (data.length === 0) {\n return true;\n }\n if (data.every(datum => transformInvalidValue(datum[angleField]) === 0)) {\n return true;\n }\n // 未支持负数, 并且和为0, 则也认为是空数据\n if (!supportNegative && data.reduce((sum, datum) => sum + transformInvalidValue(datum[angleField]), 0) === 0) {\n return true;\n }\n\n return false;\n};\n"]}
@@ -15,15 +15,7 @@ const bubble_1 = require("./bubble"), vutils_1 = require("@visactor/vutils"), ev
15
15
  discreteLegend: "legend",
16
16
  continuousLegend: "legend",
17
17
  colorLegend: "legend",
18
- sizeLegend: "legend",
19
- label: "label",
20
- markLine: "markLine",
21
- markArea: "markArea",
22
- markPoint: "markPoint",
23
- polarMarkLine: "polarMarkLine",
24
- polarMarkArea: "polarMarkArea",
25
- polarMarkPoint: "polarMarkPoint",
26
- geoMarkPoint: "geoMarkPoint"
18
+ sizeLegend: "legend"
27
19
  };
28
20
 
29
21
  class EventDispatcher {
@@ -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 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"]}
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: Record<string, string> = {\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 // 组件的 type 如果没有细化的分类,不需要在这里进行映射\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"]}
@@ -26,7 +26,8 @@ class Zoomable {
26
26
  if (!this._isGestureListener && !params.event) return;
27
27
  const event = this._isGestureListener ? params : params.event.clone();
28
28
  this._zoomableTrigger.parserZoomEvent(event);
29
- const {zoomDelta: zoomDelta, zoomX: zoomX, zoomY: zoomY} = event;
29
+ const {zoomDelta: zoomDelta, zoomX: zoomX, zoomY: zoomY, path: path} = event;
30
+ if (!path.some((node => node.name && node.name.includes("region")))) return;
30
31
  if ((0, vutils_1.isNil)(zoomDelta)) return;
31
32
  if (!(0, vutils_1.pointInRect)({
32
33
  x: zoomX,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/zoom/zoomable.ts"],"names":[],"mappings":"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","file":"zoomable.js","sourcesContent":["import type { IModelOption } from './../../model/interface';\n/* eslint-disable no-duplicate-imports */\nimport { debounce, isNil, pointInRect, throttle } from '@visactor/vutils';\nimport type { BaseEventParams, EventQuery, EventType, ExtendEventParam, IEvent } from '../../event/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport { getDefaultTriggerEventByMode } from '../../component/common/trigger/config';\nimport type { IZoomTrigger } from '../../component/common/trigger/interface';\nimport type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant/event';\nimport type { IDelayType } from '../../typings/event';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../../util';\nimport type { Gesture } from '@visactor/vrender-kits';\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nexport interface ITriggerOption {\n delayType: IDelayType;\n delayTime: number;\n realTime: boolean;\n}\n\nexport type ZoomEventParams = { zoomDelta: number; zoomX: number; zoomY: number };\n\nexport type ZoomCallback = (params: ZoomEventParams, e: BaseEventParams['event']) => Record<string, any> | void;\n\nexport interface IZoomable {\n initZoomable: (evt: IEvent, mode?: RenderMode) => void;\n initZoomEventOfSeries: (s: ISeries, callback?: ZoomCallback) => any;\n initZoomEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: ZoomCallback,\n option?: ITriggerOption\n ) => void;\n\n initScrollEventOfSeries: (\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initScrollEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initDragEventOfSeries: (\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => any;\n\n initDragEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n}\n\nexport class Zoomable implements IZoomable {\n private _clickEnable: boolean;\n\n private _option: IModelOption;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n private _gestureController!: Gesture | null;\n\n private _isGestureListener: boolean = false;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n this._gestureController = (this._option.getChart().getVGrammarView().renderer as any)._gestureController;\n this._isGestureListener = isMobileLikeMode(this._renderMode) || isMiniAppLikeMode(this._renderMode);\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n\n // 只在drag时屏蔽,而zoom、scrol时不屏蔽\n // drag move: 屏蔽\n // darg end 结束屏蔽\n // 屏蔽时:clickEnable应该为false,即其他逻辑不允许响应click\n this._clickEnable = true;\n this._zoomableTrigger = new (this._getZoomTriggerEvent('trigger') as any)();\n }\n }\n\n // event\n private _getZoomTriggerEvent(type: string): EventType {\n return getDefaultTriggerEventByMode(this._renderMode)[type];\n }\n\n private _zoomEventDispatch(params: BaseEventParams, regionOrSeries: IRegion | ISeries, callback?: ZoomCallback) {\n if (!this._isGestureListener && !params.event) {\n return;\n }\n const event = this._isGestureListener ? params : params.event.clone();\n this._zoomableTrigger.parserZoomEvent(event);\n // FIXME: event类型目前不全\n const { zoomDelta, zoomX, zoomY } = event as any;\n if (isNil(zoomDelta)) {\n return;\n }\n if (\n !pointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n )\n ) {\n return;\n }\n let extendParams: ReturnType<typeof callback> = {};\n if (callback) {\n extendParams = callback({ zoomDelta, zoomX, zoomY }, event);\n }\n this._eventObj.emit('zoom', {\n scale: event.zoomDelta,\n scaleCenter: { x: event.zoomX, y: event.zoomY },\n ...extendParams,\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _getRegionOrSeriesLayout(rs: IRegion | ISeries) {\n if (rs.type !== 'region') {\n rs = (<ISeries>rs).getRegion();\n }\n const { x, y, width, height } = rs.layout.getLayout();\n return {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n };\n }\n\n private _bindZoomEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: ZoomCallback,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n const event = this._isGestureListener ? this._gestureController : eventObj;\n const zoomParams = this._isGestureListener\n ? [this._getZoomTriggerEvent('zoom')]\n : [this._getZoomTriggerEvent('zoom'), { level: Event_Bubble_Level.chart, consume: true }];\n const zoomEndParams: [string] | [string, EventQuery] = this._isGestureListener\n ? [this._getZoomTriggerEvent('zoomEnd')]\n : [this._getZoomTriggerEvent('zoomEnd'), { level: Event_Bubble_Level.chart, consume: false }];\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n (event as any).on(\n ...zoomEndParams,\n delayMap[delayType]((params: BaseEventParams) => {\n this._zoomableTrigger.clearZoom();\n }, delayTime) as any\n );\n\n (event as any).on(\n ...zoomParams,\n delayMap[delayType]((params: BaseEventParams) => {\n // if (realTime) {\n this._zoomEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime) as any\n );\n }\n\n initZoomEventOfSeries(s: ISeries, callback?: ZoomCallback, option?: ITriggerOption) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initZoomEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: ZoomCallback,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindZoomEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _scrollEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => any\n ) {\n let stopBubble: boolean | undefined = false;\n if (!this._isGestureListener && (!params.event || this._option.disableTriggerEvent)) {\n return stopBubble;\n }\n const event = this._isGestureListener ? params : params.event;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY, canvasX, canvasY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return stopBubble;\n }\n if (\n !pointInRect(\n {\n x: canvasX,\n y: canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n )\n ) {\n return stopBubble;\n }\n\n if (callback) {\n stopBubble = callback({ scrollX, scrollY }, event as any);\n }\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n\n return stopBubble;\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => any,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n const event = this._isGestureListener ? this._gestureController : eventObj;\n const scrollParams = this._isGestureListener\n ? [this._getZoomTriggerEvent('scroll')]\n : [this._getZoomTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }];\n const scrollEndParams = this._isGestureListener\n ? [this._getZoomTriggerEvent('scrollEnd')]\n : [this._getZoomTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }];\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n (event as any).on(\n ...scrollEndParams,\n delayMap[delayType]((params: any) => {\n this._zoomableTrigger.clearScroll();\n }, delayTime)\n );\n\n (event as any).on(\n ...scrollParams,\n delayMap[delayType]((params: any) => {\n // if (realTime) {\n return this._scrollEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime)\n );\n }\n\n initScrollEventOfSeries(\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initScrollEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindScrollEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _bindDragEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n eventObj.on(this._getZoomTriggerEvent('start'), { level: Event_Bubble_Level.chart }, (params: any) => {\n if (!params.event) {\n return;\n }\n\n const { event } = params;\n const shouldTrigger = pointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n );\n if (shouldTrigger) {\n this._handleDrag(params, callback, option);\n }\n });\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n\n // 只在drag时屏蔽,而zoom、scrol时不屏蔽\n // drag move: 屏蔽\n // darg end 结束屏蔽\n // 屏蔽时:clickEnable应该为false,即其他逻辑不允许响应click\n eventObj.on('click', { level: Event_Bubble_Level.chart }, () => {\n return !this._clickEnable;\n });\n }\n\n initDragEventOfSeries(\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n s.event.on(\n this._getZoomTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback, option);\n }\n );\n }\n }\n\n initDragEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n s.event.on(\n this._getZoomTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n\n // 只在drag时屏蔽,而zoom、scrol时不屏蔽\n // drag move: 屏蔽\n // darg end 结束屏蔽\n // 屏蔽时:clickEnable应该为false,即其他逻辑不允许响应click\n s.event.on(\n 'click',\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n () => {\n return !this._clickEnable;\n }\n );\n }\n });\n } else {\n this._bindDragEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n protected _handleDrag(\n params: ExtendEventParam,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n this._clickEnable = false;\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n const realTime = option?.realTime ?? true;\n const move = this._getZoomTriggerEvent('move');\n const end = this._getZoomTriggerEvent('end');\n const event = params.event;\n let moveX = event.canvasX;\n let moveY = event.canvasY;\n let upX = event.canvasX;\n let upY = event.canvasY;\n\n const mouseup = delayMap[delayType]((params: BaseEventParams) => {\n this._clickEnable = true;\n const event = params.event as any;\n const dx = event.canvasX - upX;\n const dy = event.canvasY - upY;\n const delta: [number, number] = [dx, dy];\n\n upX = event.canvasX;\n upY = event.canvasY;\n\n if (!realTime && callback) {\n callback(delta, params.event);\n }\n\n this._eventObj.emit('panend', {\n delta,\n model: this\n } as unknown as BaseEventParams);\n this._zoomableTrigger.pointerId = null;\n this._eventObj.off(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup as any);\n this._eventObj.allow(end);\n }, delayTime);\n\n const mousemove = delayMap[delayType]((params: BaseEventParams) => {\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n this._clickEnable = false;\n this._eventObj.prevent(end, mouseup as any);\n\n const event = params.event;\n const dx = event.canvasX - moveX;\n const dy = event.canvasY - moveY;\n const delta: [number, number] = [dx, dy];\n\n moveX = event.canvasX;\n moveY = event.canvasY;\n\n if (realTime && callback) {\n callback(delta, params.event);\n }\n this._eventObj.emit('panmove', {\n delta,\n model: this\n } as unknown as ExtendEventParam);\n }, delayTime);\n\n this._eventObj.on(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup as any);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/interaction/zoom/zoomable.ts"],"names":[],"mappings":"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","file":"zoomable.js","sourcesContent":["import type { IModelOption } from './../../model/interface';\n/* eslint-disable no-duplicate-imports */\nimport { debounce, isNil, pointInRect, throttle } from '@visactor/vutils';\nimport type { BaseEventParams, EventQuery, EventType, ExtendEventParam, IEvent } from '../../event/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport { getDefaultTriggerEventByMode } from '../../component/common/trigger/config';\nimport type { IZoomTrigger } from '../../component/common/trigger/interface';\nimport type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant/event';\nimport type { IDelayType } from '../../typings/event';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../../util';\nimport type { Gesture } from '@visactor/vrender-kits';\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nexport interface ITriggerOption {\n delayType: IDelayType;\n delayTime: number;\n realTime: boolean;\n}\n\nexport type ZoomEventParams = { zoomDelta: number; zoomX: number; zoomY: number };\n\nexport type ZoomCallback = (params: ZoomEventParams, e: BaseEventParams['event']) => Record<string, any> | void;\n\nexport interface IZoomable {\n initZoomable: (evt: IEvent, mode?: RenderMode) => void;\n initZoomEventOfSeries: (s: ISeries, callback?: ZoomCallback) => any;\n initZoomEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: ZoomCallback,\n option?: ITriggerOption\n ) => void;\n\n initScrollEventOfSeries: (\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initScrollEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initDragEventOfSeries: (\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => any;\n\n initDragEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n}\n\nexport class Zoomable implements IZoomable {\n private _clickEnable: boolean;\n\n private _option: IModelOption;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n private _gestureController!: Gesture | null;\n\n private _isGestureListener: boolean = false;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n this._gestureController = (this._option.getChart().getVGrammarView().renderer as any)._gestureController;\n this._isGestureListener = isMobileLikeMode(this._renderMode) || isMiniAppLikeMode(this._renderMode);\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n\n // 只在drag时屏蔽,而zoom、scrol时不屏蔽\n // drag move: 屏蔽\n // darg end 结束屏蔽\n // 屏蔽时:clickEnable应该为false,即其他逻辑不允许响应click\n this._clickEnable = true;\n this._zoomableTrigger = new (this._getZoomTriggerEvent('trigger') as any)();\n }\n }\n\n // event\n private _getZoomTriggerEvent(type: string): EventType {\n return getDefaultTriggerEventByMode(this._renderMode)[type];\n }\n\n private _zoomEventDispatch(params: BaseEventParams, regionOrSeries: IRegion | ISeries, callback?: ZoomCallback) {\n if (!this._isGestureListener && !params.event) {\n return;\n }\n const event = this._isGestureListener ? params : params.event.clone();\n this._zoomableTrigger.parserZoomEvent(event);\n // FIXME: event类型目前不全\n const { zoomDelta, zoomX, zoomY, path } = event as any;\n\n // 不响应由组件触发的 zoom 事件(例如滚动分页的离散图例)\n if (!path.some((node: any) => node.name && node.name.includes('region'))) {\n return;\n }\n\n if (isNil(zoomDelta)) {\n return;\n }\n if (\n !pointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n )\n ) {\n return;\n }\n let extendParams: ReturnType<typeof callback> = {};\n if (callback) {\n extendParams = callback({ zoomDelta, zoomX, zoomY }, event);\n }\n this._eventObj.emit('zoom', {\n scale: event.zoomDelta,\n scaleCenter: { x: event.zoomX, y: event.zoomY },\n ...extendParams,\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _getRegionOrSeriesLayout(rs: IRegion | ISeries) {\n if (rs.type !== 'region') {\n rs = (<ISeries>rs).getRegion();\n }\n const { x, y, width, height } = rs.layout.getLayout();\n return {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n };\n }\n\n private _bindZoomEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: ZoomCallback,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n const event = this._isGestureListener ? this._gestureController : eventObj;\n const zoomParams = this._isGestureListener\n ? [this._getZoomTriggerEvent('zoom')]\n : [this._getZoomTriggerEvent('zoom'), { level: Event_Bubble_Level.chart, consume: true }];\n const zoomEndParams: [string] | [string, EventQuery] = this._isGestureListener\n ? [this._getZoomTriggerEvent('zoomEnd')]\n : [this._getZoomTriggerEvent('zoomEnd'), { level: Event_Bubble_Level.chart, consume: false }];\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n (event as any).on(\n ...zoomEndParams,\n delayMap[delayType]((params: BaseEventParams) => {\n this._zoomableTrigger.clearZoom();\n }, delayTime) as any\n );\n\n (event as any).on(\n ...zoomParams,\n delayMap[delayType]((params: BaseEventParams) => {\n // if (realTime) {\n this._zoomEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime) as any\n );\n }\n\n initZoomEventOfSeries(s: ISeries, callback?: ZoomCallback, option?: ITriggerOption) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initZoomEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: ZoomCallback,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindZoomEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _scrollEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => any\n ) {\n let stopBubble: boolean | undefined = false;\n if (!this._isGestureListener && (!params.event || this._option.disableTriggerEvent)) {\n return stopBubble;\n }\n const event = this._isGestureListener ? params : params.event;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY, canvasX, canvasY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return stopBubble;\n }\n if (\n !pointInRect(\n {\n x: canvasX,\n y: canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n )\n ) {\n return stopBubble;\n }\n\n if (callback) {\n stopBubble = callback({ scrollX, scrollY }, event as any);\n }\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n\n return stopBubble;\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => any,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n const event = this._isGestureListener ? this._gestureController : eventObj;\n const scrollParams = this._isGestureListener\n ? [this._getZoomTriggerEvent('scroll')]\n : [this._getZoomTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }];\n const scrollEndParams = this._isGestureListener\n ? [this._getZoomTriggerEvent('scrollEnd')]\n : [this._getZoomTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }];\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n (event as any).on(\n ...scrollEndParams,\n delayMap[delayType]((params: any) => {\n this._zoomableTrigger.clearScroll();\n }, delayTime)\n );\n\n (event as any).on(\n ...scrollParams,\n delayMap[delayType]((params: any) => {\n // if (realTime) {\n return this._scrollEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime)\n );\n }\n\n initScrollEventOfSeries(\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initScrollEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindScrollEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _bindDragEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n eventObj.on(this._getZoomTriggerEvent('start'), { level: Event_Bubble_Level.chart }, (params: any) => {\n if (!params.event) {\n return;\n }\n\n const { event } = params;\n const shouldTrigger = pointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n );\n if (shouldTrigger) {\n this._handleDrag(params, callback, option);\n }\n });\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n\n // 只在drag时屏蔽,而zoom、scrol时不屏蔽\n // drag move: 屏蔽\n // darg end 结束屏蔽\n // 屏蔽时:clickEnable应该为false,即其他逻辑不允许响应click\n eventObj.on('click', { level: Event_Bubble_Level.chart }, () => {\n return !this._clickEnable;\n });\n }\n\n initDragEventOfSeries(\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n s.event.on(\n this._getZoomTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback, option);\n }\n );\n }\n }\n\n initDragEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n s.event.on(\n this._getZoomTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n\n // 只在drag时屏蔽,而zoom、scrol时不屏蔽\n // drag move: 屏蔽\n // darg end 结束屏蔽\n // 屏蔽时:clickEnable应该为false,即其他逻辑不允许响应click\n s.event.on(\n 'click',\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n () => {\n return !this._clickEnable;\n }\n );\n }\n });\n } else {\n this._bindDragEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n protected _handleDrag(\n params: ExtendEventParam,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (this._option.disableTriggerEvent) {\n return;\n }\n this._clickEnable = false;\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n const realTime = option?.realTime ?? true;\n const move = this._getZoomTriggerEvent('move');\n const end = this._getZoomTriggerEvent('end');\n const event = params.event;\n let moveX = event.canvasX;\n let moveY = event.canvasY;\n let upX = event.canvasX;\n let upY = event.canvasY;\n\n const mouseup = delayMap[delayType]((params: BaseEventParams) => {\n this._clickEnable = true;\n const event = params.event as any;\n const dx = event.canvasX - upX;\n const dy = event.canvasY - upY;\n const delta: [number, number] = [dx, dy];\n\n upX = event.canvasX;\n upY = event.canvasY;\n\n if (!realTime && callback) {\n callback(delta, params.event);\n }\n\n this._eventObj.emit('panend', {\n delta,\n model: this\n } as unknown as BaseEventParams);\n this._zoomableTrigger.pointerId = null;\n this._eventObj.off(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup as any);\n this._eventObj.allow(end);\n }, delayTime);\n\n const mousemove = delayMap[delayType]((params: BaseEventParams) => {\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n this._clickEnable = false;\n this._eventObj.prevent(end, mouseup as any);\n\n const event = params.event;\n const dx = event.canvasX - moveX;\n const dy = event.canvasY - moveY;\n const delta: [number, number] = [dx, dy];\n\n moveX = event.canvasX;\n moveY = event.canvasY;\n\n if (realTime && callback) {\n callback(delta, params.event);\n }\n this._eventObj.emit('panmove', {\n delta,\n model: this\n } as unknown as ExtendEventParam);\n }, delayTime);\n\n this._eventObj.on(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup as any);\n }\n}\n"]}
@@ -19,7 +19,9 @@ class BaseLineMark extends base_mark_1.BaseMark {
19
19
  vutils_1.isFunction)(attrStyle)) && (enableSegments = !0);
20
20
  const styleConverter = this._filterAttribute(attr, attrStyle, state, level, isUserLevel, stateStyle);
21
21
  this.setAttribute(attr, styleConverter, state, level, stateStyle);
22
- })), enableSegments && this.setEnableSegments(enableSegments);
22
+ })), enableSegments && this.setMarkConfig({
23
+ enableSegments: !0
24
+ });
23
25
  }
24
26
  }
25
27
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/base/base-line.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAGpD,6CAA8D;AAC9D,2CAAsD;AAItD,MAAsB,YAA8D,SAAQ,oBAAW;IAWrG,QAAQ,CACN,KAAkE,EAClE,QAAwB,QAAQ,EAChC,QAAgB,CAAC,EACjB,UAAU,GAAG,IAAI,CAAC,UAAU;QAE5B,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,EAAE;YAChB,OAAO;SACR;QAED,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YACnC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACxB;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,MAAM,iBAAiB,GAAG;YACxB,aAAa;YACb,WAAW;YACX,UAAU;YACV,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,eAAe;YACf,SAAS;YACT,MAAM;YACN,aAAa;YACb,SAAS;YACT,gBAAgB;YAChB,aAAa;YACb,cAAc;SACf,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvD,OAAO;aACR;YACD,IACE,WAAW;gBACX,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC,IAAA,yBAAgB,EAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,KAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAA,IAAI,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC,EAChF;gBACA,cAAc,GAAG,IAAI,CAAC;aACvB;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAW,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAE5G,IAAI,CAAC,YAAY,CAAC,IAAW,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;SACxC;IACH,CAAC;CACF;AAjED,oCAiEC","file":"base-line.js","sourcesContent":["import { isValidScaleType } from '@visactor/vscale';\nimport type { StateValueType } from '../../compile/mark';\nimport type { ConvertToMarkStyleSpec, ILineLikeMarkSpec } from '../../typings/visual';\nimport { isFunction, isNil, isValid } from '@visactor/vutils';\nimport { BaseMark, ExChannelCall } from './base-mark';\nimport type { IMarkOption, IMarkStyle, StyleConvert } from '../interface';\nimport { Datum } from '../../typings';\n\nexport abstract class BaseLineMark<T extends ILineLikeMarkSpec = ILineLikeMarkSpec> extends BaseMark<T> {\n protected abstract _getIgnoreAttributes(): string[];\n\n /**\n * @override\n * 之所以覆写是因为 vgrammar 侧默认都会处理 lineSegments,非常耗性能,所以需要 VChart 给一个标志位用于是否执行。\n * 由外部series调用,设置markStyle的接口。\n * @param style\n * @param level\n * @param state\n */\n setStyle<T>(\n style: Partial<ConvertToMarkStyleSpec<T>> | Partial<IMarkStyle<T>>,\n state: StateValueType = 'normal',\n level: number = 0,\n stateStyle = this.stateStyle\n ): void {\n if (isNil(style)) {\n return;\n }\n\n if (stateStyle[state] === undefined) {\n stateStyle[state] = {};\n }\n\n const ignoreAttributes = this._getIgnoreAttributes();\n const segmentAttributes = [\n 'strokeWidth',\n 'lineWidth',\n 'lineDash',\n 'strokeDash',\n 'lineJoin',\n 'stroke',\n 'strokeOpacity',\n 'opacity',\n 'fill',\n 'fillOpacity',\n 'texture',\n 'texturePadding',\n 'textureSize',\n 'textureColor'\n ];\n const isUserLevel = this.isUserLevel(level);\n let enableSegments = false;\n Object.keys(style).forEach(attr => {\n const attrStyle = style[attr];\n if (isNil(attrStyle) || ignoreAttributes.includes(attr)) {\n return;\n }\n if (\n isUserLevel &&\n segmentAttributes.includes(attr) &&\n (isValidScaleType(attrStyle?.type) || attrStyle?.scale || isFunction(attrStyle))\n ) {\n enableSegments = true;\n }\n\n const styleConverter = this._filterAttribute(attr as any, attrStyle, state, level, isUserLevel, stateStyle);\n\n this.setAttribute(attr as any, styleConverter, state, level, stateStyle);\n });\n if (enableSegments) {\n this.setEnableSegments(enableSegments);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/mark/base/base-line.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAGpD,6CAA8D;AAC9D,2CAAsD;AAItD,MAAsB,YAA8D,SAAQ,oBAAW;IAWrG,QAAQ,CACN,KAAkE,EAClE,QAAwB,QAAQ,EAChC,QAAgB,CAAC,EACjB,UAAU,GAAG,IAAI,CAAC,UAAU;QAE5B,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,EAAE;YAChB,OAAO;SACR;QAED,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YACnC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACxB;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,MAAM,iBAAiB,GAAG;YACxB,aAAa;YACb,WAAW;YACX,UAAU;YACV,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,eAAe;YACf,SAAS;YACT,MAAM;YACN,aAAa;YACb,SAAS;YACT,gBAAgB;YAChB,aAAa;YACb,cAAc;SACf,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvD,OAAO;aACR;YACD,IACE,WAAW;gBACX,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC,IAAA,yBAAgB,EAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,KAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAA,IAAI,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC,EAChF;gBACA,cAAc,GAAG,IAAI,CAAC;aACvB;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAW,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAE5G,IAAI,CAAC,YAAY,CAAC,IAAW,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC;gBACjB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AAnED,oCAmEC","file":"base-line.js","sourcesContent":["import { isValidScaleType } from '@visactor/vscale';\nimport type { StateValueType } from '../../compile/mark';\nimport type { ConvertToMarkStyleSpec, ILineLikeMarkSpec } from '../../typings/visual';\nimport { isFunction, isNil, isValid } from '@visactor/vutils';\nimport { BaseMark, ExChannelCall } from './base-mark';\nimport type { IMarkOption, IMarkStyle, StyleConvert } from '../interface';\nimport { Datum } from '../../typings';\n\nexport abstract class BaseLineMark<T extends ILineLikeMarkSpec = ILineLikeMarkSpec> extends BaseMark<T> {\n protected abstract _getIgnoreAttributes(): string[];\n\n /**\n * @override\n * 之所以覆写是因为 vgrammar 侧默认都会处理 lineSegments,非常耗性能,所以需要 VChart 给一个标志位用于是否执行。\n * 由外部series调用,设置markStyle的接口。\n * @param style\n * @param level\n * @param state\n */\n setStyle<T>(\n style: Partial<ConvertToMarkStyleSpec<T>> | Partial<IMarkStyle<T>>,\n state: StateValueType = 'normal',\n level: number = 0,\n stateStyle = this.stateStyle\n ): void {\n if (isNil(style)) {\n return;\n }\n\n if (stateStyle[state] === undefined) {\n stateStyle[state] = {};\n }\n\n const ignoreAttributes = this._getIgnoreAttributes();\n const segmentAttributes = [\n 'strokeWidth',\n 'lineWidth',\n 'lineDash',\n 'strokeDash',\n 'lineJoin',\n 'stroke',\n 'strokeOpacity',\n 'opacity',\n 'fill',\n 'fillOpacity',\n 'texture',\n 'texturePadding',\n 'textureSize',\n 'textureColor'\n ];\n const isUserLevel = this.isUserLevel(level);\n let enableSegments = false;\n Object.keys(style).forEach(attr => {\n const attrStyle = style[attr];\n if (isNil(attrStyle) || ignoreAttributes.includes(attr)) {\n return;\n }\n if (\n isUserLevel &&\n segmentAttributes.includes(attr) &&\n (isValidScaleType(attrStyle?.type) || attrStyle?.scale || isFunction(attrStyle))\n ) {\n enableSegments = true;\n }\n\n const styleConverter = this._filterAttribute(attr as any, attrStyle, state, level, isUserLevel, stateStyle);\n\n this.setAttribute(attr as any, styleConverter, state, level, stateStyle);\n });\n if (enableSegments) {\n this.setMarkConfig({\n enableSegments: true\n });\n }\n }\n}\n"]}
@@ -26,9 +26,9 @@ class BaseMark extends compilable_mark_1.CompilableMark {
26
26
  this._initStyle();
27
27
  }
28
28
  initStyleWithSpec(spec, key) {
29
- spec && ((0, vutils_1.isValid)(spec.id) && (this._userId = spec.id), (0, vutils_1.isBoolean)(spec.interactive) && (this._interactive = spec.interactive),
30
- (0, vutils_1.isValid)(spec.zIndex) && this.setZIndex(spec.zIndex), (0, vutils_1.isBoolean)(spec.visible) && this.setVisible(spec.visible),
31
- this._initSpecStyle(spec, this.stateStyle, key));
29
+ spec && ((0, vutils_1.isValid)(spec.id) && (this._userId = spec.id), (0, vutils_1.isBoolean)(spec.interactive) && (this._markConfig.interactive = spec.interactive),
30
+ (0, vutils_1.isValid)(spec.zIndex) && (this._markConfig.zIndex = spec.zIndex), (0,
31
+ vutils_1.isBoolean)(spec.visible) && this.setVisible(spec.visible), this._initSpecStyle(spec, this.stateStyle, key));
32
32
  }
33
33
  _transformStyleValue(styleConverter, transform) {
34
34
  if (styleConverter.scale) {