@visactor/vchart 1.7.1 → 1.7.3

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 (353) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +17050 -13892
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.d.ts +1 -0
  6. package/cjs/animation/utils.js +16 -8
  7. package/cjs/animation/utils.js.map +1 -1
  8. package/cjs/chart/bar/bar-3d.d.ts +2 -2
  9. package/cjs/chart/bar/bar-3d.js +2 -2
  10. package/cjs/chart/bar/bar-3d.js.map +1 -1
  11. package/cjs/chart/base-chart.d.ts +2 -5
  12. package/cjs/chart/base-chart.js +8 -46
  13. package/cjs/chart/base-chart.js.map +1 -1
  14. package/cjs/chart/cartesian/interface.d.ts +1 -1
  15. package/cjs/chart/cartesian/interface.js.map +1 -1
  16. package/cjs/chart/index.js +1 -2
  17. package/cjs/chart/interface/chart.d.ts +3 -3
  18. package/cjs/chart/interface/chart.js.map +1 -1
  19. package/cjs/chart/sequence/sequence.js +1 -0
  20. package/cjs/chart/sequence/sequence.js.map +1 -1
  21. package/cjs/compile/compiler.js +2 -1
  22. package/cjs/compile/mark/compilable-mark.js +6 -9
  23. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  24. package/cjs/component/axis/base-axis.d.ts +2 -1
  25. package/cjs/component/axis/base-axis.js +5 -1
  26. package/cjs/component/axis/base-axis.js.map +1 -1
  27. package/cjs/component/axis/cartesian/axis.d.ts +1 -1
  28. package/cjs/component/axis/cartesian/axis.js +5 -3
  29. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  30. package/cjs/component/axis/cartesian/band-axis.js +2 -2
  31. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  32. package/cjs/component/axis/cartesian/util/common.d.ts +0 -2
  33. package/cjs/component/axis/cartesian/util/common.js +2 -14
  34. package/cjs/component/axis/cartesian/util/common.js.map +1 -1
  35. package/cjs/component/axis/interface/common.d.ts +1 -0
  36. package/cjs/component/axis/interface/common.js.map +1 -1
  37. package/cjs/component/axis/polar/axis.js +3 -1
  38. package/cjs/component/axis/polar/axis.js.map +1 -1
  39. package/cjs/component/axis/polar/interface/common.d.ts +2 -3
  40. package/cjs/component/axis/polar/interface/common.js.map +1 -1
  41. package/cjs/component/base/base-component.d.ts +2 -7
  42. package/cjs/component/base/base-component.js +5 -5
  43. package/cjs/component/base/base-component.js.map +1 -1
  44. package/cjs/component/brush/brush.d.ts +1 -1
  45. package/cjs/component/brush/brush.js +1 -1
  46. package/cjs/component/brush/brush.js.map +1 -1
  47. package/cjs/component/crosshair/base.d.ts +4 -5
  48. package/cjs/component/crosshair/base.js +38 -25
  49. package/cjs/component/crosshair/base.js.map +1 -1
  50. package/cjs/component/crosshair/cartesian.d.ts +12 -35
  51. package/cjs/component/crosshair/cartesian.js +119 -110
  52. package/cjs/component/crosshair/cartesian.js.map +1 -1
  53. package/cjs/component/crosshair/config.d.ts +6 -0
  54. package/cjs/component/crosshair/config.js +8 -2
  55. package/cjs/component/crosshair/config.js.map +1 -1
  56. package/cjs/component/crosshair/interface/spec.d.ts +7 -3
  57. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  58. package/cjs/component/crosshair/polar.d.ts +13 -55
  59. package/cjs/component/crosshair/polar.js +110 -83
  60. package/cjs/component/crosshair/polar.js.map +1 -1
  61. package/cjs/component/custom-mark/custom-mark.d.ts +1 -1
  62. package/cjs/component/custom-mark/custom-mark.js +1 -1
  63. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  64. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
  65. package/cjs/component/data-zoom/data-filter-base-component.js +1 -1
  66. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  67. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  68. package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -1
  69. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  70. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -1
  71. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +1 -1
  72. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  73. package/cjs/component/geo/geo-coordinate.d.ts +1 -1
  74. package/cjs/component/geo/geo-coordinate.js +1 -1
  75. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  76. package/cjs/component/indicator/indicator.d.ts +1 -1
  77. package/cjs/component/indicator/indicator.js +1 -1
  78. package/cjs/component/indicator/indicator.js.map +1 -1
  79. package/cjs/component/label/base-label.d.ts +1 -1
  80. package/cjs/component/label/base-label.js +1 -1
  81. package/cjs/component/label/base-label.js.map +1 -1
  82. package/cjs/component/label/label.d.ts +1 -0
  83. package/cjs/component/label/label.js +7 -0
  84. package/cjs/component/label/label.js.map +1 -1
  85. package/cjs/component/label/totalLabel.d.ts +1 -0
  86. package/cjs/component/label/totalLabel.js +7 -0
  87. package/cjs/component/label/totalLabel.js.map +1 -1
  88. package/cjs/component/legend/base-legend.d.ts +1 -1
  89. package/cjs/component/legend/base-legend.js +1 -1
  90. package/cjs/component/legend/base-legend.js.map +1 -1
  91. package/cjs/component/legend/continuous/interface.d.ts +1 -0
  92. package/cjs/component/legend/continuous/interface.js.map +1 -1
  93. package/cjs/component/legend/continuous/legend.js +5 -3
  94. package/cjs/component/legend/continuous/legend.js.map +1 -1
  95. package/cjs/component/map-label/component.d.ts +1 -1
  96. package/cjs/component/map-label/component.js +2 -2
  97. package/cjs/component/map-label/component.js.map +1 -1
  98. package/cjs/component/marker/base-marker.d.ts +23 -25
  99. package/cjs/component/marker/base-marker.js +40 -51
  100. package/cjs/component/marker/base-marker.js.map +1 -1
  101. package/cjs/component/marker/interface.d.ts +19 -9
  102. package/cjs/component/marker/interface.js.map +1 -1
  103. package/cjs/component/marker/mark-area/interface/spec.d.ts +10 -12
  104. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  105. package/cjs/component/marker/mark-area/mark-area.d.ts +3 -2
  106. package/cjs/component/marker/mark-area/mark-area.js +12 -22
  107. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  108. package/cjs/component/marker/mark-line/interface/spec.d.ts +20 -9
  109. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  110. package/cjs/component/marker/mark-line/mark-line.d.ts +4 -2
  111. package/cjs/component/marker/mark-line/mark-line.js +60 -60
  112. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  113. package/cjs/component/marker/mark-point/interface/spec.d.ts +8 -6
  114. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  115. package/cjs/component/marker/mark-point/mark-point.d.ts +3 -2
  116. package/cjs/component/marker/mark-point/mark-point.js +15 -19
  117. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  118. package/cjs/component/marker/utils.d.ts +13 -2
  119. package/cjs/component/marker/utils.js +108 -39
  120. package/cjs/component/marker/utils.js.map +1 -1
  121. package/cjs/component/player/player.d.ts +1 -1
  122. package/cjs/component/player/player.js +1 -1
  123. package/cjs/component/player/player.js.map +1 -1
  124. package/cjs/component/title/title.d.ts +1 -1
  125. package/cjs/component/title/title.js +1 -1
  126. package/cjs/component/title/title.js.map +1 -1
  127. package/cjs/component/tooltip/tooltip.d.ts +1 -1
  128. package/cjs/component/tooltip/tooltip.js +4 -3
  129. package/cjs/component/tooltip/tooltip.js.map +1 -1
  130. package/cjs/core/index.d.ts +1 -1
  131. package/cjs/core/index.js +1 -1
  132. package/cjs/core/index.js.map +1 -1
  133. package/cjs/core/vchart.js +5 -4
  134. package/cjs/core/vchart.js.map +1 -1
  135. package/cjs/data/transforms/aggregation.d.ts +3 -3
  136. package/cjs/data/transforms/aggregation.js +5 -7
  137. package/cjs/data/transforms/aggregation.js.map +1 -1
  138. package/cjs/event/events/dimension/util/polar.js +2 -2
  139. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  140. package/cjs/layout/layout3d/index.js +1 -1
  141. package/cjs/layout/layout3d/index.js.map +1 -1
  142. package/cjs/mark/base/base-mark.js +2 -5
  143. package/cjs/mark/base/base-mark.js.map +1 -1
  144. package/cjs/model/base-model.d.ts +1 -1
  145. package/cjs/model/base-model.js +6 -38
  146. package/cjs/model/base-model.js.map +1 -1
  147. package/cjs/model/interface.d.ts +2 -1
  148. package/cjs/model/interface.js.map +1 -1
  149. package/cjs/region/region.js +4 -2
  150. package/cjs/region/region.js.map +1 -1
  151. package/cjs/series/bar/bar.js +6 -11
  152. package/cjs/series/bar/bar.js.map +1 -1
  153. package/cjs/series/base/base-series.js +12 -9
  154. package/cjs/series/base/base-series.js.map +1 -1
  155. package/cjs/series/box-plot/box-plot.js +4 -12
  156. package/cjs/series/box-plot/box-plot.js.map +1 -1
  157. package/cjs/series/gauge/gauge-pointer.d.ts +2 -1
  158. package/cjs/series/gauge/gauge-pointer.js +16 -9
  159. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  160. package/cjs/series/gauge/gauge.js +13 -1
  161. package/cjs/series/gauge/gauge.js.map +1 -1
  162. package/cjs/series/gauge/interface.d.ts +2 -0
  163. package/cjs/series/gauge/interface.js.map +1 -1
  164. package/cjs/series/heatmap/heatmap.js +4 -9
  165. package/cjs/series/heatmap/heatmap.js.map +1 -1
  166. package/cjs/series/pie/pie.js +1 -1
  167. package/cjs/series/pie/pie.js.map +1 -1
  168. package/cjs/series/range-column/range-column.js +7 -15
  169. package/cjs/series/range-column/range-column.js.map +1 -1
  170. package/cjs/series/util/utils.d.ts +5 -0
  171. package/cjs/series/util/utils.js +18 -2
  172. package/cjs/series/util/utils.js.map +1 -1
  173. package/cjs/series/waterfall/waterfall.js +7 -11
  174. package/cjs/series/waterfall/waterfall.js.map +1 -1
  175. package/cjs/theme/builtin/common/component/crosshair.js +0 -8
  176. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  177. package/cjs/typings/visual.d.ts +3 -2
  178. package/cjs/typings/visual.js.map +1 -1
  179. package/esm/animation/utils.d.ts +1 -0
  180. package/esm/animation/utils.js +12 -7
  181. package/esm/animation/utils.js.map +1 -1
  182. package/esm/chart/bar/bar-3d.d.ts +2 -2
  183. package/esm/chart/bar/bar-3d.js +3 -3
  184. package/esm/chart/bar/bar-3d.js.map +1 -1
  185. package/esm/chart/base-chart.d.ts +2 -5
  186. package/esm/chart/base-chart.js +8 -46
  187. package/esm/chart/base-chart.js.map +1 -1
  188. package/esm/chart/cartesian/interface.d.ts +1 -1
  189. package/esm/chart/cartesian/interface.js.map +1 -1
  190. package/esm/chart/index.js +1 -2
  191. package/esm/chart/interface/chart.d.ts +3 -3
  192. package/esm/chart/interface/chart.js.map +1 -1
  193. package/esm/chart/sequence/sequence.js +1 -0
  194. package/esm/chart/sequence/sequence.js.map +1 -1
  195. package/esm/compile/compiler.js +2 -1
  196. package/esm/compile/mark/compilable-mark.js +6 -10
  197. package/esm/compile/mark/compilable-mark.js.map +1 -1
  198. package/esm/component/axis/base-axis.d.ts +2 -1
  199. package/esm/component/axis/base-axis.js +5 -1
  200. package/esm/component/axis/base-axis.js.map +1 -1
  201. package/esm/component/axis/cartesian/axis.d.ts +1 -1
  202. package/esm/component/axis/cartesian/axis.js +5 -3
  203. package/esm/component/axis/cartesian/axis.js.map +1 -1
  204. package/esm/component/axis/cartesian/band-axis.js +1 -3
  205. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  206. package/esm/component/axis/cartesian/util/common.d.ts +0 -2
  207. package/esm/component/axis/cartesian/util/common.js +0 -11
  208. package/esm/component/axis/cartesian/util/common.js.map +1 -1
  209. package/esm/component/axis/interface/common.d.ts +1 -0
  210. package/esm/component/axis/interface/common.js.map +1 -1
  211. package/esm/component/axis/polar/axis.js +3 -1
  212. package/esm/component/axis/polar/axis.js.map +1 -1
  213. package/esm/component/axis/polar/interface/common.d.ts +2 -3
  214. package/esm/component/axis/polar/interface/common.js.map +1 -1
  215. package/esm/component/base/base-component.d.ts +2 -7
  216. package/esm/component/base/base-component.js +5 -5
  217. package/esm/component/base/base-component.js.map +1 -1
  218. package/esm/component/brush/brush.d.ts +1 -1
  219. package/esm/component/brush/brush.js +1 -1
  220. package/esm/component/brush/brush.js.map +1 -1
  221. package/esm/component/crosshair/base.d.ts +4 -5
  222. package/esm/component/crosshair/base.js +37 -25
  223. package/esm/component/crosshair/base.js.map +1 -1
  224. package/esm/component/crosshair/cartesian.d.ts +12 -35
  225. package/esm/component/crosshair/cartesian.js +112 -103
  226. package/esm/component/crosshair/cartesian.js.map +1 -1
  227. package/esm/component/crosshair/config.d.ts +6 -0
  228. package/esm/component/crosshair/config.js +7 -0
  229. package/esm/component/crosshair/config.js.map +1 -1
  230. package/esm/component/crosshair/interface/spec.d.ts +7 -3
  231. package/esm/component/crosshair/interface/spec.js.map +1 -1
  232. package/esm/component/crosshair/polar.d.ts +13 -55
  233. package/esm/component/crosshair/polar.js +110 -79
  234. package/esm/component/crosshair/polar.js.map +1 -1
  235. package/esm/component/custom-mark/custom-mark.d.ts +1 -1
  236. package/esm/component/custom-mark/custom-mark.js +1 -1
  237. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  238. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
  239. package/esm/component/data-zoom/data-filter-base-component.js +1 -1
  240. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  241. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  242. package/esm/component/data-zoom/data-zoom/data-zoom.js +1 -1
  243. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  244. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -1
  245. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +1 -1
  246. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  247. package/esm/component/geo/geo-coordinate.d.ts +1 -1
  248. package/esm/component/geo/geo-coordinate.js +1 -1
  249. package/esm/component/geo/geo-coordinate.js.map +1 -1
  250. package/esm/component/indicator/indicator.d.ts +1 -1
  251. package/esm/component/indicator/indicator.js +1 -1
  252. package/esm/component/indicator/indicator.js.map +1 -1
  253. package/esm/component/label/base-label.d.ts +1 -1
  254. package/esm/component/label/base-label.js +1 -1
  255. package/esm/component/label/base-label.js.map +1 -1
  256. package/esm/component/label/label.d.ts +1 -0
  257. package/esm/component/label/label.js +7 -0
  258. package/esm/component/label/label.js.map +1 -1
  259. package/esm/component/label/totalLabel.d.ts +1 -0
  260. package/esm/component/label/totalLabel.js +7 -0
  261. package/esm/component/label/totalLabel.js.map +1 -1
  262. package/esm/component/legend/base-legend.d.ts +1 -1
  263. package/esm/component/legend/base-legend.js +1 -1
  264. package/esm/component/legend/base-legend.js.map +1 -1
  265. package/esm/component/legend/continuous/interface.d.ts +1 -0
  266. package/esm/component/legend/continuous/interface.js.map +1 -1
  267. package/esm/component/legend/continuous/legend.js +5 -3
  268. package/esm/component/legend/continuous/legend.js.map +1 -1
  269. package/esm/component/map-label/component.d.ts +1 -1
  270. package/esm/component/map-label/component.js +2 -2
  271. package/esm/component/map-label/component.js.map +1 -1
  272. package/esm/component/marker/base-marker.d.ts +23 -25
  273. package/esm/component/marker/base-marker.js +42 -53
  274. package/esm/component/marker/base-marker.js.map +1 -1
  275. package/esm/component/marker/interface.d.ts +19 -9
  276. package/esm/component/marker/interface.js.map +1 -1
  277. package/esm/component/marker/mark-area/interface/spec.d.ts +10 -12
  278. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  279. package/esm/component/marker/mark-area/mark-area.d.ts +3 -2
  280. package/esm/component/marker/mark-area/mark-area.js +10 -22
  281. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  282. package/esm/component/marker/mark-line/interface/spec.d.ts +20 -9
  283. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  284. package/esm/component/marker/mark-line/mark-line.d.ts +4 -2
  285. package/esm/component/marker/mark-line/mark-line.js +58 -54
  286. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  287. package/esm/component/marker/mark-point/interface/spec.d.ts +8 -6
  288. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  289. package/esm/component/marker/mark-point/mark-point.d.ts +3 -2
  290. package/esm/component/marker/mark-point/mark-point.js +12 -20
  291. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  292. package/esm/component/marker/utils.d.ts +13 -2
  293. package/esm/component/marker/utils.js +103 -35
  294. package/esm/component/marker/utils.js.map +1 -1
  295. package/esm/component/player/player.d.ts +1 -1
  296. package/esm/component/player/player.js +1 -1
  297. package/esm/component/player/player.js.map +1 -1
  298. package/esm/component/title/title.d.ts +1 -1
  299. package/esm/component/title/title.js +1 -1
  300. package/esm/component/title/title.js.map +1 -1
  301. package/esm/component/tooltip/tooltip.d.ts +1 -1
  302. package/esm/component/tooltip/tooltip.js +4 -2
  303. package/esm/component/tooltip/tooltip.js.map +1 -1
  304. package/esm/core/index.d.ts +1 -1
  305. package/esm/core/index.js +1 -1
  306. package/esm/core/index.js.map +1 -1
  307. package/esm/core/vchart.js +5 -4
  308. package/esm/core/vchart.js.map +1 -1
  309. package/esm/data/transforms/aggregation.d.ts +3 -3
  310. package/esm/data/transforms/aggregation.js +6 -8
  311. package/esm/data/transforms/aggregation.js.map +1 -1
  312. package/esm/event/events/dimension/util/polar.js +2 -2
  313. package/esm/event/events/dimension/util/polar.js.map +1 -1
  314. package/esm/layout/layout3d/index.js +1 -1
  315. package/esm/layout/layout3d/index.js.map +1 -1
  316. package/esm/mark/base/base-mark.js +1 -4
  317. package/esm/mark/base/base-mark.js.map +1 -1
  318. package/esm/model/base-model.d.ts +1 -1
  319. package/esm/model/base-model.js +6 -39
  320. package/esm/model/base-model.js.map +1 -1
  321. package/esm/model/interface.d.ts +2 -1
  322. package/esm/model/interface.js.map +1 -1
  323. package/esm/region/region.js +5 -1
  324. package/esm/region/region.js.map +1 -1
  325. package/esm/series/bar/bar.js +5 -9
  326. package/esm/series/bar/bar.js.map +1 -1
  327. package/esm/series/base/base-series.js +10 -7
  328. package/esm/series/base/base-series.js.map +1 -1
  329. package/esm/series/box-plot/box-plot.js +5 -11
  330. package/esm/series/box-plot/box-plot.js.map +1 -1
  331. package/esm/series/gauge/gauge-pointer.d.ts +2 -1
  332. package/esm/series/gauge/gauge-pointer.js +16 -9
  333. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  334. package/esm/series/gauge/gauge.js +13 -1
  335. package/esm/series/gauge/gauge.js.map +1 -1
  336. package/esm/series/gauge/interface.d.ts +2 -0
  337. package/esm/series/gauge/interface.js.map +1 -1
  338. package/esm/series/heatmap/heatmap.js +4 -8
  339. package/esm/series/heatmap/heatmap.js.map +1 -1
  340. package/esm/series/pie/pie.js +1 -1
  341. package/esm/series/pie/pie.js.map +1 -1
  342. package/esm/series/range-column/range-column.js +6 -12
  343. package/esm/series/range-column/range-column.js.map +1 -1
  344. package/esm/series/util/utils.d.ts +5 -0
  345. package/esm/series/util/utils.js +15 -0
  346. package/esm/series/util/utils.js.map +1 -1
  347. package/esm/series/waterfall/waterfall.js +6 -9
  348. package/esm/series/waterfall/waterfall.js.map +1 -1
  349. package/esm/theme/builtin/common/component/crosshair.js +0 -8
  350. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  351. package/esm/typings/visual.d.ts +3 -2
  352. package/esm/typings/visual.js.map +1 -1
  353. package/package.json +15 -15
@@ -10,3 +10,9 @@ export declare function getDefaultCrosshairTriggerEventByMode(mode: RenderMode):
10
10
  hoverOut: string;
11
11
  clickOut: string;
12
12
  };
13
+ export declare enum LayoutType {
14
+ ALL = 3,
15
+ HORIZONTAL = 2,
16
+ VERTICAL = 1,
17
+ NONE = 0
18
+ }
@@ -15,4 +15,11 @@ export function getDefaultCrosshairTriggerEventByMode(mode) {
15
15
  clickOut: "pointerleave"
16
16
  } : null;
17
17
  }
18
+
19
+ export var LayoutType;
20
+
21
+ !function(LayoutType) {
22
+ LayoutType[LayoutType.ALL = 3] = "ALL", LayoutType[LayoutType.HORIZONTAL = 2] = "HORIZONTAL",
23
+ LayoutType[LayoutType.VERTICAL = 1] = "VERTICAL", LayoutType[LayoutType.NONE = 0] = "NONE";
24
+ }(LayoutType || (LayoutType = {}));
18
25
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,UAAU,qCAAqC,CAAC,IAAgB;IACpE,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;YACrC,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC","file":"config.js","sourcesContent":["import type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../../util';\n\nexport function getDefaultCrosshairTriggerEventByMode(mode: RenderMode) {\n if (mode === RenderModeEnum['desktop-browser'] || mode === RenderModeEnum['desktop-miniApp']) {\n return {\n click: 'pointertap',\n hover: 'pointermove',\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n };\n }\n\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n return {\n click: 'tap',\n hover: ['pointerdown', 'pointermove'],\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n };\n }\n\n return null;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,UAAU,qCAAqC,CAAC,IAAgB;IACpE,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;YACrC,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,yCAAY,CAAA;IACZ,uDAAmB,CAAA;IACnB,mDAAiB,CAAA;IACjB,2CAAa,CAAA;AACf,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB","file":"config.js","sourcesContent":["import type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../../util';\n\nexport function getDefaultCrosshairTriggerEventByMode(mode: RenderMode) {\n if (mode === RenderModeEnum['desktop-browser'] || mode === RenderModeEnum['desktop-miniApp']) {\n return {\n click: 'pointertap',\n hover: 'pointermove',\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n };\n }\n\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n return {\n click: 'tap',\n hover: ['pointerdown', 'pointermove'],\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n };\n }\n\n return null;\n}\n\nexport enum LayoutType {\n ALL = 0b0011,\n HORIZONTAL = 0b0010,\n VERTICAL = 0b0001,\n NONE = 0b0000\n}\n"]}
@@ -25,10 +25,10 @@ export interface IPolarCrosshairSpec extends ICommonCrosshairSpec {
25
25
  }
26
26
  export interface ICrosshairCategoryFieldSpec extends ICrosshairDataBindSpec {
27
27
  visible: boolean;
28
- line?: ICrosshairLineSpec | ICrosshairRectSpec;
28
+ line?: ICrosshairLineSpec | Omit<ICrosshairRectSpec, 'width'>;
29
29
  label?: ICrosshairLabelSpec;
30
30
  }
31
- export interface ICrosshairValueFieldSpec {
31
+ export interface ICrosshairValueFieldSpec extends ICrosshairDataBindSpec {
32
32
  visible: boolean;
33
33
  line?: ICrosshairLineSpec;
34
34
  label?: ICrosshairLabelSpec;
@@ -42,10 +42,14 @@ export interface ICrosshairLineSpec {
42
42
  smooth?: boolean;
43
43
  style?: ICrosshairLineStyle;
44
44
  }
45
+ export type ICrosshairRectWidthCallback = (axisSize: {
46
+ width: number;
47
+ height: number;
48
+ }, axis: IAxis) => number;
45
49
  export interface ICrosshairRectSpec {
46
50
  visible?: boolean;
47
51
  type?: 'rect';
48
- width?: number | string;
52
+ width?: number | string | ICrosshairRectWidthCallback;
49
53
  style?: ICrosshairRectStyle;
50
54
  }
51
55
  export interface ICrosshairLabelSpec {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IPadding, StringOrNumber, ILineMarkSpec, IRectMarkSpec, ITextMarkSpec } from '../../../typings';\nimport type { IAxis } from '../../axis/interface';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { IComponent } from '../../interface';\n\nexport interface ICrossHair extends IComponent {\n clearAxisValue?: () => void;\n setAxisValue?: (v: StringOrNumber, axis: IAxis) => void;\n layoutByValue?: (v?: number) => void;\n hide?: () => void;\n}\n\nexport type CrossHairTrigger = 'click' | 'hover' | ['click', 'hover'];\n\nexport interface ICommonCrosshairSpec extends IComponentSpec {\n /**\n * 是否可以通过 点击 固定住一组 crosshair,也可以同时触发。\n * @default 'hover'\n */\n trigger?: CrossHairTrigger;\n /**\n * 隐藏crosshair的触发方式(目前仅支持和trigger一致的设置以及none)\n */\n triggerOff?: CrossHairTrigger | 'none';\n /**\n * crosshair 文本的显示层级\n */\n labelZIndex?: number;\n /**\n * crosshair 辅助图形的显示层级\n */\n gridZIndex?: number;\n}\n\nexport interface ICartesianCrosshairSpec extends ICommonCrosshairSpec {\n /**\n * 笛卡尔坐标系下 x 轴上 crosshair 配置\n */\n xField?: ICrosshairCategoryFieldSpec;\n /**\n * 笛卡尔坐标系下 y 轴上 crosshair 配置\n */\n yField?: ICrosshairCategoryFieldSpec;\n}\n\nexport interface IPolarCrosshairSpec extends ICommonCrosshairSpec {\n /**\n * 极坐标系下 categoryField 字段对应轴上的 crosshair 配置\n */\n categoryField?: ICrosshairCategoryFieldSpec;\n /**\n * 极坐标系下 valueField 字段对应轴上的 crosshair 配置\n */\n valueField?: ICrosshairValueFieldSpec;\n}\nexport interface ICrosshairCategoryFieldSpec extends ICrosshairDataBindSpec {\n /**\n * 是否可见\n */\n visible: boolean;\n /**\n * crosshair 辅助图形配置\n */\n line?: ICrosshairLineSpec | ICrosshairRectSpec;\n /**\n * crosshair 文本配置\n */\n label?: ICrosshairLabelSpec;\n}\n\nexport interface ICrosshairValueFieldSpec {\n /**\n * 是否可见\n */\n visible: boolean;\n /**\n * crosshair 辅助图形配置\n */\n line?: ICrosshairLineSpec;\n /**\n * crosshair 文本配置\n */\n label?: ICrosshairLabelSpec;\n}\n\nexport type ICrosshairLineStyle = Pick<\n ILineMarkSpec,\n 'stroke' | 'strokeOpacity' | 'opacity' | 'lineDash' | 'lineWidth'\n>;\nexport type ICrosshairRectStyle = ICrosshairLineStyle & Pick<IRectMarkSpec, 'fill' | 'fillOpacity' | 'cornerRadius'>;\n\nexport interface ICrosshairLineSpec {\n visible?: boolean;\n type?: 'line';\n /**\n * 线宽\n * @default 2\n */\n width?: number;\n /** 极坐标系下是否平滑 */\n smooth?: boolean;\n style?: ICrosshairLineStyle;\n}\n\nexport interface ICrosshairRectSpec {\n visible?: boolean;\n type?: 'rect';\n /**\n * 字符串xx%表示此处是内容区间的百分比,数字表示宽度像素\n * @default '100%''\n */\n width?: number | string;\n style?: ICrosshairRectStyle;\n}\n\nexport interface ICrosshairLabelSpec {\n visible?: boolean;\n /**\n * label 文本格式化方法\n * @param text\n * @returns\n */\n formatMethod?: (text: StringOrNumber | string[]) => string | string[];\n /**\n * 文本样式配置\n */\n style?: Partial<ITextMarkSpec>;\n /**\n * 文本背景相关配置\n */\n labelBackground?: ICrosshairLabelBackgroundSpec;\n}\n\nexport interface ICrosshairLabelBackgroundSpec {\n /**\n * 是否显示背景,默认为 true\n */\n visible?: boolean;\n /**\n * 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 内部边距\n */\n padding?: IPadding | number | number[];\n style?: Partial<IRectMarkSpec>;\n}\n\nexport interface ICrosshairDataBindSpec {\n /**\n * 声明 crosshair 绑定的轴索引,如果没有声明,则会默认绑定所有同 crosshair 位置相对应的轴。\n */\n bindingAxesIndex?: number[];\n /**\n * crosshair 初始化显示信息,通过该配置可在图表绘制时默认展示 crosshair 组件。\n */\n defaultSelect?: {\n /**\n * 声明要显示数据的轴索引\n */\n axisIndex: number;\n /**\n * 声明显示的数据\n */\n datum: StringOrNumber;\n };\n}\n\nexport type ICrosshairSpec = ICartesianCrosshairSpec | IPolarCrosshairSpec;\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IPadding, StringOrNumber, ILineMarkSpec, IRectMarkSpec, ITextMarkSpec } from '../../../typings';\nimport type { IAxis } from '../../axis/interface';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { IComponent } from '../../interface';\n\nexport interface ICrossHair extends IComponent {\n clearAxisValue?: () => void;\n setAxisValue?: (v: StringOrNumber, axis: IAxis) => void;\n layoutByValue?: (v?: number) => void;\n hide?: () => void;\n}\n\nexport type CrossHairTrigger = 'click' | 'hover' | ['click', 'hover'];\n\nexport interface ICommonCrosshairSpec extends IComponentSpec {\n /**\n * 是否可以通过 点击 固定住一组 crosshair,也可以同时触发。\n * @default 'hover'\n */\n trigger?: CrossHairTrigger;\n /**\n * 隐藏crosshair的触发方式(目前仅支持和trigger一致的设置以及none)\n */\n triggerOff?: CrossHairTrigger | 'none';\n /**\n * crosshair 文本的显示层级\n */\n labelZIndex?: number;\n /**\n * crosshair 辅助图形的显示层级\n */\n gridZIndex?: number;\n}\n\nexport interface ICartesianCrosshairSpec extends ICommonCrosshairSpec {\n /**\n * 笛卡尔坐标系下 x 轴上 crosshair 配置\n */\n xField?: ICrosshairCategoryFieldSpec;\n /**\n * 笛卡尔坐标系下 y 轴上 crosshair 配置\n */\n yField?: ICrosshairCategoryFieldSpec;\n}\n\nexport interface IPolarCrosshairSpec extends ICommonCrosshairSpec {\n /**\n * 极坐标系下 categoryField 字段对应轴上的 crosshair 配置\n */\n categoryField?: ICrosshairCategoryFieldSpec;\n /**\n * 极坐标系下 valueField 字段对应轴上的 crosshair 配置\n */\n valueField?: ICrosshairValueFieldSpec;\n}\nexport interface ICrosshairCategoryFieldSpec extends ICrosshairDataBindSpec {\n /**\n * 是否可见\n */\n visible: boolean;\n /**\n * crosshair 辅助图形配置\n */\n line?: ICrosshairLineSpec | Omit<ICrosshairRectSpec, 'width'>;\n /**\n * crosshair 文本配置\n */\n label?: ICrosshairLabelSpec;\n}\n\nexport interface ICrosshairValueFieldSpec extends ICrosshairDataBindSpec {\n /**\n * 是否可见\n */\n visible: boolean;\n /**\n * crosshair 辅助图形配置\n */\n line?: ICrosshairLineSpec;\n /**\n * crosshair 文本配置\n */\n label?: ICrosshairLabelSpec;\n}\n\nexport type ICrosshairLineStyle = Pick<\n ILineMarkSpec,\n 'stroke' | 'strokeOpacity' | 'opacity' | 'lineDash' | 'lineWidth'\n>;\nexport type ICrosshairRectStyle = ICrosshairLineStyle & Pick<IRectMarkSpec, 'fill' | 'fillOpacity' | 'cornerRadius'>;\n\nexport interface ICrosshairLineSpec {\n visible?: boolean;\n type?: 'line';\n /**\n * 线宽\n * @default 2\n */\n width?: number;\n /** 极坐标系下是否平滑 */\n smooth?: boolean;\n style?: ICrosshairLineStyle;\n}\n\nexport type ICrosshairRectWidthCallback = (axisSize: { width: number; height: number }, axis: IAxis) => number;\n\nexport interface ICrosshairRectSpec {\n visible?: boolean;\n type?: 'rect';\n /**\n * 字符串xx%表示此处是内容区间的百分比,数字表示宽度像素,\n * 仅支持笛卡尔坐标系下的 crosshair 配置\n * @default '100%''\n */\n width?: number | string | ICrosshairRectWidthCallback;\n style?: ICrosshairRectStyle;\n}\n\nexport interface ICrosshairLabelSpec {\n visible?: boolean;\n /**\n * label 文本格式化方法\n * @param text\n * @returns\n */\n formatMethod?: (text: StringOrNumber | string[]) => string | string[];\n /**\n * 文本样式配置\n */\n style?: Partial<ITextMarkSpec>;\n /**\n * 文本背景相关配置\n */\n labelBackground?: ICrosshairLabelBackgroundSpec;\n}\n\nexport interface ICrosshairLabelBackgroundSpec {\n /**\n * 是否显示背景,默认为 true\n */\n visible?: boolean;\n /**\n * 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 内部边距\n */\n padding?: IPadding | number | number[];\n style?: Partial<IRectMarkSpec>;\n}\n\nexport interface ICrosshairDataBindSpec {\n /**\n * 声明 crosshair 绑定的轴索引,如果没有声明,则会默认绑定所有同 crosshair 位置相对应的轴。\n */\n bindingAxesIndex?: number[];\n /**\n * crosshair 初始化显示信息,通过该配置可在图表绘制时默认展示 crosshair 组件。\n */\n defaultSelect?: {\n /**\n * 声明要显示数据的轴索引\n */\n axisIndex: number;\n /**\n * 声明显示的数据\n */\n datum: StringOrNumber;\n };\n}\n\nexport type ICrosshairSpec = ICartesianCrosshairSpec | IPolarCrosshairSpec;\n"]}
@@ -1,80 +1,38 @@
1
1
  import type { IComponentOption } from '../interface';
2
2
  import { ComponentTypeEnum } from '../interface/type';
3
3
  import type { IPolarCrosshairSpec } from './interface';
4
- import type { IPolarAxis } from '../axis/polar/interface';
5
- import type { IPoint, StringOrNumber } from '../../typings';
6
- import type { IHair } from './base';
7
4
  import { BaseCrossHair } from './base';
8
5
  import type { IGraphic } from '@visactor/vrender-core';
9
- type IBound = {
10
- x1: number;
11
- y1: number;
12
- x2: number;
13
- y2: number;
14
- };
15
- type IAxisInfo = Map<number, IBound & {
16
- axis: IPolarAxis;
17
- }>;
18
6
  export declare class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {
19
7
  static specKey: string;
20
8
  specKey: string;
21
9
  static type: ComponentTypeEnum;
22
10
  type: ComponentTypeEnum;
23
11
  name: string;
24
- currValueX: Map<number, {
25
- v: StringOrNumber;
26
- axis: IPolarAxis;
27
- [key: string]: any;
28
- }>;
29
- currValueY: Map<number, {
30
- v: StringOrNumber;
31
- axis: IPolarAxis;
32
- [key: string]: any;
33
- }>;
34
- xHair: IHair | undefined;
35
- yHair: (IHair & {
36
- smooth: boolean;
37
- }) | undefined;
38
- private _cacheXCrossHairInfo;
39
- private _cacheYCrossHairInfo;
12
+ private _currValueAngle;
13
+ private _currValueRadius;
14
+ private _angleHair;
15
+ private _radiusHair;
16
+ private _cacheAngleCrossHairInfo;
17
+ private _cacheRadiusCrossHairInfo;
40
18
  private _radiusCrosshair;
41
19
  private _radiusLabelCrosshair;
42
20
  private _angleCrosshair;
43
21
  private _angleLabelCrosshair;
44
22
  static createComponent(spec: any, options: IComponentOption): PolarCrossHair<any> | PolarCrossHair<IPolarCrosshairSpec>[];
45
23
  constructor(spec: T, options: IComponentOption);
46
- protected _showDefaultCrosshair(): void;
24
+ protected _showDefaultCrosshairBySpec(): void;
25
+ private _defaultCrosshair;
47
26
  hide(): void;
48
- findAllAxisContains(relativeX: number, relativeY: number): {
49
- xAxisMap: Map<number, {
50
- x1: number;
51
- y1: number;
52
- x2: number;
53
- y2: number;
54
- } & {
55
- axis: IPolarAxis;
56
- }>;
57
- yAxisMap: Map<number, {
58
- x1: number;
59
- y1: number;
60
- x2: number;
61
- y2: number;
62
- } & {
63
- axis: IPolarAxis;
64
- }>;
65
- };
66
- getAllAxisValues(axisMap: IAxisInfo, point: IPoint, currValue: Map<number, {
67
- v: StringOrNumber;
68
- axis: IPolarAxis;
69
- [key: string]: any;
70
- }>): boolean;
27
+ private _findAllAxisContains;
28
+ private _getAllAxisValues;
29
+ private _getValueByAxis;
71
30
  protected _layoutCrosshair(relativeX: number, relativeY: number): void;
72
- private layoutByValue;
31
+ layoutByValue(tag?: number): void;
73
32
  private _layoutVertical;
74
33
  private _layoutHorizontal;
75
34
  protected _parseFieldInfo(): void;
76
35
  private _updateCrosshairLabel;
77
- getVRenderComponents(): IGraphic[];
36
+ protected _getNeedClearVRenderComponents(): IGraphic[];
78
37
  }
79
38
  export declare const registerPolarCrossHair: () => void;
80
- export {};
@@ -1,4 +1,4 @@
1
- var LayoutType, __rest = this && this.__rest || function(s, e) {
1
+ var __rest = this && this.__rest || function(s, e) {
2
2
  var t = {};
3
3
  for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
4
4
  if (null != s && "function" == typeof Object.getOwnPropertySymbols) {
@@ -30,10 +30,7 @@ import { getAxisLabelOffset } from "../axis/util";
30
30
 
31
31
  import { Factory } from "../../core/factory";
32
32
 
33
- !function(LayoutType) {
34
- LayoutType[LayoutType.ALL = 3] = "ALL", LayoutType[LayoutType.HORIZONTAL = 2] = "HORIZONTAL",
35
- LayoutType[LayoutType.VERTICAL = 1] = "VERTICAL", LayoutType[LayoutType.NONE = 0] = "NONE";
36
- }(LayoutType || (LayoutType = {}));
33
+ import { LayoutType } from "./config";
37
34
 
38
35
  export class PolarCrossHair extends BaseCrossHair {
39
36
  static createComponent(spec, options) {
@@ -49,71 +46,104 @@ export class PolarCrossHair extends BaseCrossHair {
49
46
  }
50
47
  constructor(spec, options) {
51
48
  super(spec, options), this.specKey = "crosshair", this.type = ComponentTypeEnum.polarCrosshair,
52
- this.name = ComponentTypeEnum.polarCrosshair, this.currValueX = new Map, this.currValueY = new Map;
49
+ this.name = ComponentTypeEnum.polarCrosshair, this._currValueAngle = new Map, this._currValueRadius = new Map;
53
50
  }
54
- _showDefaultCrosshair() {
55
- this.showDefault;
51
+ _showDefaultCrosshairBySpec() {
52
+ const {categoryField: categoryField, valueField: valueField} = this._spec;
53
+ if ((null == categoryField ? void 0 : categoryField.visible) && categoryField.defaultSelect) {
54
+ const {axisIndex: axisIndex, datum: datum} = categoryField.defaultSelect;
55
+ this._defaultCrosshair(axisIndex, datum, LayoutType.VERTICAL);
56
+ }
57
+ if ((null == valueField ? void 0 : valueField.visible) && valueField.defaultSelect) {
58
+ const {axisIndex: axisIndex, datum: datum} = valueField.defaultSelect;
59
+ this._defaultCrosshair(axisIndex, datum, LayoutType.HORIZONTAL);
60
+ }
61
+ }
62
+ _defaultCrosshair(axisIndex, datum, tag) {
63
+ const axis = this._option.getComponentsByKey("axes").find((c => c.getSpecIndex() === axisIndex));
64
+ if (axis) {
65
+ if (tag === LayoutType.VERTICAL) {
66
+ this._currValueAngle.clear();
67
+ const polarCoord = {
68
+ angle: axis.valueToPosition(datum),
69
+ radius: axis.getOuterRadius()
70
+ }, canvasPosition = axis.coordToPoint(polarCoord);
71
+ this._currValueAngle.set(axisIndex, this._getValueByAxis(axis, canvasPosition));
72
+ } else {
73
+ this._currValueRadius.clear();
74
+ const polarCoord = {
75
+ angle: axis.startAngle,
76
+ radius: axis.valueToPosition(datum)
77
+ }, canvasPosition = axis.coordToPoint(polarCoord);
78
+ this._currValueRadius.set(axisIndex, this._getValueByAxis(axis, canvasPosition));
79
+ }
80
+ this.layoutByValue(LayoutType.ALL);
81
+ }
56
82
  }
57
83
  hide() {
58
84
  this._radiusCrosshair && this._radiusCrosshair.hideAll(), this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll(),
59
85
  this._angleCrosshair && this._angleCrosshair.hideAll(), this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();
60
86
  }
61
- findAllAxisContains(relativeX, relativeY) {
62
- const xAxisMap = this._getAxisInfoByField("category"), yAxisMap = this._getAxisInfoByField("value");
87
+ _findAllAxisContains(relativeX, relativeY) {
88
+ const angleAxisMap = this._getAxisInfoByField("category"), radiusAxisMap = this._getAxisInfoByField("value");
63
89
  return {
64
- xAxisMap: this._filterAxisByPoint(xAxisMap, relativeX, relativeY),
65
- yAxisMap: this._filterAxisByPoint(yAxisMap, relativeX, relativeY)
90
+ angleAxisMap: this._filterAxisByPoint(angleAxisMap, relativeX, relativeY),
91
+ radiusAxisMap: this._filterAxisByPoint(radiusAxisMap, relativeX, relativeY)
66
92
  };
67
93
  }
68
- getAllAxisValues(axisMap, point, currValue) {
94
+ _getAllAxisValues(axisMap, point, currValue) {
69
95
  let discrete = !1;
70
96
  return axisMap.forEach((item => {
71
97
  isDiscrete(item.axis.getScale().type) && (discrete ? this.enable = !1 : discrete = !0);
72
98
  })), !!this.enable && (axisMap.forEach(((item, id) => {
73
- const axis = item.axis, {x: axisStartX, y: axisStartY} = item.axis.getLayoutStartPoint(), {x: x, y: y} = this.getLayoutStartPoint();
74
- let value = axis.positionToData({
75
- x: point.x - (axisStartX - x),
76
- y: point.y - (axisStartY - y)
77
- });
78
- isContinuous(axis.getScale().type) && isValidNumber(+value) && (value = (+value).toFixed(2));
79
- const center = {
80
- x: axis.getCenter().x + this.getLayoutStartPoint().x,
81
- y: axis.getCenter().y + this.getLayoutStartPoint().y
82
- };
83
- currValue.set(id, {
84
- v: value,
85
- axis: item.axis,
86
- center: center,
87
- innerRadius: axis.getInnerRadius(),
88
- radius: axis.getOuterRadius(),
89
- startAngle: axis.startAngle,
90
- endAngle: axis.endAngle,
91
- distance: PointService.distancePP(point, axis.getCenter()),
92
- coord: axis.pointToCoord(point),
93
- point: point
94
- });
99
+ const axis = item.axis;
100
+ currValue.set(id, this._getValueByAxis(axis, point));
95
101
  })), !0);
96
102
  }
103
+ _getValueByAxis(axis, point) {
104
+ const {x: axisStartX, y: axisStartY} = axis.getLayoutStartPoint(), {x: x, y: y} = this.getLayoutStartPoint();
105
+ let value = axis.positionToData({
106
+ x: point.x - (axisStartX - x),
107
+ y: point.y - (axisStartY - y)
108
+ });
109
+ isContinuous(axis.getScale().type) && isValidNumber(+value) && (value = (+value).toFixed(2));
110
+ const center = {
111
+ x: axis.getCenter().x + this.getLayoutStartPoint().x,
112
+ y: axis.getCenter().y + this.getLayoutStartPoint().y
113
+ };
114
+ return {
115
+ v: value,
116
+ axis: axis,
117
+ center: center,
118
+ innerRadius: axis.getInnerRadius(),
119
+ radius: axis.getOuterRadius(),
120
+ startAngle: axis.startAngle,
121
+ endAngle: axis.endAngle,
122
+ distance: PointService.distancePP(point, axis.getCenter()),
123
+ coord: axis.pointToCoord(point),
124
+ point: point
125
+ };
126
+ }
97
127
  _layoutCrosshair(relativeX, relativeY) {
98
- const {xAxisMap: xAxisMap, yAxisMap: yAxisMap} = this.findAllAxisContains(relativeX, relativeY);
99
- if (0 !== xAxisMap.size || 0 !== yAxisMap.size) this.currValueX.clear(), this.currValueY.clear(),
100
- xAxisMap && this.getAllAxisValues(xAxisMap, {
128
+ const {angleAxisMap: angleAxisMap, radiusAxisMap: radiusAxisMap} = this._findAllAxisContains(relativeX, relativeY);
129
+ if (0 !== angleAxisMap.size || 0 !== radiusAxisMap.size) this._currValueAngle.clear(),
130
+ this._currValueRadius.clear(), angleAxisMap && this._getAllAxisValues(angleAxisMap, {
101
131
  x: relativeX,
102
132
  y: relativeY
103
- }, this.currValueX), yAxisMap && this.getAllAxisValues(yAxisMap, {
133
+ }, this._currValueAngle), radiusAxisMap && this._getAllAxisValues(radiusAxisMap, {
104
134
  x: relativeX,
105
135
  y: relativeY
106
- }, this.currValueY), this.layoutByValue(LayoutType.ALL); else {
136
+ }, this._currValueRadius), this.layoutByValue(LayoutType.ALL); else {
107
137
  if (this.enableRemain) return;
108
138
  this.hide();
109
139
  }
110
140
  }
111
- layoutByValue(tag) {
141
+ layoutByValue(tag = LayoutType.ALL) {
112
142
  var _a, _b, _c, _d;
113
143
  if (!this.enable) return;
114
144
  const series = this._firstSeries();
115
145
  if (!series) return;
116
- let xCrossHairInfo = {
146
+ let angleCrossHairInfo = {
117
147
  x: 0,
118
148
  y: 0,
119
149
  center: {
@@ -131,7 +161,7 @@ export class PolarCrossHair extends BaseCrossHair {
131
161
  text: "",
132
162
  offset: 0
133
163
  }
134
- }, yCrossHairInfo = {
164
+ }, radiusCrossHairInfo = {
135
165
  x: 0,
136
166
  y: 0,
137
167
  center: {
@@ -151,35 +181,36 @@ export class PolarCrossHair extends BaseCrossHair {
151
181
  offset: 0
152
182
  }
153
183
  };
154
- if (this.xHair) {
155
- xCrossHairInfo.visible = !!this.currValueX.size;
184
+ if (this._angleHair) {
185
+ angleCrossHairInfo.visible = !!this._currValueAngle.size;
156
186
  const bandWidth = series.angleAxisHelper.getBandwidth(0);
157
- this.currValueX.forEach((_a => {
187
+ this._currValueAngle.forEach((_a => {
158
188
  var _b, {axis: axis, v: v, coord: coord} = _a, rest = __rest(_a, [ "axis", "v", "coord" ]);
159
- v = null != v ? v : "", mergeSpec(xCrossHairInfo, rest);
189
+ v = null != v ? v : "", mergeSpec(angleCrossHairInfo, rest);
160
190
  const angle = series.angleAxisHelper.dataToPosition([ v ]);
161
- xCrossHairInfo.angle = angle, (null === (_b = this.xHair.label) || void 0 === _b ? void 0 : _b.visible) && (xCrossHairInfo.label.visible = !0,
162
- xCrossHairInfo.label.text = v, xCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec())),
163
- xCrossHairInfo.startAngle = angle - bandWidth / 2, xCrossHairInfo.endAngle = angle + bandWidth / 2;
191
+ angleCrossHairInfo.angle = angle, (null === (_b = this._angleHair.label) || void 0 === _b ? void 0 : _b.visible) && (angleCrossHairInfo.label.visible = !0,
192
+ angleCrossHairInfo.label.text = v, angleCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec())),
193
+ angleCrossHairInfo.startAngle = angle - bandWidth / 2, angleCrossHairInfo.endAngle = angle + bandWidth / 2;
164
194
  }));
165
195
  }
166
- if (this.yHair && (yCrossHairInfo.visible = !!this.currValueY.size, this.currValueY.forEach((_a => {
196
+ if (this._radiusHair && (radiusCrossHairInfo.visible = !!this._currValueRadius.size,
197
+ this._currValueRadius.forEach((_a => {
167
198
  var _b, {axis: axis, v: v, coord: coord} = _a, rest = __rest(_a, [ "axis", "v", "coord" ]);
168
- v = null != v ? v : "", (null === (_b = this.yHair.label) || void 0 === _b ? void 0 : _b.visible) && (yCrossHairInfo.label.visible = !0,
169
- yCrossHairInfo.label.text = v, yCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec())),
170
- yCrossHairInfo.angle = coord.angle, yCrossHairInfo.axis = axis, mergeSpec(yCrossHairInfo, rest);
171
- }))), this.enableRemain && !xCrossHairInfo.visible && isValid(this._cacheXCrossHairInfo)) xCrossHairInfo = this._cacheXCrossHairInfo; else if ((null === (_b = null === (_a = this.xHair) || void 0 === _a ? void 0 : _a.label) || void 0 === _b ? void 0 : _b.formatMethod) && xCrossHairInfo.label.visible) {
172
- const {label: label} = xCrossHairInfo;
173
- label.text = this.xHair.label.formatMethod(label.text, "angle");
199
+ v = null != v ? v : "", (null === (_b = this._radiusHair.label) || void 0 === _b ? void 0 : _b.visible) && (radiusCrossHairInfo.label.visible = !0,
200
+ radiusCrossHairInfo.label.text = v, radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec())),
201
+ radiusCrossHairInfo.angle = coord.angle, radiusCrossHairInfo.axis = axis, mergeSpec(radiusCrossHairInfo, rest);
202
+ }))), this.enableRemain && !angleCrossHairInfo.visible && isValid(this._cacheAngleCrossHairInfo)) angleCrossHairInfo = this._cacheAngleCrossHairInfo; else if ((null === (_b = null === (_a = this._angleHair) || void 0 === _a ? void 0 : _a.label) || void 0 === _b ? void 0 : _b.formatMethod) && angleCrossHairInfo.label.visible) {
203
+ const {label: label} = angleCrossHairInfo;
204
+ label.text = this._angleHair.label.formatMethod(label.text, "angle");
174
205
  }
175
- if (this.enableRemain && !yCrossHairInfo.visible && isValid(this._cacheYCrossHairInfo)) yCrossHairInfo = this._cacheYCrossHairInfo; else if ((null === (_d = null === (_c = this.yHair) || void 0 === _c ? void 0 : _c.label) || void 0 === _d ? void 0 : _d.formatMethod) && yCrossHairInfo.label.visible) {
176
- const {label: label} = yCrossHairInfo;
177
- label.text = this.yHair.label.formatMethod(label.text, "radius");
206
+ if (this.enableRemain && !radiusCrossHairInfo.visible && isValid(this._cacheRadiusCrossHairInfo)) radiusCrossHairInfo = this._cacheRadiusCrossHairInfo; else if ((null === (_d = null === (_c = this._radiusHair) || void 0 === _c ? void 0 : _c.label) || void 0 === _d ? void 0 : _d.formatMethod) && radiusCrossHairInfo.label.visible) {
207
+ const {label: label} = radiusCrossHairInfo;
208
+ label.text = this._radiusHair.label.formatMethod(label.text, "radius");
178
209
  }
179
- tag && (LayoutType.HORIZONTAL && this._layoutHorizontal(yCrossHairInfo), LayoutType.VERTICAL && this._layoutVertical(xCrossHairInfo)),
180
- this.enableRemain && (this._cacheXCrossHairInfo = Object.assign(Object.assign({}, xCrossHairInfo), {
210
+ tag && (LayoutType.HORIZONTAL && this._layoutHorizontal(radiusCrossHairInfo), LayoutType.VERTICAL && this._layoutVertical(angleCrossHairInfo)),
211
+ this.enableRemain && (this._cacheAngleCrossHairInfo = Object.assign(Object.assign({}, angleCrossHairInfo), {
181
212
  _isCache: !0
182
- }), this._cacheYCrossHairInfo = Object.assign(Object.assign({}, yCrossHairInfo), {
213
+ }), this._cacheRadiusCrossHairInfo = Object.assign(Object.assign({}, radiusCrossHairInfo), {
183
214
  _isCache: !0
184
215
  }));
185
216
  }
@@ -188,7 +219,7 @@ export class PolarCrossHair extends BaseCrossHair {
188
219
  if (crosshairInfo._isCache && this.enableRemain) return;
189
220
  const container = this.getContainer(), {angle: angle, innerRadius: innerRadius, radius: radius, label: label, startAngle: startAngle, endAngle: endAngle, center: center, visible: visible} = crosshairInfo;
190
221
  if (visible) {
191
- const crosshairType = "rect" === this.xHair.type ? "sector" : "line";
222
+ const crosshairType = "rect" === this._angleHair.type ? "sector" : "line";
192
223
  let positionAttrs;
193
224
  if (positionAttrs = "sector" === crosshairType ? {
194
225
  center: center,
@@ -202,16 +233,16 @@ export class PolarCrossHair extends BaseCrossHair {
202
233
  }, this._angleCrosshair) this._angleCrosshair.setAttributes(positionAttrs); else {
203
234
  let crosshair;
204
235
  "line" === crosshairType ? crosshair = new LineCrosshair(Object.assign(Object.assign({}, positionAttrs), {
205
- lineStyle: this.xHair.style,
236
+ lineStyle: this._angleHair.style,
206
237
  zIndex: this.gridZIndex
207
238
  })) : "sector" === crosshairType && (crosshair = new SectorCrosshair(Object.assign(Object.assign({}, positionAttrs), {
208
- sectorStyle: this.xHair.style,
239
+ sectorStyle: this._angleHair.style,
209
240
  zIndex: this.gridZIndex
210
241
  }))), this._angleCrosshair = crosshair, container.add(crosshair);
211
242
  }
212
243
  if (label.visible) {
213
- const orient = angleLabelOrientAttribute(angle), labelAttrs = Object.assign(Object.assign(Object.assign(Object.assign({}, polarToCartesian(center, radius + label.offset, angle)), this.xHair.label), label), {
214
- textStyle: Object.assign(Object.assign({}, null === (_a = this.xHair.label) || void 0 === _a ? void 0 : _a.textStyle), {
244
+ const orient = angleLabelOrientAttribute(angle), labelAttrs = Object.assign(Object.assign(Object.assign(Object.assign({}, polarToCartesian(center, radius + label.offset, angle)), this._angleHair.label), label), {
245
+ textStyle: Object.assign(Object.assign({}, null === (_a = this._angleHair.label) || void 0 === _a ? void 0 : _a.textStyle), {
215
246
  textAlign: orient.align,
216
247
  textBaseline: orient.baseline
217
248
  }),
@@ -228,7 +259,7 @@ export class PolarCrossHair extends BaseCrossHair {
228
259
  if (crosshairInfo._isCache && this.enableRemain) return;
229
260
  const {center: center, startAngle: startAngle, endAngle: endAngle, distance: distance, sides: sides, axis: axis, label: label, point: point, radius: radius, innerRadius: innerRadius, visible: visible} = crosshairInfo, container = this.getContainer();
230
261
  if (visible) {
231
- const crosshairType = this.yHair.smooth ? "circle" : "polygon";
262
+ const crosshairType = this._radiusHair.smooth ? "circle" : "polygon";
232
263
  let polygonRadius = distance;
233
264
  if ("polygon" === crosshairType) {
234
265
  const axisCenter = axis.getCenter(), curAngle = getAngleByPoint(axisCenter, point), stepAngle = (endAngle - startAngle) / sides, index = Math.floor((curAngle - startAngle) / stepAngle), preAngle = index * stepAngle + startAngle, nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle), prePoint = polarToCartesian(axisCenter, distance, preAngle), nextPoint = polarToCartesian(axisCenter, distance, nextAngle), insertPoint = getIntersectPoint([ nextPoint.x, nextPoint.y ], [ prePoint.x, prePoint.y ], [ axisCenter.x, axisCenter.y ], [ point.x, point.y ]);
@@ -244,16 +275,16 @@ export class PolarCrossHair extends BaseCrossHair {
244
275
  if (this._radiusCrosshair) this._radiusCrosshair.setAttributes(positionAttrs); else {
245
276
  let crosshair;
246
277
  crosshair = "polygon" === crosshairType ? new PolygonCrosshair(Object.assign(Object.assign({}, positionAttrs), {
247
- lineStyle: this.yHair.style,
278
+ lineStyle: this._radiusHair.style,
248
279
  zIndex: this.gridZIndex + 1
249
280
  })) : new CircleCrosshair(Object.assign(Object.assign({}, positionAttrs), {
250
- lineStyle: this.yHair.style,
281
+ lineStyle: this._radiusHair.style,
251
282
  zIndex: this.gridZIndex
252
283
  })), this._radiusCrosshair = crosshair, container.add(crosshair);
253
284
  }
254
285
  if (label.visible) {
255
- const orient = radiusLabelOrientAttribute(startAngle), labelAttrs = Object.assign(Object.assign(Object.assign(Object.assign({}, polarToCartesian(center, polygonRadius, startAngle)), this.yHair.label), label), {
256
- textStyle: Object.assign(Object.assign({}, null === (_a = this.yHair.label) || void 0 === _a ? void 0 : _a.textStyle), {
286
+ const orient = radiusLabelOrientAttribute(startAngle), labelAttrs = Object.assign(Object.assign(Object.assign(Object.assign({}, polarToCartesian(center, polygonRadius, startAngle)), this._radiusHair.label), label), {
287
+ textStyle: Object.assign(Object.assign({}, null === (_a = this._radiusHair.label) || void 0 === _a ? void 0 : _a.textStyle), {
257
288
  textAlign: orient.align,
258
289
  textBaseline: orient.baseline
259
290
  }),
@@ -267,17 +298,17 @@ export class PolarCrossHair extends BaseCrossHair {
267
298
  }
268
299
  _parseFieldInfo() {
269
300
  var _a;
270
- const {categoryField: categoryField, valueField: valueField} = this._crosshairConfig;
271
- categoryField && categoryField.visible && (this.xHair = this._parseField(categoryField, "categoryField")),
272
- valueField && valueField.visible && (this.yHair = this._parseField(valueField, "valueField"),
273
- this.yHair.smooth = null === (_a = null == valueField ? void 0 : valueField.line) || void 0 === _a ? void 0 : _a.smooth);
301
+ const {categoryField: categoryField, valueField: valueField} = this._spec;
302
+ categoryField && categoryField.visible && (this._angleHair = this._parseField(categoryField, "categoryField")),
303
+ valueField && valueField.visible && (this._radiusHair = this._parseField(valueField, "valueField"),
304
+ this._radiusHair.smooth = null === (_a = null == valueField ? void 0 : valueField.line) || void 0 === _a ? void 0 : _a.smooth);
274
305
  }
275
306
  _updateCrosshairLabel(label, labelAttrs, callback) {
276
307
  const container = this.getContainer();
277
- label ? label.setAttributes(labelAttrs) : (label = new Tag(labelAttrs), container.add(label),
308
+ label ? label.setAttributes(labelAttrs) : (label = new Tag(labelAttrs), null == container || container.add(label),
278
309
  callback(label)), limitTagInBounds(label, this._getLimitBounds());
279
310
  }
280
- getVRenderComponents() {
311
+ _getNeedClearVRenderComponents() {
281
312
  return [ this._radiusCrosshair, this._radiusLabelCrosshair, this._angleCrosshair, this._angleLabelCrosshair ];
282
313
  }
283
314
  }