@visactor/vchart 1.5.1-alpha.5 → 1.5.1

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 (611) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +1598 -590
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base-chart.js +4 -1
  6. package/cjs/chart/base-chart.js.map +1 -1
  7. package/cjs/chart/common/interface.d.ts +2 -1
  8. package/cjs/chart/common/interface.js.map +1 -1
  9. package/cjs/chart/correlation/correlation.d.ts +11 -0
  10. package/cjs/chart/correlation/correlation.js +53 -0
  11. package/cjs/chart/correlation/correlation.js.map +1 -0
  12. package/cjs/chart/correlation/index.d.ts +2 -0
  13. package/cjs/chart/correlation/index.js +21 -0
  14. package/cjs/chart/correlation/index.js.map +1 -0
  15. package/cjs/chart/correlation/interface.d.ts +6 -0
  16. package/cjs/chart/correlation/interface.js +6 -0
  17. package/cjs/chart/correlation/interface.js.map +1 -0
  18. package/cjs/chart/index.d.ts +5 -3
  19. package/cjs/chart/index.js +16 -2
  20. package/cjs/chart/index.js.map +1 -1
  21. package/cjs/chart/interface/type.d.ts +2 -1
  22. package/cjs/chart/interface/type.js +2 -1
  23. package/cjs/chart/interface/type.js.map +1 -1
  24. package/cjs/chart/sequence/sequence.js +0 -1
  25. package/cjs/chart/sequence/sequence.js.map +1 -1
  26. package/cjs/chart/waterfall/waterfall.js.map +1 -1
  27. package/cjs/compile/util.js +2 -1
  28. package/cjs/component/axis/base-axis.d.ts +2 -2
  29. package/cjs/component/axis/base-axis.js.map +1 -1
  30. package/cjs/component/axis/cartesian/axis.d.ts +4 -0
  31. package/cjs/component/axis/cartesian/axis.js +51 -9
  32. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  33. package/cjs/component/axis/cartesian/interface/common.d.ts +6 -1
  34. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  35. package/cjs/component/axis/cartesian/interface/spec.d.ts +2 -1
  36. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  37. package/cjs/component/axis/cartesian/interface/theme.d.ts +2 -1
  38. package/cjs/component/axis/cartesian/interface/theme.js.map +1 -1
  39. package/cjs/component/base/base-component.d.ts +1 -1
  40. package/cjs/component/base/base-component.js.map +1 -1
  41. package/cjs/component/brush/brush.d.ts +2 -2
  42. package/cjs/component/brush/brush.js.map +1 -1
  43. package/cjs/component/brush/interface.d.ts +1 -1
  44. package/cjs/component/brush/interface.js.map +1 -1
  45. package/cjs/component/common/trigger/desktop.d.ts +1 -0
  46. package/cjs/component/common/trigger/desktop.js +1 -0
  47. package/cjs/component/common/trigger/desktop.js.map +1 -1
  48. package/cjs/component/common/trigger/mobile.d.ts +1 -0
  49. package/cjs/component/common/trigger/mobile.js +1 -0
  50. package/cjs/component/common/trigger/mobile.js.map +1 -1
  51. package/cjs/component/crosshair/cartesian.d.ts +2 -2
  52. package/cjs/component/crosshair/cartesian.js.map +1 -1
  53. package/cjs/component/crosshair/polar.d.ts +2 -2
  54. package/cjs/component/crosshair/polar.js.map +1 -1
  55. package/cjs/component/custom-mark/custom-mark.d.ts +2 -2
  56. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  57. package/cjs/component/data-zoom/data-filter-base-component.d.ts +26 -9
  58. package/cjs/component/data-zoom/data-filter-base-component.js +92 -20
  59. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  60. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +2 -3
  61. package/cjs/component/data-zoom/data-zoom/data-zoom.js +16 -8
  62. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  63. package/cjs/component/data-zoom/interface.d.ts +36 -2
  64. package/cjs/component/data-zoom/interface.js.map +1 -1
  65. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -3
  66. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +17 -9
  67. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  68. package/cjs/component/geo/geo-coordinate.d.ts +2 -2
  69. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  70. package/cjs/component/index.js +1 -2
  71. package/cjs/component/indicator/indicator.d.ts +2 -2
  72. package/cjs/component/indicator/indicator.js.map +1 -1
  73. package/cjs/component/interface/common.d.ts +2 -2
  74. package/cjs/component/interface/common.js.map +1 -1
  75. package/cjs/component/label/base-label.d.ts +2 -2
  76. package/cjs/component/label/base-label.js.map +1 -1
  77. package/cjs/component/legend/base-legend.d.ts +2 -2
  78. package/cjs/component/legend/base-legend.js.map +1 -1
  79. package/cjs/component/legend/continuous/legend.d.ts +1 -1
  80. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  81. package/cjs/component/legend/interface.d.ts +3 -0
  82. package/cjs/component/legend/interface.js.map +1 -1
  83. package/cjs/component/map-label/component.d.ts +3 -3
  84. package/cjs/component/map-label/component.js.map +1 -1
  85. package/cjs/component/marker/base-marker.d.ts +2 -2
  86. package/cjs/component/marker/base-marker.js.map +1 -1
  87. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  88. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  89. package/cjs/component/player/player.d.ts +2 -2
  90. package/cjs/component/player/player.js.map +1 -1
  91. package/cjs/component/title/title.d.ts +2 -2
  92. package/cjs/component/title/title.js.map +1 -1
  93. package/cjs/component/tooltip/handler/base.d.ts +1 -1
  94. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  95. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  96. package/cjs/component/tooltip/handler/utils/compose.js +2 -1
  97. package/cjs/component/tooltip/handler/utils/compose.js.map +1 -1
  98. package/cjs/component/tooltip/tooltip.d.ts +2 -2
  99. package/cjs/component/tooltip/tooltip.js.map +1 -1
  100. package/cjs/constant/correlation.d.ts +3 -0
  101. package/cjs/constant/correlation.js +11 -0
  102. package/cjs/constant/correlation.js.map +1 -0
  103. package/cjs/constant/index.d.ts +1 -0
  104. package/cjs/constant/index.js +2 -1
  105. package/cjs/constant/index.js.map +1 -1
  106. package/cjs/constant/word-cloud.js +1 -2
  107. package/cjs/core/factory.js +2 -1
  108. package/cjs/core/index.d.ts +1 -1
  109. package/cjs/core/index.js +1 -1
  110. package/cjs/core/index.js.map +1 -1
  111. package/cjs/data/transforms/correlation-center.d.ts +4 -0
  112. package/cjs/data/transforms/correlation-center.js +18 -0
  113. package/cjs/data/transforms/correlation-center.js.map +1 -0
  114. package/cjs/data/transforms/correlation.d.ts +17 -0
  115. package/cjs/data/transforms/correlation.js +58 -0
  116. package/cjs/data/transforms/correlation.js.map +1 -0
  117. package/cjs/interaction/dimension-trigger.js +1 -2
  118. package/cjs/interaction/interaction.js +2 -1
  119. package/cjs/interaction/zoom/zoomable.d.ts +20 -12
  120. package/cjs/interaction/zoom/zoomable.js +94 -74
  121. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  122. package/cjs/layout/base-layout.d.ts +7 -1
  123. package/cjs/layout/base-layout.js +24 -10
  124. package/cjs/layout/base-layout.js.map +1 -1
  125. package/cjs/layout/layout3d/index.d.ts +6 -0
  126. package/cjs/layout/layout3d/index.js +14 -0
  127. package/cjs/layout/layout3d/index.js.map +1 -1
  128. package/cjs/mark/arc-3d.js +1 -1
  129. package/cjs/mark/index.d.ts +3 -2
  130. package/cjs/mark/index.js +10 -1
  131. package/cjs/mark/index.js.map +1 -1
  132. package/cjs/mark/interface/type.d.ts +1 -0
  133. package/cjs/mark/interface/type.js +1 -1
  134. package/cjs/mark/interface/type.js.map +1 -1
  135. package/cjs/mark/ripple.d.ts +12 -0
  136. package/cjs/mark/ripple.js +29 -0
  137. package/cjs/mark/ripple.js.map +1 -0
  138. package/cjs/model/base-model.d.ts +0 -3
  139. package/cjs/model/base-model.js +0 -3
  140. package/cjs/model/base-model.js.map +1 -1
  141. package/cjs/model/interface.d.ts +0 -2
  142. package/cjs/model/interface.js.map +1 -1
  143. package/cjs/series/area/area.js +4 -2
  144. package/cjs/series/area/area.js.map +1 -1
  145. package/cjs/series/bar/bar.d.ts +1 -0
  146. package/cjs/series/bar/bar.js +4 -3
  147. package/cjs/series/bar/bar.js.map +1 -1
  148. package/cjs/series/base/base-series.js +6 -9
  149. package/cjs/series/base/base-series.js.map +1 -1
  150. package/cjs/series/box-plot/box-plot.js +9 -9
  151. package/cjs/series/box-plot/box-plot.js.map +1 -1
  152. package/cjs/series/circle-packing/circle-packing.js +7 -6
  153. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  154. package/cjs/series/correlation/animation.d.ts +8 -0
  155. package/cjs/series/correlation/animation.js +22 -0
  156. package/cjs/series/correlation/animation.js.map +1 -0
  157. package/cjs/series/correlation/constant.d.ts +2 -0
  158. package/cjs/series/correlation/constant.js +27 -0
  159. package/cjs/series/correlation/constant.js.map +1 -0
  160. package/cjs/series/correlation/correlation.d.ts +57 -0
  161. package/cjs/series/correlation/correlation.js +215 -0
  162. package/cjs/series/correlation/correlation.js.map +1 -0
  163. package/cjs/series/correlation/interface.d.ts +37 -0
  164. package/cjs/series/correlation/interface.js +6 -0
  165. package/cjs/series/correlation/interface.js.map +1 -0
  166. package/cjs/series/dot/dot.js +2 -4
  167. package/cjs/series/dot/dot.js.map +1 -1
  168. package/cjs/series/funnel/funnel.js +4 -6
  169. package/cjs/series/funnel/funnel.js.map +1 -1
  170. package/cjs/series/gauge/gauge-pointer.d.ts +1 -0
  171. package/cjs/series/gauge/gauge-pointer.js +4 -2
  172. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  173. package/cjs/series/gauge/gauge.d.ts +1 -0
  174. package/cjs/series/gauge/gauge.js +5 -3
  175. package/cjs/series/gauge/gauge.js.map +1 -1
  176. package/cjs/series/heatmap/heatmap.js +2 -4
  177. package/cjs/series/heatmap/heatmap.js.map +1 -1
  178. package/cjs/series/index.d.ts +4 -2
  179. package/cjs/series/index.js +11 -2
  180. package/cjs/series/index.js.map +1 -1
  181. package/cjs/series/interface/series.d.ts +1 -1
  182. package/cjs/series/interface/series.js.map +1 -1
  183. package/cjs/series/interface/theme.d.ts +2 -0
  184. package/cjs/series/interface/theme.js +3 -2
  185. package/cjs/series/interface/theme.js.map +1 -1
  186. package/cjs/series/interface/type.d.ts +7 -2
  187. package/cjs/series/interface/type.js +4 -2
  188. package/cjs/series/interface/type.js.map +1 -1
  189. package/cjs/series/line/line.d.ts +1 -0
  190. package/cjs/series/line/line.js +4 -0
  191. package/cjs/series/line/line.js.map +1 -1
  192. package/cjs/series/link/link.js +6 -7
  193. package/cjs/series/link/link.js.map +1 -1
  194. package/cjs/series/map/map.js +2 -4
  195. package/cjs/series/map/map.js.map +1 -1
  196. package/cjs/series/mixin/line-mixin.js +2 -5
  197. package/cjs/series/mixin/line-mixin.js.map +1 -1
  198. package/cjs/series/pie/interface.d.ts +2 -0
  199. package/cjs/series/pie/interface.js.map +1 -1
  200. package/cjs/series/pie/pie-3d.js +6 -6
  201. package/cjs/series/pie/pie-3d.js.map +1 -1
  202. package/cjs/series/pie/pie.d.ts +2 -0
  203. package/cjs/series/pie/pie.js +18 -3
  204. package/cjs/series/pie/pie.js.map +1 -1
  205. package/cjs/series/progress/circular/circular.d.ts +1 -0
  206. package/cjs/series/progress/circular/circular.js +5 -3
  207. package/cjs/series/progress/circular/circular.js.map +1 -1
  208. package/cjs/series/progress/linear/linear.js +6 -6
  209. package/cjs/series/progress/linear/linear.js.map +1 -1
  210. package/cjs/series/radar/animation.js.map +1 -1
  211. package/cjs/series/radar/radar.d.ts +1 -0
  212. package/cjs/series/radar/radar.js +6 -2
  213. package/cjs/series/radar/radar.js.map +1 -1
  214. package/cjs/series/range-area/range-area.js +2 -3
  215. package/cjs/series/range-area/range-area.js.map +1 -1
  216. package/cjs/series/range-column/range-column.d.ts +1 -0
  217. package/cjs/series/range-column/range-column.js +11 -11
  218. package/cjs/series/range-column/range-column.js.map +1 -1
  219. package/cjs/series/rose/rose.d.ts +1 -0
  220. package/cjs/series/rose/rose.js +4 -2
  221. package/cjs/series/rose/rose.js.map +1 -1
  222. package/cjs/series/sankey/sankey.js +7 -9
  223. package/cjs/series/sankey/sankey.js.map +1 -1
  224. package/cjs/series/scatter/scatter.d.ts +1 -0
  225. package/cjs/series/scatter/scatter.js +4 -3
  226. package/cjs/series/scatter/scatter.js.map +1 -1
  227. package/cjs/series/sunburst/sunburst.js +4 -6
  228. package/cjs/series/sunburst/sunburst.js.map +1 -1
  229. package/cjs/series/treemap/treemap.js +10 -9
  230. package/cjs/series/treemap/treemap.js.map +1 -1
  231. package/cjs/series/word-cloud/base.d.ts +1 -0
  232. package/cjs/series/word-cloud/base.js +6 -3
  233. package/cjs/series/word-cloud/base.js.map +1 -1
  234. package/cjs/series/word-cloud/word-cloud-3d.js +2 -3
  235. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  236. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +31 -3
  237. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  238. package/cjs/theme/builtin/common/component/indicator.js +1 -1
  239. package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
  240. package/cjs/theme/builtin/common/component/legend/continuous.js +1 -1
  241. package/cjs/theme/builtin/common/component/legend/continuous.js.map +1 -1
  242. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +1 -1
  243. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  244. package/cjs/theme/builtin/common/component/mark-area.js +12 -10
  245. package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
  246. package/cjs/theme/builtin/common/component/mark-line.js +19 -12
  247. package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
  248. package/cjs/theme/builtin/common/component/mark-point.js +8 -2
  249. package/cjs/theme/builtin/common/component/mark-point.js.map +1 -1
  250. package/cjs/theme/builtin/common/component/poptip.js +1 -1
  251. package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
  252. package/cjs/theme/builtin/common/component/title.js +1 -1
  253. package/cjs/theme/builtin/common/component/title.js.map +1 -1
  254. package/cjs/theme/builtin/common/component/tooltip.js +2 -2
  255. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  256. package/cjs/theme/builtin/common/component/total-label.js +1 -1
  257. package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
  258. package/cjs/theme/builtin/common/series/area.js +4 -1
  259. package/cjs/theme/builtin/common/series/area.js.map +1 -1
  260. package/cjs/theme/builtin/common/series/bar.js +4 -1
  261. package/cjs/theme/builtin/common/series/bar.js.map +1 -1
  262. package/cjs/theme/builtin/common/series/circle-packing.js +4 -1
  263. package/cjs/theme/builtin/common/series/circle-packing.js.map +1 -1
  264. package/cjs/theme/builtin/common/series/correlation.d.ts +2 -0
  265. package/cjs/theme/builtin/common/series/correlation.js +22 -0
  266. package/cjs/theme/builtin/common/series/correlation.js.map +1 -0
  267. package/cjs/theme/builtin/common/series/funnel.js +12 -3
  268. package/cjs/theme/builtin/common/series/funnel.js.map +1 -1
  269. package/cjs/theme/builtin/common/series/index.js +3 -2
  270. package/cjs/theme/builtin/common/series/index.js.map +1 -1
  271. package/cjs/theme/builtin/common/series/line.js +4 -1
  272. package/cjs/theme/builtin/common/series/line.js.map +1 -1
  273. package/cjs/theme/builtin/common/series/map.js +4 -1
  274. package/cjs/theme/builtin/common/series/map.js.map +1 -1
  275. package/cjs/theme/builtin/common/series/pie.js +9 -1
  276. package/cjs/theme/builtin/common/series/pie.js.map +1 -1
  277. package/cjs/theme/builtin/common/series/radar.js +4 -1
  278. package/cjs/theme/builtin/common/series/radar.js.map +1 -1
  279. package/cjs/theme/builtin/common/series/rose.js +5 -1
  280. package/cjs/theme/builtin/common/series/rose.js.map +1 -1
  281. package/cjs/theme/builtin/common/series/scatter.js +4 -1
  282. package/cjs/theme/builtin/common/series/scatter.js.map +1 -1
  283. package/cjs/theme/builtin/common/series/treemap.js +4 -1
  284. package/cjs/theme/builtin/common/series/treemap.js.map +1 -1
  285. package/cjs/theme/builtin/dark/color-scheme.js +1 -1
  286. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
  287. package/cjs/theme/builtin/light/color-scheme.js +3 -3
  288. package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
  289. package/cjs/theme/color-scheme/builtin/interface.d.ts +1 -1
  290. package/cjs/theme/color-scheme/builtin/interface.js.map +1 -1
  291. package/cjs/theme/color-scheme/interface.d.ts +1 -1
  292. package/cjs/theme/color-scheme/interface.js.map +1 -1
  293. package/cjs/theme/color-scheme/util.js +3 -7
  294. package/cjs/theme/color-scheme/util.js.map +1 -1
  295. package/cjs/typings/event.d.ts +1 -0
  296. package/cjs/typings/event.js +6 -0
  297. package/cjs/typings/event.js.map +1 -0
  298. package/cjs/typings/spec/chart.d.ts +2 -0
  299. package/cjs/typings/spec/chart.js.map +1 -1
  300. package/cjs/typings/spec/common.d.ts +8 -6
  301. package/cjs/typings/spec/common.js.map +1 -1
  302. package/cjs/typings/tooltip/line.d.ts +1 -0
  303. package/cjs/typings/tooltip/line.js.map +1 -1
  304. package/cjs/typings/visual.d.ts +4 -0
  305. package/cjs/typings/visual.js.map +1 -1
  306. package/cjs/vchart-all.js +2 -2
  307. package/cjs/vchart-all.js.map +1 -1
  308. package/esm/chart/base-chart.js +4 -1
  309. package/esm/chart/base-chart.js.map +1 -1
  310. package/esm/chart/common/interface.d.ts +2 -1
  311. package/esm/chart/common/interface.js.map +1 -1
  312. package/esm/chart/correlation/correlation.d.ts +11 -0
  313. package/esm/chart/correlation/correlation.js +52 -0
  314. package/esm/chart/correlation/correlation.js.map +1 -0
  315. package/esm/chart/correlation/index.d.ts +2 -0
  316. package/esm/chart/correlation/index.js +4 -0
  317. package/esm/chart/correlation/index.js.map +1 -0
  318. package/esm/chart/correlation/interface.d.ts +6 -0
  319. package/esm/chart/correlation/interface.js +2 -0
  320. package/esm/chart/correlation/interface.js.map +1 -0
  321. package/esm/chart/index.d.ts +5 -3
  322. package/esm/chart/index.js +4 -2
  323. package/esm/chart/index.js.map +1 -1
  324. package/esm/chart/interface/type.d.ts +2 -1
  325. package/esm/chart/interface/type.js +2 -1
  326. package/esm/chart/interface/type.js.map +1 -1
  327. package/esm/chart/sequence/sequence.js +0 -1
  328. package/esm/chart/sequence/sequence.js.map +1 -1
  329. package/esm/chart/waterfall/waterfall.js.map +1 -1
  330. package/esm/compile/util.js +2 -1
  331. package/esm/component/axis/base-axis.d.ts +2 -2
  332. package/esm/component/axis/base-axis.js.map +1 -1
  333. package/esm/component/axis/cartesian/axis.d.ts +4 -0
  334. package/esm/component/axis/cartesian/axis.js +52 -8
  335. package/esm/component/axis/cartesian/axis.js.map +1 -1
  336. package/esm/component/axis/cartesian/interface/common.d.ts +6 -1
  337. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  338. package/esm/component/axis/cartesian/interface/spec.d.ts +2 -1
  339. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  340. package/esm/component/axis/cartesian/interface/theme.d.ts +2 -1
  341. package/esm/component/axis/cartesian/interface/theme.js.map +1 -1
  342. package/esm/component/base/base-component.d.ts +1 -1
  343. package/esm/component/base/base-component.js.map +1 -1
  344. package/esm/component/brush/brush.d.ts +2 -2
  345. package/esm/component/brush/brush.js.map +1 -1
  346. package/esm/component/brush/interface.d.ts +1 -1
  347. package/esm/component/brush/interface.js.map +1 -1
  348. package/esm/component/common/trigger/desktop.d.ts +1 -0
  349. package/esm/component/common/trigger/desktop.js +1 -0
  350. package/esm/component/common/trigger/desktop.js.map +1 -1
  351. package/esm/component/common/trigger/mobile.d.ts +1 -0
  352. package/esm/component/common/trigger/mobile.js +1 -0
  353. package/esm/component/common/trigger/mobile.js.map +1 -1
  354. package/esm/component/crosshair/cartesian.d.ts +2 -2
  355. package/esm/component/crosshair/cartesian.js.map +1 -1
  356. package/esm/component/crosshair/polar.d.ts +2 -2
  357. package/esm/component/crosshair/polar.js.map +1 -1
  358. package/esm/component/custom-mark/custom-mark.d.ts +2 -2
  359. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  360. package/esm/component/data-zoom/data-filter-base-component.d.ts +26 -9
  361. package/esm/component/data-zoom/data-filter-base-component.js +91 -20
  362. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  363. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +2 -3
  364. package/esm/component/data-zoom/data-zoom/data-zoom.js +17 -9
  365. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  366. package/esm/component/data-zoom/interface.d.ts +36 -2
  367. package/esm/component/data-zoom/interface.js.map +1 -1
  368. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -3
  369. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +18 -10
  370. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  371. package/esm/component/geo/geo-coordinate.d.ts +2 -2
  372. package/esm/component/geo/geo-coordinate.js.map +1 -1
  373. package/esm/component/index.js +1 -2
  374. package/esm/component/indicator/indicator.d.ts +2 -2
  375. package/esm/component/indicator/indicator.js.map +1 -1
  376. package/esm/component/interface/common.d.ts +2 -2
  377. package/esm/component/interface/common.js.map +1 -1
  378. package/esm/component/label/base-label.d.ts +2 -2
  379. package/esm/component/label/base-label.js.map +1 -1
  380. package/esm/component/legend/base-legend.d.ts +2 -2
  381. package/esm/component/legend/base-legend.js.map +1 -1
  382. package/esm/component/legend/continuous/legend.d.ts +1 -1
  383. package/esm/component/legend/discrete/legend.d.ts +1 -1
  384. package/esm/component/legend/interface.d.ts +3 -0
  385. package/esm/component/legend/interface.js.map +1 -1
  386. package/esm/component/map-label/component.d.ts +3 -3
  387. package/esm/component/map-label/component.js.map +1 -1
  388. package/esm/component/marker/base-marker.d.ts +2 -2
  389. package/esm/component/marker/base-marker.js.map +1 -1
  390. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  391. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  392. package/esm/component/player/player.d.ts +2 -2
  393. package/esm/component/player/player.js.map +1 -1
  394. package/esm/component/title/title.d.ts +2 -2
  395. package/esm/component/title/title.js.map +1 -1
  396. package/esm/component/tooltip/handler/base.d.ts +1 -1
  397. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  398. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  399. package/esm/component/tooltip/handler/utils/compose.js +2 -1
  400. package/esm/component/tooltip/handler/utils/compose.js.map +1 -1
  401. package/esm/component/tooltip/tooltip.d.ts +2 -2
  402. package/esm/component/tooltip/tooltip.js.map +1 -1
  403. package/esm/constant/correlation.d.ts +3 -0
  404. package/esm/constant/correlation.js +8 -0
  405. package/esm/constant/correlation.js.map +1 -0
  406. package/esm/constant/index.d.ts +1 -0
  407. package/esm/constant/index.js +2 -0
  408. package/esm/constant/index.js.map +1 -1
  409. package/esm/constant/word-cloud.js +1 -2
  410. package/esm/core/factory.js +2 -1
  411. package/esm/core/index.d.ts +1 -1
  412. package/esm/core/index.js +1 -1
  413. package/esm/core/index.js.map +1 -1
  414. package/esm/data/transforms/correlation-center.d.ts +4 -0
  415. package/esm/data/transforms/correlation-center.js +14 -0
  416. package/esm/data/transforms/correlation-center.js.map +1 -0
  417. package/esm/data/transforms/correlation.d.ts +17 -0
  418. package/esm/data/transforms/correlation.js +49 -0
  419. package/esm/data/transforms/correlation.js.map +1 -0
  420. package/esm/interaction/dimension-trigger.js +1 -2
  421. package/esm/interaction/interaction.js +2 -1
  422. package/esm/interaction/zoom/zoomable.d.ts +20 -12
  423. package/esm/interaction/zoom/zoomable.js +96 -74
  424. package/esm/interaction/zoom/zoomable.js.map +1 -1
  425. package/esm/layout/base-layout.d.ts +7 -1
  426. package/esm/layout/base-layout.js +24 -10
  427. package/esm/layout/base-layout.js.map +1 -1
  428. package/esm/layout/layout3d/index.d.ts +6 -0
  429. package/esm/layout/layout3d/index.js +14 -0
  430. package/esm/layout/layout3d/index.js.map +1 -1
  431. package/esm/mark/arc-3d.js +1 -1
  432. package/esm/mark/index.d.ts +3 -2
  433. package/esm/mark/index.js +3 -1
  434. package/esm/mark/index.js.map +1 -1
  435. package/esm/mark/interface/type.d.ts +1 -0
  436. package/esm/mark/interface/type.js +1 -1
  437. package/esm/mark/interface/type.js.map +1 -1
  438. package/esm/mark/ripple.d.ts +12 -0
  439. package/esm/mark/ripple.js +27 -0
  440. package/esm/mark/ripple.js.map +1 -0
  441. package/esm/model/base-model.d.ts +0 -3
  442. package/esm/model/base-model.js +0 -3
  443. package/esm/model/base-model.js.map +1 -1
  444. package/esm/model/interface.d.ts +0 -2
  445. package/esm/model/interface.js.map +1 -1
  446. package/esm/series/area/area.js +4 -3
  447. package/esm/series/area/area.js.map +1 -1
  448. package/esm/series/bar/bar.d.ts +1 -0
  449. package/esm/series/bar/bar.js +4 -2
  450. package/esm/series/bar/bar.js.map +1 -1
  451. package/esm/series/base/base-series.js +5 -7
  452. package/esm/series/base/base-series.js.map +1 -1
  453. package/esm/series/box-plot/box-plot.js +10 -8
  454. package/esm/series/box-plot/box-plot.js.map +1 -1
  455. package/esm/series/circle-packing/circle-packing.js +7 -6
  456. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  457. package/esm/series/correlation/animation.d.ts +8 -0
  458. package/esm/series/correlation/animation.js +16 -0
  459. package/esm/series/correlation/animation.js.map +1 -0
  460. package/esm/series/correlation/constant.d.ts +2 -0
  461. package/esm/series/correlation/constant.js +25 -0
  462. package/esm/series/correlation/constant.js.map +1 -0
  463. package/esm/series/correlation/correlation.d.ts +57 -0
  464. package/esm/series/correlation/correlation.js +237 -0
  465. package/esm/series/correlation/correlation.js.map +1 -0
  466. package/esm/series/correlation/interface.d.ts +37 -0
  467. package/esm/series/correlation/interface.js +2 -0
  468. package/esm/series/correlation/interface.js.map +1 -0
  469. package/esm/series/dot/dot.js +2 -3
  470. package/esm/series/dot/dot.js.map +1 -1
  471. package/esm/series/funnel/funnel.js +4 -5
  472. package/esm/series/funnel/funnel.js.map +1 -1
  473. package/esm/series/gauge/gauge-pointer.d.ts +1 -0
  474. package/esm/series/gauge/gauge-pointer.js +4 -2
  475. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  476. package/esm/series/gauge/gauge.d.ts +1 -0
  477. package/esm/series/gauge/gauge.js +5 -3
  478. package/esm/series/gauge/gauge.js.map +1 -1
  479. package/esm/series/heatmap/heatmap.js +2 -4
  480. package/esm/series/heatmap/heatmap.js.map +1 -1
  481. package/esm/series/index.d.ts +4 -2
  482. package/esm/series/index.js +3 -1
  483. package/esm/series/index.js.map +1 -1
  484. package/esm/series/interface/series.d.ts +1 -1
  485. package/esm/series/interface/series.js.map +1 -1
  486. package/esm/series/interface/theme.d.ts +2 -0
  487. package/esm/series/interface/theme.js +4 -1
  488. package/esm/series/interface/theme.js.map +1 -1
  489. package/esm/series/interface/type.d.ts +7 -2
  490. package/esm/series/interface/type.js +4 -2
  491. package/esm/series/interface/type.js.map +1 -1
  492. package/esm/series/line/line.d.ts +1 -0
  493. package/esm/series/line/line.js +4 -0
  494. package/esm/series/line/line.js.map +1 -1
  495. package/esm/series/link/link.js +6 -5
  496. package/esm/series/link/link.js.map +1 -1
  497. package/esm/series/map/map.js +2 -3
  498. package/esm/series/map/map.js.map +1 -1
  499. package/esm/series/mixin/line-mixin.js +3 -5
  500. package/esm/series/mixin/line-mixin.js.map +1 -1
  501. package/esm/series/pie/interface.d.ts +2 -0
  502. package/esm/series/pie/interface.js.map +1 -1
  503. package/esm/series/pie/pie-3d.js +6 -6
  504. package/esm/series/pie/pie-3d.js.map +1 -1
  505. package/esm/series/pie/pie.d.ts +2 -0
  506. package/esm/series/pie/pie.js +16 -2
  507. package/esm/series/pie/pie.js.map +1 -1
  508. package/esm/series/progress/circular/circular.d.ts +1 -0
  509. package/esm/series/progress/circular/circular.js +5 -2
  510. package/esm/series/progress/circular/circular.js.map +1 -1
  511. package/esm/series/progress/linear/linear.js +5 -5
  512. package/esm/series/progress/linear/linear.js.map +1 -1
  513. package/esm/series/radar/animation.js.map +1 -1
  514. package/esm/series/radar/radar.d.ts +1 -0
  515. package/esm/series/radar/radar.js +6 -2
  516. package/esm/series/radar/radar.js.map +1 -1
  517. package/esm/series/range-area/range-area.js +2 -2
  518. package/esm/series/range-area/range-area.js.map +1 -1
  519. package/esm/series/range-column/range-column.d.ts +1 -0
  520. package/esm/series/range-column/range-column.js +10 -11
  521. package/esm/series/range-column/range-column.js.map +1 -1
  522. package/esm/series/rose/rose.d.ts +1 -0
  523. package/esm/series/rose/rose.js +4 -2
  524. package/esm/series/rose/rose.js.map +1 -1
  525. package/esm/series/sankey/sankey.js +7 -9
  526. package/esm/series/sankey/sankey.js.map +1 -1
  527. package/esm/series/scatter/scatter.d.ts +1 -0
  528. package/esm/series/scatter/scatter.js +4 -3
  529. package/esm/series/scatter/scatter.js.map +1 -1
  530. package/esm/series/sunburst/sunburst.js +4 -6
  531. package/esm/series/sunburst/sunburst.js.map +1 -1
  532. package/esm/series/treemap/treemap.js +10 -9
  533. package/esm/series/treemap/treemap.js.map +1 -1
  534. package/esm/series/word-cloud/base.d.ts +1 -0
  535. package/esm/series/word-cloud/base.js +6 -3
  536. package/esm/series/word-cloud/base.js.map +1 -1
  537. package/esm/series/word-cloud/word-cloud-3d.js +2 -3
  538. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  539. package/esm/theme/builtin/common/component/axis/cartesian-axis.js +28 -2
  540. package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  541. package/esm/theme/builtin/common/component/indicator.js +1 -1
  542. package/esm/theme/builtin/common/component/indicator.js.map +1 -1
  543. package/esm/theme/builtin/common/component/legend/continuous.js +1 -1
  544. package/esm/theme/builtin/common/component/legend/continuous.js.map +1 -1
  545. package/esm/theme/builtin/common/component/legend/discrete-legend.js +1 -1
  546. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  547. package/esm/theme/builtin/common/component/mark-area.js +12 -10
  548. package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
  549. package/esm/theme/builtin/common/component/mark-line.js +19 -12
  550. package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
  551. package/esm/theme/builtin/common/component/mark-point.js +8 -2
  552. package/esm/theme/builtin/common/component/mark-point.js.map +1 -1
  553. package/esm/theme/builtin/common/component/poptip.js +1 -1
  554. package/esm/theme/builtin/common/component/poptip.js.map +1 -1
  555. package/esm/theme/builtin/common/component/title.js +1 -1
  556. package/esm/theme/builtin/common/component/title.js.map +1 -1
  557. package/esm/theme/builtin/common/component/tooltip.js +2 -2
  558. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  559. package/esm/theme/builtin/common/component/total-label.js +1 -1
  560. package/esm/theme/builtin/common/component/total-label.js.map +1 -1
  561. package/esm/theme/builtin/common/series/area.js +4 -1
  562. package/esm/theme/builtin/common/series/area.js.map +1 -1
  563. package/esm/theme/builtin/common/series/bar.js +4 -1
  564. package/esm/theme/builtin/common/series/bar.js.map +1 -1
  565. package/esm/theme/builtin/common/series/circle-packing.js +4 -1
  566. package/esm/theme/builtin/common/series/circle-packing.js.map +1 -1
  567. package/esm/theme/builtin/common/series/correlation.d.ts +2 -0
  568. package/esm/theme/builtin/common/series/correlation.js +18 -0
  569. package/esm/theme/builtin/common/series/correlation.js.map +1 -0
  570. package/esm/theme/builtin/common/series/funnel.js +12 -3
  571. package/esm/theme/builtin/common/series/funnel.js.map +1 -1
  572. package/esm/theme/builtin/common/series/index.js +4 -1
  573. package/esm/theme/builtin/common/series/index.js.map +1 -1
  574. package/esm/theme/builtin/common/series/line.js +4 -1
  575. package/esm/theme/builtin/common/series/line.js.map +1 -1
  576. package/esm/theme/builtin/common/series/map.js +4 -1
  577. package/esm/theme/builtin/common/series/map.js.map +1 -1
  578. package/esm/theme/builtin/common/series/pie.js +9 -1
  579. package/esm/theme/builtin/common/series/pie.js.map +1 -1
  580. package/esm/theme/builtin/common/series/radar.js +4 -1
  581. package/esm/theme/builtin/common/series/radar.js.map +1 -1
  582. package/esm/theme/builtin/common/series/rose.js +5 -1
  583. package/esm/theme/builtin/common/series/rose.js.map +1 -1
  584. package/esm/theme/builtin/common/series/scatter.js +4 -1
  585. package/esm/theme/builtin/common/series/scatter.js.map +1 -1
  586. package/esm/theme/builtin/common/series/treemap.js +4 -1
  587. package/esm/theme/builtin/common/series/treemap.js.map +1 -1
  588. package/esm/theme/builtin/dark/color-scheme.js +1 -1
  589. package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
  590. package/esm/theme/builtin/light/color-scheme.js +3 -3
  591. package/esm/theme/builtin/light/color-scheme.js.map +1 -1
  592. package/esm/theme/color-scheme/builtin/interface.d.ts +1 -1
  593. package/esm/theme/color-scheme/builtin/interface.js.map +1 -1
  594. package/esm/theme/color-scheme/interface.d.ts +1 -1
  595. package/esm/theme/color-scheme/interface.js.map +1 -1
  596. package/esm/theme/color-scheme/util.js +4 -7
  597. package/esm/theme/color-scheme/util.js.map +1 -1
  598. package/esm/typings/event.d.ts +1 -0
  599. package/esm/typings/event.js +2 -0
  600. package/esm/typings/event.js.map +1 -0
  601. package/esm/typings/spec/chart.d.ts +2 -0
  602. package/esm/typings/spec/chart.js.map +1 -1
  603. package/esm/typings/spec/common.d.ts +8 -6
  604. package/esm/typings/spec/common.js.map +1 -1
  605. package/esm/typings/tooltip/line.d.ts +1 -0
  606. package/esm/typings/tooltip/line.js.map +1 -1
  607. package/esm/typings/visual.d.ts +4 -0
  608. package/esm/typings/visual.js.map +1 -1
  609. package/esm/vchart-all.js +4 -2
  610. package/esm/vchart-all.js.map +1 -1
  611. package/package.json +11 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IPolarSeries } from '../../series/interface/series';\nimport { isArray, isValid, isValidNumber, mergeSpec, isNil, clamp } from '../../util';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface';\nimport type { IPolarCrosshairSpec } from './interface';\nimport type { BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\n// import { registerComponent } from '@visactor/vgrammar-core';\nimport { Tag } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { LineCrosshair, SectorCrosshair, CircleCrosshair, PolygonCrosshair } from '@visactor/vrender-components';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IPoint, StringOrNumber } from '../../typings';\nimport type { IHair } from './base';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport { polarToCartesian, getIntersectPoint, PointService, getAngleByPoint } from '@visactor/vutils';\nimport type { IGroup, INode } from '@visactor/vrender-core';\nimport { angleLabelOrientAttribute, radiusLabelOrientAttribute } from '../../util/math';\nimport { limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\nimport { Factory } from '../../core/factory';\n\ninterface ICrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: { visible: boolean; text: StringOrNumber; offset: number };\n axis?: IPolarAxis;\n}\n\nenum LayoutType {\n ALL = 0b0011,\n HORIZONTAL = 0b0010,\n VERTICAL = 0b0001,\n NONE = 0b0000\n}\n\ntype IBound = { x1: number; y1: number; x2: number; y2: number };\ntype IAxisInfo = Map<number, IBound & { axis: IPolarAxis }>;\n\nexport class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {\n static type = ComponentTypeEnum.polarCrosshair;\n type = ComponentTypeEnum.polarCrosshair;\n name: string = ComponentTypeEnum.polarCrosshair;\n currValueX: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n currValueY: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n\n xHair: IHair | undefined;\n yHair: (IHair & { smooth: boolean }) | undefined;\n\n private _cacheXCrossHairInfo: ICrosshairInfo | undefined;\n private _cacheYCrossHairInfo: ICrosshairInfo | undefined;\n\n private _radiusCrosshair: IGroup;\n private _radiusLabelCrosshair: Tag;\n private _angleCrosshair: IGroup;\n private _angleLabelCrosshair: Tag;\n\n static createComponent(spec: any, options: IComponentOption) {\n const crosshairSpec = spec.crosshair || options.defaultSpec;\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.categoryField || crosshairSpec.valueField) {\n return new PolarCrossHair(crosshairSpec, { ...options, specKey: 'crosshair' });\n }\n return undefined;\n }\n const components: PolarCrossHair[] = [];\n crosshairSpec.forEach((s: IPolarCrosshairSpec, i: number) => {\n if (s.categoryField || s.valueField) {\n components.push(new PolarCrossHair(s, { ...options, specIndex: i, specKey: 'crosshair' }));\n }\n });\n return components;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this.currValueX = new Map();\n this.currValueY = new Map();\n }\n\n protected _showDefaultCrosshair() {\n if (!this.showDefault) {\n return;\n }\n // TODO: 待支持\n }\n\n hide() {\n this._radiusCrosshair && this._radiusCrosshair.hideAll();\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n this._angleCrosshair && this._angleCrosshair.hideAll();\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IPolarAxis>('category');\n const yAxisMap = this._getAxisInfoByField<IPolarAxis>('value');\n return {\n xAxisMap: this._filterAxisByPoint<IPolarAxis>(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint<IPolarAxis>(yAxisMap, relativeX, relativeY)\n };\n }\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n getAllAxisValues(\n axisMap: IAxisInfo,\n point: IPoint,\n currValue: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n const { x: axisStartX, y: axisStartY } = item.axis.getLayoutStartPoint();\n const { x, y } = this.getLayoutStartPoint();\n let value = axis.positionToData({\n x: point.x - (axisStartX - x),\n y: point.y - (axisStartY - y)\n });\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n const center = {\n x: axis.getCenter().x + this.getLayoutStartPoint().x,\n y: axis.getCenter().y + this.getLayoutStartPoint().y\n };\n currValue.set(id, {\n v: value,\n axis: item.axis,\n center,\n innerRadius: axis.getInnerRadius(),\n radius: axis.getOuterRadius(),\n startAngle: axis.startAngle,\n endAngle: axis.endAngle,\n distance: PointService.distancePP(point, axis.getCenter()),\n coord: axis.pointToCoord(point),\n point\n });\n });\n return true;\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this.findAllAxisContains(relativeX, relativeY);\n if (xAxisMap.size === 0 && yAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this.currValueX.clear();\n this.currValueY.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && this.getAllAxisValues(xAxisMap, { x: relativeX, y: relativeY }, this.currValueX);\n yAxisMap && this.getAllAxisValues(yAxisMap, { x: relativeX, y: relativeY }, this.currValueY);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n private layoutByValue(tag: number) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<IPolarSeries>();\n if (!series) {\n return;\n }\n let xCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n let yCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n sides: (series.angleAxisHelper.getScale(0) as BandScale).ticks().length,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this.xHair) {\n xCrossHairInfo.visible = !!this.currValueX.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n this.currValueX.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n mergeSpec(xCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([v]);\n xCrossHairInfo.angle = angle;\n if (this.xHair.label?.visible) {\n xCrossHairInfo.label.visible = true;\n xCrossHairInfo.label.text = v;\n xCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n xCrossHairInfo.startAngle = angle - bandWidth / 2;\n xCrossHairInfo.endAngle = angle + bandWidth / 2;\n });\n }\n\n if (this.yHair) {\n yCrossHairInfo.visible = !!this.currValueY.size;\n this.currValueY.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n if (this.yHair.label?.visible) {\n yCrossHairInfo.label.visible = true;\n yCrossHairInfo.label.text = v;\n yCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n yCrossHairInfo.angle = coord.angle;\n yCrossHairInfo.axis = axis;\n mergeSpec(yCrossHairInfo, rest);\n });\n }\n\n if (this.enableRemain && !xCrossHairInfo.visible && isValid(this._cacheXCrossHairInfo)) {\n xCrossHairInfo = this._cacheXCrossHairInfo;\n } else {\n if (this.xHair?.label?.formatMethod && xCrossHairInfo.label.visible) {\n const { label } = xCrossHairInfo;\n label.text = this.xHair.label.formatMethod(label.text, 'angle') as string;\n }\n }\n\n if (this.enableRemain && !yCrossHairInfo.visible && isValid(this._cacheYCrossHairInfo)) {\n yCrossHairInfo = this._cacheYCrossHairInfo;\n } else {\n if (this.yHair?.label?.formatMethod && yCrossHairInfo.label.visible) {\n const { label } = yCrossHairInfo;\n label.text = this.yHair.label.formatMethod(label.text, 'radius') as string;\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(yCrossHairInfo);\n LayoutType.VERTICAL && this._layoutVertical(xCrossHairInfo);\n }\n\n if (this.enableRemain) {\n this._cacheXCrossHairInfo = { ...xCrossHairInfo, _isCache: true };\n this._cacheYCrossHairInfo = { ...yCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const container = this.getContainer();\n const { angle, innerRadius, radius, label, startAngle, endAngle, center, visible } = crosshairInfo;\n if (visible) {\n const crosshairType = this.xHair.type === 'rect' ? 'sector' : 'line';\n let positionAttrs;\n if (crosshairType === 'sector') {\n positionAttrs = {\n center,\n innerRadius,\n radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n } else {\n positionAttrs = {\n start: polarToCartesian(center, innerRadius, angle),\n end: polarToCartesian(center, radius, angle)\n };\n }\n\n if (this._angleCrosshair) {\n this._angleCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n // 创建\n if (crosshairType === 'line') {\n crosshair = new LineCrosshair({\n ...(positionAttrs as { start: IPoint; end: IPoint }),\n lineStyle: this.xHair.style,\n zIndex: this.gridZIndex\n });\n } else if (crosshairType === 'sector') {\n crosshair = new SectorCrosshair({\n ...(positionAttrs as {\n center: IPoint;\n innerRadius: number;\n radius: number;\n startAngle: number;\n endAngle: number;\n }),\n sectorStyle: this.xHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._angleCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = angleLabelOrientAttribute(angle);\n const labelAttrs = {\n ...polarToCartesian(center, radius + label.offset, angle),\n ...this.xHair.label,\n ...label,\n textStyle: {\n ...this.xHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._angleLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-angle-label';\n this._angleLabelCrosshair = label;\n });\n } else {\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const { center, startAngle, endAngle, distance, sides, axis, label, point, radius, innerRadius, visible } =\n crosshairInfo;\n const container = this.getContainer();\n if (visible) {\n const crosshairType = this.yHair.smooth ? 'circle' : 'polygon';\n\n let polygonRadius = distance;\n if (crosshairType === 'polygon') {\n const axisCenter = axis.getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, distance, preAngle);\n const nextPoint = polarToCartesian(axisCenter, distance, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance,\n innerRadius,\n radius\n );\n }\n }\n const positionAttrs = {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n\n if (this._radiusCrosshair) {\n this._radiusCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n if (crosshairType === 'polygon') {\n crosshair = new PolygonCrosshair({\n ...positionAttrs,\n lineStyle: this.yHair.style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else {\n crosshair = new CircleCrosshair({\n ...positionAttrs,\n lineStyle: this.yHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._radiusCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = radiusLabelOrientAttribute(startAngle);\n const labelAttrs = {\n ...polarToCartesian(center, polygonRadius, startAngle),\n ...this.yHair.label,\n ...label,\n textStyle: {\n ...this.yHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._radiusLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-radius-label';\n this._radiusLabelCrosshair = label;\n });\n } else {\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n }\n }\n }\n\n protected _parseFieldInfo() {\n const { categoryField, valueField } = this._crosshairConfig as IPolarCrosshairSpec;\n if (categoryField && categoryField.visible) {\n this.xHair = this._parseField(categoryField, 'categoryField');\n }\n if (valueField && valueField.visible) {\n this.yHair = this._parseField(valueField, 'valueField');\n this.yHair.smooth = valueField?.line?.smooth;\n }\n }\n\n private _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n getVRenderComponents(): IGroup[] {\n return [\n this._radiusCrosshair,\n this._radiusLabelCrosshair,\n this._angleCrosshair,\n this._angleLabelCrosshair\n ] as unknown as IGroup[];\n }\n}\n\nexport const registerPolarCrossHair = () => {\n Factory.registerComponent(PolarCrossHair.type, PolarCrossHair);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IPolarSeries } from '../../series/interface/series';\nimport { isArray, isValid, isValidNumber, mergeSpec, isNil, clamp } from '../../util';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface';\nimport type { IPolarCrosshairSpec } from './interface';\nimport type { BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\n// import { registerComponent } from '@visactor/vgrammar-core';\nimport { Tag } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { LineCrosshair, SectorCrosshair, CircleCrosshair, PolygonCrosshair } from '@visactor/vrender-components';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IPoint, StringOrNumber } from '../../typings';\nimport type { IHair } from './base';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport { polarToCartesian, getIntersectPoint, PointService, getAngleByPoint } from '@visactor/vutils';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { angleLabelOrientAttribute, radiusLabelOrientAttribute } from '../../util/math';\nimport { limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\nimport { Factory } from '../../core/factory';\n\ninterface ICrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: { visible: boolean; text: StringOrNumber; offset: number };\n axis?: IPolarAxis;\n}\n\nenum LayoutType {\n ALL = 0b0011,\n HORIZONTAL = 0b0010,\n VERTICAL = 0b0001,\n NONE = 0b0000\n}\n\ntype IBound = { x1: number; y1: number; x2: number; y2: number };\ntype IAxisInfo = Map<number, IBound & { axis: IPolarAxis }>;\n\nexport class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {\n static type = ComponentTypeEnum.polarCrosshair;\n type = ComponentTypeEnum.polarCrosshair;\n name: string = ComponentTypeEnum.polarCrosshair;\n currValueX: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n currValueY: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n\n xHair: IHair | undefined;\n yHair: (IHair & { smooth: boolean }) | undefined;\n\n private _cacheXCrossHairInfo: ICrosshairInfo | undefined;\n private _cacheYCrossHairInfo: ICrosshairInfo | undefined;\n\n private _radiusCrosshair: IGroup;\n private _radiusLabelCrosshair: Tag;\n private _angleCrosshair: IGroup;\n private _angleLabelCrosshair: Tag;\n\n static createComponent(spec: any, options: IComponentOption) {\n const crosshairSpec = spec.crosshair || options.defaultSpec;\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.categoryField || crosshairSpec.valueField) {\n return new PolarCrossHair(crosshairSpec, { ...options, specKey: 'crosshair' });\n }\n return undefined;\n }\n const components: PolarCrossHair[] = [];\n crosshairSpec.forEach((s: IPolarCrosshairSpec, i: number) => {\n if (s.categoryField || s.valueField) {\n components.push(new PolarCrossHair(s, { ...options, specIndex: i, specKey: 'crosshair' }));\n }\n });\n return components;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this.currValueX = new Map();\n this.currValueY = new Map();\n }\n\n protected _showDefaultCrosshair() {\n if (!this.showDefault) {\n return;\n }\n // TODO: 待支持\n }\n\n hide() {\n this._radiusCrosshair && this._radiusCrosshair.hideAll();\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n this._angleCrosshair && this._angleCrosshair.hideAll();\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IPolarAxis>('category');\n const yAxisMap = this._getAxisInfoByField<IPolarAxis>('value');\n return {\n xAxisMap: this._filterAxisByPoint<IPolarAxis>(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint<IPolarAxis>(yAxisMap, relativeX, relativeY)\n };\n }\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n getAllAxisValues(\n axisMap: IAxisInfo,\n point: IPoint,\n currValue: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n const { x: axisStartX, y: axisStartY } = item.axis.getLayoutStartPoint();\n const { x, y } = this.getLayoutStartPoint();\n let value = axis.positionToData({\n x: point.x - (axisStartX - x),\n y: point.y - (axisStartY - y)\n });\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n const center = {\n x: axis.getCenter().x + this.getLayoutStartPoint().x,\n y: axis.getCenter().y + this.getLayoutStartPoint().y\n };\n currValue.set(id, {\n v: value,\n axis: item.axis,\n center,\n innerRadius: axis.getInnerRadius(),\n radius: axis.getOuterRadius(),\n startAngle: axis.startAngle,\n endAngle: axis.endAngle,\n distance: PointService.distancePP(point, axis.getCenter()),\n coord: axis.pointToCoord(point),\n point\n });\n });\n return true;\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this.findAllAxisContains(relativeX, relativeY);\n if (xAxisMap.size === 0 && yAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this.currValueX.clear();\n this.currValueY.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && this.getAllAxisValues(xAxisMap, { x: relativeX, y: relativeY }, this.currValueX);\n yAxisMap && this.getAllAxisValues(yAxisMap, { x: relativeX, y: relativeY }, this.currValueY);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n private layoutByValue(tag: number) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<IPolarSeries>();\n if (!series) {\n return;\n }\n let xCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n let yCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n sides: (series.angleAxisHelper.getScale(0) as BandScale).ticks().length,\n label: { visible: false, text: '', offset: 0 }\n } as ICrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this.xHair) {\n xCrossHairInfo.visible = !!this.currValueX.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n this.currValueX.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n mergeSpec(xCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([v]);\n xCrossHairInfo.angle = angle;\n if (this.xHair.label?.visible) {\n xCrossHairInfo.label.visible = true;\n xCrossHairInfo.label.text = v;\n xCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n xCrossHairInfo.startAngle = angle - bandWidth / 2;\n xCrossHairInfo.endAngle = angle + bandWidth / 2;\n });\n }\n\n if (this.yHair) {\n yCrossHairInfo.visible = !!this.currValueY.size;\n this.currValueY.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n if (this.yHair.label?.visible) {\n yCrossHairInfo.label.visible = true;\n yCrossHairInfo.label.text = v;\n yCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n yCrossHairInfo.angle = coord.angle;\n yCrossHairInfo.axis = axis;\n mergeSpec(yCrossHairInfo, rest);\n });\n }\n\n if (this.enableRemain && !xCrossHairInfo.visible && isValid(this._cacheXCrossHairInfo)) {\n xCrossHairInfo = this._cacheXCrossHairInfo;\n } else {\n if (this.xHair?.label?.formatMethod && xCrossHairInfo.label.visible) {\n const { label } = xCrossHairInfo;\n label.text = this.xHair.label.formatMethod(label.text, 'angle') as string;\n }\n }\n\n if (this.enableRemain && !yCrossHairInfo.visible && isValid(this._cacheYCrossHairInfo)) {\n yCrossHairInfo = this._cacheYCrossHairInfo;\n } else {\n if (this.yHair?.label?.formatMethod && yCrossHairInfo.label.visible) {\n const { label } = yCrossHairInfo;\n label.text = this.yHair.label.formatMethod(label.text, 'radius') as string;\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(yCrossHairInfo);\n LayoutType.VERTICAL && this._layoutVertical(xCrossHairInfo);\n }\n\n if (this.enableRemain) {\n this._cacheXCrossHairInfo = { ...xCrossHairInfo, _isCache: true };\n this._cacheYCrossHairInfo = { ...yCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const container = this.getContainer();\n const { angle, innerRadius, radius, label, startAngle, endAngle, center, visible } = crosshairInfo;\n if (visible) {\n const crosshairType = this.xHair.type === 'rect' ? 'sector' : 'line';\n let positionAttrs;\n if (crosshairType === 'sector') {\n positionAttrs = {\n center,\n innerRadius,\n radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n } else {\n positionAttrs = {\n start: polarToCartesian(center, innerRadius, angle),\n end: polarToCartesian(center, radius, angle)\n };\n }\n\n if (this._angleCrosshair) {\n this._angleCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n // 创建\n if (crosshairType === 'line') {\n crosshair = new LineCrosshair({\n ...(positionAttrs as { start: IPoint; end: IPoint }),\n lineStyle: this.xHair.style,\n zIndex: this.gridZIndex\n });\n } else if (crosshairType === 'sector') {\n crosshair = new SectorCrosshair({\n ...(positionAttrs as {\n center: IPoint;\n innerRadius: number;\n radius: number;\n startAngle: number;\n endAngle: number;\n }),\n sectorStyle: this.xHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._angleCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = angleLabelOrientAttribute(angle);\n const labelAttrs = {\n ...polarToCartesian(center, radius + label.offset, angle),\n ...this.xHair.label,\n ...label,\n textStyle: {\n ...this.xHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._angleLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-angle-label';\n this._angleLabelCrosshair = label;\n });\n } else {\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const { center, startAngle, endAngle, distance, sides, axis, label, point, radius, innerRadius, visible } =\n crosshairInfo;\n const container = this.getContainer();\n if (visible) {\n const crosshairType = this.yHair.smooth ? 'circle' : 'polygon';\n\n let polygonRadius = distance;\n if (crosshairType === 'polygon') {\n const axisCenter = axis.getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, distance, preAngle);\n const nextPoint = polarToCartesian(axisCenter, distance, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance,\n innerRadius,\n radius\n );\n }\n }\n const positionAttrs = {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n\n if (this._radiusCrosshair) {\n this._radiusCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n if (crosshairType === 'polygon') {\n crosshair = new PolygonCrosshair({\n ...positionAttrs,\n lineStyle: this.yHair.style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else {\n crosshair = new CircleCrosshair({\n ...positionAttrs,\n lineStyle: this.yHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._radiusCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = radiusLabelOrientAttribute(startAngle);\n const labelAttrs = {\n ...polarToCartesian(center, polygonRadius, startAngle),\n ...this.yHair.label,\n ...label,\n textStyle: {\n ...this.yHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._radiusLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-radius-label';\n this._radiusLabelCrosshair = label;\n });\n } else {\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n }\n }\n }\n\n protected _parseFieldInfo() {\n const { categoryField, valueField } = this._crosshairConfig as IPolarCrosshairSpec;\n if (categoryField && categoryField.visible) {\n this.xHair = this._parseField(categoryField, 'categoryField');\n }\n if (valueField && valueField.visible) {\n this.yHair = this._parseField(valueField, 'valueField');\n this.yHair.smooth = valueField?.line?.smooth;\n }\n }\n\n private _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n getVRenderComponents(): IGraphic[] {\n return [\n this._radiusCrosshair,\n this._radiusLabelCrosshair,\n this._angleCrosshair,\n this._angleLabelCrosshair\n ] as unknown as IGroup[];\n }\n}\n\nexport const registerPolarCrossHair = () => {\n Factory.registerComponent(PolarCrossHair.type, PolarCrossHair);\n};\n"]}
@@ -6,7 +6,7 @@ import type { IModelRenderOption } from '../../model/interface';
6
6
  import type { LayoutItem } from '../../model/layout-item';
7
7
  import type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec } from '../../typings';
8
8
  import type { MarkTypeEnum } from '../../mark/interface';
9
- import type { IGroup } from '@visactor/vrender-core';
9
+ import type { IGraphic } from '@visactor/vrender-core';
10
10
  export declare class CustomMark extends BaseComponent<any> {
11
11
  static type: ComponentTypeEnum;
12
12
  type: ComponentTypeEnum;
@@ -27,7 +27,7 @@ export declare class CustomMark extends BaseComponent<any> {
27
27
  reCompile: boolean;
28
28
  };
29
29
  changeRegions(regions: IRegion[]): void;
30
- getVRenderComponents(): IGroup[];
30
+ getVRenderComponents(): IGraphic[];
31
31
  onRender(ctx: IModelRenderOption): void;
32
32
  private _getMarkAttributeContext;
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/custom-mark/custom-mark.ts"],"names":[],"mappings":";;;AAAA,kCAAwC;AACxC,4CAAiD;AAMjD,6CAAmE;AAInE,6CAA0E;AAC1E,gDAA6C;AAC7C,4CAA6C;AAG7C,MAAa,UAAW,SAAQ,oBAAkB;IAAlD;;QAEE,SAAI,GAAG,6BAAiB,CAAC,UAAU,CAAC;QAEpC,eAAU,GAA6B,UAAU,CAAC;QAClD,iBAAY,GAA+B,uBAAY,CAAC,UAAU,CAAC;QACnE,gBAAW,GAAW,sBAAW,CAAC,UAAU,CAAC;IA2G/C,CAAC;IAvGC,MAAM,CAAC,eAAe,CAAC,IAAS,EAAE,OAAyB;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;QACvC,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,CAAC,IAAI,UAAU,CAAC,cAAc,kCAAO,OAAO,KAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,IAAG,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO;SACR;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,iBAAM,WAAW,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAC1B,IAAyF,EACzF,UAA6B,EAC7B,UAAkB,EAClB,KAAa;;QAEb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAC3B;YACE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,GAAG,iBAAM,IAAI,KAAK,EAAE;SAC3B,EACD;YACE,gBAAgB,EAAE,IAAI,CAAC,wBAAwB,EAAE;SAClD,CACY,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,IAAI,IAAA,cAAK,EAAC,UAAU,CAAC,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC3B;aAAM,IAAI,UAAU,EAAE;YACrB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACzB,UAAU,GAAG,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;YACtC,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAI,CAAC,oBAAoB,CAAC,CAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAA,sBAAa,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5E,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACzC,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAED,SAAS;IAET,CAAC;IAKD,YAAY;QACV,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QAED,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,OAAkB;IAEhC,CAAC;IAED,oBAAoB;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,QAAQ,CAAC,GAAuB;IAEhC,CAAC;IACO,wBAAwB;QAC9B,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;YACnC,WAAW,EAAE,CAAC,GAAW,EAAE,KAAsB,EAAE,EAAE;;gBACnD,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,0CAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,CAAC;SACF,CAAC;IACJ,CAAC;;AAhHH,gCAiHC;AAhHQ,eAAI,GAAG,6BAAiB,CAAC,UAAU,CAAC;AAkHtC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,iBAAO,CAAC,YAAY,CAAC,iBAAS,CAAC,IAAI,EAAE,iBAAS,CAAC,CAAC;IAChD,iBAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC,CAAC;AAHW,QAAA,kBAAkB,sBAG7B","file":"custom-mark.js","sourcesContent":["import { BaseComponent } from '../base';\nimport { ComponentTypeEnum } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponentOption } from '../interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { LayoutItem } from '../../model/layout-item';\nimport { LayoutLevel, LayoutZIndex, PREFIX } from '../../constant';\nimport type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec } from '../../typings';\nimport type { IGroupMark } from '../../mark/group';\nimport type { MarkTypeEnum } from '../../mark/interface';\nimport { isEqual, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { ImageMark } from '../../mark/image';\nimport type { IGroup } from '@visactor/vrender-core';\n\nexport class CustomMark extends BaseComponent<any> {\n static type = ComponentTypeEnum.customMark;\n type = ComponentTypeEnum.customMark;\n\n layoutType: LayoutItem['layoutType'] = 'absolute';\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.CustomMark;\n layoutLevel: number = LayoutLevel.CustomMark;\n\n protected declare _spec: (ICustomMarkSpec<Exclude<EnableMarkType, MarkTypeEnum.group>> | ICustomMarkGroupSpec)[];\n\n static createComponent(spec: any, options: IComponentOption) {\n const customMarkSpec = spec.customMark;\n if (!customMarkSpec) {\n return null;\n }\n return [new CustomMark(customMarkSpec, { ...options, specIndex: 0, specKey: 'customMark' })];\n }\n\n created() {\n super.created();\n this.initMarks();\n this.initEvent();\n }\n\n protected initMarks() {\n if (!this._spec) {\n return;\n }\n this._spec.forEach((m, i) => {\n this._createExtensionMark(m, null, `${PREFIX}_series_${this.id}_extensionMark`, i);\n });\n }\n\n private _createExtensionMark(\n spec: ICustomMarkSpec<Exclude<EnableMarkType, MarkTypeEnum.group>> | ICustomMarkGroupSpec,\n parentMark: null | IGroupMark,\n namePrefix: string,\n index: number\n ) {\n const mark = this._createMark(\n {\n type: spec.type,\n name: `${PREFIX}_${index}`\n },\n {\n attributeContext: this._getMarkAttributeContext()\n }\n ) as IGroupMark;\n if (!mark) {\n return;\n }\n if (isNil(parentMark)) {\n this._marks.addMark(mark);\n } else if (parentMark) {\n parentMark.addMark(mark);\n }\n // set style\n this.initMarkStyleWithSpec(mark, spec);\n if (spec.type === 'group') {\n namePrefix = `${namePrefix}_${index}`;\n spec.children?.forEach((s, i) => {\n this._createExtensionMark(s as any, mark, namePrefix, i);\n });\n }\n\n if (isValid(spec.dataId) || isValidNumber(spec.dataIndex)) {\n const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex);\n if (dataview) {\n dataview.target.addListener('change', () => {\n mark.getData().updateData();\n });\n mark.setDataView(dataview);\n }\n }\n }\n\n initEvent() {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!isEqual(this._originalSpec, this._spec)) {\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing;\n }\n\n getVRenderComponents(): IGroup[] {\n return [];\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing;\n }\n private _getMarkAttributeContext() {\n return {\n vchart: this._option.globalInstance,\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n }\n };\n }\n}\n\nexport const registerCustomMark = () => {\n Factory.registerMark(ImageMark.type, ImageMark); // image mark is only needed In extension-mark component\n Factory.registerComponent(CustomMark.type, CustomMark);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/custom-mark/custom-mark.ts"],"names":[],"mappings":"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","file":"custom-mark.js","sourcesContent":["import { BaseComponent } from '../base';\nimport { ComponentTypeEnum } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponentOption } from '../interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { LayoutItem } from '../../model/layout-item';\nimport { LayoutLevel, LayoutZIndex, PREFIX } from '../../constant';\nimport type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec } from '../../typings';\nimport type { IGroupMark } from '../../mark/group';\nimport type { MarkTypeEnum } from '../../mark/interface';\nimport { isEqual, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { ImageMark } from '../../mark/image';\nimport type { IGraphic } from '@visactor/vrender-core';\n\nexport class CustomMark extends BaseComponent<any> {\n static type = ComponentTypeEnum.customMark;\n type = ComponentTypeEnum.customMark;\n\n layoutType: LayoutItem['layoutType'] = 'absolute';\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.CustomMark;\n layoutLevel: number = LayoutLevel.CustomMark;\n\n protected declare _spec: (ICustomMarkSpec<Exclude<EnableMarkType, MarkTypeEnum.group>> | ICustomMarkGroupSpec)[];\n\n static createComponent(spec: any, options: IComponentOption) {\n const customMarkSpec = spec.customMark;\n if (!customMarkSpec) {\n return null;\n }\n return [new CustomMark(customMarkSpec, { ...options, specIndex: 0, specKey: 'customMark' })];\n }\n\n created() {\n super.created();\n this.initMarks();\n this.initEvent();\n }\n\n protected initMarks() {\n if (!this._spec) {\n return;\n }\n this._spec.forEach((m, i) => {\n this._createExtensionMark(m, null, `${PREFIX}_series_${this.id}_extensionMark`, i);\n });\n }\n\n private _createExtensionMark(\n spec: ICustomMarkSpec<Exclude<EnableMarkType, MarkTypeEnum.group>> | ICustomMarkGroupSpec,\n parentMark: null | IGroupMark,\n namePrefix: string,\n index: number\n ) {\n const mark = this._createMark(\n {\n type: spec.type,\n name: `${PREFIX}_${index}`\n },\n {\n attributeContext: this._getMarkAttributeContext()\n }\n ) as IGroupMark;\n if (!mark) {\n return;\n }\n if (isNil(parentMark)) {\n this._marks.addMark(mark);\n } else if (parentMark) {\n parentMark.addMark(mark);\n }\n // set style\n this.initMarkStyleWithSpec(mark, spec);\n if (spec.type === 'group') {\n namePrefix = `${namePrefix}_${index}`;\n spec.children?.forEach((s, i) => {\n this._createExtensionMark(s as any, mark, namePrefix, i);\n });\n }\n\n if (isValid(spec.dataId) || isValidNumber(spec.dataIndex)) {\n const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex);\n if (dataview) {\n dataview.target.addListener('change', () => {\n mark.getData().updateData();\n });\n mark.setDataView(dataview);\n }\n }\n }\n\n initEvent() {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!isEqual(this._originalSpec, this._spec)) {\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing;\n }\n\n getVRenderComponents(): IGraphic[] {\n return [];\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing;\n }\n private _getMarkAttributeContext() {\n return {\n vchart: this._option.globalInstance,\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n }\n };\n }\n}\n\nexport const registerCustomMark = () => {\n Factory.registerMark(ImageMark.type, ImageMark); // image mark is only needed In extension-mark component\n Factory.registerComponent(CustomMark.type, CustomMark);\n};\n"]}
@@ -7,7 +7,7 @@ import type { IBaseScale } from '@visactor/vscale';
7
7
  import type { ICartesianBandAxisSpec } from '../axis/cartesian';
8
8
  import type { IBoundsLike } from '@visactor/vutils';
9
9
  import { IFilterMode } from './constant';
10
- import type { IDataFilterComponent, IDataFilterComponentSpec } from './interface';
10
+ import type { IDataFilterComponent, IDataFilterComponentSpec, IRoamDragSpec, IRoamScrollSpec, IRoamZoomSpec } from './interface';
11
11
  import type { BaseEventParams } from '../../event/interface';
12
12
  import type { AbstractComponent } from '@visactor/vrender-components';
13
13
  export declare abstract class DataFilterBaseComponent<T extends IDataFilterComponentSpec = IDataFilterComponentSpec> extends BaseComponent<AdaptiveSpec<T, 'width' | 'height'>> implements IDataFilterComponent {
@@ -34,20 +34,35 @@ export declare abstract class DataFilterBaseComponent<T extends IDataFilterCompo
34
34
  protected _endValue: number | string;
35
35
  protected _start: number;
36
36
  protected _end: number;
37
- protected _field: string;
37
+ protected _minSpan: number;
38
+ protected _maxSpan: number;
39
+ protected _field: string | undefined;
38
40
  protected _stateField: string;
39
41
  protected _valueField?: string;
40
42
  protected _width: number;
41
43
  protected _height: number;
42
44
  protected _filterMode: IFilterMode;
45
+ protected _activeRoam: boolean;
46
+ protected _zoomAttr: IRoamZoomSpec;
47
+ protected _dragAttr: IRoamDragSpec;
48
+ protected _scrollAttr: IRoamScrollSpec;
43
49
  setStartAndEnd(start: number, end: number): void;
50
+ enableInteraction(): void;
51
+ disableInteraction(): void;
52
+ zoomIn(location?: {
53
+ x: number;
54
+ y: number;
55
+ }): void;
56
+ zoomOut(location?: {
57
+ x: number;
58
+ y: number;
59
+ }): void;
44
60
  protected abstract _getComponentAttrs(): any;
45
61
  protected abstract _createOrUpdateComponent(): void;
46
- protected abstract _initEvent(): void;
47
62
  protected abstract _computeWidth(): number;
48
63
  protected abstract _computeHeight(): number;
49
- protected abstract _handleChange(start: number, end: number, updateComponent?: boolean): void;
50
64
  protected abstract _handleDataCollectionChange(): void;
65
+ protected _handleChange(start: number, end: number, updateComponent?: boolean): void;
51
66
  effect: IEffect;
52
67
  protected _visible: boolean;
53
68
  get visible(): boolean;
@@ -57,6 +72,7 @@ export declare abstract class DataFilterBaseComponent<T extends IDataFilterCompo
57
72
  protected _setRegionsFromSpec(): void;
58
73
  onDataUpdate(): void;
59
74
  protected _computeDomainOfStateScale(isContinuous?: boolean): any;
75
+ protected _initEvent(): void;
60
76
  protected _initData(): void;
61
77
  setAttrFromSpec(): void;
62
78
  protected _statePointToData(state: number): any;
@@ -81,16 +97,17 @@ export declare abstract class DataFilterBaseComponent<T extends IDataFilterCompo
81
97
  protected resize(ctx: IComponentOption): void;
82
98
  protected _parseDomainFromState(startValue: number | string, endValue: number | string): any;
83
99
  protected _handleStateChange: (startValue: number, endValue: number) => boolean;
100
+ protected _handleChartZoom: (params: {
101
+ zoomDelta: number;
102
+ zoomX?: number;
103
+ zoomY?: number;
104
+ }) => void;
84
105
  protected _handleChartScroll: (params: {
85
106
  scrollX: number;
86
107
  scrollY: number;
87
108
  }, e: BaseEventParams['event']) => void;
88
- protected _handleChartZoom: (params: {
89
- zoomDelta: number;
90
- zoomX: number;
91
- zoomY: number;
92
- }, e: BaseEventParams['event']) => void;
93
109
  protected _handleChartDrag: (delta: [number, number], e: BaseEventParams['event']) => void;
110
+ protected _handleChartMove: (value: number, rate: number) => void;
94
111
  protected _initCommonEvent(): void;
95
112
  updateLayoutAttribute(): void;
96
113
  _boundsInRect(rect: ILayoutRect): IBoundsLike;
@@ -19,12 +19,48 @@ class DataFilterBaseComponent extends base_1.BaseComponent {
19
19
  setStartAndEnd(start, end) {
20
20
  this._handleChange(start, end, !0);
21
21
  }
22
+ enableInteraction() {
23
+ this._activeRoam = !0;
24
+ }
25
+ disableInteraction() {
26
+ this._activeRoam = !1;
27
+ }
28
+ zoomIn(location) {
29
+ this._handleChartZoom({
30
+ zoomDelta: 1.2,
31
+ zoomX: null == location ? void 0 : location.x,
32
+ zoomY: null == location ? void 0 : location.y
33
+ });
34
+ }
35
+ zoomOut(location) {
36
+ this._handleChartZoom({
37
+ zoomDelta: .8,
38
+ zoomX: null == location ? void 0 : location.x,
39
+ zoomY: null == location ? void 0 : location.y
40
+ });
41
+ }
42
+ _handleChange(start, end, updateComponent) {
43
+ var _a;
44
+ null !== (_a = this._spec.zoomLock) && void 0 !== _a && _a || end - start < this._minSpan || this._maxSpan;
45
+ }
22
46
  get visible() {
23
47
  return this._visible;
24
48
  }
25
49
  constructor(spec, options) {
26
50
  super(spec, Object.assign({}, options)), this.layoutType = "region-relative", this._orient = "left",
27
- this._stateField = "x", this.effect = {
51
+ this._stateField = "x", this._activeRoam = !0, this._zoomAttr = {
52
+ enable: !0,
53
+ rate: 1,
54
+ focus: !0
55
+ }, this._dragAttr = {
56
+ enable: !0,
57
+ rate: 1,
58
+ reverse: !0
59
+ }, this._scrollAttr = {
60
+ enable: !0,
61
+ rate: 1,
62
+ reverse: !0
63
+ }, this.effect = {
28
64
  onZoomChange: () => {
29
65
  var _a;
30
66
  if (this._relatedAxisComponent && this._filterMode === constant_1.IFilterMode.axis) {
@@ -50,22 +86,40 @@ class DataFilterBaseComponent extends base_1.BaseComponent {
50
86
  return this._startValue = startValue, this._endValue = endValue, this._newDomain = this._parseDomainFromState(this._startValue, this._endValue),
51
87
  null === (_b = (_a = this.effect).onZoomChange) || void 0 === _b || _b.call(_a),
52
88
  !0;
53
- }, this._handleChartScroll = (params, e) => {
54
- this._handleChartDrag([ params.scrollX, params.scrollY ], e);
55
- }, this._handleChartZoom = (params, e) => {
56
- const {zoomDelta: zoomDelta} = params, delta = Math.abs(this._start - this._end);
57
- if (delta >= 1 && zoomDelta > 1) return;
58
- if (delta <= .01 && zoomDelta < 1) return;
59
- const value = delta * (zoomDelta - 1) * .15 / 2, start = (0, vutils_1.clamp)(this._start - value, 0, 1), end = (0,
60
- vutils_1.clamp)(this._end + value, 0, 1);
89
+ }, this._handleChartZoom = params => {
90
+ var _a, _b;
91
+ if (!this._activeRoam) return;
92
+ const {zoomDelta: zoomDelta, zoomX: zoomX, zoomY: zoomY} = params, {x: x, y: y} = this._regions[0].getLayoutStartPoint(), {width: width, height: height} = this._regions[0].getLayoutRect(), delta = Math.abs(this._start - this._end), zoomRate = null !== (_b = null === (_a = this._spec.roamZoom) || void 0 === _a ? void 0 : _a.rate) && void 0 !== _b ? _b : 1;
93
+ if (delta >= 1 && zoomDelta < 1) return;
94
+ if (delta <= .01 && zoomDelta > 1) return;
95
+ const focusLoc = this._isHorizontal ? zoomX : zoomY, totalValue = delta * (zoomDelta - 1) * zoomRate;
96
+ let startValue = totalValue / 2, endValue = totalValue / 2;
97
+ if (focusLoc) {
98
+ const startLoc = this._isHorizontal ? x : y, endLoc = this._isHorizontal ? width : height;
99
+ startValue = Math.abs(startLoc - focusLoc) / Math.abs(endLoc - startLoc) * totalValue,
100
+ endValue = Math.abs(endLoc - focusLoc) / Math.abs(endLoc - startLoc) * totalValue;
101
+ }
102
+ const start = (0, vutils_1.clamp)(this._start + startValue, 0, 1), end = (0, vutils_1.clamp)(this._end - endValue, 0, 1);
61
103
  this._handleChange(Math.min(start, end), Math.max(start, end), !0);
104
+ }, this._handleChartScroll = (params, e) => {
105
+ var _a;
106
+ if (!this._activeRoam) return;
107
+ const {scrollX: scrollX, scrollY: scrollY} = params;
108
+ let value = this._isHorizontal ? scrollX : scrollY;
109
+ this._scrollAttr.reverse || (value = -value), this._handleChartMove(value, null !== (_a = this._scrollAttr.rate) && void 0 !== _a ? _a : 1);
62
110
  }, this._handleChartDrag = (delta, e) => {
63
- const [dx, dy] = delta, value = this._isHorizontal ? dx : dy, totalValue = this._isHorizontal ? this.getLayoutRect().width : this.getLayoutRect().height;
111
+ var _a;
112
+ if (!this._activeRoam) return;
113
+ const [dx, dy] = delta;
114
+ let value = this._isHorizontal ? dx : dy;
115
+ this._dragAttr.reverse && (value = -value), this._handleChartMove(value, null !== (_a = this._dragAttr.rate) && void 0 !== _a ? _a : 1);
116
+ }, this._handleChartMove = (value, rate) => {
117
+ const totalValue = this._isHorizontal ? this.getLayoutRect().width : this.getLayoutRect().height;
64
118
  if (Math.abs(value) >= 1e-6) if (value > 0 && this._end < 1) {
65
- const moveDelta = .02 * Math.min(1 - this._end, value / totalValue);
119
+ const moveDelta = Math.min(1 - this._end, value / totalValue) * rate;
66
120
  this._handleChange(this._start + moveDelta, this._end + moveDelta, !0);
67
121
  } else if (value < 0 && this._start > 0) {
68
- const moveDelta = .02 * Math.max(-this._start, value / totalValue);
122
+ const moveDelta = Math.max(-this._start, value / totalValue) * rate;
69
123
  this._handleChange(this._start + moveDelta, this._end + moveDelta, !0);
70
124
  }
71
125
  }, this._orient = (0, util_3.getOrient)(spec), this._layoutOrient = this._orient,
@@ -73,8 +127,8 @@ class DataFilterBaseComponent extends base_1.BaseComponent {
73
127
  (0, util_1.isValid)(spec.autoIndent) && (this._autoIndent = spec.autoIndent);
74
128
  }
75
129
  created() {
76
- super.created(), this._setAxisFromSpec(), this._setRegionsFromSpec(), this._initData(),
77
- this._initStateScale(), this._setStateFromSpec();
130
+ super.created(), this._setAxisFromSpec(), this._setRegionsFromSpec(), this._initEvent(),
131
+ this._initData(), this._initStateScale(), this._setStateFromSpec();
78
132
  }
79
133
  _setAxisFromSpec() {
80
134
  if ((0, util_1.isValid)(this._spec.axisId) ? this._relatedAxisComponent = this._option.getComponentByUserId(this._spec.axisId) : (0,
@@ -117,6 +171,9 @@ class DataFilterBaseComponent extends base_1.BaseComponent {
117
171
  const domain = this._data.getLatestData().map((d => d[this._stateField]));
118
172
  return isContinuous ? domain.length ? [ Math.min.apply(null, domain), Math.max.apply(null, domain) ] : [ -1 / 0, 1 / 0 ] : domain;
119
173
  }
174
+ _initEvent() {
175
+ this._initCommonEvent();
176
+ }
120
177
  _initData() {
121
178
  const dataCollection = [], stateFields = [], valueFields = [];
122
179
  let hasValidateValueField = !1;
@@ -168,7 +225,10 @@ class DataFilterBaseComponent extends base_1.BaseComponent {
168
225
  }
169
226
  setAttrFromSpec() {
170
227
  var _a;
171
- super.setAttrFromSpec(), this._spec.roam && this.initZoomable(this.event, this._option.mode),
228
+ super.setAttrFromSpec(), !0 === this._spec.roamZoom || this._spec.roamZoom ? this._zoomAttr = (0,
229
+ vutils_1.merge)({}, this._zoomAttr, this._spec.roamZoom) : this._zoomAttr.enable = !1,
230
+ !0 === this._spec.roamDrag || this._spec.roamDrag ? this._dragAttr = (0, vutils_1.merge)({}, this._dragAttr, this._spec.roamDrag) : this._dragAttr.enable = !1,
231
+ !0 === this._spec.roamScroll || this._spec.roamScroll ? this._scrollAttr = (0, vutils_1.merge)({}, this._scrollAttr, this._spec.roamScroll) : this._scrollAttr.enable = !1,
172
232
  this._field = this._spec.field, this._width = this._computeWidth(), this._height = this._computeHeight(),
173
233
  this._visible = null === (_a = this._spec.visible) || void 0 === _a || _a;
174
234
  }
@@ -189,6 +249,7 @@ class DataFilterBaseComponent extends base_1.BaseComponent {
189
249
  return "start" === statePoint ? "percent" === mode && this._spec.start || "value" === mode && this._spec.startValue : "percent" === mode && this._spec.end || "value" === mode && this._spec.endValue;
190
250
  }
191
251
  _setStateFromSpec() {
252
+ var _a, _b;
192
253
  let start, end;
193
254
  if (this._auto = !!this._spec.auto, this._spec.rangeMode) {
194
255
  const [startMode, endMode] = this._spec.rangeMode;
@@ -197,7 +258,12 @@ class DataFilterBaseComponent extends base_1.BaseComponent {
197
258
  } else start = this._spec.start ? this._spec.start : this._spec.startValue ? this._dataToStatePoint(this._spec.startValue) : 0,
198
259
  end = this._spec.end ? this._spec.end : this._spec.endValue ? this._dataToStatePoint(this._spec.endValue) : 1;
199
260
  this._startValue = this._statePointToData(start), this._endValue = this._statePointToData(end),
200
- this._start = start, this._end = end, this._relatedAxisComponent && this._filterMode === constant_1.IFilterMode.axis || 0 === this._start && 1 === this._end || (this._newDomain = this._parseDomainFromState(this._startValue, this._endValue));
261
+ this._start = start, this._end = end, this._minSpan = null !== (_a = this._spec.minSpan) && void 0 !== _a ? _a : 0,
262
+ this._maxSpan = null !== (_b = this._spec.maxSpan) && void 0 !== _b ? _b : 1, (0,
263
+ vscale_1.isContinuous)(this._stateScale.type) && this._stateScale.domain[0] !== this._stateScale.domain[1] && (this._spec.minValueSpan && (this._minSpan = this._spec.minValueSpan / (this._stateScale.domain()[1] - this._stateScale.domain()[0])),
264
+ this._spec.maxValueSpan && (this._maxSpan = this._spec.maxValueSpan / (this._stateScale.domain()[1] - this._stateScale.domain()[0]))),
265
+ this._minSpan = Math.max(0, this._minSpan), this._maxSpan = Math.min(this._maxSpan, 1),
266
+ this._relatedAxisComponent && this._filterMode === constant_1.IFilterMode.axis || 0 === this._start && 1 === this._end || (this._newDomain = this._parseDomainFromState(this._startValue, this._endValue));
201
267
  }
202
268
  _parseFieldOfSeries(s) {
203
269
  var _a;
@@ -255,12 +321,18 @@ class DataFilterBaseComponent extends base_1.BaseComponent {
255
321
  return allDomain.slice(Math.min(startIndex, endIndex), Math.max(startIndex, endIndex) + 1);
256
322
  }
257
323
  _initCommonEvent() {
258
- this._spec.roam && (this.initZoomEventOfRegions(this._regions, null, this._handleChartZoom),
259
- this.initScrollEventOfRegions(this._regions, null, this._handleChartScroll), this.initDragEventOfRegions(this._regions, null, this._handleChartDrag));
324
+ var _a, _b, _c, _d, _e, _f, _g;
325
+ const option = {
326
+ delayType: null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.delayType) && void 0 !== _b ? _b : "throttle",
327
+ delayTime: (0, util_1.isValid)(null === (_c = this._spec) || void 0 === _c ? void 0 : _c.delayType) ? null !== (_e = null === (_d = this._spec) || void 0 === _d ? void 0 : _d.delayTime) && void 0 !== _e ? _e : 30 : 0,
328
+ realTime: null !== (_g = null === (_f = this._spec) || void 0 === _f ? void 0 : _f.realTime) && void 0 !== _g && _g
329
+ };
330
+ this._zoomAttr.enable && this.initZoomEventOfRegions(this._regions, null, this._handleChartZoom, option),
331
+ this._scrollAttr.enable && this.initScrollEventOfRegions(this._regions, null, this._handleChartScroll, option),
332
+ this._dragAttr.enable && this.initDragEventOfRegions(this._regions, null, this._handleChartDrag, option);
260
333
  }
261
334
  updateLayoutAttribute() {
262
- this._visible && this._createOrUpdateComponent(), this._initCommonEvent(), this._initEvent(),
263
- super.updateLayoutAttribute();
335
+ this._visible && this._createOrUpdateComponent(), super.updateLayoutAttribute();
264
336
  }
265
337
  _boundsInRect(rect) {
266
338
  if (!this._autoUpdate(rect)) return {