@visactor/vchart 1.0.1-alpha.2 → 1.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/build/index.js +6015 -5865
  2. package/build/index.min.js +2 -2
  3. package/cjs/chart/area/area.d.ts +1 -0
  4. package/cjs/chart/area/area.js +4 -1
  5. package/cjs/chart/area/area.js.map +1 -1
  6. package/cjs/chart/bar/bar.d.ts +1 -0
  7. package/cjs/chart/bar/bar.js +4 -1
  8. package/cjs/chart/bar/bar.js.map +1 -1
  9. package/cjs/chart/base-chart.js +2 -1
  10. package/cjs/chart/base-chart.js.map +1 -1
  11. package/cjs/chart/box-plot/box-plot.js +2 -2
  12. package/cjs/chart/box-plot/box-plot.js.map +1 -1
  13. package/cjs/chart/histogram/histogram.d.ts +1 -0
  14. package/cjs/chart/histogram/histogram.js +4 -1
  15. package/cjs/chart/histogram/histogram.js.map +1 -1
  16. package/cjs/chart/line/line.d.ts +1 -0
  17. package/cjs/chart/line/line.js +4 -1
  18. package/cjs/chart/line/line.js.map +1 -1
  19. package/cjs/chart/range-area/range-area.d.ts +1 -0
  20. package/cjs/chart/range-area/range-area.js +4 -1
  21. package/cjs/chart/range-area/range-area.js.map +1 -1
  22. package/cjs/chart/range-column/range-column.d.ts +1 -0
  23. package/cjs/chart/range-column/range-column.js +4 -1
  24. package/cjs/chart/range-column/range-column.js.map +1 -1
  25. package/cjs/chart/sequence/sequence.js +1 -1
  26. package/cjs/chart/sequence/sequence.js.map +1 -1
  27. package/cjs/chart/util.d.ts +2 -0
  28. package/cjs/chart/util.js +23 -0
  29. package/cjs/chart/util.js.map +1 -0
  30. package/cjs/chart/waterfall/waterfall.js +2 -2
  31. package/cjs/chart/waterfall/waterfall.js.map +1 -1
  32. package/cjs/compile/compiler.js +2 -2
  33. package/cjs/compile/compiler.js.map +1 -1
  34. package/cjs/compile/grammar-item.js +2 -1
  35. package/cjs/component/axis/cartesian/axis.js +1 -1
  36. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  37. package/cjs/component/crosshair/base.js +1 -2
  38. package/cjs/component/crosshair/base.js.map +1 -1
  39. package/cjs/component/crosshair/interface/spec.d.ts +1 -1
  40. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  41. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  42. package/cjs/component/legend/base-legend.js +7 -3
  43. package/cjs/component/legend/base-legend.js.map +1 -1
  44. package/cjs/component/legend/util.d.ts +1 -1
  45. package/cjs/component/player/utils/transform.js +1 -3
  46. package/cjs/component/player/utils/transform.js.map +1 -1
  47. package/cjs/component/tooltip/handler/base.d.ts +5 -4
  48. package/cjs/component/tooltip/handler/base.js +44 -34
  49. package/cjs/component/tooltip/handler/base.js.map +1 -1
  50. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +2 -2
  51. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js +2 -2
  52. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  53. package/cjs/component/tooltip/handler/constants.d.ts +4 -0
  54. package/cjs/component/tooltip/handler/constants.js +5 -2
  55. package/cjs/component/tooltip/handler/constants.js.map +1 -1
  56. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +6 -2
  57. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +20 -13
  58. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  59. package/cjs/component/tooltip/handler/dom/interface.d.ts +16 -5
  60. package/cjs/component/tooltip/handler/dom/interface.js.map +1 -1
  61. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +7 -13
  62. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.js +12 -27
  63. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.js.map +1 -1
  64. package/cjs/component/tooltip/handler/dom/model/content-column-model.d.ts +13 -3
  65. package/cjs/component/tooltip/handler/dom/model/content-column-model.js +46 -26
  66. package/cjs/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  67. package/cjs/component/tooltip/handler/dom/model/content-model.d.ts +4 -3
  68. package/cjs/component/tooltip/handler/dom/model/content-model.js +4 -4
  69. package/cjs/component/tooltip/handler/dom/model/content-model.js.map +1 -1
  70. package/cjs/component/tooltip/handler/dom/model/interface.d.ts +4 -0
  71. package/cjs/component/tooltip/handler/dom/model/interface.js.map +1 -1
  72. package/cjs/component/tooltip/handler/dom/model/shape-model.d.ts +5 -5
  73. package/cjs/component/tooltip/handler/dom/model/shape-model.js +4 -4
  74. package/cjs/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  75. package/cjs/component/tooltip/handler/dom/model/style-constants.d.ts +4 -4
  76. package/cjs/component/tooltip/handler/dom/model/style-constants.js +16 -18
  77. package/cjs/component/tooltip/handler/dom/model/style-constants.js.map +1 -1
  78. package/cjs/component/tooltip/handler/dom/model/text-model.js +1 -0
  79. package/cjs/component/tooltip/handler/dom/model/text-model.js.map +1 -1
  80. package/cjs/component/tooltip/handler/dom/model/title-model.d.ts +3 -2
  81. package/cjs/component/tooltip/handler/dom/model/title-model.js +15 -19
  82. package/cjs/component/tooltip/handler/dom/model/title-model.js.map +1 -1
  83. package/cjs/component/tooltip/handler/dom/model/tooltip-model.d.ts +1 -2
  84. package/cjs/component/tooltip/handler/dom/model/tooltip-model.js +21 -16
  85. package/cjs/component/tooltip/handler/dom/model/tooltip-model.js.map +1 -1
  86. package/cjs/component/tooltip/handler/dom/util.d.ts +5 -0
  87. package/cjs/component/tooltip/handler/dom/{utils/style.js → util.js} +32 -20
  88. package/cjs/component/tooltip/handler/dom/util.js.map +1 -0
  89. package/cjs/component/tooltip/handler/interface/index.d.ts +0 -1
  90. package/cjs/component/tooltip/handler/interface/index.js +1 -1
  91. package/cjs/component/tooltip/handler/interface/index.js.map +1 -1
  92. package/cjs/component/tooltip/handler/utils/attribute.js +12 -8
  93. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  94. package/cjs/component/tooltip/handler/utils/common.d.ts +6 -2
  95. package/cjs/component/tooltip/handler/utils/common.js +30 -5
  96. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  97. package/cjs/component/tooltip/handler/utils/compose.d.ts +3 -2
  98. package/cjs/component/tooltip/handler/utils/compose.js +56 -45
  99. package/cjs/component/tooltip/handler/utils/compose.js.map +1 -1
  100. package/cjs/component/tooltip/handler/utils/get-spec.js +64 -28
  101. package/cjs/component/tooltip/handler/utils/get-spec.js.map +1 -1
  102. package/cjs/component/tooltip/handler/utils/style.d.ts +2 -1
  103. package/cjs/component/tooltip/handler/utils/style.js +4 -4
  104. package/cjs/component/tooltip/handler/utils/style.js.map +1 -1
  105. package/cjs/component/tooltip/tooltip.d.ts +3 -1
  106. package/cjs/component/tooltip/tooltip.js +33 -18
  107. package/cjs/component/tooltip/tooltip.js.map +1 -1
  108. package/cjs/component/tooltip/utils/common.js +4 -2
  109. package/cjs/component/tooltip/utils/common.js.map +1 -1
  110. package/cjs/constant/box-plot.js +1 -2
  111. package/cjs/constant/marker.js +2 -1
  112. package/cjs/core/index.d.ts +1 -1
  113. package/cjs/core/index.js +1 -1
  114. package/cjs/core/index.js.map +1 -1
  115. package/cjs/core/instance-manager.d.ts +1 -1
  116. package/cjs/core/instance-manager.js +1 -2
  117. package/cjs/core/instance-manager.js.map +1 -1
  118. package/cjs/core/vchart.d.ts +1 -0
  119. package/cjs/core/vchart.js +10 -2
  120. package/cjs/core/vchart.js.map +1 -1
  121. package/cjs/event/event.js +1 -2
  122. package/cjs/interaction/interface.js +1 -1
  123. package/cjs/interaction/trigger.js +1 -1
  124. package/cjs/layout/base-layout.js +8 -8
  125. package/cjs/layout/base-layout.js.map +1 -1
  126. package/cjs/layout/grid-layout/grid-layout.d.ts +5 -35
  127. package/cjs/layout/grid-layout/grid-layout.js +2 -1
  128. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  129. package/cjs/layout/index.d.ts +1 -2
  130. package/cjs/layout/index.js.map +1 -1
  131. package/cjs/layout/interface.d.ts +31 -3
  132. package/cjs/layout/interface.js.map +1 -1
  133. package/cjs/mark/arc-3d.js +1 -1
  134. package/cjs/mark/arc.d.ts +5 -4
  135. package/cjs/mark/arc.js +11 -13
  136. package/cjs/mark/arc.js.map +1 -1
  137. package/cjs/mark/area.js +1 -1
  138. package/cjs/mark/base/base-line.js +3 -3
  139. package/cjs/mark/base/base-line.js.map +1 -1
  140. package/cjs/mark/base/base-mark.d.ts +7 -0
  141. package/cjs/mark/base/base-mark.js +10 -6
  142. package/cjs/mark/base/base-mark.js.map +1 -1
  143. package/cjs/mark/box-plot.js +1 -1
  144. package/cjs/mark/cell.js +1 -1
  145. package/cjs/mark/utils/common.d.ts +0 -12
  146. package/cjs/mark/utils/common.js +2 -13
  147. package/cjs/mark/utils/common.js.map +1 -1
  148. package/cjs/model/base-model.js +1 -1
  149. package/cjs/model/interface.js +1 -1
  150. package/cjs/model/layout-item.js +2 -1
  151. package/cjs/model/model-state-manager.js +1 -1
  152. package/cjs/model/tooltip-helper.d.ts +3 -4
  153. package/cjs/model/tooltip-helper.js +5 -10
  154. package/cjs/model/tooltip-helper.js.map +1 -1
  155. package/cjs/plugin/interface.js +1 -1
  156. package/cjs/region/interface.js +1 -1
  157. package/cjs/region/region.js +6 -11
  158. package/cjs/region/region.js.map +1 -1
  159. package/cjs/series/base/base-series.js +1 -1
  160. package/cjs/series/base/base-series.js.map +1 -1
  161. package/cjs/series/base/tooltip-helper.d.ts +9 -8
  162. package/cjs/series/base/tooltip-helper.js +23 -12
  163. package/cjs/series/base/tooltip-helper.js.map +1 -1
  164. package/cjs/series/dot/dot.js +2 -2
  165. package/cjs/series/dot/dot.js.map +1 -1
  166. package/cjs/series/dot/tooltip-helper.d.ts +1 -2
  167. package/cjs/series/dot/tooltip-helper.js +6 -5
  168. package/cjs/series/dot/tooltip-helper.js.map +1 -1
  169. package/cjs/series/funnel/funnel.d.ts +1 -1
  170. package/cjs/series/funnel/funnel.js +8 -8
  171. package/cjs/series/funnel/funnel.js.map +1 -1
  172. package/cjs/series/funnel/tooltip-helper.d.ts +5 -3
  173. package/cjs/series/funnel/tooltip-helper.js +10 -8
  174. package/cjs/series/funnel/tooltip-helper.js.map +1 -1
  175. package/cjs/series/interface/series.d.ts +2 -1
  176. package/cjs/series/interface/series.js.map +1 -1
  177. package/cjs/series/interface/tooltip-helper.d.ts +6 -6
  178. package/cjs/series/interface/tooltip-helper.js.map +1 -1
  179. package/cjs/series/link/link.js +2 -2
  180. package/cjs/series/link/link.js.map +1 -1
  181. package/cjs/series/treemap/treemap.js.map +1 -1
  182. package/cjs/series/word-cloud/base.js +2 -2
  183. package/cjs/series/word-cloud/base.js.map +1 -1
  184. package/cjs/series/word-cloud/word-cloud-3d.js +3 -3
  185. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  186. package/cjs/theme/buildin-theme/index.d.ts +0 -1
  187. package/cjs/theme/buildin-theme/index.js +3 -3
  188. package/cjs/theme/buildin-theme/index.js.map +1 -1
  189. package/cjs/theme/buildin-theme/light/component/crosshair.js +4 -4
  190. package/cjs/theme/buildin-theme/light/component/crosshair.js.map +1 -1
  191. package/cjs/theme/buildin-theme/light/component/tooltip.js +1 -0
  192. package/cjs/theme/buildin-theme/light/component/tooltip.js.map +1 -1
  193. package/cjs/typings/spec/common.d.ts +1 -1
  194. package/cjs/typings/spec/common.js.map +1 -1
  195. package/cjs/typings/tooltip/common.d.ts +7 -1
  196. package/cjs/typings/tooltip/common.js.map +1 -1
  197. package/cjs/typings/tooltip/handler.d.ts +1 -1
  198. package/cjs/typings/tooltip/handler.js.map +1 -1
  199. package/cjs/typings/tooltip/line.d.ts +6 -4
  200. package/cjs/typings/tooltip/line.js.map +1 -1
  201. package/cjs/typings/tooltip/shape.d.ts +3 -3
  202. package/cjs/typings/tooltip/shape.js.map +1 -1
  203. package/cjs/typings/tooltip/tooltip.d.ts +11 -8
  204. package/cjs/typings/tooltip/tooltip.js.map +1 -1
  205. package/cjs/typings/visual.d.ts +4 -11
  206. package/cjs/typings/visual.js.map +1 -1
  207. package/cjs/util/debug.d.ts +3 -3
  208. package/cjs/util/debug.js +11 -20
  209. package/cjs/util/debug.js.map +1 -1
  210. package/cjs/util/index.d.ts +1 -0
  211. package/cjs/util/index.js +2 -1
  212. package/cjs/util/index.js.map +1 -1
  213. package/cjs/util/style.js +3 -7
  214. package/cjs/util/style.js.map +1 -1
  215. package/esm/chart/area/area.d.ts +1 -0
  216. package/esm/chart/area/area.js +5 -0
  217. package/esm/chart/area/area.js.map +1 -1
  218. package/esm/chart/bar/bar.d.ts +1 -0
  219. package/esm/chart/bar/bar.js +5 -0
  220. package/esm/chart/bar/bar.js.map +1 -1
  221. package/esm/chart/base-chart.js +2 -1
  222. package/esm/chart/base-chart.js.map +1 -1
  223. package/esm/chart/box-plot/box-plot.js +3 -1
  224. package/esm/chart/box-plot/box-plot.js.map +1 -1
  225. package/esm/chart/histogram/histogram.d.ts +1 -0
  226. package/esm/chart/histogram/histogram.js +5 -0
  227. package/esm/chart/histogram/histogram.js.map +1 -1
  228. package/esm/chart/line/line.d.ts +1 -0
  229. package/esm/chart/line/line.js +5 -0
  230. package/esm/chart/line/line.js.map +1 -1
  231. package/esm/chart/range-area/range-area.d.ts +1 -0
  232. package/esm/chart/range-area/range-area.js +5 -0
  233. package/esm/chart/range-area/range-area.js.map +1 -1
  234. package/esm/chart/range-column/range-column.d.ts +1 -0
  235. package/esm/chart/range-column/range-column.js +5 -0
  236. package/esm/chart/range-column/range-column.js.map +1 -1
  237. package/esm/chart/sequence/sequence.js +2 -2
  238. package/esm/chart/sequence/sequence.js.map +1 -1
  239. package/esm/chart/util.d.ts +2 -0
  240. package/esm/chart/util.js +16 -0
  241. package/esm/chart/util.js.map +1 -0
  242. package/esm/chart/waterfall/waterfall.js +3 -1
  243. package/esm/chart/waterfall/waterfall.js.map +1 -1
  244. package/esm/compile/compiler.js +2 -2
  245. package/esm/compile/compiler.js.map +1 -1
  246. package/esm/compile/grammar-item.js +2 -1
  247. package/esm/component/axis/cartesian/axis.js +2 -2
  248. package/esm/component/axis/cartesian/axis.js.map +1 -1
  249. package/esm/component/crosshair/base.js +1 -2
  250. package/esm/component/crosshair/base.js.map +1 -1
  251. package/esm/component/crosshair/interface/spec.d.ts +1 -1
  252. package/esm/component/crosshair/interface/spec.js.map +1 -1
  253. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  254. package/esm/component/legend/base-legend.js +7 -3
  255. package/esm/component/legend/base-legend.js.map +1 -1
  256. package/esm/component/legend/util.d.ts +1 -1
  257. package/esm/component/player/utils/transform.js +1 -3
  258. package/esm/component/player/utils/transform.js.map +1 -1
  259. package/esm/component/tooltip/handler/base.d.ts +5 -4
  260. package/esm/component/tooltip/handler/base.js +45 -35
  261. package/esm/component/tooltip/handler/base.js.map +1 -1
  262. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +2 -2
  263. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js +2 -3
  264. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  265. package/esm/component/tooltip/handler/constants.d.ts +4 -0
  266. package/esm/component/tooltip/handler/constants.js +9 -0
  267. package/esm/component/tooltip/handler/constants.js.map +1 -1
  268. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +6 -2
  269. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +20 -12
  270. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  271. package/esm/component/tooltip/handler/dom/interface.d.ts +16 -5
  272. package/esm/component/tooltip/handler/dom/interface.js.map +1 -1
  273. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +7 -13
  274. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.js +11 -29
  275. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.js.map +1 -1
  276. package/esm/component/tooltip/handler/dom/model/content-column-model.d.ts +13 -3
  277. package/esm/component/tooltip/handler/dom/model/content-column-model.js +46 -24
  278. package/esm/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  279. package/esm/component/tooltip/handler/dom/model/content-model.d.ts +4 -3
  280. package/esm/component/tooltip/handler/dom/model/content-model.js +5 -5
  281. package/esm/component/tooltip/handler/dom/model/content-model.js.map +1 -1
  282. package/esm/component/tooltip/handler/dom/model/interface.d.ts +4 -0
  283. package/esm/component/tooltip/handler/dom/model/interface.js.map +1 -1
  284. package/esm/component/tooltip/handler/dom/model/shape-model.d.ts +5 -5
  285. package/esm/component/tooltip/handler/dom/model/shape-model.js +4 -4
  286. package/esm/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  287. package/esm/component/tooltip/handler/dom/model/style-constants.d.ts +4 -4
  288. package/esm/component/tooltip/handler/dom/model/style-constants.js +18 -20
  289. package/esm/component/tooltip/handler/dom/model/style-constants.js.map +1 -1
  290. package/esm/component/tooltip/handler/dom/model/text-model.js +1 -0
  291. package/esm/component/tooltip/handler/dom/model/text-model.js.map +1 -1
  292. package/esm/component/tooltip/handler/dom/model/title-model.d.ts +3 -2
  293. package/esm/component/tooltip/handler/dom/model/title-model.js +15 -19
  294. package/esm/component/tooltip/handler/dom/model/title-model.js.map +1 -1
  295. package/esm/component/tooltip/handler/dom/model/tooltip-model.d.ts +1 -2
  296. package/esm/component/tooltip/handler/dom/model/tooltip-model.js +22 -16
  297. package/esm/component/tooltip/handler/dom/model/tooltip-model.js.map +1 -1
  298. package/esm/component/tooltip/handler/dom/util.d.ts +5 -0
  299. package/esm/component/tooltip/handler/dom/util.js +71 -0
  300. package/esm/component/tooltip/handler/dom/util.js.map +1 -0
  301. package/esm/component/tooltip/handler/interface/index.d.ts +0 -1
  302. package/esm/component/tooltip/handler/interface/index.js +0 -2
  303. package/esm/component/tooltip/handler/interface/index.js.map +1 -1
  304. package/esm/component/tooltip/handler/utils/attribute.js +11 -7
  305. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  306. package/esm/component/tooltip/handler/utils/common.d.ts +6 -2
  307. package/esm/component/tooltip/handler/utils/common.js +25 -2
  308. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  309. package/esm/component/tooltip/handler/utils/compose.d.ts +3 -2
  310. package/esm/component/tooltip/handler/utils/compose.js +52 -43
  311. package/esm/component/tooltip/handler/utils/compose.js.map +1 -1
  312. package/esm/component/tooltip/handler/utils/get-spec.js +60 -23
  313. package/esm/component/tooltip/handler/utils/get-spec.js.map +1 -1
  314. package/esm/component/tooltip/handler/utils/style.d.ts +2 -1
  315. package/esm/component/tooltip/handler/utils/style.js +4 -4
  316. package/esm/component/tooltip/handler/utils/style.js.map +1 -1
  317. package/esm/component/tooltip/tooltip.d.ts +3 -1
  318. package/esm/component/tooltip/tooltip.js +33 -18
  319. package/esm/component/tooltip/tooltip.js.map +1 -1
  320. package/esm/component/tooltip/utils/common.js +4 -2
  321. package/esm/component/tooltip/utils/common.js.map +1 -1
  322. package/esm/constant/box-plot.js +1 -2
  323. package/esm/constant/marker.js +2 -1
  324. package/esm/core/index.d.ts +1 -1
  325. package/esm/core/index.js +1 -1
  326. package/esm/core/index.js.map +1 -1
  327. package/esm/core/instance-manager.d.ts +1 -1
  328. package/esm/core/instance-manager.js +1 -2
  329. package/esm/core/instance-manager.js.map +1 -1
  330. package/esm/core/vchart.d.ts +1 -0
  331. package/esm/core/vchart.js +9 -2
  332. package/esm/core/vchart.js.map +1 -1
  333. package/esm/event/event.js +1 -2
  334. package/esm/interaction/interface.js +1 -1
  335. package/esm/interaction/trigger.js +1 -1
  336. package/esm/layout/base-layout.js +8 -8
  337. package/esm/layout/base-layout.js.map +1 -1
  338. package/esm/layout/grid-layout/grid-layout.d.ts +5 -35
  339. package/esm/layout/grid-layout/grid-layout.js +2 -1
  340. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  341. package/esm/layout/index.d.ts +1 -2
  342. package/esm/layout/index.js.map +1 -1
  343. package/esm/layout/interface.d.ts +31 -3
  344. package/esm/layout/interface.js.map +1 -1
  345. package/esm/mark/arc-3d.js +1 -1
  346. package/esm/mark/arc.d.ts +5 -4
  347. package/esm/mark/arc.js +11 -13
  348. package/esm/mark/arc.js.map +1 -1
  349. package/esm/mark/area.js +1 -1
  350. package/esm/mark/base/base-line.js +2 -4
  351. package/esm/mark/base/base-line.js.map +1 -1
  352. package/esm/mark/base/base-mark.d.ts +7 -0
  353. package/esm/mark/base/base-mark.js +9 -7
  354. package/esm/mark/base/base-mark.js.map +1 -1
  355. package/esm/mark/box-plot.js +1 -1
  356. package/esm/mark/cell.js +1 -1
  357. package/esm/mark/utils/common.d.ts +0 -12
  358. package/esm/mark/utils/common.js +0 -13
  359. package/esm/mark/utils/common.js.map +1 -1
  360. package/esm/model/base-model.js +1 -1
  361. package/esm/model/interface.js +1 -1
  362. package/esm/model/layout-item.js +2 -1
  363. package/esm/model/model-state-manager.js +1 -1
  364. package/esm/model/tooltip-helper.d.ts +3 -4
  365. package/esm/model/tooltip-helper.js +5 -10
  366. package/esm/model/tooltip-helper.js.map +1 -1
  367. package/esm/plugin/interface.js +1 -1
  368. package/esm/region/interface.js +1 -1
  369. package/esm/region/region.js +7 -11
  370. package/esm/region/region.js.map +1 -1
  371. package/esm/series/base/base-series.js +1 -1
  372. package/esm/series/base/base-series.js.map +1 -1
  373. package/esm/series/base/tooltip-helper.d.ts +9 -8
  374. package/esm/series/base/tooltip-helper.js +23 -12
  375. package/esm/series/base/tooltip-helper.js.map +1 -1
  376. package/esm/series/dot/dot.js +1 -3
  377. package/esm/series/dot/dot.js.map +1 -1
  378. package/esm/series/dot/tooltip-helper.d.ts +1 -2
  379. package/esm/series/dot/tooltip-helper.js +7 -4
  380. package/esm/series/dot/tooltip-helper.js.map +1 -1
  381. package/esm/series/funnel/funnel.d.ts +1 -1
  382. package/esm/series/funnel/funnel.js +8 -8
  383. package/esm/series/funnel/funnel.js.map +1 -1
  384. package/esm/series/funnel/tooltip-helper.d.ts +5 -3
  385. package/esm/series/funnel/tooltip-helper.js +11 -7
  386. package/esm/series/funnel/tooltip-helper.js.map +1 -1
  387. package/esm/series/interface/series.d.ts +2 -1
  388. package/esm/series/interface/series.js.map +1 -1
  389. package/esm/series/interface/tooltip-helper.d.ts +6 -6
  390. package/esm/series/interface/tooltip-helper.js.map +1 -1
  391. package/esm/series/link/link.js +1 -3
  392. package/esm/series/link/link.js.map +1 -1
  393. package/esm/series/treemap/treemap.js.map +1 -1
  394. package/esm/series/word-cloud/base.js +3 -3
  395. package/esm/series/word-cloud/base.js.map +1 -1
  396. package/esm/series/word-cloud/word-cloud-3d.js +2 -4
  397. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  398. package/esm/theme/buildin-theme/index.d.ts +0 -1
  399. package/esm/theme/buildin-theme/index.js +1 -5
  400. package/esm/theme/buildin-theme/index.js.map +1 -1
  401. package/esm/theme/buildin-theme/light/component/crosshair.js +4 -4
  402. package/esm/theme/buildin-theme/light/component/crosshair.js.map +1 -1
  403. package/esm/theme/buildin-theme/light/component/tooltip.js +1 -0
  404. package/esm/theme/buildin-theme/light/component/tooltip.js.map +1 -1
  405. package/esm/typings/spec/common.d.ts +1 -1
  406. package/esm/typings/spec/common.js.map +1 -1
  407. package/esm/typings/tooltip/common.d.ts +7 -1
  408. package/esm/typings/tooltip/common.js.map +1 -1
  409. package/esm/typings/tooltip/handler.d.ts +1 -1
  410. package/esm/typings/tooltip/handler.js.map +1 -1
  411. package/esm/typings/tooltip/line.d.ts +6 -4
  412. package/esm/typings/tooltip/line.js.map +1 -1
  413. package/esm/typings/tooltip/shape.d.ts +3 -3
  414. package/esm/typings/tooltip/shape.js.map +1 -1
  415. package/esm/typings/tooltip/tooltip.d.ts +11 -8
  416. package/esm/typings/tooltip/tooltip.js.map +1 -1
  417. package/esm/typings/visual.d.ts +4 -11
  418. package/esm/typings/visual.js.map +1 -1
  419. package/esm/util/debug.d.ts +3 -3
  420. package/esm/util/debug.js +11 -14
  421. package/esm/util/debug.js.map +1 -1
  422. package/esm/util/index.d.ts +1 -0
  423. package/esm/util/index.js +2 -0
  424. package/esm/util/index.js.map +1 -1
  425. package/esm/util/style.js +3 -8
  426. package/esm/util/style.js.map +1 -1
  427. package/package.json +35 -39
  428. package/cjs/component/tooltip/handler/dom/utils/style.d.ts +0 -3
  429. package/cjs/component/tooltip/handler/dom/utils/style.js.map +0 -1
  430. package/cjs/component/tooltip/handler/interface/cache.d.ts +0 -28
  431. package/cjs/component/tooltip/handler/interface/cache.js +0 -6
  432. package/cjs/component/tooltip/handler/interface/cache.js.map +0 -1
  433. package/cjs/theme/buildin-theme/dark.d.ts +0 -2
  434. package/cjs/theme/buildin-theme/dark.js +0 -16
  435. package/cjs/theme/buildin-theme/dark.js.map +0 -1
  436. package/esm/component/tooltip/handler/dom/utils/style.d.ts +0 -3
  437. package/esm/component/tooltip/handler/dom/utils/style.js +0 -59
  438. package/esm/component/tooltip/handler/dom/utils/style.js.map +0 -1
  439. package/esm/component/tooltip/handler/interface/cache.d.ts +0 -28
  440. package/esm/component/tooltip/handler/interface/cache.js +0 -2
  441. package/esm/component/tooltip/handler/interface/cache.js.map +0 -1
  442. package/esm/theme/buildin-theme/dark.d.ts +0 -2
  443. package/esm/theme/buildin-theme/dark.js +0 -12
  444. package/esm/theme/buildin-theme/dark.js.map +0 -1
@@ -1,71 +1,80 @@
1
- import { isValid, isNil } from "../../../../util";
1
+ import { isValid, isNil, array } from "../../../../util";
2
2
 
3
- import { getTooltipValue } from "./common";
3
+ import { getFirstDatumFromTooltipData, getTooltipContentValue, getTooltipPatternValue } from "./common";
4
4
 
5
5
  import { getTooltipActualActiveType } from "../../utils";
6
6
 
7
- export const getShowContent = (pattern, data, event) => {
8
- var _a, _b, _c, _d, _e, _f, _g;
9
- if (!data || "mouseout" === event.type) return null;
10
- const tooltipContent = {
7
+ import { TOOLTIP_MAX_LINE_COUNT, TOOLTIP_OTHERS_LINE } from "../constants";
8
+
9
+ export const getShowContent = (pattern, data, params) => {
10
+ var _a, _b, _c, _d, _e;
11
+ if (!data || "mouseout" === (null === (_a = null == params ? void 0 : params.event) || void 0 === _a ? void 0 : _a.type)) return null;
12
+ const patternTitle = getTooltipPatternValue(pattern.title, data, params), patternContent = array(getTooltipPatternValue(pattern.content, data, params)), tooltipContent = {
11
13
  title: {
12
- value: null === (_b = null === (_a = pattern.title) || void 0 === _a ? void 0 : _a.value) || void 0 === _b ? void 0 : _b.toString(),
14
+ value: null === (_b = null == patternTitle ? void 0 : patternTitle.value) || void 0 === _b ? void 0 : _b.toString(),
13
15
  hasShape: !1,
14
16
  shapeType: void 0,
15
17
  shapeHollow: void 0
16
18
  },
17
19
  content: []
18
- };
19
- if (pattern.title && !1 !== pattern.title.visible) {
20
- if (tooltipContent.title.hasShape = pattern.title.hasShape, isValid(pattern.title) && isValid(pattern.title.value)) {
21
- let datum;
20
+ }, {maxLineCount: maxLineCount = TOOLTIP_MAX_LINE_COUNT} = pattern, patternTitleVisible = !1 !== getTooltipContentValue(null == patternTitle ? void 0 : patternTitle.visible, data, params);
21
+ if (patternTitle && patternTitleVisible) {
22
+ if (tooltipContent.title.hasShape = patternTitle.hasShape, isValid(patternTitle.value)) {
22
23
  tooltipContent.title = {
23
- hasShape: null === (_c = pattern.title) || void 0 === _c ? void 0 : _c.hasShape,
24
- shapeHollow: null === (_d = pattern.title) || void 0 === _d ? void 0 : _d.shapeHollow
24
+ hasShape: patternTitle.hasShape,
25
+ shapeHollow: patternTitle.shapeHollow
25
26
  };
26
- const dimInfoList = (null === (_e = data[0]) || void 0 === _e ? void 0 : _e.series) ? [ {
27
- data: data,
28
- value: ""
29
- } ] : data;
30
- for (const {data: dataList} of dimInfoList) {
31
- for (const {datum: datumList} of dataList) {
32
- for (const datumItem of null != datumList ? datumList : []) if (datumItem) {
33
- datum = datumItem;
34
- break;
35
- }
36
- if (datum) break;
37
- }
38
- if (datum) break;
39
- }
40
- tooltipContent.title.value = getTooltipValue(null === (_f = pattern.title) || void 0 === _f ? void 0 : _f.value, datum);
27
+ const datum = getFirstDatumFromTooltipData(data);
28
+ tooltipContent.title.value = getTooltipContentValue(null == patternTitle ? void 0 : patternTitle.value, datum, params);
41
29
  }
42
30
  } else tooltipContent.title = {
43
31
  hasShape: !1,
44
32
  visible: !1
45
33
  };
46
- return "mark" === pattern.activeType ? null === (_g = pattern.content) || void 0 === _g || _g.forEach((content => {
47
- var _a;
48
- const oneLineData = getOneLineData(null === (_a = data[0]) || void 0 === _a ? void 0 : _a.datum[0], content);
49
- !1 !== oneLineData.visible && tooltipContent.content.push(oneLineData);
50
- })) : "dimension" === pattern.activeType && data.forEach((({data: d}) => d.forEach((({datum: datum, series: series}) => {
51
- var _a, _b, _c;
52
- if (!getTooltipActualActiveType(null === (_a = series.tooltipHelper) || void 0 === _a ? void 0 : _a.spec).includes("dimension")) return;
53
- const contentPatterns = null !== (_c = null === (_b = pattern.content) || void 0 === _b ? void 0 : _b.filter((c => isNil(c.seriesId) || c.seriesId === series.id))) && void 0 !== _c ? _c : [];
54
- datum.forEach((datumItem => contentPatterns.forEach((c => {
55
- const oneLineData = getOneLineData(datumItem, c);
56
- !1 !== oneLineData.visible && tooltipContent.content.push(oneLineData);
57
- }))));
58
- })))), tooltipContent.title && (tooltipContent.content.length > 0 && tooltipContent.content[0].shapeType ? (isNil(tooltipContent.title.shapeType) && (tooltipContent.title.shapeType = tooltipContent.content[0].shapeType),
34
+ if ("mark" === pattern.activeType) for (const content of null != patternContent ? patternContent : []) {
35
+ const oneLineData = getOneLineData(null === (_c = data[0]) || void 0 === _c ? void 0 : _c.datum[0], content, params);
36
+ if (!1 !== oneLineData.visible) {
37
+ if (tooltipContent.content.length === maxLineCount - 1) {
38
+ tooltipContent.content.push(Object.assign(Object.assign({}, oneLineData), TOOLTIP_OTHERS_LINE));
39
+ break;
40
+ }
41
+ if (!(tooltipContent.content.length < maxLineCount)) break;
42
+ tooltipContent.content.push(oneLineData);
43
+ }
44
+ } else if ("dimension" === pattern.activeType) for (const {data: d} of data) {
45
+ for (const {datum: datum, series: series} of d) {
46
+ if (!getTooltipActualActiveType(null === (_d = series.tooltipHelper) || void 0 === _d ? void 0 : _d.spec).includes("dimension")) continue;
47
+ const contentPatterns = null !== (_e = null == patternContent ? void 0 : patternContent.filter((c => isNil(c.seriesId) || c.seriesId === series.id))) && void 0 !== _e ? _e : [];
48
+ for (const datumItem of datum) {
49
+ for (const linePattern of contentPatterns) {
50
+ const oneLineData = getOneLineData(datumItem, linePattern, params);
51
+ if (!1 !== oneLineData.visible) {
52
+ if (tooltipContent.content.length === maxLineCount - 1) {
53
+ tooltipContent.content.push(Object.assign(Object.assign({}, oneLineData), TOOLTIP_OTHERS_LINE));
54
+ break;
55
+ }
56
+ if (!(tooltipContent.content.length < maxLineCount)) break;
57
+ tooltipContent.content.push(oneLineData);
58
+ }
59
+ }
60
+ if (tooltipContent.content.length >= maxLineCount) break;
61
+ }
62
+ if (tooltipContent.content.length >= maxLineCount) break;
63
+ }
64
+ if (tooltipContent.content.length >= maxLineCount) break;
65
+ }
66
+ return tooltipContent.title && (tooltipContent.content.length > 0 && tooltipContent.content[0].shapeType ? (isNil(tooltipContent.title.shapeType) && (tooltipContent.title.shapeType = tooltipContent.content[0].shapeType),
59
67
  isNil(tooltipContent.title.shapeColor) && (tooltipContent.title.shapeColor = tooltipContent.content[0].shapeColor)) : tooltipContent.title.hasShape = !1),
60
68
  tooltipContent;
61
69
  };
62
70
 
63
- export const getOneLineData = (datum, config) => {
64
- const key = getTooltipValue(config.key, datum), value = getTooltipValue(config.value, datum), visible = isValid(key) || isValid(value), shapeType = getTooltipValue(config.shapeType, datum), shapeColor = getTooltipValue(config.shapeColor, datum);
71
+ export const getOneLineData = (datum, config, params) => {
72
+ const key = getTooltipContentValue(config.key, datum, params), value = getTooltipContentValue(config.value, datum, params), visible = !1 !== getTooltipContentValue(config.visible, datum, params) && (isValid(key) || isValid(value)), isKeyAdaptive = getTooltipContentValue(config.isKeyAdaptive, datum, params), shapeType = getTooltipContentValue(config.shapeType, datum, params), shapeColor = getTooltipContentValue(config.shapeColor, datum, params);
65
73
  return {
66
74
  key: key,
67
75
  value: value,
68
76
  visible: visible,
77
+ isKeyAdaptive: isKeyAdaptive,
69
78
  hasShape: config.hasShape,
70
79
  shapeType: shapeType,
71
80
  shapeHollow: config.shapeHollow,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/utils/compose.ts"],"names":[],"mappings":"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","file":"compose.js","sourcesContent":["import { isValid, isNil } from '../../../../util';\nimport type { TooltipContent } from '../../tooltip';\nimport type {\n IToolTipLinePattern,\n ITooltipPattern,\n TooltipData,\n IToolTipLineActual\n} from '../../../../typings/tooltip';\nimport { getTooltipValue } from './common';\nimport { getTooltipActualActiveType } from '../../utils';\nimport type { IDimensionData, IDimensionInfo } from '../../../../event/events/dimension/interface';\n\n/**\n * 获得tooltip的实际显示内容\n * @param pattern\n * @param data\n * @param event\n * @returns\n */\nexport const getShowContent = (\n pattern: ITooltipPattern,\n data: TooltipData,\n event: MouseEvent\n): TooltipContent | null => {\n if (\n !data ||\n // data.key === undefined ||\n event.type === 'mouseout'\n ) {\n return null;\n }\n const tooltipContent: TooltipContent = {\n title: {\n value: pattern.title?.value?.toString(),\n hasShape: false,\n shapeType: undefined,\n shapeHollow: undefined\n },\n content: []\n };\n\n /** title */\n if (!pattern.title || pattern.title.visible === false) {\n tooltipContent.title = {\n hasShape: false,\n visible: false\n };\n } else {\n tooltipContent.title.hasShape = pattern.title.hasShape;\n if (isValid(pattern.title) && isValid(pattern.title.value)) {\n tooltipContent.title = {\n hasShape: pattern.title?.hasShape,\n shapeHollow: pattern.title?.shapeHollow\n };\n // 找到第一个可用的datum\n let datum: any;\n const dimInfoList: IDimensionInfo[] = (data as IDimensionData[])[0]?.series\n ? [{ data: data as IDimensionData[], value: '' }]\n : (data as IDimensionInfo[]);\n for (const { data: dataList } of dimInfoList) {\n for (const { datum: datumList } of dataList) {\n for (const datumItem of datumList ?? []) {\n if (datumItem) {\n datum = datumItem;\n break;\n }\n }\n if (datum) {\n break;\n }\n }\n if (datum) {\n break;\n }\n }\n tooltipContent.title.value = getTooltipValue(pattern.title?.value, datum);\n }\n }\n\n /** content */\n if (pattern.activeType === 'mark') {\n pattern.content?.forEach(content => {\n const oneLineData = getOneLineData((data as IDimensionData[])[0]?.datum[0], content);\n if (oneLineData.visible !== false) {\n tooltipContent.content.push(oneLineData);\n }\n });\n } else if (pattern.activeType === 'dimension') {\n (data as IDimensionInfo[]).forEach(({ data: d }) =>\n d.forEach(({ datum, series }) => {\n if (!getTooltipActualActiveType(series.tooltipHelper?.spec).includes('dimension')) {\n return;\n }\n const contentPatterns =\n pattern.content?.filter(\n c => isNil(c.seriesId) || c.seriesId === series.id // 匹配对应series\n ) ?? [];\n datum.forEach(datumItem =>\n contentPatterns.forEach(c => {\n const oneLineData = getOneLineData(datumItem, c);\n if (oneLineData.visible !== false) {\n tooltipContent.content.push(oneLineData);\n }\n })\n );\n })\n );\n }\n\n if (tooltipContent.title) {\n // TODO:对 title shape 的支持目前还不完整,尚没有相关需求\n if (tooltipContent.content.length > 0 && tooltipContent.content[0].shapeType) {\n if (isNil(tooltipContent.title.shapeType)) {\n tooltipContent.title.shapeType = tooltipContent.content[0].shapeType;\n }\n if (isNil(tooltipContent.title.shapeColor)) {\n tooltipContent.title.shapeColor = tooltipContent.content[0].shapeColor;\n }\n } else {\n tooltipContent.title.hasShape = false;\n }\n }\n\n return tooltipContent;\n};\n\n/**\n * 获得tooltip的单行实际显示内容\n * @param datum\n * @param config\n * @returns\n */\nexport const getOneLineData = (datum: any, config: IToolTipLinePattern): IToolTipLineActual => {\n const key = getTooltipValue(config.key, datum);\n const value = getTooltipValue(config.value, datum);\n const visible: boolean = isValid(key) || isValid(value);\n\n const shapeType = getTooltipValue(config.shapeType, datum);\n const shapeColor = getTooltipValue(config.shapeColor, datum);\n\n return {\n key,\n value,\n visible,\n hasShape: config.hasShape,\n shapeType: shapeType as any,\n shapeHollow: config.shapeHollow,\n shapeColor\n };\n};\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/utils/compose.ts"],"names":[],"mappings":"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","file":"compose.js","sourcesContent":["import { isValid, isNil, array } from '../../../../util';\nimport type { TooltipContent } from '../../tooltip';\nimport type {\n IToolTipLinePattern,\n ITooltipPattern,\n TooltipData,\n IToolTipLineActual\n} from '../../../../typings/tooltip';\nimport { getFirstDatumFromTooltipData, getTooltipContentValue, getTooltipPatternValue } from './common';\nimport { getTooltipActualActiveType } from '../../utils';\nimport type { IDimensionData, IDimensionInfo } from '../../../../event/events/dimension/interface';\nimport type { TooltipHandlerParams } from '../../interface';\nimport { TOOLTIP_MAX_LINE_COUNT, TOOLTIP_OTHERS_LINE } from '../constants';\n\n/**\n * 获得tooltip的实际显示内容\n * @param pattern\n * @param data\n * @param event\n * @returns\n */\nexport const getShowContent = (\n pattern: ITooltipPattern,\n data: TooltipData,\n params: TooltipHandlerParams\n): TooltipContent | null => {\n if (\n !data ||\n // data.key === undefined ||\n params?.event?.type === 'mouseout'\n ) {\n return null;\n }\n\n const patternTitle = getTooltipPatternValue(pattern.title, data, params);\n const patternContent = array(getTooltipPatternValue(pattern.content, data, params));\n\n const tooltipContent: Required<TooltipContent> = {\n title: {\n value: patternTitle?.value?.toString(),\n hasShape: false,\n shapeType: undefined,\n shapeHollow: undefined\n },\n content: []\n };\n\n const { maxLineCount = TOOLTIP_MAX_LINE_COUNT } = pattern;\n\n /** title */\n const patternTitleVisible = getTooltipContentValue(patternTitle?.visible, data, params) !== false;\n if (!patternTitle || !patternTitleVisible) {\n tooltipContent.title = {\n hasShape: false,\n visible: false\n };\n } else {\n tooltipContent.title.hasShape = patternTitle.hasShape;\n if (isValid(patternTitle.value)) {\n tooltipContent.title = {\n hasShape: patternTitle.hasShape,\n shapeHollow: patternTitle.shapeHollow\n };\n // 找到第一个可用的datum\n const datum = getFirstDatumFromTooltipData(data);\n tooltipContent.title.value = getTooltipContentValue(patternTitle?.value, datum, params);\n }\n }\n\n /** content */\n if (pattern.activeType === 'mark') {\n for (const content of patternContent ?? []) {\n const oneLineData = getOneLineData((data as IDimensionData[])[0]?.datum[0], content, params);\n if (oneLineData.visible !== false) {\n if (tooltipContent.content.length === maxLineCount - 1) {\n tooltipContent.content.push({\n ...oneLineData,\n ...TOOLTIP_OTHERS_LINE\n });\n break;\n } else if (tooltipContent.content.length < maxLineCount) {\n tooltipContent.content.push(oneLineData);\n } else {\n break;\n }\n }\n }\n } else if (pattern.activeType === 'dimension') {\n for (const { data: d } of data as IDimensionInfo[]) {\n for (const { datum, series } of d) {\n if (!getTooltipActualActiveType(series.tooltipHelper?.spec).includes('dimension')) {\n continue;\n }\n const contentPatterns =\n patternContent?.filter(\n c => isNil(c.seriesId) || c.seriesId === series.id // 匹配对应series\n ) ?? [];\n for (const datumItem of datum) {\n for (const linePattern of contentPatterns) {\n const oneLineData = getOneLineData(datumItem, linePattern, params);\n if (oneLineData.visible === false) {\n continue;\n }\n if (tooltipContent.content.length === maxLineCount - 1) {\n tooltipContent.content.push({\n ...oneLineData,\n ...TOOLTIP_OTHERS_LINE\n });\n break;\n } else if (tooltipContent.content.length < maxLineCount) {\n tooltipContent.content.push(oneLineData);\n } else {\n break;\n }\n }\n if (tooltipContent.content.length >= maxLineCount) {\n break;\n }\n }\n if (tooltipContent.content.length >= maxLineCount) {\n break;\n }\n }\n if (tooltipContent.content.length >= maxLineCount) {\n break;\n }\n }\n }\n\n if (tooltipContent.title) {\n // TODO:对 title shape 的支持目前还不完整,尚没有相关需求\n if (tooltipContent.content.length > 0 && tooltipContent.content[0].shapeType) {\n if (isNil(tooltipContent.title.shapeType)) {\n tooltipContent.title.shapeType = tooltipContent.content[0].shapeType;\n }\n if (isNil(tooltipContent.title.shapeColor)) {\n tooltipContent.title.shapeColor = tooltipContent.content[0].shapeColor;\n }\n } else {\n tooltipContent.title.hasShape = false;\n }\n }\n\n return tooltipContent;\n};\n\n/**\n * 获得tooltip的单行实际显示内容\n * @param datum\n * @param config\n * @returns\n */\nexport const getOneLineData = (\n datum: any,\n config: IToolTipLinePattern,\n params: TooltipHandlerParams\n): IToolTipLineActual => {\n const key = getTooltipContentValue(config.key, datum, params);\n const value = getTooltipContentValue(config.value, datum, params);\n const visible: boolean =\n getTooltipContentValue(config.visible, datum, params) !== false && (isValid(key) || isValid(value));\n const isKeyAdaptive = getTooltipContentValue(config.isKeyAdaptive, datum, params);\n\n const shapeType = getTooltipContentValue(config.shapeType, datum, params);\n const shapeColor = getTooltipContentValue(config.shapeColor, datum, params);\n\n return {\n key,\n value,\n visible,\n isKeyAdaptive,\n hasShape: config.hasShape,\n shapeType: shapeType as any,\n shapeHollow: config.shapeHollow,\n shapeColor\n };\n};\n"]}
@@ -1,33 +1,65 @@
1
- import { cloneDeep, isValid, isNil, merge, array } from "../../../../util";
1
+ import { cloneDeep, isValid, merge, array, isFunction, isNil } from "../../../../util";
2
2
 
3
3
  import { makeDefaultPattern } from "./pattern";
4
4
 
5
+ import { getTooltipActualActiveType } from "../../utils";
6
+
5
7
  export const getTooltipSpecForShow = (activeType, globalSpec, series, dimensionInfo) => {
6
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
8
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
7
9
  const finalSpec = Object.assign(Object.assign({}, globalSpec), {
8
10
  activeType: activeType
9
11
  });
10
12
  let defaultPattern = {}, userPattern = {};
11
13
  if ("mark" === activeType && series) {
12
14
  const seriesSpec = null !== (_b = null === (_a = series.tooltipHelper) || void 0 === _a ? void 0 : _a.spec) && void 0 !== _b ? _b : {};
13
- if (isValid(seriesSpec.visible) || isValid(seriesSpec.activeType) ? finalSpec.visible = !1 !== seriesSpec.visible && !1 !== (null === (_c = seriesSpec.mark) || void 0 === _c ? void 0 : _c.visible) && (isNil(seriesSpec.activeType) || (null === (_e = (_d = array(seriesSpec.activeType)).includes) || void 0 === _e ? void 0 : _e.call(_d, "mark"))) : isValid(globalSpec.visible) || isValid(globalSpec.activeType) ? finalSpec.visible = !1 !== globalSpec.visible && !1 !== (null === (_f = globalSpec.mark) || void 0 === _f ? void 0 : _f.visible) && (isNil(globalSpec.activeType) || (null === (_h = (_g = array(globalSpec.activeType)).includes) || void 0 === _h ? void 0 : _h.call(_g, "mark"))) : finalSpec.visible = !0,
14
- finalSpec.handler = null !== (_k = null !== (_j = seriesSpec.handler) && void 0 !== _j ? _j : globalSpec.handler) && void 0 !== _k ? _k : void 0,
15
- null === (_l = finalSpec.handler) || void 0 === _l ? void 0 : _l.showTooltip) return finalSpec;
16
- defaultPattern = makeDefaultPattern(series, "mark"), userPattern = merge({}, cloneDeep(globalSpec.mark), cloneDeep(seriesSpec.mark));
17
- } else if ("dimension" === activeType && dimensionInfo) {
18
- if (isValid(globalSpec.visible) || isValid(globalSpec.activeType) ? finalSpec.visible = !1 !== globalSpec.visible && !1 !== (null === (_m = globalSpec.dimension) || void 0 === _m ? void 0 : _m.visible) && (isNil(globalSpec.activeType) || (null === (_p = (_o = array(globalSpec.activeType)).includes) || void 0 === _p ? void 0 : _p.call(_o, "dimension"))) : finalSpec.visible = !0,
19
- finalSpec.handler = null !== (_q = globalSpec.handler) && void 0 !== _q ? _q : void 0,
20
- null === (_r = finalSpec.handler) || void 0 === _r ? void 0 : _r.showTooltip) return finalSpec;
21
- const firstSeries = null === (_t = null === (_s = dimensionInfo[0]) || void 0 === _s ? void 0 : _s.data[0]) || void 0 === _t ? void 0 : _t.series;
22
- defaultPattern = firstSeries ? makeDefaultPattern(firstSeries, "dimension", dimensionInfo) : {},
23
- userPattern = null !== (_u = cloneDeep(globalSpec.dimension)) && void 0 !== _u ? _u : {};
15
+ if (isValid(seriesSpec.visible) || isValid(seriesSpec.activeType) ? finalSpec.visible = getTooltipActualActiveType(seriesSpec).includes("mark") : isValid(globalSpec.visible) || isValid(globalSpec.activeType) ? finalSpec.visible = getTooltipActualActiveType(globalSpec).includes("mark") : finalSpec.visible = !0,
16
+ finalSpec.handler = null !== (_d = null !== (_c = seriesSpec.handler) && void 0 !== _c ? _c : globalSpec.handler) && void 0 !== _d ? _d : void 0,
17
+ null === (_e = finalSpec.handler) || void 0 === _e ? void 0 : _e.showTooltip) return finalSpec;
18
+ defaultPattern = null !== (_f = makeDefaultPattern(series, "mark")) && void 0 !== _f ? _f : {},
19
+ userPattern = merge({}, cloneDeep(globalSpec.mark), cloneDeep(seriesSpec.mark));
20
+ } else if ("dimension" === activeType && (null == dimensionInfo ? void 0 : dimensionInfo.length)) {
21
+ const seriesList = dimensionInfo.reduce(((list, cur) => list.concat(cur.data.map((data => data.series)).filter(isValid))), []);
22
+ if (seriesList.every((series => {
23
+ var _a;
24
+ return !getTooltipActualActiveType(null === (_a = series.tooltipHelper) || void 0 === _a ? void 0 : _a.spec).includes("dimension");
25
+ })) ? finalSpec.visible = !1 : isValid(globalSpec.visible) || isValid(globalSpec.activeType) ? finalSpec.visible = getTooltipActualActiveType(globalSpec).includes("dimension") : finalSpec.visible = !0,
26
+ finalSpec.handler = null !== (_g = globalSpec.handler) && void 0 !== _g ? _g : void 0,
27
+ null === (_h = finalSpec.handler) || void 0 === _h ? void 0 : _h.showTooltip) return finalSpec;
28
+ const patternList = [];
29
+ dimensionInfo[0].data.forEach((data => {
30
+ const {series: series} = data, mockDimensionInfo = [ Object.assign(Object.assign({}, dimensionInfo[0]), {
31
+ data: [ data ]
32
+ }) ], pattern = makeDefaultPattern(series, "dimension", mockDimensionInfo);
33
+ pattern && patternList.push(pattern);
34
+ }));
35
+ const defaultPatternContent = [];
36
+ patternList.forEach((({content: content}) => {
37
+ isFunction(content) ? defaultPatternContent.push(content) : defaultPatternContent.push(...array(content));
38
+ })), defaultPattern = Object.assign(Object.assign({}, patternList[0]), {
39
+ content: defaultPatternContent
40
+ });
41
+ let seriesDimensionPattern = {};
42
+ const seriesPatternList = seriesList.filter((series => {
43
+ var _a;
44
+ const spec = null === (_a = series.tooltipHelper) || void 0 === _a ? void 0 : _a.spec;
45
+ return isValid(null == spec ? void 0 : spec.dimension) && getTooltipActualActiveType(spec).includes("dimension");
46
+ })).map((series => series.tooltipHelper.spec.dimension));
47
+ if (seriesPatternList.length) {
48
+ let seriesPatternContent = [];
49
+ seriesPatternList.every((({content: content}) => isNil(content))) ? seriesPatternContent = void 0 : seriesPatternList.forEach((({content: content}) => {
50
+ isNil(content) || (isFunction(content) ? null == seriesPatternContent || seriesPatternContent.push(content) : null == seriesPatternContent || seriesPatternContent.push(...array(content)));
51
+ })), seriesDimensionPattern = Object.assign(Object.assign({}, seriesPatternList[0]), {
52
+ content: seriesPatternContent
53
+ });
54
+ }
55
+ userPattern = merge({}, cloneDeep(globalSpec.dimension), seriesDimensionPattern);
24
56
  }
25
- const titleShape = {
26
- hasShape: null !== (_v = userPattern.hasShape) && void 0 !== _v ? _v : defaultPattern.title.hasShape,
27
- shapeType: null !== (_w = userPattern.shapeType) && void 0 !== _w ? _w : defaultPattern.title.shapeType,
28
- shapeColor: null !== (_x = userPattern.shapeColor) && void 0 !== _x ? _x : defaultPattern.title.shapeColor
57
+ const defaultPatternTitle = defaultPattern.title, titleShape = {
58
+ hasShape: null !== (_j = userPattern.hasShape) && void 0 !== _j ? _j : null == defaultPatternTitle ? void 0 : defaultPatternTitle.hasShape,
59
+ shapeType: null !== (_k = userPattern.shapeType) && void 0 !== _k ? _k : null == defaultPatternTitle ? void 0 : defaultPatternTitle.shapeType,
60
+ shapeColor: null !== (_l = userPattern.shapeColor) && void 0 !== _l ? _l : null == defaultPatternTitle ? void 0 : defaultPatternTitle.shapeColor
29
61
  };
30
- isValid(userPattern.title) ? userPattern.title = Object.assign(Object.assign(Object.assign({}, defaultPattern.title), titleShape), userPattern.title) : userPattern.title = Object.assign(Object.assign({}, defaultPattern.title), titleShape);
62
+ isValid(userPattern.title) ? isFunction(userPattern.title) || (userPattern.title = Object.assign(Object.assign(Object.assign({}, defaultPattern.title), titleShape), userPattern.title)) : userPattern.title = Object.assign(Object.assign({}, defaultPattern.title), titleShape);
31
63
  const getContentShape = defaultContentLine => {
32
64
  var _a, _b, _c;
33
65
  return {
@@ -35,11 +67,16 @@ export const getTooltipSpecForShow = (activeType, globalSpec, series, dimensionI
35
67
  shapeType: null !== (_b = userPattern.shapeType) && void 0 !== _b ? _b : null == defaultContentLine ? void 0 : defaultContentLine.shapeType,
36
68
  shapeColor: null !== (_c = userPattern.shapeColor) && void 0 !== _c ? _c : null == defaultContentLine ? void 0 : defaultContentLine.shapeColor
37
69
  };
38
- };
39
- return isValid(userPattern.content) ? userPattern.content.forEach(((line, i) => {
40
- userPattern.content[i] = Object.assign(Object.assign({}, getContentShape(defaultPattern.content[0])), line);
41
- })) : userPattern.content = defaultPattern.content.map((line => Object.assign(Object.assign({}, line), getContentShape(line)))),
42
- finalSpec[activeType] = Object.assign(Object.assign(Object.assign({}, defaultPattern), userPattern), {
70
+ }, defaultPatternContent = array(defaultPattern.content);
71
+ if (isValid(userPattern.content)) {
72
+ if (!isFunction(userPattern.content)) {
73
+ const userPatternContent = array(userPattern.content);
74
+ userPatternContent.forEach(((line, i) => {
75
+ userPatternContent[i] = Object.assign(Object.assign({}, getContentShape(defaultPatternContent[0])), line);
76
+ }));
77
+ }
78
+ } else userPattern.content = defaultPatternContent.map((line => Object.assign(Object.assign({}, line), getContentShape(line))));
79
+ return finalSpec[activeType] = Object.assign(Object.assign(Object.assign({}, defaultPattern), userPattern), {
43
80
  activeType: activeType
44
81
  }), finalSpec;
45
82
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/utils/get-spec.ts"],"names":[],"mappings":"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","file":"get-spec.js","sourcesContent":["import type { ITooltipSpec } from '../../interface';\nimport type {\n IToolTipLinePattern,\n ITooltipPattern,\n ITooltipShapePattern,\n TooltipActiveType\n} from '../../../../typings';\nimport type { ISeries } from '../../../../series/interface';\nimport { cloneDeep, isValid, isNil, merge, array } from '../../../../util';\nimport { makeDefaultPattern } from './pattern';\nimport type { IDimensionInfo } from '../../../../event/events/dimension/interface';\n\nexport const getTooltipSpecForShow = (\n activeType: TooltipActiveType,\n globalSpec: ITooltipSpec,\n series?: ISeries,\n dimensionInfo?: IDimensionInfo[]\n): ITooltipSpec => {\n // 组装tooltip spec\n const finalSpec = {\n ...globalSpec,\n activeType\n } as ITooltipSpec;\n // 默认的pattern\n let defaultPattern = {} as ITooltipPattern;\n // 用户配置的pattern\n let userPattern = {} as ITooltipPattern;\n\n if (activeType === 'mark' && series) {\n // tooltip spec覆盖优先级: series spec > global spec > default pattern\n const seriesSpec = (series.tooltipHelper?.spec ?? {}) as ITooltipSpec;\n\n // visible\n if (isValid(seriesSpec.visible) || isValid(seriesSpec.activeType)) {\n finalSpec.visible =\n seriesSpec.visible !== false &&\n seriesSpec.mark?.visible !== false &&\n (isNil(seriesSpec.activeType) || array(seriesSpec.activeType).includes?.('mark'));\n } else if (isValid(globalSpec.visible) || isValid(globalSpec.activeType)) {\n finalSpec.visible =\n globalSpec.visible !== false &&\n globalSpec.mark?.visible !== false &&\n (isNil(globalSpec.activeType) || array(globalSpec.activeType).includes?.('mark'));\n } else {\n finalSpec.visible = true;\n }\n\n // 优先使用自定义handler\n finalSpec.handler = seriesSpec.handler ?? globalSpec.handler ?? undefined;\n if (finalSpec.handler?.showTooltip) {\n return finalSpec;\n }\n\n // pattern\n defaultPattern = makeDefaultPattern(series, 'mark');\n userPattern = merge({}, cloneDeep(globalSpec.mark), cloneDeep(seriesSpec.mark));\n } else if (activeType === 'dimension' && dimensionInfo) {\n // dimension目前仅支持global spec\n\n // visible\n if (isValid(globalSpec.visible) || isValid(globalSpec.activeType)) {\n finalSpec.visible =\n globalSpec.visible !== false &&\n globalSpec.dimension?.visible !== false &&\n (isNil(globalSpec.activeType) || array(globalSpec.activeType).includes?.('dimension'));\n } else {\n finalSpec.visible = true;\n }\n\n // 优先使用自定义handler\n finalSpec.handler = globalSpec.handler ?? undefined;\n if (finalSpec.handler?.showTooltip) {\n return finalSpec;\n }\n\n // pattern\n const firstSeries = dimensionInfo[0]?.data[0]?.series;\n defaultPattern = firstSeries ? makeDefaultPattern(firstSeries, 'dimension', dimensionInfo) : {};\n userPattern = cloneDeep(globalSpec.dimension) ?? {};\n }\n\n // 对pattern进行组装\n const titleShape: ITooltipShapePattern = {\n hasShape: userPattern.hasShape ?? defaultPattern.title.hasShape,\n shapeType: userPattern.shapeType ?? defaultPattern.title.shapeType,\n shapeColor: userPattern.shapeColor ?? defaultPattern.title.shapeColor\n };\n if (isValid(userPattern.title)) {\n userPattern.title = {\n ...defaultPattern.title,\n ...titleShape, // shape默认回调实现较复杂,如果用户没有配置则填补默认逻辑\n ...userPattern.title\n };\n } else {\n userPattern.title = {\n ...defaultPattern.title,\n ...titleShape\n };\n }\n\n const getContentShape = (defaultContentLine?: IToolTipLinePattern): ITooltipShapePattern => ({\n hasShape: userPattern.hasShape ?? defaultContentLine?.hasShape,\n shapeType: userPattern.shapeType ?? defaultContentLine?.shapeType,\n shapeColor: userPattern.shapeColor ?? defaultContentLine?.shapeColor\n });\n if (isValid(userPattern.content)) {\n userPattern.content.forEach((line, i) => {\n userPattern.content[i] = {\n ...getContentShape(defaultPattern.content[0]), // shape默认回调实现较复杂,如果用户没有配置则填补默认逻辑\n ...line\n };\n });\n } else {\n userPattern.content = defaultPattern.content.map(line => ({\n ...line,\n ...getContentShape(line)\n }));\n }\n\n finalSpec[activeType] = {\n ...defaultPattern,\n ...userPattern,\n activeType\n };\n\n return finalSpec;\n};\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/utils/get-spec.ts"],"names":[],"mappings":"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","file":"get-spec.js","sourcesContent":["import type { ITooltipSpec } from '../../interface';\nimport type {\n IToolTipLinePattern,\n ITooltipPattern,\n ITooltipShapePattern,\n MaybeArray,\n TooltipActiveType,\n TooltipPatternProperty\n} from '../../../../typings';\nimport type { ISeries } from '../../../../series/interface';\nimport { cloneDeep, isValid, merge, array, isFunction, isNil } from '../../../../util';\nimport { makeDefaultPattern } from './pattern';\nimport type { IDimensionInfo } from '../../../../event/events/dimension/interface';\nimport { getTooltipActualActiveType } from '../../utils';\n\nexport const getTooltipSpecForShow = (\n activeType: TooltipActiveType,\n globalSpec: ITooltipSpec,\n series?: ISeries,\n dimensionInfo?: IDimensionInfo[]\n): ITooltipSpec => {\n // 组装tooltip spec\n const finalSpec = {\n ...globalSpec,\n activeType\n } as ITooltipSpec;\n // 默认的pattern\n let defaultPattern = {} as ITooltipPattern;\n // 用户配置的pattern\n let userPattern = {} as ITooltipPattern;\n\n if (activeType === 'mark' && series) {\n // tooltip spec覆盖优先级: series spec > global spec > default pattern\n const seriesSpec = (series.tooltipHelper?.spec ?? {}) as ITooltipSpec;\n\n // visible\n if (isValid(seriesSpec.visible) || isValid(seriesSpec.activeType)) {\n finalSpec.visible = getTooltipActualActiveType(seriesSpec).includes('mark');\n } else if (isValid(globalSpec.visible) || isValid(globalSpec.activeType)) {\n finalSpec.visible = getTooltipActualActiveType(globalSpec).includes('mark');\n } else {\n finalSpec.visible = true;\n }\n\n // 优先使用自定义handler\n finalSpec.handler = seriesSpec.handler ?? globalSpec.handler ?? undefined;\n if (finalSpec.handler?.showTooltip) {\n return finalSpec;\n }\n\n // pattern\n defaultPattern = makeDefaultPattern(series, 'mark') ?? {};\n userPattern = merge({}, cloneDeep(globalSpec.mark), cloneDeep(seriesSpec.mark));\n } else if (activeType === 'dimension' && dimensionInfo?.length) {\n // tooltip spec覆盖优先级: series spec > global spec > default pattern\n const seriesList = dimensionInfo.reduce(\n (list, cur) => list.concat(cur.data.map(data => data.series).filter(isValid)),\n [] as ISeries[]\n );\n\n // visible\n if (seriesList.every(series => !getTooltipActualActiveType(series.tooltipHelper?.spec).includes('dimension'))) {\n finalSpec.visible = false;\n } else if (isValid(globalSpec.visible) || isValid(globalSpec.activeType)) {\n finalSpec.visible = getTooltipActualActiveType(globalSpec).includes('dimension');\n } else {\n finalSpec.visible = true;\n }\n\n // 优先使用自定义handler\n finalSpec.handler = globalSpec.handler ?? undefined;\n if (finalSpec.handler?.showTooltip) {\n return finalSpec;\n }\n\n // 默认 pattern\n const patternList: ITooltipPattern[] = [];\n dimensionInfo[0].data.forEach(data => {\n const { series } = data;\n const mockDimensionInfo = [\n {\n ...dimensionInfo[0],\n data: [data]\n }\n ] as IDimensionInfo[];\n const pattern = makeDefaultPattern(series, 'dimension', mockDimensionInfo);\n if (pattern) {\n patternList.push(pattern);\n }\n });\n // 拼接默认 tooltip content\n const defaultPatternContent: Array<TooltipPatternProperty<MaybeArray<IToolTipLinePattern>>> = [];\n patternList.forEach(({ content }) => {\n if (isFunction(content)) {\n defaultPatternContent.push(content);\n } else {\n defaultPatternContent.push(...array(content));\n }\n });\n defaultPattern = {\n ...patternList[0],\n content: defaultPatternContent\n };\n\n // 系列 pattern\n let seriesDimensionPattern: ITooltipPattern = {};\n const seriesPatternList = seriesList\n .filter(series => {\n const spec = series.tooltipHelper?.spec;\n return isValid(spec?.dimension) && getTooltipActualActiveType(spec).includes('dimension');\n })\n .map(series => {\n const pattern = series.tooltipHelper.spec!.dimension!;\n return pattern;\n });\n if (seriesPatternList.length) {\n // 拼接系列 tooltip content\n let seriesPatternContent: Array<TooltipPatternProperty<MaybeArray<IToolTipLinePattern>>> | undefined = [];\n if (seriesPatternList.every(({ content }) => isNil(content))) {\n seriesPatternContent = undefined;\n } else {\n seriesPatternList.forEach(({ content }) => {\n if (isNil(content)) {\n return;\n }\n if (isFunction(content)) {\n seriesPatternContent?.push(content);\n } else {\n seriesPatternContent?.push(...array(content));\n }\n });\n }\n seriesDimensionPattern = {\n ...seriesPatternList[0],\n content: seriesPatternContent\n };\n }\n\n userPattern = merge({}, cloneDeep(globalSpec.dimension), seriesDimensionPattern);\n }\n\n // 对pattern进行组装\n const defaultPatternTitle = defaultPattern.title as IToolTipLinePattern | undefined;\n const titleShape: ITooltipShapePattern = {\n hasShape: userPattern.hasShape ?? defaultPatternTitle?.hasShape,\n shapeType: userPattern.shapeType ?? defaultPatternTitle?.shapeType,\n shapeColor: userPattern.shapeColor ?? defaultPatternTitle?.shapeColor\n };\n if (isValid(userPattern.title)) {\n // 排除是回调的情况\n if (!isFunction(userPattern.title)) {\n userPattern.title = {\n ...defaultPattern.title,\n ...titleShape, // shape默认回调实现较复杂,如果用户没有配置则填补默认逻辑\n ...userPattern.title\n };\n }\n } else {\n userPattern.title = {\n ...defaultPattern.title,\n ...titleShape\n };\n }\n\n const getContentShape = (defaultContentLine?: IToolTipLinePattern): ITooltipShapePattern => ({\n hasShape: userPattern.hasShape ?? defaultContentLine?.hasShape,\n shapeType: userPattern.shapeType ?? defaultContentLine?.shapeType,\n shapeColor: userPattern.shapeColor ?? defaultContentLine?.shapeColor\n });\n const defaultPatternContent = array(defaultPattern.content) as IToolTipLinePattern[];\n if (isValid(userPattern.content)) {\n // 排除是回调的情况\n if (!isFunction(userPattern.content)) {\n const userPatternContent = array(userPattern.content);\n userPatternContent.forEach((line, i) => {\n userPatternContent[i] = {\n ...getContentShape(defaultPatternContent[0]), // shape默认回调实现较复杂,如果用户没有配置则填补默认逻辑\n ...line\n };\n });\n }\n } else {\n userPattern.content = defaultPatternContent.map(line => ({\n ...line,\n ...getContentShape(line)\n }));\n }\n\n finalSpec[activeType] = {\n ...defaultPattern,\n ...userPattern,\n activeType\n };\n\n return finalSpec;\n};\n"]}
@@ -1,3 +1,4 @@
1
+ import type { ITheme } from '../../../../theme';
1
2
  import type { ITooltipTextTheme } from '../../interface';
2
3
  import type { ITextStyle } from '../interface';
3
- export declare function getTextAttributes(style: ITooltipTextTheme, fontFamily: string): ITextStyle;
4
+ export declare function getTextAttributes(style?: ITooltipTextTheme, globalTheme?: ITheme): ITextStyle;
@@ -1,16 +1,16 @@
1
1
  import { DEFAULT_TEXT_FONT_FAMILY } from "../../../../theme";
2
2
 
3
- export function getTextAttributes(style = {}, fontFamily) {
4
- var _a, _b;
3
+ export function getTextAttributes(style = {}, globalTheme) {
4
+ var _a, _b, _c;
5
5
  return {
6
6
  fill: style.fontColor,
7
7
  textAlign: style.textAlign,
8
8
  textBaseline: style.textBaseline,
9
- fontFamily: null !== (_b = null !== (_a = style.fontFamily) && void 0 !== _a ? _a : fontFamily) && void 0 !== _b ? _b : DEFAULT_TEXT_FONT_FAMILY,
9
+ fontFamily: null !== (_b = null !== (_a = style.fontFamily) && void 0 !== _a ? _a : null == globalTheme ? void 0 : globalTheme.fontFamily) && void 0 !== _b ? _b : DEFAULT_TEXT_FONT_FAMILY,
10
10
  fontSize: style.fontSize,
11
11
  fontWeight: style.fontWeight,
12
12
  lineHeight: style.lineHeight,
13
- spacing: style.spacing
13
+ spacing: null !== (_c = style.spacing) && void 0 !== _c ? _c : 10
14
14
  };
15
15
  }
16
16
  //# sourceMappingURL=style.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/utils/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,MAAM,UAAU,iBAAiB,CAAC,QAA2B,EAAE,EAAE,UAAkB;;IACjF,MAAM,KAAK,GAAe;QACxB,IAAI,EAAE,KAAK,CAAC,SAAS;QACrB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,UAAU,EAAE,MAAA,MAAA,KAAK,CAAC,UAAU,mCAAI,UAAU,mCAAI,wBAAwB;QACtE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC","file":"style.js","sourcesContent":["import { DEFAULT_TEXT_FONT_FAMILY } from '../../../../theme';\nimport type { ITooltipTextTheme } from '../../interface';\nimport type { ITextStyle } from '../interface';\n\nexport function getTextAttributes(style: ITooltipTextTheme = {}, fontFamily: string) {\n const attrs: ITextStyle = {\n fill: style.fontColor,\n textAlign: style.textAlign,\n textBaseline: style.textBaseline,\n fontFamily: style.fontFamily ?? fontFamily ?? DEFAULT_TEXT_FONT_FAMILY,\n fontSize: style.fontSize,\n fontWeight: style.fontWeight,\n lineHeight: style.lineHeight,\n spacing: style.spacing\n };\n return attrs;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/utils/style.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,MAAM,UAAU,iBAAiB,CAAC,QAA2B,EAAE,EAAE,WAAoB;;IACnF,MAAM,KAAK,GAAe;QACxB,IAAI,EAAE,KAAK,CAAC,SAAS;QACrB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,UAAU,EAAE,MAAA,MAAA,KAAK,CAAC,UAAU,mCAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,mCAAI,wBAAwB;QACnF,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE;KAC7B,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC","file":"style.js","sourcesContent":["import type { ITheme } from '../../../../theme';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_TEXT_FONT_FAMILY } from '../../../../theme';\nimport type { ITooltipTextTheme } from '../../interface';\nimport type { ITextStyle } from '../interface';\n\nexport function getTextAttributes(style: ITooltipTextTheme = {}, globalTheme?: ITheme) {\n const attrs: ITextStyle = {\n fill: style.fontColor,\n textAlign: style.textAlign,\n textBaseline: style.textBaseline,\n fontFamily: style.fontFamily ?? globalTheme?.fontFamily ?? DEFAULT_TEXT_FONT_FAMILY,\n fontSize: style.fontSize,\n fontWeight: style.fontWeight,\n lineHeight: style.lineHeight,\n spacing: style.spacing ?? 10\n };\n return attrs;\n}\n"]}
@@ -44,9 +44,11 @@ export declare class Tooltip extends BaseComponent {
44
44
  protected _getMouseEventData: (params: BaseEventParams) => TotalMouseEventData;
45
45
  protected _hideTooltipByHandler: (params: TooltipHandlerParams) => void;
46
46
  protected _initTheme(theme?: any): void;
47
+ reInit(theme?: any): void;
47
48
  setAttrFromSpec(): void;
48
49
  showTooltip(datum: Datum, options: IShowTooltipOption): false | "none" | TooltipActiveType;
49
50
  hideTooltip(): boolean;
50
51
  private _isSameAsCacheInfo;
51
- private _isPointInChart;
52
+ private _isPointerInChart;
53
+ private _isPointerOnTooltip;
52
54
  }
@@ -29,23 +29,16 @@ export class Tooltip extends BaseComponent {
29
29
  }, this.handleMouseOut = params => {
30
30
  if (this._alwaysShow) return;
31
31
  const {clientX: clientX, clientY: clientY} = params.event;
32
- isTrueBrowser(this._option.mode) && this._isPointInChart({
32
+ isTrueBrowser(this._option.mode) && (this._isPointerInChart({
33
33
  x: clientX,
34
34
  y: clientY
35
- }) || this.handleChartMouseOut(params);
35
+ }) || this._isPointerOnTooltip(params)) || this.handleChartMouseOut(params);
36
36
  }, this.handleChartMouseOut = params => {
37
37
  this._alwaysShow || "none" !== this._spec.triggerOff && (this._hideTooltipByHandler(Object.assign({}, params)),
38
38
  this._cacheInfo = void 0);
39
39
  }, this.handleMouseMove = params => {
40
- var _a, _b;
41
40
  if (this._alwaysShow) return;
42
- if (this._spec.enterable && "html" === this._spec.renderMode) {
43
- const nativeEvent = params.event.nativeEvent;
44
- let target = nativeEvent.target;
45
- nativeEvent.composedPath && nativeEvent.composedPath().length > 0 && (target = nativeEvent.composedPath()[0]);
46
- const container = null === (_b = null === (_a = this.tooltipHandler) || void 0 === _a ? void 0 : _a.getTooltipContainer) || void 0 === _b ? void 0 : _b.call(_a);
47
- if (isValid(container) && hasParentElement(target, container)) return;
48
- }
41
+ if (this._isPointerOnTooltip(params)) return;
49
42
  const mouseEventData = this._getMouseEventData(params), {tooltipInfo: {dimension: dimensionInfo}, ignore: {mark: ignoreMark, dimension: ignoreDimension}} = mouseEventData;
50
43
  let markTooltipSuccess = !1, dimensionTooltipSuccess = !1;
51
44
  markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params),
@@ -113,7 +106,7 @@ export class Tooltip extends BaseComponent {
113
106
  const renderMode = null !== (_a = this._spec.renderMode) && void 0 !== _a ? _a : "html", userTooltipHandler = this._option.globalInstance.getTooltipHandlerByUser();
114
107
  if (userTooltipHandler) this.tooltipHandler = userTooltipHandler; else {
115
108
  const Handler = "canvas" === renderMode ? CanvasTooltipHandler : DomTooltipHandler, id = `${this._spec.className}-${null !== (_b = this._option.globalInstance.id) && void 0 !== _b ? _b : 0}-${null !== (_c = this._option.specIndex) && void 0 !== _c ? _c : 0}`;
116
- this.tooltipHandler = new Handler(this._spec, id, this);
109
+ this.tooltipHandler = new Handler(id, this);
117
110
  }
118
111
  }
119
112
  initProcessor() {
@@ -127,17 +120,25 @@ export class Tooltip extends BaseComponent {
127
120
  const trigger = null !== (_a = this._spec.trigger) && void 0 !== _a ? _a : "hover", mode = this._option.mode;
128
121
  "hover" === trigger ? (this.mountEvent("pointermove", {
129
122
  level: Event_Bubble_Level.chart
130
- }, this.handleMouseMove), this.mountEvent("pointerleave", {
131
- level: Event_Bubble_Level.chart
132
- }, this.handleMouseOut), (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) && this.mountEvent("pointerdown", {
123
+ }, this.handleMouseMove), (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) && (this.mountEvent("pointerdown", {
133
124
  level: Event_Bubble_Level.chart
134
- }, this.handleMouseMove)) : "click" === trigger && this.mountEvent("pointertap", {
125
+ }, this.handleMouseMove), this.mountEvent("pointerup", {
126
+ source: "window"
127
+ }, this.handleMouseOut)), this.mountEvent("pointermove", {
128
+ source: "window"
129
+ }, this.handleMouseOut)) : "click" === trigger && (this.mountEvent("pointertap", {
135
130
  level: Event_Bubble_Level.chart
136
- }, this.handleMouseMove);
131
+ }, this.handleMouseMove), this.mountEvent("pointerup", {
132
+ source: "window"
133
+ }, this.handleMouseOut));
137
134
  }
138
135
  _initTheme(theme) {
139
136
  super._initTheme(theme), this._spec.style = merge({}, this._theme, this._originalSpec.style);
140
137
  }
138
+ reInit(theme) {
139
+ var _a, _b;
140
+ super.reInit(theme), null === (_b = null === (_a = this.tooltipHandler) || void 0 === _a ? void 0 : _a.reInit) || void 0 === _b || _b.call(_a);
141
+ }
141
142
  setAttrFromSpec() {
142
143
  var _a;
143
144
  super.setAttrFromSpec();
@@ -186,14 +187,28 @@ export class Tooltip extends BaseComponent {
186
187
  }
187
188
  if (isDimensionInfo(this._cacheInfo)) return !1;
188
189
  const prevInfo = this._cacheInfo;
189
- return nextInfo.datum === prevInfo.datum && nextInfo.mark === prevInfo.mark && nextInfo.series === prevInfo.series;
190
+ return (null == nextInfo ? void 0 : nextInfo.datum) === prevInfo.datum && (null == nextInfo ? void 0 : nextInfo.mark) === prevInfo.mark && (null == nextInfo ? void 0 : nextInfo.series) === prevInfo.series;
190
191
  }
191
- _isPointInChart(point) {
192
+ _isPointerInChart(point) {
192
193
  const globalInstance = this._option.globalInstance, chart = globalInstance.getChart();
193
194
  if (!chart) return !1;
194
195
  const {x: x, y: y} = point, container = globalInstance.getContainer(), {x: chartX, y: chartY} = getElementAbsolutePosition(container), {x: scrollOffsetX, y: scrollOffsetY} = getElementAbsoluteScrollOffset(container), canvasRect = chart.getCanvasRect(), chartWidth = null == canvasRect ? void 0 : canvasRect.width, chartHeight = null == canvasRect ? void 0 : canvasRect.height;
195
196
  return x >= chartX - scrollOffsetX && x <= chartX + chartWidth - scrollOffsetX && y >= chartY - scrollOffsetY && y <= chartY + chartHeight - scrollOffsetY;
196
197
  }
198
+ _isPointerOnTooltip(params) {
199
+ var _a, _b;
200
+ if (this._spec.enterable && "html" === this._spec.renderMode) {
201
+ const {event: event} = params;
202
+ let target;
203
+ if (isValid(event.nativeEvent)) {
204
+ const nativeEvent = event.nativeEvent;
205
+ target = nativeEvent.target, nativeEvent.composedPath && nativeEvent.composedPath().length > 0 && (target = nativeEvent.composedPath()[0]);
206
+ } else target = event.target;
207
+ const container = null === (_b = null === (_a = this.tooltipHandler) || void 0 === _a ? void 0 : _a.getTooltipContainer) || void 0 === _b ? void 0 : _b.call(_a);
208
+ if (isValid(container) && isValid(target) && hasParentElement(target, container)) return !0;
209
+ }
210
+ return !1;
211
+ }
197
212
  }
198
213
 
199
214
  Tooltip.type = ComponentTypeEnum.tooltip;