@visactor/vgrammar-core 0.7.7 → 0.8.0

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 (542) hide show
  1. package/cjs/component/axis.js.map +1 -1
  2. package/cjs/component/datazoom.d.ts +7 -4
  3. package/cjs/component/datazoom.js +21 -43
  4. package/cjs/component/datazoom.js.map +1 -1
  5. package/cjs/component/grid.js.map +1 -1
  6. package/cjs/component/index.d.ts +0 -2
  7. package/cjs/component/index.js +1 -19
  8. package/cjs/component/index.js.map +1 -1
  9. package/cjs/component/label.js.map +1 -1
  10. package/cjs/component/legend.d.ts +1 -3
  11. package/cjs/component/legend.js +5 -26
  12. package/cjs/component/legend.js.map +1 -1
  13. package/cjs/component/player.d.ts +1 -2
  14. package/cjs/component/player.js +15 -31
  15. package/cjs/component/player.js.map +1 -1
  16. package/cjs/component/scale.d.ts +1 -0
  17. package/cjs/component/scale.js +3 -0
  18. package/cjs/component/scale.js.map +1 -1
  19. package/cjs/component/scrollbar.d.ts +3 -4
  20. package/cjs/component/scrollbar.js +12 -54
  21. package/cjs/component/scrollbar.js.map +1 -1
  22. package/cjs/component/slider.d.ts +2 -5
  23. package/cjs/component/slider.js +4 -26
  24. package/cjs/component/slider.js.map +1 -1
  25. package/cjs/component/title.js.map +1 -1
  26. package/cjs/core/factory.d.ts +6 -3
  27. package/cjs/core/factory.js +9 -2
  28. package/cjs/core/factory.js.map +1 -1
  29. package/cjs/env.d.ts +1 -0
  30. package/cjs/env.js +20 -0
  31. package/cjs/env.js.map +1 -0
  32. package/cjs/glyph/index.js +2 -1
  33. package/cjs/glyph/link-path.js +1 -2
  34. package/cjs/graph/animation/animate.js +25 -19
  35. package/cjs/graph/animation/animate.js.map +1 -1
  36. package/cjs/graph/animation/animation/grow-cartesian.js.map +1 -1
  37. package/cjs/graph/animation/animator.js +4 -4
  38. package/cjs/graph/animation/animator.js.map +1 -1
  39. package/cjs/graph/animation/attribute.d.ts +2 -2
  40. package/cjs/graph/animation/attribute.js +12 -12
  41. package/cjs/graph/animation/attribute.js.map +1 -1
  42. package/cjs/graph/animation/morph.js +4 -4
  43. package/cjs/graph/animation/morph.js.map +1 -1
  44. package/cjs/graph/attributes/index.js +1 -1
  45. package/cjs/graph/attributes/index.js.map +1 -1
  46. package/cjs/graph/canvas-renderer.d.ts +1 -1
  47. package/cjs/graph/canvas-renderer.js +5 -5
  48. package/cjs/graph/canvas-renderer.js.map +1 -1
  49. package/cjs/graph/element.d.ts +1 -1
  50. package/cjs/graph/element.js +4 -4
  51. package/cjs/graph/element.js.map +1 -1
  52. package/cjs/graph/enums.d.ts +25 -8
  53. package/cjs/graph/enums.js +23 -14
  54. package/cjs/graph/enums.js.map +1 -1
  55. package/cjs/graph/glyph-element.d.ts +1 -1
  56. package/cjs/graph/glyph-element.js.map +1 -1
  57. package/cjs/graph/mark/encode.d.ts +0 -3
  58. package/cjs/graph/mark/encode.js +3 -12
  59. package/cjs/graph/mark/encode.js.map +1 -1
  60. package/cjs/graph/mark/large-rects.d.ts +2 -2
  61. package/cjs/graph/mark/large-rects.js +3 -3
  62. package/cjs/graph/mark/large-rects.js.map +1 -1
  63. package/cjs/graph/mark/large-symbols.d.ts +2 -2
  64. package/cjs/graph/mark/large-symbols.js +3 -3
  65. package/cjs/graph/mark/large-symbols.js.map +1 -1
  66. package/cjs/graph/util/env.js +2 -2
  67. package/cjs/graph/util/env.js.map +1 -1
  68. package/cjs/graph/util/events-extend.d.ts +1 -1
  69. package/cjs/graph/util/events-extend.js +1 -1
  70. package/cjs/graph/util/events-extend.js.map +1 -1
  71. package/cjs/graph/util/graphic.d.ts +3 -3
  72. package/cjs/graph/util/graphic.js +21 -21
  73. package/cjs/graph/util/graphic.js.map +1 -1
  74. package/cjs/index.d.ts +5 -1
  75. package/cjs/index.js +13 -3
  76. package/cjs/index.js.map +1 -1
  77. package/cjs/interactions/base-tooltip.d.ts +29 -0
  78. package/cjs/interactions/base-tooltip.js +74 -0
  79. package/cjs/interactions/base-tooltip.js.map +1 -0
  80. package/cjs/interactions/base.d.ts +14 -0
  81. package/cjs/interactions/base.js +41 -0
  82. package/cjs/interactions/base.js.map +1 -0
  83. package/cjs/interactions/brush-active.d.ts +17 -0
  84. package/cjs/interactions/brush-active.js +27 -0
  85. package/cjs/interactions/brush-active.js.map +1 -0
  86. package/cjs/interactions/brush-base.d.ts +43 -0
  87. package/cjs/interactions/brush-base.js +106 -0
  88. package/cjs/interactions/brush-base.js.map +1 -0
  89. package/cjs/interactions/brush-filter.d.ts +24 -0
  90. package/cjs/interactions/brush-filter.js +34 -0
  91. package/cjs/interactions/brush-filter.js.map +1 -0
  92. package/cjs/interactions/brush-highlight.d.ts +17 -0
  93. package/cjs/interactions/brush-highlight.js +34 -0
  94. package/cjs/interactions/brush-highlight.js.map +1 -0
  95. package/cjs/interactions/crosshair.d.ts +53 -0
  96. package/cjs/{component → interactions}/crosshair.js +80 -79
  97. package/cjs/interactions/crosshair.js.map +1 -0
  98. package/cjs/interactions/datazoom-filter.d.ts +13 -0
  99. package/cjs/interactions/datazoom-filter.js +42 -0
  100. package/cjs/interactions/datazoom-filter.js.map +1 -0
  101. package/cjs/interactions/dimension-tooltip.d.ts +18 -0
  102. package/cjs/interactions/dimension-tooltip.js +99 -0
  103. package/cjs/interactions/dimension-tooltip.js.map +1 -0
  104. package/cjs/interactions/drill-down.d.ts +25 -0
  105. package/cjs/interactions/drill-down.js +48 -0
  106. package/cjs/interactions/drill-down.js.map +1 -0
  107. package/cjs/interactions/element-active-by-legend.d.ts +17 -0
  108. package/cjs/interactions/element-active-by-legend.js +44 -0
  109. package/cjs/interactions/element-active-by-legend.js.map +1 -0
  110. package/cjs/interactions/element-active.d.ts +16 -0
  111. package/cjs/interactions/element-active.js +33 -0
  112. package/cjs/interactions/element-active.js.map +1 -0
  113. package/cjs/interactions/element-highlight-by-group.d.ts +17 -0
  114. package/cjs/interactions/element-highlight-by-group.js +53 -0
  115. package/cjs/interactions/element-highlight-by-group.js.map +1 -0
  116. package/cjs/interactions/element-highlight-by-key.d.ts +17 -0
  117. package/cjs/interactions/element-highlight-by-key.js +53 -0
  118. package/cjs/interactions/element-highlight-by-key.js.map +1 -0
  119. package/cjs/interactions/element-highlight-by-legend.d.ts +17 -0
  120. package/cjs/interactions/element-highlight-by-legend.js +47 -0
  121. package/cjs/interactions/element-highlight-by-legend.js.map +1 -0
  122. package/cjs/interactions/element-highlight-by-name.d.ts +18 -0
  123. package/cjs/interactions/element-highlight-by-name.js +59 -0
  124. package/cjs/interactions/element-highlight-by-name.js.map +1 -0
  125. package/cjs/interactions/element-highlight.d.ts +17 -0
  126. package/cjs/interactions/element-highlight.js +48 -0
  127. package/cjs/interactions/element-highlight.js.map +1 -0
  128. package/cjs/interactions/element-select.d.ts +18 -0
  129. package/cjs/interactions/element-select.js +42 -0
  130. package/cjs/interactions/element-select.js.map +1 -0
  131. package/cjs/interactions/filter.d.ts +20 -0
  132. package/cjs/interactions/filter.js +37 -0
  133. package/cjs/interactions/filter.js.map +1 -0
  134. package/cjs/interactions/fish-eye.d.ts +38 -0
  135. package/cjs/interactions/fish-eye.js +109 -0
  136. package/cjs/interactions/fish-eye.js.map +1 -0
  137. package/cjs/interactions/index.d.ts +50 -0
  138. package/cjs/interactions/index.js +386 -0
  139. package/cjs/interactions/index.js.map +1 -0
  140. package/cjs/interactions/legend-filter.d.ts +13 -0
  141. package/cjs/interactions/legend-filter.js +33 -0
  142. package/cjs/interactions/legend-filter.js.map +1 -0
  143. package/cjs/interactions/player-filter.d.ts +14 -0
  144. package/cjs/interactions/player-filter.js +32 -0
  145. package/cjs/interactions/player-filter.js.map +1 -0
  146. package/cjs/interactions/roll-up.d.ts +16 -0
  147. package/cjs/interactions/roll-up.js +47 -0
  148. package/cjs/interactions/roll-up.js.map +1 -0
  149. package/cjs/interactions/scrollbar-filter.d.ts +13 -0
  150. package/cjs/interactions/scrollbar-filter.js +54 -0
  151. package/cjs/interactions/scrollbar-filter.js.map +1 -0
  152. package/cjs/interactions/slider-filter.d.ts +13 -0
  153. package/cjs/interactions/slider-filter.js +32 -0
  154. package/cjs/interactions/slider-filter.js.map +1 -0
  155. package/cjs/interactions/tooltip.d.ts +15 -0
  156. package/cjs/interactions/tooltip.js +62 -0
  157. package/cjs/interactions/tooltip.js.map +1 -0
  158. package/cjs/interactions/view-drag-mixin.d.ts +22 -0
  159. package/cjs/interactions/view-drag-mixin.js +52 -0
  160. package/cjs/interactions/view-drag-mixin.js.map +1 -0
  161. package/cjs/interactions/view-drag.d.ts +19 -0
  162. package/cjs/interactions/view-drag.js +49 -0
  163. package/cjs/interactions/view-drag.js.map +1 -0
  164. package/cjs/interactions/view-navigation-base.d.ts +17 -0
  165. package/cjs/interactions/view-navigation-base.js +81 -0
  166. package/cjs/interactions/view-navigation-base.js.map +1 -0
  167. package/cjs/interactions/view-roam.d.ts +30 -0
  168. package/cjs/interactions/view-roam.js +93 -0
  169. package/cjs/interactions/view-roam.js.map +1 -0
  170. package/cjs/interactions/view-scroll-mixin.d.ts +10 -0
  171. package/cjs/interactions/view-scroll-mixin.js +45 -0
  172. package/cjs/interactions/view-scroll-mixin.js.map +1 -0
  173. package/cjs/interactions/view-scroll.d.ts +17 -0
  174. package/cjs/interactions/view-scroll.js +37 -0
  175. package/cjs/interactions/view-scroll.js.map +1 -0
  176. package/cjs/interactions/view-utils.d.ts +14 -0
  177. package/cjs/interactions/view-utils.js +73 -0
  178. package/cjs/interactions/view-utils.js.map +1 -0
  179. package/cjs/interactions/view-zoom-mixin.d.ts +29 -0
  180. package/cjs/interactions/view-zoom-mixin.js +77 -0
  181. package/cjs/interactions/view-zoom-mixin.js.map +1 -0
  182. package/cjs/interactions/view-zoom.d.ts +23 -0
  183. package/cjs/interactions/view-zoom.js +53 -0
  184. package/cjs/interactions/view-zoom.js.map +1 -0
  185. package/cjs/parse/coordinate.js +1 -1
  186. package/cjs/parse/event.d.ts +2 -0
  187. package/cjs/parse/event.js +8 -4
  188. package/cjs/parse/event.js.map +1 -1
  189. package/cjs/parse/mark.js +1 -1
  190. package/cjs/parse/option.js +2 -1
  191. package/cjs/parse/scale.js +1 -1
  192. package/cjs/parse/transform.js +1 -1
  193. package/cjs/parse/util.js +1 -1
  194. package/cjs/parse/view.js +1 -1
  195. package/cjs/semantic-marks/cell.d.ts +1 -1
  196. package/cjs/semantic-marks/cell.js +4 -4
  197. package/cjs/semantic-marks/cell.js.map +1 -1
  198. package/cjs/semantic-marks/interval.d.ts +1 -1
  199. package/cjs/semantic-marks/interval.js +1 -1
  200. package/cjs/semantic-marks/text.js +1 -1
  201. package/cjs/theme/dark.js +1 -1
  202. package/cjs/theme/default.js +1 -1
  203. package/cjs/theme/theme-manager.js +1 -1
  204. package/cjs/transforms/index.js +1 -1
  205. package/cjs/transforms/mark/dodge.js +4 -4
  206. package/cjs/transforms/mark/dodge.js.map +1 -1
  207. package/cjs/transforms/mark/jitter.js +2 -2
  208. package/cjs/transforms/mark/jitter.js.map +1 -1
  209. package/cjs/types/animate.d.ts +1 -1
  210. package/cjs/types/animate.js +1 -1
  211. package/cjs/types/animate.js.map +1 -1
  212. package/cjs/types/base.js +1 -1
  213. package/cjs/types/component.d.ts +16 -88
  214. package/cjs/types/component.js +1 -1
  215. package/cjs/types/component.js.map +1 -1
  216. package/cjs/types/coordinate.js +1 -1
  217. package/cjs/types/data.js +2 -1
  218. package/cjs/types/dataflow.js +1 -1
  219. package/cjs/types/element.d.ts +1 -1
  220. package/cjs/types/element.js +1 -1
  221. package/cjs/types/element.js.map +1 -1
  222. package/cjs/types/event.d.ts +11 -4
  223. package/cjs/types/event.js +1 -1
  224. package/cjs/types/event.js.map +1 -1
  225. package/cjs/types/glyph.js +1 -1
  226. package/cjs/types/grammar.d.ts +6 -2
  227. package/cjs/types/grammar.js +1 -1
  228. package/cjs/types/grammar.js.map +1 -1
  229. package/cjs/types/hooks.js +1 -1
  230. package/cjs/types/index.d.ts +1 -0
  231. package/cjs/types/index.js +3 -2
  232. package/cjs/types/index.js.map +1 -1
  233. package/cjs/types/interaction.d.ts +353 -0
  234. package/cjs/types/interaction.js +6 -0
  235. package/cjs/types/interaction.js.map +1 -0
  236. package/cjs/types/mark.d.ts +2 -3
  237. package/cjs/types/mark.js.map +1 -1
  238. package/cjs/types/morph.d.ts +1 -1
  239. package/cjs/types/morph.js.map +1 -1
  240. package/cjs/types/plot.d.ts +1 -1
  241. package/cjs/types/plot.js.map +1 -1
  242. package/cjs/types/renderer.d.ts +1 -1
  243. package/cjs/types/renderer.js.map +1 -1
  244. package/cjs/types/theme.d.ts +1 -1
  245. package/cjs/types/theme.js.map +1 -1
  246. package/cjs/types/view.d.ts +13 -14
  247. package/cjs/types/view.js.map +1 -1
  248. package/cjs/util/scale.d.ts +4 -0
  249. package/cjs/util/scale.js +24 -0
  250. package/cjs/util/scale.js.map +1 -0
  251. package/cjs/util/text.d.ts +1 -1
  252. package/cjs/util/text.js +3 -3
  253. package/cjs/util/text.js.map +1 -1
  254. package/cjs/view/View.d.ts +9 -13
  255. package/cjs/view/View.js +49 -74
  256. package/cjs/view/View.js.map +1 -1
  257. package/cjs/view/component.d.ts +2 -6
  258. package/cjs/view/component.js +1 -19
  259. package/cjs/view/component.js.map +1 -1
  260. package/cjs/view/dataflow.js +1 -1
  261. package/cjs/view/dataflow.js.map +1 -1
  262. package/cjs/view/events.d.ts +1 -1
  263. package/cjs/view/mark.d.ts +2 -2
  264. package/cjs/view/mark.js +12 -10
  265. package/cjs/view/mark.js.map +1 -1
  266. package/cjs/view/scale.d.ts +7 -1
  267. package/cjs/view/scale.js +17 -3
  268. package/cjs/view/scale.js.map +1 -1
  269. package/es/component/axis.js.map +1 -1
  270. package/es/component/datazoom.d.ts +7 -4
  271. package/es/component/datazoom.js +26 -42
  272. package/es/component/datazoom.js.map +1 -1
  273. package/es/component/grid.js.map +1 -1
  274. package/es/component/index.d.ts +0 -2
  275. package/es/component/index.js +0 -4
  276. package/es/component/index.js.map +1 -1
  277. package/es/component/label.js.map +1 -1
  278. package/es/component/legend.d.ts +1 -3
  279. package/es/component/legend.js +11 -26
  280. package/es/component/legend.js.map +1 -1
  281. package/es/component/player.d.ts +1 -2
  282. package/es/component/player.js +17 -30
  283. package/es/component/player.js.map +1 -1
  284. package/es/component/scale.d.ts +1 -0
  285. package/es/component/scale.js +3 -0
  286. package/es/component/scale.js.map +1 -1
  287. package/es/component/scrollbar.d.ts +3 -4
  288. package/es/component/scrollbar.js +17 -53
  289. package/es/component/scrollbar.js.map +1 -1
  290. package/es/component/slider.d.ts +2 -5
  291. package/es/component/slider.js +9 -25
  292. package/es/component/slider.js.map +1 -1
  293. package/es/component/title.js.map +1 -1
  294. package/es/core/factory.d.ts +6 -3
  295. package/es/core/factory.js +9 -2
  296. package/es/core/factory.js.map +1 -1
  297. package/es/env.d.ts +1 -0
  298. package/es/env.js +1 -0
  299. package/es/env.js.map +1 -0
  300. package/es/glyph/index.js +2 -1
  301. package/es/glyph/link-path.js +1 -2
  302. package/es/graph/animation/animate.js +24 -19
  303. package/es/graph/animation/animate.js.map +1 -1
  304. package/es/graph/animation/animation/grow-cartesian.js.map +1 -1
  305. package/es/graph/animation/animator.js +1 -1
  306. package/es/graph/animation/animator.js.map +1 -1
  307. package/es/graph/animation/attribute.d.ts +2 -2
  308. package/es/graph/animation/attribute.js +7 -7
  309. package/es/graph/animation/attribute.js.map +1 -1
  310. package/es/graph/animation/morph.js +1 -1
  311. package/es/graph/animation/morph.js.map +1 -1
  312. package/es/graph/attributes/index.js +1 -1
  313. package/es/graph/attributes/index.js.map +1 -1
  314. package/es/graph/canvas-renderer.d.ts +1 -1
  315. package/es/graph/canvas-renderer.js +3 -1
  316. package/es/graph/canvas-renderer.js.map +1 -1
  317. package/es/graph/element.d.ts +1 -1
  318. package/es/graph/element.js +3 -3
  319. package/es/graph/element.js.map +1 -1
  320. package/es/graph/enums.d.ts +25 -8
  321. package/es/graph/enums.js +27 -11
  322. package/es/graph/enums.js.map +1 -1
  323. package/es/graph/glyph-element.d.ts +1 -1
  324. package/es/graph/glyph-element.js.map +1 -1
  325. package/es/graph/mark/encode.d.ts +0 -3
  326. package/es/graph/mark/encode.js +0 -10
  327. package/es/graph/mark/encode.js.map +1 -1
  328. package/es/graph/mark/large-rects.d.ts +2 -2
  329. package/es/graph/mark/large-rects.js +1 -1
  330. package/es/graph/mark/large-rects.js.map +1 -1
  331. package/es/graph/mark/large-symbols.d.ts +2 -2
  332. package/es/graph/mark/large-symbols.js +1 -1
  333. package/es/graph/mark/large-symbols.js.map +1 -1
  334. package/es/graph/util/env.js +1 -1
  335. package/es/graph/util/env.js.map +1 -1
  336. package/es/graph/util/events-extend.d.ts +1 -1
  337. package/es/graph/util/events-extend.js +1 -1
  338. package/es/graph/util/events-extend.js.map +1 -1
  339. package/es/graph/util/graphic.d.ts +3 -3
  340. package/es/graph/util/graphic.js +1 -1
  341. package/es/graph/util/graphic.js.map +1 -1
  342. package/es/index.d.ts +5 -1
  343. package/es/index.js +11 -2
  344. package/es/index.js.map +1 -1
  345. package/es/interactions/base-tooltip.d.ts +29 -0
  346. package/es/interactions/base-tooltip.js +73 -0
  347. package/es/interactions/base-tooltip.js.map +1 -0
  348. package/es/interactions/base.d.ts +14 -0
  349. package/es/interactions/base.js +32 -0
  350. package/es/interactions/base.js.map +1 -0
  351. package/es/interactions/brush-active.d.ts +17 -0
  352. package/es/interactions/brush-active.js +23 -0
  353. package/es/interactions/brush-active.js.map +1 -0
  354. package/es/interactions/brush-base.d.ts +43 -0
  355. package/es/interactions/brush-base.js +103 -0
  356. package/es/interactions/brush-base.js.map +1 -0
  357. package/es/interactions/brush-filter.d.ts +24 -0
  358. package/es/interactions/brush-filter.js +33 -0
  359. package/es/interactions/brush-filter.js.map +1 -0
  360. package/es/interactions/brush-highlight.d.ts +17 -0
  361. package/es/interactions/brush-highlight.js +31 -0
  362. package/es/interactions/brush-highlight.js.map +1 -0
  363. package/es/interactions/crosshair.d.ts +53 -0
  364. package/es/{component → interactions}/crosshair.js +82 -81
  365. package/es/interactions/crosshair.js.map +1 -0
  366. package/es/interactions/datazoom-filter.d.ts +13 -0
  367. package/es/interactions/datazoom-filter.js +40 -0
  368. package/es/interactions/datazoom-filter.js.map +1 -0
  369. package/es/interactions/dimension-tooltip.d.ts +18 -0
  370. package/es/interactions/dimension-tooltip.js +99 -0
  371. package/es/interactions/dimension-tooltip.js.map +1 -0
  372. package/es/interactions/drill-down.d.ts +25 -0
  373. package/es/interactions/drill-down.js +46 -0
  374. package/es/interactions/drill-down.js.map +1 -0
  375. package/es/interactions/element-active-by-legend.d.ts +17 -0
  376. package/es/interactions/element-active-by-legend.js +43 -0
  377. package/es/interactions/element-active-by-legend.js.map +1 -0
  378. package/es/interactions/element-active.d.ts +16 -0
  379. package/es/interactions/element-active.js +29 -0
  380. package/es/interactions/element-active.js.map +1 -0
  381. package/es/interactions/element-highlight-by-group.d.ts +17 -0
  382. package/es/interactions/element-highlight-by-group.js +49 -0
  383. package/es/interactions/element-highlight-by-group.js.map +1 -0
  384. package/es/interactions/element-highlight-by-key.d.ts +17 -0
  385. package/es/interactions/element-highlight-by-key.js +50 -0
  386. package/es/interactions/element-highlight-by-key.js.map +1 -0
  387. package/es/interactions/element-highlight-by-legend.d.ts +17 -0
  388. package/es/interactions/element-highlight-by-legend.js +46 -0
  389. package/es/interactions/element-highlight-by-legend.js.map +1 -0
  390. package/es/interactions/element-highlight-by-name.d.ts +18 -0
  391. package/es/interactions/element-highlight-by-name.js +56 -0
  392. package/es/interactions/element-highlight-by-name.js.map +1 -0
  393. package/es/interactions/element-highlight.d.ts +17 -0
  394. package/es/interactions/element-highlight.js +43 -0
  395. package/es/interactions/element-highlight.js.map +1 -0
  396. package/es/interactions/element-select.d.ts +18 -0
  397. package/es/interactions/element-select.js +38 -0
  398. package/es/interactions/element-select.js.map +1 -0
  399. package/es/interactions/filter.d.ts +20 -0
  400. package/es/interactions/filter.js +31 -0
  401. package/es/interactions/filter.js.map +1 -0
  402. package/es/interactions/fish-eye.d.ts +38 -0
  403. package/es/interactions/fish-eye.js +105 -0
  404. package/es/interactions/fish-eye.js.map +1 -0
  405. package/es/interactions/index.d.ts +50 -0
  406. package/es/interactions/index.js +149 -0
  407. package/es/interactions/index.js.map +1 -0
  408. package/es/interactions/legend-filter.d.ts +13 -0
  409. package/es/interactions/legend-filter.js +32 -0
  410. package/es/interactions/legend-filter.js.map +1 -0
  411. package/es/interactions/player-filter.d.ts +14 -0
  412. package/es/interactions/player-filter.js +32 -0
  413. package/es/interactions/player-filter.js.map +1 -0
  414. package/es/interactions/roll-up.d.ts +16 -0
  415. package/es/interactions/roll-up.js +45 -0
  416. package/es/interactions/roll-up.js.map +1 -0
  417. package/es/interactions/scrollbar-filter.d.ts +13 -0
  418. package/es/interactions/scrollbar-filter.js +50 -0
  419. package/es/interactions/scrollbar-filter.js.map +1 -0
  420. package/es/interactions/slider-filter.d.ts +13 -0
  421. package/es/interactions/slider-filter.js +29 -0
  422. package/es/interactions/slider-filter.js.map +1 -0
  423. package/es/interactions/tooltip.d.ts +15 -0
  424. package/es/interactions/tooltip.js +58 -0
  425. package/es/interactions/tooltip.js.map +1 -0
  426. package/es/interactions/view-drag-mixin.d.ts +22 -0
  427. package/es/interactions/view-drag-mixin.js +46 -0
  428. package/es/interactions/view-drag-mixin.js.map +1 -0
  429. package/es/interactions/view-drag.d.ts +19 -0
  430. package/es/interactions/view-drag.js +47 -0
  431. package/es/interactions/view-drag.js.map +1 -0
  432. package/es/interactions/view-navigation-base.d.ts +17 -0
  433. package/es/interactions/view-navigation-base.js +78 -0
  434. package/es/interactions/view-navigation-base.js.map +1 -0
  435. package/es/interactions/view-roam.d.ts +30 -0
  436. package/es/interactions/view-roam.js +91 -0
  437. package/es/interactions/view-roam.js.map +1 -0
  438. package/es/interactions/view-scroll-mixin.d.ts +10 -0
  439. package/es/interactions/view-scroll-mixin.js +37 -0
  440. package/es/interactions/view-scroll-mixin.js.map +1 -0
  441. package/es/interactions/view-scroll.d.ts +17 -0
  442. package/es/interactions/view-scroll.js +35 -0
  443. package/es/interactions/view-scroll.js.map +1 -0
  444. package/es/interactions/view-utils.d.ts +14 -0
  445. package/es/interactions/view-utils.js +60 -0
  446. package/es/interactions/view-utils.js.map +1 -0
  447. package/es/interactions/view-zoom-mixin.d.ts +29 -0
  448. package/es/interactions/view-zoom-mixin.js +68 -0
  449. package/es/interactions/view-zoom-mixin.js.map +1 -0
  450. package/es/interactions/view-zoom.d.ts +23 -0
  451. package/es/interactions/view-zoom.js +51 -0
  452. package/es/interactions/view-zoom.js.map +1 -0
  453. package/es/parse/event.d.ts +2 -0
  454. package/es/parse/event.js +5 -1
  455. package/es/parse/event.js.map +1 -1
  456. package/es/parse/option.js +2 -1
  457. package/es/parse/scale.js +1 -2
  458. package/es/semantic-marks/cell.d.ts +1 -1
  459. package/es/semantic-marks/cell.js +4 -2
  460. package/es/semantic-marks/cell.js.map +1 -1
  461. package/es/semantic-marks/interval.d.ts +1 -1
  462. package/es/semantic-marks/interval.js +1 -1
  463. package/es/semantic-marks/text.js +1 -1
  464. package/es/theme/dark.js +1 -1
  465. package/es/theme/default.js +1 -1
  466. package/es/theme/theme-manager.js +1 -1
  467. package/es/transforms/index.js +1 -1
  468. package/es/transforms/mark/dodge.js +2 -2
  469. package/es/transforms/mark/dodge.js.map +1 -1
  470. package/es/transforms/mark/jitter.js +2 -2
  471. package/es/transforms/mark/jitter.js.map +1 -1
  472. package/es/types/animate.d.ts +1 -1
  473. package/es/types/animate.js +1 -1
  474. package/es/types/animate.js.map +1 -1
  475. package/es/types/base.js +1 -1
  476. package/es/types/component.d.ts +16 -88
  477. package/es/types/component.js +1 -1
  478. package/es/types/component.js.map +1 -1
  479. package/es/types/coordinate.js +1 -1
  480. package/es/types/data.js +2 -1
  481. package/es/types/dataflow.js +1 -1
  482. package/es/types/element.d.ts +1 -1
  483. package/es/types/element.js +1 -1
  484. package/es/types/element.js.map +1 -1
  485. package/es/types/event.d.ts +11 -4
  486. package/es/types/event.js +1 -1
  487. package/es/types/event.js.map +1 -1
  488. package/es/types/glyph.js +1 -1
  489. package/es/types/grammar.d.ts +6 -2
  490. package/es/types/grammar.js +1 -1
  491. package/es/types/grammar.js.map +1 -1
  492. package/es/types/hooks.js +1 -1
  493. package/es/types/index.d.ts +1 -0
  494. package/es/types/index.js +3 -1
  495. package/es/types/index.js.map +1 -1
  496. package/es/types/interaction.d.ts +353 -0
  497. package/es/types/interaction.js +2 -0
  498. package/es/types/interaction.js.map +1 -0
  499. package/es/types/mark.d.ts +2 -3
  500. package/es/types/mark.js.map +1 -1
  501. package/es/types/morph.d.ts +1 -1
  502. package/es/types/morph.js.map +1 -1
  503. package/es/types/plot.d.ts +1 -1
  504. package/es/types/plot.js.map +1 -1
  505. package/es/types/renderer.d.ts +1 -1
  506. package/es/types/renderer.js.map +1 -1
  507. package/es/types/theme.d.ts +1 -1
  508. package/es/types/theme.js.map +1 -1
  509. package/es/types/view.d.ts +13 -14
  510. package/es/types/view.js.map +1 -1
  511. package/es/util/scale.d.ts +4 -0
  512. package/es/util/scale.js +15 -0
  513. package/es/util/scale.js.map +1 -0
  514. package/es/util/text.d.ts +1 -1
  515. package/es/util/text.js +1 -1
  516. package/es/util/text.js.map +1 -1
  517. package/es/view/View.d.ts +9 -13
  518. package/es/view/View.js +49 -69
  519. package/es/view/View.js.map +1 -1
  520. package/es/view/component.d.ts +2 -6
  521. package/es/view/component.js +0 -20
  522. package/es/view/component.js.map +1 -1
  523. package/es/view/dataflow.js +1 -1
  524. package/es/view/dataflow.js.map +1 -1
  525. package/es/view/events.d.ts +1 -1
  526. package/es/view/mark.d.ts +2 -2
  527. package/es/view/mark.js +12 -10
  528. package/es/view/mark.js.map +1 -1
  529. package/es/view/scale.d.ts +7 -1
  530. package/es/view/scale.js +17 -2
  531. package/es/view/scale.js.map +1 -1
  532. package/package.json +9 -8
  533. package/cjs/component/crosshair.d.ts +0 -50
  534. package/cjs/component/crosshair.js.map +0 -1
  535. package/cjs/component/tooltip.d.ts +0 -62
  536. package/cjs/component/tooltip.js +0 -305
  537. package/cjs/component/tooltip.js.map +0 -1
  538. package/es/component/crosshair.d.ts +0 -50
  539. package/es/component/crosshair.js.map +0 -1
  540. package/es/component/tooltip.d.ts +0 -62
  541. package/es/component/tooltip.js +0 -303
  542. package/es/component/tooltip.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/component/crosshair.ts"],"names":[],"mappings":"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","file":"crosshair.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { clampRadian, getAngleByPoint, isString, merge } from '@visactor/vutils';\nimport type { IGraphic, IGroup, IRectGraphicAttribute } from '@visactor/vrender';\nimport type {\n CircleCrosshairAttrs,\n LineCrosshairAttrs,\n PolygonCrosshairAttrs,\n RectCrosshairAttrs,\n SectorCrosshairAttrs\n} from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n CircleCrosshair,\n LineCrosshair,\n PolygonCrosshair,\n RectCrosshair,\n SectorCrosshair\n} from '@visactor/vrender-components';\nimport type { IBandLikeScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous, isDiscrete } from '@visactor/vscale';\nimport { ComponentEnum, CrosshairEnum } from '../graph';\nimport type { CrosshairType, CrosshairSpec, CrosshairShape, ICrosshair } from '../types/component';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n ITheme,\n IView,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Factory } from '../core/factory';\n\nconst computeCrosshairStartEnd = (\n point: IPointLike,\n scale: IBaseScale,\n type: CrosshairType,\n groupSize: { width: number; height: number },\n config: CrosshairSpec['componentConfig'],\n offset: number = 0\n) => {\n const start = { x: 0, y: 0 };\n const end = { x: 0, y: 0 };\n const radius = type === 'angle' ? config?.radius ?? Math.min(groupSize.width, groupSize.height) / 2 : null;\n const center = type === 'angle' ? config?.center ?? { x: groupSize.width / 2, y: groupSize.height / 2 } : null;\n\n let current = 0;\n if (isDiscrete(scale.type)) {\n if (type === 'x') {\n current = scale.scale(scale.invert(point.x));\n } else if (type === 'y') {\n current = scale.scale(scale.invert(point.y));\n } else if (type === 'angle') {\n const angle = clampRadian(getAngleByPoint(center, point) + Math.PI * 2);\n current = scale.scale(scale.invert(angle));\n }\n } else if (isContinuous(scale.type)) {\n if (type === 'x') {\n current = point.x;\n } else if (type === 'y') {\n current = point.y;\n } else if (type === 'angle') {\n current = getAngleByPoint(center, point);\n }\n }\n current += offset;\n switch (type) {\n case 'x':\n start.x = current;\n start.y = 0;\n end.x = current;\n end.y = groupSize.height;\n break;\n case 'y':\n start.x = 0;\n start.y = current;\n end.x = groupSize.width;\n end.y = current;\n break;\n case 'angle':\n start.x = center.x;\n start.y = center.y;\n end.x = center.x + radius * Math.cos(current);\n end.y = center.y + radius * Math.sin(current);\n break;\n }\n return { start, end };\n};\n\nconst computeRadiusOfTangential = (\n point: IPointLike,\n scale: IBaseScale,\n type: CrosshairType,\n groupSize: { width: number; height: number },\n config: CrosshairSpec['componentConfig'],\n addition?:\n | RecursivePartial<PolygonCrosshairAttrs>\n | RecursivePartial<CircleCrosshairAttrs>\n | RecursivePartial<SectorCrosshairAttrs>\n) => {\n const center = addition?.center ?? config?.center ?? { x: groupSize.width / 2, y: groupSize.height / 2 };\n let currentRadius = 0;\n\n if (isDiscrete(scale.type)) {\n const offset = scale.type === 'band' ? (scale as IBandLikeScale).bandwidth() / 2 : 0;\n const radius = Math.sqrt((point.x - center.x) ** 2 + (point.y - center.y) ** 2);\n currentRadius = scale.scale(scale.invert(radius)) + offset;\n } else if (isContinuous(scale.type)) {\n const maxRadius = config?.radius ?? Math.min(groupSize.width, groupSize.height) / 2;\n currentRadius = Math.min(maxRadius, Math.sqrt((point.x - center.x) ** 2 + (point.y - center.y) ** 2));\n }\n\n return { radius: currentRadius, center };\n};\n\nexport const generateLineCrosshairAttributes = (\n point: IPointLike,\n scale: IBaseScale,\n type: CrosshairType,\n groupSize: { width: number; height: number },\n config: CrosshairSpec['componentConfig'],\n theme?: ITheme,\n addition?: RecursivePartial<LineCrosshairAttrs> & CrosshairSpec['componentConfig']\n): LineCrosshairAttrs => {\n const crosshairTheme = theme?.components?.lineCrosshair;\n const offset = scale.type === 'band' ? (scale as IBandLikeScale).bandwidth() / 2 : 0;\n const points = computeCrosshairStartEnd(\n point,\n scale,\n type,\n groupSize,\n {\n radius: addition?.radius ?? config?.radius,\n center: addition?.center ?? config?.center\n },\n offset\n );\n return merge({}, crosshairTheme, points, addition ?? {});\n};\n\nexport const generateRectCrosshairAttributes = (\n point: IPointLike,\n scale: IBaseScale,\n type: CrosshairType,\n groupSize: { width: number; height: number },\n config: CrosshairSpec['componentConfig'],\n theme?: ITheme,\n addition?: RecursivePartial<RectCrosshairAttrs>\n): RectCrosshairAttrs => {\n const crosshairTheme = theme?.components?.rectCrosshair;\n const defaultSize = scale.type === 'band' || scale.type === 'point' ? (scale as IBandLikeScale).step() : undefined;\n const customRectStyle = addition?.rectStyle;\n const size =\n defaultSize ??\n (type === 'y'\n ? customRectStyle?.width ?? crosshairTheme.rectStyle.width\n : customRectStyle?.height ?? crosshairTheme.rectStyle.height);\n const points = computeCrosshairStartEnd(point, scale, type, groupSize, config, scale.type === 'band' ? 0 : -size / 2);\n const rectStyle: Partial<IRectGraphicAttribute> = {};\n if (type === 'x') {\n rectStyle.width = size;\n } else {\n rectStyle.height = size;\n }\n const attribute = merge(\n {},\n crosshairTheme,\n {\n start: points.start,\n end: points.end,\n rectStyle\n },\n addition ?? {}\n );\n if (type === 'x') {\n attribute.rectStyle.height = attribute.end.y - attribute.start.y;\n } else {\n attribute.rectStyle.width = attribute.end.x - attribute.start.x;\n }\n return attribute;\n};\n\nexport const generateRingCrosshairAttributes = (\n point: IPointLike,\n scale: IBaseScale,\n type: CrosshairType,\n groupSize: { width: number; height: number },\n config: CrosshairSpec['componentConfig'],\n theme?: ITheme,\n addition?: RecursivePartial<SectorCrosshairAttrs>\n): SectorCrosshairAttrs => {\n const crosshairTheme = theme?.components?.circleCrosshair;\n const { center, radius } = computeRadiusOfTangential(point, scale, type, groupSize, config, addition);\n\n const startAngle = crosshairTheme.startAngle;\n const endAngle = crosshairTheme.endAngle;\n const deltaRadius = scale.type === 'band' || scale.type === 'point' ? (scale as IBandLikeScale).step() : 0;\n\n return merge(\n {},\n crosshairTheme,\n { center, innerRadius: radius - deltaRadius / 2, radius: radius + deltaRadius / 2, startAngle, endAngle },\n addition ?? {}\n );\n};\n\nexport const generateSectorCrosshairAttributes = (\n point: IPointLike,\n scale: IBaseScale,\n type: CrosshairType,\n groupSize: { width: number; height: number },\n config: CrosshairSpec['componentConfig'],\n theme?: ITheme,\n addition?: RecursivePartial<SectorCrosshairAttrs>\n): SectorCrosshairAttrs => {\n const crosshairTheme = theme?.components?.sectorCrosshair;\n const radius = addition?.radius ?? config?.radius ?? Math.min(groupSize.width, groupSize.height) / 2;\n const center = (addition?.center ??\n config?.center ?? { x: groupSize.width / 2, y: groupSize.height / 2 }) as IPointLike;\n const defaultAngle = crosshairTheme.endAngle - crosshairTheme.startAngle;\n const angle = scale.type === 'band' || scale.type === 'point' ? (scale as IBandLikeScale).step() : defaultAngle;\n let currentAngle = 0;\n if (isDiscrete(scale.type)) {\n const angle = clampRadian(getAngleByPoint(center, point) + Math.PI * 2);\n currentAngle =\n scale.scale(scale.invert(angle)) + (scale.type === 'band' ? (scale as IBandLikeScale).bandwidth() / 2 : 0);\n } else if (isContinuous(scale.type)) {\n currentAngle = getAngleByPoint(center, point);\n }\n const startAngle = currentAngle - angle / 2;\n const endAngle = currentAngle + angle / 2;\n return merge({}, crosshairTheme, { center, radius, startAngle, endAngle }, addition ?? {});\n};\n\nexport const generateCircleCrosshairAttributes = (\n point: IPointLike,\n scale: IBaseScale,\n type: CrosshairType,\n groupSize: { width: number; height: number },\n config: CrosshairSpec['componentConfig'],\n theme?: ITheme,\n addition?: RecursivePartial<CircleCrosshairAttrs>\n): CircleCrosshairAttrs => {\n const crosshairTheme = theme?.components?.circleCrosshair;\n const { center, radius } = computeRadiusOfTangential(point, scale, type, groupSize, config, addition);\n\n const startAngle = crosshairTheme.startAngle;\n const endAngle = crosshairTheme.endAngle;\n\n return merge({}, crosshairTheme, { center, radius: radius, startAngle, endAngle }, addition ?? {});\n};\n\nexport const generatePolygonCrosshairAttributes = (\n point: IPointLike,\n scale: IBaseScale,\n type: CrosshairType,\n groupSize: { width: number; height: number },\n config: CrosshairSpec['componentConfig'],\n theme?: ITheme,\n addition?: RecursivePartial<PolygonCrosshairAttrs>\n): PolygonCrosshairAttrs => {\n const crosshairTheme = theme?.components?.circleCrosshair;\n const { center, radius } = computeRadiusOfTangential(point, scale, type, groupSize, config, addition);\n\n const startAngle = crosshairTheme.startAngle;\n const endAngle = crosshairTheme.endAngle;\n return merge({}, crosshairTheme, { center, radius: radius, startAngle, endAngle }, addition ?? {});\n};\n\nexport class Crosshair extends ScaleComponent implements ICrosshair {\n static readonly componentType: string = ComponentEnum.crosshair;\n protected declare spec: CrosshairSpec;\n\n private _crosshairComponentType?: keyof typeof CrosshairEnum;\n private _additionalEncodeResult: any;\n private _lastGroup: IGroup;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.crosshair, group);\n this.spec.componentType = ComponentEnum.crosshair;\n this.spec.crosshairShape = 'line';\n this.spec.crosshairType = 'x';\n }\n\n protected parseAddition(spec: CrosshairSpec) {\n super.parseAddition(spec);\n this.crosshairType(spec.crosshairType);\n this.crosshairShape(spec.crosshairShape);\n return this;\n }\n\n crosshairType(crosshairType?: CrosshairType) {\n this.spec.crosshairType = crosshairType;\n this._crosshairComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n crosshairShape(crosshairShape?: CrosshairShape) {\n this.spec.crosshairShape = crosshairShape;\n this._crosshairComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const initialAttributes = Object.assign(this._getDefaultCrosshairAttribute(), attrs);\n const graphicItem = Factory.createGraphicComponent(this._getCrosshairComponentType(), initialAttributes);\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n release() {\n (this._lastGroup as any)?.off?.('pointermove', this._onCrosshairShow);\n (this._lastGroup as any)?.off?.('pointerleave', this._onCrosshairHide);\n super.release();\n }\n\n protected init(stage: any, parameters: any) {\n super.init(stage, parameters);\n\n const groupGraphicItem = this.group ? this.group.getGroupGraphicItem() : stage.defaultLayer;\n if (this._lastGroup !== groupGraphicItem) {\n // FIXME: waiting for vRender to fix\n (this._lastGroup as any)?.off?.('pointermove', this._onCrosshairShow);\n (this._lastGroup as any)?.off?.('pointerleave', this._onCrosshairHide);\n }\n groupGraphicItem?.on?.('pointermove', this._onCrosshairShow);\n groupGraphicItem?.on?.('pointerleave', this._onCrosshairHide);\n this._lastGroup = groupGraphicItem;\n }\n\n protected _updateComponentEncoders() {\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n this._additionalEncodeResult = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _onCrosshairShow = (event: any) => {\n if (!this.elements[0]?.getGraphicItem?.()) {\n return;\n }\n const groupGraphicItem = this.group.getGroupGraphicItem();\n // FIXME: waiting for vRender to add transformed position to event\n const point = { x: 0, y: 0 };\n groupGraphicItem.globalTransMatrix.transformPoint(event.canvas, point);\n\n if (\n point.x < 0 ||\n point.x > groupGraphicItem.attribute.width ||\n point.y < 0 ||\n point.y > groupGraphicItem.attribute.height\n ) {\n return;\n }\n\n const crosshair = this.elements[0].getGraphicItem() as IGroup;\n const crosshairType = this.spec.crosshairType ?? 'x';\n const groupSize = { width: groupGraphicItem.attribute.width, height: groupGraphicItem.attribute.height };\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const scale = scaleGrammar.getScale();\n const config = this.spec.componentConfig;\n const theme = this.view.getCurrentTheme();\n const addition = this._additionalEncodeResult ?? {};\n\n let attributes = {};\n switch (this._getCrosshairComponentType()) {\n case CrosshairEnum.lineCrosshair:\n attributes = generateLineCrosshairAttributes(point, scale, crosshairType, groupSize, config, theme, addition);\n break;\n case CrosshairEnum.rectCrosshair:\n attributes = generateRectCrosshairAttributes(point, scale, crosshairType, groupSize, config, theme, addition);\n break;\n case CrosshairEnum.sectorCrosshair:\n attributes = generateSectorCrosshairAttributes(point, scale, crosshairType, groupSize, config, theme, addition);\n break;\n case CrosshairEnum.circleCrosshair:\n attributes = generateCircleCrosshairAttributes(point, scale, crosshairType, groupSize, config, theme, addition);\n break;\n case CrosshairEnum.polygonCrosshair:\n attributes = generatePolygonCrosshairAttributes(\n point,\n scale,\n crosshairType,\n groupSize,\n config,\n theme,\n addition\n );\n break;\n case CrosshairEnum.ringCrosshair:\n attributes = generateRingCrosshairAttributes(point, scale, crosshairType, groupSize, config, theme, addition);\n break;\n }\n crosshair.showAll();\n crosshair.setAttributes(attributes);\n };\n\n private _onCrosshairHide = (event: any) => {\n const crosshair = this.elements[0].getGraphicItem() as IGroup;\n crosshair.hideAll();\n };\n\n private _getCrosshairComponentType() {\n if (this._crosshairComponentType) {\n return this._crosshairComponentType;\n }\n const shape = this.spec.crosshairShape ?? 'line';\n const type = this.spec.crosshairType ?? 'x';\n if (shape === 'rect') {\n if (type === 'angle') {\n this._crosshairComponentType = CrosshairEnum.sectorCrosshair;\n } else if (type === 'radius') {\n this._crosshairComponentType = CrosshairEnum.ringCrosshair;\n } else if (type === 'radius-polygon') {\n this._crosshairComponentType = CrosshairEnum.polygonCrosshair;\n } else {\n this._crosshairComponentType = CrosshairEnum.rectCrosshair;\n }\n } else {\n if (type === 'radius') {\n this._crosshairComponentType = CrosshairEnum.circleCrosshair;\n } else if (type === 'radius-polygon') {\n this._crosshairComponentType = CrosshairEnum.polygonCrosshair;\n } else {\n this._crosshairComponentType = CrosshairEnum.lineCrosshair;\n }\n }\n return this._crosshairComponentType;\n }\n\n private _getDefaultCrosshairAttribute() {\n const type = this.spec.crosshairType ?? 'x';\n if (type === 'radius' || type === 'radius-polygon') {\n return { center: { x: 0, y: 0 } };\n }\n return { start: { x: 0, y: 0 }, end: { x: 0, y: 0 } };\n }\n}\n\nexport const registerCrosshair = () => {\n Factory.registerGraphicComponent(\n CrosshairEnum.lineCrosshair,\n (attrs: LineCrosshairAttrs) => new LineCrosshair(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n CrosshairEnum.rectCrosshair,\n (attrs: RectCrosshairAttrs) => new RectCrosshair(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n CrosshairEnum.sectorCrosshair,\n (attrs: SectorCrosshairAttrs) => new SectorCrosshair(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n CrosshairEnum.circleCrosshair,\n (attrs: CircleCrosshairAttrs) => new CircleCrosshair(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n CrosshairEnum.polygonCrosshair,\n (attrs: PolygonCrosshairAttrs) => new PolygonCrosshair(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n CrosshairEnum.ringCrosshair,\n (attrs: SectorCrosshairAttrs) => new SectorCrosshair(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.crosshair, Crosshair);\n};\n"]}
@@ -1,62 +0,0 @@
1
- import type { IBounds, IPointLike } from '@visactor/vutils';
2
- import type { TooltipAttributes, TooltipRowAttrs } from '@visactor/vrender-components';
3
- import type { IData, IGrammarBase, IGroupMark, IMark, IScale, ITheme, IView, Nil, RecursivePartial } from '../types';
4
- import type { BaseTooltipSpec, CustomTooltipCallback, DimensionTooltipSpec, IDimensionTooltip, ITooltip, ITooltipRow, TooltipSpec, TooltipType } from '../types/component';
5
- import { Component } from '../view/component';
6
- export declare const generateTooltipAttributes: (point: IPointLike, title: TooltipRowAttrs, content: TooltipRowAttrs[], bounds: IBounds, theme?: ITheme, addition?: RecursivePartial<TooltipAttributes>) => TooltipAttributes;
7
- export declare abstract class BaseTooltip extends Component {
8
- static readonly componentType: string;
9
- protected spec: BaseTooltipSpec;
10
- protected _additionalEncodeResult: any;
11
- protected parseAddition(spec: BaseTooltipSpec): this;
12
- title(title: ITooltipRow | string | CustomTooltipCallback | Nil): this;
13
- content(content: ITooltipRow | ITooltipRow[] | CustomTooltipCallback | Nil): this;
14
- configureComponent(config: any): this;
15
- protected _updateComponentEncoders(): void;
16
- protected _parseTooltipRow(tooltipRow: ITooltipRow | ITooltipRow[] | Nil): IGrammarBase[];
17
- protected _computeTooltipRow(row: ITooltipRow, datum: any, parameters: any): {
18
- visible: boolean;
19
- key: object;
20
- value: object;
21
- shape: object;
22
- };
23
- protected _computeTitleContent(datum: any): {
24
- title: TooltipRowAttrs | {
25
- visible: boolean;
26
- key: object;
27
- value: object;
28
- shape: object;
29
- };
30
- content: any;
31
- };
32
- }
33
- export declare class Tooltip extends BaseTooltip implements ITooltip {
34
- protected spec: TooltipSpec;
35
- private _targetMarks;
36
- private _lastElement;
37
- constructor(view: IView, group?: IGroupMark);
38
- protected parseAddition(spec: TooltipSpec): this;
39
- target(mark: IMark | IMark[] | string | string[] | Nil): this;
40
- release(): void;
41
- protected init(stage: any, parameters: any): void;
42
- protected _onTooltipShow: (...args: any[]) => void;
43
- protected _onTooltipHide: (event: any) => void;
44
- }
45
- export declare class DimensionTooltip extends BaseTooltip implements IDimensionTooltip {
46
- protected spec: DimensionTooltipSpec;
47
- private _lastGroup;
48
- private _lastDatum;
49
- private _avoidMarks;
50
- private _tooltipDataFilter;
51
- constructor(view: IView, group?: IGroupMark);
52
- protected parseAddition(spec: DimensionTooltipSpec): this;
53
- scale(scale?: IScale | string | Nil): this;
54
- tooltipType(tooltipType: TooltipType | Nil): this;
55
- target(data: IData | string | Nil, filter: string | ((datum: any, tooltipValue: any) => boolean) | Nil): this;
56
- avoidMark(mark: IMark | IMark[] | string | string[] | Nil): this;
57
- release(): void;
58
- protected init(stage: any, parameters: any): void;
59
- protected _onTooltipShow: (...args: any[]) => void;
60
- protected _onTooltipHide: (event: any) => void;
61
- }
62
- export declare const registerTooltip: () => void;
@@ -1,303 +0,0 @@
1
- import { AABBBounds, isValid, isObjectLike, throttle, array, isNil, isString, merge, getAngleByPoint, isFunction, isArray } from "@visactor/vutils";
2
-
3
- import { Tooltip as TooltipComponent } from "@visactor/vrender-components";
4
-
5
- import { field as getFieldAccessor } from "@visactor/vgrammar-util";
6
-
7
- import { ComponentEnum } from "../graph";
8
-
9
- import { Component } from "../view/component";
10
-
11
- import { invokeEncoder } from "../graph/mark/encode";
12
-
13
- import { invokeFunctionType, parseFunctionType } from "../parse/util";
14
-
15
- import { isFieldEncode } from "../parse/mark";
16
-
17
- import { BridgeElementKey } from "../graph/constants";
18
-
19
- import { Factory } from "../core/factory";
20
-
21
- export const generateTooltipAttributes = (point, title, content, bounds, theme, addition) => {
22
- var _a;
23
- const tooltipTheme = null === (_a = null == theme ? void 0 : theme.components) || void 0 === _a ? void 0 : _a.tooltip;
24
- return merge({}, tooltipTheme, {
25
- visible: !0,
26
- pointerX: point.x,
27
- pointerY: point.y,
28
- title: title,
29
- content: content,
30
- parentBounds: bounds
31
- }, null != addition ? addition : {});
32
- };
33
-
34
- export class BaseTooltip extends Component {
35
- parseAddition(spec) {
36
- return super.parseAddition(spec), this.title(spec.title), this.content(spec.content),
37
- this;
38
- }
39
- title(title) {
40
- return !this.spec.title || isString(this.spec.title) || isFunction(this.spec.title) || this.detach(this._parseTooltipRow(this.spec.title)),
41
- this.spec.title = title, !title || isString(title) || isFunction(title) || this.attach(this._parseTooltipRow(title)),
42
- this.commit(), this;
43
- }
44
- content(content) {
45
- return this.spec.content && !isFunction(this.spec.content) && this.detach(this._parseTooltipRow(this.spec.content)),
46
- this.spec.content = content, content && !isFunction(content) && this.attach(this._parseTooltipRow(content)),
47
- this.commit(), this;
48
- }
49
- configureComponent(config) {
50
- return super.configureComponent(config), this;
51
- }
52
- _updateComponentEncoders() {
53
- const encoders = Object.assign({
54
- update: {}
55
- }, this.spec.encode), componentEncoders = Object.keys(encoders).reduce(((res, state) => {
56
- const encoder = encoders[state];
57
- return encoder && (res[state] = {
58
- callback: (datum, element, parameters) => {
59
- this._additionalEncodeResult = invokeEncoder(encoder, datum, element, parameters);
60
- }
61
- }), res;
62
- }), {});
63
- this._encoders = componentEncoders;
64
- }
65
- _parseTooltipRow(tooltipRow) {
66
- return array(tooltipRow).reduce(((dependencies, row) => (dependencies = dependencies.concat(parseFunctionType(row.visible, this.view)),
67
- isFieldEncode(row.key) || (dependencies = dependencies.concat(parseFunctionType(row.key, this.view))),
68
- isFieldEncode(row.value) || (dependencies = dependencies.concat(parseFunctionType(row.value, this.view))),
69
- isFieldEncode(row.symbol) || (dependencies = dependencies.concat(parseFunctionType(row.symbol, this.view))),
70
- dependencies)), []);
71
- }
72
- _computeTooltipRow(row, datum, parameters) {
73
- const element = this.elements[0];
74
- let key, value, symbol, visible = invokeFunctionType(row.visible, parameters, datum, element);
75
- if (visible = !!isNil(visible) || !!visible, isFieldEncode(row.key)) {
76
- key = getFieldAccessor(row.key.field)(datum);
77
- } else key = invokeFunctionType(row.key, parameters, datum, element);
78
- if (key = isNil(key) ? void 0 : isObjectLike(key) ? key : {
79
- text: key
80
- }, isFieldEncode(row.value)) {
81
- value = getFieldAccessor(row.value.field)(datum);
82
- } else value = invokeFunctionType(row.value, parameters, datum, element);
83
- if (value = isNil(value) ? void 0 : isObjectLike(value) ? value : {
84
- text: value
85
- }, isFieldEncode(row.symbol)) {
86
- symbol = getFieldAccessor(row.symbol.field)(datum);
87
- } else symbol = invokeFunctionType(row.symbol, parameters, datum, element);
88
- return symbol = isNil(symbol) ? void 0 : isObjectLike(symbol) ? symbol : {
89
- symbolType: symbol
90
- }, {
91
- visible: visible,
92
- key: key,
93
- value: value,
94
- shape: symbol
95
- };
96
- }
97
- _computeTitleContent(datum) {
98
- const tooltip = this.elements[0], parameters = this.parameters(), title = isValid(this.spec.title) ? isFunction(this.spec.title) ? this.spec.title.call(null, datum, tooltip, parameters) : this._computeTooltipRow(isString(this.spec.title) ? {
99
- value: this.spec.title
100
- } : this.spec.title, datum, parameters) : void 0, content = isValid(this.spec.content) ? isFunction(this.spec.content) ? array(this.spec.content.call(null, datum, tooltip, parameters)) : array(datum).reduce(((content, datumRow) => content.concat(array(this.spec.content).map((row => this._computeTooltipRow(row, datumRow, parameters))))), []) : void 0;
101
- return {
102
- title: isArray(title) ? title[0] : title,
103
- content: content
104
- };
105
- }
106
- }
107
-
108
- BaseTooltip.componentType = ComponentEnum.tooltip;
109
-
110
- export class Tooltip extends BaseTooltip {
111
- constructor(view, group) {
112
- super(view, ComponentEnum.tooltip, group), this._targetMarks = [], this._onTooltipShow = throttle(((event, element) => {
113
- const tooltip = this.elements[0].getGraphicItem();
114
- if (!this._targetMarks.includes(null == element ? void 0 : element.mark)) return void tooltip.hideAll();
115
- tooltip.showAll();
116
- const groupGraphicItem = this.group.getGroupGraphicItem(), point = {
117
- x: 0,
118
- y: 0
119
- };
120
- if (groupGraphicItem.globalTransMatrix.transformPoint(event.canvas, point), element === this._lastElement) return void tooltip.setAttributes({
121
- pointerX: point.x,
122
- pointerY: point.y
123
- });
124
- const boundsStart = {
125
- x: 0,
126
- y: 0
127
- };
128
- groupGraphicItem.globalTransMatrix.transformPoint({
129
- x: 0,
130
- y: 0
131
- }, boundsStart);
132
- const boundsEnd = {
133
- x: 0,
134
- y: 0
135
- };
136
- groupGraphicItem.globalTransMatrix.transformPoint({
137
- x: this.view.getSignalById("width").getValue(),
138
- y: this.view.getSignalById("height").getValue()
139
- }, boundsEnd);
140
- const bounds = (new AABBBounds).set(boundsStart.x, boundsStart.y, boundsEnd.x, boundsEnd.y), {title: title, content: content} = this._computeTitleContent(element.getDatum()), theme = this.view.getCurrentTheme(), attributes = generateTooltipAttributes(point, title, content, bounds, theme, this._additionalEncodeResult);
141
- tooltip.setAttributes(attributes);
142
- }), 10), this._onTooltipHide = event => {
143
- this.elements[0].getGraphicItem().hideAll();
144
- }, this.spec.componentType = ComponentEnum.tooltip;
145
- }
146
- parseAddition(spec) {
147
- return super.parseAddition(spec), this.target(spec.target), this;
148
- }
149
- target(mark) {
150
- if (this.spec.target) {
151
- const prevMarks = array(this.spec.target).map((m => isString(m) ? this.view.getMarkById(m) : m));
152
- this.detach(prevMarks);
153
- }
154
- this.spec.target = mark;
155
- const nextMarks = array(mark).map((m => isString(m) ? this.view.getMarkById(m) : m));
156
- return this.attach(nextMarks), this._targetMarks = nextMarks.filter((m => !isNil(m))),
157
- this.commit(), this;
158
- }
159
- release() {
160
- this.view.removeEventListener("pointermove", this._onTooltipShow), this.view.removeEventListener("pointerleave", this._onTooltipHide),
161
- super.release();
162
- }
163
- init(stage, parameters) {
164
- super.init(stage, parameters), this.view.addEventListener("pointermove", this._onTooltipShow),
165
- this.view.addEventListener("pointerleave", this._onTooltipHide);
166
- }
167
- }
168
-
169
- const isEqualTooltipDatum = (current, previous) => {
170
- const currentDatum = array(current), previousDatum = array(previous);
171
- return currentDatum.length === previousDatum.length && (currentDatum.every((datum => previousDatum.includes(datum))) && previousDatum.every((datum => currentDatum.includes(datum))));
172
- }, computeTooltipFilterValue = (point, scale, type, groupSize, config) => {
173
- var _a, _b;
174
- if ("x" === type) return scale.invert(point.x);
175
- if ("y" === type) return scale.invert(point.y);
176
- if ("radius" === type) {
177
- const center = null !== (_a = null == config ? void 0 : config.center) && void 0 !== _a ? _a : {
178
- x: groupSize.width / 2,
179
- y: groupSize.height / 2
180
- }, radius = Math.sqrt((center.x - point.x) ** 2 + (center.y - point.y) ** 2);
181
- return scale.invert(radius);
182
- }
183
- if ("angle" === type) {
184
- const center = null !== (_b = null == config ? void 0 : config.center) && void 0 !== _b ? _b : {
185
- x: groupSize.width / 2,
186
- y: groupSize.height / 2
187
- }, angle = getAngleByPoint(center, point);
188
- return scale.invert(angle);
189
- }
190
- return scale.invert(point.x);
191
- };
192
-
193
- export class DimensionTooltip extends BaseTooltip {
194
- constructor(view, group) {
195
- super(view, ComponentEnum.dimensionTooltip, group), this._avoidMarks = [], this._tooltipDataFilter = null,
196
- this._onTooltipShow = throttle(((event, element) => {
197
- var _a, _b, _c;
198
- const tooltip = this.elements[0].getGraphicItem(), scale = (isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale).getScale(), groupGraphicItem = this.group.getGroupGraphicItem(), point = {
199
- x: 0,
200
- y: 0
201
- };
202
- groupGraphicItem.globalTransMatrix.transformPoint(event.canvas, point);
203
- const groupSize = {
204
- width: groupGraphicItem.attribute.width,
205
- height: groupGraphicItem.attribute.height
206
- };
207
- if (point.x < 0 || point.x > groupGraphicItem.attribute.width || point.y < 0 || point.y > groupGraphicItem.attribute.height) return void tooltip.hideAll();
208
- const eventTargetMark = null === (_b = null === (_a = event.target) || void 0 === _a ? void 0 : _a[BridgeElementKey]) || void 0 === _b ? void 0 : _b.mark;
209
- if (this._avoidMarks.includes(eventTargetMark)) return void tooltip.hideAll();
210
- const target = null === (_c = this.spec.target) || void 0 === _c ? void 0 : _c.data, lastDataGrammar = target ? isString(target) ? this.view.getDataById(target) : target : null, data = lastDataGrammar ? lastDataGrammar.getValue() : [], filterValue = computeTooltipFilterValue(point, scale, this.spec.tooltipType, groupSize, this.spec.componentConfig), tooltipDatum = this._tooltipDataFilter ? data.filter((datum => this._tooltipDataFilter(datum, filterValue))) : [];
211
- if (tooltip.showAll(), isEqualTooltipDatum(tooltipDatum, this._lastDatum)) return void tooltip.setAttributes({
212
- pointerX: point.x,
213
- pointerY: point.y
214
- });
215
- this._lastDatum = tooltipDatum;
216
- const boundsStart = {
217
- x: 0,
218
- y: 0
219
- };
220
- groupGraphicItem.globalTransMatrix.transformPoint({
221
- x: 0,
222
- y: 0
223
- }, boundsStart);
224
- const boundsEnd = {
225
- x: 0,
226
- y: 0
227
- };
228
- groupGraphicItem.globalTransMatrix.transformPoint({
229
- x: this.view.getSignalById("width").getValue(),
230
- y: this.view.getSignalById("height").getValue()
231
- }, boundsEnd);
232
- const bounds = (new AABBBounds).set(boundsStart.x, boundsStart.y, boundsEnd.x, boundsEnd.y), {title: title, content: content} = this._computeTitleContent(tooltipDatum), theme = this.view.getCurrentTheme(), attributes = generateTooltipAttributes(point, title, content, bounds, theme, this._additionalEncodeResult);
233
- tooltip.setAttributes(attributes);
234
- }), 10), this._onTooltipHide = event => {
235
- this.elements[0].getGraphicItem().hideAll();
236
- }, this.spec.componentType = ComponentEnum.dimensionTooltip, this.spec.tooltipType = "x";
237
- }
238
- parseAddition(spec) {
239
- var _a, _b;
240
- return super.parseAddition(spec), this.scale(spec.scale), this.tooltipType(spec.tooltipType),
241
- this.target(null === (_a = spec.target) || void 0 === _a ? void 0 : _a.data, null === (_b = spec.target) || void 0 === _b ? void 0 : _b.filter),
242
- this.avoidMark(spec.avoidMark), this;
243
- }
244
- scale(scale) {
245
- if (this.spec.scale) {
246
- const lastScaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;
247
- this.detach(lastScaleGrammar), this.spec.scale = void 0;
248
- }
249
- const scaleGrammar = isString(scale) ? this.view.getScaleById(scale) : scale;
250
- return this.spec.scale = scaleGrammar, this.attach(scaleGrammar), this.commit(),
251
- this;
252
- }
253
- tooltipType(tooltipType) {
254
- return this.spec.tooltipType = tooltipType, this.commit(), this;
255
- }
256
- target(data, filter) {
257
- var _a;
258
- const lastData = null === (_a = this.spec.target) || void 0 === _a ? void 0 : _a.data;
259
- if (lastData) {
260
- const lastDataGrammar = isString(lastData) ? this.view.getDataById(lastData) : lastData;
261
- this.detach(lastDataGrammar), this.spec.target = void 0;
262
- }
263
- const dataGrammar = isString(data) ? this.view.getDataById(data) : data;
264
- return this._tooltipDataFilter = isString(filter) ? (datum, filterValue) => filterValue === datum[filter] : filter,
265
- dataGrammar && (this.attach(dataGrammar), this.spec.target = {
266
- data: dataGrammar,
267
- filter: filter
268
- }), this.commit(), this;
269
- }
270
- avoidMark(mark) {
271
- if (this.spec.avoidMark) {
272
- const prevMarks = array(this.spec.avoidMark).map((m => isString(m) ? this.view.getMarkById(m) : m));
273
- this.detach(prevMarks);
274
- }
275
- this.spec.avoidMark = mark;
276
- const nextMarks = array(mark).map((m => isString(m) ? this.view.getMarkById(m) : m));
277
- return this.attach(nextMarks), this._avoidMarks = nextMarks.filter((m => !isNil(m))),
278
- this.commit(), this;
279
- }
280
- release() {
281
- var _a, _b, _c, _d;
282
- null === (_b = null === (_a = this._lastGroup) || void 0 === _a ? void 0 : _a.off) || void 0 === _b || _b.call(_a, "pointermove", this._onTooltipShow),
283
- null === (_d = null === (_c = this._lastGroup) || void 0 === _c ? void 0 : _c.off) || void 0 === _d || _d.call(_c, "pointerleave", this._onTooltipHide),
284
- super.release();
285
- }
286
- init(stage, parameters) {
287
- var _a, _b, _c, _d, _e, _f;
288
- super.init(stage, parameters);
289
- const groupGraphicItem = this.group ? this.group.getGroupGraphicItem() : stage.defaultLayer;
290
- this._lastGroup !== groupGraphicItem && (null === (_b = null === (_a = this._lastGroup) || void 0 === _a ? void 0 : _a.off) || void 0 === _b || _b.call(_a, "pointermove", this._onTooltipShow),
291
- null === (_d = null === (_c = this._lastGroup) || void 0 === _c ? void 0 : _c.off) || void 0 === _d || _d.call(_c, "pointerleave", this._onTooltipHide)),
292
- null === (_e = null == groupGraphicItem ? void 0 : groupGraphicItem.on) || void 0 === _e || _e.call(groupGraphicItem, "pointermove", this._onTooltipShow),
293
- null === (_f = null == groupGraphicItem ? void 0 : groupGraphicItem.on) || void 0 === _f || _f.call(groupGraphicItem, "pointerleave", this._onTooltipHide),
294
- this._lastGroup = groupGraphicItem;
295
- }
296
- }
297
-
298
- export const registerTooltip = () => {
299
- Factory.registerGraphicComponent(ComponentEnum.tooltip, (attrs => new TooltipComponent(attrs))),
300
- Factory.registerGraphicComponent(ComponentEnum.dimensionTooltip, (attrs => new TooltipComponent(attrs))),
301
- Factory.registerComponent(ComponentEnum.tooltip, Tooltip), Factory.registerComponent(ComponentEnum.dimensionTooltip, DimensionTooltip);
302
- };
303
- //# sourceMappingURL=tooltip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/component/tooltip.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,eAAe,EACf,UAAU,EACV,OAAO,EACR,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAepE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAWzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAiB,EACjB,KAAsB,EACtB,OAA0B,EAC1B,MAAe,EACf,KAAc,EACd,QAA8C,EAC3B,EAAE;;IACrB,MAAM,YAAY,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAE,OAAO,CAAC;IAEhD,OAAO,KAAK,CACV,EAAE,EACF,YAAY,EACZ;QACE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjB,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjB,KAAK;QACL,OAAO;QACP,YAAY,EAAE,MAAM;KACrB,EACD,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAgB,WAAY,SAAQ,SAAS;IAMvC,aAAa,CAAC,IAAqB;QAC3C,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAyD;QAC7D,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAkE;QACxE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;SACvD;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAC5B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;SAC7C;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,MAAW;QAC5B,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAES,wBAAwB;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,iBAAiB,GAAoB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACrF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,OAAO,EAAE;gBACX,GAAG,CAAC,KAAK,CAAC,GAAG;oBACX,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,UAAe,EAAE,EAAE;wBAC3D,IAAI,CAAC,uBAAuB,GAAG,aAAa,CAAC,OAA+B,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;oBAC5G,CAAC;iBACF,CAAC;aACH;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC;IACrC,CAAC;IAES,gBAAgB,CAAC,UAA6C;QACtE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE;YACpD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC3B,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aAC3E;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC7B,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aAC7E;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC9B,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aAC9E;YACD,OAAO,YAAY,CAAC;QACtB,CAAC,EAAE,EAAoB,CAAC,CAAC;IAC3B,CAAC;IAES,kBAAkB,CAAC,GAAgB,EAAE,KAAU,EAAE,UAAe;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAGjC,IAAI,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1E,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAG5C,IAAI,GAAG,CAAC;QACR,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1B,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;SAC5B;aAAM;YACL,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SAC/D;QACD,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAGvE,IAAI,KAAK,CAAC;QACV,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxD,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SACnE;QACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAGjF,IAAI,MAAM,CAAC;QACX,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;SAC/B;aAAM;YACL,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SACrE;QACD,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAE5F,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAES,oBAAoB,CAAC,KAAU;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACpC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;gBACxD,CAAC,CAAC,IAAI,CAAC,kBAAkB,CACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EACxE,KAAK,EACL,UAAU,CACX;YACL,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACxC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC7B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gBACjE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;oBACxC,OAAO,OAAO,CAAC,MAAM,CACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAkB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CACvG,CAAC;gBACJ,CAAC,EAAE,EAAE,CAAC;YACV,CAAC,CAAC,SAAS,CAAC;QAGd,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/D,CAAC;;AA1Ie,yBAAa,GAAW,aAAa,CAAC,OAAO,CAAC;AA6IhE,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAMtC,YAAY,IAAW,EAAE,KAAkB;QACzC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAJpC,iBAAY,GAAY,EAAE,CAAC;QAuCzB,mBAAc,GAAG,QAAQ,CAAC,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,EAAY,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,EAAE;gBAC9C,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;aACR;YAED,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAE1D,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAEvE,IAAI,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE;gBAEjC,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAS,CAAC,CAAC;gBACvE,OAAO;aACR;YAED,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAC/C;gBACE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAY;gBACxD,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAY;aAC1D,EACD,SAAS,CACV,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5F,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACjH,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEG,mBAAc,GAAG,CAAC,KAAU,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,EAAY,CAAC;YAC5D,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC;QA1EA,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;IAClD,CAAC;IAES,aAAa,CAAC,IAAiB;QACvC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAA+C;QACpD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnE,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAES,IAAI,CAAC,KAAU,EAAE,UAAe;QACxC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC;CA2CF;AAED,MAAM,mBAAmB,GAAG,CAAC,OAAc,EAAE,QAAe,EAAE,EAAE;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,YAAY,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE;QAChD,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CACL,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1D,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,KAAiB,EACjB,KAAiB,EACjB,IAAiB,EACjB,SAA4C,EAC5C,MAA+C,EAC/C,EAAE;;IACF,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC9B;IACD,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC9B;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,MAAM,MAAM,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,mCAAI,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC7B;IACD,IAAI,IAAI,KAAK,OAAO,EAAE;QACpB,MAAM,MAAM,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,mCAAI,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrF,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAQ/C,YAAY,IAAW,EAAE,KAAkB;QACzC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAJ7C,gBAAW,GAAY,EAAE,CAAC;QAC1B,uBAAkB,GAAyD,IAAI,CAAC;QAwF9E,mBAAc,GAAG,QAAQ,CAAC,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE;;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,EAAY,CAAC;YAE5D,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3G,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAE1D,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAGzG,IACE,KAAK,CAAC,CAAC,GAAG,CAAC;gBACX,KAAK,CAAC,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK;gBAC1C,KAAK,CAAC,CAAC,GAAG,CAAC;gBACX,KAAK,CAAC,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAC3C;gBACA,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;aACR;YAED,MAAM,eAAe,GAAG,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAG,gBAAgB,CAAC,0CAAE,IAAI,CAAC;YAC/D,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC9C,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;aACR;YAED,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC;YACtC,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACnG,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAE/D,MAAM,WAAW,GAAG,yBAAyB,CAC3C,KAAK,EACL,KAAK,EACL,IAAI,CAAC,IAAI,CAAC,WAAW,EACrB,SAAS,EACT,IAAI,CAAC,IAAI,CAAC,eAAe,CAC1B,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB;gBAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACnE,CAAC,CAAC,EAAE,CAAC;YAEP,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;gBAEtD,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAS,CAAC,CAAC;gBACvE,OAAO;aACR;YACD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;YAG/B,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAC/C;gBACE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAY;gBACxD,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAY;aAC1D,EACD,SAAS,CACV,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5F,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACjH,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEG,mBAAc,GAAG,CAAC,KAAU,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,EAAY,CAAC;YAC5D,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC;QA5JA,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IAC9B,CAAC;IAES,aAAa,CAAC,IAA0B;;QAChD,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAA6B;QACjC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/G,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SAC7B;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7E,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,WAA8B;QACxC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAA0B,EAAE,MAAmE;;QACpG,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC;QACxC,IAAI,QAAQ,EAAE;YACZ,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACxF,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;SAC9B;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC;YACxC,CAAC,CAAC,CAAC,KAAU,EAAE,WAAkB,EAAE,EAAE,CAAC,WAAW,KAAK,KAAK,CAAC,MAAM,CAAC;YACnE,CAAC,CAAC,MAAM,CAAC;QACX,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;SAClD;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,IAA+C;QACvD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACvB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;;QACL,MAAA,MAAC,IAAI,CAAC,UAAkB,0CAAE,GAAG,mDAAG,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpE,MAAA,MAAC,IAAI,CAAC,UAAkB,0CAAE,GAAG,mDAAG,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACrE,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAES,IAAI,CAAC,KAAU,EAAE,UAAe;;QACxC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAE9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAC5F,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB,EAAE;YAExC,MAAA,MAAC,IAAI,CAAC,UAAkB,0CAAE,GAAG,mDAAG,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACpE,MAAA,MAAC,IAAI,CAAC,UAAkB,0CAAE,GAAG,mDAAG,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACtE;QACD,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,EAAE,iEAAG,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,EAAE,iEAAG,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC;IACrC,CAAC;CA2EF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO,CAAC,wBAAwB,CAC9B,aAAa,CAAC,OAAO,EACrB,CAAC,KAAwB,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAwB,CACjF,CAAC;IACF,OAAO,CAAC,wBAAwB,CAC9B,aAAa,CAAC,gBAAgB,EAC9B,CAAC,KAAwB,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAwB,CACjF,CAAC;IAEF,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE1D,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAC9E,CAAC,CAAC","file":"tooltip.js","sourcesContent":["import type { IBounds, IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n AABBBounds,\n isValid,\n isObjectLike,\n throttle,\n array,\n isNil,\n isString,\n merge,\n getAngleByPoint,\n isFunction,\n isArray\n} from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IGraphic, IGroup } from '@visactor/vrender';\nimport type { TooltipAttributes, TooltipRowAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { Tooltip as TooltipComponent } from '@visactor/vrender-components';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type {\n BaseSignleEncodeSpec,\n IData,\n IElement,\n IGrammarBase,\n IGroupMark,\n IMark,\n IScale,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport { ComponentEnum } from '../graph';\nimport type {\n BaseTooltipSpec,\n CustomTooltipCallback,\n DimensionTooltipSpec,\n IDimensionTooltip,\n ITooltip,\n ITooltipRow,\n TooltipSpec,\n TooltipType\n} from '../types/component';\nimport { Component } from '../view/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { invokeFunctionType, parseFunctionType } from '../parse/util';\nimport { isFieldEncode } from '../parse/mark';\nimport { BridgeElementKey } from '../graph/constants';\nimport type { IBaseScale } from '@visactor/vscale';\nimport { Factory } from '../core/factory';\n\nexport const generateTooltipAttributes = (\n point: IPointLike,\n title: TooltipRowAttrs,\n content: TooltipRowAttrs[],\n bounds: IBounds,\n theme?: ITheme,\n addition?: RecursivePartial<TooltipAttributes>\n): TooltipAttributes => {\n const tooltipTheme = theme?.components?.tooltip;\n\n return merge(\n {},\n tooltipTheme,\n {\n visible: true,\n pointerX: point.x,\n pointerY: point.y,\n title,\n content,\n parentBounds: bounds\n },\n addition ?? {}\n );\n};\n\nexport abstract class BaseTooltip extends Component {\n static readonly componentType: string = ComponentEnum.tooltip;\n protected declare spec: BaseTooltipSpec;\n\n protected _additionalEncodeResult: any;\n\n protected parseAddition(spec: BaseTooltipSpec) {\n super.parseAddition(spec);\n this.title(spec.title);\n this.content(spec.content);\n return this;\n }\n\n title(title: ITooltipRow | string | CustomTooltipCallback | Nil) {\n if (this.spec.title && !isString(this.spec.title) && !isFunction(this.spec.title)) {\n this.detach(this._parseTooltipRow(this.spec.title));\n }\n this.spec.title = title;\n if (title && !isString(title) && !isFunction(title)) {\n this.attach(this._parseTooltipRow(title));\n }\n this.commit();\n return this;\n }\n\n content(content: ITooltipRow | ITooltipRow[] | CustomTooltipCallback | Nil) {\n if (this.spec.content && !isFunction(this.spec.content)) {\n this.detach(this._parseTooltipRow(this.spec.content));\n }\n this.spec.content = content;\n if (content && !isFunction(content)) {\n this.attach(this._parseTooltipRow(content));\n }\n this.commit();\n return this;\n }\n\n configureComponent(config: any) {\n super.configureComponent(config);\n return this;\n }\n\n protected _updateComponentEncoders() {\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n this._additionalEncodeResult = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n protected _parseTooltipRow(tooltipRow: ITooltipRow | ITooltipRow[] | Nil) {\n return array(tooltipRow).reduce((dependencies, row) => {\n dependencies = dependencies.concat(parseFunctionType(row.visible, this.view));\n if (!isFieldEncode(row.key)) {\n dependencies = dependencies.concat(parseFunctionType(row.key, this.view));\n }\n if (!isFieldEncode(row.value)) {\n dependencies = dependencies.concat(parseFunctionType(row.value, this.view));\n }\n if (!isFieldEncode(row.symbol)) {\n dependencies = dependencies.concat(parseFunctionType(row.symbol, this.view));\n }\n return dependencies;\n }, [] as IGrammarBase[]);\n }\n\n protected _computeTooltipRow(row: ITooltipRow, datum: any, parameters: any) {\n const element = this.elements[0];\n\n // compute visible\n let visible = invokeFunctionType(row.visible, parameters, datum, element);\n visible = isNil(visible) ? true : !!visible;\n\n // compute key\n let key;\n if (isFieldEncode(row.key)) {\n const fieldAccessor = getFieldAccessor(row.key.field);\n key = fieldAccessor(datum);\n } else {\n key = invokeFunctionType(row.key, parameters, datum, element);\n }\n key = isNil(key) ? undefined : isObjectLike(key) ? key : { text: key };\n\n // compute value\n let value;\n if (isFieldEncode(row.value)) {\n const fieldAccessor = getFieldAccessor(row.value.field);\n value = fieldAccessor(datum);\n } else {\n value = invokeFunctionType(row.value, parameters, datum, element);\n }\n value = isNil(value) ? undefined : isObjectLike(value) ? value : { text: value };\n\n // compute symbol\n let symbol;\n if (isFieldEncode(row.symbol)) {\n const fieldAccessor = getFieldAccessor(row.symbol.field);\n symbol = fieldAccessor(datum);\n } else {\n symbol = invokeFunctionType(row.symbol, parameters, datum, element);\n }\n symbol = isNil(symbol) ? undefined : isObjectLike(symbol) ? symbol : { symbolType: symbol };\n\n return { visible, key, value, shape: symbol };\n }\n\n protected _computeTitleContent(datum: any) {\n const tooltip = this.elements[0];\n const parameters = this.parameters();\n\n const title = isValid(this.spec.title)\n ? isFunction(this.spec.title)\n ? this.spec.title.call(null, datum, tooltip, parameters)\n : this._computeTooltipRow(\n isString(this.spec.title) ? { value: this.spec.title } : this.spec.title,\n datum,\n parameters\n )\n : undefined;\n const content = isValid(this.spec.content)\n ? isFunction(this.spec.content)\n ? array(this.spec.content.call(null, datum, tooltip, parameters))\n : array(datum).reduce((content, datumRow) => {\n return content.concat(\n array(this.spec.content).map(row => this._computeTooltipRow(row as ITooltipRow, datumRow, parameters))\n );\n }, [])\n : undefined;\n\n // only display one single row in title\n return { title: isArray(title) ? title[0] : title, content };\n }\n}\n\nexport class Tooltip extends BaseTooltip implements ITooltip {\n protected declare spec: TooltipSpec;\n\n private _targetMarks: IMark[] = [];\n private _lastElement: IElement;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.tooltip, group);\n this.spec.componentType = ComponentEnum.tooltip;\n }\n\n protected parseAddition(spec: TooltipSpec) {\n super.parseAddition(spec);\n this.target(spec.target);\n return this;\n }\n\n target(mark: IMark | IMark[] | string | string[] | Nil): this {\n if (this.spec.target) {\n const prevMarks = array(this.spec.target).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n this.detach(prevMarks);\n }\n this.spec.target = mark;\n const nextMarks = array(mark).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n this.attach(nextMarks);\n this._targetMarks = nextMarks.filter(m => !isNil(m));\n this.commit();\n return this;\n }\n\n release() {\n this.view.removeEventListener('pointermove', this._onTooltipShow);\n this.view.removeEventListener('pointerleave', this._onTooltipHide);\n super.release();\n }\n\n protected init(stage: any, parameters: any) {\n super.init(stage, parameters);\n this.view.addEventListener('pointermove', this._onTooltipShow);\n this.view.addEventListener('pointerleave', this._onTooltipHide);\n }\n\n protected _onTooltipShow = throttle((event: any, element: IElement) => {\n const tooltip = this.elements[0].getGraphicItem() as IGroup;\n if (!this._targetMarks.includes(element?.mark)) {\n tooltip.hideAll();\n return;\n }\n\n tooltip.showAll();\n\n const groupGraphicItem = this.group.getGroupGraphicItem();\n // FIXME: waiting for vRender to add transformed position to event\n const point = { x: 0, y: 0 };\n groupGraphicItem.globalTransMatrix.transformPoint(event.canvas, point);\n\n if (element === this._lastElement) {\n // only update pointer when element is not changed\n tooltip.setAttributes({ pointerX: point.x, pointerY: point.y } as any);\n return;\n }\n\n const boundsStart = { x: 0, y: 0 };\n groupGraphicItem.globalTransMatrix.transformPoint({ x: 0, y: 0 }, boundsStart);\n const boundsEnd = { x: 0, y: 0 };\n groupGraphicItem.globalTransMatrix.transformPoint(\n {\n x: this.view.getSignalById('width').getValue() as number,\n y: this.view.getSignalById('height').getValue() as number\n },\n boundsEnd\n );\n const bounds = new AABBBounds().set(boundsStart.x, boundsStart.y, boundsEnd.x, boundsEnd.y);\n const { title, content } = this._computeTitleContent(element.getDatum());\n const theme = this.view.getCurrentTheme();\n const attributes = generateTooltipAttributes(point, title, content, bounds, theme, this._additionalEncodeResult);\n tooltip.setAttributes(attributes);\n }, 10);\n\n protected _onTooltipHide = (event: any) => {\n const tooltip = this.elements[0].getGraphicItem() as IGroup;\n tooltip.hideAll();\n };\n}\n\nconst isEqualTooltipDatum = (current: any[], previous: any[]) => {\n const currentDatum = array(current);\n const previousDatum = array(previous);\n if (currentDatum.length !== previousDatum.length) {\n return false;\n }\n return (\n currentDatum.every(datum => previousDatum.includes(datum)) &&\n previousDatum.every(datum => currentDatum.includes(datum))\n );\n};\n\nconst computeTooltipFilterValue = (\n point: IPointLike,\n scale: IBaseScale,\n type: TooltipType,\n groupSize: { width: number; height: number },\n config: DimensionTooltipSpec['componentConfig']\n) => {\n if (type === 'x') {\n return scale.invert(point.x);\n }\n if (type === 'y') {\n return scale.invert(point.y);\n }\n if (type === 'radius') {\n const center = config?.center ?? { x: groupSize.width / 2, y: groupSize.height / 2 };\n const radius = Math.sqrt((center.x - point.x) ** 2 + (center.y - point.y) ** 2);\n return scale.invert(radius);\n }\n if (type === 'angle') {\n const center = config?.center ?? { x: groupSize.width / 2, y: groupSize.height / 2 };\n const angle = getAngleByPoint(center, point);\n return scale.invert(angle);\n }\n return scale.invert(point.x);\n};\n\nexport class DimensionTooltip extends BaseTooltip implements IDimensionTooltip {\n protected declare spec: DimensionTooltipSpec;\n\n private _lastGroup: IGroup;\n private _lastDatum: any;\n private _avoidMarks: IMark[] = [];\n private _tooltipDataFilter: ((datum: any, filterValue: any[]) => boolean) | null = null;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.dimensionTooltip, group);\n this.spec.componentType = ComponentEnum.dimensionTooltip;\n this.spec.tooltipType = 'x';\n }\n\n protected parseAddition(spec: DimensionTooltipSpec) {\n super.parseAddition(spec);\n this.scale(spec.scale);\n this.tooltipType(spec.tooltipType);\n this.target(spec.target?.data, spec.target?.filter);\n this.avoidMark(spec.avoidMark);\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n if (this.spec.scale) {\n const lastScaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n this.detach(lastScaleGrammar);\n this.spec.scale = undefined;\n }\n const scaleGrammar = isString(scale) ? this.view.getScaleById(scale) : scale;\n this.spec.scale = scaleGrammar;\n this.attach(scaleGrammar);\n this.commit();\n return this;\n }\n\n tooltipType(tooltipType: TooltipType | Nil) {\n this.spec.tooltipType = tooltipType;\n this.commit();\n return this;\n }\n\n target(data: IData | string | Nil, filter: string | ((datum: any, tooltipValue: any) => boolean) | Nil) {\n const lastData = this.spec.target?.data;\n if (lastData) {\n const lastDataGrammar = isString(lastData) ? this.view.getDataById(lastData) : lastData;\n this.detach(lastDataGrammar);\n this.spec.target = undefined;\n }\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n this._tooltipDataFilter = isString(filter)\n ? (datum: any, filterValue: any[]) => filterValue === datum[filter]\n : filter;\n if (dataGrammar) {\n this.attach(dataGrammar);\n this.spec.target = { data: dataGrammar, filter };\n }\n this.commit();\n return this;\n }\n\n avoidMark(mark: IMark | IMark[] | string | string[] | Nil) {\n if (this.spec.avoidMark) {\n const prevMarks = array(this.spec.avoidMark).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n this.detach(prevMarks);\n }\n this.spec.avoidMark = mark;\n const nextMarks = array(mark).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n this.attach(nextMarks);\n this._avoidMarks = nextMarks.filter(m => !isNil(m));\n this.commit();\n return this;\n }\n\n release() {\n (this._lastGroup as any)?.off?.('pointermove', this._onTooltipShow);\n (this._lastGroup as any)?.off?.('pointerleave', this._onTooltipHide);\n super.release();\n }\n\n protected init(stage: any, parameters: any) {\n super.init(stage, parameters);\n\n const groupGraphicItem = this.group ? this.group.getGroupGraphicItem() : stage.defaultLayer;\n if (this._lastGroup !== groupGraphicItem) {\n // FIXME: waiting for vRender to fix\n (this._lastGroup as any)?.off?.('pointermove', this._onTooltipShow);\n (this._lastGroup as any)?.off?.('pointerleave', this._onTooltipHide);\n }\n groupGraphicItem?.on?.('pointermove', this._onTooltipShow);\n groupGraphicItem?.on?.('pointerleave', this._onTooltipHide);\n this._lastGroup = groupGraphicItem;\n }\n\n protected _onTooltipShow = throttle((event: any, element: IElement) => {\n const tooltip = this.elements[0].getGraphicItem() as IGroup;\n\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const scale = scaleGrammar.getScale();\n const groupGraphicItem = this.group.getGroupGraphicItem();\n // FIXME: waiting for vRender to add transformed position to event\n const point = { x: 0, y: 0 };\n groupGraphicItem.globalTransMatrix.transformPoint(event.canvas, point);\n const groupSize = { width: groupGraphicItem.attribute.width, height: groupGraphicItem.attribute.height };\n\n // if pointer is not within the area of group, hide tooltip\n if (\n point.x < 0 ||\n point.x > groupGraphicItem.attribute.width ||\n point.y < 0 ||\n point.y > groupGraphicItem.attribute.height\n ) {\n tooltip.hideAll();\n return;\n }\n // if pointer is hovered on the avoided marks, hide tooltip\n const eventTargetMark = event.target?.[BridgeElementKey]?.mark;\n if (this._avoidMarks.includes(eventTargetMark)) {\n tooltip.hideAll();\n return;\n }\n\n const target = this.spec.target?.data;\n const lastDataGrammar = !target ? null : isString(target) ? this.view.getDataById(target) : target;\n const data = lastDataGrammar ? lastDataGrammar.getValue() : [];\n\n const filterValue = computeTooltipFilterValue(\n point,\n scale,\n this.spec.tooltipType,\n groupSize,\n this.spec.componentConfig\n );\n const tooltipDatum = this._tooltipDataFilter\n ? data.filter(datum => this._tooltipDataFilter(datum, filterValue))\n : [];\n\n tooltip.showAll();\n if (isEqualTooltipDatum(tooltipDatum, this._lastDatum)) {\n // only update pointer when element is not changed\n tooltip.setAttributes({ pointerX: point.x, pointerY: point.y } as any);\n return;\n }\n this._lastDatum = tooltipDatum;\n\n // compute tooltip bounds\n const boundsStart = { x: 0, y: 0 };\n groupGraphicItem.globalTransMatrix.transformPoint({ x: 0, y: 0 }, boundsStart);\n const boundsEnd = { x: 0, y: 0 };\n groupGraphicItem.globalTransMatrix.transformPoint(\n {\n x: this.view.getSignalById('width').getValue() as number,\n y: this.view.getSignalById('height').getValue() as number\n },\n boundsEnd\n );\n const bounds = new AABBBounds().set(boundsStart.x, boundsStart.y, boundsEnd.x, boundsEnd.y);\n const { title, content } = this._computeTitleContent(tooltipDatum);\n const theme = this.view.getCurrentTheme();\n const attributes = generateTooltipAttributes(point, title, content, bounds, theme, this._additionalEncodeResult);\n tooltip.setAttributes(attributes);\n }, 10);\n\n protected _onTooltipHide = (event: any) => {\n const tooltip = this.elements[0].getGraphicItem() as IGroup;\n tooltip.hideAll();\n };\n}\n\nexport const registerTooltip = () => {\n Factory.registerGraphicComponent(\n ComponentEnum.tooltip,\n (attrs: TooltipAttributes) => new TooltipComponent(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n ComponentEnum.dimensionTooltip,\n (attrs: TooltipAttributes) => new TooltipComponent(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.tooltip, Tooltip);\n\n Factory.registerComponent(ComponentEnum.dimensionTooltip, DimensionTooltip);\n};\n"]}