@visactor/vgrammar-core 0.7.7-alpha.2 → 0.8.0-alpha.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 (453) hide show
  1. package/cjs/component/datazoom.d.ts +7 -4
  2. package/cjs/component/datazoom.js +21 -43
  3. package/cjs/component/datazoom.js.map +1 -1
  4. package/cjs/component/index.d.ts +0 -2
  5. package/cjs/component/index.js +1 -19
  6. package/cjs/component/index.js.map +1 -1
  7. package/cjs/component/legend.d.ts +1 -3
  8. package/cjs/component/legend.js +5 -26
  9. package/cjs/component/legend.js.map +1 -1
  10. package/cjs/component/player.d.ts +1 -2
  11. package/cjs/component/player.js +15 -31
  12. package/cjs/component/player.js.map +1 -1
  13. package/cjs/component/scale.d.ts +1 -0
  14. package/cjs/component/scale.js +3 -0
  15. package/cjs/component/scale.js.map +1 -1
  16. package/cjs/component/scrollbar.d.ts +3 -4
  17. package/cjs/component/scrollbar.js +12 -54
  18. package/cjs/component/scrollbar.js.map +1 -1
  19. package/cjs/component/slider.d.ts +2 -5
  20. package/cjs/component/slider.js +4 -26
  21. package/cjs/component/slider.js.map +1 -1
  22. package/cjs/core/factory.d.ts +4 -1
  23. package/cjs/core/factory.js +9 -2
  24. package/cjs/core/factory.js.map +1 -1
  25. package/cjs/glyph/link-path.js +1 -2
  26. package/cjs/glyph/ripple.js +2 -2
  27. package/cjs/glyph/ripple.js.map +1 -1
  28. package/cjs/graph/animation/animate.js +25 -19
  29. package/cjs/graph/animation/animate.js.map +1 -1
  30. package/cjs/graph/animation/attribute.js +6 -6
  31. package/cjs/graph/animation/attribute.js.map +1 -1
  32. package/cjs/graph/attributes/index.js +1 -1
  33. package/cjs/graph/attributes/index.js.map +1 -1
  34. package/cjs/graph/canvas-renderer.js +2 -1
  35. package/cjs/graph/element.js +2 -2
  36. package/cjs/graph/element.js.map +1 -1
  37. package/cjs/graph/enums.d.ts +25 -8
  38. package/cjs/graph/enums.js +23 -14
  39. package/cjs/graph/enums.js.map +1 -1
  40. package/cjs/graph/mark/encode.d.ts +0 -3
  41. package/cjs/graph/mark/encode.js +3 -12
  42. package/cjs/graph/mark/encode.js.map +1 -1
  43. package/cjs/graph/util/events-extend.js +1 -1
  44. package/cjs/graph/util/events-extend.js.map +1 -1
  45. package/cjs/index.d.ts +3 -1
  46. package/cjs/index.js +2 -2
  47. package/cjs/index.js.map +1 -1
  48. package/cjs/interactions/base-tooltip.d.ts +29 -0
  49. package/cjs/interactions/base-tooltip.js +74 -0
  50. package/cjs/interactions/base-tooltip.js.map +1 -0
  51. package/cjs/interactions/base.d.ts +14 -0
  52. package/cjs/interactions/base.js +41 -0
  53. package/cjs/interactions/base.js.map +1 -0
  54. package/cjs/interactions/brush-active.d.ts +17 -0
  55. package/cjs/interactions/brush-active.js +27 -0
  56. package/cjs/interactions/brush-active.js.map +1 -0
  57. package/cjs/interactions/brush-base.d.ts +43 -0
  58. package/cjs/interactions/brush-base.js +106 -0
  59. package/cjs/interactions/brush-base.js.map +1 -0
  60. package/cjs/interactions/brush-filter.d.ts +24 -0
  61. package/cjs/interactions/brush-filter.js +34 -0
  62. package/cjs/interactions/brush-filter.js.map +1 -0
  63. package/cjs/interactions/brush-highlight.d.ts +17 -0
  64. package/cjs/interactions/brush-highlight.js +34 -0
  65. package/cjs/interactions/brush-highlight.js.map +1 -0
  66. package/cjs/interactions/crosshair.d.ts +53 -0
  67. package/cjs/{component → interactions}/crosshair.js +80 -79
  68. package/cjs/interactions/crosshair.js.map +1 -0
  69. package/cjs/interactions/datazoom-filter.d.ts +13 -0
  70. package/cjs/interactions/datazoom-filter.js +42 -0
  71. package/cjs/interactions/datazoom-filter.js.map +1 -0
  72. package/cjs/interactions/dimension-tooltip.d.ts +18 -0
  73. package/cjs/interactions/dimension-tooltip.js +99 -0
  74. package/cjs/interactions/dimension-tooltip.js.map +1 -0
  75. package/cjs/interactions/drill-down.d.ts +25 -0
  76. package/cjs/interactions/drill-down.js +48 -0
  77. package/cjs/interactions/drill-down.js.map +1 -0
  78. package/cjs/interactions/element-active-by-legend.d.ts +17 -0
  79. package/cjs/interactions/element-active-by-legend.js +44 -0
  80. package/cjs/interactions/element-active-by-legend.js.map +1 -0
  81. package/cjs/interactions/element-active.d.ts +16 -0
  82. package/cjs/interactions/element-active.js +33 -0
  83. package/cjs/interactions/element-active.js.map +1 -0
  84. package/cjs/interactions/element-highlight-by-group.d.ts +17 -0
  85. package/cjs/interactions/element-highlight-by-group.js +53 -0
  86. package/cjs/interactions/element-highlight-by-group.js.map +1 -0
  87. package/cjs/interactions/element-highlight-by-key.d.ts +17 -0
  88. package/cjs/interactions/element-highlight-by-key.js +53 -0
  89. package/cjs/interactions/element-highlight-by-key.js.map +1 -0
  90. package/cjs/interactions/element-highlight-by-legend.d.ts +17 -0
  91. package/cjs/interactions/element-highlight-by-legend.js +47 -0
  92. package/cjs/interactions/element-highlight-by-legend.js.map +1 -0
  93. package/cjs/interactions/element-highlight-by-name.d.ts +18 -0
  94. package/cjs/interactions/element-highlight-by-name.js +59 -0
  95. package/cjs/interactions/element-highlight-by-name.js.map +1 -0
  96. package/cjs/interactions/element-highlight.d.ts +17 -0
  97. package/cjs/interactions/element-highlight.js +48 -0
  98. package/cjs/interactions/element-highlight.js.map +1 -0
  99. package/cjs/interactions/element-select.d.ts +18 -0
  100. package/cjs/interactions/element-select.js +42 -0
  101. package/cjs/interactions/element-select.js.map +1 -0
  102. package/cjs/interactions/filter.d.ts +20 -0
  103. package/cjs/interactions/filter.js +37 -0
  104. package/cjs/interactions/filter.js.map +1 -0
  105. package/cjs/interactions/fish-eye.d.ts +38 -0
  106. package/cjs/interactions/fish-eye.js +109 -0
  107. package/cjs/interactions/fish-eye.js.map +1 -0
  108. package/cjs/interactions/index.d.ts +50 -0
  109. package/cjs/interactions/index.js +386 -0
  110. package/cjs/interactions/index.js.map +1 -0
  111. package/cjs/interactions/legend-filter.d.ts +13 -0
  112. package/cjs/interactions/legend-filter.js +33 -0
  113. package/cjs/interactions/legend-filter.js.map +1 -0
  114. package/cjs/interactions/player-filter.d.ts +14 -0
  115. package/cjs/interactions/player-filter.js +32 -0
  116. package/cjs/interactions/player-filter.js.map +1 -0
  117. package/cjs/interactions/roll-up.d.ts +16 -0
  118. package/cjs/interactions/roll-up.js +47 -0
  119. package/cjs/interactions/roll-up.js.map +1 -0
  120. package/cjs/interactions/scrollbar-filter.d.ts +13 -0
  121. package/cjs/interactions/scrollbar-filter.js +54 -0
  122. package/cjs/interactions/scrollbar-filter.js.map +1 -0
  123. package/cjs/interactions/slider-filter.d.ts +13 -0
  124. package/cjs/interactions/slider-filter.js +32 -0
  125. package/cjs/interactions/slider-filter.js.map +1 -0
  126. package/cjs/interactions/tooltip.d.ts +15 -0
  127. package/cjs/interactions/tooltip.js +62 -0
  128. package/cjs/interactions/tooltip.js.map +1 -0
  129. package/cjs/interactions/view-drag-mixin.d.ts +22 -0
  130. package/cjs/interactions/view-drag-mixin.js +52 -0
  131. package/cjs/interactions/view-drag-mixin.js.map +1 -0
  132. package/cjs/interactions/view-drag.d.ts +19 -0
  133. package/cjs/interactions/view-drag.js +49 -0
  134. package/cjs/interactions/view-drag.js.map +1 -0
  135. package/cjs/interactions/view-navigation-base.d.ts +17 -0
  136. package/cjs/interactions/view-navigation-base.js +81 -0
  137. package/cjs/interactions/view-navigation-base.js.map +1 -0
  138. package/cjs/interactions/view-roam.d.ts +30 -0
  139. package/cjs/interactions/view-roam.js +93 -0
  140. package/cjs/interactions/view-roam.js.map +1 -0
  141. package/cjs/interactions/view-scroll-mixin.d.ts +10 -0
  142. package/cjs/interactions/view-scroll-mixin.js +45 -0
  143. package/cjs/interactions/view-scroll-mixin.js.map +1 -0
  144. package/cjs/interactions/view-scroll.d.ts +17 -0
  145. package/cjs/interactions/view-scroll.js +37 -0
  146. package/cjs/interactions/view-scroll.js.map +1 -0
  147. package/cjs/interactions/view-utils.d.ts +14 -0
  148. package/cjs/interactions/view-utils.js +73 -0
  149. package/cjs/interactions/view-utils.js.map +1 -0
  150. package/cjs/interactions/view-zoom-mixin.d.ts +29 -0
  151. package/cjs/interactions/view-zoom-mixin.js +77 -0
  152. package/cjs/interactions/view-zoom-mixin.js.map +1 -0
  153. package/cjs/interactions/view-zoom.d.ts +23 -0
  154. package/cjs/interactions/view-zoom.js +53 -0
  155. package/cjs/interactions/view-zoom.js.map +1 -0
  156. package/cjs/parse/coordinate.js +1 -1
  157. package/cjs/parse/event.d.ts +2 -0
  158. package/cjs/parse/event.js +8 -4
  159. package/cjs/parse/event.js.map +1 -1
  160. package/cjs/parse/mark.js +2 -1
  161. package/cjs/parse/option.js +1 -1
  162. package/cjs/parse/scale.js +1 -1
  163. package/cjs/parse/transform.js +1 -1
  164. package/cjs/parse/util.js +1 -1
  165. package/cjs/parse/view.js +1 -1
  166. package/cjs/semantic-marks/cell.js +4 -4
  167. package/cjs/semantic-marks/cell.js.map +1 -1
  168. package/cjs/semantic-marks/interval.js +1 -1
  169. package/cjs/semantic-marks/text.js +1 -1
  170. package/cjs/theme/dark.js +1 -1
  171. package/cjs/theme/default.js +1 -1
  172. package/cjs/theme/theme-manager.js +1 -1
  173. package/cjs/transforms/index.js +1 -1
  174. package/cjs/transforms/mark/dodge.js +4 -4
  175. package/cjs/transforms/mark/dodge.js.map +1 -1
  176. package/cjs/transforms/mark/jitter.js +2 -2
  177. package/cjs/transforms/mark/jitter.js.map +1 -1
  178. package/cjs/types/animate.js +1 -1
  179. package/cjs/types/base.js +1 -1
  180. package/cjs/types/component.d.ts +16 -88
  181. package/cjs/types/component.js +1 -1
  182. package/cjs/types/component.js.map +1 -1
  183. package/cjs/types/coordinate.js +2 -1
  184. package/cjs/types/data.js +1 -1
  185. package/cjs/types/dataflow.js +1 -1
  186. package/cjs/types/element.js +1 -1
  187. package/cjs/types/event.d.ts +11 -4
  188. package/cjs/types/event.js +1 -1
  189. package/cjs/types/event.js.map +1 -1
  190. package/cjs/types/glyph.js +1 -1
  191. package/cjs/types/grammar.d.ts +5 -1
  192. package/cjs/types/grammar.js +1 -1
  193. package/cjs/types/grammar.js.map +1 -1
  194. package/cjs/types/hooks.js +1 -1
  195. package/cjs/types/index.d.ts +1 -0
  196. package/cjs/types/index.js +2 -1
  197. package/cjs/types/index.js.map +1 -1
  198. package/cjs/types/interaction.d.ts +353 -0
  199. package/cjs/types/interaction.js +6 -0
  200. package/cjs/types/interaction.js.map +1 -0
  201. package/cjs/types/mark.d.ts +1 -2
  202. package/cjs/types/mark.js.map +1 -1
  203. package/cjs/types/view.d.ts +12 -13
  204. package/cjs/types/view.js.map +1 -1
  205. package/cjs/util/scale.d.ts +4 -0
  206. package/cjs/util/scale.js +24 -0
  207. package/cjs/util/scale.js.map +1 -0
  208. package/cjs/view/View.d.ts +8 -12
  209. package/cjs/view/View.js +43 -68
  210. package/cjs/view/View.js.map +1 -1
  211. package/cjs/view/component.d.ts +1 -5
  212. package/cjs/view/component.js +1 -19
  213. package/cjs/view/component.js.map +1 -1
  214. package/cjs/view/dataflow.js +1 -1
  215. package/cjs/view/dataflow.js.map +1 -1
  216. package/cjs/view/events.d.ts +1 -1
  217. package/cjs/view/mark.js +12 -10
  218. package/cjs/view/mark.js.map +1 -1
  219. package/cjs/view/scale.d.ts +7 -1
  220. package/cjs/view/scale.js +17 -3
  221. package/cjs/view/scale.js.map +1 -1
  222. package/es/component/datazoom.d.ts +7 -4
  223. package/es/component/datazoom.js +26 -42
  224. package/es/component/datazoom.js.map +1 -1
  225. package/es/component/index.d.ts +0 -2
  226. package/es/component/index.js +0 -4
  227. package/es/component/index.js.map +1 -1
  228. package/es/component/legend.d.ts +1 -3
  229. package/es/component/legend.js +11 -26
  230. package/es/component/legend.js.map +1 -1
  231. package/es/component/player.d.ts +1 -2
  232. package/es/component/player.js +17 -30
  233. package/es/component/player.js.map +1 -1
  234. package/es/component/scale.d.ts +1 -0
  235. package/es/component/scale.js +3 -0
  236. package/es/component/scale.js.map +1 -1
  237. package/es/component/scrollbar.d.ts +3 -4
  238. package/es/component/scrollbar.js +17 -53
  239. package/es/component/scrollbar.js.map +1 -1
  240. package/es/component/slider.d.ts +2 -5
  241. package/es/component/slider.js +9 -25
  242. package/es/component/slider.js.map +1 -1
  243. package/es/core/factory.d.ts +4 -1
  244. package/es/core/factory.js +9 -2
  245. package/es/core/factory.js.map +1 -1
  246. package/es/glyph/boxplot.js +2 -1
  247. package/es/glyph/link-path.js +1 -2
  248. package/es/glyph/ripple.js +2 -2
  249. package/es/glyph/ripple.js.map +1 -1
  250. package/es/graph/animation/animate.js +24 -19
  251. package/es/graph/animation/animate.js.map +1 -1
  252. package/es/graph/animation/attribute.js +6 -6
  253. package/es/graph/animation/attribute.js.map +1 -1
  254. package/es/graph/attributes/index.js +1 -1
  255. package/es/graph/attributes/index.js.map +1 -1
  256. package/es/graph/element.js +2 -2
  257. package/es/graph/element.js.map +1 -1
  258. package/es/graph/enums.d.ts +25 -8
  259. package/es/graph/enums.js +27 -11
  260. package/es/graph/enums.js.map +1 -1
  261. package/es/graph/mark/encode.d.ts +0 -3
  262. package/es/graph/mark/encode.js +0 -10
  263. package/es/graph/mark/encode.js.map +1 -1
  264. package/es/graph/util/events-extend.js +1 -1
  265. package/es/graph/util/events-extend.js.map +1 -1
  266. package/es/index.d.ts +3 -1
  267. package/es/index.js +5 -1
  268. package/es/index.js.map +1 -1
  269. package/es/interactions/base-tooltip.d.ts +29 -0
  270. package/es/interactions/base-tooltip.js +73 -0
  271. package/es/interactions/base-tooltip.js.map +1 -0
  272. package/es/interactions/base.d.ts +14 -0
  273. package/es/interactions/base.js +32 -0
  274. package/es/interactions/base.js.map +1 -0
  275. package/es/interactions/brush-active.d.ts +17 -0
  276. package/es/interactions/brush-active.js +23 -0
  277. package/es/interactions/brush-active.js.map +1 -0
  278. package/es/interactions/brush-base.d.ts +43 -0
  279. package/es/interactions/brush-base.js +103 -0
  280. package/es/interactions/brush-base.js.map +1 -0
  281. package/es/interactions/brush-filter.d.ts +24 -0
  282. package/es/interactions/brush-filter.js +32 -0
  283. package/es/interactions/brush-filter.js.map +1 -0
  284. package/es/interactions/brush-highlight.d.ts +17 -0
  285. package/es/interactions/brush-highlight.js +31 -0
  286. package/es/interactions/brush-highlight.js.map +1 -0
  287. package/es/interactions/crosshair.d.ts +53 -0
  288. package/es/{component → interactions}/crosshair.js +82 -81
  289. package/es/interactions/crosshair.js.map +1 -0
  290. package/es/interactions/datazoom-filter.d.ts +13 -0
  291. package/es/interactions/datazoom-filter.js +40 -0
  292. package/es/interactions/datazoom-filter.js.map +1 -0
  293. package/es/interactions/dimension-tooltip.d.ts +18 -0
  294. package/es/interactions/dimension-tooltip.js +99 -0
  295. package/es/interactions/dimension-tooltip.js.map +1 -0
  296. package/es/interactions/drill-down.d.ts +25 -0
  297. package/es/interactions/drill-down.js +46 -0
  298. package/es/interactions/drill-down.js.map +1 -0
  299. package/es/interactions/element-active-by-legend.d.ts +17 -0
  300. package/es/interactions/element-active-by-legend.js +43 -0
  301. package/es/interactions/element-active-by-legend.js.map +1 -0
  302. package/es/interactions/element-active.d.ts +16 -0
  303. package/es/interactions/element-active.js +29 -0
  304. package/es/interactions/element-active.js.map +1 -0
  305. package/es/interactions/element-highlight-by-group.d.ts +17 -0
  306. package/es/interactions/element-highlight-by-group.js +50 -0
  307. package/es/interactions/element-highlight-by-group.js.map +1 -0
  308. package/es/interactions/element-highlight-by-key.d.ts +17 -0
  309. package/es/interactions/element-highlight-by-key.js +50 -0
  310. package/es/interactions/element-highlight-by-key.js.map +1 -0
  311. package/es/interactions/element-highlight-by-legend.d.ts +17 -0
  312. package/es/interactions/element-highlight-by-legend.js +46 -0
  313. package/es/interactions/element-highlight-by-legend.js.map +1 -0
  314. package/es/interactions/element-highlight-by-name.d.ts +18 -0
  315. package/es/interactions/element-highlight-by-name.js +56 -0
  316. package/es/interactions/element-highlight-by-name.js.map +1 -0
  317. package/es/interactions/element-highlight.d.ts +17 -0
  318. package/es/interactions/element-highlight.js +43 -0
  319. package/es/interactions/element-highlight.js.map +1 -0
  320. package/es/interactions/element-select.d.ts +18 -0
  321. package/es/interactions/element-select.js +38 -0
  322. package/es/interactions/element-select.js.map +1 -0
  323. package/es/interactions/filter.d.ts +20 -0
  324. package/es/interactions/filter.js +31 -0
  325. package/es/interactions/filter.js.map +1 -0
  326. package/es/interactions/fish-eye.d.ts +38 -0
  327. package/es/interactions/fish-eye.js +105 -0
  328. package/es/interactions/fish-eye.js.map +1 -0
  329. package/es/interactions/index.d.ts +50 -0
  330. package/es/interactions/index.js +148 -0
  331. package/es/interactions/index.js.map +1 -0
  332. package/es/interactions/legend-filter.d.ts +13 -0
  333. package/es/interactions/legend-filter.js +32 -0
  334. package/es/interactions/legend-filter.js.map +1 -0
  335. package/es/interactions/player-filter.d.ts +14 -0
  336. package/es/interactions/player-filter.js +32 -0
  337. package/es/interactions/player-filter.js.map +1 -0
  338. package/es/interactions/roll-up.d.ts +16 -0
  339. package/es/interactions/roll-up.js +45 -0
  340. package/es/interactions/roll-up.js.map +1 -0
  341. package/es/interactions/scrollbar-filter.d.ts +13 -0
  342. package/es/interactions/scrollbar-filter.js +50 -0
  343. package/es/interactions/scrollbar-filter.js.map +1 -0
  344. package/es/interactions/slider-filter.d.ts +13 -0
  345. package/es/interactions/slider-filter.js +29 -0
  346. package/es/interactions/slider-filter.js.map +1 -0
  347. package/es/interactions/tooltip.d.ts +15 -0
  348. package/es/interactions/tooltip.js +58 -0
  349. package/es/interactions/tooltip.js.map +1 -0
  350. package/es/interactions/view-drag-mixin.d.ts +22 -0
  351. package/es/interactions/view-drag-mixin.js +46 -0
  352. package/es/interactions/view-drag-mixin.js.map +1 -0
  353. package/es/interactions/view-drag.d.ts +19 -0
  354. package/es/interactions/view-drag.js +47 -0
  355. package/es/interactions/view-drag.js.map +1 -0
  356. package/es/interactions/view-navigation-base.d.ts +17 -0
  357. package/es/interactions/view-navigation-base.js +78 -0
  358. package/es/interactions/view-navigation-base.js.map +1 -0
  359. package/es/interactions/view-roam.d.ts +30 -0
  360. package/es/interactions/view-roam.js +91 -0
  361. package/es/interactions/view-roam.js.map +1 -0
  362. package/es/interactions/view-scroll-mixin.d.ts +10 -0
  363. package/es/interactions/view-scroll-mixin.js +37 -0
  364. package/es/interactions/view-scroll-mixin.js.map +1 -0
  365. package/es/interactions/view-scroll.d.ts +17 -0
  366. package/es/interactions/view-scroll.js +35 -0
  367. package/es/interactions/view-scroll.js.map +1 -0
  368. package/es/interactions/view-utils.d.ts +14 -0
  369. package/es/interactions/view-utils.js +60 -0
  370. package/es/interactions/view-utils.js.map +1 -0
  371. package/es/interactions/view-zoom-mixin.d.ts +29 -0
  372. package/es/interactions/view-zoom-mixin.js +68 -0
  373. package/es/interactions/view-zoom-mixin.js.map +1 -0
  374. package/es/interactions/view-zoom.d.ts +23 -0
  375. package/es/interactions/view-zoom.js +51 -0
  376. package/es/interactions/view-zoom.js.map +1 -0
  377. package/es/parse/coordinate.js +1 -1
  378. package/es/parse/event.d.ts +2 -0
  379. package/es/parse/event.js +6 -2
  380. package/es/parse/event.js.map +1 -1
  381. package/es/parse/mark.js +2 -1
  382. package/es/parse/option.js +1 -1
  383. package/es/parse/scale.js +1 -1
  384. package/es/parse/transform.js +1 -1
  385. package/es/parse/util.js +1 -1
  386. package/es/parse/view.js +1 -1
  387. package/es/semantic-marks/cell.js +4 -2
  388. package/es/semantic-marks/cell.js.map +1 -1
  389. package/es/semantic-marks/interval.js +1 -1
  390. package/es/semantic-marks/text.js +1 -1
  391. package/es/theme/dark.js +1 -1
  392. package/es/theme/default.js +1 -1
  393. package/es/theme/theme-manager.js +1 -1
  394. package/es/transforms/index.js +1 -1
  395. package/es/transforms/mark/dodge.js +2 -2
  396. package/es/transforms/mark/dodge.js.map +1 -1
  397. package/es/transforms/mark/jitter.js +2 -2
  398. package/es/transforms/mark/jitter.js.map +1 -1
  399. package/es/types/animate.js +1 -1
  400. package/es/types/base.js +1 -1
  401. package/es/types/component.d.ts +16 -88
  402. package/es/types/component.js +1 -1
  403. package/es/types/component.js.map +1 -1
  404. package/es/types/coordinate.js +2 -1
  405. package/es/types/data.js +1 -1
  406. package/es/types/dataflow.js +1 -1
  407. package/es/types/element.js +1 -1
  408. package/es/types/event.d.ts +11 -4
  409. package/es/types/event.js +1 -1
  410. package/es/types/event.js.map +1 -1
  411. package/es/types/glyph.js +1 -1
  412. package/es/types/grammar.d.ts +5 -1
  413. package/es/types/grammar.js +1 -1
  414. package/es/types/grammar.js.map +1 -1
  415. package/es/types/hooks.js +1 -1
  416. package/es/types/index.d.ts +1 -0
  417. package/es/types/index.js +2 -0
  418. package/es/types/index.js.map +1 -1
  419. package/es/types/interaction.d.ts +353 -0
  420. package/es/types/interaction.js +2 -0
  421. package/es/types/interaction.js.map +1 -0
  422. package/es/types/mark.d.ts +1 -2
  423. package/es/types/mark.js.map +1 -1
  424. package/es/types/view.d.ts +12 -13
  425. package/es/types/view.js.map +1 -1
  426. package/es/util/scale.d.ts +4 -0
  427. package/es/util/scale.js +15 -0
  428. package/es/util/scale.js.map +1 -0
  429. package/es/view/View.d.ts +8 -12
  430. package/es/view/View.js +48 -68
  431. package/es/view/View.js.map +1 -1
  432. package/es/view/component.d.ts +1 -5
  433. package/es/view/component.js +0 -20
  434. package/es/view/component.js.map +1 -1
  435. package/es/view/dataflow.js +1 -1
  436. package/es/view/dataflow.js.map +1 -1
  437. package/es/view/events.d.ts +1 -1
  438. package/es/view/mark.js +12 -10
  439. package/es/view/mark.js.map +1 -1
  440. package/es/view/scale.d.ts +7 -1
  441. package/es/view/scale.js +17 -2
  442. package/es/view/scale.js.map +1 -1
  443. package/package.json +10 -10
  444. package/cjs/component/crosshair.d.ts +0 -50
  445. package/cjs/component/crosshair.js.map +0 -1
  446. package/cjs/component/tooltip.d.ts +0 -62
  447. package/cjs/component/tooltip.js +0 -305
  448. package/cjs/component/tooltip.js.map +0 -1
  449. package/es/component/crosshair.d.ts +0 -50
  450. package/es/component/crosshair.js.map +0 -1
  451. package/es/component/tooltip.d.ts +0 -62
  452. package/es/component/tooltip.js +0 -303
  453. package/es/component/tooltip.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import type { DataZoomAttributes } from '@visactor/vrender-components';
2
2
  import type { ChannelEncodeType, IData, IGroupMark, ITheme, IView, Nil, RecursivePartial, ScaleEncodeType } from '../types';
3
- import type { DatazoomFilterValue, DatazoomSpec, IDatazoom } from '../types/component';
3
+ import type { DatazoomSpec, IDatazoom } from '../types/component';
4
4
  import { Component } from '../view/component';
5
5
  export declare const generateDatazoomAttributes: (data: any[], theme?: ITheme, addition?: RecursivePartial<DataZoomAttributes>) => DataZoomAttributes;
6
6
  export declare class Datazoom extends Component implements IDatazoom {
@@ -9,11 +9,14 @@ export declare class Datazoom extends Component implements IDatazoom {
9
9
  constructor(view: IView, group?: IGroupMark);
10
10
  protected parseAddition(spec: DatazoomSpec): this;
11
11
  preview(data: IData | string | Nil, x: ScaleEncodeType | Nil, y: ScaleEncodeType | Nil, x1?: ChannelEncodeType | Nil, y1?: ChannelEncodeType | Nil): this;
12
- target(data: IData | string | Nil, filter: string | ((datum: any, value: DatazoomFilterValue) => boolean) | Nil): this;
13
12
  setStartEndValue(start?: number, end?: number): this;
13
+ getStartEndValue(): {
14
+ start: number;
15
+ end: number;
16
+ };
14
17
  addGraphicItem(attrs: any, groupKey?: string): any;
15
18
  protected _updateComponentEncoders(): void;
16
- private _invertDatazoomRatio;
17
- private _getDatazoomMainScale;
19
+ invertDatazoomRatio(ratio: number): any;
20
+ getDatazoomMainScale(): import("@visactor/vscale").IBaseScale;
18
21
  }
19
22
  export declare const registerDataZoom: () => void;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerDataZoom = exports.Datazoom = exports.generateDatazoomAttributes = void 0;
6
6
 
7
- const vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), graph_1 = require("../graph"), encode_1 = require("../graph/mark/encode"), component_1 = require("../view/component"), mark_1 = require("../parse/mark"), factory_1 = require("../core/factory"), generateDatazoomAttributes = (data, theme, addition) => {
7
+ const vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), graph_1 = require("../graph"), encode_1 = require("../graph/mark/encode"), component_1 = require("../view/component"), mark_1 = require("../parse/mark"), factory_1 = require("../core/factory"), datazoom_filter_1 = require("../interactions/datazoom-filter"), filter_1 = require("../interactions/filter"), generateDatazoomAttributes = (data, theme, addition) => {
8
8
  var _a;
9
9
  const datazoomTheme = null === (_a = null == theme ? void 0 : theme.components) || void 0 === _a ? void 0 : _a.datazoom;
10
10
  return data ? (0, vutils_1.merge)({}, datazoomTheme, {
@@ -19,9 +19,8 @@ class Datazoom extends component_1.Component {
19
19
  super(view, graph_1.ComponentEnum.datazoom, group), this.spec.componentType = graph_1.ComponentEnum.datazoom;
20
20
  }
21
21
  parseAddition(spec) {
22
- var _a, _b, _c, _d, _e, _f, _g;
22
+ var _a, _b, _c, _d, _e;
23
23
  return super.parseAddition(spec), this.preview(null === (_a = spec.preview) || void 0 === _a ? void 0 : _a.data, null === (_b = spec.preview) || void 0 === _b ? void 0 : _b.x, null === (_c = spec.preview) || void 0 === _c ? void 0 : _c.y, null === (_d = spec.preview) || void 0 === _d ? void 0 : _d.x1, null === (_e = spec.preview) || void 0 === _e ? void 0 : _e.y1),
24
- this.target(null === (_f = spec.target) || void 0 === _f ? void 0 : _f.data, null === (_g = spec.target) || void 0 === _g ? void 0 : _g.filter),
25
24
  this._updateComponentEncoders(), this;
26
25
  }
27
26
  preview(data, x, y, x1, y1) {
@@ -46,52 +45,30 @@ class Datazoom extends component_1.Component {
46
45
  }
47
46
  return this._updateComponentEncoders(), this.commit(), this;
48
47
  }
49
- target(data, filter) {
50
- var _a, _b, _c;
51
- const lastData = null === (_a = this.spec.target) || void 0 === _a ? void 0 : _a.data, lastDataGrammar = (0,
52
- vutils_1.isString)(lastData) ? this.view.getDataById(lastData) : lastData, datazoom = null === (_c = null === (_b = this.elements[0]) || void 0 === _b ? void 0 : _b.getGraphicItem) || void 0 === _c ? void 0 : _c.call(_b);
53
- lastDataGrammar && datazoom && datazoom.setUpdateStateCallback(null), this.spec.target = void 0;
54
- const dataGrammar = (0, vutils_1.isString)(data) ? this.view.getDataById(data) : data, dataFilter = (0,
55
- vutils_1.isString)(filter) ? (datum, filterValue) => {
56
- if ((0, vutils_1.isNil)(filterValue.start) || (0, vutils_1.isNil)(filterValue.end)) return !0;
57
- const scale = this._getDatazoomMainScale(), range = scale.range(), datumRatio = (scale.scale(datum[filter]) - range[0]) / (range[range.length - 1] - range[0]);
58
- return filterValue.startRatio <= datumRatio && filterValue.endRatio >= datumRatio;
59
- } : filter;
60
- return this._filterData(lastDataGrammar, dataGrammar, graph_1.ComponentDataRank.datazoom, (event => {
61
- const startRatio = event.start, endRatio = event.end;
62
- return {
63
- startRatio: startRatio,
64
- endRatio: endRatio,
65
- start: this._invertDatazoomRatio(startRatio),
66
- end: this._invertDatazoomRatio(endRatio)
67
- };
68
- }), dataFilter), dataGrammar && datazoom && (datazoom.setUpdateStateCallback(((start, end) => {
69
- this._filterCallback({
70
- start: start,
71
- end: end
72
- }, this.elements[0]);
73
- })), this.spec.target = {
74
- data: dataGrammar,
75
- filter: filter
76
- }), this;
77
- }
78
48
  setStartEndValue(start, end) {
79
49
  var _a, _b, _c;
80
50
  const datazoom = null === (_b = null === (_a = this.elements[0]) || void 0 === _a ? void 0 : _a.getGraphicItem) || void 0 === _b ? void 0 : _b.call(_a);
81
51
  return null === (_c = null == datazoom ? void 0 : datazoom.setStartAndEnd) || void 0 === _c || _c.call(datazoom, start, end),
82
52
  this;
83
53
  }
54
+ getStartEndValue() {
55
+ var _a, _b;
56
+ const datazoom = null === (_b = null === (_a = this.elements[0]) || void 0 === _a ? void 0 : _a.getGraphicItem) || void 0 === _b ? void 0 : _b.call(_a);
57
+ if (datazoom) {
58
+ const state = datazoom.state;
59
+ return {
60
+ start: state.start,
61
+ end: state.end
62
+ };
63
+ }
64
+ return null;
65
+ }
84
66
  addGraphicItem(attrs, groupKey) {
85
67
  var _a;
86
68
  const theme = this.view.getCurrentTheme(), initialAttributes = Object.assign({}, null === (_a = null == theme ? void 0 : theme.components) || void 0 === _a ? void 0 : _a.datazoom, attrs), graphicItem = factory_1.Factory.createGraphicComponent(this.componentType, initialAttributes), datazoom = graphicItem;
87
- return this._filterCallback && datazoom.setUpdateStateCallback(((start, end) => {
88
- this._filterCallback({
89
- start: start,
90
- end: end
91
- }, this.elements[0]);
92
- })), datazoom.setStatePointToData((state => {
69
+ return datazoom.setStatePointToData((state => {
93
70
  var _a;
94
- return this.spec.preview && null !== (_a = this._invertDatazoomRatio(state)) && void 0 !== _a ? _a : state;
71
+ return this.spec.preview && null !== (_a = this.invertDatazoomRatio(state)) && void 0 !== _a ? _a : state;
95
72
  })), datazoom.setPreviewCallbackX((datum => {
96
73
  var _a, _b;
97
74
  if ((null === (_a = this.spec.preview) || void 0 === _a ? void 0 : _a.x) && (null === (_b = this.spec.preview) || void 0 === _b ? void 0 : _b.data)) return (0,
@@ -135,15 +112,15 @@ class Datazoom extends component_1.Component {
135
112
  }), {});
136
113
  this._encoders = componentEncoders;
137
114
  }
138
- _invertDatazoomRatio(ratio) {
139
- const scale = this._getDatazoomMainScale();
115
+ invertDatazoomRatio(ratio) {
116
+ const scale = this.getDatazoomMainScale();
140
117
  if (scale) {
141
118
  const range = scale.range(), scaledValue = (range[range.length - 1] - range[0]) * ratio + range[0];
142
119
  return scale.invert(scaledValue);
143
120
  }
144
121
  return null;
145
122
  }
146
- _getDatazoomMainScale() {
123
+ getDatazoomMainScale() {
147
124
  var _a, _b, _c, _d;
148
125
  const datazoom = null === (_b = null === (_a = this.elements[0]) || void 0 === _a ? void 0 : _a.getGraphicItem) || void 0 === _b ? void 0 : _b.call(_a);
149
126
  if (datazoom && this.spec.preview) {
@@ -159,7 +136,8 @@ exports.Datazoom = Datazoom, Datazoom.componentType = graph_1.ComponentEnum.data
159
136
 
160
137
  const registerDataZoom = () => {
161
138
  factory_1.Factory.registerGraphicComponent(graph_1.ComponentEnum.datazoom, (attrs => new vrender_components_1.DataZoom(attrs))),
162
- factory_1.Factory.registerComponent(graph_1.ComponentEnum.datazoom, Datazoom);
139
+ factory_1.Factory.registerComponent(graph_1.ComponentEnum.datazoom, Datazoom), (0,
140
+ vutils_1.mixin)(filter_1.Filter, filter_1.FilterMixin), factory_1.Factory.registerInteraction(datazoom_filter_1.DatazoomFilter.type, datazoom_filter_1.DatazoomFilter);
163
141
  };
164
142
 
165
143
  exports.registerDataZoom = registerDataZoom;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/datazoom.ts"],"names":[],"mappings":"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","file":"datazoom.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DatazoomComponent } from '@visactor/vrender-components';\nimport { isNil, isString, merge } from '@visactor/vutils';\nimport { ComponentDataRank, ComponentEnum } from '../graph';\nimport type {\n BaseSignleEncodeSpec,\n ChannelEncodeType,\n IData,\n IElement,\n IGroupMark,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n ScaleEncodeType,\n StateEncodeSpec\n} from '../types';\nimport type { DatazoomFilterValue, DatazoomSpec, IDatazoom } from '../types/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Component } from '../view/component';\nimport { parseEncodeType } from '../parse/mark';\nimport { Factory } from '../core/factory';\n\nexport const generateDatazoomAttributes = (\n data: any[],\n theme?: ITheme,\n addition?: RecursivePartial<DataZoomAttributes>\n): DataZoomAttributes => {\n const datazoomTheme = theme?.components?.datazoom;\n if (!data) {\n return merge({}, datazoomTheme, addition ?? {});\n }\n\n return merge({}, datazoomTheme, { previewData: data }, addition ?? {});\n};\n\nexport class Datazoom extends Component implements IDatazoom {\n static readonly componentType: string = ComponentEnum.datazoom;\n protected declare spec: DatazoomSpec;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.datazoom, group);\n this.spec.componentType = ComponentEnum.datazoom;\n }\n\n protected parseAddition(spec: DatazoomSpec) {\n super.parseAddition(spec);\n this.preview(spec.preview?.data, spec.preview?.x, spec.preview?.y, spec.preview?.x1, spec.preview?.y1);\n this.target(spec.target?.data, spec.target?.filter);\n this._updateComponentEncoders();\n return this;\n }\n\n preview(\n data: IData | string | Nil,\n x: ScaleEncodeType | Nil,\n y: ScaleEncodeType | Nil,\n x1?: ChannelEncodeType | Nil,\n y1?: ChannelEncodeType | Nil\n ) {\n if (!isNil(this.spec.preview)) {\n const lastData = this.spec.preview.data;\n const lastDataGrammar = isString(lastData) ? this.view.getDataById(lastData) : lastData;\n this.detach(lastDataGrammar);\n this.detach(parseEncodeType(this.spec.preview.x, this.view));\n this.detach(parseEncodeType(this.spec.preview.y, this.view));\n this.detach(parseEncodeType(this.spec.preview.x1, this.view));\n this.detach(parseEncodeType(this.spec.preview.y1, this.view));\n }\n this.spec.preview = undefined;\n if (data) {\n this.spec.preview = { data, x, y, x1, y1 };\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n this.attach(dataGrammar);\n this.attach(parseEncodeType(x, this.view));\n this.attach(parseEncodeType(y, this.view));\n this.attach(parseEncodeType(x1, this.view));\n this.attach(parseEncodeType(y1, this.view));\n }\n this._updateComponentEncoders();\n this.commit();\n return this;\n }\n\n target(data: IData | string | Nil, filter: string | ((datum: any, value: DatazoomFilterValue) => boolean) | Nil) {\n const lastData = this.spec.target?.data;\n const lastDataGrammar = isString(lastData) ? this.view.getDataById(lastData) : lastData;\n // FIXME: datazoom should emit change event\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n if (lastDataGrammar && datazoom) {\n datazoom.setUpdateStateCallback(null);\n }\n this.spec.target = undefined;\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n const getFilterValue = (event: any): DatazoomFilterValue => {\n const startRatio = event.start;\n const endRatio = event.end;\n return {\n startRatio,\n endRatio,\n start: this._invertDatazoomRatio(startRatio),\n end: this._invertDatazoomRatio(endRatio)\n };\n };\n const dataFilter = isString(filter)\n ? (datum: any, filterValue: DatazoomFilterValue) => {\n if (isNil(filterValue.start) || isNil(filterValue.end)) {\n return true;\n }\n const scale = this._getDatazoomMainScale();\n const range = scale.range();\n const datumRatio = (scale.scale(datum[filter]) - range[0]) / (range[range.length - 1] - range[0]);\n return filterValue.startRatio <= datumRatio && filterValue.endRatio >= datumRatio;\n }\n : filter;\n this._filterData(lastDataGrammar, dataGrammar, ComponentDataRank.datazoom, getFilterValue, dataFilter);\n if (dataGrammar && datazoom) {\n datazoom.setUpdateStateCallback((start: number, end: number) => {\n this._filterCallback({ start, end }, this.elements[0]);\n });\n this.spec.target = { data: dataGrammar, filter };\n }\n return this;\n }\n\n setStartEndValue(start?: number, end?: number) {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n datazoom?.setStartAndEnd?.(start, end);\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const theme = this.view.getCurrentTheme();\n const initialAttributes = Object.assign({}, theme?.components?.datazoom, attrs);\n const graphicItem = Factory.createGraphicComponent(this.componentType, initialAttributes);\n const datazoom = graphicItem as unknown as DatazoomComponent;\n // FIXME: remove this logic when datazoom provides update event.\n if (this._filterCallback) {\n datazoom.setUpdateStateCallback((start: number, end: number) => {\n this._filterCallback({ start, end }, this.elements[0]);\n });\n }\n datazoom.setStatePointToData(state => {\n if (this.spec.preview) {\n return this._invertDatazoomRatio(state) ?? state;\n }\n return state;\n });\n\n datazoom.setPreviewCallbackX((datum: any) => {\n if (this.spec.preview?.x && this.spec.preview?.data) {\n return invokeEncoder({ x: this.spec.preview.x }, datum, this.elements[0], this.parameters()).x;\n }\n\n return undefined;\n });\n datazoom.setPreviewCallbackY((datum: any) => {\n if (this.spec.preview?.y && this.spec.preview?.data) {\n return invokeEncoder({ y: this.spec.preview.y }, datum, this.elements[0], this.parameters()).y;\n }\n\n return undefined;\n });\n\n datazoom.setPreviewCallbackX1((datum: any) => {\n if (this.spec.preview?.x1 && this.spec.preview?.data) {\n return invokeEncoder({ x1: this.spec.preview.x1 }, datum, this.elements[0], this.parameters()).x1;\n }\n\n return undefined;\n });\n datazoom.setPreviewCallbackY1((datum: any) => {\n if (this.spec.preview?.y1 && this.spec.preview?.data) {\n return invokeEncoder({ y1: this.spec.preview.y1 }, datum, this.elements[0], this.parameters()).y1;\n }\n\n return undefined;\n });\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const data = this.spec.preview?.data;\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\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 const theme = this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n return generateDatazoomAttributes(dataGrammar?.getValue?.(), theme, addition);\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _invertDatazoomRatio(ratio: number): any {\n const scale = this._getDatazoomMainScale();\n if (scale) {\n const range = scale.range();\n const scaledValue = (range[range.length - 1] - range[0]) * ratio + range[0];\n return scale.invert(scaledValue);\n }\n return null;\n }\n\n private _getDatazoomMainScale() {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n if (datazoom && this.spec.preview) {\n const isHorizontal = datazoom.attribute.orient === 'top' || datazoom.attribute.orient === 'bottom';\n const scale = isHorizontal ? this.spec.preview.x?.scale : this.spec.preview.y?.scale;\n const scaleGrammar = isString(scale) ? this.view.getScaleById(scale) : scale;\n return scaleGrammar?.getScale();\n }\n return null;\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerGraphicComponent(\n ComponentEnum.datazoom,\n (attrs: DataZoomAttributes) => new DatazoomComponent(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.datazoom, Datazoom);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/datazoom.ts"],"names":[],"mappings":"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","file":"datazoom.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DatazoomComponent } from '@visactor/vrender-components';\nimport { isNil, isString, merge, mixin } from '@visactor/vutils';\nimport { ComponentEnum } from '../graph';\nimport type {\n BaseSignleEncodeSpec,\n ChannelEncodeType,\n IData,\n IElement,\n IGroupMark,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n ScaleEncodeType,\n StateEncodeSpec\n} from '../types';\nimport type { DatazoomSpec, IDatazoom } from '../types/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Component } from '../view/component';\nimport { parseEncodeType } from '../parse/mark';\nimport { Factory } from '../core/factory';\nimport { DatazoomFilter } from '../interactions/datazoom-filter';\nimport { Filter, FilterMixin } from '../interactions/filter';\n\nexport const generateDatazoomAttributes = (\n data: any[],\n theme?: ITheme,\n addition?: RecursivePartial<DataZoomAttributes>\n): DataZoomAttributes => {\n const datazoomTheme = theme?.components?.datazoom;\n if (!data) {\n return merge({}, datazoomTheme, addition ?? {});\n }\n\n return merge({}, datazoomTheme, { previewData: data }, addition ?? {});\n};\n\nexport class Datazoom extends Component implements IDatazoom {\n static readonly componentType: string = ComponentEnum.datazoom;\n protected declare spec: DatazoomSpec;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.datazoom, group);\n this.spec.componentType = ComponentEnum.datazoom;\n }\n\n protected parseAddition(spec: DatazoomSpec) {\n super.parseAddition(spec);\n this.preview(spec.preview?.data, spec.preview?.x, spec.preview?.y, spec.preview?.x1, spec.preview?.y1);\n this._updateComponentEncoders();\n return this;\n }\n\n preview(\n data: IData | string | Nil,\n x: ScaleEncodeType | Nil,\n y: ScaleEncodeType | Nil,\n x1?: ChannelEncodeType | Nil,\n y1?: ChannelEncodeType | Nil\n ) {\n if (!isNil(this.spec.preview)) {\n const lastData = this.spec.preview.data;\n const lastDataGrammar = isString(lastData) ? this.view.getDataById(lastData) : lastData;\n this.detach(lastDataGrammar);\n this.detach(parseEncodeType(this.spec.preview.x, this.view));\n this.detach(parseEncodeType(this.spec.preview.y, this.view));\n this.detach(parseEncodeType(this.spec.preview.x1, this.view));\n this.detach(parseEncodeType(this.spec.preview.y1, this.view));\n }\n this.spec.preview = undefined;\n if (data) {\n this.spec.preview = { data, x, y, x1, y1 };\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n this.attach(dataGrammar);\n this.attach(parseEncodeType(x, this.view));\n this.attach(parseEncodeType(y, this.view));\n this.attach(parseEncodeType(x1, this.view));\n this.attach(parseEncodeType(y1, this.view));\n }\n this._updateComponentEncoders();\n this.commit();\n return this;\n }\n\n setStartEndValue(start?: number, end?: number) {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n datazoom?.setStartAndEnd?.(start, end);\n return this;\n }\n\n getStartEndValue() {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n\n if (datazoom) {\n const state = datazoom.state;\n return {\n start: state.start,\n end: state.end\n };\n }\n\n return null;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const theme = this.view.getCurrentTheme();\n const initialAttributes = Object.assign({}, theme?.components?.datazoom, attrs);\n const graphicItem = Factory.createGraphicComponent(this.componentType, initialAttributes);\n const datazoom = graphicItem as unknown as DatazoomComponent;\n datazoom.setStatePointToData(state => {\n if (this.spec.preview) {\n return this.invertDatazoomRatio(state) ?? state;\n }\n return state;\n });\n\n datazoom.setPreviewCallbackX((datum: any) => {\n if (this.spec.preview?.x && this.spec.preview?.data) {\n return invokeEncoder({ x: this.spec.preview.x }, datum, this.elements[0], this.parameters()).x;\n }\n\n return undefined;\n });\n datazoom.setPreviewCallbackY((datum: any) => {\n if (this.spec.preview?.y && this.spec.preview?.data) {\n return invokeEncoder({ y: this.spec.preview.y }, datum, this.elements[0], this.parameters()).y;\n }\n\n return undefined;\n });\n\n datazoom.setPreviewCallbackX1((datum: any) => {\n if (this.spec.preview?.x1 && this.spec.preview?.data) {\n return invokeEncoder({ x1: this.spec.preview.x1 }, datum, this.elements[0], this.parameters()).x1;\n }\n\n return undefined;\n });\n datazoom.setPreviewCallbackY1((datum: any) => {\n if (this.spec.preview?.y1 && this.spec.preview?.data) {\n return invokeEncoder({ y1: this.spec.preview.y1 }, datum, this.elements[0], this.parameters()).y1;\n }\n\n return undefined;\n });\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const data = this.spec.preview?.data;\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\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 const theme = this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n return generateDatazoomAttributes(dataGrammar?.getValue?.(), theme, addition);\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n invertDatazoomRatio(ratio: number): any {\n const scale = this.getDatazoomMainScale();\n if (scale) {\n const range = scale.range();\n const scaledValue = (range[range.length - 1] - range[0]) * ratio + range[0];\n return scale.invert(scaledValue);\n }\n return null;\n }\n\n getDatazoomMainScale() {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n if (datazoom && this.spec.preview) {\n const isHorizontal = datazoom.attribute.orient === 'top' || datazoom.attribute.orient === 'bottom';\n const scale = isHorizontal ? this.spec.preview.x?.scale : this.spec.preview.y?.scale;\n const scaleGrammar = isString(scale) ? this.view.getScaleById(scale) : scale;\n return scaleGrammar?.getScale();\n }\n return null;\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerGraphicComponent(\n ComponentEnum.datazoom,\n (attrs: DataZoomAttributes) => new DatazoomComponent(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.datazoom, Datazoom);\n\n mixin(Filter, FilterMixin);\n Factory.registerInteraction(DatazoomFilter.type, DatazoomFilter);\n};\n"]}
@@ -1,11 +1,9 @@
1
1
  export { registerAxis } from './axis';
2
2
  export { registerLegend } from './legend';
3
- export { registerCrosshair } from './crosshair';
4
3
  export { registerSlider } from './slider';
5
4
  export { registerLabel } from './label';
6
5
  export { registerDataZoom } from './datazoom';
7
6
  export { registerPlayer } from './player';
8
- export { registerTooltip } from './tooltip';
9
7
  export { registerTitle } from './title';
10
8
  export { registerGrid } from './grid';
11
9
  export { registerScrollbar } from './scrollbar';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.registerScrollbar = exports.registerGrid = exports.registerTitle = exports.registerTooltip = exports.registerPlayer = exports.registerDataZoom = exports.registerLabel = exports.registerSlider = exports.registerCrosshair = exports.registerLegend = exports.registerAxis = void 0;
5
+ }), exports.registerScrollbar = exports.registerGrid = exports.registerTitle = exports.registerPlayer = exports.registerDataZoom = exports.registerLabel = exports.registerSlider = exports.registerLegend = exports.registerAxis = void 0;
6
6
 
7
7
  var axis_1 = require("./axis");
8
8
 
@@ -22,15 +22,6 @@ Object.defineProperty(exports, "registerLegend", {
22
22
  }
23
23
  });
24
24
 
25
- var crosshair_1 = require("./crosshair");
26
-
27
- Object.defineProperty(exports, "registerCrosshair", {
28
- enumerable: !0,
29
- get: function() {
30
- return crosshair_1.registerCrosshair;
31
- }
32
- });
33
-
34
25
  var slider_1 = require("./slider");
35
26
 
36
27
  Object.defineProperty(exports, "registerSlider", {
@@ -67,15 +58,6 @@ Object.defineProperty(exports, "registerPlayer", {
67
58
  }
68
59
  });
69
60
 
70
- var tooltip_1 = require("./tooltip");
71
-
72
- Object.defineProperty(exports, "registerTooltip", {
73
- enumerable: !0,
74
- get: function() {
75
- return tooltip_1.registerTooltip;
76
- }
77
- });
78
-
79
61
  var title_1 = require("./title");
80
62
 
81
63
  Object.defineProperty(exports, "registerTitle", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/index.ts"],"names":[],"mappings":";;;AAAA,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AACrB,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AACvB,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA;AAC1B,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AACvB,iCAAwC;AAA/B,sGAAA,aAAa,OAAA;AACtB,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA;AACzB,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AACvB,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AACxB,iCAAwC;AAA/B,sGAAA,aAAa,OAAA;AACtB,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AACrB,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA","file":"index.js","sourcesContent":["export { registerAxis } from './axis';\nexport { registerLegend } from './legend';\nexport { registerCrosshair } from './crosshair';\nexport { registerSlider } from './slider';\nexport { registerLabel } from './label';\nexport { registerDataZoom } from './datazoom';\nexport { registerPlayer } from './player';\nexport { registerTooltip } from './tooltip';\nexport { registerTitle } from './title';\nexport { registerGrid } from './grid';\nexport { registerScrollbar } from './scrollbar';\n"]}
1
+ {"version":3,"sources":["../src/component/index.ts"],"names":[],"mappings":";;;AAAA,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AACrB,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AACvB,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AACvB,iCAAwC;AAA/B,sGAAA,aAAa,OAAA;AACtB,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA;AACzB,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AACvB,iCAAwC;AAA/B,sGAAA,aAAa,OAAA;AACtB,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AACrB,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA","file":"index.js","sourcesContent":["export { registerAxis } from './axis';\nexport { registerLegend } from './legend';\nexport { registerSlider } from './slider';\nexport { registerLabel } from './label';\nexport { registerDataZoom } from './datazoom';\nexport { registerPlayer } from './player';\nexport { registerTitle } from './title';\nexport { registerGrid } from './grid';\nexport { registerScrollbar } from './scrollbar';\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { IBaseScale } from '@visactor/vscale';
2
2
  import type { DiscreteLegendAttrs, ColorLegendAttributes, SizeLegendAttributes } from '@visactor/vrender-components';
3
- import type { IData, IGroupMark, IScale, ITheme, IView, Nil, RecursivePartial } from '../types';
3
+ import type { IGroupMark, IScale, ITheme, IView, Nil, RecursivePartial } from '../types';
4
4
  import type { ILegend, LegendSpec, LegendType } from '../types/component';
5
5
  import { ScaleComponent } from './scale';
6
6
  export declare const generateDiscreteLegendAttributes: (scale: IBaseScale, theme?: ITheme, addition?: RecursivePartial<DiscreteLegendAttrs>, shapeScale?: IBaseScale) => DiscreteLegendAttrs;
@@ -16,10 +16,8 @@ export declare class Legend extends ScaleComponent implements ILegend {
16
16
  shapeScale(shapeScale: LegendSpec['shapeScale']): this;
17
17
  legendType(legendType: LegendType | Nil): this;
18
18
  isContinuousLegend(): boolean;
19
- target(data: IData | string | Nil, filter: string | ((datum: any, legendValues: any) => boolean) | Nil): this;
20
19
  setSelected(selectedValues: any[]): this;
21
20
  addGraphicItem(attrs: any, groupKey?: string): any;
22
- release(): void;
23
21
  protected _updateComponentEncoders(): void;
24
22
  private _getLegendComponentType;
25
23
  }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerLegend = exports.Legend = exports.generateSizeLegendAttributes = exports.generateColorLegendAttributes = exports.generateDiscreteLegendAttributes = void 0;
6
6
 
7
- const vscale_1 = require("@visactor/vscale"), vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), graph_1 = require("../graph"), util_1 = require("../parse/util"), scale_1 = require("./scale"), encode_1 = require("../graph/mark/encode"), factory_1 = require("../core/factory"), generateDiscreteLegendAttributes = (scale, theme, addition, shapeScale) => {
7
+ const vscale_1 = require("@visactor/vscale"), vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), graph_1 = require("../graph"), util_1 = require("../parse/util"), scale_1 = require("./scale"), encode_1 = require("../graph/mark/encode"), factory_1 = require("../core/factory"), legend_filter_1 = require("../interactions/legend-filter"), filter_1 = require("../interactions/filter"), generateDiscreteLegendAttributes = (scale, theme, addition, shapeScale) => {
8
8
  var _a;
9
9
  const legendTheme = null === (_a = null == theme ? void 0 : theme.components) || void 0 === _a ? void 0 : _a.discreteLegend;
10
10
  if (!scale) return (0, vutils_1.merge)({}, legendTheme, null != addition ? addition : {});
@@ -64,9 +64,8 @@ class Legend extends scale_1.ScaleComponent {
64
64
  this.spec.legendType = "auto";
65
65
  }
66
66
  parseAddition(spec) {
67
- var _a, _b;
68
- return this.shapeScale(spec.shapeScale), super.parseAddition(spec), this.target(null === (_a = spec.target) || void 0 === _a ? void 0 : _a.data, null === (_b = spec.target) || void 0 === _b ? void 0 : _b.filter),
69
- this.legendType(spec.legendType), this;
67
+ return this.shapeScale(spec.shapeScale), super.parseAddition(spec), this.legendType(spec.legendType),
68
+ this;
70
69
  }
71
70
  scale(scale) {
72
71
  return super.scale(scale), this._legendComponentType = null, this;
@@ -87,23 +86,6 @@ class Legend extends scale_1.ScaleComponent {
87
86
  isContinuousLegend() {
88
87
  return this._getLegendComponentType() !== graph_1.LegendEnum.discreteLegend;
89
88
  }
90
- target(data, filter) {
91
- var _a;
92
- const isContinuous = this.isContinuousLegend(), eventName = isContinuous ? "change" : vrender_components_1.LegendEvent.legendItemClick, lastData = null === (_a = this.spec.target) || void 0 === _a ? void 0 : _a.data, lastDataGrammar = (0,
93
- vutils_1.isString)(lastData) ? this.view.getDataById(lastData) : lastData;
94
- lastDataGrammar && this.view.removeEventListener(eventName, this._filterCallback),
95
- this.spec.target = void 0;
96
- const dataGrammar = (0, vutils_1.isString)(data) ? this.view.getDataById(data) : data, dataFilter = (0,
97
- vutils_1.isString)(filter) ? isContinuous ? (datum, filterValue) => datum[filter] >= filterValue.start && datum[filter] <= filterValue.end : (datum, filterValue) => filterValue.includes(datum[filter]) : filter;
98
- return this._filterData(lastDataGrammar, dataGrammar, graph_1.ComponentDataRank.legend, (event => isContinuous ? {
99
- start: event.detail.value[0],
100
- end: event.detail.value[1]
101
- } : event.detail.currentSelected), dataFilter), dataGrammar && (this.view.addEventListener(eventName, this._filterCallback),
102
- this.spec.target = {
103
- data: dataGrammar,
104
- filter: filter
105
- }), this;
106
- }
107
89
  setSelected(selectedValues) {
108
90
  var _a, _b;
109
91
  return (null === (_b = null === (_a = this.elements[0]) || void 0 === _a ? void 0 : _a.getGraphicItem) || void 0 === _b ? void 0 : _b.call(_a)).setSelected(selectedValues),
@@ -113,10 +95,6 @@ class Legend extends scale_1.ScaleComponent {
113
95
  const graphicItem = factory_1.Factory.createGraphicComponent(this._getLegendComponentType(), attrs);
114
96
  return super.addGraphicItem(attrs, groupKey, graphicItem);
115
97
  }
116
- release() {
117
- this._filterCallback && this.view.removeEventListener("change", this._filterCallback),
118
- super.release();
119
- }
120
98
  _updateComponentEncoders() {
121
99
  const scaleGrammar = (0, vutils_1.isString)(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale, shapeScaleGrammar = (0,
122
100
  vutils_1.isString)(this.spec.shapeScale) ? this.view.getScaleById(this.spec.shapeScale) : this.spec.shapeScale, encoders = Object.assign({
@@ -163,7 +141,8 @@ const registerLegend = () => {
163
141
  factory_1.Factory.registerGraphicComponent(graph_1.LegendEnum.discreteLegend, (attrs => new vrender_components_1.DiscreteLegend(attrs))),
164
142
  factory_1.Factory.registerGraphicComponent(graph_1.LegendEnum.colorLegend, (attrs => new vrender_components_1.ColorContinuousLegend(attrs))),
165
143
  factory_1.Factory.registerGraphicComponent(graph_1.LegendEnum.sizeLegend, (attrs => new vrender_components_1.SizeContinuousLegend(attrs))),
166
- factory_1.Factory.registerComponent(graph_1.ComponentEnum.legend, Legend);
144
+ factory_1.Factory.registerComponent(graph_1.ComponentEnum.legend, Legend), (0, vutils_1.mixin)(filter_1.Filter, filter_1.FilterMixin),
145
+ factory_1.Factory.registerInteraction(legend_filter_1.LegendFilter.type, legend_filter_1.LegendFilter);
167
146
  };
168
147
 
169
148
  exports.registerLegend = registerLegend;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { DiscreteLegendAttrs, ColorLegendAttributes, SizeLegendAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscreteLegend, ColorContinuousLegend, SizeContinuousLegend, LegendEvent } from '@visactor/vrender-components';\nimport { array, isString, merge, last } from '@visactor/vutils';\nimport { ComponentDataRank, ComponentEnum, LegendEnum } from '../graph';\nimport type {\n BaseSignleEncodeSpec,\n IData,\n IElement,\n IGroupMark,\n IScale,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport type { ILegend, LegendSpec, LegendType } from '../types/component';\nimport { parseColor } from '../parse/util';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Factory } from '../core/factory';\n\nexport const generateDiscreteLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<DiscreteLegendAttrs>,\n shapeScale?: IBaseScale\n): DiscreteLegendAttrs => {\n const legendTheme = theme?.components?.discreteLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n // get domain items without repetitions\n const domainItems = Array.from(new Set(array(scale.domain())));\n const items = domainItems.map((item, index) => {\n const value = scale.scale(item);\n const color = parseColor(value);\n const shape = color\n ? {\n ...(theme?.components?.discreteLegend?.items?.[0]?.shape ?? {}),\n fill: color,\n stroke: color\n }\n : theme?.components?.discreteLegend?.items?.[0]?.shape ?? {};\n\n if (shapeScale) {\n Object.assign(shape, { symbolType: shapeScale.scale(item) });\n }\n\n return {\n label: item.toString(),\n id: item,\n shape,\n index\n };\n });\n return merge({}, legendTheme, { items }, addition ?? {});\n};\n\nexport const generateColorLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<ColorLegendAttributes>\n): ColorLegendAttributes => {\n const legendTheme = theme?.components?.colorLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n const domain = scale.domain();\n return merge({}, legendTheme, { colors: scale.range().slice(), min: domain[0], max: last(domain) }, addition ?? {});\n};\n\nexport const generateSizeLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<SizeLegendAttributes>\n): SizeLegendAttributes => {\n const legendTheme = theme?.components?.sizeLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n const domain = scale.domain();\n const attributes = {\n min: domain[0],\n max: domain[domain.length - 1],\n value: [domain[0], domain[domain.length - 1]]\n };\n return merge({}, legendTheme, attributes, addition ?? {});\n};\n\nexport class Legend extends ScaleComponent implements ILegend {\n static readonly componentType: string = ComponentEnum.legend;\n protected declare spec: LegendSpec;\n\n private _legendComponentType: keyof typeof LegendEnum;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.legend, group);\n this.spec.componentType = ComponentEnum.legend;\n this.spec.legendType = 'auto';\n }\n\n protected parseAddition(spec: LegendSpec) {\n this.shapeScale(spec.shapeScale);\n super.parseAddition(spec);\n this.target(spec.target?.data, spec.target?.filter);\n this.legendType(spec.legendType);\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n super.scale(scale);\n this._legendComponentType = null;\n return this;\n }\n\n shapeScale(shapeScale: LegendSpec['shapeScale']) {\n if (this.spec.shapeScale) {\n const lastScaleGrammar = isString(this.spec.shapeScale)\n ? this.view.getScaleById(this.spec.shapeScale)\n : this.spec.shapeScale;\n this.detach(lastScaleGrammar);\n this.spec.shapeScale = undefined;\n }\n const scaleGrammar = isString(shapeScale) ? this.view.getScaleById(shapeScale) : shapeScale;\n this.spec.shapeScale = scaleGrammar;\n this.attach(scaleGrammar);\n\n this.commit();\n return this;\n }\n\n legendType(legendType: LegendType | Nil) {\n this.spec.legendType = legendType;\n // clear legend type when spec is changed\n this._legendComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n isContinuousLegend() {\n return this._getLegendComponentType() !== LegendEnum.discreteLegend;\n }\n\n target(data: IData | string | Nil, filter: string | ((datum: any, legendValues: any) => boolean) | Nil) {\n const isContinuous = this.isContinuousLegend();\n const eventName = isContinuous ? 'change' : LegendEvent.legendItemClick;\n const lastData = this.spec.target?.data;\n const lastDataGrammar = isString(lastData) ? this.view.getDataById(lastData) : lastData;\n if (lastDataGrammar) {\n this.view.removeEventListener(eventName, this._filterCallback);\n }\n this.spec.target = undefined;\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n const getFilterValue = (event: any) =>\n isContinuous ? { start: event.detail.value[0], end: event.detail.value[1] } : event.detail.currentSelected;\n const dataFilter = isString(filter)\n ? isContinuous\n ? (datum: any, filterValue: { start: number; end: number }) =>\n datum[filter] >= filterValue.start && datum[filter] <= filterValue.end\n : (datum: any, filterValue: any[]) => filterValue.includes(datum[filter])\n : filter;\n this._filterData(lastDataGrammar, dataGrammar, ComponentDataRank.legend, getFilterValue, dataFilter);\n if (dataGrammar) {\n this.view.addEventListener(eventName, this._filterCallback);\n this.spec.target = { data: dataGrammar, filter };\n }\n return this;\n }\n\n setSelected(selectedValues: any[]) {\n // FIXME: provide ILegend interface in vis-component\n const legend = this.elements[0]?.getGraphicItem?.() as unknown as DiscreteLegend;\n legend.setSelected(selectedValues);\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const graphicItem = Factory.createGraphicComponent(this._getLegendComponentType(), attrs);\n return super.addGraphicItem(attrs, groupKey, graphicItem);\n }\n\n release() {\n if (this._filterCallback) {\n this.view.removeEventListener('change', this._filterCallback);\n }\n super.release();\n }\n\n protected _updateComponentEncoders() {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const shapeScaleGrammar = isString(this.spec.shapeScale)\n ? this.view.getScaleById(this.spec.shapeScale)\n : this.spec.shapeScale;\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 const theme = this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n const scale = scaleGrammar?.getScale?.();\n switch (this._getLegendComponentType()) {\n case LegendEnum.discreteLegend:\n return generateDiscreteLegendAttributes(scale, theme, addition, shapeScaleGrammar?.getScale?.());\n case LegendEnum.colorLegend:\n return generateColorLegendAttributes(scale, theme, addition);\n case LegendEnum.sizeLegend:\n return generateSizeLegendAttributes(scale, theme, addition);\n }\n return addition;\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getLegendComponentType() {\n if (this._legendComponentType) {\n return this._legendComponentType;\n }\n\n // compute legend component type when needed\n if (!this.spec.legendType || this.spec.legendType === 'auto') {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const scaleType = scaleGrammar?.getScaleType?.();\n if (scaleType && isContinuous(scaleType)) {\n const range: any[] = scaleGrammar.getScale().range();\n if (parseColor(range?.[0])) {\n this._legendComponentType = LegendEnum.colorLegend;\n } else {\n this._legendComponentType = LegendEnum.sizeLegend;\n }\n } else {\n this._legendComponentType = LegendEnum.discreteLegend;\n }\n } else {\n this._legendComponentType =\n this.spec.legendType === 'color'\n ? 'colorLegend'\n : this.spec.legendType === 'size'\n ? 'sizeLegend'\n : 'discreteLegend';\n }\n return this._legendComponentType;\n }\n}\n\nexport const registerLegend = () => {\n Factory.registerGraphicComponent(\n LegendEnum.discreteLegend,\n (attrs: DiscreteLegendAttrs) => new DiscreteLegend(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n LegendEnum.colorLegend,\n (attrs: ColorLegendAttributes) => new ColorContinuousLegend(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n LegendEnum.sizeLegend,\n (attrs: SizeLegendAttributes) => new SizeContinuousLegend(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.legend, Legend);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { DiscreteLegendAttrs, ColorLegendAttributes, SizeLegendAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscreteLegend, ColorContinuousLegend, SizeContinuousLegend } from '@visactor/vrender-components';\nimport { array, isString, merge, last, mixin } from '@visactor/vutils';\nimport { ComponentEnum, LegendEnum } from '../graph';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IScale,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport type { ILegend, LegendSpec, LegendType } from '../types/component';\nimport { parseColor } from '../parse/util';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Factory } from '../core/factory';\nimport { LegendFilter } from '../interactions/legend-filter';\nimport { Filter, FilterMixin } from '../interactions/filter';\n\nexport const generateDiscreteLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<DiscreteLegendAttrs>,\n shapeScale?: IBaseScale\n): DiscreteLegendAttrs => {\n const legendTheme = theme?.components?.discreteLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n // get domain items without repetitions\n const domainItems = Array.from(new Set(array(scale.domain())));\n const items = domainItems.map((item, index) => {\n const value = scale.scale(item);\n const color = parseColor(value);\n const shape = color\n ? {\n ...(theme?.components?.discreteLegend?.items?.[0]?.shape ?? {}),\n fill: color,\n stroke: color\n }\n : theme?.components?.discreteLegend?.items?.[0]?.shape ?? {};\n\n if (shapeScale) {\n Object.assign(shape, { symbolType: shapeScale.scale(item) });\n }\n\n return {\n label: item.toString(),\n id: item,\n shape,\n index\n };\n });\n return merge({}, legendTheme, { items }, addition ?? {});\n};\n\nexport const generateColorLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<ColorLegendAttributes>\n): ColorLegendAttributes => {\n const legendTheme = theme?.components?.colorLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n const domain = scale.domain();\n return merge({}, legendTheme, { colors: scale.range().slice(), min: domain[0], max: last(domain) }, addition ?? {});\n};\n\nexport const generateSizeLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<SizeLegendAttributes>\n): SizeLegendAttributes => {\n const legendTheme = theme?.components?.sizeLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n const domain = scale.domain();\n const attributes = {\n min: domain[0],\n max: domain[domain.length - 1],\n value: [domain[0], domain[domain.length - 1]]\n };\n return merge({}, legendTheme, attributes, addition ?? {});\n};\n\nexport class Legend extends ScaleComponent implements ILegend {\n static readonly componentType: string = ComponentEnum.legend;\n protected declare spec: LegendSpec;\n\n private _legendComponentType: keyof typeof LegendEnum;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.legend, group);\n this.spec.componentType = ComponentEnum.legend;\n this.spec.legendType = 'auto';\n }\n\n protected parseAddition(spec: LegendSpec) {\n this.shapeScale(spec.shapeScale);\n super.parseAddition(spec);\n this.legendType(spec.legendType);\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n super.scale(scale);\n this._legendComponentType = null;\n return this;\n }\n\n shapeScale(shapeScale: LegendSpec['shapeScale']) {\n if (this.spec.shapeScale) {\n const lastScaleGrammar = isString(this.spec.shapeScale)\n ? this.view.getScaleById(this.spec.shapeScale)\n : this.spec.shapeScale;\n this.detach(lastScaleGrammar);\n this.spec.shapeScale = undefined;\n }\n const scaleGrammar = isString(shapeScale) ? this.view.getScaleById(shapeScale) : shapeScale;\n this.spec.shapeScale = scaleGrammar;\n this.attach(scaleGrammar);\n\n this.commit();\n return this;\n }\n\n legendType(legendType: LegendType | Nil) {\n this.spec.legendType = legendType;\n // clear legend type when spec is changed\n this._legendComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n isContinuousLegend() {\n return this._getLegendComponentType() !== LegendEnum.discreteLegend;\n }\n\n setSelected(selectedValues: any[]) {\n // FIXME: provide ILegend interface in vis-component\n const legend = this.elements[0]?.getGraphicItem?.() as unknown as DiscreteLegend;\n legend.setSelected(selectedValues);\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const graphicItem = Factory.createGraphicComponent(this._getLegendComponentType(), attrs);\n return super.addGraphicItem(attrs, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const shapeScaleGrammar = isString(this.spec.shapeScale)\n ? this.view.getScaleById(this.spec.shapeScale)\n : this.spec.shapeScale;\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 const theme = this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n const scale = scaleGrammar?.getScale?.();\n switch (this._getLegendComponentType()) {\n case LegendEnum.discreteLegend:\n return generateDiscreteLegendAttributes(scale, theme, addition, shapeScaleGrammar?.getScale?.());\n case LegendEnum.colorLegend:\n return generateColorLegendAttributes(scale, theme, addition);\n case LegendEnum.sizeLegend:\n return generateSizeLegendAttributes(scale, theme, addition);\n }\n return addition;\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getLegendComponentType() {\n if (this._legendComponentType) {\n return this._legendComponentType;\n }\n\n // compute legend component type when needed\n if (!this.spec.legendType || this.spec.legendType === 'auto') {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const scaleType = scaleGrammar?.getScaleType?.();\n if (scaleType && isContinuous(scaleType)) {\n const range: any[] = scaleGrammar.getScale().range();\n if (parseColor(range?.[0])) {\n this._legendComponentType = LegendEnum.colorLegend;\n } else {\n this._legendComponentType = LegendEnum.sizeLegend;\n }\n } else {\n this._legendComponentType = LegendEnum.discreteLegend;\n }\n } else {\n this._legendComponentType =\n this.spec.legendType === 'color'\n ? 'colorLegend'\n : this.spec.legendType === 'size'\n ? 'sizeLegend'\n : 'discreteLegend';\n }\n return this._legendComponentType;\n }\n}\n\nexport const registerLegend = () => {\n Factory.registerGraphicComponent(\n LegendEnum.discreteLegend,\n (attrs: DiscreteLegendAttrs) => new DiscreteLegend(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n LegendEnum.colorLegend,\n (attrs: ColorLegendAttributes) => new ColorContinuousLegend(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n LegendEnum.sizeLegend,\n (attrs: SizeLegendAttributes) => new SizeContinuousLegend(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.legend, Legend);\n\n mixin(Filter, FilterMixin);\n Factory.registerInteraction(LegendFilter.type, LegendFilter);\n};\n"]}
@@ -12,13 +12,12 @@ export declare class Player extends Component implements IPlayer {
12
12
  constructor(view: IView, group?: IGroupMark);
13
13
  protected parseAddition(spec: PlayerSpec): this;
14
14
  playerType(playerType: PlayerType): this;
15
- target(data: IData | string | Nil, source: IData | string | any[] | Nil): this;
15
+ source(source: IData | string | any[] | Nil): this;
16
16
  play(): this;
17
17
  pause(): this;
18
18
  backward(): this;
19
19
  forward(): this;
20
20
  addGraphicItem(attrs: any, groupKey?: string, newGraphicItem?: any): any;
21
- release(): void;
22
21
  protected _updateComponentEncoders(): void;
23
22
  private _getPlayerComponentType;
24
23
  }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerPlayer = exports.Player = exports.generateDiscretePlayerAttributes = exports.generateContinuousPlayerAttributes = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), vrender_components_1 = require("@visactor/vrender-components"), vrender_components_2 = require("@visactor/vrender-components"), graph_1 = require("../graph"), component_1 = require("../view/component"), encode_1 = require("../graph/mark/encode"), factory_1 = require("../core/factory"), generateContinuousPlayerAttributes = (data, theme, addition) => {
7
+ const vutils_1 = require("@visactor/vutils"), vrender_components_1 = require("@visactor/vrender-components"), graph_1 = require("../graph"), component_1 = require("../view/component"), encode_1 = require("../graph/mark/encode"), factory_1 = require("../core/factory"), player_filter_1 = require("../interactions/player-filter"), filter_1 = require("../interactions/filter"), generateContinuousPlayerAttributes = (data, theme, addition) => {
8
8
  var _a;
9
9
  const playerTheme = null === (_a = null == theme ? void 0 : theme.components) || void 0 === _a ? void 0 : _a.continuousPlayer;
10
10
  return (0, vutils_1.merge)({}, playerTheme, {
@@ -32,36 +32,23 @@ class Player extends component_1.Component {
32
32
  this.spec.playerType = "auto";
33
33
  }
34
34
  parseAddition(spec) {
35
- var _a, _b;
36
- return super.parseAddition(spec), this.playerType(spec.playerType), this.target(null === (_a = spec.target) || void 0 === _a ? void 0 : _a.data, null === (_b = spec.target) || void 0 === _b ? void 0 : _b.source),
35
+ return super.parseAddition(spec), this.playerType(spec.playerType), this.source(spec.source),
37
36
  this;
38
37
  }
39
38
  playerType(playerType) {
40
39
  return this.spec.playerType = playerType, this._playerComponentType = null, this._prepareRejoin(),
41
40
  this.commit(), this;
42
41
  }
43
- target(data, source) {
44
- var _a, _b, _c;
45
- if (null === (_a = this.spec.target) || void 0 === _a ? void 0 : _a.source) {
46
- const lastSource = null === (_b = this.spec.target) || void 0 === _b ? void 0 : _b.source, lastSourceDataGrammar = (0,
42
+ source(source) {
43
+ var _a;
44
+ if (this.spec.source) {
45
+ const lastSource = null === (_a = this.spec) || void 0 === _a ? void 0 : _a.source, lastSourceDataGrammar = (0,
47
46
  vutils_1.isArray)(lastSource) ? null : (0, vutils_1.isString)(lastSource) ? this.view.getDataById(lastSource) : lastSource;
48
47
  this.detach(lastSourceDataGrammar);
49
48
  }
49
+ this.spec.source = source;
50
50
  const sourceDataGrammar = (0, vutils_1.isArray)(source) ? null : (0, vutils_1.isString)(source) ? this.view.getDataById(source) : source;
51
- this.attach(sourceDataGrammar);
52
- const lastData = null === (_c = this.spec.target) || void 0 === _c ? void 0 : _c.data, lastDataGrammar = (0,
53
- vutils_1.isString)(lastData) ? this.view.getDataById(lastData) : lastData;
54
- lastDataGrammar && this.view.removeEventListener(vrender_components_1.PlayerEventEnum.OnChange, this._filterCallback),
55
- this.spec.target = void 0;
56
- const dataGrammar = (0, vutils_1.isString)(data) ? this.view.getDataById(data) : data;
57
- return this._filterData(lastDataGrammar, dataGrammar, graph_1.ComponentDataRank.player, (event => ({
58
- index: event.detail.index,
59
- value: event.detail.value
60
- })), void 0, ((data, filterValue) => filterValue.value)), dataGrammar && (this.view.addEventListener(vrender_components_1.PlayerEventEnum.OnChange, this._filterCallback),
61
- this.spec.target = {
62
- data: dataGrammar,
63
- source: source
64
- }), this;
51
+ return this.attach(sourceDataGrammar), this.commit(), this;
65
52
  }
66
53
  play() {
67
54
  var _a, _b;
@@ -93,10 +80,6 @@ class Player extends component_1.Component {
93
80
  }, attrs), graphicItem = null != newGraphicItem ? newGraphicItem : factory_1.Factory.createGraphicComponent(this._getPlayerComponentType(), initialAttributes);
94
81
  return super.addGraphicItem(initialAttributes, groupKey, graphicItem);
95
82
  }
96
- release() {
97
- this._filterCallback && this.view.removeEventListener("change", this._filterCallback),
98
- super.release();
99
- }
100
83
  _updateComponentEncoders() {
101
84
  const encoders = Object.assign({
102
85
  update: {}
@@ -104,10 +87,10 @@ class Player extends component_1.Component {
104
87
  const encoder = encoders[state];
105
88
  return encoder && (res[state] = {
106
89
  callback: (datum, element, parameters) => {
107
- var _a, _b;
108
- const theme = this.view.getCurrentTheme(), addition = (0, encode_1.invokeEncoder)(encoder, datum, element, parameters), source = null === (_a = this.spec.target) || void 0 === _a ? void 0 : _a.source, sourceDataGrammar = (0,
90
+ var _a;
91
+ const theme = this.view.getCurrentTheme(), addition = (0, encode_1.invokeEncoder)(encoder, datum, element, parameters), source = this.spec.source, sourceDataGrammar = (0,
109
92
  vutils_1.isArray)(source) ? null : (0, vutils_1.isString)(source) ? this.view.getDataById(source) : source, sourceData = (0,
110
- vutils_1.isArray)(source) ? source : null !== (_b = null == sourceDataGrammar ? void 0 : sourceDataGrammar.getValue()) && void 0 !== _b ? _b : [];
93
+ vutils_1.isArray)(source) ? source : null !== (_a = null == sourceDataGrammar ? void 0 : sourceDataGrammar.getValue()) && void 0 !== _a ? _a : [];
111
94
  switch (this._getPlayerComponentType()) {
112
95
  case "continuousPlayer":
113
96
  return (0, exports.generateContinuousPlayerAttributes)(sourceData, theme, addition);
@@ -129,9 +112,10 @@ class Player extends component_1.Component {
129
112
  exports.Player = Player, Player.componentType = graph_1.ComponentEnum.player;
130
113
 
131
114
  const registerPlayer = () => {
132
- factory_1.Factory.registerGraphicComponent(graph_1.PlayerEnum.continuousPlayer, (attrs => new vrender_components_2.ContinuousPlayer(attrs))),
133
- factory_1.Factory.registerGraphicComponent(graph_1.PlayerEnum.discretePlayer, (attrs => new vrender_components_2.DiscretePlayer(attrs))),
134
- factory_1.Factory.registerComponent(graph_1.ComponentEnum.player, Player);
115
+ factory_1.Factory.registerGraphicComponent(graph_1.PlayerEnum.continuousPlayer, (attrs => new vrender_components_1.ContinuousPlayer(attrs))),
116
+ factory_1.Factory.registerGraphicComponent(graph_1.PlayerEnum.discretePlayer, (attrs => new vrender_components_1.DiscretePlayer(attrs))),
117
+ factory_1.Factory.registerComponent(graph_1.ComponentEnum.player, Player), (0, vutils_1.mixin)(filter_1.Filter, filter_1.FilterMixin),
118
+ factory_1.Factory.registerInteraction(player_filter_1.PlayerFilter.type, player_filter_1.PlayerFilter);
135
119
  };
136
120
 
137
121
  exports.registerPlayer = registerPlayer;