@visactor/vchart 1.10.0-alpha.0 → 1.10.0-alpha.4

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 (588) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +4416 -2968
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/bar/bar-transformer.d.ts +1 -0
  6. package/cjs/chart/bar/bar-transformer.js +19 -2
  7. package/cjs/chart/bar/bar-transformer.js.map +1 -1
  8. package/cjs/chart/bar/interface.d.ts +3 -0
  9. package/cjs/chart/bar/interface.js.map +1 -1
  10. package/cjs/chart/base/base-chart-transformer.js +3 -3
  11. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  12. package/cjs/chart/base/base-chart.d.ts +1 -1
  13. package/cjs/chart/base/base-chart.js +4 -2
  14. package/cjs/chart/base/base-chart.js.map +1 -1
  15. package/cjs/chart/base/util.d.ts +1 -1
  16. package/cjs/chart/base/util.js +20 -10
  17. package/cjs/chart/base/util.js.map +1 -1
  18. package/cjs/chart/cartesian/cartesian-transformer.d.ts +1 -0
  19. package/cjs/chart/cartesian/cartesian-transformer.js +10 -7
  20. package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -1
  21. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  22. package/cjs/chart/stack.js +2 -1
  23. package/cjs/compile/compiler.js +5 -1
  24. package/cjs/compile/compiler.js.map +1 -1
  25. package/cjs/compile/grammar-item.js +1 -2
  26. package/cjs/compile/mark/compilable-mark.d.ts +4 -1
  27. package/cjs/compile/mark/compilable-mark.js +9 -1
  28. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  29. package/cjs/compile/mark/interface.d.ts +4 -1
  30. package/cjs/compile/mark/interface.js.map +1 -1
  31. package/cjs/component/axis/base-axis.d.ts +1 -53
  32. package/cjs/component/axis/base-axis.js +76 -83
  33. package/cjs/component/axis/base-axis.js.map +1 -1
  34. package/cjs/component/axis/cartesian/axis.js +4 -4
  35. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  36. package/cjs/component/axis/cartesian/band-axis.d.ts +5 -0
  37. package/cjs/component/axis/cartesian/band-axis.js +27 -5
  38. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  39. package/cjs/component/axis/cartesian/interface/spec.d.ts +5 -0
  40. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  41. package/cjs/component/axis/cartesian/log-axis.js +2 -1
  42. package/cjs/component/axis/cartesian/log-axis.js.map +1 -1
  43. package/cjs/component/axis/mixin/linear-axis-mixin.js +1 -1
  44. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  45. package/cjs/component/axis/polar/axis.js +9 -17
  46. package/cjs/component/axis/polar/axis.js.map +1 -1
  47. package/cjs/component/axis/polar/util/common.d.ts +5 -1
  48. package/cjs/component/axis/polar/util/common.js +8 -4
  49. package/cjs/component/axis/polar/util/common.js.map +1 -1
  50. package/cjs/component/base/base-component.d.ts +1 -1
  51. package/cjs/component/base/base-component.js +2 -2
  52. package/cjs/component/base/base-component.js.map +1 -1
  53. package/cjs/component/custom-mark/custom-mark.d.ts +1 -2
  54. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  55. package/cjs/component/data-zoom/data-filter-base-component.d.ts +2 -2
  56. package/cjs/component/data-zoom/data-filter-base-component.js +5 -4
  57. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  58. package/cjs/component/label/interface.d.ts +2 -1
  59. package/cjs/component/label/interface.js.map +1 -1
  60. package/cjs/component/label/label.js +1 -1
  61. package/cjs/component/label/label.js.map +1 -1
  62. package/cjs/component/label/total-label.js +14 -1
  63. package/cjs/component/label/total-label.js.map +1 -1
  64. package/cjs/component/label/util.js +3 -3
  65. package/cjs/component/label/util.js.map +1 -1
  66. package/cjs/component/legend/discrete/interface.d.ts +1 -0
  67. package/cjs/component/legend/discrete/interface.js.map +1 -1
  68. package/cjs/component/legend/util.d.ts +1 -1
  69. package/cjs/component/marker/mark-area/mark-area.js +1 -1
  70. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  71. package/cjs/component/marker/mark-line/mark-line.js +1 -1
  72. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  73. package/cjs/component/marker/mark-point/mark-point.js +5 -2
  74. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  75. package/cjs/component/player/utils/transform.js +2 -2
  76. package/cjs/component/player/utils/transform.js.map +1 -1
  77. package/cjs/component/poptip/interface.d.ts +5 -2
  78. package/cjs/component/poptip/interface.js.map +1 -1
  79. package/cjs/component/title/interface/theme.d.ts +2 -1
  80. package/cjs/component/title/interface/theme.js.map +1 -1
  81. package/cjs/component/tooltip/interface/common.d.ts +1 -1
  82. package/cjs/component/tooltip/interface/common.js.map +1 -1
  83. package/cjs/component/tooltip/interface/theme.d.ts +3 -2
  84. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  85. package/cjs/component/tooltip/processor/base.js +2 -2
  86. package/cjs/component/tooltip/processor/base.js.map +1 -1
  87. package/cjs/component/tooltip/tooltip.js +6 -6
  88. package/cjs/component/tooltip/tooltip.js.map +1 -1
  89. package/cjs/constant/index.d.ts +1 -0
  90. package/cjs/constant/index.js +5 -4
  91. package/cjs/constant/index.js.map +1 -1
  92. package/cjs/core/index.d.ts +1 -1
  93. package/cjs/core/index.js +1 -1
  94. package/cjs/core/index.js.map +1 -1
  95. package/cjs/core/vchart.js +4 -3
  96. package/cjs/core/vchart.js.map +1 -1
  97. package/cjs/data/transforms/dimension-statistics.d.ts +2 -0
  98. package/cjs/data/transforms/dimension-statistics.js +1 -1
  99. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  100. package/cjs/data/transforms/funnel.d.ts +1 -1
  101. package/cjs/data/transforms/pie.js +4 -4
  102. package/cjs/data/transforms/pie.js.map +1 -1
  103. package/cjs/data/transforms/waterfall.js +104 -29
  104. package/cjs/data/transforms/waterfall.js.map +1 -1
  105. package/cjs/event/event-dispatcher.js +1 -1
  106. package/cjs/event/event-dispatcher.js.map +1 -1
  107. package/cjs/event/events/dimension/util/common.js +45 -48
  108. package/cjs/event/events/dimension/util/common.js.map +1 -1
  109. package/cjs/event/interface.d.ts +2 -1
  110. package/cjs/event/interface.js.map +1 -1
  111. package/cjs/interaction/dimension-trigger.js +3 -1
  112. package/cjs/interaction/dimension-trigger.js.map +1 -1
  113. package/cjs/interaction/interaction.d.ts +5 -0
  114. package/cjs/interaction/interaction.js +17 -1
  115. package/cjs/interaction/interaction.js.map +1 -1
  116. package/cjs/interaction/interface.d.ts +4 -1
  117. package/cjs/interaction/interface.js.map +1 -1
  118. package/cjs/plugin/components/tooltip-handler/base.js +15 -15
  119. package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
  120. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -4
  121. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  122. package/cjs/plugin/components/tooltip-handler/utils/attribute.js +2 -2
  123. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  124. package/cjs/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
  125. package/cjs/plugin/components/tooltip-handler/utils/get-spec.js +2 -2
  126. package/cjs/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
  127. package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +1 -1
  128. package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  129. package/cjs/series/area/interface.d.ts +2 -1
  130. package/cjs/series/area/interface.js.map +1 -1
  131. package/cjs/series/bar/bar-3d.js.map +1 -1
  132. package/cjs/series/bar/bar.d.ts +11 -1
  133. package/cjs/series/bar/bar.js +102 -72
  134. package/cjs/series/bar/bar.js.map +1 -1
  135. package/cjs/series/bar/interface.d.ts +4 -3
  136. package/cjs/series/bar/interface.js.map +1 -1
  137. package/cjs/series/base/base-series-transformer.d.ts +4 -0
  138. package/cjs/series/base/base-series-transformer.js +33 -10
  139. package/cjs/series/base/base-series-transformer.js.map +1 -1
  140. package/cjs/series/base/base-series.d.ts +4 -1
  141. package/cjs/series/base/base-series.js +10 -2
  142. package/cjs/series/base/base-series.js.map +1 -1
  143. package/cjs/series/cartesian/cartesian.d.ts +1 -2
  144. package/cjs/series/cartesian/cartesian.js +28 -24
  145. package/cjs/series/cartesian/cartesian.js.map +1 -1
  146. package/cjs/series/correlation/interface.d.ts +3 -3
  147. package/cjs/series/correlation/interface.js.map +1 -1
  148. package/cjs/series/funnel/interface.d.ts +2 -3
  149. package/cjs/series/funnel/interface.js.map +1 -1
  150. package/cjs/series/interface/common.d.ts +2 -0
  151. package/cjs/series/interface/common.js.map +1 -1
  152. package/cjs/series/line/interface.d.ts +2 -1
  153. package/cjs/series/line/interface.js.map +1 -1
  154. package/cjs/series/mixin/line-mixin.js +1 -1
  155. package/cjs/series/mixin/line-mixin.js.map +1 -1
  156. package/cjs/series/pie/3d/pie-3d.d.ts +1 -1
  157. package/cjs/series/pie/3d/pie-3d.js +2 -4
  158. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  159. package/cjs/series/pie/interface.d.ts +2 -2
  160. package/cjs/series/pie/interface.js.map +1 -1
  161. package/cjs/series/pie/pie-transformer.js +5 -4
  162. package/cjs/series/pie/pie-transformer.js.map +1 -1
  163. package/cjs/series/pie/pie.js +1 -4
  164. package/cjs/series/pie/pie.js.map +1 -1
  165. package/cjs/series/radar/interface.d.ts +2 -1
  166. package/cjs/series/radar/interface.js.map +1 -1
  167. package/cjs/series/rose/interface.d.ts +2 -1
  168. package/cjs/series/rose/interface.js.map +1 -1
  169. package/cjs/series/rose/rose.js +1 -5
  170. package/cjs/series/rose/rose.js.map +1 -1
  171. package/cjs/series/sankey/interface.d.ts +2 -2
  172. package/cjs/series/sankey/interface.js.map +1 -1
  173. package/cjs/series/scatter/interface.d.ts +2 -1
  174. package/cjs/series/scatter/interface.js.map +1 -1
  175. package/cjs/series/treemap/treemap.d.ts +2 -0
  176. package/cjs/series/treemap/treemap.js +35 -45
  177. package/cjs/series/treemap/treemap.js.map +1 -1
  178. package/cjs/series/util/utils.js +1 -1
  179. package/cjs/series/util/utils.js.map +1 -1
  180. package/cjs/series/word-cloud/base.js.map +1 -1
  181. package/cjs/series/word-cloud/config.js +1 -1
  182. package/cjs/series/word-cloud/config.js.map +1 -1
  183. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +9 -7
  184. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  185. package/cjs/theme/builtin/common/component/axis/common-axis.js +15 -10
  186. package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  187. package/cjs/theme/builtin/common/component/crosshair.js +121 -6
  188. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  189. package/cjs/theme/builtin/common/component/data-zoom.js +17 -5
  190. package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
  191. package/cjs/theme/builtin/common/component/indicator.js +9 -7
  192. package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
  193. package/cjs/theme/builtin/common/component/legend/continuous.js +33 -13
  194. package/cjs/theme/builtin/common/component/legend/continuous.js.map +1 -1
  195. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +17 -9
  196. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  197. package/cjs/theme/builtin/common/component/map-label.js +9 -7
  198. package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
  199. package/cjs/theme/builtin/common/component/mark-area.js +5 -6
  200. package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
  201. package/cjs/theme/builtin/common/component/mark-line.js +5 -6
  202. package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
  203. package/cjs/theme/builtin/common/component/poptip.js +9 -7
  204. package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
  205. package/cjs/theme/builtin/common/component/title.js +17 -9
  206. package/cjs/theme/builtin/common/component/title.js.map +1 -1
  207. package/cjs/theme/builtin/common/component/tooltip.js +25 -11
  208. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  209. package/cjs/theme/builtin/common/component/total-label.js +5 -6
  210. package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
  211. package/cjs/theme/builtin/common/mark.js +10 -8
  212. package/cjs/theme/builtin/common/mark.js.map +1 -1
  213. package/cjs/theme/builtin/common/series/circle-packing.js +9 -7
  214. package/cjs/theme/builtin/common/series/circle-packing.js.map +1 -1
  215. package/cjs/theme/builtin/common/series/dot.js +17 -9
  216. package/cjs/theme/builtin/common/series/dot.js.map +1 -1
  217. package/cjs/theme/builtin/common/series/funnel.js +9 -7
  218. package/cjs/theme/builtin/common/series/funnel.js.map +1 -1
  219. package/cjs/theme/builtin/common/series/funnel3d.js +9 -7
  220. package/cjs/theme/builtin/common/series/funnel3d.js.map +1 -1
  221. package/cjs/theme/builtin/common/series/map.js +9 -7
  222. package/cjs/theme/builtin/common/series/map.js.map +1 -1
  223. package/cjs/theme/builtin/common/series/sunburst.js +9 -3
  224. package/cjs/theme/builtin/common/series/sunburst.js.map +1 -1
  225. package/cjs/theme/builtin/common/series/treemap.js +18 -10
  226. package/cjs/theme/builtin/common/series/treemap.js.map +1 -1
  227. package/cjs/theme/builtin/common/series/waterfall.js +5 -6
  228. package/cjs/theme/builtin/common/series/waterfall.js.map +1 -1
  229. package/cjs/theme/builtin/index.js +3 -3
  230. package/cjs/theme/builtin/index.js.map +1 -1
  231. package/cjs/theme/builtin/light/index.js +6 -2
  232. package/cjs/theme/builtin/light/index.js.map +1 -1
  233. package/cjs/theme/interface.d.ts +3 -19
  234. package/cjs/theme/interface.js.map +1 -1
  235. package/cjs/theme/theme-manager.d.ts +1 -1
  236. package/cjs/theme/theme-manager.js +2 -2
  237. package/cjs/theme/theme-manager.js.map +1 -1
  238. package/cjs/theme/token/builtin/default.d.ts +2 -0
  239. package/cjs/theme/{builtin/common/constants.js → token/builtin/default.js} +3 -5
  240. package/cjs/theme/token/builtin/default.js.map +1 -0
  241. package/cjs/theme/token/builtin/index.d.ts +2 -0
  242. package/cjs/theme/token/builtin/index.js +21 -0
  243. package/cjs/theme/token/builtin/index.js.map +1 -0
  244. package/cjs/theme/token/builtin/interface.d.ts +17 -0
  245. package/cjs/theme/token/builtin/interface.js +6 -0
  246. package/cjs/theme/token/builtin/interface.js.map +1 -0
  247. package/cjs/theme/token/index.d.ts +3 -0
  248. package/cjs/theme/token/index.js +22 -0
  249. package/cjs/theme/token/index.js.map +1 -0
  250. package/cjs/theme/token/interface.d.ts +6 -0
  251. package/cjs/theme/token/interface.js +6 -0
  252. package/cjs/theme/token/interface.js.map +1 -0
  253. package/cjs/theme/token/util.d.ts +3 -0
  254. package/cjs/theme/token/util.js +15 -0
  255. package/cjs/theme/token/util.js.map +1 -0
  256. package/cjs/typings/spec/common.d.ts +24 -24
  257. package/cjs/typings/spec/common.js.map +1 -1
  258. package/cjs/typings/tooltip/position.d.ts +2 -19
  259. package/cjs/typings/tooltip/position.js +1 -12
  260. package/cjs/typings/tooltip/position.js.map +1 -1
  261. package/cjs/typings/visual.d.ts +3 -2
  262. package/cjs/typings/visual.js.map +1 -1
  263. package/cjs/util/data.d.ts +2 -1
  264. package/cjs/util/data.js +12 -7
  265. package/cjs/util/data.js.map +1 -1
  266. package/cjs/util/math.d.ts +1 -0
  267. package/cjs/util/math.js +18 -2
  268. package/cjs/util/math.js.map +1 -1
  269. package/cjs/util/spec/common.d.ts +0 -2
  270. package/cjs/util/spec/common.js +3 -8
  271. package/cjs/util/spec/common.js.map +1 -1
  272. package/cjs/util/spec/index.d.ts +2 -2
  273. package/cjs/util/spec/index.js +1 -1
  274. package/cjs/util/spec/index.js.map +1 -1
  275. package/cjs/util/text.js +3 -3
  276. package/cjs/util/text.js.map +1 -1
  277. package/cjs/util/theme/common.d.ts +2 -0
  278. package/cjs/util/theme/common.js +15 -0
  279. package/cjs/util/theme/common.js.map +1 -0
  280. package/cjs/util/theme/index.d.ts +3 -0
  281. package/cjs/util/theme/index.js +22 -0
  282. package/cjs/util/theme/index.js.map +1 -0
  283. package/cjs/util/{spec → theme}/merge-theme.js +3 -1
  284. package/cjs/util/theme/merge-theme.js.map +1 -0
  285. package/cjs/util/{spec → theme}/preprocess.d.ts +2 -1
  286. package/cjs/util/{spec → theme}/preprocess.js +5 -3
  287. package/cjs/util/theme/preprocess.js.map +1 -0
  288. package/esm/chart/bar/bar-transformer.d.ts +1 -0
  289. package/esm/chart/bar/bar-transformer.js +19 -1
  290. package/esm/chart/bar/bar-transformer.js.map +1 -1
  291. package/esm/chart/bar/interface.d.ts +3 -0
  292. package/esm/chart/bar/interface.js.map +1 -1
  293. package/esm/chart/base/base-chart-transformer.js +3 -3
  294. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  295. package/esm/chart/base/base-chart.d.ts +1 -1
  296. package/esm/chart/base/base-chart.js +4 -2
  297. package/esm/chart/base/base-chart.js.map +1 -1
  298. package/esm/chart/base/util.d.ts +1 -1
  299. package/esm/chart/base/util.js +21 -9
  300. package/esm/chart/base/util.js.map +1 -1
  301. package/esm/chart/cartesian/cartesian-transformer.d.ts +1 -0
  302. package/esm/chart/cartesian/cartesian-transformer.js +10 -7
  303. package/esm/chart/cartesian/cartesian-transformer.js.map +1 -1
  304. package/esm/chart/polar/polar-transformer.js.map +1 -1
  305. package/esm/chart/stack.js +2 -1
  306. package/esm/compile/compiler.js +5 -1
  307. package/esm/compile/compiler.js.map +1 -1
  308. package/esm/compile/grammar-item.js +1 -2
  309. package/esm/compile/mark/compilable-mark.d.ts +4 -1
  310. package/esm/compile/mark/compilable-mark.js +9 -1
  311. package/esm/compile/mark/compilable-mark.js.map +1 -1
  312. package/esm/compile/mark/interface.d.ts +4 -1
  313. package/esm/compile/mark/interface.js.map +1 -1
  314. package/esm/component/axis/base-axis.d.ts +1 -53
  315. package/esm/component/axis/base-axis.js +74 -82
  316. package/esm/component/axis/base-axis.js.map +1 -1
  317. package/esm/component/axis/cartesian/axis.js +1 -1
  318. package/esm/component/axis/cartesian/axis.js.map +1 -1
  319. package/esm/component/axis/cartesian/band-axis.d.ts +5 -0
  320. package/esm/component/axis/cartesian/band-axis.js +27 -6
  321. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  322. package/esm/component/axis/cartesian/interface/spec.d.ts +5 -0
  323. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  324. package/esm/component/axis/cartesian/log-axis.js +2 -1
  325. package/esm/component/axis/cartesian/log-axis.js.map +1 -1
  326. package/esm/component/axis/mixin/linear-axis-mixin.js +1 -1
  327. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  328. package/esm/component/axis/polar/axis.js +9 -18
  329. package/esm/component/axis/polar/axis.js.map +1 -1
  330. package/esm/component/axis/polar/util/common.d.ts +5 -1
  331. package/esm/component/axis/polar/util/common.js +12 -4
  332. package/esm/component/axis/polar/util/common.js.map +1 -1
  333. package/esm/component/base/base-component.d.ts +1 -1
  334. package/esm/component/base/base-component.js +3 -1
  335. package/esm/component/base/base-component.js.map +1 -1
  336. package/esm/component/custom-mark/custom-mark.d.ts +1 -2
  337. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  338. package/esm/component/data-zoom/data-filter-base-component.d.ts +2 -2
  339. package/esm/component/data-zoom/data-filter-base-component.js +6 -3
  340. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  341. package/esm/component/label/interface.d.ts +2 -1
  342. package/esm/component/label/interface.js.map +1 -1
  343. package/esm/component/label/label.js +1 -1
  344. package/esm/component/label/label.js.map +1 -1
  345. package/esm/component/label/total-label.js +14 -1
  346. package/esm/component/label/total-label.js.map +1 -1
  347. package/esm/component/label/util.js +1 -6
  348. package/esm/component/label/util.js.map +1 -1
  349. package/esm/component/legend/discrete/interface.d.ts +1 -0
  350. package/esm/component/legend/discrete/interface.js.map +1 -1
  351. package/esm/component/legend/util.d.ts +1 -1
  352. package/esm/component/marker/mark-area/mark-area.js +1 -1
  353. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  354. package/esm/component/marker/mark-line/mark-line.js +1 -1
  355. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  356. package/esm/component/marker/mark-point/mark-point.js +5 -2
  357. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  358. package/esm/component/player/utils/transform.js +2 -2
  359. package/esm/component/player/utils/transform.js.map +1 -1
  360. package/esm/component/poptip/interface.d.ts +5 -2
  361. package/esm/component/poptip/interface.js.map +1 -1
  362. package/esm/component/title/interface/theme.d.ts +2 -1
  363. package/esm/component/title/interface/theme.js.map +1 -1
  364. package/esm/component/tooltip/interface/common.d.ts +1 -1
  365. package/esm/component/tooltip/interface/common.js.map +1 -1
  366. package/esm/component/tooltip/interface/theme.d.ts +3 -2
  367. package/esm/component/tooltip/interface/theme.js.map +1 -1
  368. package/esm/component/tooltip/processor/base.js +1 -3
  369. package/esm/component/tooltip/processor/base.js.map +1 -1
  370. package/esm/component/tooltip/tooltip.js +2 -4
  371. package/esm/component/tooltip/tooltip.js.map +1 -1
  372. package/esm/constant/index.d.ts +1 -0
  373. package/esm/constant/index.js +2 -0
  374. package/esm/constant/index.js.map +1 -1
  375. package/esm/core/index.d.ts +1 -1
  376. package/esm/core/index.js +1 -1
  377. package/esm/core/index.js.map +1 -1
  378. package/esm/core/vchart.js +4 -3
  379. package/esm/core/vchart.js.map +1 -1
  380. package/esm/data/transforms/dimension-statistics.d.ts +2 -0
  381. package/esm/data/transforms/dimension-statistics.js +1 -1
  382. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  383. package/esm/data/transforms/funnel.d.ts +1 -1
  384. package/esm/data/transforms/pie.js +5 -5
  385. package/esm/data/transforms/pie.js.map +1 -1
  386. package/esm/data/transforms/waterfall.js +104 -28
  387. package/esm/data/transforms/waterfall.js.map +1 -1
  388. package/esm/event/event-dispatcher.js +2 -2
  389. package/esm/event/event-dispatcher.js.map +1 -1
  390. package/esm/event/events/dimension/util/common.js +44 -47
  391. package/esm/event/events/dimension/util/common.js.map +1 -1
  392. package/esm/event/interface.d.ts +2 -1
  393. package/esm/event/interface.js.map +1 -1
  394. package/esm/interaction/dimension-trigger.js +3 -1
  395. package/esm/interaction/dimension-trigger.js.map +1 -1
  396. package/esm/interaction/interaction.d.ts +5 -0
  397. package/esm/interaction/interaction.js +17 -1
  398. package/esm/interaction/interaction.js.map +1 -1
  399. package/esm/interaction/interface.d.ts +4 -1
  400. package/esm/interaction/interface.js.map +1 -1
  401. package/esm/plugin/components/tooltip-handler/base.js +14 -16
  402. package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
  403. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -4
  404. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  405. package/esm/plugin/components/tooltip-handler/utils/attribute.js +3 -3
  406. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  407. package/esm/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
  408. package/esm/plugin/components/tooltip-handler/utils/get-spec.js +2 -2
  409. package/esm/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
  410. package/esm/plugin/components/tooltip-handler/utils/position.d.ts +1 -1
  411. package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  412. package/esm/series/area/interface.d.ts +2 -1
  413. package/esm/series/area/interface.js.map +1 -1
  414. package/esm/series/bar/bar-3d.js.map +1 -1
  415. package/esm/series/bar/bar.d.ts +11 -1
  416. package/esm/series/bar/bar.js +99 -66
  417. package/esm/series/bar/bar.js.map +1 -1
  418. package/esm/series/bar/interface.d.ts +4 -3
  419. package/esm/series/bar/interface.js.map +1 -1
  420. package/esm/series/base/base-series-transformer.d.ts +4 -0
  421. package/esm/series/base/base-series-transformer.js +35 -10
  422. package/esm/series/base/base-series-transformer.js.map +1 -1
  423. package/esm/series/base/base-series.d.ts +4 -1
  424. package/esm/series/base/base-series.js +10 -2
  425. package/esm/series/base/base-series.js.map +1 -1
  426. package/esm/series/cartesian/cartesian.d.ts +1 -2
  427. package/esm/series/cartesian/cartesian.js +28 -25
  428. package/esm/series/cartesian/cartesian.js.map +1 -1
  429. package/esm/series/correlation/interface.d.ts +3 -3
  430. package/esm/series/correlation/interface.js.map +1 -1
  431. package/esm/series/funnel/interface.d.ts +2 -3
  432. package/esm/series/funnel/interface.js.map +1 -1
  433. package/esm/series/interface/common.d.ts +2 -0
  434. package/esm/series/interface/common.js.map +1 -1
  435. package/esm/series/line/interface.d.ts +2 -1
  436. package/esm/series/line/interface.js.map +1 -1
  437. package/esm/series/mixin/line-mixin.js +1 -1
  438. package/esm/series/mixin/line-mixin.js.map +1 -1
  439. package/esm/series/pie/3d/pie-3d.d.ts +1 -1
  440. package/esm/series/pie/3d/pie-3d.js +2 -3
  441. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  442. package/esm/series/pie/interface.d.ts +2 -2
  443. package/esm/series/pie/interface.js.map +1 -1
  444. package/esm/series/pie/pie-transformer.js +5 -1
  445. package/esm/series/pie/pie-transformer.js.map +1 -1
  446. package/esm/series/pie/pie.js +1 -4
  447. package/esm/series/pie/pie.js.map +1 -1
  448. package/esm/series/radar/interface.d.ts +2 -1
  449. package/esm/series/radar/interface.js.map +1 -1
  450. package/esm/series/rose/interface.d.ts +2 -1
  451. package/esm/series/rose/interface.js.map +1 -1
  452. package/esm/series/rose/rose.js +1 -5
  453. package/esm/series/rose/rose.js.map +1 -1
  454. package/esm/series/sankey/interface.d.ts +2 -2
  455. package/esm/series/sankey/interface.js.map +1 -1
  456. package/esm/series/scatter/interface.d.ts +2 -1
  457. package/esm/series/scatter/interface.js.map +1 -1
  458. package/esm/series/treemap/treemap.d.ts +2 -0
  459. package/esm/series/treemap/treemap.js +35 -46
  460. package/esm/series/treemap/treemap.js.map +1 -1
  461. package/esm/series/util/utils.js +1 -1
  462. package/esm/series/util/utils.js.map +1 -1
  463. package/esm/series/word-cloud/base.js.map +1 -1
  464. package/esm/series/word-cloud/config.js +1 -1
  465. package/esm/series/word-cloud/config.js.map +1 -1
  466. package/esm/theme/builtin/common/component/axis/cartesian-axis.js +8 -4
  467. package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  468. package/esm/theme/builtin/common/component/axis/common-axis.js +14 -7
  469. package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  470. package/esm/theme/builtin/common/component/crosshair.js +120 -7
  471. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  472. package/esm/theme/builtin/common/component/data-zoom.js +16 -6
  473. package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
  474. package/esm/theme/builtin/common/component/indicator.js +8 -4
  475. package/esm/theme/builtin/common/component/indicator.js.map +1 -1
  476. package/esm/theme/builtin/common/component/legend/continuous.js +32 -10
  477. package/esm/theme/builtin/common/component/legend/continuous.js.map +1 -1
  478. package/esm/theme/builtin/common/component/legend/discrete-legend.js +16 -6
  479. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  480. package/esm/theme/builtin/common/component/map-label.js +8 -4
  481. package/esm/theme/builtin/common/component/map-label.js.map +1 -1
  482. package/esm/theme/builtin/common/component/mark-area.js +4 -3
  483. package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
  484. package/esm/theme/builtin/common/component/mark-line.js +4 -3
  485. package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
  486. package/esm/theme/builtin/common/component/poptip.js +8 -4
  487. package/esm/theme/builtin/common/component/poptip.js.map +1 -1
  488. package/esm/theme/builtin/common/component/title.js +16 -6
  489. package/esm/theme/builtin/common/component/title.js.map +1 -1
  490. package/esm/theme/builtin/common/component/tooltip.js +24 -8
  491. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  492. package/esm/theme/builtin/common/component/total-label.js +4 -3
  493. package/esm/theme/builtin/common/component/total-label.js.map +1 -1
  494. package/esm/theme/builtin/common/mark.js +9 -5
  495. package/esm/theme/builtin/common/mark.js.map +1 -1
  496. package/esm/theme/builtin/common/series/circle-packing.js +8 -4
  497. package/esm/theme/builtin/common/series/circle-packing.js.map +1 -1
  498. package/esm/theme/builtin/common/series/dot.js +16 -6
  499. package/esm/theme/builtin/common/series/dot.js.map +1 -1
  500. package/esm/theme/builtin/common/series/funnel.js +8 -4
  501. package/esm/theme/builtin/common/series/funnel.js.map +1 -1
  502. package/esm/theme/builtin/common/series/funnel3d.js +8 -4
  503. package/esm/theme/builtin/common/series/funnel3d.js.map +1 -1
  504. package/esm/theme/builtin/common/series/map.js +8 -4
  505. package/esm/theme/builtin/common/series/map.js.map +1 -1
  506. package/esm/theme/builtin/common/series/sunburst.js +8 -4
  507. package/esm/theme/builtin/common/series/sunburst.js.map +1 -1
  508. package/esm/theme/builtin/common/series/treemap.js +17 -7
  509. package/esm/theme/builtin/common/series/treemap.js.map +1 -1
  510. package/esm/theme/builtin/common/series/waterfall.js +4 -3
  511. package/esm/theme/builtin/common/series/waterfall.js.map +1 -1
  512. package/esm/theme/builtin/index.js +4 -4
  513. package/esm/theme/builtin/index.js.map +1 -1
  514. package/esm/theme/builtin/light/index.js +7 -3
  515. package/esm/theme/builtin/light/index.js.map +1 -1
  516. package/esm/theme/interface.d.ts +3 -19
  517. package/esm/theme/interface.js.map +1 -1
  518. package/esm/theme/theme-manager.d.ts +1 -1
  519. package/esm/theme/theme-manager.js +2 -2
  520. package/esm/theme/theme-manager.js.map +1 -1
  521. package/esm/theme/token/builtin/default.d.ts +2 -0
  522. package/esm/theme/{builtin/common/constants.js → token/builtin/default.js} +3 -5
  523. package/esm/theme/token/builtin/default.js.map +1 -0
  524. package/esm/theme/token/builtin/index.d.ts +2 -0
  525. package/esm/theme/token/builtin/index.js +4 -0
  526. package/esm/theme/token/builtin/index.js.map +1 -0
  527. package/esm/theme/token/builtin/interface.d.ts +17 -0
  528. package/esm/theme/token/builtin/interface.js +2 -0
  529. package/esm/theme/token/builtin/interface.js.map +1 -0
  530. package/esm/theme/token/index.d.ts +3 -0
  531. package/esm/theme/token/index.js +6 -0
  532. package/esm/theme/token/index.js.map +1 -0
  533. package/esm/theme/token/interface.d.ts +6 -0
  534. package/esm/theme/token/interface.js +2 -0
  535. package/esm/theme/token/interface.js.map +1 -0
  536. package/esm/theme/token/util.d.ts +3 -0
  537. package/esm/theme/token/util.js +8 -0
  538. package/esm/theme/token/util.js.map +1 -0
  539. package/esm/typings/spec/common.d.ts +24 -24
  540. package/esm/typings/spec/common.js.map +1 -1
  541. package/esm/typings/tooltip/position.d.ts +2 -19
  542. package/esm/typings/tooltip/position.js +1 -15
  543. package/esm/typings/tooltip/position.js.map +1 -1
  544. package/esm/typings/visual.d.ts +3 -2
  545. package/esm/typings/visual.js.map +1 -1
  546. package/esm/util/data.d.ts +2 -1
  547. package/esm/util/data.js +12 -8
  548. package/esm/util/data.js.map +1 -1
  549. package/esm/util/math.d.ts +1 -0
  550. package/esm/util/math.js +16 -0
  551. package/esm/util/math.js.map +1 -1
  552. package/esm/util/spec/common.d.ts +0 -2
  553. package/esm/util/spec/common.js +0 -8
  554. package/esm/util/spec/common.js.map +1 -1
  555. package/esm/util/spec/index.d.ts +2 -2
  556. package/esm/util/spec/index.js +2 -2
  557. package/esm/util/spec/index.js.map +1 -1
  558. package/esm/util/text.js +4 -4
  559. package/esm/util/text.js.map +1 -1
  560. package/esm/util/theme/common.d.ts +2 -0
  561. package/esm/util/theme/common.js +8 -0
  562. package/esm/util/theme/common.js.map +1 -0
  563. package/esm/util/theme/index.d.ts +3 -0
  564. package/esm/util/theme/index.js +6 -0
  565. package/esm/util/theme/index.js.map +1 -0
  566. package/esm/util/{spec → theme}/merge-theme.js +3 -1
  567. package/esm/util/theme/merge-theme.js.map +1 -0
  568. package/esm/util/{spec → theme}/preprocess.d.ts +2 -1
  569. package/esm/util/theme/preprocess.js +18 -0
  570. package/esm/util/theme/preprocess.js.map +1 -0
  571. package/package.json +16 -16
  572. package/cjs/data/transforms/treemap.d.ts +0 -11
  573. package/cjs/data/transforms/treemap.js +0 -15
  574. package/cjs/data/transforms/treemap.js.map +0 -1
  575. package/cjs/theme/builtin/common/constants.d.ts +0 -2
  576. package/cjs/theme/builtin/common/constants.js.map +0 -1
  577. package/cjs/util/spec/merge-theme.js.map +0 -1
  578. package/cjs/util/spec/preprocess.js.map +0 -1
  579. package/esm/data/transforms/treemap.d.ts +0 -11
  580. package/esm/data/transforms/treemap.js +0 -9
  581. package/esm/data/transforms/treemap.js.map +0 -1
  582. package/esm/theme/builtin/common/constants.d.ts +0 -2
  583. package/esm/theme/builtin/common/constants.js.map +0 -1
  584. package/esm/util/spec/merge-theme.js.map +0 -1
  585. package/esm/util/spec/preprocess.js +0 -15
  586. package/esm/util/spec/preprocess.js.map +0 -1
  587. /package/cjs/util/{spec → theme}/merge-theme.d.ts +0 -0
  588. /package/esm/util/{spec → theme}/merge-theme.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/interface/common.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IAEvB,uDAAW,CAAA;IAEX,qDAAU,CAAA;AACZ,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB","file":"common.js","sourcesContent":["import type { DimensionEventParams } from '../../../event/events/dimension/interface';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { DimensionTooltipInfo, MarkTooltipInfo } from '../processor/interface';\nimport type { Datum, IShowTooltipOption } from '../../../typings';\nimport type { IComponent } from '../../interface';\n\nexport type TooltipHandlerParams = (BaseEventParams | DimensionEventParams) & {\n changePositionOnly?: boolean;\n};\n\nexport interface ITooltipActiveTypeAsKeys<T, K> {\n mark: T;\n dimension: K;\n}\n\nexport type TotalMouseEventData = {\n tooltipInfo: Partial<ITooltipActiveTypeAsKeys<MarkTooltipInfo, DimensionTooltipInfo>>;\n ignore: Partial<ITooltipActiveTypeAsKeys<boolean, boolean>>;\n};\n\nexport enum TooltipResult {\n /** tooltip 显示成功 */\n success = 0,\n /** tooltip 未成功显示 */\n failed = 1\n}\n\nexport interface ITooltip extends IComponent {\n getVisible: () => boolean;\n showTooltip: (datum: Datum, options: IShowTooltipOption) => void;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/interface/common.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAN,IAAkB,aAKjB;AALD,WAAkB,aAAa;IAE7B,uDAAW,CAAA;IAEX,qDAAU,CAAA;AACZ,CAAC,EALiB,aAAa,KAAb,aAAa,QAK9B","file":"common.js","sourcesContent":["import type { DimensionEventParams } from '../../../event/events/dimension/interface';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { DimensionTooltipInfo, MarkTooltipInfo } from '../processor/interface';\nimport type { Datum, IShowTooltipOption } from '../../../typings';\nimport type { IComponent } from '../../interface';\n\nexport type TooltipHandlerParams = (BaseEventParams | DimensionEventParams) & {\n changePositionOnly?: boolean;\n};\n\nexport interface ITooltipActiveTypeAsKeys<T, K> {\n mark: T;\n dimension: K;\n}\n\nexport type TotalMouseEventData = {\n tooltipInfo: Partial<ITooltipActiveTypeAsKeys<MarkTooltipInfo, DimensionTooltipInfo>>;\n ignore: Partial<ITooltipActiveTypeAsKeys<boolean, boolean>>;\n};\n\nexport const enum TooltipResult {\n /** tooltip 显示成功 */\n success = 0,\n /** tooltip 未成功显示 */\n failed = 1\n}\n\nexport interface ITooltip extends IComponent {\n getVisible: () => boolean;\n showTooltip: (datum: Datum, options: IShowTooltipOption) => void;\n}\n"]}
@@ -1,15 +1,16 @@
1
1
  import type { RichTextWordBreak } from '@visactor/vrender-core';
2
2
  import type { StringOrNumber, TextAlign, TextBaseLine } from '../../../typings';
3
3
  import type { Padding } from '@visactor/vrender-components/es/core/type';
4
+ import type { ITokenKey } from '../../../theme/token';
4
5
  export interface ITooltipTextTheme<ColorType = string> {
5
6
  fontFamily?: string;
6
- fontSize?: number;
7
+ fontSize?: number | ITokenKey;
7
8
  fill?: ColorType;
8
9
  fontColor?: ColorType;
9
10
  fontWeight?: StringOrNumber;
10
11
  textAlign?: TextAlign;
11
12
  textBaseline?: TextBaseLine;
12
- lineHeight?: number | string;
13
+ lineHeight?: number | string | ITokenKey;
13
14
  spacing?: number;
14
15
  multiLine?: boolean;
15
16
  maxWidth?: number;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { RichTextWordBreak } from '@visactor/vrender-core';\nimport type { StringOrNumber, TextAlign, TextBaseLine } from '../../../typings';\nimport type { Padding } from '@visactor/vrender-components/es/core/type';\n\nexport interface ITooltipTextTheme<ColorType = string> {\n /** 字体 */\n fontFamily?: string;\n /** 字体大小 */\n fontSize?: number;\n /** 字体颜色 */\n fill?: ColorType;\n /** @deprecated 字体颜色(兼容旧版本) */\n fontColor?: ColorType;\n /** 字重 */\n fontWeight?: StringOrNumber;\n /** 对齐方式 */\n textAlign?: TextAlign;\n /** 字体基线 */\n textBaseline?: TextBaseLine;\n /** 行高 */\n lineHeight?: number | string;\n /** 与相邻元素的水平间距 */\n spacing?: number;\n /** 是否支持换行 */\n multiLine?: boolean;\n /** 最大宽度 */\n maxWidth?: number;\n /** 换行模式,默认为'break-word' */\n wordBreak?: RichTextWordBreak;\n /**\n * 是否开启自动宽度。效果分为以下几种情况:\n * - tooltip 标题:`autoWidth` 默认为 `false`。如果配置为 `true`,则 tooltip 标题会保持和 tooltip 内容一致的宽度\n * - tooltip key 标签:`autoWidth` 不适用\n * - tooltip value 标签:`autoWidth` 默认为 `true`。如果配置为 `true`,则 tooltip value 标签会自动占满 tooltip 整体宽度的剩余部分\n * @since 1.4.2\n */\n autoWidth?: boolean;\n}\n\nexport interface ITooltipTheme<ColorType = string> {\n /** 容器样式配置 */\n panel?: {\n /** tooltip 容器内边距 */\n padding?: Padding;\n /** 背景色 */\n backgroundColor?: ColorType;\n /** tooltip边框 */\n border?: {\n color?: ColorType;\n width?: number;\n /** 圆角 */\n radius?: number;\n };\n /** tooltip阴影 */\n shadow?: {\n x: number;\n y: number;\n blur: number;\n spread: number;\n color: ColorType;\n };\n };\n shape?: {\n /** 标记大小 */\n size?: number;\n /** shape 与相邻元素的水平间距 */\n spacing?: number;\n };\n /** tooltip标题 */\n titleLabel?: ITooltipTextTheme<ColorType>;\n /** tooltip内容,key字段 */\n keyLabel?: Omit<ITooltipTextTheme<ColorType>, 'autoWidth'>;\n /** tooltip内容,value字段 */\n valueLabel?: ITooltipTextTheme<ColorType>;\n /** 内容项行间距 */\n spaceRow?: number;\n /**\n * 最大内容区高度,内容区若超过该高度将显示局部滚动条(适用于 dom tooltip)\n * @since 1.9.0\n */\n maxContentHeight?: number;\n /** 偏移量 */\n offset?: {\n x?: number;\n y?: number;\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { RichTextWordBreak } from '@visactor/vrender-core';\nimport type { StringOrNumber, TextAlign, TextBaseLine } from '../../../typings';\nimport type { Padding } from '@visactor/vrender-components/es/core/type';\nimport type { ITokenKey } from '../../../theme/token';\n\nexport interface ITooltipTextTheme<ColorType = string> {\n /** 字体 */\n fontFamily?: string;\n /** 字体大小 */\n fontSize?: number | ITokenKey;\n /** 字体颜色 */\n fill?: ColorType;\n /** @deprecated 字体颜色(兼容旧版本) */\n fontColor?: ColorType;\n /** 字重 */\n fontWeight?: StringOrNumber;\n /** 对齐方式 */\n textAlign?: TextAlign;\n /** 字体基线 */\n textBaseline?: TextBaseLine;\n /** 行高 */\n lineHeight?: number | string | ITokenKey;\n /** 与相邻元素的水平间距 */\n spacing?: number;\n /** 是否支持换行 */\n multiLine?: boolean;\n /** 最大宽度 */\n maxWidth?: number;\n /** 换行模式,默认为'break-word' */\n wordBreak?: RichTextWordBreak;\n /**\n * 是否开启自动宽度。效果分为以下几种情况:\n * - tooltip 标题:`autoWidth` 默认为 `false`。如果配置为 `true`,则 tooltip 标题会保持和 tooltip 内容一致的宽度\n * - tooltip key 标签:`autoWidth` 不适用\n * - tooltip value 标签:`autoWidth` 默认为 `true`。如果配置为 `true`,则 tooltip value 标签会自动占满 tooltip 整体宽度的剩余部分\n * @since 1.4.2\n */\n autoWidth?: boolean;\n}\n\nexport interface ITooltipTheme<ColorType = string> {\n /** 容器样式配置 */\n panel?: {\n /** tooltip 容器内边距 */\n padding?: Padding;\n /** 背景色 */\n backgroundColor?: ColorType;\n /** tooltip边框 */\n border?: {\n color?: ColorType;\n width?: number;\n /** 圆角 */\n radius?: number;\n };\n /** tooltip阴影 */\n shadow?: {\n x: number;\n y: number;\n blur: number;\n spread: number;\n color: ColorType;\n };\n };\n shape?: {\n /** 标记大小 */\n size?: number;\n /** shape 与相邻元素的水平间距 */\n spacing?: number;\n };\n /** tooltip标题 */\n titleLabel?: ITooltipTextTheme<ColorType>;\n /** tooltip内容,key字段 */\n keyLabel?: Omit<ITooltipTextTheme<ColorType>, 'autoWidth'>;\n /** tooltip内容,value字段 */\n valueLabel?: ITooltipTextTheme<ColorType>;\n /** 内容项行间距 */\n spaceRow?: number;\n /**\n * 最大内容区高度,内容区若超过该高度将显示局部滚动条(适用于 dom tooltip)\n * @since 1.9.0\n */\n maxContentHeight?: number;\n /** 偏移量 */\n offset?: {\n x?: number;\n y?: number;\n };\n}\n"]}
@@ -1,7 +1,5 @@
1
1
  import { isValid } from "@visactor/vutils";
2
2
 
3
- import { TooltipResult } from "../interface/common";
4
-
5
3
  import { ChartEvent } from "../../../constant";
6
4
 
7
5
  import { getPolarDimensionInfo } from "../../../event/events/dimension/util/polar";
@@ -18,7 +16,7 @@ export class BaseTooltipProcessor {
18
16
  tooltipData: data,
19
17
  activeType: this.activeType,
20
18
  tooltip: this.component
21
- })), (null === (_a = this.component.tooltipHandler) || void 0 === _a ? void 0 : _a.showTooltip) && isValid(data) ? null !== (_b = this.component.tooltipHandler.showTooltip(this.activeType, data, params)) && void 0 !== _b ? _b : TooltipResult.success : TooltipResult.failed;
19
+ })), (null === (_a = this.component.tooltipHandler) || void 0 === _a ? void 0 : _a.showTooltip) && isValid(data) ? null !== (_b = this.component.tooltipHandler.showTooltip(this.activeType, data, params)) && void 0 !== _b ? _b : 0 : 1;
22
20
  }, this.component = component;
23
21
  }
24
22
  _preprocessDimensionInfo(dimensionInfo) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/processor/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType, TooltipData } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipResult } from '../interface/common';\nimport type { Tooltip } from '../tooltip';\nimport type { MouseEventData, TooltipInfo } from './interface';\nimport { ChartEvent } from '../../../constant';\nimport type { TooltipEventParams } from '../interface/event';\nimport type { IDimensionData, IDimensionInfo } from '../../../event/events/dimension';\nimport { getPolarDimensionInfo } from '../../../event/events/dimension/util/polar';\nimport { getCartesianDimensionInfo } from '../../../event/events/dimension/util/cartesian';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { ICartesianSeries } from '../../../series/interface';\n\nexport abstract class BaseTooltipProcessor {\n readonly component: Tooltip;\n activeType: TooltipActiveType;\n\n constructor(component: Tooltip) {\n this.component = component;\n }\n\n /** 触发对应类型的 tooltip */\n abstract showTooltip(info: TooltipInfo, params: BaseEventParams, changePositionOnly: boolean): TooltipResult;\n\n /** 判断是否应该触发 tooltip */\n abstract shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean;\n\n /** 获取触发 tooltip 需要的信息 */\n abstract getMouseEventData(params: BaseEventParams): MouseEventData;\n\n protected _showTooltipByHandler = (data: TooltipData | undefined, params: TooltipHandlerParams): TooltipResult => {\n this.component.event.emit(ChartEvent.tooltipShow, {\n ...params,\n tooltipData: data,\n activeType: this.activeType,\n tooltip: this.component\n } as TooltipEventParams);\n if (this.component.tooltipHandler?.showTooltip && isValid(data)) {\n return this.component.tooltipHandler.showTooltip(this.activeType, data, params) ?? TooltipResult.success;\n }\n return TooltipResult.failed;\n };\n\n protected _preprocessDimensionInfo(dimensionInfo?: IDimensionInfo[]): IDimensionInfo[] | undefined {\n const newDimensionInfo: IDimensionInfo[] = [];\n dimensionInfo?.forEach(info => {\n const di: IDimensionInfo = {\n ...info,\n data: info.data.filter(\n ({ series }: any) => series.getSpec()?.tooltip?.visible !== false // 过滤掉不需要显示的维度数据\n )\n };\n if (di.data.length > 0) {\n newDimensionInfo.push(di);\n }\n });\n if (newDimensionInfo.length > 0) {\n return newDimensionInfo;\n }\n return undefined;\n }\n\n protected _getDimensionInfo(params: BaseEventParams): IDimensionInfo[] {\n let targetDimensionInfo: IDimensionInfo[] | undefined;\n // 处理dimension info\n const chart = this.component.getChart();\n\n // compute layer offset\n const layer = chart.getCompiler().getStage().getLayer(undefined);\n const point = { x: params.event.viewX, y: params.event.viewY };\n layer.globalTransMatrix.transformPoint({ x: params.event.viewX, y: params.event.viewY }, point);\n\n targetDimensionInfo = [\n ...(getCartesianDimensionInfo(chart, point, true) ?? []),\n ...(getPolarDimensionInfo(chart, point) ?? [])\n ];\n if (targetDimensionInfo.length === 0) {\n targetDimensionInfo = undefined;\n } else if (targetDimensionInfo.length > 1) {\n // 只保留一个轴的dimension info\n const dimensionAxisInfo = targetDimensionInfo.filter(info => {\n const axis = info.axis;\n if (axis.getSpec().hasDimensionTooltip) {\n return true;\n }\n\n // 优先显示离散轴 tooltip\n if (!isDiscrete(axis.getScale().type)) {\n return false;\n }\n // 下面的逻辑用来判断当前的离散轴是不是维度轴\n let firstSeries: ICartesianSeries | undefined;\n for (const region of axis?.getRegions() ?? []) {\n for (const series of region.getSeries()) {\n if (series.coordinate === 'cartesian') {\n firstSeries = series as ICartesianSeries;\n break;\n }\n }\n if (isValid(firstSeries)) {\n break;\n }\n }\n if (isValid(firstSeries) && firstSeries.getDimensionField()[0] === firstSeries.fieldY[0]) {\n // 维度轴为Y轴时,选择只显示Y轴tooltip\n return axis.getOrient() === 'left' || axis.getOrient() === 'right';\n }\n // 维度轴为X轴时,选择只显示X轴tooltip\n return axis.getOrient() === 'bottom' || axis.getOrient() === 'top';\n });\n targetDimensionInfo = dimensionAxisInfo.length ? dimensionAxisInfo : targetDimensionInfo.slice(0, 1);\n\n // datum 去重,保证每个系列的每个数据项只对应于一行 tooltip 内容项\n if (targetDimensionInfo.length > 1) {\n const dimensionDataKeySet = new Set<string>();\n targetDimensionInfo.forEach(info => {\n info.data = info.data.filter(({ key }: IDimensionData) => {\n if (dimensionDataKeySet.has(key)) {\n return false;\n }\n dimensionDataKeySet.add(key);\n return true;\n });\n });\n }\n }\n\n return targetDimensionInfo;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/processor/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType, TooltipData } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipResult } from '../interface/common';\nimport type { Tooltip } from '../tooltip';\nimport type { MouseEventData, TooltipInfo } from './interface';\nimport { ChartEvent } from '../../../constant';\nimport type { TooltipEventParams } from '../interface/event';\nimport type { IDimensionData, IDimensionInfo } from '../../../event/events/dimension';\nimport { getPolarDimensionInfo } from '../../../event/events/dimension/util/polar';\nimport { getCartesianDimensionInfo } from '../../../event/events/dimension/util/cartesian';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { ICartesianSeries } from '../../../series/interface';\n\nexport abstract class BaseTooltipProcessor {\n readonly component: Tooltip;\n activeType: TooltipActiveType;\n\n constructor(component: Tooltip) {\n this.component = component;\n }\n\n /** 触发对应类型的 tooltip */\n abstract showTooltip(info: TooltipInfo, params: BaseEventParams, changePositionOnly: boolean): TooltipResult;\n\n /** 判断是否应该触发 tooltip */\n abstract shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean;\n\n /** 获取触发 tooltip 需要的信息 */\n abstract getMouseEventData(params: BaseEventParams): MouseEventData;\n\n protected _showTooltipByHandler = (data: TooltipData | undefined, params: TooltipHandlerParams): TooltipResult => {\n this.component.event.emit(ChartEvent.tooltipShow, {\n ...params,\n tooltipData: data,\n activeType: this.activeType,\n tooltip: this.component\n } as TooltipEventParams);\n if (this.component.tooltipHandler?.showTooltip && isValid(data)) {\n return this.component.tooltipHandler.showTooltip(this.activeType, data, params) ?? TooltipResult.success;\n }\n return TooltipResult.failed;\n };\n\n protected _preprocessDimensionInfo(dimensionInfo?: IDimensionInfo[]): IDimensionInfo[] | undefined {\n const newDimensionInfo: IDimensionInfo[] = [];\n dimensionInfo?.forEach(info => {\n const di: IDimensionInfo = {\n ...info,\n data: info.data.filter(\n ({ series }: any) => series.getSpec()?.tooltip?.visible !== false // 过滤掉不需要显示的维度数据\n )\n };\n if (di.data.length > 0) {\n newDimensionInfo.push(di);\n }\n });\n if (newDimensionInfo.length > 0) {\n return newDimensionInfo;\n }\n return undefined;\n }\n\n protected _getDimensionInfo(params: BaseEventParams): IDimensionInfo[] {\n let targetDimensionInfo: IDimensionInfo[] | undefined;\n // 处理dimension info\n const chart = this.component.getChart();\n\n // compute layer offset\n const layer = chart.getCompiler().getStage().getLayer(undefined);\n const point = { x: params.event.viewX, y: params.event.viewY };\n layer.globalTransMatrix.transformPoint({ x: params.event.viewX, y: params.event.viewY }, point);\n\n targetDimensionInfo = [\n ...(getCartesianDimensionInfo(chart, point, true) ?? []),\n ...(getPolarDimensionInfo(chart, point) ?? [])\n ];\n if (targetDimensionInfo.length === 0) {\n targetDimensionInfo = undefined;\n } else if (targetDimensionInfo.length > 1) {\n // 只保留一个轴的dimension info\n const dimensionAxisInfo = targetDimensionInfo.filter(info => {\n const axis = info.axis;\n if (axis.getSpec().hasDimensionTooltip) {\n return true;\n }\n\n // 优先显示离散轴 tooltip\n if (!isDiscrete(axis.getScale().type)) {\n return false;\n }\n // 下面的逻辑用来判断当前的离散轴是不是维度轴\n let firstSeries: ICartesianSeries | undefined;\n for (const region of axis?.getRegions() ?? []) {\n for (const series of region.getSeries()) {\n if (series.coordinate === 'cartesian') {\n firstSeries = series as ICartesianSeries;\n break;\n }\n }\n if (isValid(firstSeries)) {\n break;\n }\n }\n if (isValid(firstSeries) && firstSeries.getDimensionField()[0] === firstSeries.fieldY[0]) {\n // 维度轴为Y轴时,选择只显示Y轴tooltip\n return axis.getOrient() === 'left' || axis.getOrient() === 'right';\n }\n // 维度轴为X轴时,选择只显示X轴tooltip\n return axis.getOrient() === 'bottom' || axis.getOrient() === 'top';\n });\n targetDimensionInfo = dimensionAxisInfo.length ? dimensionAxisInfo : targetDimensionInfo.slice(0, 1);\n\n // datum 去重,保证每个系列的每个数据项只对应于一行 tooltip 内容项\n if (targetDimensionInfo.length > 1) {\n const dimensionDataKeySet = new Set<string>();\n targetDimensionInfo.forEach(info => {\n info.data = info.data.filter(({ key }: IDimensionData) => {\n if (dimensionDataKeySet.has(key)) {\n return false;\n }\n dimensionDataKeySet.add(key);\n return true;\n });\n });\n }\n }\n\n return targetDimensionInfo;\n }\n}\n"]}
@@ -4,8 +4,6 @@ import { BaseComponent } from "../base/base-component";
4
4
 
5
5
  import { isMobileLikeMode, isTrueBrowser, isMiniAppLikeMode, domDocument } from "../../util/env";
6
6
 
7
- import { TooltipResult } from "./interface/common";
8
-
9
7
  import { showTooltip } from "./utils/show-tooltip";
10
8
 
11
9
  import { getTooltipActualActiveType, isEmptyPos } from "./utils/common";
@@ -91,7 +89,7 @@ export class Tooltip extends BaseComponent {
91
89
  })), result;
92
90
  }, this._hideTooltipByHandler = params => {
93
91
  var _a, _b, _c;
94
- 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 TooltipResult.success;
92
+ 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 0;
95
93
  if (this.event.emit(ChartEvent.tooltipHide, Object.assign(Object.assign({}, params), {
96
94
  source: Event_Source_Type.chart,
97
95
  tooltip: this
@@ -99,7 +97,7 @@ export class Tooltip extends BaseComponent {
99
97
  const result = this.tooltipHandler.hideTooltip(params);
100
98
  return result || (this._isTooltipShown = !1), result;
101
99
  }
102
- return TooltipResult.failed;
100
+ return 1;
103
101
  };
104
102
  }
105
103
  static getSpecInfo(chartSpec) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/tooltip.ts"],"names":[],"mappings":"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","file":"tooltip.js","sourcesContent":["import { ComponentTypeEnum } from '../interface/type';\nimport type { IModelLayoutOption, IModelRenderOption, IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base/base-component';\nimport type { BaseEventParams, EventCallback, EventQuery, EventType } from '../../event/interface';\nimport type { ITooltipHandler, IToolTipLineActual, TooltipActiveType } from '../../typings/tooltip';\nimport type { Datum, IPoint, IShowTooltipOption } from '../../typings';\nimport { isMobileLikeMode, isTrueBrowser, isMiniAppLikeMode, domDocument } from '../../util/env';\nimport type {\n ITooltip,\n ITooltipActiveTypeAsKeys,\n ITooltipSpec,\n TooltipHandlerParams,\n TotalMouseEventData\n} from './interface';\nimport { TooltipResult } from './interface/common';\nimport { showTooltip } from './utils/show-tooltip';\nimport { getTooltipActualActiveType, isEmptyPos } from './utils/common';\nimport { isSameDimensionInfo } from '../../event/events/dimension/util/common';\nimport { ChartEvent, Event_Bubble_Level, Event_Source_Type } from '../../constant';\nimport type { BaseTooltipProcessor, DimensionTooltipInfo, MarkTooltipInfo, TooltipInfo } from './processor';\n// eslint-disable-next-line no-duplicate-imports\nimport { DimensionTooltipProcessor } from './processor/dimension-tooltip';\nimport { isDimensionInfo, isMarkInfo } from './processor/util';\nimport { MarkTooltipProcessor } from './processor/mark-tooltip';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { hasParentElement, isString, cloneDeep, isArray, isValid, isNil } from '@visactor/vutils';\nimport { VChart } from '../../core/vchart';\nimport type { TooltipEventParams } from './interface/event';\nimport { Factory } from '../../core/factory';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport { TooltipSpecTransformer } from './tooltip-transformer';\nimport { TOOLTIP_EL_CLASS_NAME, TooltipHandlerType } from '../../plugin/components/tooltip-handler/constants';\nimport { error } from '../../util';\n\nexport type TooltipActualTitleContent = {\n title?: IToolTipLineActual;\n content?: IToolTipLineActual[];\n};\n\ntype EventHandlerList = {\n eventType: EventType;\n handler: any;\n}[];\n\nexport class Tooltip extends BaseComponent<any> implements ITooltip {\n protected layoutZIndex: number = 1;\n static type = ComponentTypeEnum.tooltip;\n static readonly transformerConstructor = TooltipSpecTransformer;\n type = ComponentTypeEnum.tooltip;\n name: string = ComponentTypeEnum.tooltip;\n readonly transformerConstructor = TooltipSpecTransformer;\n\n static specKey = 'tooltip';\n specKey = 'tooltip';\n\n layoutType: 'none' = 'none';\n\n protected declare _spec: ITooltipSpec;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const tooltipSpec = chartSpec[this.specKey];\n if (!tooltipSpec) {\n return null;\n }\n if (!isArray(tooltipSpec)) {\n return [\n {\n spec: tooltipSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.tooltip\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n tooltipSpec.forEach((s: any, i: number) => {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.tooltip\n });\n });\n return specInfos;\n }\n\n tooltipHandler?: ITooltipHandler;\n\n private _alwaysShow: boolean = false;\n\n private _cacheInfo: TooltipInfo | undefined;\n private _cacheParams: BaseEventParams | undefined;\n\n private _eventList: EventHandlerList = [];\n\n protected _processor: ITooltipActiveTypeAsKeys<MarkTooltipProcessor, DimensionTooltipProcessor>;\n\n protected _isTooltipShown: boolean = false;\n /** 当前是否正在显示 tooltip */\n isTooltipShown() {\n return this._isTooltipShown;\n }\n\n changeRegions(regions: IRegion[]) {\n /* do nothing */\n }\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [];\n }\n protected _registerEvent() {\n /* do nothing */\n }\n protected _releaseEvent() {\n /* do nothing */\n }\n onLayout(ctx: IModelLayoutOption) {\n /* do nothing */\n }\n onLayoutEnd(ctx: IModelLayoutOption) {\n /* do nothing */\n }\n onRender(ctx: IModelRenderOption) {\n /* do nothing */\n }\n\n created() {\n super.created();\n this._regions = this._option.getAllRegions();\n // event\n this._initEvent();\n }\n\n release() {\n super.release();\n\n this._eventList.forEach(({ eventType, handler }) => {\n this.event.off(eventType, handler);\n });\n this._eventList = [];\n this.tooltipHandler?.release?.();\n this._isTooltipShown = false;\n }\n\n beforeRelease() {\n // 触发事件\n this.event.emit(ChartEvent.tooltipHide, {\n tooltip: this\n } as unknown as TooltipEventParams);\n this.event.emit(ChartEvent.tooltipRelease, {\n tooltip: this\n } as unknown as TooltipEventParams);\n }\n\n protected _initHandler() {\n const renderMode = this._spec.renderMode ?? 'html';\n\n const userTooltipHandler = this._option.globalInstance.getTooltipHandlerByUser();\n if (userTooltipHandler) {\n this.tooltipHandler = userTooltipHandler;\n } else {\n // 构造内部默认 handler\n const type = renderMode === 'canvas' ? TooltipHandlerType.canvas : TooltipHandlerType.dom;\n const handlerConstructor = Factory.getComponentPluginInType(type);\n if (!handlerConstructor) {\n error('Can not find tooltip handler: ' + type);\n }\n const handler = new handlerConstructor();\n handler.name = `${this._spec.className}-${this._option.globalInstance.id ?? 0}-${this.getSpecIndex()}`;\n this.pluginService?.load([handler]);\n\n this.tooltipHandler = handler as unknown as ITooltipHandler;\n }\n }\n\n protected _initProcessor() {\n // 初始化 tooltip 类型\n this._processor = {\n mark: new MarkTooltipProcessor(this),\n dimension: new DimensionTooltipProcessor(this)\n };\n }\n\n protected _initEvent() {\n if (this._option.disableTriggerEvent) {\n return;\n }\n const trigger = this._spec.trigger ?? 'hover';\n // TODO: triggerOff完整支持\n // const triggerOff = this._spec.triggerOff ?? trigger;\n const mode = this._option.mode;\n\n if (trigger === 'hover') {\n this._mountEvent('pointermove', { level: Event_Bubble_Level.chart }, this._handleMouseMove);\n // 移动端的点按 + 滑动触发\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n this._mountEvent('pointerdown', { level: Event_Bubble_Level.chart }, this._handleMouseMove);\n this._mountEvent('pointerup', { source: 'window' }, this._getMouseOutHandler(true));\n }\n this._mountEvent('pointerout', { source: 'canvas' }, this._getMouseOutHandler(false));\n } else if (trigger === 'click') {\n this._mountEvent('pointertap', { level: Event_Bubble_Level.chart }, this._handleMouseMove);\n this._mountEvent('pointerup', { source: 'window' }, this._getMouseOutHandler(true));\n }\n }\n\n protected _mountEvent = (eType: EventType, query: EventQuery, callback: EventCallback<any>) => {\n this.event.on(eType, query, callback);\n this._eventList.push({\n eventType: eType,\n handler: callback\n });\n };\n\n protected _getMouseOutHandler = (needPointerDetection?: boolean) => (params: BaseEventParams) => {\n if (this._alwaysShow) {\n return;\n }\n\n if (!this._isTooltipShown && !this.tooltipHandler?.isTooltipShown?.()) {\n return;\n }\n\n const browserEnv = isTrueBrowser(this._option.mode);\n const { clientX, clientY } = params.event as MouseEvent;\n\n // 当 enterable 为 true,同时鼠标移入 tooltip 时 pointerleave 事件也会触发,所以这里做一个判断\n if (browserEnv && this._isPointerOnTooltip(params)) {\n return;\n }\n\n // 判断鼠标是否在图表范围内\n if (browserEnv && needPointerDetection && this._isPointerInChart({ x: clientX, y: clientY })) {\n return;\n }\n\n this._handleChartMouseOut(params);\n };\n\n protected _handleChartMouseOut = (params: BaseEventParams) => {\n if (this._alwaysShow) {\n return;\n }\n\n if (this._spec.triggerOff !== 'none') {\n this._hideTooltipByHandler({\n ...params\n });\n this._cacheInfo = undefined;\n this._cacheParams = undefined;\n }\n };\n\n protected _handleMouseMove = (params: BaseEventParams) => {\n if (!this.tooltipHandler) {\n this._initHandler();\n }\n\n if (!this._processor) {\n this._initProcessor();\n }\n\n if (this._alwaysShow) {\n return;\n }\n if (this._isPointerOnTooltip(params)) {\n return;\n }\n\n /* 获取 tooltip 原始数据 */\n const mouseEventData = this._getMouseEventData(params);\n const {\n tooltipInfo: { dimension: dimensionInfo },\n ignore: { mark: ignoreMark, dimension: ignoreDimension }\n } = mouseEventData;\n\n let markTooltipSuccess: boolean = false;\n let dimensionTooltipSuccess: boolean = false;\n\n /* 显示常规tooltip */\n markTooltipSuccess = this._showTooltipByMouseEvent('mark', mouseEventData, params);\n if (!markTooltipSuccess) {\n dimensionTooltipSuccess = this._showTooltipByMouseEvent('dimension', mouseEventData, params);\n }\n\n /* 如果不是常规情况,进行一些特殊情况tooltip处理 */\n if (!markTooltipSuccess && !dimensionTooltipSuccess && !isEmptyPos(params)) {\n // 用户手动配置ignore,则继续显示缓存tooltip\n if (ignoreMark && isMarkInfo(this._cacheInfo)) {\n markTooltipSuccess = this._showTooltipByMouseEvent('mark', mouseEventData, params, true);\n } else if (ignoreDimension && isDimensionInfo(this._cacheInfo)) {\n dimensionTooltipSuccess = this._showTooltipByMouseEvent('dimension', mouseEventData, params, true);\n } else if (isValid(dimensionInfo)) {\n // 用户没有手动配置ignore的话,默认显示dimension tooltip\n dimensionTooltipSuccess = this._showTooltipByMouseEvent('dimension', mouseEventData, params);\n }\n }\n\n /* 如果还是不应该显示tooltip,则隐藏上一次tooltip */\n if (!markTooltipSuccess && (!dimensionTooltipSuccess || isNil(dimensionInfo))) {\n this._handleChartMouseOut(params);\n }\n };\n\n /**\n * 通过鼠标事件触发 tooltip,返回是否成功\n * @param activeType tooltip 类型\n * @param mouseEventData tooltip 相关数据\n * @param params 事件参数\n * @param useCache 是否直接显示缓存 tooltip\n * @returns 是否成功执行\n */\n protected _showTooltipByMouseEvent = (\n activeType: TooltipActiveType,\n mouseEventData: TotalMouseEventData,\n params: BaseEventParams,\n useCache?: boolean\n ): boolean => {\n const processor = this._processor[activeType];\n // 判断是否应该触发 tooltip\n if (\n !processor.shouldHandleTooltip(params, {\n tooltipInfo: mouseEventData.tooltipInfo[activeType],\n ignore: mouseEventData.ignore[activeType]\n })\n ) {\n return false;\n }\n\n let success: boolean;\n if (useCache) {\n // 直接显示缓存 tooltip\n success = !processor.showTooltip(this._cacheInfo as any, params, true);\n } else {\n const tooltipInfo = mouseEventData.tooltipInfo[activeType];\n const isSameAsCache = this._isSameAsCache(tooltipInfo, params);\n success = !processor.showTooltip(tooltipInfo as any, params, isSameAsCache);\n if (success) {\n // 成功显示 tooltip,则更新缓存\n this._cacheInfo = tooltipInfo;\n this._cacheParams = params;\n }\n }\n if (success) {\n this._isTooltipShown = true;\n }\n // 全局唯一 tooltip\n const vchart = this._option.globalInstance;\n if (success && VChart.globalConfig.uniqueTooltip) {\n VChart.hideTooltip(vchart.id);\n }\n return success;\n };\n\n protected _getMouseEventData = (params: BaseEventParams): TotalMouseEventData => {\n const result: TotalMouseEventData = {\n tooltipInfo: {},\n ignore: {}\n };\n Object.keys(this._processor).forEach(activeType => {\n const { tooltipInfo, ignore } = (this._processor[activeType] as BaseTooltipProcessor).getMouseEventData(params);\n result.tooltipInfo[activeType] = tooltipInfo;\n result.ignore[activeType] = ignore;\n });\n return result;\n };\n\n protected _hideTooltipByHandler = (params: TooltipHandlerParams): TooltipResult => {\n if (!this._isTooltipShown && !this.tooltipHandler?.isTooltipShown?.()) {\n // 如果当前 tooltip 未显示,则提前退出\n return TooltipResult.success;\n }\n this.event.emit(ChartEvent.tooltipHide, {\n ...params,\n source: Event_Source_Type.chart, // 统一 event 的来源\n tooltip: this\n });\n if (this.tooltipHandler?.hideTooltip) {\n const result = this.tooltipHandler.hideTooltip(params);\n if (!result) {\n this._isTooltipShown = false;\n }\n return result;\n }\n return TooltipResult.failed;\n };\n\n reInit(spec?: any) {\n super.reInit(spec);\n\n if (this.tooltipHandler) {\n this.tooltipHandler.reInit?.();\n } else {\n this._initHandler();\n }\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n const userSpec = this._spec as ITooltipSpec;\n this._spec = {\n ...userSpec,\n visible: isValid(userSpec.visible) ? userSpec.visible : true,\n activeType: getTooltipActualActiveType(userSpec),\n renderMode: 'html',\n trigger: isValid(userSpec.trigger) ? userSpec.trigger : 'hover',\n className: isValid(userSpec.className) ? userSpec.className : TOOLTIP_EL_CLASS_NAME,\n enterable: isValid(userSpec.enterable) ? userSpec.enterable : false,\n transitionDuration: isValid(userSpec.transitionDuration) ? userSpec.transitionDuration : 150\n } as ITooltipSpec;\n this._spec.triggerOff = isValid(userSpec.triggerOff) ? userSpec.triggerOff : this._spec.trigger;\n\n if (isValid(userSpec.renderMode)) {\n this._spec.renderMode = userSpec.renderMode;\n } else if (isMiniAppLikeMode(this._option.mode) || !isTrueBrowser(this._option.mode)) {\n // 小程序或非浏览器环境下,默认使用canvas渲染\n this._spec.renderMode = 'canvas';\n }\n\n if (isValid(userSpec.mark)) {\n this._spec.mark = {\n ...cloneDeep(userSpec.mark),\n activeType: 'mark'\n };\n }\n if (isValid(userSpec.dimension)) {\n this._spec.dimension = {\n ...cloneDeep(userSpec.dimension),\n activeType: 'dimension'\n };\n }\n\n if (isValid(userSpec.parentElement)) {\n if (isString(userSpec.parentElement)) {\n this._spec.parentElement = globalThis?.document?.getElementById(userSpec.parentElement);\n } else {\n this._spec.parentElement = userSpec.parentElement;\n }\n } else if (isTrueBrowser(this._option.mode)) {\n this._spec.parentElement = domDocument?.body;\n }\n\n if (isValid(userSpec.confine)) {\n this._spec.confine = userSpec.confine;\n } else {\n this._spec.confine = this._spec.renderMode === 'canvas';\n }\n }\n\n showTooltip(datum: Datum, options: IShowTooltipOption) {\n if (!this.tooltipHandler) {\n this._initHandler();\n }\n\n if (!this._processor) {\n this._initProcessor();\n }\n\n if (!this.tooltipHandler?.showTooltip) {\n return false;\n }\n const result = showTooltip(datum, options, this.tooltipHandler, this._option);\n if (result !== 'none') {\n this._alwaysShow = !!options?.alwaysShow;\n }\n return result;\n }\n\n /** 手动隐藏 tooltip,返回是否成功 */\n hideTooltip(): boolean {\n const params: TooltipHandlerParams = {\n changePositionOnly: false,\n item: undefined,\n datum: undefined,\n source: Event_Source_Type.chart\n } as any;\n\n this._alwaysShow = false;\n return !this._hideTooltipByHandler(params);\n }\n\n private _isSameAsCache(nextInfo?: TooltipInfo, nextParams?: BaseEventParams): boolean {\n if (nextInfo === this._cacheInfo) {\n return true;\n }\n if (isNil(this._cacheInfo) || isNil(nextInfo)) {\n return false;\n }\n\n // 判断 tooltip 信息是否一致\n if (isDimensionInfo(nextInfo)) {\n if (isMarkInfo(this._cacheInfo)) {\n return false;\n }\n\n const prevInfo = this._cacheInfo as DimensionTooltipInfo;\n const isSameAsCacheInfo =\n prevInfo.length === nextInfo.length && nextInfo.every((info, i) => isSameDimensionInfo(info, prevInfo[i]));\n if (!isSameAsCacheInfo) {\n return false;\n }\n } else {\n if (isDimensionInfo(this._cacheInfo)) {\n return false;\n }\n\n const prevInfo = this._cacheInfo as MarkTooltipInfo;\n const isSameAsCacheInfo =\n nextInfo?.datum === prevInfo.datum && nextInfo?.mark === prevInfo.mark && nextInfo?.series === prevInfo.series;\n if (!isSameAsCacheInfo) {\n return false;\n }\n }\n\n // 判断事件触发信息是否一致\n const prevParams = this._cacheParams;\n if (isNil(prevParams) || isNil(nextParams)) {\n return false;\n }\n return (\n prevParams.mark === nextParams.mark &&\n prevParams.model === nextParams.model &&\n prevParams.datum === nextParams.datum\n );\n }\n\n private _isPointerInChart(point: IPoint): boolean {\n const globalInstance = this._option.globalInstance;\n const chart = globalInstance.getChart();\n if (!chart) {\n return false;\n }\n const { x, y } = point;\n const canvas = globalInstance.getCanvas();\n const { x: chartX, y: chartY, width: chartWidth, height: chartHeight } = canvas.getBoundingClientRect();\n // 鼠标仍在图表范围内,则不处理\n if (x >= chartX && x <= chartX + chartWidth && y >= chartY && y <= chartY + chartHeight) {\n return true;\n }\n\n return false;\n }\n\n private _isPointerOnTooltip(params: BaseEventParams): boolean {\n // TODO:后续支持 renderMode === 'canvas' 场景\n if (this._spec.enterable && this._spec.renderMode === 'html') {\n const { event } = params;\n let newTarget: any;\n if (isValid(event.nativeEvent)) {\n // get native event object\n const nativeEvent = event.nativeEvent as any;\n newTarget = nativeEvent.relatedTarget;\n // if in shadow DOM use composedPath to access target\n // FIXME: shadow DOM 的 relatedTarget 的属性是?\n if (nativeEvent.composedPath && nativeEvent.composedPath().length > 0) {\n newTarget = nativeEvent.composedPath()[0];\n }\n } else {\n newTarget = event.relatedTarget;\n }\n const container = this.tooltipHandler?.getTooltipContainer?.();\n if (isValid(container) && isValid(newTarget) && hasParentElement(newTarget, container)) {\n return true;\n }\n }\n return false;\n }\n\n getVisible() {\n return this._spec.visible !== false;\n }\n}\n\nexport const registerTooltip = () => {\n Factory.registerComponent(Tooltip.type, Tooltip);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/tooltip.ts"],"names":[],"mappings":"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","file":"tooltip.js","sourcesContent":["import { ComponentTypeEnum } from '../interface/type';\nimport type { IModelLayoutOption, IModelRenderOption, IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base/base-component';\nimport type { BaseEventParams, EventCallback, EventQuery, EventType } from '../../event/interface';\nimport type { ITooltipHandler, IToolTipLineActual, TooltipActiveType } from '../../typings/tooltip';\nimport type { Datum, IPoint, IShowTooltipOption } from '../../typings';\nimport { isMobileLikeMode, isTrueBrowser, isMiniAppLikeMode, domDocument } from '../../util/env';\nimport type {\n ITooltip,\n ITooltipActiveTypeAsKeys,\n ITooltipSpec,\n TooltipHandlerParams,\n TotalMouseEventData\n} from './interface';\nimport { TooltipResult } from './interface/common';\nimport { showTooltip } from './utils/show-tooltip';\nimport { getTooltipActualActiveType, isEmptyPos } from './utils/common';\nimport { isSameDimensionInfo } from '../../event/events/dimension/util/common';\nimport { ChartEvent, Event_Bubble_Level, Event_Source_Type } from '../../constant';\nimport type { BaseTooltipProcessor, DimensionTooltipInfo, MarkTooltipInfo, TooltipInfo } from './processor';\n// eslint-disable-next-line no-duplicate-imports\nimport { DimensionTooltipProcessor } from './processor/dimension-tooltip';\nimport { isDimensionInfo, isMarkInfo } from './processor/util';\nimport { MarkTooltipProcessor } from './processor/mark-tooltip';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { hasParentElement, isString, cloneDeep, isArray, isValid, isNil } from '@visactor/vutils';\nimport { VChart } from '../../core/vchart';\nimport type { TooltipEventParams } from './interface/event';\nimport { Factory } from '../../core/factory';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport { TooltipSpecTransformer } from './tooltip-transformer';\nimport { TOOLTIP_EL_CLASS_NAME, TooltipHandlerType } from '../../plugin/components/tooltip-handler/constants';\nimport { error } from '../../util';\n\nexport type TooltipActualTitleContent = {\n title?: IToolTipLineActual;\n content?: IToolTipLineActual[];\n};\n\ntype EventHandlerList = {\n eventType: EventType;\n handler: any;\n}[];\n\nexport class Tooltip extends BaseComponent<any> implements ITooltip {\n protected layoutZIndex: number = 1;\n static type = ComponentTypeEnum.tooltip;\n static readonly transformerConstructor = TooltipSpecTransformer;\n type = ComponentTypeEnum.tooltip;\n name: string = ComponentTypeEnum.tooltip;\n readonly transformerConstructor = TooltipSpecTransformer;\n\n static specKey = 'tooltip';\n specKey = 'tooltip';\n\n layoutType: 'none' = 'none';\n\n protected declare _spec: ITooltipSpec;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const tooltipSpec = chartSpec[this.specKey];\n if (!tooltipSpec) {\n return null;\n }\n if (!isArray(tooltipSpec)) {\n return [\n {\n spec: tooltipSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.tooltip\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n tooltipSpec.forEach((s: any, i: number) => {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.tooltip\n });\n });\n return specInfos;\n }\n\n tooltipHandler?: ITooltipHandler;\n\n private _alwaysShow: boolean = false;\n\n private _cacheInfo: TooltipInfo | undefined;\n private _cacheParams: BaseEventParams | undefined;\n\n private _eventList: EventHandlerList = [];\n\n protected _processor: ITooltipActiveTypeAsKeys<MarkTooltipProcessor, DimensionTooltipProcessor>;\n\n protected _isTooltipShown: boolean = false;\n /** 当前是否正在显示 tooltip */\n isTooltipShown() {\n return this._isTooltipShown;\n }\n\n changeRegions(regions: IRegion[]) {\n /* do nothing */\n }\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [];\n }\n protected _registerEvent() {\n /* do nothing */\n }\n protected _releaseEvent() {\n /* do nothing */\n }\n onLayout(ctx: IModelLayoutOption) {\n /* do nothing */\n }\n onLayoutEnd(ctx: IModelLayoutOption) {\n /* do nothing */\n }\n onRender(ctx: IModelRenderOption) {\n /* do nothing */\n }\n\n created() {\n super.created();\n this._regions = this._option.getAllRegions();\n // event\n this._initEvent();\n }\n\n release() {\n super.release();\n\n this._eventList.forEach(({ eventType, handler }) => {\n this.event.off(eventType, handler);\n });\n this._eventList = [];\n this.tooltipHandler?.release?.();\n this._isTooltipShown = false;\n }\n\n beforeRelease() {\n // 触发事件\n this.event.emit(ChartEvent.tooltipHide, {\n tooltip: this\n } as unknown as TooltipEventParams);\n this.event.emit(ChartEvent.tooltipRelease, {\n tooltip: this\n } as unknown as TooltipEventParams);\n }\n\n protected _initHandler() {\n const renderMode = this._spec.renderMode ?? 'html';\n\n const userTooltipHandler = this._option.globalInstance.getTooltipHandlerByUser();\n if (userTooltipHandler) {\n this.tooltipHandler = userTooltipHandler;\n } else {\n // 构造内部默认 handler\n const type = renderMode === 'canvas' ? TooltipHandlerType.canvas : TooltipHandlerType.dom;\n const handlerConstructor = Factory.getComponentPluginInType(type);\n if (!handlerConstructor) {\n error('Can not find tooltip handler: ' + type);\n }\n const handler = new handlerConstructor();\n handler.name = `${this._spec.className}-${this._option.globalInstance.id ?? 0}-${this.getSpecIndex()}`;\n this.pluginService?.load([handler]);\n\n this.tooltipHandler = handler as unknown as ITooltipHandler;\n }\n }\n\n protected _initProcessor() {\n // 初始化 tooltip 类型\n this._processor = {\n mark: new MarkTooltipProcessor(this),\n dimension: new DimensionTooltipProcessor(this)\n };\n }\n\n protected _initEvent() {\n if (this._option.disableTriggerEvent) {\n return;\n }\n const trigger = this._spec.trigger ?? 'hover';\n // TODO: triggerOff完整支持\n // const triggerOff = this._spec.triggerOff ?? trigger;\n const mode = this._option.mode;\n\n if (trigger === 'hover') {\n this._mountEvent('pointermove', { level: Event_Bubble_Level.chart }, this._handleMouseMove);\n // 移动端的点按 + 滑动触发\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n this._mountEvent('pointerdown', { level: Event_Bubble_Level.chart }, this._handleMouseMove);\n this._mountEvent('pointerup', { source: 'window' }, this._getMouseOutHandler(true));\n }\n this._mountEvent('pointerout', { source: 'canvas' }, this._getMouseOutHandler(false));\n } else if (trigger === 'click') {\n this._mountEvent('pointertap', { level: Event_Bubble_Level.chart }, this._handleMouseMove);\n this._mountEvent('pointerup', { source: 'window' }, this._getMouseOutHandler(true));\n }\n }\n\n protected _mountEvent = (eType: EventType, query: EventQuery, callback: EventCallback<any>) => {\n this.event.on(eType, query, callback);\n this._eventList.push({\n eventType: eType,\n handler: callback\n });\n };\n\n protected _getMouseOutHandler = (needPointerDetection?: boolean) => (params: BaseEventParams) => {\n if (this._alwaysShow) {\n return;\n }\n\n if (!this._isTooltipShown && !this.tooltipHandler?.isTooltipShown?.()) {\n return;\n }\n\n const browserEnv = isTrueBrowser(this._option.mode);\n const { clientX, clientY } = params.event as MouseEvent;\n\n // 当 enterable 为 true,同时鼠标移入 tooltip 时 pointerleave 事件也会触发,所以这里做一个判断\n if (browserEnv && this._isPointerOnTooltip(params)) {\n return;\n }\n\n // 判断鼠标是否在图表范围内\n if (browserEnv && needPointerDetection && this._isPointerInChart({ x: clientX, y: clientY })) {\n return;\n }\n\n this._handleChartMouseOut(params);\n };\n\n protected _handleChartMouseOut = (params: BaseEventParams) => {\n if (this._alwaysShow) {\n return;\n }\n\n if (this._spec.triggerOff !== 'none') {\n this._hideTooltipByHandler({\n ...params\n });\n this._cacheInfo = undefined;\n this._cacheParams = undefined;\n }\n };\n\n protected _handleMouseMove = (params: BaseEventParams) => {\n if (!this.tooltipHandler) {\n this._initHandler();\n }\n\n if (!this._processor) {\n this._initProcessor();\n }\n\n if (this._alwaysShow) {\n return;\n }\n if (this._isPointerOnTooltip(params)) {\n return;\n }\n\n /* 获取 tooltip 原始数据 */\n const mouseEventData = this._getMouseEventData(params);\n const {\n tooltipInfo: { dimension: dimensionInfo },\n ignore: { mark: ignoreMark, dimension: ignoreDimension }\n } = mouseEventData;\n\n let markTooltipSuccess: boolean = false;\n let dimensionTooltipSuccess: boolean = false;\n\n /* 显示常规tooltip */\n markTooltipSuccess = this._showTooltipByMouseEvent('mark', mouseEventData, params);\n if (!markTooltipSuccess) {\n dimensionTooltipSuccess = this._showTooltipByMouseEvent('dimension', mouseEventData, params);\n }\n\n /* 如果不是常规情况,进行一些特殊情况tooltip处理 */\n if (!markTooltipSuccess && !dimensionTooltipSuccess && !isEmptyPos(params)) {\n // 用户手动配置ignore,则继续显示缓存tooltip\n if (ignoreMark && isMarkInfo(this._cacheInfo)) {\n markTooltipSuccess = this._showTooltipByMouseEvent('mark', mouseEventData, params, true);\n } else if (ignoreDimension && isDimensionInfo(this._cacheInfo)) {\n dimensionTooltipSuccess = this._showTooltipByMouseEvent('dimension', mouseEventData, params, true);\n } else if (isValid(dimensionInfo)) {\n // 用户没有手动配置ignore的话,默认显示dimension tooltip\n dimensionTooltipSuccess = this._showTooltipByMouseEvent('dimension', mouseEventData, params);\n }\n }\n\n /* 如果还是不应该显示tooltip,则隐藏上一次tooltip */\n if (!markTooltipSuccess && (!dimensionTooltipSuccess || isNil(dimensionInfo))) {\n this._handleChartMouseOut(params);\n }\n };\n\n /**\n * 通过鼠标事件触发 tooltip,返回是否成功\n * @param activeType tooltip 类型\n * @param mouseEventData tooltip 相关数据\n * @param params 事件参数\n * @param useCache 是否直接显示缓存 tooltip\n * @returns 是否成功执行\n */\n protected _showTooltipByMouseEvent = (\n activeType: TooltipActiveType,\n mouseEventData: TotalMouseEventData,\n params: BaseEventParams,\n useCache?: boolean\n ): boolean => {\n const processor = this._processor[activeType];\n // 判断是否应该触发 tooltip\n if (\n !processor.shouldHandleTooltip(params, {\n tooltipInfo: mouseEventData.tooltipInfo[activeType],\n ignore: mouseEventData.ignore[activeType]\n })\n ) {\n return false;\n }\n\n let success: boolean;\n if (useCache) {\n // 直接显示缓存 tooltip\n success = !processor.showTooltip(this._cacheInfo as any, params, true);\n } else {\n const tooltipInfo = mouseEventData.tooltipInfo[activeType];\n const isSameAsCache = this._isSameAsCache(tooltipInfo, params);\n success = !processor.showTooltip(tooltipInfo as any, params, isSameAsCache);\n if (success) {\n // 成功显示 tooltip,则更新缓存\n this._cacheInfo = tooltipInfo;\n this._cacheParams = params;\n }\n }\n if (success) {\n this._isTooltipShown = true;\n }\n // 全局唯一 tooltip\n const vchart = this._option.globalInstance;\n if (success && VChart.globalConfig.uniqueTooltip) {\n VChart.hideTooltip(vchart.id);\n }\n return success;\n };\n\n protected _getMouseEventData = (params: BaseEventParams): TotalMouseEventData => {\n const result: TotalMouseEventData = {\n tooltipInfo: {},\n ignore: {}\n };\n Object.keys(this._processor).forEach(activeType => {\n const { tooltipInfo, ignore } = (this._processor[activeType] as BaseTooltipProcessor).getMouseEventData(params);\n result.tooltipInfo[activeType] = tooltipInfo;\n result.ignore[activeType] = ignore;\n });\n return result;\n };\n\n protected _hideTooltipByHandler = (params: TooltipHandlerParams): TooltipResult => {\n if (!this._isTooltipShown && !this.tooltipHandler?.isTooltipShown?.()) {\n // 如果当前 tooltip 未显示,则提前退出\n return TooltipResult.success;\n }\n this.event.emit(ChartEvent.tooltipHide, {\n ...params,\n source: Event_Source_Type.chart, // 统一 event 的来源\n tooltip: this\n });\n if (this.tooltipHandler?.hideTooltip) {\n const result = this.tooltipHandler.hideTooltip(params);\n if (!result) {\n this._isTooltipShown = false;\n }\n return result;\n }\n return TooltipResult.failed;\n };\n\n reInit(spec?: any) {\n super.reInit(spec);\n\n if (this.tooltipHandler) {\n this.tooltipHandler.reInit?.();\n } else {\n this._initHandler();\n }\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n const userSpec = this._spec as ITooltipSpec;\n this._spec = {\n ...userSpec,\n visible: isValid(userSpec.visible) ? userSpec.visible : true,\n activeType: getTooltipActualActiveType(userSpec),\n renderMode: 'html',\n trigger: isValid(userSpec.trigger) ? userSpec.trigger : 'hover',\n className: isValid(userSpec.className) ? userSpec.className : TOOLTIP_EL_CLASS_NAME,\n enterable: isValid(userSpec.enterable) ? userSpec.enterable : false,\n transitionDuration: isValid(userSpec.transitionDuration) ? userSpec.transitionDuration : 150\n } as ITooltipSpec;\n this._spec.triggerOff = isValid(userSpec.triggerOff) ? userSpec.triggerOff : this._spec.trigger;\n\n if (isValid(userSpec.renderMode)) {\n this._spec.renderMode = userSpec.renderMode;\n } else if (isMiniAppLikeMode(this._option.mode) || !isTrueBrowser(this._option.mode)) {\n // 小程序或非浏览器环境下,默认使用canvas渲染\n this._spec.renderMode = 'canvas';\n }\n\n if (isValid(userSpec.mark)) {\n this._spec.mark = {\n ...cloneDeep(userSpec.mark),\n activeType: 'mark'\n };\n }\n if (isValid(userSpec.dimension)) {\n this._spec.dimension = {\n ...cloneDeep(userSpec.dimension),\n activeType: 'dimension'\n };\n }\n\n if (isValid(userSpec.parentElement)) {\n if (isString(userSpec.parentElement)) {\n this._spec.parentElement = globalThis?.document?.getElementById(userSpec.parentElement);\n } else {\n this._spec.parentElement = userSpec.parentElement;\n }\n } else if (isTrueBrowser(this._option.mode)) {\n this._spec.parentElement = domDocument?.body;\n }\n\n if (isValid(userSpec.confine)) {\n this._spec.confine = userSpec.confine;\n } else {\n this._spec.confine = this._spec.renderMode === 'canvas';\n }\n }\n\n showTooltip(datum: Datum, options: IShowTooltipOption) {\n if (!this.tooltipHandler) {\n this._initHandler();\n }\n\n if (!this._processor) {\n this._initProcessor();\n }\n\n if (!this.tooltipHandler?.showTooltip) {\n return false;\n }\n const result = showTooltip(datum, options, this.tooltipHandler, this._option);\n if (result !== 'none') {\n this._alwaysShow = !!options?.alwaysShow;\n }\n return result;\n }\n\n /** 手动隐藏 tooltip,返回是否成功 */\n hideTooltip(): boolean {\n const params: TooltipHandlerParams = {\n changePositionOnly: false,\n item: undefined,\n datum: undefined,\n source: Event_Source_Type.chart\n } as any;\n\n this._alwaysShow = false;\n return !this._hideTooltipByHandler(params);\n }\n\n private _isSameAsCache(nextInfo?: TooltipInfo, nextParams?: BaseEventParams): boolean {\n if (nextInfo === this._cacheInfo) {\n return true;\n }\n if (isNil(this._cacheInfo) || isNil(nextInfo)) {\n return false;\n }\n\n // 判断 tooltip 信息是否一致\n if (isDimensionInfo(nextInfo)) {\n if (isMarkInfo(this._cacheInfo)) {\n return false;\n }\n\n const prevInfo = this._cacheInfo as DimensionTooltipInfo;\n const isSameAsCacheInfo =\n prevInfo.length === nextInfo.length && nextInfo.every((info, i) => isSameDimensionInfo(info, prevInfo[i]));\n if (!isSameAsCacheInfo) {\n return false;\n }\n } else {\n if (isDimensionInfo(this._cacheInfo)) {\n return false;\n }\n\n const prevInfo = this._cacheInfo as MarkTooltipInfo;\n const isSameAsCacheInfo =\n nextInfo?.datum === prevInfo.datum && nextInfo?.mark === prevInfo.mark && nextInfo?.series === prevInfo.series;\n if (!isSameAsCacheInfo) {\n return false;\n }\n }\n\n // 判断事件触发信息是否一致\n const prevParams = this._cacheParams;\n if (isNil(prevParams) || isNil(nextParams)) {\n return false;\n }\n return (\n prevParams.mark === nextParams.mark &&\n prevParams.model === nextParams.model &&\n prevParams.datum === nextParams.datum\n );\n }\n\n private _isPointerInChart(point: IPoint): boolean {\n const globalInstance = this._option.globalInstance;\n const chart = globalInstance.getChart();\n if (!chart) {\n return false;\n }\n const { x, y } = point;\n const canvas = globalInstance.getCanvas();\n const { x: chartX, y: chartY, width: chartWidth, height: chartHeight } = canvas.getBoundingClientRect();\n // 鼠标仍在图表范围内,则不处理\n if (x >= chartX && x <= chartX + chartWidth && y >= chartY && y <= chartY + chartHeight) {\n return true;\n }\n\n return false;\n }\n\n private _isPointerOnTooltip(params: BaseEventParams): boolean {\n // TODO:后续支持 renderMode === 'canvas' 场景\n if (this._spec.enterable && this._spec.renderMode === 'html') {\n const { event } = params;\n let newTarget: any;\n if (isValid(event.nativeEvent)) {\n // get native event object\n const nativeEvent = event.nativeEvent as any;\n newTarget = nativeEvent.relatedTarget;\n // if in shadow DOM use composedPath to access target\n // FIXME: shadow DOM 的 relatedTarget 的属性是?\n if (nativeEvent.composedPath && nativeEvent.composedPath().length > 0) {\n newTarget = nativeEvent.composedPath()[0];\n }\n } else {\n newTarget = event.relatedTarget;\n }\n const container = this.tooltipHandler?.getTooltipContainer?.();\n if (isValid(container) && isValid(newTarget) && hasParentElement(newTarget, container)) {\n return true;\n }\n }\n return false;\n }\n\n getVisible() {\n return this._spec.visible !== false;\n }\n}\n\nexport const registerTooltip = () => {\n Factory.registerComponent(Tooltip.type, Tooltip);\n};\n"]}
@@ -15,6 +15,7 @@ export declare enum AttributeLevel {
15
15
  User_Mark = 8,
16
16
  Built_In = 99
17
17
  }
18
+ export declare const STACK_FIELD_KEY: string;
18
19
  export declare const STACK_FIELD_START: string;
19
20
  export declare const STACK_FIELD_END: string;
20
21
  export declare const STACK_FIELD_START_PERCENT: string;
@@ -20,6 +20,8 @@ export var AttributeLevel;
20
20
  AttributeLevel[AttributeLevel.User_Mark = 8] = "User_Mark", AttributeLevel[AttributeLevel.Built_In = 99] = "Built_In";
21
21
  }(AttributeLevel || (AttributeLevel = {}));
22
22
 
23
+ export const STACK_FIELD_KEY = `${PREFIX}_STACK_KEY`;
24
+
23
25
  export const STACK_FIELD_START = `${PREFIX}_STACK_START`;
24
26
 
25
27
  export const STACK_FIELD_END = `${PREFIX}_STACK_END`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constant/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,MAAM,oBAAoB,CAAC;AAEvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,MAAM,qBAAqB,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,MAAM,mBAAmB,CAAC;AAE7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,MAAM,4BAA4B,CAAC;AAE/E,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,MAAM,4BAA4B,CAAC;AAE/E,MAAM,CAAN,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,yDAAW,CAAA;IACX,qDAAS,CAAA;IACT,qDAAS,CAAA;IACT,iEAAe,CAAA;IACf,uDAAU,CAAA;IACV,mDAAQ,CAAA;IACR,+DAAc,CAAA;IACd,iEAAe,CAAA;IACf,6DAAa,CAAA;IACb,4DAAa,CAAA;AACf,CAAC,EAXW,cAAc,KAAd,cAAc,QAWzB;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,MAAM,cAAc,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,MAAM,YAAY,CAAC;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,MAAM,sBAAsB,CAAC;AACzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,MAAM,oBAAoB,CAAC;AACrE,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,MAAM,+BAA+B,CAAC;AAC3F,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,MAAM,6BAA6B,CAAC;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,MAAM,cAAc,CAAC;AACzD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,MAAM,sBAAsB,CAAC;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,MAAM,kBAAkB,CAAC;AAEjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,MAAM,gBAAgB,CAAC;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAN,IAAY,YAsCX;AAtCD,WAAY,YAAY;IACtB,0DAAc,CAAA;IACd,qEAAoB,CAAA;IACpB,qDAAY,CAAA;IAEZ,iDAAU,CAAA;IAEV,iDAAU,CAAA;IAEV,iDAAU,CAAA;IAEV,yDAAc,CAAA;IAEd,yDAAc,CAAA;IAEd,2DAAe,CAAA;IAEf,yDAAc,CAAA;IAEd,2DAAe,CAAA;IAEf,qDAAY,CAAA;IAEZ,qDAAY,CAAA;IAEZ,2DAAe,CAAA;IAEf,2DAAe,CAAA;IAEf,mDAAW,CAAA;IAEX,mDAAW,CAAA;IAEX,mDAAW,CAAA;IAEX,6DAAgB,CAAA;IAEhB,+DAAiB,CAAA;AACnB,CAAC,EAtCW,YAAY,KAAZ,YAAY,QAsCvB;AAID,MAAM,CAAN,IAAY,WAkBX;AAlBD,WAAY,WAAW;IACrB,wDAAc,CAAA;IAEd,kDAAW,CAAA;IAEX,8CAAS,CAAA;IAET,sDAAa,CAAA;IAEb,kDAAW,CAAA;IAEX,wDAAc,CAAA;IAEd,kDAAW,CAAA;IAEX,gDAAU,CAAA;IAEV,0DAAe,CAAA;AACjB,CAAC,EAlBW,WAAW,KAAX,WAAW,QAkBtB;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACN,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACN,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,8BAA8B;IACtC,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEF,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC","file":"index.js","sourcesContent":["import { PREFIX } from './base';\n\nexport const DEFAULT_MEASURE_CANVAS_ID = `${PREFIX}_MEASURE_CANVAS_ID`;\n\nexport const DEFAULT_DATA_INDEX = `${PREFIX}_DEFAULT_DATA_INDEX`;\n\nexport const DEFAULT_DATA_KEY = `${PREFIX}_DEFAULT_DATA_KEY`;\n\nexport const DEFAULT_DATA_SERIES_FIELD = `${PREFIX}_DEFAULT_DATA_SERIES_FIELD`;\n\nexport const DEFAULT_SERIES_STYLE_NAME = `${PREFIX}_DEFAULT_SERIES_STYLE_NAME`;\n\nexport enum AttributeLevel {\n Default = 0,\n Theme = 1,\n Chart = 2,\n Base_Series = 3, // general operation in base series\n Series = 4, // specified operation in derived series\n Mark = 5,\n User_Chart = 6,\n User_Series = 7,\n User_Mark = 8,\n Built_In = 99\n}\n\nexport const STACK_FIELD_START = `${PREFIX}_STACK_START`;\nexport const STACK_FIELD_END = `${PREFIX}_STACK_END`;\nexport const STACK_FIELD_START_PERCENT = `${PREFIX}_STACK_START_PERCENT`;\nexport const STACK_FIELD_END_PERCENT = `${PREFIX}_STACK_END_PERCENT`;\nexport const STACK_FIELD_START_OffsetSilhouette = `${PREFIX}_STACK_START_OffsetSilhouette`;\nexport const STACK_FIELD_END_OffsetSilhouette = `${PREFIX}_STACK_END_OffsetSilhouette`;\nexport const STACK_FIELD_TOTAL = `${PREFIX}_STACK_TOTAL`;\nexport const STACK_FIELD_TOTAL_PERCENT = `${PREFIX}_STACK_TOTAL_PERCENT`;\nexport const STACK_FIELD_TOTAL_TOP = `${PREFIX}_STACK_TOTAL_TOP`;\n\nexport const SEGMENT_FIELD_START = `${PREFIX}_SEGMENT_START`;\nexport const SEGMENT_FIELD_END = `${PREFIX}_SEGMENT_END`;\n\nexport enum LayoutZIndex {\n Axis_Grid = 50,\n CrossHair_Grid = 100,\n Region = 450,\n\n Mark = 300,\n\n Node = 400,\n\n Axis = 100,\n\n MarkLine = 500,\n\n MarkArea = 100,\n\n MarkPoint = 500,\n\n DataZoom = 500,\n\n ScrollBar = 500,\n\n Player = 500,\n\n Legend = 500,\n\n CrossHair = 500,\n\n Indicator = 500,\n\n Title = 500,\n\n Label = 500,\n\n Brush = 500,\n\n CustomMark = 500,\n\n Interaction = 700\n}\n/**\n * 数值越大,越先布局\n */\nexport enum LayoutLevel {\n Indicator = 10,\n\n Region = 20,\n\n Axis = 30,\n\n DataZoom = 40,\n\n Player = 40,\n\n ScrollBar = 40,\n\n Legend = 50,\n\n Title = 70,\n\n CustomMark = 70\n}\n\nexport const GradientType = ['linear', 'radial', 'conical'];\n\nexport const DEFAULT_LINEAR_GRADIENT_CONFIG = {\n x0: 0,\n y0: 0,\n x1: 1,\n y1: 1\n};\n\nexport const DEFAULT_RADIAL_GRADIENT_CONFIG = {\n x0: 0,\n y0: 0,\n x1: 1,\n y1: 1,\n r0: 0,\n r1: 1\n};\n\nexport const DEFAULT_CONICAL_GRADIENT_CONFIG = {\n x: 0.5,\n y: 0.5,\n startAngle: 0,\n endAngle: Math.PI * 2\n};\n\nexport const DEFAULT_GRADIENT_CONFIG = {\n linear: DEFAULT_LINEAR_GRADIENT_CONFIG,\n radial: DEFAULT_RADIAL_GRADIENT_CONFIG,\n conical: DEFAULT_CONICAL_GRADIENT_CONFIG\n};\n\nexport * from './base';\nexport * from './label';\nexport * from './polar';\nexport * from './layout';\nexport * from './event';\nexport * from './waterfall';\nexport * from './correlation';\n"]}
1
+ {"version":3,"sources":["../src/constant/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { PREFIX } from './base';\n\nexport const DEFAULT_MEASURE_CANVAS_ID = `${PREFIX}_MEASURE_CANVAS_ID`;\n\nexport const DEFAULT_DATA_INDEX = `${PREFIX}_DEFAULT_DATA_INDEX`;\n\nexport const DEFAULT_DATA_KEY = `${PREFIX}_DEFAULT_DATA_KEY`;\n\nexport const DEFAULT_DATA_SERIES_FIELD = `${PREFIX}_DEFAULT_DATA_SERIES_FIELD`;\n\nexport const DEFAULT_SERIES_STYLE_NAME = `${PREFIX}_DEFAULT_SERIES_STYLE_NAME`;\n\nexport enum AttributeLevel {\n Default = 0,\n Theme = 1,\n Chart = 2,\n Base_Series = 3, // general operation in base series\n Series = 4, // specified operation in derived series\n Mark = 5,\n User_Chart = 6,\n User_Series = 7,\n User_Mark = 8,\n Built_In = 99\n}\n\nexport const STACK_FIELD_KEY = `${PREFIX}_STACK_KEY`;\nexport const STACK_FIELD_START = `${PREFIX}_STACK_START`;\nexport const STACK_FIELD_END = `${PREFIX}_STACK_END`;\nexport const STACK_FIELD_START_PERCENT = `${PREFIX}_STACK_START_PERCENT`;\nexport const STACK_FIELD_END_PERCENT = `${PREFIX}_STACK_END_PERCENT`;\nexport const STACK_FIELD_START_OffsetSilhouette = `${PREFIX}_STACK_START_OffsetSilhouette`;\nexport const STACK_FIELD_END_OffsetSilhouette = `${PREFIX}_STACK_END_OffsetSilhouette`;\nexport const STACK_FIELD_TOTAL = `${PREFIX}_STACK_TOTAL`;\nexport const STACK_FIELD_TOTAL_PERCENT = `${PREFIX}_STACK_TOTAL_PERCENT`;\nexport const STACK_FIELD_TOTAL_TOP = `${PREFIX}_STACK_TOTAL_TOP`;\n\nexport const SEGMENT_FIELD_START = `${PREFIX}_SEGMENT_START`;\nexport const SEGMENT_FIELD_END = `${PREFIX}_SEGMENT_END`;\n\nexport enum LayoutZIndex {\n Axis_Grid = 50,\n CrossHair_Grid = 100,\n Region = 450,\n\n Mark = 300,\n\n Node = 400,\n\n Axis = 100,\n\n MarkLine = 500,\n\n MarkArea = 100,\n\n MarkPoint = 500,\n\n DataZoom = 500,\n\n ScrollBar = 500,\n\n Player = 500,\n\n Legend = 500,\n\n CrossHair = 500,\n\n Indicator = 500,\n\n Title = 500,\n\n Label = 500,\n\n Brush = 500,\n\n CustomMark = 500,\n\n Interaction = 700\n}\n/**\n * 数值越大,越先布局\n */\nexport enum LayoutLevel {\n Indicator = 10,\n\n Region = 20,\n\n Axis = 30,\n\n DataZoom = 40,\n\n Player = 40,\n\n ScrollBar = 40,\n\n Legend = 50,\n\n Title = 70,\n\n CustomMark = 70\n}\n\nexport const GradientType = ['linear', 'radial', 'conical'];\n\nexport const DEFAULT_LINEAR_GRADIENT_CONFIG = {\n x0: 0,\n y0: 0,\n x1: 1,\n y1: 1\n};\n\nexport const DEFAULT_RADIAL_GRADIENT_CONFIG = {\n x0: 0,\n y0: 0,\n x1: 1,\n y1: 1,\n r0: 0,\n r1: 1\n};\n\nexport const DEFAULT_CONICAL_GRADIENT_CONFIG = {\n x: 0.5,\n y: 0.5,\n startAngle: 0,\n endAngle: Math.PI * 2\n};\n\nexport const DEFAULT_GRADIENT_CONFIG = {\n linear: DEFAULT_LINEAR_GRADIENT_CONFIG,\n radial: DEFAULT_RADIAL_GRADIENT_CONFIG,\n conical: DEFAULT_CONICAL_GRADIENT_CONFIG\n};\n\nexport * from './base';\nexport * from './label';\nexport * from './polar';\nexport * from './layout';\nexport * from './event';\nexport * from './waterfall';\nexport * from './correlation';\n"]}
@@ -1,7 +1,7 @@
1
1
  import { VChart } from './vchart';
2
2
  import { Factory } from './factory';
3
3
  export { VChart, Factory };
4
- export declare const version = "1.10.0-alpha.0";
4
+ export declare const version = "1.10.0-alpha.4";
5
5
  export type { IVChart } from './interface';
6
6
  export type { IStateSpec, StateValueType } from '../compile/mark';
7
7
  export * from '../typings/spec/common';
package/esm/core/index.js CHANGED
@@ -4,7 +4,7 @@ import { Factory } from "./factory";
4
4
 
5
5
  export { VChart, Factory };
6
6
 
7
- export const version = "1.10.0-alpha.0";
7
+ export const version = "1.10.0-alpha.4";
8
8
 
9
9
  export * from "../typings/spec/common";
10
10
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAMxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAK5B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,cAAc,WAAW,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.10.0-alpha.0\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAMxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAK5B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,cAAc,WAAW,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.10.0-alpha.4\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
@@ -54,7 +54,7 @@ import { mergeSpec, mergeSpecWithFilter } from "../util/spec/merge-spec";
54
54
 
55
55
  import { specTransform } from "../util/spec/transform";
56
56
 
57
- import { getThemeObject } from "../util/spec/common";
57
+ import { getThemeObject } from "../util/theme/common";
58
58
 
59
59
  import { Factory } from "./factory";
60
60
 
@@ -301,7 +301,8 @@ export class VChart {
301
301
  if (this._autoSize) {
302
302
  if (this._container) {
303
303
  const ResizeObserverWindow = window.ResizeObserver;
304
- this._observer = new ResizeObserverWindow(this._onResize), null === (_a = this._observer) || void 0 === _a || _a.observe(this._container);
304
+ ResizeObserverWindow && (this._observer = new ResizeObserverWindow(this._onResize),
305
+ null === (_a = this._observer) || void 0 === _a || _a.observe(this._container));
305
306
  }
306
307
  window.addEventListener("resize", this._onResize);
307
308
  }
@@ -608,7 +609,7 @@ export class VChart {
608
609
  this._currentTheme = finalTheme;
609
610
  } else {
610
611
  const finalTheme = mergeTheme({}, getThemeObject(this._currentThemeName), getThemeObject(optionTheme), getThemeObject(specTheme));
611
- this._currentTheme = preprocessTheme(finalTheme, finalTheme.colorScheme);
612
+ this._currentTheme = preprocessTheme(finalTheme);
612
613
  }
613
614
  setPoptipTheme(get(this._currentTheme, "component.poptip")), null === (_b = this._compiler) || void 0 === _b || _b.setBackground(this._getBackground());
614
615
  }