@visactor/vgrammar-core 0.7.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 (873) hide show
  1. package/README.md +160 -0
  2. package/README.zh-CN.md +11 -0
  3. package/cjs/component/axis.d.ts +26 -0
  4. package/cjs/component/axis.js +164 -0
  5. package/cjs/component/axis.js.map +1 -0
  6. package/cjs/component/crosshair.d.ts +50 -0
  7. package/cjs/component/crosshair.js +281 -0
  8. package/cjs/component/crosshair.js.map +1 -0
  9. package/cjs/component/datazoom.d.ts +19 -0
  10. package/cjs/component/datazoom.js +166 -0
  11. package/cjs/component/datazoom.js.map +1 -0
  12. package/cjs/component/grid.d.ts +27 -0
  13. package/cjs/component/grid.js +190 -0
  14. package/cjs/component/grid.js.map +1 -0
  15. package/cjs/component/index.d.ts +11 -0
  16. package/cjs/component/index.js +105 -0
  17. package/cjs/component/index.js.map +1 -0
  18. package/cjs/component/label.d.ts +19 -0
  19. package/cjs/component/label.js +121 -0
  20. package/cjs/component/label.js.map +1 -0
  21. package/cjs/component/legend.d.ts +26 -0
  22. package/cjs/component/legend.js +170 -0
  23. package/cjs/component/legend.js.map +1 -0
  24. package/cjs/component/player.d.ts +25 -0
  25. package/cjs/component/player.js +138 -0
  26. package/cjs/component/player.js.map +1 -0
  27. package/cjs/component/scale.d.ts +8 -0
  28. package/cjs/component/scale.js +25 -0
  29. package/cjs/component/scale.js.map +1 -0
  30. package/cjs/component/scrollbar.d.ts +23 -0
  31. package/cjs/component/scrollbar.js +187 -0
  32. package/cjs/component/scrollbar.js.map +1 -0
  33. package/cjs/component/slider.d.ts +19 -0
  34. package/cjs/component/slider.js +86 -0
  35. package/cjs/component/slider.js.map +1 -0
  36. package/cjs/component/title.d.ts +15 -0
  37. package/cjs/component/title.js +56 -0
  38. package/cjs/component/title.js.map +1 -0
  39. package/cjs/component/tooltip.d.ts +62 -0
  40. package/cjs/component/tooltip.js +305 -0
  41. package/cjs/component/tooltip.js.map +1 -0
  42. package/cjs/core/factory.d.ts +35 -0
  43. package/cjs/core/factory.js +73 -0
  44. package/cjs/core/factory.js.map +1 -0
  45. package/cjs/glyph/boxplot.d.ts +10 -0
  46. package/cjs/glyph/boxplot.js +418 -0
  47. package/cjs/glyph/boxplot.js.map +1 -0
  48. package/cjs/glyph/index.d.ts +7 -0
  49. package/cjs/glyph/index.js +64 -0
  50. package/cjs/glyph/index.js.map +1 -0
  51. package/cjs/glyph/link-path.d.ts +7 -0
  52. package/cjs/glyph/link-path.js +138 -0
  53. package/cjs/glyph/link-path.js.map +1 -0
  54. package/cjs/glyph/ripple.d.ts +1 -0
  55. package/cjs/glyph/ripple.js +44 -0
  56. package/cjs/glyph/ripple.js.map +1 -0
  57. package/cjs/glyph/tree-path.d.ts +7 -0
  58. package/cjs/glyph/tree-path.js +152 -0
  59. package/cjs/glyph/tree-path.js.map +1 -0
  60. package/cjs/glyph/violin.d.ts +1 -0
  61. package/cjs/glyph/violin.js +165 -0
  62. package/cjs/glyph/violin.js.map +1 -0
  63. package/cjs/glyph/wave.d.ts +1 -0
  64. package/cjs/glyph/wave.js +67 -0
  65. package/cjs/glyph/wave.js.map +1 -0
  66. package/cjs/graph/animation/animate.d.ts +48 -0
  67. package/cjs/graph/animation/animate.js +250 -0
  68. package/cjs/graph/animation/animate.js.map +1 -0
  69. package/cjs/graph/animation/animation/clip.d.ts +4 -0
  70. package/cjs/graph/animation/animation/clip.js +54 -0
  71. package/cjs/graph/animation/animation/clip.js.map +1 -0
  72. package/cjs/graph/animation/animation/fade.d.ts +4 -0
  73. package/cjs/graph/animation/animation/fade.js +42 -0
  74. package/cjs/graph/animation/animation/fade.js.map +1 -0
  75. package/cjs/graph/animation/animation/grow-cartesian.d.ts +7 -0
  76. package/cjs/graph/animation/animation/grow-cartesian.js +288 -0
  77. package/cjs/graph/animation/animation/grow-cartesian.js.map +1 -0
  78. package/cjs/graph/animation/animation/grow-interval.d.ts +3 -0
  79. package/cjs/graph/animation/animation/grow-interval.js +194 -0
  80. package/cjs/graph/animation/animation/grow-interval.js.map +1 -0
  81. package/cjs/graph/animation/animation/grow-points.d.ts +7 -0
  82. package/cjs/graph/animation/animation/grow-points.js +118 -0
  83. package/cjs/graph/animation/animation/grow-points.js.map +1 -0
  84. package/cjs/graph/animation/animation/grow-polar.d.ts +5 -0
  85. package/cjs/graph/animation/animation/grow-polar.js +164 -0
  86. package/cjs/graph/animation/animation/grow-polar.js.map +1 -0
  87. package/cjs/graph/animation/animation/index.d.ts +11 -0
  88. package/cjs/graph/animation/animation/index.js +191 -0
  89. package/cjs/graph/animation/animation/index.js.map +1 -0
  90. package/cjs/graph/animation/animation/move.d.ts +3 -0
  91. package/cjs/graph/animation/animation/move.js +90 -0
  92. package/cjs/graph/animation/animation/move.js.map +1 -0
  93. package/cjs/graph/animation/animation/rotate.d.ts +3 -0
  94. package/cjs/graph/animation/animation/rotate.js +42 -0
  95. package/cjs/graph/animation/animation/rotate.js.map +1 -0
  96. package/cjs/graph/animation/animation/scale.d.ts +3 -0
  97. package/cjs/graph/animation/animation/scale.js +84 -0
  98. package/cjs/graph/animation/animation/scale.js.map +1 -0
  99. package/cjs/graph/animation/animation/update.d.ts +6 -0
  100. package/cjs/graph/animation/animation/update.js +22 -0
  101. package/cjs/graph/animation/animation/update.js.map +1 -0
  102. package/cjs/graph/animation/animator.d.ts +26 -0
  103. package/cjs/graph/animation/animator.js +88 -0
  104. package/cjs/graph/animation/animator.js.map +1 -0
  105. package/cjs/graph/animation/arranger.d.ts +13 -0
  106. package/cjs/graph/animation/arranger.js +38 -0
  107. package/cjs/graph/animation/arranger.js.map +1 -0
  108. package/cjs/graph/animation/attribute.d.ts +27 -0
  109. package/cjs/graph/animation/attribute.js +124 -0
  110. package/cjs/graph/animation/attribute.js.map +1 -0
  111. package/cjs/graph/animation/config.d.ts +5 -0
  112. package/cjs/graph/animation/config.js +92 -0
  113. package/cjs/graph/animation/config.js.map +1 -0
  114. package/cjs/graph/animation/morph.d.ts +12 -0
  115. package/cjs/graph/animation/morph.js +174 -0
  116. package/cjs/graph/animation/morph.js.map +1 -0
  117. package/cjs/graph/attributes/common.d.ts +2 -0
  118. package/cjs/graph/attributes/common.js +22 -0
  119. package/cjs/graph/attributes/common.js.map +1 -0
  120. package/cjs/graph/attributes/helpers.d.ts +17 -0
  121. package/cjs/graph/attributes/helpers.js +86 -0
  122. package/cjs/graph/attributes/helpers.js.map +1 -0
  123. package/cjs/graph/attributes/index.d.ts +10 -0
  124. package/cjs/graph/attributes/index.js +257 -0
  125. package/cjs/graph/attributes/index.js.map +1 -0
  126. package/cjs/graph/canvas-renderer.d.ts +34 -0
  127. package/cjs/graph/canvas-renderer.js +121 -0
  128. package/cjs/graph/canvas-renderer.js.map +1 -0
  129. package/cjs/graph/constants.d.ts +23 -0
  130. package/cjs/graph/constants.js +21 -0
  131. package/cjs/graph/constants.js.map +1 -0
  132. package/cjs/graph/element.d.ts +66 -0
  133. package/cjs/graph/element.js +297 -0
  134. package/cjs/graph/element.js.map +1 -0
  135. package/cjs/graph/enums.d.ts +153 -0
  136. package/cjs/graph/enums.js +85 -0
  137. package/cjs/graph/enums.js.map +1 -0
  138. package/cjs/graph/glyph-element.d.ts +53 -0
  139. package/cjs/graph/glyph-element.js +202 -0
  140. package/cjs/graph/glyph-element.js.map +1 -0
  141. package/cjs/graph/index.d.ts +3 -0
  142. package/cjs/graph/index.js +44 -0
  143. package/cjs/graph/index.js.map +1 -0
  144. package/cjs/graph/layout/grid.d.ts +3 -0
  145. package/cjs/graph/layout/grid.js +75 -0
  146. package/cjs/graph/layout/grid.js.map +1 -0
  147. package/cjs/graph/layout/layout.d.ts +3 -0
  148. package/cjs/graph/layout/layout.js +33 -0
  149. package/cjs/graph/layout/layout.js.map +1 -0
  150. package/cjs/graph/layout/relative.d.ts +3 -0
  151. package/cjs/graph/layout/relative.js +86 -0
  152. package/cjs/graph/layout/relative.js.map +1 -0
  153. package/cjs/graph/mark/differ.d.ts +20 -0
  154. package/cjs/graph/mark/differ.js +110 -0
  155. package/cjs/graph/mark/differ.js.map +1 -0
  156. package/cjs/graph/mark/encode.d.ts +10 -0
  157. package/cjs/graph/mark/encode.js +95 -0
  158. package/cjs/graph/mark/encode.js.map +1 -0
  159. package/cjs/graph/mark/large-rects.d.ts +10 -0
  160. package/cjs/graph/mark/large-rects.js +31 -0
  161. package/cjs/graph/mark/large-rects.js.map +1 -0
  162. package/cjs/graph/mark/large-symbols.d.ts +11 -0
  163. package/cjs/graph/mark/large-symbols.js +33 -0
  164. package/cjs/graph/mark/large-symbols.js.map +1 -0
  165. package/cjs/graph/mark-tree.d.ts +2 -0
  166. package/cjs/graph/mark-tree.js +21 -0
  167. package/cjs/graph/mark-tree.js.map +1 -0
  168. package/cjs/graph/util/element.d.ts +2 -0
  169. package/cjs/graph/util/element.js +10 -0
  170. package/cjs/graph/util/element.js.map +1 -0
  171. package/cjs/graph/util/env.d.ts +2 -0
  172. package/cjs/graph/util/env.js +14 -0
  173. package/cjs/graph/util/env.js.map +1 -0
  174. package/cjs/graph/util/events-extend.d.ts +5 -0
  175. package/cjs/graph/util/events-extend.js +18 -0
  176. package/cjs/graph/util/events-extend.js.map +1 -0
  177. package/cjs/graph/util/graphic.d.ts +9 -0
  178. package/cjs/graph/util/graphic.js +59 -0
  179. package/cjs/graph/util/graphic.js.map +1 -0
  180. package/cjs/graph/util/point.d.ts +1 -0
  181. package/cjs/graph/util/point.js +75 -0
  182. package/cjs/graph/util/point.js.map +1 -0
  183. package/cjs/index.d.ts +14 -0
  184. package/cjs/index.js +111 -0
  185. package/cjs/index.js.map +1 -0
  186. package/cjs/parse/coordinate.d.ts +7 -0
  187. package/cjs/parse/coordinate.js +70 -0
  188. package/cjs/parse/coordinate.js.map +1 -0
  189. package/cjs/parse/event.d.ts +8 -0
  190. package/cjs/parse/event.js +33 -0
  191. package/cjs/parse/event.js.map +1 -0
  192. package/cjs/parse/mark.d.ts +4 -0
  193. package/cjs/parse/mark.js +25 -0
  194. package/cjs/parse/mark.js.map +1 -0
  195. package/cjs/parse/option.d.ts +3 -0
  196. package/cjs/parse/option.js +19 -0
  197. package/cjs/parse/option.js.map +1 -0
  198. package/cjs/parse/scale.d.ts +8 -0
  199. package/cjs/parse/scale.js +365 -0
  200. package/cjs/parse/scale.js.map +1 -0
  201. package/cjs/parse/transform.d.ts +5 -0
  202. package/cjs/parse/transform.js +103 -0
  203. package/cjs/parse/transform.js.map +1 -0
  204. package/cjs/parse/util.d.ts +13 -0
  205. package/cjs/parse/util.js +82 -0
  206. package/cjs/parse/util.js.map +1 -0
  207. package/cjs/parse/view.d.ts +17 -0
  208. package/cjs/parse/view.js +108 -0
  209. package/cjs/parse/view.js.map +1 -0
  210. package/cjs/semantic-marks/cell.d.ts +13 -0
  211. package/cjs/semantic-marks/cell.js +61 -0
  212. package/cjs/semantic-marks/cell.js.map +1 -0
  213. package/cjs/semantic-marks/interval.d.ts +14 -0
  214. package/cjs/semantic-marks/interval.js +80 -0
  215. package/cjs/semantic-marks/interval.js.map +1 -0
  216. package/cjs/semantic-marks/text.d.ts +10 -0
  217. package/cjs/semantic-marks/text.js +25 -0
  218. package/cjs/semantic-marks/text.js.map +1 -0
  219. package/cjs/theme/common/component.d.ts +15 -0
  220. package/cjs/theme/common/component.js +493 -0
  221. package/cjs/theme/common/component.js.map +1 -0
  222. package/cjs/theme/common/constants.d.ts +1 -0
  223. package/cjs/theme/common/constants.js +6 -0
  224. package/cjs/theme/common/constants.js.map +1 -0
  225. package/cjs/theme/common/mark.d.ts +2 -0
  226. package/cjs/theme/common/mark.js +15 -0
  227. package/cjs/theme/common/mark.js.map +1 -0
  228. package/cjs/theme/dark.d.ts +2 -0
  229. package/cjs/theme/dark.js +94 -0
  230. package/cjs/theme/dark.js.map +1 -0
  231. package/cjs/theme/default.d.ts +2 -0
  232. package/cjs/theme/default.js +18 -0
  233. package/cjs/theme/default.js.map +1 -0
  234. package/cjs/theme/theme-manager.d.ts +8 -0
  235. package/cjs/theme/theme-manager.js +26 -0
  236. package/cjs/theme/theme-manager.js.map +1 -0
  237. package/cjs/transforms/data/bin.d.ts +2 -0
  238. package/cjs/transforms/data/bin.js +21 -0
  239. package/cjs/transforms/data/bin.js.map +1 -0
  240. package/cjs/transforms/data/circular-relation.d.ts +2 -0
  241. package/cjs/transforms/data/circular-relation.js +56 -0
  242. package/cjs/transforms/data/circular-relation.js.map +1 -0
  243. package/cjs/transforms/data/contour.d.ts +2 -0
  244. package/cjs/transforms/data/contour.js +115 -0
  245. package/cjs/transforms/data/contour.js.map +1 -0
  246. package/cjs/transforms/data/filter.d.ts +2 -0
  247. package/cjs/transforms/data/filter.js +10 -0
  248. package/cjs/transforms/data/filter.js.map +1 -0
  249. package/cjs/transforms/data/fold.d.ts +2 -0
  250. package/cjs/transforms/data/fold.js +24 -0
  251. package/cjs/transforms/data/fold.js.map +1 -0
  252. package/cjs/transforms/data/funnel.d.ts +2 -0
  253. package/cjs/transforms/data/funnel.js +25 -0
  254. package/cjs/transforms/data/funnel.js.map +1 -0
  255. package/cjs/transforms/data/join.d.ts +2 -0
  256. package/cjs/transforms/data/join.js +33 -0
  257. package/cjs/transforms/data/join.js.map +1 -0
  258. package/cjs/transforms/data/kde.d.ts +2 -0
  259. package/cjs/transforms/data/kde.js +90 -0
  260. package/cjs/transforms/data/kde.js.map +1 -0
  261. package/cjs/transforms/data/map.d.ts +2 -0
  262. package/cjs/transforms/data/map.js +23 -0
  263. package/cjs/transforms/data/map.js.map +1 -0
  264. package/cjs/transforms/data/pick.d.ts +2 -0
  265. package/cjs/transforms/data/pick.js +20 -0
  266. package/cjs/transforms/data/pick.js.map +1 -0
  267. package/cjs/transforms/data/pie.d.ts +2 -0
  268. package/cjs/transforms/data/pie.js +24 -0
  269. package/cjs/transforms/data/pie.js.map +1 -0
  270. package/cjs/transforms/data/range.d.ts +4 -0
  271. package/cjs/transforms/data/range.js +15 -0
  272. package/cjs/transforms/data/range.js.map +1 -0
  273. package/cjs/transforms/data/sort.d.ts +2 -0
  274. package/cjs/transforms/data/sort.js +17 -0
  275. package/cjs/transforms/data/sort.js.map +1 -0
  276. package/cjs/transforms/data/stack.d.ts +2 -0
  277. package/cjs/transforms/data/stack.js +74 -0
  278. package/cjs/transforms/data/stack.js.map +1 -0
  279. package/cjs/transforms/data/unfold.d.ts +2 -0
  280. package/cjs/transforms/data/unfold.js +49 -0
  281. package/cjs/transforms/data/unfold.js.map +1 -0
  282. package/cjs/transforms/index.d.ts +23 -0
  283. package/cjs/transforms/index.js +213 -0
  284. package/cjs/transforms/index.js.map +1 -0
  285. package/cjs/transforms/mark/dodge.d.ts +2 -0
  286. package/cjs/transforms/mark/dodge.js +81 -0
  287. package/cjs/transforms/mark/dodge.js.map +1 -0
  288. package/cjs/transforms/mark/jitter.d.ts +4 -0
  289. package/cjs/transforms/mark/jitter.js +53 -0
  290. package/cjs/transforms/mark/jitter.js.map +1 -0
  291. package/cjs/transforms/mark/lttb-sample.d.ts +2 -0
  292. package/cjs/transforms/mark/lttb-sample.js +68 -0
  293. package/cjs/transforms/mark/lttb-sample.js.map +1 -0
  294. package/cjs/transforms/mark/mark-overlap.d.ts +2 -0
  295. package/cjs/transforms/mark/mark-overlap.js +79 -0
  296. package/cjs/transforms/mark/mark-overlap.js.map +1 -0
  297. package/cjs/transforms/mark/symmetry.d.ts +2 -0
  298. package/cjs/transforms/mark/symmetry.js +25 -0
  299. package/cjs/transforms/mark/symmetry.js.map +1 -0
  300. package/cjs/transforms/util/util.d.ts +5 -0
  301. package/cjs/transforms/util/util.js +41 -0
  302. package/cjs/transforms/util/util.js.map +1 -0
  303. package/cjs/transforms/view/identifier.d.ts +2 -0
  304. package/cjs/transforms/view/identifier.js +17 -0
  305. package/cjs/transforms/view/identifier.js.map +1 -0
  306. package/cjs/types/animate.d.ts +224 -0
  307. package/cjs/types/animate.js +6 -0
  308. package/cjs/types/animate.js.map +1 -0
  309. package/cjs/types/base.d.ts +36 -0
  310. package/cjs/types/base.js +6 -0
  311. package/cjs/types/base.js.map +1 -0
  312. package/cjs/types/component.d.ts +240 -0
  313. package/cjs/types/component.js +6 -0
  314. package/cjs/types/component.js.map +1 -0
  315. package/cjs/types/coordinate.d.ts +15 -0
  316. package/cjs/types/coordinate.js +6 -0
  317. package/cjs/types/coordinate.js.map +1 -0
  318. package/cjs/types/data.d.ts +55 -0
  319. package/cjs/types/data.js +5 -0
  320. package/cjs/types/data.js.map +1 -0
  321. package/cjs/types/dataflow.d.ts +13 -0
  322. package/cjs/types/dataflow.js +6 -0
  323. package/cjs/types/dataflow.js.map +1 -0
  324. package/cjs/types/element.d.ts +117 -0
  325. package/cjs/types/element.js +6 -0
  326. package/cjs/types/element.js.map +1 -0
  327. package/cjs/types/event.d.ts +58 -0
  328. package/cjs/types/event.js +6 -0
  329. package/cjs/types/event.js.map +1 -0
  330. package/cjs/types/glyph.d.ts +29 -0
  331. package/cjs/types/glyph.js +6 -0
  332. package/cjs/types/glyph.js.map +1 -0
  333. package/cjs/types/grammar.d.ts +184 -0
  334. package/cjs/types/grammar.js +6 -0
  335. package/cjs/types/grammar.js.map +1 -0
  336. package/cjs/types/hooks.d.ts +45 -0
  337. package/cjs/types/hooks.js +6 -0
  338. package/cjs/types/hooks.js.map +1 -0
  339. package/cjs/types/index.d.ts +22 -0
  340. package/cjs/types/index.js +31 -0
  341. package/cjs/types/index.js.map +1 -0
  342. package/cjs/types/layout.d.ts +5 -0
  343. package/cjs/types/layout.js +6 -0
  344. package/cjs/types/layout.js.map +1 -0
  345. package/cjs/types/mark.d.ts +344 -0
  346. package/cjs/types/mark.js +6 -0
  347. package/cjs/types/mark.js.map +1 -0
  348. package/cjs/types/morph.d.ts +29 -0
  349. package/cjs/types/morph.js +6 -0
  350. package/cjs/types/morph.js.map +1 -0
  351. package/cjs/types/plot.d.ts +326 -0
  352. package/cjs/types/plot.js +6 -0
  353. package/cjs/types/plot.js.map +1 -0
  354. package/cjs/types/projection.d.ts +61 -0
  355. package/cjs/types/projection.js +6 -0
  356. package/cjs/types/projection.js.map +1 -0
  357. package/cjs/types/renderer.d.ts +19 -0
  358. package/cjs/types/renderer.js +6 -0
  359. package/cjs/types/renderer.js.map +1 -0
  360. package/cjs/types/scale.d.ts +111 -0
  361. package/cjs/types/scale.js +6 -0
  362. package/cjs/types/scale.js.map +1 -0
  363. package/cjs/types/signal.d.ts +20 -0
  364. package/cjs/types/signal.js +6 -0
  365. package/cjs/types/signal.js.map +1 -0
  366. package/cjs/types/theme.d.ts +41 -0
  367. package/cjs/types/theme.js +6 -0
  368. package/cjs/types/theme.js.map +1 -0
  369. package/cjs/types/transform.d.ts +291 -0
  370. package/cjs/types/transform.js +6 -0
  371. package/cjs/types/transform.js.map +1 -0
  372. package/cjs/types/view.d.ts +217 -0
  373. package/cjs/types/view.js +6 -0
  374. package/cjs/types/view.js.map +1 -0
  375. package/cjs/util/data.d.ts +3 -0
  376. package/cjs/util/data.js +64 -0
  377. package/cjs/util/data.js.map +1 -0
  378. package/cjs/util/grammar-heap.d.ts +14 -0
  379. package/cjs/util/grammar-heap.js +66 -0
  380. package/cjs/util/grammar-heap.js.map +1 -0
  381. package/cjs/util/text.d.ts +19 -0
  382. package/cjs/util/text.js +32 -0
  383. package/cjs/util/text.js.map +1 -0
  384. package/cjs/util/unique-list.d.ts +12 -0
  385. package/cjs/util/unique-list.js +37 -0
  386. package/cjs/util/unique-list.js.map +1 -0
  387. package/cjs/view/View.d.ts +157 -0
  388. package/cjs/view/View.js +800 -0
  389. package/cjs/view/View.js.map +1 -0
  390. package/cjs/view/animate.d.ts +20 -0
  391. package/cjs/view/animate.js +106 -0
  392. package/cjs/view/animate.js.map +1 -0
  393. package/cjs/view/component.d.ts +26 -0
  394. package/cjs/view/component.js +64 -0
  395. package/cjs/view/component.js.map +1 -0
  396. package/cjs/view/constants.d.ts +17 -0
  397. package/cjs/view/constants.js +13 -0
  398. package/cjs/view/constants.js.map +1 -0
  399. package/cjs/view/coordinate.d.ts +23 -0
  400. package/cjs/view/coordinate.js +59 -0
  401. package/cjs/view/coordinate.js.map +1 -0
  402. package/cjs/view/data.d.ts +37 -0
  403. package/cjs/view/data.js +198 -0
  404. package/cjs/view/data.js.map +1 -0
  405. package/cjs/view/dataflow.d.ts +32 -0
  406. package/cjs/view/dataflow.js +146 -0
  407. package/cjs/view/dataflow.js.map +1 -0
  408. package/cjs/view/events.d.ts +4 -0
  409. package/cjs/view/events.js +34 -0
  410. package/cjs/view/events.js.map +1 -0
  411. package/cjs/view/glyph-meta.d.ts +29 -0
  412. package/cjs/view/glyph-meta.js +45 -0
  413. package/cjs/view/glyph-meta.js.map +1 -0
  414. package/cjs/view/glyph.d.ts +14 -0
  415. package/cjs/view/glyph.js +29 -0
  416. package/cjs/view/glyph.js.map +1 -0
  417. package/cjs/view/grammar-base.d.ts +46 -0
  418. package/cjs/view/grammar-base.js +171 -0
  419. package/cjs/view/grammar-base.js.map +1 -0
  420. package/cjs/view/grammar-record.d.ts +39 -0
  421. package/cjs/view/grammar-record.js +180 -0
  422. package/cjs/view/grammar-record.js.map +1 -0
  423. package/cjs/view/group.d.ts +13 -0
  424. package/cjs/view/group.js +39 -0
  425. package/cjs/view/group.js.map +1 -0
  426. package/cjs/view/index.d.ts +1 -0
  427. package/cjs/view/index.js +21 -0
  428. package/cjs/view/index.js.map +1 -0
  429. package/cjs/view/mark.d.ts +112 -0
  430. package/cjs/view/mark.js +600 -0
  431. package/cjs/view/mark.js.map +1 -0
  432. package/cjs/view/scale.d.ts +26 -0
  433. package/cjs/view/scale.js +86 -0
  434. package/cjs/view/scale.js.map +1 -0
  435. package/cjs/view/signal.d.ts +18 -0
  436. package/cjs/view/signal.js +56 -0
  437. package/cjs/view/signal.js.map +1 -0
  438. package/es/component/axis.d.ts +26 -0
  439. package/es/component/axis.js +162 -0
  440. package/es/component/axis.js.map +1 -0
  441. package/es/component/crosshair.d.ts +50 -0
  442. package/es/component/crosshair.js +275 -0
  443. package/es/component/crosshair.js.map +1 -0
  444. package/es/component/datazoom.d.ts +19 -0
  445. package/es/component/datazoom.js +161 -0
  446. package/es/component/datazoom.js.map +1 -0
  447. package/es/component/grid.d.ts +27 -0
  448. package/es/component/grid.js +193 -0
  449. package/es/component/grid.js.map +1 -0
  450. package/es/component/index.d.ts +11 -0
  451. package/es/component/index.js +22 -0
  452. package/es/component/index.js.map +1 -0
  453. package/es/component/label.d.ts +19 -0
  454. package/es/component/label.js +124 -0
  455. package/es/component/label.js.map +1 -0
  456. package/es/component/legend.d.ts +26 -0
  457. package/es/component/legend.js +169 -0
  458. package/es/component/legend.js.map +1 -0
  459. package/es/component/player.d.ts +25 -0
  460. package/es/component/player.js +136 -0
  461. package/es/component/player.js.map +1 -0
  462. package/es/component/scale.d.ts +8 -0
  463. package/es/component/scale.js +19 -0
  464. package/es/component/scale.js.map +1 -0
  465. package/es/component/scrollbar.d.ts +23 -0
  466. package/es/component/scrollbar.js +184 -0
  467. package/es/component/scrollbar.js.map +1 -0
  468. package/es/component/slider.d.ts +19 -0
  469. package/es/component/slider.js +86 -0
  470. package/es/component/slider.js.map +1 -0
  471. package/es/component/title.d.ts +15 -0
  472. package/es/component/title.js +58 -0
  473. package/es/component/title.js.map +1 -0
  474. package/es/component/tooltip.d.ts +62 -0
  475. package/es/component/tooltip.js +303 -0
  476. package/es/component/tooltip.js.map +1 -0
  477. package/es/core/factory.d.ts +35 -0
  478. package/es/core/factory.js +67 -0
  479. package/es/core/factory.js.map +1 -0
  480. package/es/glyph/boxplot.d.ts +10 -0
  481. package/es/glyph/boxplot.js +410 -0
  482. package/es/glyph/boxplot.js.map +1 -0
  483. package/es/glyph/index.d.ts +7 -0
  484. package/es/glyph/index.js +11 -0
  485. package/es/glyph/index.js.map +1 -0
  486. package/es/glyph/link-path.d.ts +7 -0
  487. package/es/glyph/link-path.js +132 -0
  488. package/es/glyph/link-path.js.map +1 -0
  489. package/es/glyph/ripple.d.ts +1 -0
  490. package/es/glyph/ripple.js +38 -0
  491. package/es/glyph/ripple.js.map +1 -0
  492. package/es/glyph/tree-path.d.ts +7 -0
  493. package/es/glyph/tree-path.js +146 -0
  494. package/es/glyph/tree-path.js.map +1 -0
  495. package/es/glyph/violin.d.ts +1 -0
  496. package/es/glyph/violin.js +163 -0
  497. package/es/glyph/violin.js.map +1 -0
  498. package/es/glyph/wave.d.ts +1 -0
  499. package/es/glyph/wave.js +61 -0
  500. package/es/glyph/wave.js.map +1 -0
  501. package/es/graph/animation/animate.d.ts +48 -0
  502. package/es/graph/animation/animate.js +247 -0
  503. package/es/graph/animation/animate.js.map +1 -0
  504. package/es/graph/animation/animation/clip.d.ts +4 -0
  505. package/es/graph/animation/animation/clip.js +44 -0
  506. package/es/graph/animation/animation/clip.js.map +1 -0
  507. package/es/graph/animation/animation/fade.d.ts +4 -0
  508. package/es/graph/animation/animation/fade.js +32 -0
  509. package/es/graph/animation/animation/fade.js.map +1 -0
  510. package/es/graph/animation/animation/grow-cartesian.d.ts +7 -0
  511. package/es/graph/animation/animation/grow-cartesian.js +272 -0
  512. package/es/graph/animation/animation/grow-cartesian.js.map +1 -0
  513. package/es/graph/animation/animation/grow-interval.d.ts +3 -0
  514. package/es/graph/animation/animation/grow-interval.js +184 -0
  515. package/es/graph/animation/animation/grow-interval.js.map +1 -0
  516. package/es/graph/animation/animation/grow-points.d.ts +7 -0
  517. package/es/graph/animation/animation/grow-points.js +107 -0
  518. package/es/graph/animation/animation/grow-points.js.map +1 -0
  519. package/es/graph/animation/animation/grow-polar.d.ts +5 -0
  520. package/es/graph/animation/animation/grow-polar.js +160 -0
  521. package/es/graph/animation/animation/grow-polar.js.map +1 -0
  522. package/es/graph/animation/animation/index.d.ts +11 -0
  523. package/es/graph/animation/animation/index.js +22 -0
  524. package/es/graph/animation/animation/index.js.map +1 -0
  525. package/es/graph/animation/animation/move.d.ts +3 -0
  526. package/es/graph/animation/animation/move.js +78 -0
  527. package/es/graph/animation/animation/move.js.map +1 -0
  528. package/es/graph/animation/animation/rotate.d.ts +3 -0
  529. package/es/graph/animation/animation/rotate.js +32 -0
  530. package/es/graph/animation/animation/rotate.js.map +1 -0
  531. package/es/graph/animation/animation/scale.d.ts +3 -0
  532. package/es/graph/animation/animation/scale.js +74 -0
  533. package/es/graph/animation/animation/scale.js.map +1 -0
  534. package/es/graph/animation/animation/update.d.ts +6 -0
  535. package/es/graph/animation/animation/update.js +20 -0
  536. package/es/graph/animation/animation/update.js.map +1 -0
  537. package/es/graph/animation/animator.d.ts +26 -0
  538. package/es/graph/animation/animator.js +83 -0
  539. package/es/graph/animation/animator.js.map +1 -0
  540. package/es/graph/animation/arranger.d.ts +13 -0
  541. package/es/graph/animation/arranger.js +29 -0
  542. package/es/graph/animation/arranger.js.map +1 -0
  543. package/es/graph/animation/attribute.d.ts +27 -0
  544. package/es/graph/animation/attribute.js +114 -0
  545. package/es/graph/animation/attribute.js.map +1 -0
  546. package/es/graph/animation/config.d.ts +5 -0
  547. package/es/graph/animation/config.js +84 -0
  548. package/es/graph/animation/config.js.map +1 -0
  549. package/es/graph/animation/morph.d.ts +12 -0
  550. package/es/graph/animation/morph.js +171 -0
  551. package/es/graph/animation/morph.js.map +1 -0
  552. package/es/graph/attributes/common.d.ts +2 -0
  553. package/es/graph/attributes/common.js +13 -0
  554. package/es/graph/attributes/common.js.map +1 -0
  555. package/es/graph/attributes/helpers.d.ts +17 -0
  556. package/es/graph/attributes/helpers.js +75 -0
  557. package/es/graph/attributes/helpers.js.map +1 -0
  558. package/es/graph/attributes/index.d.ts +10 -0
  559. package/es/graph/attributes/index.js +231 -0
  560. package/es/graph/attributes/index.js.map +1 -0
  561. package/es/graph/canvas-renderer.d.ts +34 -0
  562. package/es/graph/canvas-renderer.js +115 -0
  563. package/es/graph/canvas-renderer.js.map +1 -0
  564. package/es/graph/constants.d.ts +23 -0
  565. package/es/graph/constants.js +47 -0
  566. package/es/graph/constants.js.map +1 -0
  567. package/es/graph/element.d.ts +66 -0
  568. package/es/graph/element.js +292 -0
  569. package/es/graph/element.js.map +1 -0
  570. package/es/graph/enums.d.ts +153 -0
  571. package/es/graph/enums.js +129 -0
  572. package/es/graph/enums.js.map +1 -0
  573. package/es/graph/glyph-element.d.ts +53 -0
  574. package/es/graph/glyph-element.js +206 -0
  575. package/es/graph/glyph-element.js.map +1 -0
  576. package/es/graph/index.d.ts +3 -0
  577. package/es/graph/index.js +6 -0
  578. package/es/graph/index.js.map +1 -0
  579. package/es/graph/layout/grid.d.ts +3 -0
  580. package/es/graph/layout/grid.js +66 -0
  581. package/es/graph/layout/grid.js.map +1 -0
  582. package/es/graph/layout/layout.d.ts +3 -0
  583. package/es/graph/layout/layout.js +33 -0
  584. package/es/graph/layout/layout.js.map +1 -0
  585. package/es/graph/layout/relative.d.ts +3 -0
  586. package/es/graph/layout/relative.js +85 -0
  587. package/es/graph/layout/relative.js.map +1 -0
  588. package/es/graph/mark/differ.d.ts +20 -0
  589. package/es/graph/mark/differ.js +104 -0
  590. package/es/graph/mark/differ.js.map +1 -0
  591. package/es/graph/mark/encode.d.ts +10 -0
  592. package/es/graph/mark/encode.js +92 -0
  593. package/es/graph/mark/encode.js.map +1 -0
  594. package/es/graph/mark/large-rects.d.ts +10 -0
  595. package/es/graph/mark/large-rects.js +23 -0
  596. package/es/graph/mark/large-rects.js.map +1 -0
  597. package/es/graph/mark/large-symbols.d.ts +11 -0
  598. package/es/graph/mark/large-symbols.js +27 -0
  599. package/es/graph/mark/large-symbols.js.map +1 -0
  600. package/es/graph/mark-tree.d.ts +2 -0
  601. package/es/graph/mark-tree.js +15 -0
  602. package/es/graph/mark-tree.js.map +1 -0
  603. package/es/graph/util/element.d.ts +2 -0
  604. package/es/graph/util/element.js +8 -0
  605. package/es/graph/util/element.js.map +1 -0
  606. package/es/graph/util/env.d.ts +2 -0
  607. package/es/graph/util/env.js +6 -0
  608. package/es/graph/util/env.js.map +1 -0
  609. package/es/graph/util/events-extend.d.ts +5 -0
  610. package/es/graph/util/events-extend.js +12 -0
  611. package/es/graph/util/events-extend.js.map +1 -0
  612. package/es/graph/util/graphic.d.ts +9 -0
  613. package/es/graph/util/graphic.js +59 -0
  614. package/es/graph/util/graphic.js.map +1 -0
  615. package/es/graph/util/point.d.ts +1 -0
  616. package/es/graph/util/point.js +67 -0
  617. package/es/graph/util/point.js.map +1 -0
  618. package/es/index.d.ts +14 -0
  619. package/es/index.js +27 -0
  620. package/es/index.js.map +1 -0
  621. package/es/parse/coordinate.d.ts +7 -0
  622. package/es/parse/coordinate.js +65 -0
  623. package/es/parse/coordinate.js.map +1 -0
  624. package/es/parse/event.d.ts +8 -0
  625. package/es/parse/event.js +23 -0
  626. package/es/parse/event.js.map +1 -0
  627. package/es/parse/mark.d.ts +4 -0
  628. package/es/parse/mark.js +19 -0
  629. package/es/parse/mark.js.map +1 -0
  630. package/es/parse/option.d.ts +3 -0
  631. package/es/parse/option.js +10 -0
  632. package/es/parse/option.js.map +1 -0
  633. package/es/parse/scale.d.ts +8 -0
  634. package/es/parse/scale.js +347 -0
  635. package/es/parse/scale.js.map +1 -0
  636. package/es/parse/transform.d.ts +5 -0
  637. package/es/parse/transform.js +102 -0
  638. package/es/parse/transform.js.map +1 -0
  639. package/es/parse/util.d.ts +13 -0
  640. package/es/parse/util.js +65 -0
  641. package/es/parse/util.js.map +1 -0
  642. package/es/parse/view.d.ts +17 -0
  643. package/es/parse/view.js +98 -0
  644. package/es/parse/view.js.map +1 -0
  645. package/es/semantic-marks/cell.d.ts +13 -0
  646. package/es/semantic-marks/cell.js +57 -0
  647. package/es/semantic-marks/cell.js.map +1 -0
  648. package/es/semantic-marks/interval.d.ts +14 -0
  649. package/es/semantic-marks/interval.js +87 -0
  650. package/es/semantic-marks/interval.js.map +1 -0
  651. package/es/semantic-marks/text.d.ts +10 -0
  652. package/es/semantic-marks/text.js +22 -0
  653. package/es/semantic-marks/text.js.map +1 -0
  654. package/es/theme/common/component.d.ts +15 -0
  655. package/es/theme/common/component.js +510 -0
  656. package/es/theme/common/component.js.map +1 -0
  657. package/es/theme/common/constants.d.ts +1 -0
  658. package/es/theme/common/constants.js +2 -0
  659. package/es/theme/common/constants.js.map +1 -0
  660. package/es/theme/common/mark.d.ts +2 -0
  661. package/es/theme/common/mark.js +11 -0
  662. package/es/theme/common/mark.js.map +1 -0
  663. package/es/theme/dark.d.ts +2 -0
  664. package/es/theme/dark.js +96 -0
  665. package/es/theme/dark.js.map +1 -0
  666. package/es/theme/default.d.ts +2 -0
  667. package/es/theme/default.js +16 -0
  668. package/es/theme/default.js.map +1 -0
  669. package/es/theme/theme-manager.d.ts +8 -0
  670. package/es/theme/theme-manager.js +22 -0
  671. package/es/theme/theme-manager.js.map +1 -0
  672. package/es/transforms/data/bin.d.ts +2 -0
  673. package/es/transforms/data/bin.js +16 -0
  674. package/es/transforms/data/bin.js.map +1 -0
  675. package/es/transforms/data/circular-relation.d.ts +2 -0
  676. package/es/transforms/data/circular-relation.js +44 -0
  677. package/es/transforms/data/circular-relation.js.map +1 -0
  678. package/es/transforms/data/contour.d.ts +2 -0
  679. package/es/transforms/data/contour.js +111 -0
  680. package/es/transforms/data/contour.js.map +1 -0
  681. package/es/transforms/data/filter.d.ts +2 -0
  682. package/es/transforms/data/filter.js +2 -0
  683. package/es/transforms/data/filter.js.map +1 -0
  684. package/es/transforms/data/fold.d.ts +2 -0
  685. package/es/transforms/data/fold.js +16 -0
  686. package/es/transforms/data/fold.js.map +1 -0
  687. package/es/transforms/data/funnel.d.ts +2 -0
  688. package/es/transforms/data/funnel.js +17 -0
  689. package/es/transforms/data/funnel.js.map +1 -0
  690. package/es/transforms/data/join.d.ts +2 -0
  691. package/es/transforms/data/join.js +26 -0
  692. package/es/transforms/data/join.js.map +1 -0
  693. package/es/transforms/data/kde.d.ts +2 -0
  694. package/es/transforms/data/kde.js +80 -0
  695. package/es/transforms/data/kde.js.map +1 -0
  696. package/es/transforms/data/map.d.ts +2 -0
  697. package/es/transforms/data/map.js +16 -0
  698. package/es/transforms/data/map.js.map +1 -0
  699. package/es/transforms/data/pick.d.ts +2 -0
  700. package/es/transforms/data/pick.js +15 -0
  701. package/es/transforms/data/pick.js.map +1 -0
  702. package/es/transforms/data/pie.d.ts +2 -0
  703. package/es/transforms/data/pie.js +18 -0
  704. package/es/transforms/data/pie.js.map +1 -0
  705. package/es/transforms/data/range.d.ts +4 -0
  706. package/es/transforms/data/range.js +9 -0
  707. package/es/transforms/data/range.js.map +1 -0
  708. package/es/transforms/data/sort.d.ts +2 -0
  709. package/es/transforms/data/sort.js +13 -0
  710. package/es/transforms/data/sort.js.map +1 -0
  711. package/es/transforms/data/stack.d.ts +2 -0
  712. package/es/transforms/data/stack.js +72 -0
  713. package/es/transforms/data/stack.js.map +1 -0
  714. package/es/transforms/data/unfold.d.ts +2 -0
  715. package/es/transforms/data/unfold.js +45 -0
  716. package/es/transforms/data/unfold.js.map +1 -0
  717. package/es/transforms/index.d.ts +23 -0
  718. package/es/transforms/index.js +205 -0
  719. package/es/transforms/index.js.map +1 -0
  720. package/es/transforms/mark/dodge.d.ts +2 -0
  721. package/es/transforms/mark/dodge.js +74 -0
  722. package/es/transforms/mark/dodge.js.map +1 -0
  723. package/es/transforms/mark/jitter.d.ts +4 -0
  724. package/es/transforms/mark/jitter.js +48 -0
  725. package/es/transforms/mark/jitter.js.map +1 -0
  726. package/es/transforms/mark/lttb-sample.d.ts +2 -0
  727. package/es/transforms/mark/lttb-sample.js +60 -0
  728. package/es/transforms/mark/lttb-sample.js.map +1 -0
  729. package/es/transforms/mark/mark-overlap.d.ts +2 -0
  730. package/es/transforms/mark/mark-overlap.js +71 -0
  731. package/es/transforms/mark/mark-overlap.js.map +1 -0
  732. package/es/transforms/mark/symmetry.d.ts +2 -0
  733. package/es/transforms/mark/symmetry.js +20 -0
  734. package/es/transforms/mark/symmetry.js.map +1 -0
  735. package/es/transforms/util/util.d.ts +5 -0
  736. package/es/transforms/util/util.js +33 -0
  737. package/es/transforms/util/util.js.map +1 -0
  738. package/es/transforms/view/identifier.d.ts +2 -0
  739. package/es/transforms/view/identifier.js +13 -0
  740. package/es/transforms/view/identifier.js.map +1 -0
  741. package/es/types/animate.d.ts +224 -0
  742. package/es/types/animate.js +2 -0
  743. package/es/types/animate.js.map +1 -0
  744. package/es/types/base.d.ts +36 -0
  745. package/es/types/base.js +2 -0
  746. package/es/types/base.js.map +1 -0
  747. package/es/types/component.d.ts +240 -0
  748. package/es/types/component.js +2 -0
  749. package/es/types/component.js.map +1 -0
  750. package/es/types/coordinate.d.ts +15 -0
  751. package/es/types/coordinate.js +2 -0
  752. package/es/types/coordinate.js.map +1 -0
  753. package/es/types/data.d.ts +55 -0
  754. package/es/types/data.js +1 -0
  755. package/es/types/data.js.map +1 -0
  756. package/es/types/dataflow.d.ts +13 -0
  757. package/es/types/dataflow.js +2 -0
  758. package/es/types/dataflow.js.map +1 -0
  759. package/es/types/element.d.ts +117 -0
  760. package/es/types/element.js +2 -0
  761. package/es/types/element.js.map +1 -0
  762. package/es/types/event.d.ts +58 -0
  763. package/es/types/event.js +2 -0
  764. package/es/types/event.js.map +1 -0
  765. package/es/types/glyph.d.ts +29 -0
  766. package/es/types/glyph.js +2 -0
  767. package/es/types/glyph.js.map +1 -0
  768. package/es/types/grammar.d.ts +184 -0
  769. package/es/types/grammar.js +2 -0
  770. package/es/types/grammar.js.map +1 -0
  771. package/es/types/hooks.d.ts +45 -0
  772. package/es/types/hooks.js +2 -0
  773. package/es/types/hooks.js.map +1 -0
  774. package/es/types/index.d.ts +22 -0
  775. package/es/types/index.js +44 -0
  776. package/es/types/index.js.map +1 -0
  777. package/es/types/layout.d.ts +5 -0
  778. package/es/types/layout.js +2 -0
  779. package/es/types/layout.js.map +1 -0
  780. package/es/types/mark.d.ts +344 -0
  781. package/es/types/mark.js +2 -0
  782. package/es/types/mark.js.map +1 -0
  783. package/es/types/morph.d.ts +29 -0
  784. package/es/types/morph.js +2 -0
  785. package/es/types/morph.js.map +1 -0
  786. package/es/types/plot.d.ts +326 -0
  787. package/es/types/plot.js +2 -0
  788. package/es/types/plot.js.map +1 -0
  789. package/es/types/projection.d.ts +61 -0
  790. package/es/types/projection.js +2 -0
  791. package/es/types/projection.js.map +1 -0
  792. package/es/types/renderer.d.ts +19 -0
  793. package/es/types/renderer.js +2 -0
  794. package/es/types/renderer.js.map +1 -0
  795. package/es/types/scale.d.ts +111 -0
  796. package/es/types/scale.js +2 -0
  797. package/es/types/scale.js.map +1 -0
  798. package/es/types/signal.d.ts +20 -0
  799. package/es/types/signal.js +2 -0
  800. package/es/types/signal.js.map +1 -0
  801. package/es/types/theme.d.ts +41 -0
  802. package/es/types/theme.js +2 -0
  803. package/es/types/theme.js.map +1 -0
  804. package/es/types/transform.d.ts +291 -0
  805. package/es/types/transform.js +2 -0
  806. package/es/types/transform.js.map +1 -0
  807. package/es/types/view.d.ts +217 -0
  808. package/es/types/view.js +2 -0
  809. package/es/types/view.js.map +1 -0
  810. package/es/util/data.d.ts +3 -0
  811. package/es/util/data.js +60 -0
  812. package/es/util/data.js.map +1 -0
  813. package/es/util/grammar-heap.d.ts +14 -0
  814. package/es/util/grammar-heap.js +58 -0
  815. package/es/util/grammar-heap.js.map +1 -0
  816. package/es/util/text.d.ts +19 -0
  817. package/es/util/text.js +25 -0
  818. package/es/util/text.js.map +1 -0
  819. package/es/util/unique-list.d.ts +12 -0
  820. package/es/util/unique-list.js +29 -0
  821. package/es/util/unique-list.js.map +1 -0
  822. package/es/view/View.d.ts +157 -0
  823. package/es/view/View.js +836 -0
  824. package/es/view/View.js.map +1 -0
  825. package/es/view/animate.d.ts +20 -0
  826. package/es/view/animate.js +98 -0
  827. package/es/view/animate.js.map +1 -0
  828. package/es/view/component.d.ts +26 -0
  829. package/es/view/component.js +64 -0
  830. package/es/view/component.js.map +1 -0
  831. package/es/view/constants.d.ts +17 -0
  832. package/es/view/constants.js +32 -0
  833. package/es/view/constants.js.map +1 -0
  834. package/es/view/coordinate.d.ts +23 -0
  835. package/es/view/coordinate.js +52 -0
  836. package/es/view/coordinate.js.map +1 -0
  837. package/es/view/data.d.ts +37 -0
  838. package/es/view/data.js +195 -0
  839. package/es/view/data.js.map +1 -0
  840. package/es/view/dataflow.d.ts +32 -0
  841. package/es/view/dataflow.js +141 -0
  842. package/es/view/dataflow.js.map +1 -0
  843. package/es/view/events.d.ts +4 -0
  844. package/es/view/events.js +26 -0
  845. package/es/view/events.js.map +1 -0
  846. package/es/view/glyph-meta.d.ts +29 -0
  847. package/es/view/glyph-meta.js +37 -0
  848. package/es/view/glyph-meta.js.map +1 -0
  849. package/es/view/glyph.d.ts +14 -0
  850. package/es/view/glyph.js +27 -0
  851. package/es/view/glyph.js.map +1 -0
  852. package/es/view/grammar-base.d.ts +46 -0
  853. package/es/view/grammar-base.js +165 -0
  854. package/es/view/grammar-base.js.map +1 -0
  855. package/es/view/grammar-record.d.ts +39 -0
  856. package/es/view/grammar-record.js +170 -0
  857. package/es/view/grammar-record.js.map +1 -0
  858. package/es/view/group.d.ts +13 -0
  859. package/es/view/group.js +39 -0
  860. package/es/view/group.js.map +1 -0
  861. package/es/view/index.d.ts +1 -0
  862. package/es/view/index.js +2 -0
  863. package/es/view/index.js.map +1 -0
  864. package/es/view/mark.d.ts +112 -0
  865. package/es/view/mark.js +604 -0
  866. package/es/view/mark.js.map +1 -0
  867. package/es/view/scale.d.ts +26 -0
  868. package/es/view/scale.js +82 -0
  869. package/es/view/scale.js.map +1 -0
  870. package/es/view/signal.d.ts +18 -0
  871. package/es/view/signal.js +52 -0
  872. package/es/view/signal.js.map +1 -0
  873. package/package.json +67 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/glyph/violin.ts"],"names":[],"mappings":"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","file":"violin.js","sourcesContent":["import { isValidNumber } from '@visactor/vutils';\nimport type { IGlyphElement, ViolinEncoderSpec } from '../types';\nimport { Factory } from '../core/factory';\nimport type { IBaseScale } from '@visactor/vscale';\n\nconst defaultDensitySize = 30;\n\nconst computeViolinPoints = (density: [number, number][], densitySize: number, scale: IBaseScale, config: any) => {\n if (!density || density.length === 0) {\n return [];\n }\n const maxDensity = density.reduce((max, d) => Math.max(max, d[1]), 0);\n\n if (config?.direction === 'horizontal') {\n const topPoints = density.map(d => {\n return {\n y: -densitySize * (1 / maxDensity) * d[1],\n x: scale.scale(d[0])\n };\n });\n const bottomPoints = density.map(d => {\n return {\n y: densitySize * (1 / maxDensity) * d[1],\n x: scale.scale(d[0])\n };\n });\n return [...topPoints, ...bottomPoints.reverse()];\n }\n\n const leftPoints = density.map(d => {\n return {\n x: -densitySize * (1 / maxDensity) * d[1],\n y: scale.scale(d[0])\n };\n });\n const rightPoints = density.map(d => {\n return {\n x: densitySize * (1 / maxDensity) * d[1],\n y: scale.scale(d[0])\n };\n });\n return [...leftPoints, ...rightPoints.reverse()];\n};\n\nconst encodeViolin = (encodeValues: any, datum: any, element: IGlyphElement, config: any) => {\n const attributes = {\n violin: {},\n shaft: {},\n box: {},\n median: {}\n };\n\n const x = encodeValues.x ?? element.getGraphicAttribute('x', false);\n const y = encodeValues.y ?? element.getGraphicAttribute('y', false);\n const width = encodeValues.width ?? element.getGraphicAttribute('width', false);\n const height = encodeValues.height ?? element.getGraphicAttribute('height', false);\n const boxWidth = encodeValues.boxWidth ?? element.getGraphicAttribute('boxWidth', false);\n const boxHeight = encodeValues.boxHeight ?? element.getGraphicAttribute('boxHeight', false);\n const densitySize =\n encodeValues.densitySize ?? element.getGraphicAttribute('densitySize', false) ?? defaultDensitySize;\n\n const densityScale = element.mark.getScalesByChannel().density;\n const densityField = element.mark.getFieldsByChannel().density;\n if (densityField && densityScale) {\n const points = computeViolinPoints(datum[densityField], densitySize, densityScale, config);\n Object.assign(attributes.violin, { points });\n }\n\n if (config?.direction === 'horizontal') {\n if (isValidNumber(boxHeight)) {\n Object.assign(attributes.box, { y: y - boxHeight / 2, y1: y + boxHeight / 2 });\n } else {\n Object.assign(attributes.box, { y: y - height / 2, y1: y + height / 2 });\n }\n } else {\n if (isValidNumber(boxWidth)) {\n Object.assign(attributes.box, { x: x - boxWidth / 2, x1: x + boxWidth / 2 });\n } else {\n Object.assign(attributes.box, { x: x - width / 2, x1: x + width / 2 });\n }\n }\n return attributes;\n};\n\nexport const registerViolinGlyph = () => {\n Factory.registerGlyph<ViolinEncoderSpec>('violin', {\n violin: 'polygon',\n shaft: 'rule',\n box: 'rect',\n median: 'symbol'\n })\n .registerFunctionEncoder(encodeViolin)\n .registerChannelEncoder('x', (channel, encodeValue, encodeValues, datum, element, config) => {\n if (config?.direction === 'horizontal') {\n return null;\n }\n return {\n shaft: { x: encodeValue, x1: encodeValue }\n };\n })\n .registerChannelEncoder('y', (channel, encodeValue, encodeValues, datum, element, config) => {\n if (!(config?.direction === 'horizontal')) {\n return null;\n }\n return {\n shaft: { y: encodeValue, y1: encodeValue }\n };\n })\n .registerChannelEncoder('q1', (channel, encodeValue, encodeValues, datum, element, config) => {\n return config?.direction === 'horizontal' ? { box: { x: encodeValue } } : { box: { y: encodeValue } };\n })\n .registerChannelEncoder('q3', (channel, encodeValue, encodeValues, datum, element, config) => {\n return config?.direction === 'horizontal' ? { box: { x1: encodeValue } } : { box: { y1: encodeValue } };\n })\n .registerChannelEncoder('min', (channel, encodeValue, encodeValues, datum, element, config) => {\n return config?.direction === 'horizontal' ? { shaft: { x: encodeValue } } : { shaft: { y: encodeValue } };\n })\n .registerChannelEncoder('max', (channel, encodeValue, encodeValues, datum, element, config) => {\n return config?.direction === 'horizontal' ? { shaft: { x1: encodeValue } } : { shaft: { y1: encodeValue } };\n })\n .registerChannelEncoder('median', (channel, encodeValue, encodeValues, datum, element, config) => {\n return config?.direction === 'horizontal'\n ? { median: { x: encodeValue, x1: encodeValue, visible: true } }\n : { median: { y: encodeValue, y1: encodeValue, visible: true } };\n })\n .registerChannelEncoder('angle', (channel, encodeValue, encodeValues, datum, element, config) => {\n const defaultAnchor =\n config?.direction === 'horizontal'\n ? [(encodeValues.min + encodeValues.max) / 2, encodeValues.y]\n : [encodeValues.x, (encodeValues.min + encodeValues.max) / 2];\n const anchor = encodeValues.anchor ?? defaultAnchor;\n return {\n shaft: { angle: encodeValue, anchor },\n box: { angle: encodeValue, anchor },\n median: { angle: encodeValue, anchor }\n };\n })\n .registerChannelEncoder('medianFill', (channel, encodeValue, encodeValues, datum, element, config) => {\n return { median: { fill: encodeValue } };\n })\n .registerChannelEncoder('violinFill', (channel, encodeValue, encodeValues, datum, element, config) => {\n return { violin: { fill: encodeValue } };\n })\n .registerChannelEncoder('violinStroke', (channel, encodeValue, encodeValues, datum, element, config) => {\n return { violin: { stroke: encodeValue } };\n })\n .registerChannelEncoder('density', (channel, encodeValue, encodeValues, datum, element, config) => {\n return { violin: { points: encodeValue } };\n })\n .registerDefaultEncoder(() => {\n return {\n violin: { fill: '#ff807f', stroke: '#ff0000' },\n shaft: { stroke: '#000000' },\n box: { fill: '#000000' },\n median: { fill: '#FFFFFF', visible: false }\n };\n });\n};\n"]}
@@ -0,0 +1 @@
1
+ export declare const registerWaveGlyph: () => void;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.registerWaveGlyph = void 0;
6
+
7
+ const factory_1 = require("../core/factory"), registerWaveGlyph = () => {
8
+ factory_1.Factory.registerGlyph("wave", {
9
+ wave0: "area",
10
+ wave1: "area",
11
+ wave2: "area"
12
+ }).registerChannelEncoder("wave", ((channel, encodeValue, encodeValues, datum, element) => {
13
+ const originPoints = new Array(21).fill(0).map(((v, index) => {
14
+ const waveHeight = index % 2 == 0 ? 20 : 0;
15
+ return {
16
+ x: 50 * index - 500,
17
+ y: encodeValues.y + waveHeight,
18
+ y1: encodeValues.y + encodeValues.height
19
+ };
20
+ }));
21
+ return {
22
+ wave0: {
23
+ points: originPoints.map((point => ({
24
+ x: point.x + 100 * encodeValue,
25
+ y: point.y,
26
+ y1: point.y1
27
+ }))),
28
+ x: 0,
29
+ y: 0
30
+ },
31
+ wave1: {
32
+ points: originPoints.map((point => ({
33
+ x: point.x + 200 * encodeValue - 40,
34
+ y: point.y,
35
+ y1: point.y1
36
+ }))),
37
+ x: 0,
38
+ y: 0
39
+ },
40
+ wave2: {
41
+ points: originPoints.map((point => ({
42
+ x: point.x + 300 * encodeValue - 20,
43
+ y: point.y,
44
+ y1: point.y1
45
+ }))),
46
+ x: 0,
47
+ y: 0
48
+ }
49
+ };
50
+ })).registerDefaultEncoder((() => ({
51
+ wave0: {
52
+ curveType: "monotoneX",
53
+ fillOpacity: 1
54
+ },
55
+ wave1: {
56
+ curveType: "monotoneX",
57
+ fillOpacity: .66
58
+ },
59
+ wave2: {
60
+ curveType: "monotoneX",
61
+ fillOpacity: .33
62
+ }
63
+ })));
64
+ };
65
+
66
+ exports.registerWaveGlyph = registerWaveGlyph;
67
+ //# sourceMappingURL=wave.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/glyph/wave.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAGnC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,iBAAO,CAAC,aAAa,CAAkB,MAAM,EAAE;QAC7C,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;KACd,CAAC;SACC,sBAAsB,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACrF,MAAM,YAAY,GAAiB,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACxE,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,UAAU,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QAC5G,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACvC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACvC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACvC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,OAAO;YACL,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACtC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACtC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;SACvC,CAAC;IACJ,CAAC,CAAC;SACD,sBAAsB,CAAC,GAAG,EAAE;QAC3B,OAAO;YACL,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE;YACjD,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE;YACpD,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE;SACrD,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAjCW,QAAA,iBAAiB,qBAiC5B","file":"wave.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { Factory } from '../core/factory';\nimport type { WaveEncoderSpec } from '../types';\n\nexport const registerWaveGlyph = () => {\n Factory.registerGlyph<WaveEncoderSpec>('wave', {\n wave0: 'area',\n wave1: 'area',\n wave2: 'area'\n })\n .registerChannelEncoder('wave', (channel, encodeValue, encodeValues, datum, element) => {\n const originPoints: IPointLike[] = new Array(21).fill(0).map((v, index) => {\n const waveHeight = index % 2 === 0 ? 20 : 0;\n return { x: -500 + 50 * index, y: encodeValues.y + waveHeight, y1: encodeValues.y + encodeValues.height };\n });\n const points0 = originPoints.map(point => {\n return { x: point.x + encodeValue * 100, y: point.y, y1: point.y1 };\n });\n const points1 = originPoints.map(point => {\n return { x: point.x + encodeValue * 200 - 40, y: point.y, y1: point.y1 };\n });\n const points2 = originPoints.map(point => {\n return { x: point.x + encodeValue * 300 - 20, y: point.y, y1: point.y1 };\n });\n return {\n wave0: { points: points0, x: 0, y: 0 },\n wave1: { points: points1, x: 0, y: 0 },\n wave2: { points: points2, x: 0, y: 0 }\n };\n })\n .registerDefaultEncoder(() => {\n return {\n wave0: { curveType: 'monotoneX', fillOpacity: 1 },\n wave1: { curveType: 'monotoneX', fillOpacity: 0.66 },\n wave2: { curveType: 'monotoneX', fillOpacity: 0.33 }\n };\n });\n};\n"]}
@@ -0,0 +1,48 @@
1
+ import type { IAnimate, IAnimationConfig, IAnimator, IParsedAnimationConfig } from '../../types/animate';
2
+ import type { IElement, IMark, MarkFunctionType } from '../../types';
3
+ import { Arranger } from './arranger';
4
+ export declare class Animate implements IAnimate {
5
+ mark: IMark;
6
+ state: MarkFunctionType<string> | null;
7
+ configs: Array<IParsedAnimationConfig>;
8
+ immediateConfigs: Array<IParsedAnimationConfig>;
9
+ private isEnabled;
10
+ private disabledStates;
11
+ private animators;
12
+ private elementRecorder;
13
+ private timelineCount;
14
+ constructor(mark: IMark, config: Record<string, IAnimationConfig | IAnimationConfig[]>);
15
+ updateConfig(config: Record<string, IAnimationConfig | IAnimationConfig[]>): void;
16
+ updateState(state: MarkFunctionType<string> | null): void;
17
+ animate(): this;
18
+ runAnimationByState(animationState: string): Arranger;
19
+ stopAnimationByState(animationState: string): this;
20
+ pauseAnimationByState(animationState: string): this;
21
+ resumeAnimationByState(animationState: string): this;
22
+ run(config: IAnimationConfig | IAnimationConfig[]): Arranger;
23
+ stop(): this;
24
+ pause(): this;
25
+ resume(): this;
26
+ reverse(): this;
27
+ restart(): this;
28
+ record(): this;
29
+ recordEnd(): this;
30
+ isAnimating(): boolean;
31
+ isElementAnimating(element: IElement): boolean;
32
+ getAnimatorCount(): number;
33
+ getAllAnimators(): IAnimator[];
34
+ getElementAnimators(element: IElement | IElement[], animationState?: string): IAnimator[];
35
+ enable(): this;
36
+ disable(): this;
37
+ enableAnimationState(state: string | string[]): this;
38
+ disableAnimationState(state: string | string[]): this;
39
+ release(): void;
40
+ private animateByTimeline;
41
+ private animateElement;
42
+ private getAnimationState;
43
+ private getAnimationUnit;
44
+ private clearElementAnimation;
45
+ private clearAllElements;
46
+ private clearElement;
47
+ private handleAnimatorEnd;
48
+ }
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.Animate = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), animator_1 = require("./animator"), config_1 = require("./config"), constants_1 = require("../constants"), util_1 = require("../../parse/util"), arranger_1 = require("./arranger"), enums_1 = require("../enums");
8
+
9
+ class Animate {
10
+ constructor(mark, config) {
11
+ this.state = null, this.immediateConfigs = [], this.isEnabled = !0, this.disabledStates = [],
12
+ this.animators = new Map, this.elementRecorder = new WeakMap, this.timelineCount = {},
13
+ this.mark = mark, this.configs = (0, config_1.normalizeAnimationConfig)(null != config ? config : {});
14
+ }
15
+ updateConfig(config) {
16
+ this.configs = (0, config_1.normalizeAnimationConfig)(null != config ? config : {});
17
+ }
18
+ updateState(state) {
19
+ this.state = state;
20
+ }
21
+ animate() {
22
+ if (!this.isEnabled || !this.configs || !this.configs.length) return;
23
+ const elements = this.mark.getAllElements(), parameters = this.mark.parameters();
24
+ return elements.forEach((element => {
25
+ var _a;
26
+ element.isReserved && element.diffState !== enums_1.DiffState.exit && (element.isReserved = !1);
27
+ const prevElementState = null === (_a = this.elementRecorder.get(element)) || void 0 === _a ? void 0 : _a.prevState;
28
+ this.configs.some((config => prevElementState !== element.diffState && config.state === prevElementState && config.timeline.controlOptions.stopWhenStateChange)) && this.clearElementAnimation(element, !1);
29
+ })), this.configs.forEach((config => {
30
+ this.animateByTimeline(config, elements, parameters);
31
+ })), this.mark.cleanExitElements(), this;
32
+ }
33
+ runAnimationByState(animationState) {
34
+ if (!this.isEnabled) return;
35
+ const stateConfigs = this.configs.filter((config => config.state === animationState)), elements = this.mark.getAllElements(), parameters = this.mark.parameters(), animators = stateConfigs.reduce(((animators, config) => animators.concat(this.animateByTimeline(config, elements, parameters, !0))), []);
36
+ return new arranger_1.Arranger(animators);
37
+ }
38
+ stopAnimationByState(animationState) {
39
+ const animators = this.animators.get(animationState);
40
+ return animators && animators.forEach((animator => animator.stop())), this;
41
+ }
42
+ pauseAnimationByState(animationState) {
43
+ const animators = this.animators.get(animationState);
44
+ return animators && animators.forEach((animator => animator.pause())), this;
45
+ }
46
+ resumeAnimationByState(animationState) {
47
+ const animators = this.animators.get(animationState);
48
+ return animators && animators.forEach((animator => animator.resume())), this;
49
+ }
50
+ run(config) {
51
+ if (!this.isEnabled) return;
52
+ const parsedConfigs = (0, config_1.normalizeStateAnimationConfig)(constants_1.ImmediateAnimationState, config, this.immediateConfigs.length);
53
+ this.immediateConfigs = this.immediateConfigs.concat(parsedConfigs);
54
+ const elements = this.mark.getAllElements(), parameters = this.mark.parameters(), animators = parsedConfigs.reduce(((animators, config) => animators.concat(this.animateByTimeline(config, elements, parameters, !0))), []);
55
+ return new arranger_1.Arranger(animators);
56
+ }
57
+ stop() {
58
+ return this.animators.forEach((animators => {
59
+ animators.forEach((animator => animator.stop()));
60
+ })), this;
61
+ }
62
+ pause() {
63
+ return this.animators.forEach((stateAnimators => stateAnimators.forEach((animator => animator.pause())))),
64
+ this;
65
+ }
66
+ resume() {
67
+ return this.animators.forEach((stateAnimators => stateAnimators.forEach((animator => animator.resume())))),
68
+ this;
69
+ }
70
+ reverse() {
71
+ return this;
72
+ }
73
+ restart() {
74
+ return this;
75
+ }
76
+ record() {
77
+ return this;
78
+ }
79
+ recordEnd() {
80
+ return this;
81
+ }
82
+ isAnimating() {
83
+ let isAnimating = !1;
84
+ return this.animators.forEach((animators => {
85
+ isAnimating = isAnimating || animators.some((animator => animator.isAnimating));
86
+ })), isAnimating;
87
+ }
88
+ isElementAnimating(element) {
89
+ var _a;
90
+ const stateAnimationCounts = null === (_a = this.elementRecorder.get(element)) || void 0 === _a ? void 0 : _a.count;
91
+ return (0, vutils_1.isNil)(stateAnimationCounts) || Object.values(stateAnimationCounts).every((count => 0 === count));
92
+ }
93
+ getAnimatorCount() {
94
+ let count = 0;
95
+ return this.animators.forEach((animators => count += animators.length)), count;
96
+ }
97
+ getAllAnimators() {
98
+ const allAnimators = [];
99
+ return this.animators.forEach((animators => {
100
+ allAnimators.push(...animators);
101
+ })), allAnimators;
102
+ }
103
+ getElementAnimators(element, animationState) {
104
+ var _a;
105
+ const elements = (0, vutils_1.array)(element);
106
+ let animators = [];
107
+ return animationState ? animators = null !== (_a = this.animators.get(animationState)) && void 0 !== _a ? _a : [] : this.animators.forEach((stateAnimators => {
108
+ animators = animators.concat(stateAnimators);
109
+ })), animators.filter((animator => elements.includes(animator.element)));
110
+ }
111
+ enable() {
112
+ return this.isEnabled = !0, this;
113
+ }
114
+ disable() {
115
+ return this.isEnabled = !1, this.stop(), this.animators.clear(), this;
116
+ }
117
+ enableAnimationState(state) {
118
+ const states = (0, vutils_1.array)(state);
119
+ return this.disabledStates = this.disabledStates.filter((state => !states.includes(state))),
120
+ this;
121
+ }
122
+ disableAnimationState(state) {
123
+ const states = (0, vutils_1.array)(state);
124
+ return this.disabledStates = this.disabledStates.concat(states), this;
125
+ }
126
+ release() {
127
+ this.stop(), this.animators.clear(), this.configs = null, this.animators = null,
128
+ this.elementRecorder = null, this.timelineCount = null;
129
+ }
130
+ animateByTimeline(config, elements, parameters, forceState = !1) {
131
+ const animators = [], animatedElements = elements.filter((element => {
132
+ const checkExit = !(element.isReserved && element.diffState === enums_1.DiffState.exit), state = this.getAnimationState(element), checkDisabled = !this.disabledStates.includes(state), checkState = forceState || state === config.state, checkPartitioner = !config.timeline.partitioner || config.timeline.partitioner(element.getDatum(), element, parameters);
133
+ return checkExit && checkDisabled && checkState && checkPartitioner;
134
+ }));
135
+ return animatedElements.length && ((0, vutils_1.isNil)(this.timelineCount[config.id]) && (this.timelineCount[config.id] = 0),
136
+ config.timeline.sort && animatedElements.sort(((elementA, elementB) => config.timeline.sort(elementA.getDatum(), elementB.getDatum(), elementA, elementB, parameters))),
137
+ animatedElements.forEach(((element, index) => {
138
+ var _a;
139
+ const animationParameters = {
140
+ width: this.mark.view.width(),
141
+ height: this.mark.view.height(),
142
+ group: null !== (_a = this.mark.group) && void 0 !== _a ? _a : null,
143
+ mark: this.mark,
144
+ view: this.mark.view,
145
+ elementCount: animatedElements.length,
146
+ elementIndex: index
147
+ }, mergedParameters = Object.assign({
148
+ [constants_1.DefaultAnimationParameters]: animationParameters
149
+ }, parameters), animationUnit = this.getAnimationUnit(config.timeline, element, index, animatedElements.length, mergedParameters);
150
+ animators.push(this.animateElement(config, animationUnit, element, animationParameters, mergedParameters));
151
+ }))), animators;
152
+ }
153
+ animateElement(config, animationUnit, element, animationParameters, parameters) {
154
+ var _a, _b, _c;
155
+ const animator = new animator_1.Animator(element, animationUnit, config);
156
+ if (animator.animate(animationParameters, parameters), !animator.isAnimating) return;
157
+ element.diffState === enums_1.DiffState.exit && (element.isReserved = !0);
158
+ const isFirstAnimator = 0 === this.timelineCount[config.id];
159
+ this.timelineCount[config.id] += 1;
160
+ const elementRecord = null !== (_a = this.elementRecorder.get(element)) && void 0 !== _a ? _a : {
161
+ prevState: config.state,
162
+ count: {}
163
+ };
164
+ elementRecord.prevState = config.state, elementRecord.count[config.state] = (null !== (_b = elementRecord.count[config.state]) && void 0 !== _b ? _b : 0) + 1,
165
+ this.elementRecorder.set(element, elementRecord), this.animators.set(config.state, (null !== (_c = this.animators.get(config.state)) && void 0 !== _c ? _c : []).concat(animator)),
166
+ animator.callback((() => {
167
+ this.handleAnimatorEnd(animator);
168
+ }));
169
+ const animationEvent = {
170
+ mark: this.mark,
171
+ animationState: config.state,
172
+ animationConfig: config.originConfig
173
+ };
174
+ return isFirstAnimator && this.mark.emit(enums_1.HOOK_EVENT.ANIMATION_START, animationEvent),
175
+ this.mark.emit(enums_1.HOOK_EVENT.ELEMENT_ANIMATION_START, animationEvent, element),
176
+ animator;
177
+ }
178
+ getAnimationState(element) {
179
+ const customState = (0, util_1.invokeFunctionType)(this.state, this.mark.parameters(), element.getDatum(), element);
180
+ return null != customState ? customState : element.diffState;
181
+ }
182
+ getAnimationUnit(timeline, element, index, elementCount, parameters) {
183
+ const timeSlices = [], startTime = (0, config_1.invokeAnimateSpec)(timeline.startTime, element, parameters), totalTime = (0,
184
+ config_1.invokeAnimateSpec)(timeline.totalTime, element, parameters), oneByOne = (0,
185
+ config_1.invokeAnimateSpec)(timeline.oneByOne, element, parameters), loop = (0,
186
+ config_1.invokeAnimateSpec)(timeline.loop, element, parameters);
187
+ let loopTime = 0;
188
+ timeline.timeSlices.forEach((timeSlice => {
189
+ var _a;
190
+ const delay = (0, config_1.invokeAnimateSpec)(timeSlice.delay, element, parameters), duration = null !== (_a = (0,
191
+ config_1.invokeAnimateSpec)(timeSlice.duration, element, parameters)) && void 0 !== _a ? _a : totalTime / elementCount, effects = (0,
192
+ vutils_1.array)(timeSlice.effects).map((effect => Object.assign({}, effect, {
193
+ customParameters: (0, config_1.invokeAnimateSpec)(effect.customParameters, element, parameters)
194
+ })));
195
+ timeSlices.push({
196
+ effects: effects,
197
+ duration: duration,
198
+ delay: delay
199
+ }), loopTime += delay + duration;
200
+ }));
201
+ const oneByOneDelay = (0, vutils_1.isNumber)(oneByOne) ? oneByOne : !0 === oneByOne ? loopTime : 0;
202
+ return {
203
+ initialDelay: startTime,
204
+ loopCount: (0, vutils_1.isNumber)(loop) ? loop : !0 === loop ? 1 / 0 : 1,
205
+ loopDelay: oneByOneDelay * index,
206
+ loopDelayAfter: oneByOneDelay * (elementCount - index - 1),
207
+ loopAnimateDuration: loopTime,
208
+ loopDuration: loopTime + oneByOneDelay * (elementCount - 1),
209
+ totalTime: totalTime,
210
+ timeSlices: timeSlices
211
+ };
212
+ }
213
+ clearElementAnimation(element, clearElement = !0) {
214
+ this.animators.forEach((animators => {
215
+ animators.forEach((animator => {
216
+ animator.element === element && (animator.animationOptions.state === enums_1.DiffState.exit ? animator.stop("start", !1) : animator.stop("end", !1),
217
+ this.handleAnimatorEnd(animator, clearElement));
218
+ }));
219
+ })), this.elementRecorder.delete(element);
220
+ }
221
+ clearAllElements() {
222
+ const elements = this.mark.getAllElements();
223
+ elements && elements.forEach(((element, i) => {
224
+ this.clearElement(element, i === elements.length - 1);
225
+ }));
226
+ }
227
+ clearElement(element, updateMark = !0) {
228
+ this.clearElementAnimation(element), element.getGraphicItem() && (element.clearGraphicAttributes(),
229
+ element.diffState === enums_1.DiffState.exit && (element.isReserved = !1), updateMark && this.mark.cleanExitElements());
230
+ }
231
+ handleAnimatorEnd(animator, clearElement = !0) {
232
+ const element = animator.element, animationOptions = animator.animationOptions, animationState = animationOptions.state, isImmediateAnimation = animationState === constants_1.ImmediateAnimationState, stateAnimationCounts = this.elementRecorder.get(element).count;
233
+ stateAnimationCounts[animationState] -= 1, this.animators.set(animationState, this.animators.get(animationState).filter((ani => ani !== animator))),
234
+ 0 === this.animators.get(animationState).length && this.animators.delete(animationState),
235
+ this.timelineCount[animationOptions.id] -= 1;
236
+ const isLastAnimator = 0 === this.timelineCount[animationOptions.id], originAnimationConfig = isImmediateAnimation ? this.immediateConfigs.find((config => config.id === animationOptions.id)).originConfig : this.configs.find((config => config.id === animationOptions.id)).originConfig;
237
+ isLastAnimator && (delete this.timelineCount[animationOptions.id], isImmediateAnimation && (this.immediateConfigs = this.immediateConfigs.filter((config => config.id !== animationOptions.id)))),
238
+ clearElement && (0 === Object.keys(this.timelineCount).length ? this.clearAllElements() : animationState === enums_1.DiffState.exit && 0 === stateAnimationCounts[enums_1.DiffState.exit] && this.clearElement(element));
239
+ const animationEvent = {
240
+ mark: this.mark,
241
+ animationState: animationState,
242
+ animationConfig: originAnimationConfig
243
+ };
244
+ isLastAnimator && this.mark.emit(enums_1.HOOK_EVENT.ANIMATION_END, animationEvent),
245
+ this.mark.emit(enums_1.HOOK_EVENT.ELEMENT_ANIMATION_END, animationEvent, element);
246
+ }
247
+ }
248
+
249
+ exports.Animate = Animate;
250
+ //# sourceMappingURL=animate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/graph/animation/animate.ts"],"names":[],"mappings":"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","file":"animate.js","sourcesContent":["import { array, isNil, isNumber } from '@visactor/vutils';\nimport type {\n IAnimate,\n IAnimationConfig,\n IAnimationParameters,\n IAnimationTimeline,\n IAnimationTimeSlice,\n IAnimationUnit,\n IAnimator,\n IParsedAnimationConfig\n} from '../../types/animate';\nimport { Animator } from './animator';\nimport { invokeAnimateSpec, normalizeAnimationConfig, normalizeStateAnimationConfig } from './config';\nimport { DefaultAnimationParameters, ImmediateAnimationState } from '../constants';\nimport type { AnimationEvent, IElement, IMark, MarkFunctionType } from '../../types';\nimport { invokeFunctionType } from '../../parse/util';\nimport { Arranger } from './arranger';\nimport { DiffState, HOOK_EVENT } from '../enums';\n\nexport class Animate implements IAnimate {\n mark: IMark;\n state: MarkFunctionType<string> | null = null;\n configs: Array<IParsedAnimationConfig>;\n immediateConfigs: Array<IParsedAnimationConfig> = [];\n\n private isEnabled: boolean = true;\n private disabledStates: string[] = [];\n // store animator by animation state\n private animators: Map<string, IAnimator[]> = new Map();\n // count animation for each elements\n private elementRecorder: WeakMap<\n IElement,\n {\n prevState: string;\n count: { [state: string]: number };\n }\n > = new WeakMap();\n private timelineCount: Record<string, number> = {};\n // record: IAnimationRecord;\n\n constructor(mark: IMark, config: Record<string, IAnimationConfig | IAnimationConfig[]>) {\n this.mark = mark;\n this.configs = normalizeAnimationConfig(config ?? {});\n }\n\n updateConfig(config: Record<string, IAnimationConfig | IAnimationConfig[]>) {\n this.configs = normalizeAnimationConfig(config ?? {});\n }\n\n updateState(state: MarkFunctionType<string> | null) {\n this.state = state;\n }\n\n animate() {\n if (!this.isEnabled || !this.configs || !this.configs.length) {\n return;\n }\n\n const elements = this.mark.getAllElements();\n const parameters = this.mark.parameters();\n\n elements.forEach(element => {\n // TODO: if element is restored, clear isReserved flag\n if (element.isReserved && element.diffState !== DiffState.exit) {\n element.isReserved = false;\n }\n // clear previous animation when animation state changed\n const prevElementState = this.elementRecorder.get(element)?.prevState;\n const needStopAnimation = this.configs.some(config => {\n return (\n prevElementState !== element.diffState &&\n config.state === prevElementState &&\n config.timeline.controlOptions.stopWhenStateChange\n );\n });\n if (needStopAnimation) {\n // do not clear exit element in case it will animate\n this.clearElementAnimation(element, false);\n }\n });\n\n this.configs.forEach(config => {\n this.animateByTimeline(config, elements, parameters);\n });\n\n this.mark.cleanExitElements();\n\n return this;\n }\n\n runAnimationByState(animationState: string) {\n if (!this.isEnabled) {\n return;\n }\n\n // FIXME: maybe do nothing if state animation is already running\n // if (this.animators.get(animationState)?.length > 0) { return; }\n\n const stateConfigs = this.configs.filter(config => config.state === animationState);\n const elements = this.mark.getAllElements();\n const parameters = this.mark.parameters();\n\n const animators = stateConfigs.reduce((animators, config) => {\n return animators.concat(this.animateByTimeline(config, elements, parameters, true));\n }, [] as IAnimator[]);\n\n return new Arranger(animators);\n }\n stopAnimationByState(animationState: string) {\n const animators = this.animators.get(animationState);\n if (animators) {\n animators.forEach(animator => animator.stop());\n }\n return this;\n }\n pauseAnimationByState(animationState: string) {\n const animators = this.animators.get(animationState);\n if (animators) {\n animators.forEach(animator => animator.pause());\n }\n return this;\n }\n resumeAnimationByState(animationState: string) {\n const animators = this.animators.get(animationState);\n if (animators) {\n animators.forEach(animator => animator.resume());\n }\n return this;\n }\n\n run(config: IAnimationConfig | IAnimationConfig[]) {\n if (!this.isEnabled) {\n return;\n }\n\n const parsedConfigs = normalizeStateAnimationConfig(ImmediateAnimationState, config, this.immediateConfigs.length);\n this.immediateConfigs = this.immediateConfigs.concat(parsedConfigs);\n const elements = this.mark.getAllElements();\n const parameters = this.mark.parameters();\n\n const animators = parsedConfigs.reduce((animators, config) => {\n return animators.concat(this.animateByTimeline(config, elements, parameters, true));\n }, [] as IAnimator[]);\n\n return new Arranger(animators);\n }\n stop() {\n // map will be cleared in animator callback\n this.animators.forEach(animators => {\n animators.forEach(animator => animator.stop());\n });\n return this;\n }\n pause() {\n this.animators.forEach(stateAnimators => stateAnimators.forEach(animator => animator.pause()));\n return this;\n }\n resume() {\n this.animators.forEach(stateAnimators => stateAnimators.forEach(animator => animator.resume()));\n return this;\n }\n reverse() {\n /** Animation scheduler api, resume the recorded animations */\n return this;\n }\n restart() {\n /** Animation scheduler api, resume current animations */\n return this;\n }\n record() {\n /** Animation scheduler api, start to record a timestamp */\n return this;\n }\n recordEnd() {\n /** Animation scheduler api, end to record a timestamp */\n return this;\n }\n\n isAnimating() {\n let isAnimating = false;\n this.animators.forEach(animators => {\n isAnimating = isAnimating || animators.some(animator => animator.isAnimating);\n });\n return isAnimating;\n }\n\n isElementAnimating(element: IElement) {\n const stateAnimationCounts = this.elementRecorder.get(element)?.count;\n return isNil(stateAnimationCounts) || Object.values(stateAnimationCounts).every(count => count === 0);\n }\n\n getAnimatorCount() {\n let count = 0;\n this.animators.forEach(animators => (count += animators.length));\n return count;\n }\n\n getAllAnimators() {\n const allAnimators: IAnimator[] = [];\n this.animators.forEach(animators => {\n allAnimators.push(...animators);\n });\n return allAnimators;\n }\n\n getElementAnimators(element: IElement | IElement[], animationState?: string) {\n const elements = array(element);\n let animators: IAnimator[] = [];\n if (animationState) {\n animators = this.animators.get(animationState) ?? [];\n } else {\n this.animators.forEach(stateAnimators => {\n animators = animators.concat(stateAnimators);\n });\n }\n return animators.filter(animator => elements.includes(animator.element));\n }\n\n enable() {\n this.isEnabled = true;\n return this;\n }\n disable() {\n this.isEnabled = false;\n this.stop();\n this.animators.clear();\n return this;\n }\n enableAnimationState(state: string | string[]) {\n const states = array(state);\n this.disabledStates = this.disabledStates.filter(state => !states.includes(state));\n return this;\n }\n disableAnimationState(state: string | string[]) {\n const states = array(state);\n this.disabledStates = this.disabledStates.concat(states);\n return this;\n }\n\n release() {\n this.stop();\n // we need to clear map\n this.animators.clear();\n\n this.configs = null;\n this.animators = null;\n this.elementRecorder = null;\n this.timelineCount = null;\n }\n\n private animateByTimeline(\n config: IParsedAnimationConfig,\n elements: IElement[],\n parameters: any,\n forceState: boolean = false\n ) {\n const animators: IAnimator[] = [];\n const animatedElements = elements.filter(element => {\n // do not animate on element which is running exit animation\n // if an element is reserved, it should be set for exit animation and will be removed\n const checkExit = !(element.isReserved && element.diffState === DiffState.exit);\n // do not check animation state if forceState is set\n const state = this.getAnimationState(element);\n const checkDisabled = !this.disabledStates.includes(state);\n const checkState = forceState || state === config.state;\n // filter elements by partitioner config\n const checkPartitioner =\n !config.timeline.partitioner || config.timeline.partitioner(element.getDatum(), element, parameters);\n return checkExit && checkDisabled && checkState && checkPartitioner;\n });\n\n if (animatedElements.length) {\n if (isNil(this.timelineCount[config.id])) {\n this.timelineCount[config.id] = 0;\n }\n\n if (config.timeline.sort) {\n animatedElements.sort((elementA, elementB) => {\n return config.timeline.sort(elementA.getDatum(), elementB.getDatum(), elementA, elementB, parameters);\n });\n }\n animatedElements.forEach((element, index) => {\n const animationParameters: IAnimationParameters = {\n width: this.mark.view.width(),\n height: this.mark.view.height(),\n group: this.mark.group ?? null,\n mark: this.mark,\n view: this.mark.view,\n elementCount: animatedElements.length,\n elementIndex: index\n };\n // add animation parameter into parameters\n const mergedParameters = Object.assign({ [DefaultAnimationParameters]: animationParameters }, parameters);\n\n const animationUnit = this.getAnimationUnit(\n config.timeline,\n element,\n index,\n animatedElements.length,\n mergedParameters\n );\n animators.push(this.animateElement(config, animationUnit, element, animationParameters, mergedParameters));\n });\n }\n return animators;\n }\n\n private animateElement(\n config: IParsedAnimationConfig,\n animationUnit: IAnimationUnit,\n element: IElement,\n animationParameters: IAnimationParameters,\n parameters: any\n ) {\n // create animator\n const animator = new Animator(element, animationUnit, config);\n\n // start animating\n animator.animate(animationParameters, parameters);\n // return when animator has no valid animation\n if (!animator.isAnimating) {\n return;\n }\n if (element.diffState === DiffState.exit) {\n element.isReserved = true;\n }\n\n const isFirstAnimator = this.timelineCount[config.id] === 0;\n\n this.timelineCount[config.id] += 1;\n const elementRecord = this.elementRecorder.get(element) ?? { prevState: config.state, count: {} };\n elementRecord.prevState = config.state;\n elementRecord.count[config.state] = (elementRecord.count[config.state] ?? 0) + 1;\n this.elementRecorder.set(element, elementRecord);\n\n this.animators.set(config.state, (this.animators.get(config.state) ?? []).concat(animator));\n\n // invoke callback when animation finish\n animator.callback(() => {\n this.handleAnimatorEnd(animator);\n });\n\n // FIXME: handle multiple timelines with same animation state\n // emit animation start event\n const animationEvent: AnimationEvent = {\n mark: this.mark,\n animationState: config.state,\n animationConfig: config.originConfig\n };\n if (isFirstAnimator) {\n this.mark.emit(HOOK_EVENT.ANIMATION_START, animationEvent);\n }\n this.mark.emit(HOOK_EVENT.ELEMENT_ANIMATION_START, animationEvent, element);\n\n return animator;\n }\n\n private getAnimationState(element: IElement): string {\n const customState = invokeFunctionType(this.state, this.mark.parameters(), element.getDatum(), element);\n return customState ?? element.diffState;\n }\n\n private getAnimationUnit(\n timeline: IAnimationTimeline,\n element: IElement,\n index: number,\n elementCount: number,\n parameters: any\n ): IAnimationUnit {\n const timeSlices: IAnimationTimeSlice[] = [];\n const startTime = invokeAnimateSpec(timeline.startTime, element, parameters);\n const totalTime = invokeAnimateSpec(timeline.totalTime, element, parameters);\n const oneByOne = invokeAnimateSpec(timeline.oneByOne, element, parameters);\n const loop = invokeAnimateSpec(timeline.loop, element, parameters);\n\n let loopTime = 0;\n (timeline.timeSlices as IAnimationTimeSlice[]).forEach(timeSlice => {\n const delay = invokeAnimateSpec(timeSlice.delay, element, parameters);\n const duration = invokeAnimateSpec(timeSlice.duration, element, parameters) ?? totalTime / elementCount;\n const effects = array(timeSlice.effects).map(effect =>\n Object.assign({}, effect, {\n customParameters: invokeAnimateSpec(effect.customParameters, element, parameters)\n })\n );\n timeSlices.push({\n effects,\n duration,\n delay\n });\n loopTime += delay + duration;\n });\n\n const oneByOneDelay = isNumber(oneByOne) ? oneByOne : oneByOne === true ? loopTime : 0;\n return {\n initialDelay: startTime,\n loopCount: isNumber(loop) ? loop : loop === true ? Infinity : 1,\n loopDelay: oneByOneDelay * index,\n loopDelayAfter: oneByOneDelay * (elementCount - index - 1),\n loopAnimateDuration: loopTime,\n loopDuration: loopTime + oneByOneDelay * (elementCount - 1),\n totalTime,\n timeSlices\n };\n }\n\n private clearElementAnimation(element: IElement, clearElement: boolean = true) {\n this.animators.forEach(animators => {\n animators.forEach(animator => {\n if (animator.element === element) {\n // if previous animation state is exit, modify graphic item channel to start\n if (animator.animationOptions.state === DiffState.exit) {\n animator.stop('start', false);\n } else {\n animator.stop('end', false);\n }\n this.handleAnimatorEnd(animator, clearElement);\n }\n });\n });\n this.elementRecorder.delete(element);\n }\n\n private clearAllElements() {\n const elements = this.mark.getAllElements();\n if (elements) {\n elements.forEach((element, i) => {\n // only update mark in previous invocation\n this.clearElement(element, i === elements.length - 1);\n });\n }\n }\n\n private clearElement(element: IElement, updateMark: boolean = true) {\n this.clearElementAnimation(element);\n // element might already be released\n if (element.getGraphicItem()) {\n // if element stops animating or needs to be removed, clear all cached attributes\n element.clearGraphicAttributes();\n // remove element from mark if exit animation is finished\n if (element.diffState === DiffState.exit) {\n element.isReserved = false;\n }\n if (updateMark) {\n this.mark.cleanExitElements();\n }\n // TODO: waiting for vRender to optimize bound cache logic, otherwise this line\n // will cause huge performance waste in multiple animation like appear & disappear.\n // if (updateMark) mark.updateBounds();\n }\n }\n\n private handleAnimatorEnd(animator: IAnimator, clearElement: boolean = true) {\n const element = animator.element;\n const animationOptions = animator.animationOptions;\n const animationState = animationOptions.state;\n const isImmediateAnimation = animationState === ImmediateAnimationState;\n\n // sub element animation count\n const stateAnimationCounts = this.elementRecorder.get(element).count;\n stateAnimationCounts[animationState] -= 1;\n // FIXME: maybe delete zero animationState\n // if (stateAnimationCounts[animationState] === 0) {\n // delete stateAnimationCounts[animationState];\n // }\n\n this.animators.set(\n animationState,\n this.animators.get(animationState).filter(ani => ani !== animator)\n );\n if (this.animators.get(animationState).length === 0) {\n this.animators.delete(animationState);\n }\n this.timelineCount[animationOptions.id] -= 1;\n const isLastAnimator = this.timelineCount[animationOptions.id] === 0;\n\n const originAnimationConfig = isImmediateAnimation\n ? this.immediateConfigs.find(config => config.id === animationOptions.id).originConfig\n : this.configs.find(config => config.id === animationOptions.id).originConfig;\n if (isLastAnimator) {\n delete this.timelineCount[animationOptions.id];\n // delete config when immediate executed animation is finished\n if (isImmediateAnimation) {\n this.immediateConfigs = this.immediateConfigs.filter(config => config.id !== animationOptions.id);\n }\n }\n\n if (clearElement) {\n if (Object.keys(this.timelineCount).length === 0) {\n this.clearAllElements();\n } else if (animationState === DiffState.exit && stateAnimationCounts[DiffState.exit] === 0) {\n // if all exit animations are finished\n this.clearElement(element);\n }\n }\n\n // emit animation end event\n const animationEvent: AnimationEvent = {\n mark: this.mark,\n animationState,\n animationConfig: originAnimationConfig\n };\n if (isLastAnimator) {\n this.mark.emit(HOOK_EVENT.ANIMATION_END, animationEvent);\n }\n this.mark.emit(HOOK_EVENT.ELEMENT_ANIMATION_END, animationEvent, element);\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { IElement } from '../../../types';
2
+ import type { TypeAnimation } from '../../../types/animate';
3
+ export declare const clipIn: TypeAnimation<IElement>;
4
+ export declare const clipOut: TypeAnimation<IElement>;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.clipOut = exports.clipIn = void 0;
6
+
7
+ const clipIn = (element, options, animationParameters) => {
8
+ var _a;
9
+ const clipDimension = element.getGraphicAttribute("clipRangeByDimension", !1), clipRange = null !== (_a = element.getGraphicAttribute("clipRange", !1)) && void 0 !== _a ? _a : 1;
10
+ return (null == options ? void 0 : options.clipDimension) ? {
11
+ from: {
12
+ clipRange: 0,
13
+ clipRangeByDimension: options.clipDimension
14
+ },
15
+ to: {
16
+ clipRange: clipRange,
17
+ clipRangeByDimension: clipDimension
18
+ }
19
+ } : {
20
+ from: {
21
+ clipRange: 0
22
+ },
23
+ to: {
24
+ clipRange: clipRange
25
+ }
26
+ };
27
+ };
28
+
29
+ exports.clipIn = clipIn;
30
+
31
+ const clipOut = (element, options, animationParameters) => {
32
+ var _a;
33
+ const clipDimension = element.getGraphicAttribute("clipRangeByDimension", !0), clipRange = null !== (_a = element.getGraphicAttribute("clipRange", !0)) && void 0 !== _a ? _a : 1;
34
+ return (null == options ? void 0 : options.clipDimension) ? {
35
+ from: {
36
+ clipRange: clipRange,
37
+ clipRangeByDimension: options.clipDimension
38
+ },
39
+ to: {
40
+ clipRange: 0,
41
+ clipRangeByDimension: clipDimension
42
+ }
43
+ } : {
44
+ from: {
45
+ clipRange: clipRange
46
+ },
47
+ to: {
48
+ clipRange: 0
49
+ }
50
+ };
51
+ };
52
+
53
+ exports.clipOut = clipOut;
54
+ //# sourceMappingURL=clip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/graph/animation/animation/clip.ts"],"names":[],"mappings":";;;AAGO,MAAM,MAAM,GAA4B,CAC7C,OAAiB,EACjB,OAA8B,EAC9B,mBAAyC,EACzC,EAAE;;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,mCAAI,CAAC,CAAC;IACvE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE;QAC1B,OAAO;YACL,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,aAAa,EAAE;YACnE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE;SAClE,CAAC;KACH;IACD,OAAO;QACL,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;QACtB,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;KAC7B,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,MAAM,UAiBjB;AAEK,MAAM,OAAO,GAA4B,CAC9C,OAAiB,EACjB,OAA8B,EAC9B,mBAAyC,EACzC,EAAE;;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,mCAAI,CAAC,CAAC;IACtE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE;QAC1B,OAAO;YACL,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,CAAC,aAAa,EAAE;YAC3E,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,oBAAoB,EAAE,aAAa,EAAE;SAC1D,CAAC;KACH;IACD,OAAO;QACL,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;QAC9B,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;KACrB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,OAAO,WAiBlB","file":"clip.js","sourcesContent":["import type { IElement } from '../../../types';\nimport type { IAnimationParameters, IClipAnimationOptions, TypeAnimation } from '../../../types/animate';\n\nexport const clipIn: TypeAnimation<IElement> = (\n element: IElement,\n options: IClipAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const clipDimension = element.getGraphicAttribute('clipRangeByDimension', false);\n const clipRange = element.getGraphicAttribute('clipRange', false) ?? 1;\n if (options?.clipDimension) {\n return {\n from: { clipRange: 0, clipRangeByDimension: options.clipDimension },\n to: { clipRange: clipRange, clipRangeByDimension: clipDimension }\n };\n }\n return {\n from: { clipRange: 0 },\n to: { clipRange: clipRange }\n };\n};\n\nexport const clipOut: TypeAnimation<IElement> = (\n element: IElement,\n options: IClipAnimationOptions,\n animationParameters: IAnimationParameters\n) => {\n const clipDimension = element.getGraphicAttribute('clipRangeByDimension', true);\n const clipRange = element.getGraphicAttribute('clipRange', true) ?? 1;\n if (options?.clipDimension) {\n return {\n from: { clipRange: clipRange, clipRangeByDimension: options.clipDimension },\n to: { clipRange: 0, clipRangeByDimension: clipDimension }\n };\n }\n return {\n from: { clipRange: clipRange },\n to: { clipRange: 0 }\n };\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { IElement } from '../../../types';
2
+ import type { TypeAnimation } from '../../../types/animate';
3
+ export declare const fadeIn: TypeAnimation<IElement>;
4
+ export declare const fadeOut: TypeAnimation<IElement>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.fadeOut = exports.fadeIn = void 0;
6
+
7
+ const fadeIn = (element, options, animationParameters) => {
8
+ var _a, _b, _c;
9
+ return {
10
+ from: {
11
+ opacity: 0,
12
+ fillOpacity: 0,
13
+ strokeOpacity: 0
14
+ },
15
+ to: {
16
+ opacity: null !== (_a = element.getGraphicAttribute("opacity", !1)) && void 0 !== _a ? _a : 1,
17
+ fillOpacity: null !== (_b = element.getGraphicAttribute("fillOpacity", !1)) && void 0 !== _b ? _b : 1,
18
+ strokeOpacity: null !== (_c = element.getGraphicAttribute("strokeOpacity", !1)) && void 0 !== _c ? _c : 1
19
+ }
20
+ };
21
+ };
22
+
23
+ exports.fadeIn = fadeIn;
24
+
25
+ const fadeOut = (element, options, animationParameters) => {
26
+ var _a, _b, _c;
27
+ return {
28
+ from: {
29
+ opacity: null !== (_a = element.getGraphicAttribute("opacity", !0)) && void 0 !== _a ? _a : 1,
30
+ fillOpacity: null !== (_b = element.getGraphicAttribute("fillOpacity", !0)) && void 0 !== _b ? _b : 1,
31
+ strokeOpacity: null !== (_c = element.getGraphicAttribute("strokeOpacity", !0)) && void 0 !== _c ? _c : 1
32
+ },
33
+ to: {
34
+ opacity: 0,
35
+ fillOpacity: 0,
36
+ strokeOpacity: 0
37
+ }
38
+ };
39
+ };
40
+
41
+ exports.fadeOut = fadeOut;
42
+ //# sourceMappingURL=fade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/graph/animation/animation/fade.ts"],"names":[],"mappings":";;;AAGO,MAAM,MAAM,GAA4B,CAC7C,OAAiB,EACjB,OAAY,EACZ,mBAAyC,EACzC,EAAE;;IACF,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;SACjB;QACD,EAAE,EAAE;YACF,OAAO,EAAE,MAAA,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,mCAAI,CAAC;YAC3D,WAAW,EAAE,MAAA,OAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC,mCAAI,CAAC;YACnE,aAAa,EAAE,MAAA,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC,mCAAI,CAAC;SACxE;KACF,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,MAAM,UAiBjB;AAEK,MAAM,OAAO,GAA4B,CAC9C,OAAiB,EACjB,OAAY,EACZ,mBAAyC,EACzC,EAAE;;IACF,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,MAAA,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mCAAI,CAAC;YAC1D,WAAW,EAAE,MAAA,OAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,mCAAI,CAAC;YAClE,aAAa,EAAE,MAAA,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,mCAAI,CAAC;SACvE;QACD,EAAE,EAAE;YACF,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;SACjB;KACF,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,OAAO,WAiBlB","file":"fade.js","sourcesContent":["import type { IElement } from '../../../types';\nimport type { IAnimationParameters, TypeAnimation } from '../../../types/animate';\n\nexport const fadeIn: TypeAnimation<IElement> = (\n element: IElement,\n options: any,\n animationParameters: IAnimationParameters\n) => {\n return {\n from: {\n opacity: 0,\n fillOpacity: 0,\n strokeOpacity: 0\n },\n to: {\n opacity: element.getGraphicAttribute('opacity', false) ?? 1,\n fillOpacity: element.getGraphicAttribute('fillOpacity', false) ?? 1,\n strokeOpacity: element.getGraphicAttribute('strokeOpacity', false) ?? 1\n }\n };\n};\n\nexport const fadeOut: TypeAnimation<IElement> = (\n element: IElement,\n options: any,\n animationParameters: IAnimationParameters\n) => {\n return {\n from: {\n opacity: element.getGraphicAttribute('opacity', true) ?? 1,\n fillOpacity: element.getGraphicAttribute('fillOpacity', true) ?? 1,\n strokeOpacity: element.getGraphicAttribute('strokeOpacity', true) ?? 1\n },\n to: {\n opacity: 0,\n fillOpacity: 0,\n strokeOpacity: 0\n }\n };\n};\n"]}
@@ -0,0 +1,7 @@
1
+ import type { IElement, TypeAnimation } from '../../../types';
2
+ export declare const growCenterIn: TypeAnimation<IElement>;
3
+ export declare const growCenterOut: TypeAnimation<IElement>;
4
+ export declare const growWidthIn: TypeAnimation<IElement>;
5
+ export declare const growWidthOut: TypeAnimation<IElement>;
6
+ export declare const growHeightIn: TypeAnimation<IElement>;
7
+ export declare const growHeightOut: TypeAnimation<IElement>;