@visactor/vchart 1.10.0-alpha.8 → 1.10.0-alpha.9

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 (423) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +517 -281
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base/base-chart-transformer.js +6 -8
  6. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  7. package/cjs/chart/base/base-chart.js +3 -5
  8. package/cjs/chart/base/base-chart.js.map +1 -1
  9. package/cjs/chart/base/util.d.ts +2 -2
  10. package/cjs/chart/base/util.js.map +1 -1
  11. package/cjs/chart/interface/chart.js.map +1 -1
  12. package/cjs/chart/interface/common.d.ts +1 -5
  13. package/cjs/chart/interface/common.js.map +1 -1
  14. package/cjs/chart/map/map-transformer.js.map +1 -1
  15. package/cjs/chart/sequence/interface.d.ts +2 -2
  16. package/cjs/chart/sequence/interface.js.map +1 -1
  17. package/cjs/chart/sequence/sequence-transformer.js.map +1 -1
  18. package/cjs/compile/compilable-base.js +1 -1
  19. package/cjs/compile/compilable-base.js.map +1 -1
  20. package/cjs/compile/compiler.d.ts +1 -0
  21. package/cjs/compile/compiler.js +11 -9
  22. package/cjs/compile/compiler.js.map +1 -1
  23. package/cjs/component/axis/base-axis.js +2 -2
  24. package/cjs/component/axis/base-axis.js.map +1 -1
  25. package/cjs/component/axis/polar/axis.js.map +1 -1
  26. package/cjs/component/base/base-component.js +1 -1
  27. package/cjs/component/base/base-component.js.map +1 -1
  28. package/cjs/component/brush/brush.d.ts +8 -0
  29. package/cjs/component/brush/brush.js +64 -11
  30. package/cjs/component/brush/brush.js.map +1 -1
  31. package/cjs/component/brush/interface.d.ts +4 -0
  32. package/cjs/component/brush/interface.js.map +1 -1
  33. package/cjs/component/crosshair/base.js +1 -1
  34. package/cjs/component/crosshair/base.js.map +1 -1
  35. package/cjs/component/crosshair/cartesian.js +8 -4
  36. package/cjs/component/crosshair/cartesian.js.map +1 -1
  37. package/cjs/component/crosshair/polar.js +4 -2
  38. package/cjs/component/crosshair/polar.js.map +1 -1
  39. package/cjs/component/crosshair/utils/cartesian.d.ts +2 -0
  40. package/cjs/component/crosshair/utils/cartesian.js +4 -0
  41. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  42. package/cjs/component/custom-mark/custom-mark.d.ts +1 -0
  43. package/cjs/component/custom-mark/custom-mark.js +12 -1
  44. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  45. package/cjs/component/data-zoom/data-filter-base-component.d.ts +2 -2
  46. package/cjs/component/data-zoom/data-filter-base-component.js +12 -10
  47. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  48. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  49. package/cjs/component/data-zoom/data-zoom/data-zoom.js +12 -9
  50. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  51. package/cjs/component/data-zoom/data-zoom/interface.d.ts +1 -0
  52. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  53. package/cjs/component/data-zoom/interface.d.ts +2 -0
  54. package/cjs/component/data-zoom/interface.js.map +1 -1
  55. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +2 -1
  56. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  57. package/cjs/component/data-zoom/util.js +5 -1
  58. package/cjs/component/data-zoom/util.js.map +1 -1
  59. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  60. package/cjs/component/indicator/indicator.js.map +1 -1
  61. package/cjs/component/label/base-label.d.ts +2 -1
  62. package/cjs/component/label/base-label.js +3 -0
  63. package/cjs/component/label/base-label.js.map +1 -1
  64. package/cjs/component/label/label.d.ts +1 -2
  65. package/cjs/component/label/label.js +7 -10
  66. package/cjs/component/label/label.js.map +1 -1
  67. package/cjs/component/label/total-label.d.ts +1 -0
  68. package/cjs/component/label/total-label.js +9 -1
  69. package/cjs/component/label/total-label.js.map +1 -1
  70. package/cjs/component/tooltip/constant.d.ts +5 -0
  71. package/cjs/component/tooltip/constant.js +13 -0
  72. package/cjs/component/tooltip/constant.js.map +1 -0
  73. package/cjs/component/tooltip/index.d.ts +1 -0
  74. package/cjs/component/tooltip/index.js +1 -1
  75. package/cjs/component/tooltip/index.js.map +1 -1
  76. package/cjs/component/tooltip/interface/spec.d.ts +4 -3
  77. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  78. package/cjs/component/tooltip/tooltip-transformer.d.ts +2 -0
  79. package/cjs/component/tooltip/tooltip-transformer.js +14 -1
  80. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  81. package/cjs/component/tooltip/tooltip.d.ts +3 -3
  82. package/cjs/component/tooltip/tooltip.js +28 -48
  83. package/cjs/component/tooltip/tooltip.js.map +1 -1
  84. package/cjs/core/index.d.ts +1 -1
  85. package/cjs/core/index.js +1 -1
  86. package/cjs/core/index.js.map +1 -1
  87. package/cjs/core/vchart.d.ts +4 -1
  88. package/cjs/core/vchart.js +47 -49
  89. package/cjs/core/vchart.js.map +1 -1
  90. package/cjs/event/event-dispatcher.d.ts +1 -0
  91. package/cjs/event/event-dispatcher.js +4 -1
  92. package/cjs/event/event-dispatcher.js.map +1 -1
  93. package/cjs/event/event.js +1 -1
  94. package/cjs/event/event.js.map +1 -1
  95. package/cjs/event/interface.d.ts +2 -1
  96. package/cjs/event/interface.js.map +1 -1
  97. package/cjs/interaction/index.d.ts +1 -0
  98. package/cjs/interaction/index.js +50 -0
  99. package/cjs/interaction/index.js.map +1 -0
  100. package/cjs/interaction/interface.js +1 -1
  101. package/cjs/interaction/zoom/zoomable.js +4 -6
  102. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  103. package/cjs/model/interface.d.ts +3 -8
  104. package/cjs/model/interface.js.map +1 -1
  105. package/cjs/plugin/base/base-plugin-service.d.ts +2 -2
  106. package/cjs/plugin/base/base-plugin-service.js +5 -5
  107. package/cjs/plugin/base/base-plugin-service.js.map +1 -1
  108. package/cjs/plugin/base/base-plugin.d.ts +1 -0
  109. package/cjs/plugin/base/base-plugin.js +3 -0
  110. package/cjs/plugin/base/base-plugin.js.map +1 -1
  111. package/cjs/plugin/base/interface.d.ts +3 -3
  112. package/cjs/plugin/base/interface.js.map +1 -1
  113. package/cjs/plugin/chart/formatter/formatter.d.ts +2 -2
  114. package/cjs/plugin/chart/formatter/formatter.js +5 -7
  115. package/cjs/plugin/chart/formatter/formatter.js.map +1 -1
  116. package/cjs/plugin/chart/media-query/media-query.d.ts +1 -1
  117. package/cjs/plugin/chart/media-query/media-query.js +4 -4
  118. package/cjs/plugin/chart/media-query/media-query.js.map +1 -1
  119. package/cjs/plugin/chart/plugin-service.d.ts +1 -0
  120. package/cjs/plugin/chart/plugin-service.js +3 -0
  121. package/cjs/plugin/chart/plugin-service.js.map +1 -1
  122. package/cjs/plugin/components/plugin-service.d.ts +1 -0
  123. package/cjs/plugin/components/plugin-service.js +3 -0
  124. package/cjs/plugin/components/plugin-service.js.map +1 -1
  125. package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +3 -3
  126. package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
  127. package/cjs/plugin/components/tooltip-handler/constants.d.ts +0 -5
  128. package/cjs/plugin/components/tooltip-handler/constants.js +4 -9
  129. package/cjs/plugin/components/tooltip-handler/constants.js.map +1 -1
  130. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -3
  131. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  132. package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +1 -0
  133. package/cjs/region/interface.d.ts +2 -1
  134. package/cjs/region/interface.js.map +1 -1
  135. package/cjs/region/region.js +1 -1
  136. package/cjs/region/region.js.map +1 -1
  137. package/cjs/series/area/area-transformer.d.ts +1 -0
  138. package/cjs/series/area/area-transformer.js +3 -0
  139. package/cjs/series/area/area-transformer.js.map +1 -1
  140. package/cjs/series/area/area.d.ts +0 -1
  141. package/cjs/series/area/area.js +1 -1
  142. package/cjs/series/area/area.js.map +1 -1
  143. package/cjs/series/bar/bar-transformer.d.ts +1 -0
  144. package/cjs/series/bar/bar-transformer.js +3 -0
  145. package/cjs/series/bar/bar-transformer.js.map +1 -1
  146. package/cjs/series/bar/bar.d.ts +0 -1
  147. package/cjs/series/bar/bar.js +2 -2
  148. package/cjs/series/bar/bar.js.map +1 -1
  149. package/cjs/series/base/base-series-transformer.d.ts +5 -3
  150. package/cjs/series/base/base-series-transformer.js +9 -2
  151. package/cjs/series/base/base-series-transformer.js.map +1 -1
  152. package/cjs/series/base/base-series.d.ts +0 -4
  153. package/cjs/series/base/base-series.js +12 -17
  154. package/cjs/series/base/base-series.js.map +1 -1
  155. package/cjs/series/cartesian/cartesian.js +3 -3
  156. package/cjs/series/cartesian/cartesian.js.map +1 -1
  157. package/cjs/series/funnel/funnel.js +2 -1
  158. package/cjs/series/funnel/funnel.js.map +1 -1
  159. package/cjs/series/gauge/gauge-pointer-transformer.d.ts +5 -0
  160. package/cjs/series/gauge/gauge-pointer-transformer.js +16 -0
  161. package/cjs/series/gauge/gauge-pointer-transformer.js.map +1 -0
  162. package/cjs/series/gauge/gauge-pointer.d.ts +3 -1
  163. package/cjs/series/gauge/gauge-pointer.js +4 -4
  164. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  165. package/cjs/series/gauge/gauge-transformer.d.ts +1 -0
  166. package/cjs/series/gauge/gauge-transformer.js +3 -0
  167. package/cjs/series/gauge/gauge-transformer.js.map +1 -1
  168. package/cjs/series/gauge/gauge.d.ts +0 -1
  169. package/cjs/series/gauge/gauge.js +1 -1
  170. package/cjs/series/gauge/gauge.js.map +1 -1
  171. package/cjs/series/interface/common.d.ts +6 -2
  172. package/cjs/series/interface/common.js.map +1 -1
  173. package/cjs/series/map/geo-source.d.ts +1 -1
  174. package/cjs/series/map/geo-source.js.map +1 -1
  175. package/cjs/series/polar/progress-like/progress-like.d.ts +0 -1
  176. package/cjs/series/polar/progress-like/progress-like.js +5 -5
  177. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  178. package/cjs/series/polar/rose-like/rose-like.js +1 -1
  179. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  180. package/cjs/series/progress/circular/circular-transformer.d.ts +5 -0
  181. package/cjs/series/progress/circular/circular-transformer.js +16 -0
  182. package/cjs/series/progress/circular/circular-transformer.js.map +1 -0
  183. package/cjs/series/progress/circular/circular.d.ts +3 -0
  184. package/cjs/series/progress/circular/circular.js +6 -6
  185. package/cjs/series/progress/circular/circular.js.map +1 -1
  186. package/cjs/series/radar/radar.js +2 -2
  187. package/cjs/series/radar/radar.js.map +1 -1
  188. package/cjs/series/range-column/range-column-transformer.d.ts +1 -0
  189. package/cjs/series/range-column/range-column-transformer.js +3 -0
  190. package/cjs/series/range-column/range-column-transformer.js.map +1 -1
  191. package/cjs/series/range-column/range-column.d.ts +0 -1
  192. package/cjs/series/range-column/range-column.js +1 -2
  193. package/cjs/series/range-column/range-column.js.map +1 -1
  194. package/cjs/series/rose/rose-transformer.d.ts +1 -0
  195. package/cjs/series/rose/rose-transformer.js +3 -0
  196. package/cjs/series/rose/rose-transformer.js.map +1 -1
  197. package/cjs/series/rose/rose.d.ts +0 -1
  198. package/cjs/series/rose/rose.js +2 -2
  199. package/cjs/series/rose/rose.js.map +1 -1
  200. package/cjs/series/waterfall/waterfall-transformer.d.ts +1 -0
  201. package/cjs/series/waterfall/waterfall-transformer.js +3 -0
  202. package/cjs/series/waterfall/waterfall-transformer.js.map +1 -1
  203. package/cjs/series/waterfall/waterfall.d.ts +0 -1
  204. package/cjs/series/waterfall/waterfall.js +1 -1
  205. package/cjs/series/waterfall/waterfall.js.map +1 -1
  206. package/cjs/typings/spec/common.d.ts +2 -2
  207. package/cjs/typings/spec/common.js.map +1 -1
  208. package/cjs/typings/spec/index.d.ts +1 -1
  209. package/cjs/typings/spec/index.js.map +1 -1
  210. package/cjs/vchart-all.js +2 -2
  211. package/cjs/vchart-all.js.map +1 -1
  212. package/cjs/vchart-simple.js +2 -2
  213. package/cjs/vchart-simple.js.map +1 -1
  214. package/esm/chart/base/base-chart-transformer.js +6 -8
  215. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  216. package/esm/chart/base/base-chart.js +3 -5
  217. package/esm/chart/base/base-chart.js.map +1 -1
  218. package/esm/chart/base/util.d.ts +2 -2
  219. package/esm/chart/base/util.js.map +1 -1
  220. package/esm/chart/interface/chart.js.map +1 -1
  221. package/esm/chart/interface/common.d.ts +1 -5
  222. package/esm/chart/interface/common.js.map +1 -1
  223. package/esm/chart/map/map-transformer.js.map +1 -1
  224. package/esm/chart/sequence/interface.d.ts +2 -2
  225. package/esm/chart/sequence/interface.js.map +1 -1
  226. package/esm/chart/sequence/sequence-transformer.js.map +1 -1
  227. package/esm/compile/compilable-base.js +1 -1
  228. package/esm/compile/compilable-base.js.map +1 -1
  229. package/esm/compile/compiler.d.ts +1 -0
  230. package/esm/compile/compiler.js +11 -9
  231. package/esm/compile/compiler.js.map +1 -1
  232. package/esm/component/axis/base-axis.js +2 -2
  233. package/esm/component/axis/base-axis.js.map +1 -1
  234. package/esm/component/axis/polar/axis.js.map +1 -1
  235. package/esm/component/base/base-component.js +1 -1
  236. package/esm/component/base/base-component.js.map +1 -1
  237. package/esm/component/brush/brush.d.ts +8 -0
  238. package/esm/component/brush/brush.js +64 -11
  239. package/esm/component/brush/brush.js.map +1 -1
  240. package/esm/component/brush/interface.d.ts +4 -0
  241. package/esm/component/brush/interface.js.map +1 -1
  242. package/esm/component/crosshair/base.js +1 -1
  243. package/esm/component/crosshair/base.js.map +1 -1
  244. package/esm/component/crosshair/cartesian.js +8 -4
  245. package/esm/component/crosshair/cartesian.js.map +1 -1
  246. package/esm/component/crosshair/polar.js +4 -2
  247. package/esm/component/crosshair/polar.js.map +1 -1
  248. package/esm/component/crosshair/utils/cartesian.d.ts +2 -0
  249. package/esm/component/crosshair/utils/cartesian.js +4 -0
  250. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  251. package/esm/component/custom-mark/custom-mark.d.ts +1 -0
  252. package/esm/component/custom-mark/custom-mark.js +13 -0
  253. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  254. package/esm/component/data-zoom/data-filter-base-component.d.ts +2 -2
  255. package/esm/component/data-zoom/data-filter-base-component.js +12 -10
  256. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  257. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  258. package/esm/component/data-zoom/data-zoom/data-zoom.js +13 -10
  259. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  260. package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -0
  261. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  262. package/esm/component/data-zoom/interface.d.ts +2 -0
  263. package/esm/component/data-zoom/interface.js.map +1 -1
  264. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +3 -2
  265. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  266. package/esm/component/data-zoom/util.js +5 -1
  267. package/esm/component/data-zoom/util.js.map +1 -1
  268. package/esm/component/geo/geo-coordinate.js.map +1 -1
  269. package/esm/component/indicator/indicator.js.map +1 -1
  270. package/esm/component/label/base-label.d.ts +2 -1
  271. package/esm/component/label/base-label.js +3 -0
  272. package/esm/component/label/base-label.js.map +1 -1
  273. package/esm/component/label/label.d.ts +1 -2
  274. package/esm/component/label/label.js +8 -9
  275. package/esm/component/label/label.js.map +1 -1
  276. package/esm/component/label/total-label.d.ts +1 -0
  277. package/esm/component/label/total-label.js +10 -0
  278. package/esm/component/label/total-label.js.map +1 -1
  279. package/esm/component/tooltip/constant.d.ts +5 -0
  280. package/esm/component/tooltip/constant.js +8 -0
  281. package/esm/component/tooltip/constant.js.map +1 -0
  282. package/esm/component/tooltip/index.d.ts +1 -0
  283. package/esm/component/tooltip/index.js +2 -0
  284. package/esm/component/tooltip/index.js.map +1 -1
  285. package/esm/component/tooltip/interface/spec.d.ts +4 -3
  286. package/esm/component/tooltip/interface/spec.js.map +1 -1
  287. package/esm/component/tooltip/tooltip-transformer.d.ts +2 -0
  288. package/esm/component/tooltip/tooltip-transformer.js +16 -1
  289. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  290. package/esm/component/tooltip/tooltip.d.ts +3 -3
  291. package/esm/component/tooltip/tooltip.js +29 -45
  292. package/esm/component/tooltip/tooltip.js.map +1 -1
  293. package/esm/core/index.d.ts +1 -1
  294. package/esm/core/index.js +1 -1
  295. package/esm/core/index.js.map +1 -1
  296. package/esm/core/vchart.d.ts +4 -1
  297. package/esm/core/vchart.js +50 -49
  298. package/esm/core/vchart.js.map +1 -1
  299. package/esm/event/event-dispatcher.d.ts +1 -0
  300. package/esm/event/event-dispatcher.js +4 -1
  301. package/esm/event/event-dispatcher.js.map +1 -1
  302. package/esm/event/event.js +1 -1
  303. package/esm/event/event.js.map +1 -1
  304. package/esm/event/interface.d.ts +2 -1
  305. package/esm/event/interface.js.map +1 -1
  306. package/esm/interaction/index.d.ts +1 -0
  307. package/esm/interaction/index.js +2 -0
  308. package/esm/interaction/index.js.map +1 -0
  309. package/esm/interaction/interface.js +1 -1
  310. package/esm/interaction/zoom/zoomable.js +4 -6
  311. package/esm/interaction/zoom/zoomable.js.map +1 -1
  312. package/esm/model/interface.d.ts +3 -8
  313. package/esm/model/interface.js.map +1 -1
  314. package/esm/plugin/base/base-plugin-service.d.ts +2 -2
  315. package/esm/plugin/base/base-plugin-service.js +5 -5
  316. package/esm/plugin/base/base-plugin-service.js.map +1 -1
  317. package/esm/plugin/base/base-plugin.d.ts +1 -0
  318. package/esm/plugin/base/base-plugin.js +3 -0
  319. package/esm/plugin/base/base-plugin.js.map +1 -1
  320. package/esm/plugin/base/interface.d.ts +3 -3
  321. package/esm/plugin/base/interface.js.map +1 -1
  322. package/esm/plugin/chart/formatter/formatter.d.ts +2 -2
  323. package/esm/plugin/chart/formatter/formatter.js +5 -7
  324. package/esm/plugin/chart/formatter/formatter.js.map +1 -1
  325. package/esm/plugin/chart/media-query/media-query.d.ts +1 -1
  326. package/esm/plugin/chart/media-query/media-query.js +4 -4
  327. package/esm/plugin/chart/media-query/media-query.js.map +1 -1
  328. package/esm/plugin/chart/plugin-service.d.ts +1 -0
  329. package/esm/plugin/chart/plugin-service.js +3 -0
  330. package/esm/plugin/chart/plugin-service.js.map +1 -1
  331. package/esm/plugin/components/plugin-service.d.ts +1 -0
  332. package/esm/plugin/components/plugin-service.js +3 -0
  333. package/esm/plugin/components/plugin-service.js.map +1 -1
  334. package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +2 -2
  335. package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
  336. package/esm/plugin/components/tooltip-handler/constants.d.ts +0 -5
  337. package/esm/plugin/components/tooltip-handler/constants.js +0 -8
  338. package/esm/plugin/components/tooltip-handler/constants.js.map +1 -1
  339. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -1
  340. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  341. package/esm/plugin/components/tooltip-handler/utils/position.d.ts +1 -0
  342. package/esm/region/interface.d.ts +2 -1
  343. package/esm/region/interface.js.map +1 -1
  344. package/esm/region/region.js +1 -1
  345. package/esm/region/region.js.map +1 -1
  346. package/esm/series/area/area-transformer.d.ts +1 -0
  347. package/esm/series/area/area-transformer.js +3 -0
  348. package/esm/series/area/area-transformer.js.map +1 -1
  349. package/esm/series/area/area.d.ts +0 -1
  350. package/esm/series/area/area.js +1 -1
  351. package/esm/series/area/area.js.map +1 -1
  352. package/esm/series/bar/bar-transformer.d.ts +1 -0
  353. package/esm/series/bar/bar-transformer.js +3 -0
  354. package/esm/series/bar/bar-transformer.js.map +1 -1
  355. package/esm/series/bar/bar.d.ts +0 -1
  356. package/esm/series/bar/bar.js +2 -2
  357. package/esm/series/bar/bar.js.map +1 -1
  358. package/esm/series/base/base-series-transformer.d.ts +5 -3
  359. package/esm/series/base/base-series-transformer.js +10 -3
  360. package/esm/series/base/base-series-transformer.js.map +1 -1
  361. package/esm/series/base/base-series.d.ts +0 -4
  362. package/esm/series/base/base-series.js +11 -15
  363. package/esm/series/base/base-series.js.map +1 -1
  364. package/esm/series/cartesian/cartesian.js +3 -2
  365. package/esm/series/cartesian/cartesian.js.map +1 -1
  366. package/esm/series/funnel/funnel.js +2 -1
  367. package/esm/series/funnel/funnel.js.map +1 -1
  368. package/esm/series/gauge/gauge-pointer-transformer.d.ts +5 -0
  369. package/esm/series/gauge/gauge-pointer-transformer.js +8 -0
  370. package/esm/series/gauge/gauge-pointer-transformer.js.map +1 -0
  371. package/esm/series/gauge/gauge-pointer.d.ts +3 -1
  372. package/esm/series/gauge/gauge-pointer.js +6 -3
  373. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  374. package/esm/series/gauge/gauge-transformer.d.ts +1 -0
  375. package/esm/series/gauge/gauge-transformer.js +3 -0
  376. package/esm/series/gauge/gauge-transformer.js.map +1 -1
  377. package/esm/series/gauge/gauge.d.ts +0 -1
  378. package/esm/series/gauge/gauge.js +1 -1
  379. package/esm/series/gauge/gauge.js.map +1 -1
  380. package/esm/series/interface/common.d.ts +6 -2
  381. package/esm/series/interface/common.js.map +1 -1
  382. package/esm/series/map/geo-source.d.ts +1 -1
  383. package/esm/series/map/geo-source.js.map +1 -1
  384. package/esm/series/polar/progress-like/progress-like.d.ts +0 -1
  385. package/esm/series/polar/progress-like/progress-like.js +5 -5
  386. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  387. package/esm/series/polar/rose-like/rose-like.js +1 -1
  388. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  389. package/esm/series/progress/circular/circular-transformer.d.ts +5 -0
  390. package/esm/series/progress/circular/circular-transformer.js +8 -0
  391. package/esm/series/progress/circular/circular-transformer.js.map +1 -0
  392. package/esm/series/progress/circular/circular.d.ts +3 -0
  393. package/esm/series/progress/circular/circular.js +8 -5
  394. package/esm/series/progress/circular/circular.js.map +1 -1
  395. package/esm/series/radar/radar.js +2 -2
  396. package/esm/series/radar/radar.js.map +1 -1
  397. package/esm/series/range-column/range-column-transformer.d.ts +1 -0
  398. package/esm/series/range-column/range-column-transformer.js +3 -0
  399. package/esm/series/range-column/range-column-transformer.js.map +1 -1
  400. package/esm/series/range-column/range-column.d.ts +0 -1
  401. package/esm/series/range-column/range-column.js +1 -2
  402. package/esm/series/range-column/range-column.js.map +1 -1
  403. package/esm/series/rose/rose-transformer.d.ts +1 -0
  404. package/esm/series/rose/rose-transformer.js +3 -0
  405. package/esm/series/rose/rose-transformer.js.map +1 -1
  406. package/esm/series/rose/rose.d.ts +0 -1
  407. package/esm/series/rose/rose.js +2 -2
  408. package/esm/series/rose/rose.js.map +1 -1
  409. package/esm/series/waterfall/waterfall-transformer.d.ts +1 -0
  410. package/esm/series/waterfall/waterfall-transformer.js +3 -0
  411. package/esm/series/waterfall/waterfall-transformer.js.map +1 -1
  412. package/esm/series/waterfall/waterfall.d.ts +0 -1
  413. package/esm/series/waterfall/waterfall.js +1 -1
  414. package/esm/series/waterfall/waterfall.js.map +1 -1
  415. package/esm/typings/spec/common.d.ts +2 -2
  416. package/esm/typings/spec/common.js.map +1 -1
  417. package/esm/typings/spec/index.d.ts +1 -1
  418. package/esm/typings/spec/index.js.map +1 -1
  419. package/esm/vchart-all.js +2 -2
  420. package/esm/vchart-all.js.map +1 -1
  421. package/esm/vchart-simple.js +1 -3
  422. package/esm/vchart-simple.js.map +1 -1
  423. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/label/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport { AttributeLevel, ChartEvent, LayoutZIndex, VGRAMMAR_HOOK_EVENT } from '../../constant';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { eachSeries } from '../../util/model';\nimport type { ISeries } from '../../series/interface';\nimport type { IGroupMark, ILabel, IMark as IVGrammarMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabel as registerVGrammarLabel } from '@visactor/vgrammar-core';\nimport { defaultLabelConfig, textAttribute } from './util';\nimport type { IComponentMark } from '../../mark/component';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { BaseLabelComponent } from './base-label';\nimport type { LooseFunction, Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isArray, isFunction, pickWithout } from '@visactor/vutils';\nimport type { IGroup, IText } from '@visactor/vrender-core';\nimport type { ILabelSpec, TransformedLabelSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport type { ILabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { IChartSpec } from '../../typings';\nimport { LabelSpecTransformer } from './label-transformer';\nimport type { LabelItem } from '@visactor/vrender-components';\n\nexport interface ILabelInfo {\n baseMark: ICompilableMark;\n labelMark: ILabelMark;\n series: ISeries;\n labelSpec: TransformedLabelSpec;\n}\n\nexport interface ILabelComponentContext {\n region: IRegion;\n labelInfo: ILabelInfo[];\n}\n\nexport class Label<T extends IChartSpec = any> extends BaseLabelComponent<T> {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n static specKey = 'label';\n specKey = 'label';\n\n static readonly transformerConstructor = LabelSpecTransformer as any;\n readonly transformerConstructor = LabelSpecTransformer;\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n protected _labelInfoMap: Map<IRegion, ILabelInfo[]>;\n\n protected _labelComponentMap: Map<IComponentMark, () => ILabelInfo | ILabelInfo[]>;\n\n protected _layoutRule: 'series' | 'region';\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._layoutRule = (spec as any).labelLayout || 'series';\n }\n\n static getSpecInfo(chartSpec: any, chartSpecInfo: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n const regionSpecInfo = chartSpecInfo?.region || [];\n const isLabelVisible = (labelSpecList: ILabelSpec[]) => {\n return labelSpecList.some(labelSpec => labelSpec.visible);\n };\n\n regionSpecInfo.forEach((regionInfo, i) => {\n const seriesIndexes = regionInfo.seriesIndexes || [];\n const hasVisibleLabel = seriesIndexes.some(seriesIndex => {\n const seriesInfo = chartSpecInfo.series[seriesIndex];\n const { markLabelSpec = {} } = seriesInfo;\n return Object.values(markLabelSpec).some(\n labelSpecList => Array.isArray(labelSpecList) && isLabelVisible(labelSpecList)\n );\n });\n\n if (chartSpec.labelLayout !== 'region' || hasVisibleLabel) {\n specInfo.push({\n spec: chartSpec,\n type: ComponentTypeEnum.label,\n specInfoPath: ['component', this.specKey, i],\n regionIndexes: [i]\n });\n }\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.initEvent();\n this._initTextMark();\n this._initLabelComponent();\n this._initTextMarkStyle();\n }\n\n reInit(spec?: T) {\n super.reInit(spec);\n this._labelInfoMap && this._labelInfoMap.clear();\n this._initTextMark();\n this._initTextMarkStyle();\n }\n\n initEvent() {\n this.event.on(ChartEvent.dataZoomChange, () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.disableAnimation();\n }\n });\n this.event.on(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n });\n const enableAnimation = () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.enableAnimation();\n }\n });\n this.event.off(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n };\n\n this.event.on('afterElementEncode', eventParams => {\n const mark = eventParams.item;\n\n if (this._option.getChart().getLayoutTag() === false && mark.getContext()?.model === this) {\n this._delegateLabelEvent(mark.getGroupGraphicItem());\n }\n });\n }\n\n protected _delegateLabelEvent(component: IGroup) {\n const textNodes = component\n ?.findAll(node => node.type === 'text', true)\n // label 组件的底层实现是有 text 图元复用的,这里为了避免重复的事件监听\n .filter(text => !(text as any).__vchart_event) as IText[];\n if (textNodes && textNodes.length > 0) {\n textNodes.forEach(text => {\n text.__vchart_event = true;\n text.addEventListener('*', ((event: any, type: string) =>\n this._delegateEvent(component, event, type, text, (text.attribute as LabelItem).data)) as LooseFunction);\n });\n }\n }\n\n protected _initTextMark() {\n if (!this._labelInfoMap) {\n this._labelInfoMap = new Map();\n }\n\n if (!this._labelComponentMap) {\n this._labelComponentMap = new Map();\n }\n eachSeries(this._regions, (series: ISeries) => {\n const { markLabelSpec = {} } = series.getSpecInfo();\n const markNames = Object.keys(markLabelSpec);\n const region = series.getRegion();\n\n if (!this._labelInfoMap.get(region)) {\n this._labelInfoMap.set(region, []);\n }\n for (let i = 0; i < markNames.length; i++) {\n const markName = markNames[i];\n const mark = series.getMarkInName(markName);\n if (!mark) {\n continue;\n }\n markLabelSpec[markName].forEach((spec: TransformedLabelSpec, index: number) => {\n if (spec.visible) {\n const info = this._labelInfoMap.get(region);\n const labelMark = this._createMark(\n {\n type: MarkTypeEnum.label,\n name: `${markName}-label-${index}`\n },\n { noSeparateStyle: true, attributeContext: series.getMarkAttributeContext() }\n ) as ILabelMark;\n labelMark.setTarget(mark);\n info.push({\n labelMark,\n baseMark: mark,\n series,\n labelSpec: spec\n });\n }\n });\n }\n });\n }\n\n protected _initLabelComponent() {\n this._labelInfoMap.forEach((regionLabelInfo, region) => {\n if (this._layoutRule === 'region') {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${region.getGroupMark().name}-label-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: (this._spec as any).support3d\n }\n );\n if (component) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n this._labelComponentMap.set(component, () => {\n return this._labelInfoMap.get(region);\n });\n }\n } else {\n regionLabelInfo.forEach((labelInfo, i) => {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${labelInfo.labelMark.name}-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: labelInfo.baseMark.getSupport3d()\n }\n );\n if (component) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n this._labelComponentMap.set(component, () => {\n return this._labelInfoMap.get(region)[i];\n });\n labelInfo.labelMark.setComponent(component);\n }\n });\n }\n });\n }\n\n protected _initTextMarkStyle() {\n this._labelInfoMap.forEach(labelInfos => {\n labelInfos.forEach(info => {\n const { labelMark, labelSpec, series } = info;\n this.initMarkStyleWithSpec(labelMark, labelSpec, undefined);\n if (isFunction(labelSpec?.getStyleHandler)) {\n const styleHandler = labelSpec.getStyleHandler(series);\n styleHandler?.call(series, labelMark, labelSpec);\n }\n if (labelMark.stateStyle?.normal?.lineWidth) {\n labelMark.setAttribute('stroke', series.getColorAttribute(), 'normal', AttributeLevel.Base_Series);\n }\n });\n });\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n this._labelComponentMap.forEach((labelInfoCb, labelComponent) => {\n const labelInfo = labelInfoCb();\n if (isArray(labelInfo)) {\n this._updateMultiLabelAttribute(labelInfo, labelComponent);\n } else {\n this._updateSingleLabelAttribute(labelInfo, labelComponent);\n }\n });\n }\n\n protected _updateMultiLabelAttribute(labelInfo: ILabelInfo[], labelComponent: IComponentMark) {\n this._updateLabelComponentAttribute(\n labelComponent.getProduct() as ILabel,\n labelInfo.map(({ baseMark }) => baseMark.getProduct()),\n labelInfo\n );\n }\n\n protected _updateSingleLabelAttribute(labelInfo: ILabelInfo, labelComponent: IComponentMark) {\n const { baseMark } = labelInfo;\n this._updateLabelComponentAttribute(labelComponent.getProduct() as ILabel, baseMark.getProduct(), [labelInfo]);\n }\n\n protected _updateLabelComponentAttribute(\n component: ILabel,\n target: IVGrammarMark | IVGrammarMark[],\n labelInfos: ILabelInfo[]\n ) {\n const dependCmp = this._option.getComponentsByType('totalLabel');\n component\n .target(target)\n .configure({ interactive: false })\n .depend(dependCmp.map(cmp => cmp.getMarks()[0].getProduct()))\n .labelStyle((mark: IVGrammarMark, params: Record<string, any>) => {\n const labelInfo = labelInfos[params.labelIndex];\n if (labelInfo) {\n const { labelSpec, labelMark } = labelInfo;\n const rule = labelMark.getRule();\n const interactive = this._interactiveConfig(labelSpec);\n /** arc label When setting the centerOffset of the spec, the label also needs to be offset accordingly, and the centerOffset is not in the labelSpec */\n const centerOffset = (this._spec as any)?.centerOffset ?? 0;\n const spec = mergeSpec(\n {\n textStyle: { pickable: labelSpec.interactive === true, ...labelSpec.style },\n overlap: {\n avoidMarks: dependCmp.map(cmp => cmp.getMarks()[0].getProductId())\n }\n },\n defaultLabelConfig(rule, labelInfo),\n {\n ...pickWithout(labelSpec, ['position', 'style', 'state', 'type']),\n ...interactive,\n centerOffset\n }\n );\n // TODO 可以优化。vgrammar 的 label 图元类型分发是完全依赖 baseMark 的类型。默认情况下,line/area 图元的标签会使用'line-data'标签,此时需要 vchart 将类型传给 vgrammar\n if (rule === 'line' || rule === 'area') {\n spec.type = rule;\n }\n return spec;\n }\n })\n .encode((datum, element, params: Record<string, any>) => {\n const labelInfo = labelInfos[params.labelIndex];\n if (labelInfo) {\n const { labelSpec, labelMark } = labelInfos[params.labelIndex];\n return labelMark.skipEncode\n ? { data: datum }\n : textAttribute(labelInfos[params.labelIndex], datum, labelSpec.formatMethod, labelSpec.formatter);\n }\n })\n .size(() => labelInfos[0].series.getRegion().getLayoutRect());\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const labelInfo = this._labelComponentMap.get(m)();\n let group;\n if (isArray(labelInfo)) {\n group = labelInfo[0].series.getRegion().getGroupMark().getProduct() as IGroupMark;\n } else {\n group = labelInfo.series.getRegion().getGroupMark().getProduct() as IGroupMark;\n }\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this,\n labelInfo\n }\n });\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n}\n\nexport const registerLabel = () => {\n registerVGrammarLabel();\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(Label.type, Label, true);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/label/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport { AttributeLevel, ChartEvent, LayoutZIndex, VGRAMMAR_HOOK_EVENT } from '../../constant';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { eachSeries } from '../../util/model';\nimport type { ISeries } from '../../series/interface';\nimport type { IGroupMark, ILabel, IMark as IVGrammarMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabel as registerVGrammarLabel } from '@visactor/vgrammar-core';\nimport { defaultLabelConfig, textAttribute } from './util';\nimport type { IComponentMark } from '../../mark/component';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { BaseLabelComponent } from './base-label';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isArray, isFunction, pickWithout } from '@visactor/vutils';\nimport type { ILabelSpec, TransformedLabelSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport type { ILabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { IChartSpec } from '../../typings';\nimport { LabelSpecTransformer } from './label-transformer';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\n\nexport interface ILabelInfo {\n baseMark: ICompilableMark;\n labelMark: ILabelMark;\n series: ISeries;\n labelSpec: TransformedLabelSpec;\n}\n\nexport interface ILabelComponentContext {\n region: IRegion;\n labelInfo: ILabelInfo[];\n}\n\nexport class Label<T extends IChartSpec = any> extends BaseLabelComponent<T> {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n static specKey = 'label';\n specKey = 'label';\n\n static readonly transformerConstructor = LabelSpecTransformer as any;\n readonly transformerConstructor = LabelSpecTransformer;\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n protected _labelInfoMap: Map<IRegion, ILabelInfo[]>;\n\n protected _labelComponentMap: Map<IComponentMark, () => ILabelInfo | ILabelInfo[]>;\n\n protected _layoutRule: 'series' | 'region';\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._layoutRule = (spec as any).labelLayout || 'series';\n }\n\n static getSpecInfo(chartSpec: any, chartSpecInfo: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n const regionSpecInfo = chartSpecInfo?.region || [];\n const isLabelVisible = (labelSpecList: ILabelSpec[]) => {\n return labelSpecList.some(labelSpec => labelSpec.visible);\n };\n\n regionSpecInfo.forEach((regionInfo, i) => {\n const seriesIndexes = regionInfo.seriesIndexes || [];\n const hasVisibleLabel = seriesIndexes.some(seriesIndex => {\n const seriesInfo = chartSpecInfo.series[seriesIndex];\n const { markLabelSpec = {} } = seriesInfo;\n return Object.values(markLabelSpec).some(\n labelSpecList => Array.isArray(labelSpecList) && isLabelVisible(labelSpecList)\n );\n });\n\n if (chartSpec.labelLayout !== 'region' || hasVisibleLabel) {\n specInfo.push({\n spec: chartSpec,\n type: ComponentTypeEnum.label,\n specInfoPath: ['component', this.specKey, i],\n regionIndexes: [i]\n });\n }\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.initEvent();\n this._initTextMark();\n this._initLabelComponent();\n this._initTextMarkStyle();\n }\n\n reInit(spec?: T) {\n super.reInit(spec);\n this._labelInfoMap && this._labelInfoMap.clear();\n this._initTextMark();\n this._initTextMarkStyle();\n }\n\n initEvent() {\n this.event.on(ChartEvent.dataZoomChange, () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.disableAnimation();\n }\n });\n this.event.on(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n });\n const enableAnimation = () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.enableAnimation();\n }\n });\n this.event.off(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n };\n }\n\n afterCompile() {\n this._labelComponentMap.forEach((info, component) => {\n const product = component.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n this._delegateLabelEvent(product.getGroupGraphicItem());\n }\n });\n }\n });\n }\n\n protected _initTextMark() {\n if (!this._labelInfoMap) {\n this._labelInfoMap = new Map();\n }\n\n if (!this._labelComponentMap) {\n this._labelComponentMap = new Map();\n }\n eachSeries(this._regions, (series: ISeries) => {\n const { markLabelSpec = {} } = series.getSpecInfo();\n const markNames = Object.keys(markLabelSpec);\n const region = series.getRegion();\n\n if (!this._labelInfoMap.get(region)) {\n this._labelInfoMap.set(region, []);\n }\n for (let i = 0; i < markNames.length; i++) {\n const markName = markNames[i];\n const mark = series.getMarkInName(markName);\n if (!mark) {\n continue;\n }\n markLabelSpec[markName].forEach((spec: TransformedLabelSpec, index: number) => {\n if (spec.visible) {\n const info = this._labelInfoMap.get(region);\n const labelMark = this._createMark(\n {\n type: MarkTypeEnum.label,\n name: `${markName}-label-${index}`\n },\n { noSeparateStyle: true, attributeContext: series.getMarkAttributeContext() }\n ) as ILabelMark;\n labelMark.setTarget(mark);\n info.push({\n labelMark,\n baseMark: mark,\n series,\n labelSpec: spec\n });\n }\n });\n }\n });\n }\n\n protected _initLabelComponent() {\n this._labelInfoMap.forEach((regionLabelInfo, region) => {\n if (this._layoutRule === 'region') {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${region.getGroupMark().name}-label-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: (this._spec as any).support3d\n }\n );\n if (component) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n this._labelComponentMap.set(component, () => {\n return this._labelInfoMap.get(region);\n });\n }\n } else {\n regionLabelInfo.forEach((labelInfo, i) => {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${labelInfo.labelMark.name}-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: labelInfo.baseMark.getSupport3d()\n }\n );\n if (component) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n this._labelComponentMap.set(component, () => {\n return this._labelInfoMap.get(region)[i];\n });\n labelInfo.labelMark.setComponent(component);\n }\n });\n }\n });\n }\n\n protected _initTextMarkStyle() {\n this._labelInfoMap.forEach(labelInfos => {\n labelInfos.forEach(info => {\n const { labelMark, labelSpec, series } = info;\n this.initMarkStyleWithSpec(labelMark, labelSpec, undefined);\n if (isFunction(labelSpec?.getStyleHandler)) {\n const styleHandler = labelSpec.getStyleHandler(series);\n styleHandler?.call(series, labelMark, labelSpec);\n }\n if (labelMark.stateStyle?.normal?.lineWidth) {\n labelMark.setAttribute('stroke', series.getColorAttribute(), 'normal', AttributeLevel.Base_Series);\n }\n });\n });\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n this._labelComponentMap.forEach((labelInfoCb, labelComponent) => {\n const labelInfo = labelInfoCb();\n if (isArray(labelInfo)) {\n this._updateMultiLabelAttribute(labelInfo, labelComponent);\n } else {\n this._updateSingleLabelAttribute(labelInfo, labelComponent);\n }\n });\n }\n\n protected _updateMultiLabelAttribute(labelInfo: ILabelInfo[], labelComponent: IComponentMark) {\n this._updateLabelComponentAttribute(\n labelComponent.getProduct() as ILabel,\n labelInfo.map(({ baseMark }) => baseMark.getProduct()),\n labelInfo\n );\n }\n\n protected _updateSingleLabelAttribute(labelInfo: ILabelInfo, labelComponent: IComponentMark) {\n const { baseMark } = labelInfo;\n this._updateLabelComponentAttribute(labelComponent.getProduct() as ILabel, baseMark.getProduct(), [labelInfo]);\n }\n\n protected _updateLabelComponentAttribute(\n component: ILabel,\n target: IVGrammarMark | IVGrammarMark[],\n labelInfos: ILabelInfo[]\n ) {\n const dependCmp = this._option.getComponentsByType('totalLabel');\n component\n .target(target)\n .configure({ interactive: false })\n .depend(dependCmp.map(cmp => cmp.getMarks()[0].getProduct()))\n .labelStyle((mark: IVGrammarMark, params: Record<string, any>) => {\n const labelInfo = labelInfos[params.labelIndex];\n if (labelInfo) {\n const { labelSpec, labelMark } = labelInfo;\n const rule = labelMark.getRule();\n const interactive = this._interactiveConfig(labelSpec);\n /** arc label When setting the centerOffset of the spec, the label also needs to be offset accordingly, and the centerOffset is not in the labelSpec */\n const centerOffset = (this._spec as any)?.centerOffset ?? 0;\n const spec = mergeSpec(\n {\n textStyle: { pickable: labelSpec.interactive === true, ...labelSpec.style },\n overlap: {\n avoidMarks: dependCmp.map(cmp => cmp.getMarks()[0].getProductId())\n }\n },\n defaultLabelConfig(rule, labelInfo),\n {\n ...pickWithout(labelSpec, ['position', 'style', 'state', 'type']),\n ...interactive,\n centerOffset\n }\n );\n // TODO 可以优化。vgrammar 的 label 图元类型分发是完全依赖 baseMark 的类型。默认情况下,line/area 图元的标签会使用'line-data'标签,此时需要 vchart 将类型传给 vgrammar\n if (rule === 'line' || rule === 'area') {\n spec.type = rule;\n }\n return spec;\n }\n })\n .encode((datum, element, params: Record<string, any>) => {\n const labelInfo = labelInfos[params.labelIndex];\n if (labelInfo) {\n const { labelSpec, labelMark } = labelInfos[params.labelIndex];\n return labelMark.skipEncode\n ? { data: datum }\n : textAttribute(labelInfos[params.labelIndex], datum, labelSpec.formatMethod, labelSpec.formatter);\n }\n })\n .size(() => labelInfos[0].series.getRegion().getLayoutRect());\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const labelInfo = this._labelComponentMap.get(m)();\n let group;\n if (isArray(labelInfo)) {\n group = labelInfo[0].series.getRegion().getGroupMark().getProduct() as IGroupMark;\n } else {\n group = labelInfo.series.getRegion().getGroupMark().getProduct() as IGroupMark;\n }\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this,\n labelInfo\n }\n });\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n}\n\nexport const registerLabel = () => {\n registerVGrammarLabel();\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(Label.type, Label, true);\n};\n"]}
@@ -19,6 +19,7 @@ export declare class TotalLabel extends BaseLabelComponent {
19
19
  protected _initTextMark(): void;
20
20
  _initTextMarkStyle(): void;
21
21
  protected _initLabelComponent(): void;
22
+ afterCompile(): void;
22
23
  updateLayoutAttribute(): void;
23
24
  compileMarks(): void;
24
25
  getVRenderComponents(): any[];
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerTotalLabel = exports.totalLabelPosition = exports.TotalLabel = void 0;
6
6
 
7
- const label_1 = require("../../mark/label"), type_1 = require("../interface/type"), constant_1 = require("../../constant"), merge_spec_1 = require("../../util/spec/merge-spec"), vgrammar_core_1 = require("@visactor/vgrammar-core"), util_1 = require("./util"), base_label_1 = require("./base-label"), factory_1 = require("../../core/factory"), component_1 = require("../../mark/component");
7
+ const label_1 = require("../../mark/label"), type_1 = require("../interface/type"), constant_1 = require("../../constant"), merge_spec_1 = require("../../util/spec/merge-spec"), vgrammar_core_1 = require("@visactor/vgrammar-core"), util_1 = require("./util"), base_label_1 = require("./base-label"), factory_1 = require("../../core/factory"), component_1 = require("../../mark/component"), vgrammar_core_2 = require("@visactor/vgrammar-core");
8
8
 
9
9
  class TotalLabel extends base_label_1.BaseLabelComponent {
10
10
  constructor() {
@@ -59,6 +59,14 @@ class TotalLabel extends base_label_1.BaseLabelComponent {
59
59
  });
60
60
  component && this._marks.addMark(component);
61
61
  }
62
+ afterCompile() {
63
+ this._marks.forEach(((componentMark, index) => {
64
+ const product = componentMark.getProduct();
65
+ product && product.addEventListener(vgrammar_core_2.HOOK_EVENT.AFTER_ELEMENT_ENCODE, (() => {
66
+ !1 === this._isLayout && this._delegateLabelEvent(product.getGroupGraphicItem());
67
+ }));
68
+ }));
69
+ }
62
70
  updateLayoutAttribute() {
63
71
  super.updateLayoutAttribute();
64
72
  const series = this._getSeries();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/label/total-label.ts"],"names":[],"mappings":"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","file":"total-label.js","sourcesContent":["import type { ILabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { AttributeLevel, LayoutZIndex, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_TOP } from '../../constant';\nimport type { IMark, MarkType } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport type { ICartesianSeries, ISeries } from '../../series/interface';\nimport type { IGroupMark, IView } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabel as registerVGrammarLabel } from '@visactor/vgrammar-core';\nimport { textAttribute } from './util';\nimport { BaseLabelComponent } from './base-label';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport type { Datum, Maybe } from '../../typings';\nimport { Factory } from '../../core/factory';\nimport { registerComponentMark } from '../../mark/component';\nimport type { IChartSpecInfo } from '../../chart/interface';\n\nexport class TotalLabel extends BaseLabelComponent {\n static type = ComponentTypeEnum.totalLabel;\n type = ComponentTypeEnum.totalLabel;\n name: string = ComponentTypeEnum.totalLabel;\n\n static specKey = 'totalLabel';\n specKey = 'totalLabel';\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n private _textMark?: ILabelMark;\n private _baseMark?: IMark;\n\n static getSpecInfo(chartSpec: any, chartSpecInfo?: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n chartSpecInfo?.region?.forEach((regionInfo, regionIndex) => {\n regionInfo.seriesIndexes?.forEach(seriesIndex => {\n const { spec } = chartSpecInfo.series[seriesIndex];\n const labelSpec = spec[this.specKey];\n if (labelSpec?.visible) {\n specInfo.push({\n spec: labelSpec,\n type: ComponentTypeEnum.totalLabel,\n specPath: ['series', seriesIndex, this.specKey],\n specInfoPath: ['component', this.specKey, seriesIndex],\n regionIndexes: [regionIndex],\n seriesIndexes: [seriesIndex]\n });\n }\n });\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this._initTextMark();\n this._initLabelComponent();\n }\n\n protected _initTextMark() {\n const series = this._getSeries();\n if (series.getSpec().totalLabel?.visible) {\n const mark = series.getMarksInType([MarkTypeEnum.rect, MarkTypeEnum.symbol])[0];\n const textMark = this._createMark({ type: MarkTypeEnum.label, name: `${mark.name}-total-label` }) as ILabelMark;\n this._baseMark = mark;\n this._textMark = textMark;\n this._initTextMarkStyle();\n }\n }\n\n _initTextMarkStyle() {\n super.initMarkStyleWithSpec(this._textMark, this._spec);\n this.setMarkStyle(\n this._textMark,\n {\n text: (datum: Datum) => {\n return datum[STACK_FIELD_TOTAL];\n }\n },\n 'normal',\n AttributeLevel.Default\n );\n }\n\n protected _initLabelComponent() {\n const series = this._getSeries();\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${series.name}-total-label-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: this._spec.support3d\n }\n );\n if (component) {\n this._marks.addMark(component);\n }\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n const series = this._getSeries();\n this._marks.forEach((componentMark, index) => {\n const component = componentMark.getProduct() as ReturnType<IView['label']>;\n component\n .target(this._baseMark.getProduct())\n .configure({ interactive: false })\n .labelStyle(() => {\n if (this._baseMark) {\n const { offset, animation, overlap } = this._spec;\n const interactive = this._interactiveConfig(this._spec);\n return mergeSpec(\n {\n textStyle: { pickable: this._spec.interactive === true },\n position: totalLabelPosition(series, this._baseMark.type),\n x: 0,\n y: 0\n },\n {\n offset,\n animation,\n overlap,\n dataFilter: (data: any) => {\n return data.filter((d: any) => d.data[STACK_FIELD_TOTAL_TOP]);\n },\n ...interactive\n }\n );\n }\n })\n .encode(datum => {\n return textAttribute(\n {\n baseMark: this._baseMark,\n labelMark: this._textMark,\n series,\n labelSpec: series.getSpec().totalLabel\n },\n datum,\n this._spec.formatMethod\n );\n })\n .size(() => this._regions[0].getLayoutRect());\n });\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const group = this._regions[0].getGroupMark().getProduct() as IGroupMark;\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this\n }\n });\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this.getMarks().forEach(m => {\n const graphicItem = m.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n\n protected _getSeries() {\n return this._option.getSeriesInIndex([this.getSpecPath()[1] as number])[0];\n }\n}\n\nexport function totalLabelPosition(series: ISeries, type: MarkType) {\n let position;\n const { direction } = series as ICartesianSeries;\n const isInverse =\n direction === 'horizontal'\n ? (series as ICartesianSeries).getXAxisHelper()?.isInverse()\n : (series as ICartesianSeries).getYAxisHelper()?.isInverse();\n const positionMap = { vertical: ['top', 'bottom'], horizontal: ['right', 'left'] };\n const index = isInverse ? 1 : 0;\n switch (type) {\n case 'rect':\n case 'symbol':\n position = positionMap[direction][index];\n break;\n default:\n position = 'top';\n }\n return position;\n}\n\nexport const registerTotalLabel = () => {\n registerVGrammarLabel();\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(TotalLabel.type, TotalLabel, true);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/label/total-label.ts"],"names":[],"mappings":"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","file":"total-label.js","sourcesContent":["import type { ILabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { AttributeLevel, LayoutZIndex, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_TOP } from '../../constant';\nimport type { IMark, MarkType } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport type { ICartesianSeries, ISeries } from '../../series/interface';\nimport type { IGroupMark, IView } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabel as registerVGrammarLabel } from '@visactor/vgrammar-core';\nimport { textAttribute } from './util';\nimport { BaseLabelComponent } from './base-label';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport type { Datum, Maybe } from '../../typings';\nimport { Factory } from '../../core/factory';\nimport { registerComponentMark } from '../../mark/component';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\n\nexport class TotalLabel extends BaseLabelComponent {\n static type = ComponentTypeEnum.totalLabel;\n type = ComponentTypeEnum.totalLabel;\n name: string = ComponentTypeEnum.totalLabel;\n\n static specKey = 'totalLabel';\n specKey = 'totalLabel';\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n private _textMark?: ILabelMark;\n private _baseMark?: IMark;\n\n static getSpecInfo(chartSpec: any, chartSpecInfo?: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n chartSpecInfo?.region?.forEach((regionInfo, regionIndex) => {\n regionInfo.seriesIndexes?.forEach(seriesIndex => {\n const { spec } = chartSpecInfo.series[seriesIndex];\n const labelSpec = spec[this.specKey];\n if (labelSpec?.visible) {\n specInfo.push({\n spec: labelSpec,\n type: ComponentTypeEnum.totalLabel,\n specPath: ['series', seriesIndex, this.specKey],\n specInfoPath: ['component', this.specKey, seriesIndex],\n regionIndexes: [regionIndex],\n seriesIndexes: [seriesIndex]\n });\n }\n });\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this._initTextMark();\n this._initLabelComponent();\n }\n\n protected _initTextMark() {\n const series = this._getSeries();\n if (series.getSpec().totalLabel?.visible) {\n const mark = series.getMarksInType([MarkTypeEnum.rect, MarkTypeEnum.symbol])[0];\n const textMark = this._createMark({ type: MarkTypeEnum.label, name: `${mark.name}-total-label` }) as ILabelMark;\n this._baseMark = mark;\n this._textMark = textMark;\n this._initTextMarkStyle();\n }\n }\n\n _initTextMarkStyle() {\n super.initMarkStyleWithSpec(this._textMark, this._spec);\n this.setMarkStyle(\n this._textMark,\n {\n text: (datum: Datum) => {\n return datum[STACK_FIELD_TOTAL];\n }\n },\n 'normal',\n AttributeLevel.Default\n );\n }\n\n protected _initLabelComponent() {\n const series = this._getSeries();\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${series.name}-total-label-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: this._spec.support3d\n }\n );\n if (component) {\n this._marks.addMark(component);\n }\n }\n\n afterCompile() {\n this._marks.forEach((componentMark, index) => {\n const product = componentMark.getProduct() as ReturnType<IView['label']>;\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n this._delegateLabelEvent(product.getGroupGraphicItem());\n }\n });\n }\n });\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n const series = this._getSeries();\n this._marks.forEach((componentMark, index) => {\n const component = componentMark.getProduct() as ReturnType<IView['label']>;\n component\n .target(this._baseMark.getProduct())\n .configure({ interactive: false })\n .labelStyle(() => {\n if (this._baseMark) {\n const { offset, animation, overlap } = this._spec;\n const interactive = this._interactiveConfig(this._spec);\n return mergeSpec(\n {\n textStyle: { pickable: this._spec.interactive === true },\n position: totalLabelPosition(series, this._baseMark.type),\n x: 0,\n y: 0\n },\n {\n offset,\n animation,\n overlap,\n dataFilter: (data: any) => {\n return data.filter((d: any) => d.data[STACK_FIELD_TOTAL_TOP]);\n },\n ...interactive\n }\n );\n }\n })\n .encode(datum => {\n return textAttribute(\n {\n baseMark: this._baseMark,\n labelMark: this._textMark,\n series,\n labelSpec: series.getSpec().totalLabel\n },\n datum,\n this._spec.formatMethod\n );\n })\n .size(() => this._regions[0].getLayoutRect());\n });\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const group = this._regions[0].getGroupMark().getProduct() as IGroupMark;\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this\n }\n });\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this.getMarks().forEach(m => {\n const graphicItem = m.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n\n protected _getSeries() {\n return this._option.getSeriesInIndex([this.getSpecPath()[1] as number])[0];\n }\n}\n\nexport function totalLabelPosition(series: ISeries, type: MarkType) {\n let position;\n const { direction } = series as ICartesianSeries;\n const isInverse =\n direction === 'horizontal'\n ? (series as ICartesianSeries).getXAxisHelper()?.isInverse()\n : (series as ICartesianSeries).getYAxisHelper()?.isInverse();\n const positionMap = { vertical: ['top', 'bottom'], horizontal: ['right', 'left'] };\n const index = isInverse ? 1 : 0;\n switch (type) {\n case 'rect':\n case 'symbol':\n position = positionMap[direction][index];\n break;\n default:\n position = 'top';\n }\n return position;\n}\n\nexport const registerTotalLabel = () => {\n registerVGrammarLabel();\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(TotalLabel.type, TotalLabel, true);\n};\n"]}
@@ -0,0 +1,5 @@
1
+ export declare class TooltipHandlerType {
2
+ static dom: string;
3
+ static canvas: string;
4
+ }
5
+ export declare const TOOLTIP_EL_CLASS_NAME = "vchart-tooltip-element";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.TOOLTIP_EL_CLASS_NAME = exports.TooltipHandlerType = void 0;
6
+
7
+ const constant_1 = require("../../constant");
8
+
9
+ class TooltipHandlerType {}
10
+
11
+ exports.TooltipHandlerType = TooltipHandlerType, TooltipHandlerType.dom = `${constant_1.PREFIX}_TOOLTIP_HANDLER_DOM`,
12
+ TooltipHandlerType.canvas = `${constant_1.PREFIX}_TOOLTIP_HANDLER_CANVAS`, exports.TOOLTIP_EL_CLASS_NAME = "vchart-tooltip-element";
13
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/component/tooltip/constant.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,MAAa,kBAAkB;;AAA/B,gDAGC;AAFQ,sBAAG,GAAG,GAAG,iBAAM,sBAAsB,CAAC;AACtC,yBAAM,GAAG,GAAG,iBAAM,yBAAyB,CAAC;AAGxC,QAAA,qBAAqB,GAAG,wBAAwB,CAAC","file":"constant.js","sourcesContent":["import { PREFIX } from '../../constant';\n\nexport class TooltipHandlerType {\n static dom = `${PREFIX}_TOOLTIP_HANDLER_DOM`; // 模拟 enum\n static canvas = `${PREFIX}_TOOLTIP_HANDLER_CANVAS`;\n}\n\nexport const TOOLTIP_EL_CLASS_NAME = 'vchart-tooltip-element';\n"]}
@@ -1,3 +1,4 @@
1
1
  export * from './tooltip';
2
2
  export * from './interface';
3
3
  export * from './tooltip-transformer';
4
+ export * from './constant';
@@ -18,5 +18,5 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), __exportStar(require("./tooltip"), exports), __exportStar(require("./interface"), exports),
21
- __exportStar(require("./tooltip-transformer"), exports);
21
+ __exportStar(require("./tooltip-transformer"), exports), __exportStar(require("./constant"), exports);
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,8CAA4B;AAC5B,wDAAsC","file":"index.js","sourcesContent":["export * from './tooltip';\nexport * from './interface';\nexport * from './tooltip-transformer';\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,8CAA4B;AAC5B,wDAAsC;AACtC,6CAA2B","file":"index.js","sourcesContent":["export * from './tooltip';\nexport * from './interface';\nexport * from './tooltip-transformer';\nexport * from './constant';\n"]}
@@ -1,11 +1,12 @@
1
- import type { ITooltipActual, ITooltipPattern, Maybe, TooltipActiveType, TooltipData } from '../../../typings';
1
+ import type { ITooltipActual, ITooltipPattern, Maybe, MaybeArray, TooltipActiveType, TooltipData } from '../../../typings';
2
2
  import type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';
3
3
  import type { ITooltipTheme } from './theme';
4
4
  export interface ITooltipSpec extends Partial<ITooltipActiveTypeAsKeys<ITooltipPattern, ITooltipPattern>> {
5
5
  visible?: boolean;
6
6
  activeType?: TooltipActiveType | TooltipActiveType[];
7
- trigger?: 'hover' | 'click' | 'none';
8
- triggerOff?: 'hover' | 'click' | 'none';
7
+ trigger?: MaybeArray<'hover' | 'click'> | 'none';
8
+ triggerOff?: MaybeArray<'hover' | 'click'> | 'none';
9
+ lockAfterClick?: boolean;
9
10
  style?: Omit<ITooltipTheme<string>, 'offset'>;
10
11
  handler?: Partial<ITooltipHandlerSpec>;
11
12
  renderMode?: 'html' | 'canvas';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { ITooltipActual, ITooltipPattern, Maybe, TooltipActiveType, TooltipData } from '../../../typings';\nimport type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';\nimport type { ITooltipTheme } from './theme';\n\nexport interface ITooltipSpec\n extends Partial<\n /**\n * mark tooltip pattern\n * & dimension tooltip pattern\n * (*支持在series上设置)\n */\n ITooltipActiveTypeAsKeys<ITooltipPattern, ITooltipPattern>\n > {\n /**\n * 是否显示\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n visible?: boolean;\n /**\n * 受支持的激活类型\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n activeType?: TooltipActiveType | TooltipActiveType[];\n /**\n * tooltip触发方式\n * (*会影响自定义handler)\n */\n trigger?: 'hover' | 'click' | 'none';\n /**\n * 隐藏tooltip的触发方式(目前仅支持和trigger一致的设置以及none)\n * (*会影响自定义handler)\n */\n triggerOff?: 'hover' | 'click' | 'none';\n\n /**\n * tooltip样式\n */\n style?: Omit<ITooltipTheme<string>, 'offset'>;\n\n /**\n * 自定义handler方法\n */\n handler?: Partial<ITooltipHandlerSpec>;\n\n /**\n * tooltip 渲染方式,默认为 html\n */\n renderMode?: 'html' | 'canvas';\n /**\n * 是否将 tooltip 框限制在画布区域内,renderMode 为 canvas 时,默认开启。\n */\n confine?: boolean;\n\n /**\n * tooltip dom元素的 className,仅当 renderMode: 'html' 时生效\n */\n className?: string;\n /**\n * tooltip dom 元素的挂载点,可传 id 或 dom 对象\n */\n parentElement?: Maybe<string | HTMLElement | HTMLCanvasElement>;\n /**\n * 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。\n * 该属性目前只对 renderMode 为 html 时生效\n * TODO: 支持 renderMode: canvas\n */\n enterable?: boolean;\n\n /**\n * 浮层移动动画过渡时间,单位是 ms,设置为 0 的时候会紧跟着鼠标移动(目前仅影响 dom tooltip)\n */\n transitionDuration?: number;\n\n /**\n * 更新 tooltip 的防抖动时间间隔,单位是 ms\n */\n throttleInterval?: number;\n\n /**\n * 更新 tooltip dom 元素,仅当 renderMode: 'html' 时生效\n * @since 1.6.0\n */\n updateElement?: (tooltipElement: HTMLElement, actualTooltip: ITooltipActual, params: TooltipHandlerParams) => void;\n\n offset?: {\n x?: number;\n y?: number;\n };\n}\n\nexport interface ITooltipHandlerSpec {\n /** 显示 tooltip,可以选择返回是否遇到异常 */\n showTooltip: (\n activeType: TooltipActiveType,\n tooltipData: TooltipData,\n params: TooltipHandlerParams\n ) => Maybe<TooltipResult>;\n /** 隐藏 tooltip,可以选择返回是否遇到异常 */\n hideTooltip: (params: TooltipHandlerParams) => Maybe<TooltipResult>;\n /** 释放 tooltip */\n release: () => void;\n /** 可选,判断 tooltip 是否正在显示 */\n isTooltipShown?: () => boolean;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type {\n ITooltipActual,\n ITooltipPattern,\n Maybe,\n MaybeArray,\n TooltipActiveType,\n TooltipData\n} from '../../../typings';\nimport type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';\nimport type { ITooltipTheme } from './theme';\n\nexport interface ITooltipSpec\n extends Partial<\n /**\n * mark tooltip pattern\n * & dimension tooltip pattern\n * (*支持在series上设置)\n */\n ITooltipActiveTypeAsKeys<ITooltipPattern, ITooltipPattern>\n > {\n /**\n * 是否显示\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n visible?: boolean;\n /**\n * 受支持的激活类型\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n activeType?: TooltipActiveType | TooltipActiveType[];\n /**\n * tooltip触发方式\n * (*会影响自定义handler)\n */\n trigger?: MaybeArray<'hover' | 'click'> | 'none';\n /**\n * 隐藏tooltip的触发方式(目前仅支持和trigger一致的设置以及none)\n * (*会影响自定义handler)\n */\n triggerOff?: MaybeArray<'hover' | 'click'> | 'none';\n /**\n * 点击后锁定,只有点击才可以更新位置或者解锁,通常用于 trigger 为 `['hover', 'click']` 的场景\n * (*会影响自定义handler)\n * @since 1.10.0\n */\n lockAfterClick?: boolean;\n /**\n * tooltip样式\n */\n style?: Omit<ITooltipTheme<string>, 'offset'>;\n\n /**\n * 自定义handler方法\n */\n handler?: Partial<ITooltipHandlerSpec>;\n\n /**\n * tooltip 渲染方式,默认为 html\n */\n renderMode?: 'html' | 'canvas';\n /**\n * 是否将 tooltip 框限制在画布区域内,renderMode 为 canvas 时,默认开启。\n */\n confine?: boolean;\n\n /**\n * tooltip dom元素的 className,仅当 renderMode: 'html' 时生效\n */\n className?: string;\n /**\n * tooltip dom 元素的挂载点,可传 id 或 dom 对象\n */\n parentElement?: Maybe<string | HTMLElement | HTMLCanvasElement>;\n /**\n * 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。\n * 该属性目前只对 renderMode 为 html 时生效\n * TODO: 支持 renderMode: canvas\n */\n enterable?: boolean;\n\n /**\n * 浮层移动动画过渡时间,单位是 ms,设置为 0 的时候会紧跟着鼠标移动(目前仅影响 dom tooltip)\n */\n transitionDuration?: number;\n\n /**\n * 更新 tooltip 的防抖动时间间隔,单位是 ms\n */\n throttleInterval?: number;\n\n /**\n * 更新 tooltip dom 元素,仅当 renderMode: 'html' 时生效\n * @since 1.6.0\n */\n updateElement?: (tooltipElement: HTMLElement, actualTooltip: ITooltipActual, params: TooltipHandlerParams) => void;\n\n offset?: {\n x?: number;\n y?: number;\n };\n}\n\nexport interface ITooltipHandlerSpec {\n /** 显示 tooltip,可以选择返回是否遇到异常 */\n showTooltip: (\n activeType: TooltipActiveType,\n tooltipData: TooltipData,\n params: TooltipHandlerParams\n ) => Maybe<TooltipResult>;\n /** 隐藏 tooltip,可以选择返回是否遇到异常 */\n hideTooltip: (params: TooltipHandlerParams) => Maybe<TooltipResult>;\n /** 释放 tooltip */\n release: () => void;\n /** 可选,判断 tooltip 是否正在显示 */\n isTooltipShown?: () => boolean;\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type { IChartSpecInfo } from '../../chart/interface';
1
2
  import { BaseComponentSpecTransformer } from '../base';
2
3
  export declare class TooltipSpecTransformer extends BaseComponentSpecTransformer<any> {
3
4
  protected _shouldMergeThemeToSpec(): boolean;
@@ -5,4 +6,5 @@ export declare class TooltipSpecTransformer extends BaseComponentSpecTransformer
5
6
  spec: any;
6
7
  theme: any;
7
8
  };
9
+ protected _transformSpecAfterMergingTheme(spec: any, chartSpec: any, chartSpecInfo?: IChartSpecInfo): void;
8
10
  }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.TooltipSpecTransformer = void 0;
6
6
 
7
- const util_1 = require("../../util"), base_1 = require("../base");
7
+ const util_1 = require("../../util"), base_1 = require("../base"), constant_1 = require("./constant"), utils_1 = require("./utils");
8
8
 
9
9
  class TooltipSpecTransformer extends base_1.BaseComponentSpecTransformer {
10
10
  _shouldMergeThemeToSpec() {
@@ -17,6 +17,19 @@ class TooltipSpecTransformer extends base_1.BaseComponentSpecTransformer {
17
17
  theme: theme
18
18
  };
19
19
  }
20
+ _transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo) {
21
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
22
+ super._transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo), spec.visible = null === (_a = spec.visible) || void 0 === _a || _a,
23
+ spec.activeType = (0, utils_1.getTooltipActualActiveType)(spec), spec.renderMode = null !== (_b = spec.renderMode) && void 0 !== _b ? _b : (0,
24
+ util_1.isMiniAppLikeMode)(this._option.mode) || !(0, util_1.isTrueBrowser)(this._option.mode) ? "canvas" : "html",
25
+ spec.trigger = null !== (_c = spec.trigger) && void 0 !== _c ? _c : "hover", spec.className = null !== (_d = spec.className) && void 0 !== _d ? _d : constant_1.TOOLTIP_EL_CLASS_NAME,
26
+ spec.enterable = null !== (_e = spec.enterable) && void 0 !== _e && _e, spec.transitionDuration = null !== (_f = spec.transitionDuration) && void 0 !== _f ? _f : 150,
27
+ spec.triggerOff = null !== (_g = spec.triggerOff) && void 0 !== _g ? _g : spec.trigger,
28
+ spec.confine = null !== (_h = spec.confine) && void 0 !== _h ? _h : "canvas" === spec.renderMode,
29
+ (0, util_1.isValid)(spec.mark) && (spec.mark.activeType = "mark"), (0, util_1.isValid)(spec.dimension) && (spec.dimension.activeType = "dimension"),
30
+ (0, util_1.isValid)(spec.parentElement) ? (0, util_1.isString)(spec.parentElement) && (spec.parentElement = null === (_j = null === globalThis || void 0 === globalThis ? void 0 : globalThis.document) || void 0 === _j ? void 0 : _j.getElementById(spec.parentElement)) : (0,
31
+ util_1.isTrueBrowser)(this._option.mode) && (spec.parentElement = null === util_1.domDocument || void 0 === util_1.domDocument ? void 0 : util_1.domDocument.body);
32
+ }
20
33
  }
21
34
 
22
35
  exports.TooltipSpecTransformer = TooltipSpecTransformer;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/tooltip-transformer.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,kCAAuD;AAEvD,MAAa,sBAAuB,SAAQ,mCAAiC;IACjE,uBAAuB;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAES,UAAU,CAAC,IAAS,EAAE,SAAc;QAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,GAAG,IAAA,gBAAS,EAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;CACF;AAVD,wDAUC","file":"tooltip-transformer.js","sourcesContent":["import { mergeSpec } from '../../util';\nimport { BaseComponentSpecTransformer } from '../base';\n\nexport class TooltipSpecTransformer extends BaseComponentSpecTransformer<any> {\n protected _shouldMergeThemeToSpec() {\n return false;\n }\n\n protected _initTheme(spec: any, chartSpec: any): { spec: any; theme: any } {\n const { spec: newSpec, theme } = super._initTheme(spec, chartSpec);\n newSpec.style = mergeSpec({}, this._theme, newSpec.style);\n return { spec: newSpec, theme };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/tooltip-transformer.ts"],"names":[],"mappings":";;;AACA,qCAAyG;AACzG,kCAAuD;AACvD,yCAAmD;AACnD,mCAAqD;AAErD,MAAa,sBAAuB,SAAQ,mCAAiC;IACjE,uBAAuB;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAES,UAAU,CAAC,IAAS,EAAE,SAAc;QAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,GAAG,IAAA,gBAAS,EAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAES,+BAA+B,CAAC,IAAS,EAAE,SAAc,EAAE,aAA8B;;QACjG,KAAK,CAAC,+BAA+B,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAA,kCAA0B,EAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU;YACb,MAAA,IAAI,CAAC,UAAU,mCAEf,CAAC,IAAA,wBAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,oBAAa,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClG,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,gCAAqB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,MAAA,IAAI,CAAC,kBAAkB,mCAAI,GAAG,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;QAE5D,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC/B;QACD,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC;SACzC;QAED,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC/B,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,0CAAE,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAC/E;SACF;aAAM,IAAI,IAAA,oBAAa,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3C,IAAI,CAAC,aAAa,GAAG,kBAAW,aAAX,kBAAW,uBAAX,kBAAW,CAAE,IAAI,CAAC;SACxC;IACH,CAAC;CACF;AA1CD,wDA0CC","file":"tooltip-transformer.js","sourcesContent":["import type { IChartSpecInfo } from '../../chart/interface';\nimport { domDocument, isMiniAppLikeMode, isString, isTrueBrowser, isValid, mergeSpec } from '../../util';\nimport { BaseComponentSpecTransformer } from '../base';\nimport { TOOLTIP_EL_CLASS_NAME } from './constant';\nimport { getTooltipActualActiveType } from './utils';\n\nexport class TooltipSpecTransformer extends BaseComponentSpecTransformer<any> {\n protected _shouldMergeThemeToSpec() {\n return false;\n }\n\n protected _initTheme(spec: any, chartSpec: any): { spec: any; theme: any } {\n const { spec: newSpec, theme } = super._initTheme(spec, chartSpec);\n newSpec.style = mergeSpec({}, this._theme, newSpec.style);\n return { spec: newSpec, theme };\n }\n\n protected _transformSpecAfterMergingTheme(spec: any, chartSpec: any, chartSpecInfo?: IChartSpecInfo) {\n super._transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo);\n\n spec.visible = spec.visible ?? true;\n spec.activeType = getTooltipActualActiveType(spec);\n spec.renderMode =\n spec.renderMode ??\n // 小程序或非浏览器环境下,默认使用canvas渲染\n (isMiniAppLikeMode(this._option.mode) || !isTrueBrowser(this._option.mode) ? 'canvas' : 'html');\n spec.trigger = spec.trigger ?? 'hover';\n spec.className = spec.className ?? TOOLTIP_EL_CLASS_NAME;\n spec.enterable = spec.enterable ?? false;\n spec.transitionDuration = spec.transitionDuration ?? 150;\n spec.triggerOff = spec.triggerOff ?? spec.trigger;\n spec.confine = spec.confine ?? spec.renderMode === 'canvas';\n\n if (isValid(spec.mark)) {\n spec.mark.activeType = 'mark';\n }\n if (isValid(spec.dimension)) {\n spec.dimension.activeType = 'dimension';\n }\n\n if (isValid(spec.parentElement)) {\n if (isString(spec.parentElement)) {\n spec.parentElement = globalThis?.document?.getElementById(spec.parentElement);\n }\n } else if (isTrueBrowser(this._option.mode)) {\n spec.parentElement = domDocument?.body;\n }\n }\n}\n"]}
@@ -35,6 +35,7 @@ export declare class Tooltip extends BaseComponent<any> implements ITooltip {
35
35
  private _eventList;
36
36
  protected _processor: ITooltipActiveTypeAsKeys<MarkTooltipProcessor, DimensionTooltipProcessor>;
37
37
  protected _isTooltipShown: boolean;
38
+ protected _clickLock: boolean;
38
39
  isTooltipShown(): boolean;
39
40
  changeRegions(regions: IRegion[]): void;
40
41
  protected _getNeedClearVRenderComponents(): IGraphic[];
@@ -52,12 +53,11 @@ export declare class Tooltip extends BaseComponent<any> implements ITooltip {
52
53
  protected _mountEvent: (eType: EventType, query: EventQuery, callback: EventCallback<any>) => void;
53
54
  protected _getMouseOutHandler: (needPointerDetection?: boolean) => (params: BaseEventParams) => void;
54
55
  protected _handleChartMouseOut: (params: BaseEventParams) => void;
55
- protected _handleMouseMove: (params: BaseEventParams) => void;
56
- protected _showTooltipByMouseEvent: (activeType: TooltipActiveType, mouseEventData: TotalMouseEventData, params: BaseEventParams, useCache?: boolean) => boolean;
56
+ protected _getMouseMoveHandler: (isClick: boolean) => (params: BaseEventParams) => void;
57
+ protected _showTooltipByMouseEvent: (activeType: TooltipActiveType, mouseEventData: TotalMouseEventData, params: BaseEventParams, isClick: boolean, useCache?: boolean) => boolean;
57
58
  protected _getMouseEventData: (params: BaseEventParams) => TotalMouseEventData;
58
59
  protected _hideTooltipByHandler: (params: TooltipHandlerParams) => TooltipResult;
59
60
  reInit(spec?: any): void;
60
- setAttrFromSpec(): void;
61
61
  showTooltip(datum: Datum, options: IShowTooltipOption): false | "none" | TooltipActiveType;
62
62
  hideTooltip(): boolean;
63
63
  private _isSameAsCache;
@@ -4,23 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerTooltip = exports.Tooltip = void 0;
6
6
 
7
- const type_1 = require("../interface/type"), base_component_1 = require("../base/base-component"), env_1 = require("../../util/env"), show_tooltip_1 = require("./utils/show-tooltip"), common_1 = require("./utils/common"), common_2 = require("../../event/events/dimension/util/common"), constant_1 = require("../../constant"), dimension_tooltip_1 = require("./processor/dimension-tooltip"), util_1 = require("./processor/util"), mark_tooltip_1 = require("./processor/mark-tooltip"), vutils_1 = require("@visactor/vutils"), vchart_1 = require("../../core/vchart"), factory_1 = require("../../core/factory"), tooltip_transformer_1 = require("./tooltip-transformer"), constants_1 = require("../../plugin/components/tooltip-handler/constants"), util_2 = require("../../util");
7
+ const type_1 = require("../interface/type"), base_component_1 = require("../base/base-component"), env_1 = require("../../util/env"), show_tooltip_1 = require("./utils/show-tooltip"), common_1 = require("./utils/common"), common_2 = require("../../event/events/dimension/util/common"), constant_1 = require("../../constant"), dimension_tooltip_1 = require("./processor/dimension-tooltip"), util_1 = require("./processor/util"), mark_tooltip_1 = require("./processor/mark-tooltip"), vutils_1 = require("@visactor/vutils"), vchart_1 = require("../../core/vchart"), factory_1 = require("../../core/factory"), tooltip_transformer_1 = require("./tooltip-transformer"), util_2 = require("../../util"), constant_2 = require("./constant");
8
8
 
9
9
  class Tooltip extends base_component_1.BaseComponent {
10
10
  constructor() {
11
11
  super(...arguments), this.layoutZIndex = 1, this.type = type_1.ComponentTypeEnum.tooltip,
12
12
  this.name = type_1.ComponentTypeEnum.tooltip, this.transformerConstructor = tooltip_transformer_1.TooltipSpecTransformer,
13
13
  this.specKey = "tooltip", this.layoutType = "none", this._alwaysShow = !1, this._eventList = [],
14
- this._isTooltipShown = !1, this._mountEvent = (eType, query, callback) => {
14
+ this._isTooltipShown = !1, this._clickLock = !1, this._mountEvent = (eType, query, callback) => {
15
15
  this.event.on(eType, query, callback), this._eventList.push({
16
16
  eventType: eType,
17
17
  handler: callback
18
18
  });
19
19
  }, this._getMouseOutHandler = needPointerDetection => params => {
20
- var _a, _b;
20
+ var _a, _b, _c;
21
21
  if (this._alwaysShow) return;
22
22
  if (!this._isTooltipShown && !(null === (_b = null === (_a = this.tooltipHandler) || void 0 === _a ? void 0 : _a.isTooltipShown) || void 0 === _b ? void 0 : _b.call(_a))) return;
23
- const browserEnv = (0, env_1.isTrueBrowser)(this._option.mode), {clientX: clientX, clientY: clientY} = params.event;
23
+ const browserEnv = (0, env_1.isTrueBrowser)(null === (_c = this._option) || void 0 === _c ? void 0 : _c.mode), {clientX: clientX, clientY: clientY} = params.event;
24
24
  browserEnv && this._isPointerOnTooltip(params) || browserEnv && needPointerDetection && this._isPointerInChart({
25
25
  x: clientX,
26
26
  y: clientY
@@ -29,20 +29,23 @@ class Tooltip extends base_component_1.BaseComponent {
29
29
  this._alwaysShow || "none" !== this._spec.triggerOff && (this._hideTooltipByHandler(Object.assign(Object.assign({}, params), {
30
30
  tooltip: this
31
31
  })), this._cacheInfo = void 0, this._cacheParams = void 0);
32
- }, this._handleMouseMove = params => {
32
+ }, this._getMouseMoveHandler = isClick => params => {
33
33
  if (this.tooltipHandler || this._initHandler(), this._processor || this._initProcessor(),
34
34
  this._alwaysShow) return;
35
35
  if (this._isPointerOnTooltip(params)) return;
36
+ if (!isClick && this._clickLock) return;
36
37
  const mouseEventData = this._getMouseEventData(params), {tooltipInfo: {dimension: dimensionInfo}, ignore: {mark: ignoreMark, dimension: ignoreDimension}} = mouseEventData;
37
38
  let markTooltipSuccess = !1, dimensionTooltipSuccess = !1;
38
- markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params),
39
- markTooltipSuccess || (dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params)),
39
+ markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params, isClick),
40
+ markTooltipSuccess || (dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params, isClick)),
40
41
  markTooltipSuccess || dimensionTooltipSuccess || (0, common_1.isEmptyPos)(params) || (ignoreMark && (0,
41
- util_1.isMarkInfo)(this._cacheInfo) ? markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params, !0) : ignoreDimension && (0,
42
- util_1.isDimensionInfo)(this._cacheInfo) ? dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params, !0) : (0,
43
- vutils_1.isValid)(dimensionInfo) && (dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params))),
44
- markTooltipSuccess || dimensionTooltipSuccess && !(0, vutils_1.isNil)(dimensionInfo) || this._handleChartMouseOut(params);
45
- }, this._showTooltipByMouseEvent = (activeType, mouseEventData, params, useCache) => {
42
+ util_1.isMarkInfo)(this._cacheInfo) ? markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params, isClick, !0) : ignoreDimension && (0,
43
+ util_1.isDimensionInfo)(this._cacheInfo) ? dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params, isClick, !0) : (0,
44
+ vutils_1.isValid)(dimensionInfo) && (dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params, isClick))),
45
+ markTooltipSuccess || dimensionTooltipSuccess && !(0, vutils_1.isNil)(dimensionInfo) || (this._handleChartMouseOut(params),
46
+ isClick && this._clickLock && (this._clickLock = !1));
47
+ }, this._showTooltipByMouseEvent = (activeType, mouseEventData, params, isClick, useCache) => {
48
+ var _a;
46
49
  const processor = this._processor[activeType];
47
50
  if (!processor.shouldHandleTooltip(params, {
48
51
  tooltipInfo: mouseEventData.tooltipInfo[activeType],
@@ -54,9 +57,9 @@ class Tooltip extends base_component_1.BaseComponent {
54
57
  success = !processor.showTooltip(tooltipInfo, params, isSameAsCache), success && (this._cacheInfo = tooltipInfo,
55
58
  this._cacheParams = params);
56
59
  }
57
- success && (this._isTooltipShown = !0);
58
- const vchart = this._option.globalInstance;
59
- return success && vchart_1.VChart.globalConfig.uniqueTooltip && vchart_1.VChart.hideTooltip(vchart.id),
60
+ success && (this._isTooltipShown = !0, isClick && this._spec.lockAfterClick && !this._clickLock && (this._clickLock = !0));
61
+ const vchart = null === (_a = this._option) || void 0 === _a ? void 0 : _a.globalInstance;
62
+ return success && vchart_1.VChart.globalConfig.uniqueTooltip && vchart && vchart_1.VChart.hideTooltip(vchart.id),
60
63
  success;
61
64
  }, this._getMouseEventData = params => {
62
65
  const result = {
@@ -132,7 +135,7 @@ class Tooltip extends base_component_1.BaseComponent {
132
135
  var _a, _b, _c;
133
136
  const renderMode = null !== (_a = this._spec.renderMode) && void 0 !== _a ? _a : "html", userTooltipHandler = this._option.globalInstance.getTooltipHandlerByUser();
134
137
  if (userTooltipHandler) this.tooltipHandler = userTooltipHandler; else {
135
- const type = "canvas" === renderMode ? constants_1.TooltipHandlerType.canvas : constants_1.TooltipHandlerType.dom, handlerConstructor = factory_1.Factory.getComponentPluginInType(type);
138
+ const type = "canvas" === renderMode ? constant_2.TooltipHandlerType.canvas : constant_2.TooltipHandlerType.dom, handlerConstructor = factory_1.Factory.getComponentPluginInType(type);
136
139
  handlerConstructor || (0, util_2.error)("Can not find tooltip handler: " + type);
137
140
  const handler = new handlerConstructor;
138
141
  handler.name = `${this._spec.className}-${null !== (_b = this._option.globalInstance.id) && void 0 !== _b ? _b : 0}-${this.getSpecIndex()}`,
@@ -148,18 +151,18 @@ class Tooltip extends base_component_1.BaseComponent {
148
151
  _initEvent() {
149
152
  var _a;
150
153
  if (this._option.disableTriggerEvent) return;
151
- const trigger = null !== (_a = this._spec.trigger) && void 0 !== _a ? _a : "hover", mode = this._option.mode;
152
- "hover" === trigger ? (this._mountEvent("pointermove", {
154
+ const trigger = (0, vutils_1.array)(null !== (_a = this._spec.trigger) && void 0 !== _a ? _a : "hover"), mode = this._option.mode;
155
+ trigger.includes("hover") && (this._mountEvent("pointermove", {
153
156
  source: "chart"
154
- }, this._handleMouseMove), ((0, env_1.isMobileLikeMode)(mode) || (0, env_1.isMiniAppLikeMode)(mode)) && (this._mountEvent("pointerdown", {
157
+ }, this._getMouseMoveHandler(!1)), ((0, env_1.isMobileLikeMode)(mode) || (0, env_1.isMiniAppLikeMode)(mode)) && (this._mountEvent("pointerdown", {
155
158
  source: "chart"
156
- }, this._handleMouseMove), this._mountEvent("pointerup", {
159
+ }, this._getMouseMoveHandler(!1)), this._mountEvent("pointerup", {
157
160
  source: "window"
158
161
  }, this._getMouseOutHandler(!0))), this._mountEvent("pointerout", {
159
162
  source: "canvas"
160
- }, this._getMouseOutHandler(!1))) : "click" === trigger && (this._mountEvent("pointertap", {
163
+ }, this._getMouseOutHandler(!1))), trigger.includes("click") && (this._mountEvent("pointertap", {
161
164
  source: "chart"
162
- }, this._handleMouseMove), this._mountEvent("pointerup", {
165
+ }, this._getMouseMoveHandler(!0)), this._mountEvent("pointerup", {
163
166
  source: "window"
164
167
  }, this._getMouseOutHandler(!0)));
165
168
  }
@@ -167,31 +170,6 @@ class Tooltip extends base_component_1.BaseComponent {
167
170
  var _a, _b;
168
171
  super.reInit(spec), this.tooltipHandler ? null === (_b = (_a = this.tooltipHandler).reInit) || void 0 === _b || _b.call(_a) : this._initHandler();
169
172
  }
170
- setAttrFromSpec() {
171
- var _a;
172
- super.setAttrFromSpec();
173
- const userSpec = this._spec;
174
- this._spec = Object.assign(Object.assign({}, userSpec), {
175
- visible: !(0, vutils_1.isValid)(userSpec.visible) || userSpec.visible,
176
- activeType: (0, common_1.getTooltipActualActiveType)(userSpec),
177
- renderMode: "html",
178
- trigger: (0, vutils_1.isValid)(userSpec.trigger) ? userSpec.trigger : "hover",
179
- className: (0, vutils_1.isValid)(userSpec.className) ? userSpec.className : constants_1.TOOLTIP_EL_CLASS_NAME,
180
- enterable: !!(0, vutils_1.isValid)(userSpec.enterable) && userSpec.enterable,
181
- transitionDuration: (0, vutils_1.isValid)(userSpec.transitionDuration) ? userSpec.transitionDuration : 150
182
- }), this._spec.triggerOff = (0, vutils_1.isValid)(userSpec.triggerOff) ? userSpec.triggerOff : this._spec.trigger,
183
- (0, vutils_1.isValid)(userSpec.renderMode) ? this._spec.renderMode = userSpec.renderMode : !(0,
184
- env_1.isMiniAppLikeMode)(this._option.mode) && (0, env_1.isTrueBrowser)(this._option.mode) || (this._spec.renderMode = "canvas"),
185
- (0, vutils_1.isValid)(userSpec.mark) && (this._spec.mark = Object.assign(Object.assign({}, (0,
186
- vutils_1.cloneDeep)(userSpec.mark)), {
187
- activeType: "mark"
188
- })), (0, vutils_1.isValid)(userSpec.dimension) && (this._spec.dimension = Object.assign(Object.assign({}, (0,
189
- vutils_1.cloneDeep)(userSpec.dimension)), {
190
- activeType: "dimension"
191
- })), (0, vutils_1.isValid)(userSpec.parentElement) ? (0, vutils_1.isString)(userSpec.parentElement) ? this._spec.parentElement = null === (_a = null === globalThis || void 0 === globalThis ? void 0 : globalThis.document) || void 0 === _a ? void 0 : _a.getElementById(userSpec.parentElement) : this._spec.parentElement = userSpec.parentElement : (0,
192
- env_1.isTrueBrowser)(this._option.mode) && (this._spec.parentElement = null === env_1.domDocument || void 0 === env_1.domDocument ? void 0 : env_1.domDocument.body),
193
- (0, vutils_1.isValid)(userSpec.confine) ? this._spec.confine = userSpec.confine : this._spec.confine = "canvas" === this._spec.renderMode;
194
- }
195
173
  showTooltip(datum, options) {
196
174
  var _a;
197
175
  if (this.tooltipHandler || this._initHandler(), this._processor || this._initProcessor(),
@@ -226,7 +204,9 @@ class Tooltip extends base_component_1.BaseComponent {
226
204
  return !(0, vutils_1.isNil)(prevParams) && !(0, vutils_1.isNil)(nextParams) && (prevParams.mark === nextParams.mark && prevParams.model === nextParams.model && prevParams.datum === nextParams.datum);
227
205
  }
228
206
  _isPointerInChart(point) {
229
- const globalInstance = this._option.globalInstance;
207
+ var _a;
208
+ const globalInstance = null === (_a = this._option) || void 0 === _a ? void 0 : _a.globalInstance;
209
+ if (!globalInstance) return !1;
230
210
  if (!globalInstance.getChart()) return !1;
231
211
  const {x: x, y: y} = point, canvas = globalInstance.getCanvas(), {x: chartX, y: chartY, width: chartWidth, height: chartHeight} = canvas.getBoundingClientRect();
232
212
  return x >= chartX && x <= chartX + chartWidth && y >= chartY && y <= chartY + chartHeight;