@visactor/vchart 2.1.0-alpha.18 → 2.1.0-alpha.19

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 (690) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +60472 -64304
  3. package/build/index.js +60474 -64306
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/callback-disappear.d.ts +1 -1
  7. package/cjs/animation/callback-disappear.js +2 -2
  8. package/cjs/animation/callback-disappear.js.map +1 -1
  9. package/cjs/animation/config.js +34 -34
  10. package/cjs/animation/config.js.map +1 -1
  11. package/cjs/animation/index.js +1 -2
  12. package/cjs/chart/base/base-chart-transformer.d.ts +0 -3
  13. package/cjs/chart/base/base-chart-transformer.js +3 -23
  14. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  15. package/cjs/chart/base/base-chart.d.ts +9 -27
  16. package/cjs/chart/base/base-chart.js +28 -209
  17. package/cjs/chart/base/base-chart.js.map +1 -1
  18. package/cjs/chart/gauge/gauge-transformer.js +2 -3
  19. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  20. package/cjs/chart/interface/chart.d.ts +0 -1
  21. package/cjs/chart/interface/chart.js.map +1 -1
  22. package/cjs/chart/pie/base/pie-transformer.js +2 -2
  23. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  24. package/cjs/chart/polar/polar-transformer.js +1 -1
  25. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  26. package/cjs/chart/polar/progress-like/progress-like-transformer.js +1 -1
  27. package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  28. package/cjs/chart/progress/circular/circular-progress-transformer.js +1 -2
  29. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  30. package/cjs/chart/progress/linear/linear-progress-transformer.js +1 -1
  31. package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  32. package/cjs/chart/radar/radar-transformer.js +2 -3
  33. package/cjs/chart/radar/radar-transformer.js.map +1 -1
  34. package/cjs/chart/range-area/range-area-transformer.js +2 -2
  35. package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
  36. package/cjs/chart/rose/rose-transformer.js +1 -2
  37. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  38. package/cjs/chart/util.d.ts +1 -4
  39. package/cjs/chart/util.js +4 -40
  40. package/cjs/chart/util.js.map +1 -1
  41. package/cjs/chart/waterfall/waterfall-transformer.js +1 -2
  42. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  43. package/cjs/compile/compiler.d.ts +0 -2
  44. package/cjs/compile/compiler.js +48 -68
  45. package/cjs/compile/compiler.js.map +1 -1
  46. package/cjs/compile/data/compilable-data.d.ts +1 -1
  47. package/cjs/compile/data/compilable-data.js +1 -1
  48. package/cjs/compile/data/compilable-data.js.map +1 -1
  49. package/cjs/compile/grammar-item.d.ts +1 -1
  50. package/cjs/compile/grammar-item.js.map +1 -1
  51. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  52. package/cjs/compile/interface/compilable-item.js.map +1 -1
  53. package/cjs/compile/interface/compiler.d.ts +1 -2
  54. package/cjs/compile/interface/compiler.js.map +1 -1
  55. package/cjs/compile/morph.js +6 -5
  56. package/cjs/compile/morph.js.map +1 -1
  57. package/cjs/component/axis/base-axis.d.ts +8 -3
  58. package/cjs/component/axis/base-axis.js +7 -27
  59. package/cjs/component/axis/base-axis.js.map +1 -1
  60. package/cjs/component/axis/cartesian/band-axis.d.ts +7 -1
  61. package/cjs/component/axis/cartesian/band-axis.js +4 -4
  62. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  63. package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -1
  64. package/cjs/component/axis/cartesian/linear-axis.js +4 -4
  65. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  66. package/cjs/component/axis/mixin/linear-axis-mixin.js +10 -7
  67. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  68. package/cjs/component/axis/polar/band-axis.d.ts +0 -2
  69. package/cjs/component/axis/polar/band-axis.js +0 -3
  70. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  71. package/cjs/component/axis/polar/linear-axis.js +0 -3
  72. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  73. package/cjs/component/base/base-component.d.ts +7 -7
  74. package/cjs/component/base/base-component.js +6 -41
  75. package/cjs/component/base/base-component.js.map +1 -1
  76. package/cjs/component/brush/brush.d.ts +7 -3
  77. package/cjs/component/brush/brush.js +16 -34
  78. package/cjs/component/brush/brush.js.map +1 -1
  79. package/cjs/component/crosshair/base.d.ts +8 -5
  80. package/cjs/component/crosshair/base.js +5 -33
  81. package/cjs/component/crosshair/base.js.map +1 -1
  82. package/cjs/component/crosshair/cartesian.js +3 -3
  83. package/cjs/component/crosshair/cartesian.js.map +1 -1
  84. package/cjs/component/custom-mark/custom-mark.d.ts +7 -4
  85. package/cjs/component/custom-mark/custom-mark.js +3 -27
  86. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  87. package/cjs/component/data-zoom/data-filter-base-component.d.ts +7 -3
  88. package/cjs/component/data-zoom/data-filter-base-component.js +2 -15
  89. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  90. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
  91. package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -19
  92. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  93. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
  94. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
  95. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  96. package/cjs/component/geo/geo-coordinate.d.ts +7 -1
  97. package/cjs/component/indicator/indicator.d.ts +0 -1
  98. package/cjs/component/indicator/indicator.js +2 -11
  99. package/cjs/component/indicator/indicator.js.map +1 -1
  100. package/cjs/component/indicator/util.d.ts +3 -4
  101. package/cjs/component/indicator/util.js +1 -1
  102. package/cjs/component/indicator/util.js.map +1 -1
  103. package/cjs/component/label/base-label.d.ts +7 -1
  104. package/cjs/component/label/base-label.js +2 -6
  105. package/cjs/component/label/base-label.js.map +1 -1
  106. package/cjs/component/label/label.js +3 -3
  107. package/cjs/component/label/label.js.map +1 -1
  108. package/cjs/component/legend/base-legend.d.ts +7 -2
  109. package/cjs/component/legend/base-legend.js +3 -20
  110. package/cjs/component/legend/base-legend.js.map +1 -1
  111. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  112. package/cjs/component/legend/discrete/legend.js +7 -7
  113. package/cjs/component/legend/discrete/legend.js.map +1 -1
  114. package/cjs/component/marker/base-marker.d.ts +7 -14
  115. package/cjs/component/marker/base-marker.js +12 -112
  116. package/cjs/component/marker/base-marker.js.map +1 -1
  117. package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
  118. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  119. package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
  120. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  121. package/cjs/component/marker/mark-line/base-mark-line.js +4 -2
  122. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  123. package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
  124. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  125. package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
  126. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  127. package/cjs/component/marker/mark-point/base-mark-point.js +11 -26
  128. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  129. package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
  130. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  131. package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
  132. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  133. package/cjs/component/marker/utils.d.ts +4 -4
  134. package/cjs/component/marker/utils.js +23 -27
  135. package/cjs/component/marker/utils.js.map +1 -1
  136. package/cjs/component/player/player.d.ts +0 -1
  137. package/cjs/component/player/player.js +0 -10
  138. package/cjs/component/player/player.js.map +1 -1
  139. package/cjs/component/title/title.d.ts +7 -1
  140. package/cjs/component/title/title.js +2 -6
  141. package/cjs/component/title/title.js.map +1 -1
  142. package/cjs/component/tooltip/tooltip.d.ts +0 -1
  143. package/cjs/component/tooltip/tooltip.js +0 -8
  144. package/cjs/component/tooltip/tooltip.js.map +1 -1
  145. package/cjs/component/util.js +1 -2
  146. package/cjs/constant/correlation.js +2 -1
  147. package/cjs/constant/marker.js +1 -1
  148. package/cjs/constant/polar.js +1 -1
  149. package/cjs/constant/scatter.js +1 -1
  150. package/cjs/constant/scroll-bar.js +1 -2
  151. package/cjs/constant/sunburst.js +1 -1
  152. package/cjs/constant/waterfall.js +1 -1
  153. package/cjs/constant/word-cloud.js +1 -1
  154. package/cjs/core/expression-function.js +2 -1
  155. package/cjs/core/index.d.ts +1 -2
  156. package/cjs/core/index.js +4 -8
  157. package/cjs/core/index.js.map +1 -1
  158. package/cjs/core/interface.js +1 -1
  159. package/cjs/core/util.js +1 -1
  160. package/cjs/core/vchart.d.ts +1 -5
  161. package/cjs/core/vchart.js +21 -38
  162. package/cjs/core/vchart.js.map +1 -1
  163. package/cjs/data/transforms/box-plot.d.ts +1 -4
  164. package/cjs/data/transforms/box-plot.js +3 -3
  165. package/cjs/data/transforms/box-plot.js.map +1 -1
  166. package/cjs/data/transforms/correlation-center.d.ts +4 -11
  167. package/cjs/data/transforms/correlation-center.js +2 -3
  168. package/cjs/data/transforms/correlation-center.js.map +1 -1
  169. package/cjs/data/transforms/correlation.d.ts +15 -18
  170. package/cjs/data/transforms/correlation.js +17 -22
  171. package/cjs/data/transforms/correlation.js.map +1 -1
  172. package/cjs/data/transforms/funnel.d.ts +8 -10
  173. package/cjs/data/transforms/funnel.js +3 -4
  174. package/cjs/data/transforms/funnel.js.map +1 -1
  175. package/cjs/data/transforms/lookup.d.ts +3 -3
  176. package/cjs/data/transforms/lookup.js +7 -12
  177. package/cjs/data/transforms/lookup.js.map +1 -1
  178. package/cjs/data/transforms/map.d.ts +2 -8
  179. package/cjs/data/transforms/map.js +6 -9
  180. package/cjs/data/transforms/map.js.map +1 -1
  181. package/cjs/data/transforms/sankey.d.ts +4 -12
  182. package/cjs/data/transforms/sankey.js +13 -18
  183. package/cjs/data/transforms/sankey.js.map +1 -1
  184. package/cjs/data/transforms/stack-split.d.ts +1 -2
  185. package/cjs/data/transforms/stack-split.js +1 -1
  186. package/cjs/data/transforms/stack-split.js.map +1 -1
  187. package/cjs/data/transforms/treemap.d.ts +3 -5
  188. package/cjs/data/transforms/treemap.js +6 -7
  189. package/cjs/data/transforms/treemap.js.map +1 -1
  190. package/cjs/data/transforms/venn.d.ts +2 -4
  191. package/cjs/data/transforms/venn.js +4 -4
  192. package/cjs/data/transforms/venn.js.map +1 -1
  193. package/cjs/data/transforms/waterfall.d.ts +2 -4
  194. package/cjs/data/transforms/waterfall.js +7 -7
  195. package/cjs/data/transforms/waterfall.js.map +1 -1
  196. package/cjs/env/env.js +11 -11
  197. package/cjs/env/env.js.map +1 -1
  198. package/cjs/env/index.js +1 -1
  199. package/cjs/event/event.d.ts +0 -4
  200. package/cjs/event/event.js +7 -26
  201. package/cjs/event/event.js.map +1 -1
  202. package/cjs/interaction/interaction.js +8 -11
  203. package/cjs/interaction/interaction.js.map +1 -1
  204. package/cjs/interaction/triggers/element-active-by-legend.js +2 -3
  205. package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
  206. package/cjs/interaction/triggers/element-active.js +3 -4
  207. package/cjs/interaction/triggers/element-active.js.map +1 -1
  208. package/cjs/interaction/triggers/element-highlight-by-group.js +2 -3
  209. package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
  210. package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
  211. package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  212. package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
  213. package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
  214. package/cjs/interaction/triggers/element-highlight.js +2 -2
  215. package/cjs/interaction/triggers/element-highlight.js.map +1 -1
  216. package/cjs/interaction/triggers/element-select.js +3 -3
  217. package/cjs/interaction/triggers/element-select.js.map +1 -1
  218. package/cjs/mark/arc.js +4 -4
  219. package/cjs/mark/arc.js.map +1 -1
  220. package/cjs/mark/area.js +5 -4
  221. package/cjs/mark/area.js.map +1 -1
  222. package/cjs/mark/base/base-mark.d.ts +2 -12
  223. package/cjs/mark/base/base-mark.js +29 -98
  224. package/cjs/mark/base/base-mark.js.map +1 -1
  225. package/cjs/mark/component.d.ts +0 -9
  226. package/cjs/mark/component.js +3 -51
  227. package/cjs/mark/component.js.map +1 -1
  228. package/cjs/mark/glyph.js +1 -1
  229. package/cjs/mark/glyph.js.map +1 -1
  230. package/cjs/mark/group.js +6 -6
  231. package/cjs/mark/group.js.map +1 -1
  232. package/cjs/mark/interface/common.js.map +1 -1
  233. package/cjs/mark/interface/mark.d.ts +0 -2
  234. package/cjs/mark/interface/mark.js.map +1 -1
  235. package/cjs/mark/line.js +5 -4
  236. package/cjs/mark/line.js.map +1 -1
  237. package/cjs/mark/rect.js +3 -3
  238. package/cjs/mark/rect.js.map +1 -1
  239. package/cjs/mark/symbol.js +3 -3
  240. package/cjs/mark/symbol.js.map +1 -1
  241. package/cjs/mark/text.js +4 -4
  242. package/cjs/mark/text.js.map +1 -1
  243. package/cjs/mark/utils/glyph.js +2 -3
  244. package/cjs/mark/utils/glyph.js.map +1 -1
  245. package/cjs/model/base-model.d.ts +15 -3
  246. package/cjs/model/base-model.js.map +1 -1
  247. package/cjs/model/interface.d.ts +0 -13
  248. package/cjs/model/interface.js.map +1 -1
  249. package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
  250. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  251. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  252. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js +2 -2
  253. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  254. package/cjs/plugin/other.js +5 -5
  255. package/cjs/plugin/other.js.map +1 -1
  256. package/cjs/region/region.d.ts +7 -1
  257. package/cjs/scale/color-ordinal-scale.d.ts +0 -1
  258. package/cjs/scale/color-ordinal-scale.js +0 -3
  259. package/cjs/scale/color-ordinal-scale.js.map +1 -1
  260. package/cjs/scale/global-scale.js +2 -9
  261. package/cjs/scale/global-scale.js.map +1 -1
  262. package/cjs/series/area/area.d.ts +0 -2
  263. package/cjs/series/area/area.js +0 -6
  264. package/cjs/series/area/area.js.map +1 -1
  265. package/cjs/series/bar/bar.d.ts +0 -3
  266. package/cjs/series/bar/bar.js +4 -30
  267. package/cjs/series/bar/bar.js.map +1 -1
  268. package/cjs/series/base/base-series.d.ts +7 -11
  269. package/cjs/series/base/base-series.js +23 -93
  270. package/cjs/series/base/base-series.js.map +1 -1
  271. package/cjs/series/base/constant.d.ts +0 -3
  272. package/cjs/series/base/constant.js +1 -9
  273. package/cjs/series/base/constant.js.map +1 -1
  274. package/cjs/series/box-plot/box-plot.d.ts +0 -2
  275. package/cjs/series/box-plot/box-plot.js +4 -16
  276. package/cjs/series/box-plot/box-plot.js.map +1 -1
  277. package/cjs/series/correlation/correlation.js +11 -13
  278. package/cjs/series/correlation/correlation.js.map +1 -1
  279. package/cjs/series/dot/dot.d.ts +0 -12
  280. package/cjs/series/dot/dot.js +1 -16
  281. package/cjs/series/dot/dot.js.map +1 -1
  282. package/cjs/series/funnel/funnel.js +8 -5
  283. package/cjs/series/funnel/funnel.js.map +1 -1
  284. package/cjs/series/heatmap/heatmap.d.ts +0 -2
  285. package/cjs/series/heatmap/heatmap.js +0 -10
  286. package/cjs/series/heatmap/heatmap.js.map +1 -1
  287. package/cjs/series/line/line.d.ts +0 -2
  288. package/cjs/series/line/line.js +3 -9
  289. package/cjs/series/line/line.js.map +1 -1
  290. package/cjs/series/map/map.js +3 -3
  291. package/cjs/series/map/map.js.map +1 -1
  292. package/cjs/series/mixin/line-mixin.d.ts +0 -1
  293. package/cjs/series/mixin/line-mixin.js +1 -6
  294. package/cjs/series/mixin/line-mixin.js.map +1 -1
  295. package/cjs/series/pie/pie.d.ts +7 -3
  296. package/cjs/series/pie/pie.js +1 -16
  297. package/cjs/series/pie/pie.js.map +1 -1
  298. package/cjs/series/polar/progress-like/progress-like.d.ts +0 -2
  299. package/cjs/series/polar/progress-like/progress-like.js +1 -16
  300. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  301. package/cjs/series/polar/rose-like/rose-like.d.ts +0 -2
  302. package/cjs/series/polar/rose-like/rose-like.js +1 -15
  303. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  304. package/cjs/series/progress/circular/circular.d.ts +0 -2
  305. package/cjs/series/progress/circular/circular.js +1 -10
  306. package/cjs/series/progress/circular/circular.js.map +1 -1
  307. package/cjs/series/progress/linear/linear.d.ts +0 -2
  308. package/cjs/series/progress/linear/linear.js +1 -19
  309. package/cjs/series/progress/linear/linear.js.map +1 -1
  310. package/cjs/series/sankey/sankey.js +57 -67
  311. package/cjs/series/sankey/sankey.js.map +1 -1
  312. package/cjs/series/scatter/scatter.d.ts +0 -2
  313. package/cjs/series/scatter/scatter.js +1 -9
  314. package/cjs/series/scatter/scatter.js.map +1 -1
  315. package/cjs/series/treemap/treemap.js +20 -23
  316. package/cjs/series/treemap/treemap.js.map +1 -1
  317. package/cjs/series/venn/venn.js +2 -2
  318. package/cjs/series/venn/venn.js.map +1 -1
  319. package/cjs/series/waterfall/waterfall.d.ts +0 -2
  320. package/cjs/series/waterfall/waterfall.js +20 -36
  321. package/cjs/series/waterfall/waterfall.js.map +1 -1
  322. package/cjs/series/word-cloud/animation.js +0 -3
  323. package/cjs/series/word-cloud/animation.js.map +1 -1
  324. package/cjs/theme/builtin/common/series/word-cloud.js +6 -2
  325. package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -1
  326. package/cjs/util/mark.js +3 -7
  327. package/cjs/util/mark.js.map +1 -1
  328. package/cjs/util/math.d.ts +1 -1
  329. package/cjs/util/math.js +2 -2
  330. package/cjs/util/math.js.map +1 -1
  331. package/cjs/util/text.js +2 -2
  332. package/cjs/util/text.js.map +1 -1
  333. package/esm/animation/callback-disappear.d.ts +1 -1
  334. package/esm/animation/callback-disappear.js +1 -1
  335. package/esm/animation/callback-disappear.js.map +1 -1
  336. package/esm/animation/config.js +1 -33
  337. package/esm/animation/config.js.map +1 -1
  338. package/esm/animation/index.js +1 -2
  339. package/esm/chart/base/base-chart-transformer.d.ts +0 -3
  340. package/esm/chart/base/base-chart-transformer.js +2 -24
  341. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  342. package/esm/chart/base/base-chart.d.ts +9 -27
  343. package/esm/chart/base/base-chart.js +27 -202
  344. package/esm/chart/base/base-chart.js.map +1 -1
  345. package/esm/chart/gauge/gauge-transformer.js +2 -3
  346. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  347. package/esm/chart/interface/chart.d.ts +0 -1
  348. package/esm/chart/interface/chart.js.map +1 -1
  349. package/esm/chart/pie/base/pie-transformer.js +2 -2
  350. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  351. package/esm/chart/polar/polar-transformer.js +1 -1
  352. package/esm/chart/polar/polar-transformer.js.map +1 -1
  353. package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
  354. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  355. package/esm/chart/progress/circular/circular-progress-transformer.js +1 -2
  356. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  357. package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
  358. package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  359. package/esm/chart/radar/radar-transformer.js +2 -3
  360. package/esm/chart/radar/radar-transformer.js.map +1 -1
  361. package/esm/chart/range-area/range-area-transformer.js +2 -2
  362. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  363. package/esm/chart/rose/rose-transformer.js +1 -2
  364. package/esm/chart/rose/rose-transformer.js.map +1 -1
  365. package/esm/chart/util.d.ts +1 -4
  366. package/esm/chart/util.js +1 -34
  367. package/esm/chart/util.js.map +1 -1
  368. package/esm/chart/waterfall/waterfall-transformer.js +1 -2
  369. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  370. package/esm/compile/compiler.d.ts +0 -2
  371. package/esm/compile/compiler.js +47 -69
  372. package/esm/compile/compiler.js.map +1 -1
  373. package/esm/compile/data/compilable-data.d.ts +1 -1
  374. package/esm/compile/data/compilable-data.js +1 -1
  375. package/esm/compile/data/compilable-data.js.map +1 -1
  376. package/esm/compile/grammar-item.d.ts +1 -1
  377. package/esm/compile/grammar-item.js.map +1 -1
  378. package/esm/compile/interface/compilable-item.d.ts +1 -1
  379. package/esm/compile/interface/compilable-item.js.map +1 -1
  380. package/esm/compile/interface/compiler.d.ts +1 -2
  381. package/esm/compile/interface/compiler.js.map +1 -1
  382. package/esm/compile/morph.js +3 -2
  383. package/esm/compile/morph.js.map +1 -1
  384. package/esm/component/axis/base-axis.d.ts +8 -3
  385. package/esm/component/axis/base-axis.js +6 -27
  386. package/esm/component/axis/base-axis.js.map +1 -1
  387. package/esm/component/axis/cartesian/band-axis.d.ts +7 -1
  388. package/esm/component/axis/cartesian/band-axis.js +2 -4
  389. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  390. package/esm/component/axis/cartesian/linear-axis.d.ts +1 -1
  391. package/esm/component/axis/cartesian/linear-axis.js +1 -5
  392. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  393. package/esm/component/axis/mixin/linear-axis-mixin.js +10 -7
  394. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  395. package/esm/component/axis/polar/band-axis.d.ts +0 -2
  396. package/esm/component/axis/polar/band-axis.js +0 -3
  397. package/esm/component/axis/polar/band-axis.js.map +1 -1
  398. package/esm/component/axis/polar/linear-axis.js +0 -3
  399. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  400. package/esm/component/base/base-component.d.ts +7 -7
  401. package/esm/component/base/base-component.js +5 -41
  402. package/esm/component/base/base-component.js.map +1 -1
  403. package/esm/component/brush/brush.d.ts +7 -3
  404. package/esm/component/brush/brush.js +11 -29
  405. package/esm/component/brush/brush.js.map +1 -1
  406. package/esm/component/crosshair/base.d.ts +8 -5
  407. package/esm/component/crosshair/base.js +3 -27
  408. package/esm/component/crosshair/base.js.map +1 -1
  409. package/esm/component/crosshair/cartesian.js +1 -3
  410. package/esm/component/crosshair/cartesian.js.map +1 -1
  411. package/esm/component/custom-mark/custom-mark.d.ts +7 -4
  412. package/esm/component/custom-mark/custom-mark.js +2 -27
  413. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  414. package/esm/component/data-zoom/data-filter-base-component.d.ts +7 -3
  415. package/esm/component/data-zoom/data-filter-base-component.js +2 -14
  416. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  417. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
  418. package/esm/component/data-zoom/data-zoom/data-zoom.js +0 -20
  419. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  420. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
  421. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
  422. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  423. package/esm/component/geo/geo-coordinate.d.ts +7 -1
  424. package/esm/component/indicator/indicator.d.ts +0 -1
  425. package/esm/component/indicator/indicator.js +2 -11
  426. package/esm/component/indicator/indicator.js.map +1 -1
  427. package/esm/component/indicator/util.d.ts +3 -4
  428. package/esm/component/indicator/util.js +2 -2
  429. package/esm/component/indicator/util.js.map +1 -1
  430. package/esm/component/label/base-label.d.ts +7 -1
  431. package/esm/component/label/base-label.js +1 -5
  432. package/esm/component/label/base-label.js.map +1 -1
  433. package/esm/component/label/label.js +2 -2
  434. package/esm/component/label/label.js.map +1 -1
  435. package/esm/component/legend/base-legend.d.ts +7 -2
  436. package/esm/component/legend/base-legend.js +2 -20
  437. package/esm/component/legend/base-legend.js.map +1 -1
  438. package/esm/component/legend/discrete/legend.d.ts +1 -1
  439. package/esm/component/legend/discrete/legend.js +2 -2
  440. package/esm/component/legend/discrete/legend.js.map +1 -1
  441. package/esm/component/marker/base-marker.d.ts +7 -14
  442. package/esm/component/marker/base-marker.js +11 -113
  443. package/esm/component/marker/base-marker.js.map +1 -1
  444. package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
  445. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  446. package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
  447. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  448. package/esm/component/marker/mark-line/base-mark-line.js +4 -2
  449. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  450. package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
  451. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  452. package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
  453. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  454. package/esm/component/marker/mark-point/base-mark-point.js +11 -24
  455. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  456. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  457. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  458. package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
  459. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  460. package/esm/component/marker/utils.d.ts +4 -4
  461. package/esm/component/marker/utils.js +23 -27
  462. package/esm/component/marker/utils.js.map +1 -1
  463. package/esm/component/player/player.d.ts +0 -1
  464. package/esm/component/player/player.js +0 -10
  465. package/esm/component/player/player.js.map +1 -1
  466. package/esm/component/title/title.d.ts +7 -1
  467. package/esm/component/title/title.js +2 -6
  468. package/esm/component/title/title.js.map +1 -1
  469. package/esm/component/tooltip/tooltip.d.ts +0 -1
  470. package/esm/component/tooltip/tooltip.js +1 -9
  471. package/esm/component/tooltip/tooltip.js.map +1 -1
  472. package/esm/component/util.js +1 -2
  473. package/esm/constant/correlation.js +2 -1
  474. package/esm/constant/marker.js +1 -1
  475. package/esm/constant/polar.js +1 -1
  476. package/esm/constant/scatter.js +1 -1
  477. package/esm/constant/scroll-bar.js +1 -2
  478. package/esm/constant/sunburst.js +1 -1
  479. package/esm/constant/waterfall.js +1 -1
  480. package/esm/constant/word-cloud.js +1 -1
  481. package/esm/core/expression-function.js +2 -1
  482. package/esm/core/index.d.ts +1 -2
  483. package/esm/core/index.js +1 -3
  484. package/esm/core/index.js.map +1 -1
  485. package/esm/core/interface.js +1 -1
  486. package/esm/core/util.js +1 -1
  487. package/esm/core/vchart.d.ts +1 -5
  488. package/esm/core/vchart.js +21 -39
  489. package/esm/core/vchart.js.map +1 -1
  490. package/esm/data/transforms/box-plot.d.ts +1 -4
  491. package/esm/data/transforms/box-plot.js +4 -4
  492. package/esm/data/transforms/box-plot.js.map +1 -1
  493. package/esm/data/transforms/correlation-center.d.ts +4 -11
  494. package/esm/data/transforms/correlation-center.js +2 -4
  495. package/esm/data/transforms/correlation-center.js.map +1 -1
  496. package/esm/data/transforms/correlation.d.ts +15 -18
  497. package/esm/data/transforms/correlation.js +8 -13
  498. package/esm/data/transforms/correlation.js.map +1 -1
  499. package/esm/data/transforms/funnel.d.ts +8 -10
  500. package/esm/data/transforms/funnel.js +3 -5
  501. package/esm/data/transforms/funnel.js.map +1 -1
  502. package/esm/data/transforms/lookup.d.ts +3 -3
  503. package/esm/data/transforms/lookup.js +6 -12
  504. package/esm/data/transforms/lookup.js.map +1 -1
  505. package/esm/data/transforms/map.d.ts +2 -8
  506. package/esm/data/transforms/map.js +6 -11
  507. package/esm/data/transforms/map.js.map +1 -1
  508. package/esm/data/transforms/sankey.d.ts +4 -12
  509. package/esm/data/transforms/sankey.js +14 -19
  510. package/esm/data/transforms/sankey.js.map +1 -1
  511. package/esm/data/transforms/stack-split.d.ts +1 -2
  512. package/esm/data/transforms/stack-split.js +2 -2
  513. package/esm/data/transforms/stack-split.js.map +1 -1
  514. package/esm/data/transforms/treemap.d.ts +3 -5
  515. package/esm/data/transforms/treemap.js +5 -8
  516. package/esm/data/transforms/treemap.js.map +1 -1
  517. package/esm/data/transforms/venn.d.ts +2 -4
  518. package/esm/data/transforms/venn.js +3 -5
  519. package/esm/data/transforms/venn.js.map +1 -1
  520. package/esm/data/transforms/waterfall.d.ts +2 -4
  521. package/esm/data/transforms/waterfall.js +8 -7
  522. package/esm/data/transforms/waterfall.js.map +1 -1
  523. package/esm/env/env.js +2 -2
  524. package/esm/env/env.js.map +1 -1
  525. package/esm/env/index.js +1 -1
  526. package/esm/event/event.d.ts +0 -4
  527. package/esm/event/event.js +7 -26
  528. package/esm/event/event.js.map +1 -1
  529. package/esm/interaction/interaction.js +8 -10
  530. package/esm/interaction/interaction.js.map +1 -1
  531. package/esm/interaction/triggers/element-active-by-legend.js +1 -3
  532. package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
  533. package/esm/interaction/triggers/element-active.js +2 -4
  534. package/esm/interaction/triggers/element-active.js.map +1 -1
  535. package/esm/interaction/triggers/element-highlight-by-group.js +1 -4
  536. package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
  537. package/esm/interaction/triggers/element-highlight-by-legend.js +1 -3
  538. package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  539. package/esm/interaction/triggers/element-highlight-by-name.js +1 -3
  540. package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
  541. package/esm/interaction/triggers/element-highlight.js +1 -3
  542. package/esm/interaction/triggers/element-highlight.js.map +1 -1
  543. package/esm/interaction/triggers/element-select.js +2 -4
  544. package/esm/interaction/triggers/element-select.js.map +1 -1
  545. package/esm/mark/arc.js +2 -4
  546. package/esm/mark/arc.js.map +1 -1
  547. package/esm/mark/area.js +2 -6
  548. package/esm/mark/area.js.map +1 -1
  549. package/esm/mark/base/base-mark.d.ts +2 -12
  550. package/esm/mark/base/base-mark.js +28 -99
  551. package/esm/mark/base/base-mark.js.map +1 -1
  552. package/esm/mark/component.d.ts +0 -9
  553. package/esm/mark/component.js +2 -51
  554. package/esm/mark/component.js.map +1 -1
  555. package/esm/mark/glyph.js +1 -1
  556. package/esm/mark/glyph.js.map +1 -1
  557. package/esm/mark/group.js +5 -6
  558. package/esm/mark/group.js.map +1 -1
  559. package/esm/mark/interface/common.js.map +1 -1
  560. package/esm/mark/interface/mark.d.ts +0 -2
  561. package/esm/mark/interface/mark.js.map +1 -1
  562. package/esm/mark/line.js +2 -6
  563. package/esm/mark/line.js.map +1 -1
  564. package/esm/mark/rect.js +2 -4
  565. package/esm/mark/rect.js.map +1 -1
  566. package/esm/mark/symbol.js +2 -4
  567. package/esm/mark/symbol.js.map +1 -1
  568. package/esm/mark/text.js +1 -5
  569. package/esm/mark/text.js.map +1 -1
  570. package/esm/mark/utils/glyph.js +1 -3
  571. package/esm/mark/utils/glyph.js.map +1 -1
  572. package/esm/model/base-model.d.ts +15 -3
  573. package/esm/model/base-model.js.map +1 -1
  574. package/esm/model/interface.d.ts +0 -13
  575. package/esm/model/interface.js.map +1 -1
  576. package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
  577. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  578. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  579. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js +1 -1
  580. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  581. package/esm/plugin/other.js +2 -2
  582. package/esm/plugin/other.js.map +1 -1
  583. package/esm/region/region.d.ts +7 -1
  584. package/esm/scale/color-ordinal-scale.d.ts +0 -1
  585. package/esm/scale/color-ordinal-scale.js +0 -3
  586. package/esm/scale/color-ordinal-scale.js.map +1 -1
  587. package/esm/scale/global-scale.js +1 -9
  588. package/esm/scale/global-scale.js.map +1 -1
  589. package/esm/series/area/area.d.ts +0 -2
  590. package/esm/series/area/area.js +1 -7
  591. package/esm/series/area/area.js.map +1 -1
  592. package/esm/series/bar/bar.d.ts +0 -3
  593. package/esm/series/bar/bar.js +4 -30
  594. package/esm/series/bar/bar.js.map +1 -1
  595. package/esm/series/base/base-series.d.ts +7 -11
  596. package/esm/series/base/base-series.js +21 -89
  597. package/esm/series/base/base-series.js.map +1 -1
  598. package/esm/series/base/constant.d.ts +0 -3
  599. package/esm/series/base/constant.js +0 -10
  600. package/esm/series/base/constant.js.map +1 -1
  601. package/esm/series/box-plot/box-plot.d.ts +0 -2
  602. package/esm/series/box-plot/box-plot.js +4 -15
  603. package/esm/series/box-plot/box-plot.js.map +1 -1
  604. package/esm/series/correlation/correlation.js +11 -13
  605. package/esm/series/correlation/correlation.js.map +1 -1
  606. package/esm/series/dot/dot.d.ts +0 -12
  607. package/esm/series/dot/dot.js +0 -17
  608. package/esm/series/dot/dot.js.map +1 -1
  609. package/esm/series/funnel/funnel.js +8 -5
  610. package/esm/series/funnel/funnel.js.map +1 -1
  611. package/esm/series/heatmap/heatmap.d.ts +0 -2
  612. package/esm/series/heatmap/heatmap.js +0 -10
  613. package/esm/series/heatmap/heatmap.js.map +1 -1
  614. package/esm/series/line/line.d.ts +0 -2
  615. package/esm/series/line/line.js +2 -10
  616. package/esm/series/line/line.js.map +1 -1
  617. package/esm/series/map/map.js +3 -3
  618. package/esm/series/map/map.js.map +1 -1
  619. package/esm/series/mixin/line-mixin.d.ts +0 -1
  620. package/esm/series/mixin/line-mixin.js +0 -5
  621. package/esm/series/mixin/line-mixin.js.map +1 -1
  622. package/esm/series/pie/pie.d.ts +7 -3
  623. package/esm/series/pie/pie.js +0 -17
  624. package/esm/series/pie/pie.js.map +1 -1
  625. package/esm/series/polar/progress-like/progress-like.d.ts +0 -2
  626. package/esm/series/polar/progress-like/progress-like.js +0 -17
  627. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  628. package/esm/series/polar/rose-like/rose-like.d.ts +0 -2
  629. package/esm/series/polar/rose-like/rose-like.js +0 -16
  630. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  631. package/esm/series/progress/circular/circular.d.ts +0 -2
  632. package/esm/series/progress/circular/circular.js +0 -11
  633. package/esm/series/progress/circular/circular.js.map +1 -1
  634. package/esm/series/progress/linear/linear.d.ts +0 -2
  635. package/esm/series/progress/linear/linear.js +0 -20
  636. package/esm/series/progress/linear/linear.js.map +1 -1
  637. package/esm/series/sankey/sankey.js +54 -60
  638. package/esm/series/sankey/sankey.js.map +1 -1
  639. package/esm/series/scatter/scatter.d.ts +0 -2
  640. package/esm/series/scatter/scatter.js +0 -10
  641. package/esm/series/scatter/scatter.js.map +1 -1
  642. package/esm/series/treemap/treemap.js +20 -23
  643. package/esm/series/treemap/treemap.js.map +1 -1
  644. package/esm/series/venn/venn.js +2 -2
  645. package/esm/series/venn/venn.js.map +1 -1
  646. package/esm/series/waterfall/waterfall.d.ts +0 -2
  647. package/esm/series/waterfall/waterfall.js +20 -36
  648. package/esm/series/waterfall/waterfall.js.map +1 -1
  649. package/esm/series/word-cloud/animation.js +0 -3
  650. package/esm/series/word-cloud/animation.js.map +1 -1
  651. package/esm/theme/builtin/common/series/word-cloud.js +6 -2
  652. package/esm/theme/builtin/common/series/word-cloud.js.map +1 -1
  653. package/esm/util/mark.js +2 -8
  654. package/esm/util/mark.js.map +1 -1
  655. package/esm/util/math.d.ts +1 -1
  656. package/esm/util/math.js +1 -1
  657. package/esm/util/math.js.map +1 -1
  658. package/esm/util/text.js +1 -1
  659. package/esm/util/text.js.map +1 -1
  660. package/package.json +8 -11
  661. package/cjs/compile/stage-app.d.ts +0 -17
  662. package/cjs/compile/stage-app.js +0 -82
  663. package/cjs/compile/stage-app.js.map +0 -1
  664. package/cjs/component/base/release-vrender-component.d.ts +0 -10
  665. package/cjs/component/base/release-vrender-component.js +0 -37
  666. package/cjs/component/base/release-vrender-component.js.map +0 -1
  667. package/cjs/data/data-view-utils.d.ts +0 -5
  668. package/cjs/data/data-view-utils.js +0 -58
  669. package/cjs/data/data-view-utils.js.map +0 -1
  670. package/cjs/util/graphic-state.d.ts +0 -4
  671. package/cjs/util/graphic-state.js +0 -40
  672. package/cjs/util/graphic-state.js.map +0 -1
  673. package/cjs/vchart-line.d.ts +0 -4
  674. package/cjs/vchart-line.js +0 -35
  675. package/cjs/vchart-line.js.map +0 -1
  676. package/esm/compile/stage-app.d.ts +0 -17
  677. package/esm/compile/stage-app.js +0 -77
  678. package/esm/compile/stage-app.js.map +0 -1
  679. package/esm/component/base/release-vrender-component.d.ts +0 -10
  680. package/esm/component/base/release-vrender-component.js +0 -24
  681. package/esm/component/base/release-vrender-component.js.map +0 -1
  682. package/esm/data/data-view-utils.d.ts +0 -5
  683. package/esm/data/data-view-utils.js +0 -46
  684. package/esm/data/data-view-utils.js.map +0 -1
  685. package/esm/util/graphic-state.d.ts +0 -4
  686. package/esm/util/graphic-state.js +0 -30
  687. package/esm/util/graphic-state.js.map +0 -1
  688. package/esm/vchart-line.d.ts +0 -4
  689. package/esm/vchart-line.js +0 -28
  690. package/esm/vchart-line.js.map +0 -1
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Compiler = void 0;
6
6
 
7
- const event_1 = require("./../constant/event"), interface_1 = require("./interface"), env_1 = require("../util/env"), type_1 = require("../util/type"), vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), factory_1 = require("../core/factory"), mark_1 = require("../util/mark"), util_1 = require("./util"), debug_1 = require("../util/debug"), interface_2 = require("../animation/interface"), animate_1 = require("../constant/animate"), stage_app_1 = require("./stage-app");
7
+ const event_1 = require("./../constant/event"), interface_1 = require("./interface"), env_1 = require("../util/env"), type_1 = require("../util/type"), vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), factory_1 = require("../core/factory"), mark_1 = require("../util/mark"), util_1 = require("./util"), debug_1 = require("../util/debug"), interface_2 = require("../animation/interface"), animate_1 = require("../constant/animate");
8
8
 
9
9
  class Compiler {
10
10
  get stateAnimationConfig() {
@@ -17,9 +17,9 @@ class Compiler {
17
17
  return this._option;
18
18
  }
19
19
  constructor(container, option) {
20
- this._count = 0, this._rootMarks = [], this._isExternalStage = !1, this._viewListeners = new Map,
21
- this._windowListeners = new Map, this._canvasListeners = new Map, this.isInited = !1,
22
- this._released = !1, this._compileChart = null, this.handleLayoutEnd = () => {
20
+ this._count = 0, this._rootMarks = [], this._viewListeners = new Map, this._windowListeners = new Map,
21
+ this._canvasListeners = new Map, this.isInited = !1, this._released = !1, this._compileChart = null,
22
+ this.handleLayoutEnd = () => {
23
23
  var _a, _b;
24
24
  null === (_b = null === (_a = this._compileChart) || void 0 === _a ? void 0 : _a.getEvent()) || void 0 === _b || _b.emit(event_1.ChartEvent.afterMarkLayoutEnd, {
25
25
  chart: this._compileChart
@@ -56,54 +56,38 @@ class Compiler {
56
56
  var _a, _b, _c, _d;
57
57
  if (this._released) return;
58
58
  if (this.isInited = !0, this._stage) return;
59
- const {autoRefreshDpr: autoRefreshDpr, dpr: dpr, mode: mode, modeParams: modeParams, gestureConfig: gestureConfig, interactive: interactive, clickInterval: clickInterval, autoPreventDefault: autoPreventDefault, background: background} = this._option, appEnvParams = (0,
60
- stage_app_1.getVRenderAppEnvParams)(mode, modeParams);
61
- vrender_core_1.vglobal.setEnv((0, util_1.toRenderMode)(mode), null != appEnvParams ? appEnvParams : {});
62
- const externalStage = this._option.stage;
63
- if (this._isExternalStage = !!externalStage, this._releaseVRenderAppRef = void 0,
64
- this._stage = externalStage, !this._stage) {
65
- const resolvedApp = (0, stage_app_1.resolveVRenderApp)({
66
- app: this._option.app,
67
- mode: mode,
68
- modeParams: modeParams
69
- });
70
- this._releaseVRenderAppRef = resolvedApp.releaseAppRef;
71
- try {
72
- this._stage = (0, stage_app_1.createStageFromApp)(resolvedApp.app, Object.assign({
73
- background: background,
74
- width: this._width,
75
- height: this._height,
76
- container: null !== (_a = this._container.dom) && void 0 !== _a ? _a : null,
77
- canvas: null !== (_b = this._container.canvas) && void 0 !== _b ? _b : null,
78
- dpr: dpr,
79
- viewBox: this._option.viewBox,
80
- canvasControled: this._option.canvasControled,
81
- beforeRender: stage => {
82
- var _a, _b, _c;
83
- null === (_a = this._compileChart) || void 0 === _a || _a.onBeforeRender(), null === (_c = (_b = this._option).beforeRender) || void 0 === _c || _c.call(_b, stage);
84
- },
85
- afterRender: this._option.afterRender,
86
- disableDirtyBounds: !0,
87
- autoRender: !0,
88
- ticker: this._option.ticker,
89
- pluginList: this._option.pluginList,
90
- enableHtmlAttribute: this._option.enableHtmlAttribute,
91
- optimize: this._option.optimize,
92
- supportsTouchEvents: this._option.supportsTouchEvents,
93
- supportsPointerEvents: this._option.supportsPointerEvents,
94
- event: {
95
- clickInterval: clickInterval,
96
- autoPreventDefault: autoPreventDefault
97
- },
98
- ReactDOM: this._option.ReactDOM,
99
- autoRefresh: (0, vutils_1.isValid)(autoRefreshDpr) ? autoRefreshDpr : !(0, vutils_1.isValid)(dpr)
100
- }, null !== (_c = this._option.renderHooks) && void 0 !== _c ? _c : {}));
101
- } catch (error) {
102
- throw null === (_d = this._releaseVRenderAppRef) || void 0 === _d || _d.call(this),
103
- this._releaseVRenderAppRef = void 0, error;
104
- }
105
- }
106
- this._stage.enableIncrementalAutoRender(), this._stage.setTheme({
59
+ const {autoRefreshDpr: autoRefreshDpr, dpr: dpr, mode: mode, modeParams: modeParams, gestureConfig: gestureConfig, interactive: interactive, clickInterval: clickInterval, autoPreventDefault: autoPreventDefault, background: background} = this._option;
60
+ vrender_core_1.vglobal.setEnv((0, util_1.toRenderMode)(mode), null != modeParams ? modeParams : {}),
61
+ this._stage = null !== (_a = this._option.stage) && void 0 !== _a ? _a : new vrender_core_1.Stage(Object.assign({
62
+ background: background,
63
+ width: this._width,
64
+ height: this._height,
65
+ container: null !== (_b = this._container.dom) && void 0 !== _b ? _b : null,
66
+ canvas: null !== (_c = this._container.canvas) && void 0 !== _c ? _c : null,
67
+ dpr: dpr,
68
+ viewBox: this._option.viewBox,
69
+ canvasControled: this._option.canvasControled,
70
+ beforeRender: stage => {
71
+ var _a, _b, _c;
72
+ null === (_a = this._compileChart) || void 0 === _a || _a.onBeforeRender(), null === (_c = (_b = this._option).beforeRender) || void 0 === _c || _c.call(_b, stage);
73
+ },
74
+ afterRender: this._option.afterRender,
75
+ disableDirtyBounds: !0,
76
+ autoRender: !0,
77
+ ticker: this._option.ticker,
78
+ pluginList: this._option.pluginList,
79
+ enableHtmlAttribute: this._option.enableHtmlAttribute,
80
+ optimize: this._option.optimize,
81
+ supportsTouchEvents: this._option.supportsTouchEvents,
82
+ supportsPointerEvents: this._option.supportsPointerEvents,
83
+ event: {
84
+ clickInterval: clickInterval,
85
+ autoPreventDefault: autoPreventDefault
86
+ },
87
+ ReactDOM: this._option.ReactDOM,
88
+ autoRefresh: (0, vutils_1.isValid)(autoRefreshDpr) ? autoRefreshDpr : !(0, vutils_1.isValid)(dpr)
89
+ }, null !== (_d = this._option.renderHooks) && void 0 !== _d ? _d : {})), this._stage.enableIncrementalAutoRender(),
90
+ this._stage.setTheme({
107
91
  symbol: {
108
92
  shape: "circle",
109
93
  size: 8
@@ -190,17 +174,15 @@ class Compiler {
190
174
  }
191
175
  renderMarks() {
192
176
  var _a;
193
- let hasCommitedMark = this._hasCommitedMark();
194
- const needsLayout = this._layoutState === interface_1.LayoutState.before;
195
- (hasCommitedMark || needsLayout) && ((0, debug_1.log)(`--- start of renderMarks(${this._count}) ---`),
196
- this.clearProgressive(), hasCommitedMark && this._rootMarks.forEach((mark => {
177
+ this._hasCommitedMark() && ((0, debug_1.log)(`--- start of renderMarks(${this._count}) ---`),
178
+ this.clearProgressive(), this._rootMarks.forEach((mark => {
197
179
  mark.render();
198
- })), needsLayout && (this._layoutState = interface_1.LayoutState.layouting, null === (_a = this._compileChart) || void 0 === _a || _a.onLayout(),
199
- this._layoutState = interface_1.LayoutState.reevaluate, hasCommitedMark = this._hasCommitedMark(),
200
- hasCommitedMark && this._rootMarks.forEach((mark => {
180
+ })), this._layoutState === interface_1.LayoutState.before && (this._layoutState = interface_1.LayoutState.layouting,
181
+ null === (_a = this._compileChart) || void 0 === _a || _a.onLayout(), this._layoutState = interface_1.LayoutState.reevaluate,
182
+ this._hasCommitedMark() && this._rootMarks.forEach((mark => {
201
183
  mark.render();
202
- })), this.handleLayoutEnd()), hasCommitedMark && (this.findProgressiveMarks(), this.updateStateAnimation()),
203
- this._doRender(!0), hasCommitedMark && this.doPreProgressive(), (0, debug_1.log)(`--- start of renderMarks(${this._count}) ---`),
184
+ })), this.handleLayoutEnd()), this.findProgressiveMarks(), this.updateStateAnimation(),
185
+ this._doRender(!0), this.doPreProgressive(), (0, debug_1.log)(`--- start of renderMarks(${this._count}) ---`),
204
186
  this._count++);
205
187
  }
206
188
  reuseOrMorphing(morphConfig = {}) {
@@ -383,17 +365,15 @@ class Compiler {
383
365
  this._windowListeners.clear(), this._canvasListeners.clear();
384
366
  }
385
367
  release() {
386
- const stage = this._stage, rootGroup = this._rootGroup, shouldReleaseStage = !!stage && !this._isExternalStage, releaseVRenderAppRef = this._releaseVRenderAppRef;
387
- this.clearNextRender(), this.releaseEvent(), this.releaseGrammar(!0), stage && (shouldReleaseStage ? stage.release() : rootGroup && (stage.defaultLayer.removeChild(rootGroup, !0),
388
- rootGroup.release())), null == releaseVRenderAppRef || releaseVRenderAppRef(), this._stage = null,
389
- this._rootGroup = null, this._isExternalStage = !1, this._releaseVRenderAppRef = void 0,
390
- this._option = this._container = null, this.isInited = !1, this._compileChart = null,
391
- this._released = !0;
368
+ var _a;
369
+ this.clearNextRender(), this.releaseEvent(), this._option = this._container = null,
370
+ this.releaseGrammar(!0), this._stage !== (null === (_a = this._option) || void 0 === _a ? void 0 : _a.stage) && this._stage.release(),
371
+ this._stage = null, this.isInited = !1, this._compileChart = null, this._released = !0;
392
372
  }
393
373
  releaseGrammar(removeGraphicItems = !1) {
394
374
  removeGraphicItems ? this._rootMarks.forEach((g => {
395
375
  (0, util_1.traverseGroupMark)(g, (m => {
396
- m.removeProduct(!0);
376
+ m.removeProduct();
397
377
  }), null, !0);
398
378
  })) : this._cachedMarks = (0, util_1.findSimpleMarks)(this._rootMarks), this._rootMarks = [];
399
379
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/compiler.ts"],"names":[],"mappings":"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","file":"compiler.js","sourcesContent":["import { ChartEvent, Event_Source_Type } from './../constant/event';\nimport type { CompilerListenerParameters, ICompiler, IRenderContainer, IRenderOption } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { LayoutState } from './interface';\nimport { isMobileLikeMode, isTrueBrowser } from '../util/env';\nimport { isClass, isString } from '../util/type';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isArray, isObject, isValid } from '@visactor/vutils';\nimport type { EventSourceType } from '../event/interface';\nimport type { IChart } from '../chart/interface';\nimport { createGroup, vglobal, waitForAllSubLayers } from '@visactor/vrender-core';\nimport type { IColor, IEventTarget, IGroup, IStage } from '@visactor/vrender-core';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { IVChart, IVChartRenderOption } from '../core/interface';\nimport type { AnimationStateValues } from '../mark/interface';\nimport { type IGraphicContext, type IMark, type IMarkGraphic } from '../mark/interface';\nimport { Factory } from '../core/factory';\nimport type { Gesture } from '@visactor/vrender-kits';\nimport { findMarkGraphic, getDatumOfGraphic } from '../util/mark';\nimport { diffMarks, findSimpleMarks, toRenderMode, traverseGroupMark } from './util';\nimport { log } from '../util/debug';\nimport type { MarkAnimationSpec, TypeAnimationConfig } from '../animation/interface';\nimport { AnimationStateEnum } from '../animation/interface';\nimport { BuiltIn_DISAPPEAR_ANIMATE_NAME } from '../constant/animate';\nimport { createStageFromApp, getVRenderAppEnvParams, resolveVRenderApp } from './stage-app';\n\ntype EventListener = {\n type: string;\n callback: (...args: any[]) => void;\n};\n\nexport class Compiler implements ICompiler {\n private _count: number = 0;\n /**\n * 更新后缓存的mark\n */\n private _cachedMarks: IMark[];\n\n private _progressiveMarks?: IMark[];\n\n /**\n * 增量渲染相关的raf id\n */\n private _progressiveRafId?: number;\n\n protected _rootMarks: IMark[] = [];\n\n protected _stage: IStage;\n\n private _isExternalStage: boolean = false;\n\n private _releaseVRenderAppRef?: () => void;\n\n protected _stateAnimationConfig: Partial<MarkAnimationSpec>;\n get stateAnimationConfig() {\n return this._stateAnimationConfig;\n }\n\n protected _rootGroup: IGroup;\n\n getRootGroup() {\n return this._rootGroup;\n }\n\n protected _viewListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n protected _windowListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n protected _canvasListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n\n isInited: boolean = false;\n\n private _nextRafId: number;\n\n protected _width: number;\n protected _height: number;\n\n protected _container: IRenderContainer;\n protected _option: IRenderOption;\n getOption() {\n return this._option;\n }\n // 已释放标记\n private _released: boolean = false;\n\n /** 布局阶段 */\n private _layoutState?: LayoutState;\n\n private _compileChart: IChart = null;\n\n constructor(container: IRenderContainer, option: IRenderOption) {\n this._container = container;\n this._option = option;\n }\n\n getChart() {\n return this._compileChart;\n }\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas(): HTMLCanvasElement | undefined {\n return this._stage?.window.getNativeHandler().nativeCanvas;\n }\n\n _gestureController?: Gesture;\n /**\n * 获取 渲染引擎\n */\n getStage(): IStage | undefined {\n return this._stage;\n }\n\n initView() {\n if (this._released) {\n return;\n }\n this.isInited = true;\n if (this._stage) {\n return;\n }\n\n const {\n autoRefreshDpr,\n dpr,\n mode,\n modeParams,\n gestureConfig,\n interactive,\n clickInterval,\n autoPreventDefault,\n background\n } = this._option;\n const appEnvParams = getVRenderAppEnvParams(mode, modeParams);\n vglobal.setEnv(toRenderMode(mode), appEnvParams ?? {});\n const externalStage = this._option.stage;\n this._isExternalStage = !!externalStage;\n this._releaseVRenderAppRef = undefined;\n this._stage = externalStage;\n\n if (!this._stage) {\n const resolvedApp = resolveVRenderApp({\n app: this._option.app,\n mode,\n modeParams\n });\n this._releaseVRenderAppRef = resolvedApp.releaseAppRef;\n\n try {\n // Canvas view binding is stage-scoped. Keep it out of app envParams so\n // one app can safely host multiple VChart/VTable stages in Lynx pages.\n this._stage = createStageFromApp(resolvedApp.app, {\n background,\n width: this._width,\n height: this._height,\n container: this._container.dom ?? null,\n canvas: this._container.canvas ?? null,\n dpr,\n viewBox: this._option.viewBox,\n canvasControled: this._option.canvasControled,\n beforeRender: (stage: IStage) => {\n this._compileChart?.onBeforeRender();\n this._option.beforeRender?.(stage);\n },\n afterRender: this._option.afterRender,\n disableDirtyBounds: true,\n autoRender: true,\n ticker: this._option.ticker,\n pluginList: this._option.pluginList,\n enableHtmlAttribute: this._option.enableHtmlAttribute,\n optimize: this._option.optimize,\n supportsTouchEvents: this._option.supportsTouchEvents,\n supportsPointerEvents: this._option.supportsPointerEvents,\n event: {\n clickInterval: clickInterval,\n autoPreventDefault: autoPreventDefault\n },\n ReactDOM: this._option.ReactDOM,\n autoRefresh: isValid(autoRefreshDpr) ? autoRefreshDpr : !isValid(dpr),\n ...(this._option.renderHooks ?? {})\n }) as unknown as IStage;\n } catch (error) {\n this._releaseVRenderAppRef?.();\n this._releaseVRenderAppRef = undefined;\n throw error;\n }\n }\n\n this._stage.enableIncrementalAutoRender();\n\n // 之前vgrammar 设置了一些默认配置\n (this._stage as any).setTheme({\n symbol: {\n shape: 'circle',\n size: 8\n },\n text: {\n fontSize: 14,\n fill: '#000000'\n }\n });\n\n const group = createGroup({\n x: 0,\n y: 0,\n width: this._width,\n height: this._height\n });\n group.name = 'root';\n this._stage.defaultLayer.appendChild(group);\n this._rootGroup = group;\n const GestureController =\n (isValid(gestureConfig) ? (gestureConfig as any) : isMobileLikeMode(mode)) &&\n interactive !== false &&\n Factory.getStageEventPlugin('gesture');\n\n if (GestureController) {\n this._gestureController = new GestureController(\n this._stage as unknown as IEventTarget,\n isObject(gestureConfig) ? gestureConfig : {}\n ) as Gesture;\n }\n\n this._setCanvasStyle();\n\n // emit afterRender event\n this.getStage().hooks.afterRender.tap('chart-event', this.handleStageRender);\n\n if (interactive !== false) {\n // 将 view 实例化之前监听的事件挂载到 view 上\n this._viewListeners.forEach(listener => {\n //this._view?.addEventListener(listener.type, listener.callback);\n });\n }\n }\n\n getLayoutState() {\n return this._layoutState;\n }\n\n updateLayoutTag() {\n this._layoutState = LayoutState.before;\n }\n\n protected handleLayoutEnd = () => {\n this._compileChart?.getEvent()?.emit(ChartEvent.afterMarkLayoutEnd, { chart: this._compileChart });\n };\n\n protected handleStageRender = () => {\n this._compileChart?.getEvent()?.emit(ChartEvent.afterRender, { chart: this._compileChart });\n };\n\n private _isGeoRegionRoamDragEnabled() {\n const chartSpec = this._compileChart?.getSpec?.();\n const regions = chartSpec?.region;\n if (!isArray(regions)) {\n return false;\n }\n\n return regions.some((region: any) => {\n if (region?.coordinate !== 'geo' || !region.roam) {\n return false;\n }\n\n if (region.roam === true) {\n return true;\n }\n\n return region.roam.drag ?? true;\n });\n }\n\n private _shouldDisableCanvasTouchAction() {\n if (!isTrueBrowser(this._option.mode)) {\n return false;\n }\n\n const supportsTouchEvents = isValid(this._option.supportsTouchEvents)\n ? this._option.supportsTouchEvents\n : vglobal.supportsTouchEvents;\n\n return supportsTouchEvents === false && this._isGeoRegionRoamDragEnabled();\n }\n\n private _setCanvasStyle() {\n if (!this._stage) {\n return;\n }\n if (this._container.dom && !isString(this._container.dom)) {\n this._container.dom.style.display = 'block';\n this._container.dom.style.position = 'relative';\n const canvas = this.getCanvas();\n if (canvas) {\n canvas.style.display = 'block';\n canvas.style.touchAction = this._shouldDisableCanvasTouchAction() ? 'none' : '';\n }\n }\n }\n\n compile(ctx: { chart: IChart; vChart: IVChart }, option?: IVChartRenderOption) {\n if (this._released) {\n return;\n }\n const { chart } = ctx;\n this._compileChart = chart;\n this.initView();\n if (!this._stage) {\n return;\n }\n\n if (option?.actionSource !== 'render' && this._cachedMarks) {\n this.reuseOrMorphing(option.morphConfig);\n // 清除缓存\n this._cachedMarks = null;\n }\n\n chart.compile();\n this._setCanvasStyle();\n chart.afterCompile();\n }\n protected clearNextRender() {\n if (this._nextRafId) {\n vglobal.getSpecifiedCancelAnimationFrame(10)(this._nextRafId);\n this._nextRafId = null;\n\n return true;\n }\n\n return false;\n }\n\n clear(ctx: { chart: IChart; vChart: IVChart }) {\n const { chart } = ctx;\n\n this.clearNextRender();\n chart.clear();\n }\n\n renderNextTick(morphConfig?: IMorphConfig): void {\n if (this._released) {\n return;\n }\n if (this._nextRafId) {\n this.clearNextRender();\n }\n\n this._nextRafId = vglobal.getSpecifiedRequestAnimationFrame(10)(() => {\n this._nextRafId = null;\n this.render(morphConfig);\n }) as unknown as number;\n }\n\n protected _commitedAll() {\n return this._rootMarks.some(mark => {\n return traverseGroupMark(mark, m => m.commit());\n });\n }\n\n protected _hasCommitedMark() {\n return this._rootMarks.some(mark => {\n return traverseGroupMark(mark, m => m.isCommited(), null, null, true);\n });\n }\n\n private _handleAfterNextRender = () => {\n if (this._stage && !this._option.disableDirtyBounds) {\n this._stage.enableDirtyBounds();\n }\n\n if (this._compileChart) {\n this._compileChart.getEvent()?.emit(ChartEvent.renderFinished, {\n chart: this._compileChart,\n vchart: this._compileChart.getOption()?.globalInstance\n });\n }\n this._option.performanceHook?.afterVRenderDraw?.(this._compileChart.getOption().globalInstance);\n };\n\n private _doRender(immediately: boolean) {\n this._option.performanceHook?.beforeDoRender?.(this._compileChart.getOption().globalInstance);\n if (this._stage) {\n this._rootMarks.forEach(g => {\n traverseGroupMark(\n g,\n m => {\n if (m.needClear) {\n if (!this._progressiveMarks) {\n m.runAnimation();\n }\n m.clearExitGraphics();\n m.needClear = false;\n }\n },\n null,\n true\n );\n });\n\n this._option.performanceHook?.beforeVRenderDraw?.(this._compileChart.getOption().globalInstance);\n // 全量渲染的时候先关闭dirty bounds 提升性能\n this._stage.disableDirtyBounds();\n this._stage.afterNextRender(this._handleAfterNextRender);\n\n if (immediately) {\n this._stage.render();\n\n this._option.performanceHook?.afterVRenderDraw?.(this._compileChart.getOption().globalInstance);\n }\n }\n }\n\n renderMarks() {\n let hasCommitedMark = this._hasCommitedMark();\n const needsLayout = this._layoutState === LayoutState.before;\n\n if (!hasCommitedMark && !needsLayout) {\n return;\n }\n\n log(`--- start of renderMarks(${this._count}) ---`);\n this.clearProgressive();\n\n // 更新所有的mark\n if (hasCommitedMark) {\n this._rootMarks.forEach(mark => {\n mark.render();\n });\n }\n\n if (needsLayout) {\n // 需要更新布局\n this._layoutState = LayoutState.layouting;\n this._compileChart?.onLayout();\n this._layoutState = LayoutState.reevaluate;\n hasCommitedMark = this._hasCommitedMark();\n\n if (hasCommitedMark) {\n // 第二次更新所有的mark\n this._rootMarks.forEach(mark => {\n mark.render();\n });\n }\n this.handleLayoutEnd();\n }\n\n if (hasCommitedMark) {\n this.findProgressiveMarks();\n\n // update stage animation state\n this.updateStateAnimation();\n }\n\n this._doRender(true);\n if (hasCommitedMark) {\n this.doPreProgressive();\n }\n\n log(`--- start of renderMarks(${this._count}) ---`);\n this._count++;\n }\n\n reuseOrMorphing(morphConfig: IMorphConfig = {}) {\n const { reuse = true, morph = true, morphAll = false, animation = {}, enableExitAnimation = false } = morphConfig;\n const newMarks = findSimpleMarks(this._rootMarks);\n const { update, exit } = diffMarks(this._cachedMarks, newMarks, { morph, morphAll, reuse });\n\n update.forEach(({ prev, next }) => {\n // const enableMarkMorphConfig =\n // prev.every(mark => mark.getMarkConfig().morph) && next.every(mark => mark.getMarkConfig().morph);\n\n // 优先复用\n if (reuse && prev.length === 1 && next.length === 1 && prev[0].type === next[0].type) {\n next[0].reuse(prev[0]);\n } else {\n // 执行morphing\n const prevMark = prev.filter(item => item.getMarkConfig().morph)[0];\n prevMark &&\n next.forEach(item => {\n item.getMarkConfig().morph && item.prepareMorph(prevMark);\n });\n }\n });\n\n // todo 离场元素执行exit动画\n exit.forEach(({ prev }) => {\n prev.forEach(m => {\n m.removeProduct();\n });\n });\n }\n\n render(morphConfig?: IMorphConfig) {\n if (this._released) {\n return;\n }\n this.clearNextRender();\n\n this.initView();\n if (!this._stage) {\n return;\n }\n\n const { width, height } = this._rootGroup.attribute;\n\n // 更新rootGroup的宽高\n if (this._width !== width || this._height !== height) {\n this._rootGroup.setAttributes({ width: this._width, height: this._height });\n }\n\n this.renderMarks();\n if (this.clearNextRender()) {\n this.renderMarks();\n }\n }\n\n setStageAnimationConfig(config: Partial<MarkAnimationSpec>) {\n // 封装options,批量添加一些默认参数\n const animationConfig: Partial<MarkAnimationSpec> = {};\n\n Object.keys(config).forEach(key => {\n const value = (config as any)[key];\n if (isArray(value)) {\n if (key === 'disappear') {\n (animationConfig as any)[key] = value.map(item => {\n if (isClass(item.callBack)) {\n return {\n ...item,\n custom: item.callBack\n };\n }\n return {\n ...item,\n type: BuiltIn_DISAPPEAR_ANIMATE_NAME,\n customParameters: {\n callBack: item.callBack\n }\n };\n });\n } else {\n (animationConfig as any)[key] = value.map(item => {\n const options = item!.options ?? {};\n\n return {\n ...item,\n options: (...args: any[]) => {\n const _options = typeof options === 'function' ? options(...args) : options;\n return {\n ..._options\n };\n }\n };\n });\n }\n } else {\n (animationConfig as any)[key] = {\n ...(config as any)[key]\n };\n }\n });\n this._stateAnimationConfig = animationConfig;\n }\n\n updateStateAnimation() {\n const allMarks: IMark[] = [];\n this._rootMarks.forEach(mark => {\n traverseGroupMark(mark, m => {\n allMarks.push(m);\n });\n });\n const markAnimationStates = allMarks.map(mark => mark.getAnimationState());\n const animationState = markAnimationStates.every(state => state === AnimationStateEnum.appear)\n ? AnimationStateEnum.appear\n : markAnimationStates.every(state => state === AnimationStateEnum.disappear)\n ? AnimationStateEnum.disappear\n : AnimationStateEnum.none;\n if (!this._stage.context) {\n this._stage.context = {};\n }\n this._stage.context.animationState = animationState;\n }\n\n updateViewBox(viewBox: IBoundsLike, reRender: boolean = true) {\n if (!this._stage) {\n return;\n }\n const prevViewBox = this._stage.viewBox;\n if (\n viewBox &&\n (!prevViewBox ||\n prevViewBox.x1 !== viewBox.x1 ||\n prevViewBox.y1 !== viewBox.y1 ||\n prevViewBox.x2 !== viewBox.x2 ||\n prevViewBox.y2 !== viewBox.y2)\n ) {\n (this._stage as any).setViewBox(viewBox, reRender);\n }\n }\n\n resize(width: number, height: number, reRender: boolean = true) {\n if (!this._stage) {\n return;\n }\n const hasChange = this._width !== width || this._height !== height;\n\n this._width = width;\n this._height = height;\n\n if (hasChange) {\n this._stage.resize(width, height);\n this._commitedAll();\n\n // todo resize\n if (reRender) {\n this.render({ morph: false });\n }\n }\n }\n\n setBackground(color: IColor) {\n if (this._stage) {\n this._stage.background = color;\n }\n }\n\n setSize(width: number, height: number) {\n this._width = width;\n this._height = height;\n if (!this._stage) {\n return;\n }\n\n // todo set size of stage\n }\n\n setViewBox(viewBox: IBoundsLike, reRender: boolean = true) {\n this.updateViewBox(viewBox, reRender);\n }\n\n addEventListener(\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ): void {\n // TODO: 需要明确一下 interactive 的作用范围,同时考虑是否存在非交互行为的事件以及是否需要生效\n if (this._option.interactive === false) {\n return;\n }\n if (source === Event_Source_Type.chart) {\n const rootGroup = this.getRootGroup();\n const wrappedCallback = function (event: any) {\n const graphic = event.target;\n let markGraphic: IMarkGraphic = null;\n\n if (graphic) {\n if (isValid(graphic.context)) {\n markGraphic = graphic;\n } else {\n markGraphic = findMarkGraphic(rootGroup, graphic) as unknown as IMarkGraphic;\n }\n }\n const context = (markGraphic?.context ?? {}) as Partial<IGraphicContext>;\n const markId = isValid(context.markId) ? context.markId : null;\n const modelId = isValid(context.modelId) ? context.modelId : null;\n const modelUserId = isValid(context.modelUserId) ? context.modelUserId : null;\n const markUserId = isValid(context.markUserId) ? context.markUserId : null;\n\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: markGraphic,\n datum: getDatumOfGraphic(markGraphic), // 是否要区分图元\n markId,\n modelId,\n markUserId,\n modelUserId\n };\n callback.call(null, params);\n }.bind(this);\n this._viewListeners.set(callback, { type, callback: wrappedCallback });\n // 如果 view 已经初始化则立刻挂载监听\n // FIXME: 目前 vgrammar 类型声明没有对齐,事件相关类型声明并没有使用 SceneItem\n //todo\n this._stage?.addEventListener(type, wrappedCallback as any);\n } else if (source === Event_Source_Type.window) {\n const wrappedCallback = function wrappedCallback(event: any) {\n // TODO: vgrammar 暂未提供基于事件直接筛选相应 mark 的能力,这里无法获取到相应的 item\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: null,\n datum: null,\n markId: null,\n modelId: null,\n markUserId: null,\n modelUserId: null\n };\n callback.call(null, params);\n }.bind(this);\n this._windowListeners.set(callback, { type, callback: wrappedCallback });\n const windowObject = this._getGlobalThis();\n windowObject?.addEventListener(type, wrappedCallback);\n } else if (source === Event_Source_Type.canvas) {\n const wrappedCallback = function wrappedCallback(event: any) {\n // TODO: vgrammar 暂未提供基于事件直接筛选相应 mark 的能力,这里无法获取到相应的 item\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: null,\n datum: null,\n markId: null,\n modelId: null,\n markUserId: null,\n modelUserId: null\n };\n callback.call(null, params);\n }.bind(this);\n this._canvasListeners.set(callback, { type, callback: wrappedCallback });\n const canvasObject = this.getStage()?.window;\n canvasObject?.addEventListener(type, wrappedCallback);\n }\n }\n\n removeEventListener(\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ): void {\n if (this._option.interactive === false) {\n return;\n }\n if (source === Event_Source_Type.chart) {\n const wrappedCallback = this._viewListeners.get(callback)?.callback;\n wrappedCallback && this._stage?.removeEventListener(type, wrappedCallback);\n this._viewListeners.delete(callback);\n } else if (source === Event_Source_Type.window) {\n const windowObject = this._getGlobalThis();\n const wrappedCallback = this._windowListeners.get(callback)?.callback;\n wrappedCallback && windowObject?.removeEventListener(type, wrappedCallback);\n this._windowListeners.delete(callback);\n } else if (source === Event_Source_Type.canvas) {\n const canvasObject = this.getStage()?.window;\n const wrappedCallback = this._canvasListeners.get(callback)?.callback;\n canvasObject && wrappedCallback && canvasObject?.removeEventListener(type, wrappedCallback);\n this._canvasListeners.delete(callback);\n }\n }\n\n protected releaseEvent(): void {\n const stage = this.getStage();\n\n if (stage) {\n stage.hooks.afterRender.unTap('chart-event', this.handleStageRender);\n }\n\n // 相应的事件remove在model中完成\n this._viewListeners.clear();\n this._windowListeners.clear();\n this._canvasListeners.clear();\n }\n\n release(): void {\n const stage = this._stage;\n const rootGroup = this._rootGroup;\n const shouldReleaseStage = !!stage && !this._isExternalStage;\n const releaseVRenderAppRef = this._releaseVRenderAppRef;\n\n this.clearNextRender();\n this.releaseEvent();\n // vgrammar release\n this.releaseGrammar(true);\n\n if (stage) {\n if (shouldReleaseStage) {\n stage.release();\n } else if (rootGroup) {\n stage.defaultLayer.removeChild(rootGroup, true);\n rootGroup.release();\n }\n }\n releaseVRenderAppRef?.();\n this._stage = null;\n this._rootGroup = null;\n this._isExternalStage = false;\n this._releaseVRenderAppRef = undefined;\n this._option = this._container = null as any;\n\n this.isInited = false;\n this._compileChart = null;\n this._released = true;\n }\n\n /**\n * 释放VGrammar\n * @param removeGraphicItems 是否删除场景元素,在同步渲染,并且无动画时,必须设置为true,否则有绘图残留\n */\n releaseGrammar(removeGraphicItems: boolean = false) {\n // this._releaseModel();\n if (removeGraphicItems) {\n // 彻底删除图形\n this._rootMarks.forEach(g => {\n traverseGroupMark(\n g,\n m => {\n m.removeProduct(true);\n },\n null,\n true\n );\n });\n } else {\n this._cachedMarks = findSimpleMarks(this._rootMarks);\n }\n this._rootMarks = [];\n }\n\n // protected _releaseModel() {\n // // 释放model\n // Object.keys(this._model).forEach(type => {\n // Object.values((this._model as any)[type] as IProductMap<IGrammarItem>).forEach(grammarItemMap => {\n // Object.values(grammarItemMap).forEach((item: IGrammarItem) => {\n // item.removeProduct(true); // 保留 vgrammar 语法元素,下面一起清空\n // });\n // });\n // (this._model as any)[type] = {};\n // });\n // }\n\n addRootMark(mark: IMark) {\n if (!this._rootMarks.includes(mark)) {\n this._rootMarks.push(mark);\n }\n }\n\n getRootMarks() {\n return this._rootMarks;\n }\n\n removeRootMark(mark: IMark) {\n const index = this._rootMarks.findIndex(m => m === mark);\n\n if (index >= 0) {\n this._rootMarks.splice(index, 1);\n\n return true;\n }\n return false;\n }\n\n private _getGlobalThis() {\n return isTrueBrowser(this._option.mode) ? globalThis : this.getStage()?.window;\n }\n\n private _combineIncrementalLayers() {\n if (this._stage) {\n waitForAllSubLayers(this._stage).then(() => {\n // stage might be null in current tick\n if (this._stage) {\n this._stage.defaultLayer.combineSubLayer();\n }\n });\n }\n }\n\n private findProgressiveMarks() {\n const marks: IMark[] = [];\n\n this._rootMarks.forEach(mark => {\n traverseGroupMark(mark, m => {\n if (m.isProgressive()) {\n marks.push(m);\n }\n });\n });\n\n if (!marks.length) {\n this._progressiveMarks = null;\n return null;\n }\n\n this._progressiveMarks = marks;\n\n this._combineIncrementalLayers();\n\n return marks;\n }\n\n private doPreProgressive() {\n if (this._progressiveMarks && this._progressiveMarks.some(mark => mark.isDoingProgressive())) {\n const raf = vglobal.getSpecifiedRequestAnimationFrame(10);\n this._progressiveRafId = raf(this.handleProgressiveFrame);\n } else if (this._progressiveMarks && this._progressiveMarks.every(mark => mark.canAnimateAfterProgressive())) {\n this._progressiveMarks.forEach(mark => {\n mark.runAnimation();\n mark.clearExitGraphics();\n });\n } else if (this._progressiveMarks) {\n this._progressiveMarks = null;\n }\n }\n\n /** 监听frame事件,更新增量元素的mark */\n private handleProgressiveFrame = () => {\n if (this._progressiveMarks.length) {\n this._progressiveMarks.forEach(mark => {\n if (mark.isDoingProgressive()) {\n mark.renderProgressive();\n }\n });\n }\n\n this.doPreProgressive();\n };\n\n /** 清除 */\n private clearProgressive() {\n if (this._progressiveRafId) {\n const cancelRaf = vglobal.getSpecifiedCancelAnimationFrame(10);\n cancelRaf(this._progressiveRafId);\n }\n\n if (this._progressiveMarks && this._progressiveMarks.length) {\n this._progressiveMarks.forEach(entry => {\n entry.clearProgressive();\n });\n\n this._progressiveMarks = null;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/compile/compiler.ts"],"names":[],"mappings":"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","file":"compiler.js","sourcesContent":["import { ChartEvent, Event_Source_Type } from './../constant/event';\nimport type { CompilerListenerParameters, ICompiler, IRenderContainer, IRenderOption } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { LayoutState } from './interface';\nimport { isMobileLikeMode, isTrueBrowser } from '../util/env';\nimport { isClass, isString } from '../util/type';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isArray, isObject, isValid } from '@visactor/vutils';\nimport type { EventSourceType } from '../event/interface';\nimport type { IChart } from '../chart/interface';\nimport { createGroup, Stage, vglobal, waitForAllSubLayers } from '@visactor/vrender-core';\nimport type { IColor, IEventTarget, IGroup, IStage } from '@visactor/vrender-core';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { IVChart, IVChartRenderOption } from '../core/interface';\nimport type { AnimationStateValues } from '../mark/interface';\nimport { type IGraphicContext, type IMark, type IMarkGraphic } from '../mark/interface';\nimport { Factory } from '../core/factory';\nimport type { Gesture } from '@visactor/vrender-kits';\nimport { findMarkGraphic, getDatumOfGraphic } from '../util/mark';\nimport { diffMarks, findSimpleMarks, toRenderMode, traverseGroupMark } from './util';\nimport { log } from '../util/debug';\nimport type { MarkAnimationSpec, TypeAnimationConfig } from '../animation/interface';\nimport { AnimationStateEnum } from '../animation/interface';\nimport { BuiltIn_DISAPPEAR_ANIMATE_NAME } from '../constant/animate';\n\ntype EventListener = {\n type: string;\n callback: (...args: any[]) => void;\n};\n\nexport class Compiler implements ICompiler {\n private _count: number = 0;\n /**\n * 更新后缓存的mark\n */\n private _cachedMarks: IMark[];\n\n private _progressiveMarks?: IMark[];\n\n /**\n * 增量渲染相关的raf id\n */\n private _progressiveRafId?: number;\n\n protected _rootMarks: IMark[] = [];\n\n protected _stage: IStage;\n\n protected _stateAnimationConfig: Partial<MarkAnimationSpec>;\n get stateAnimationConfig() {\n return this._stateAnimationConfig;\n }\n\n protected _rootGroup: IGroup;\n\n getRootGroup() {\n return this._rootGroup;\n }\n\n protected _viewListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n protected _windowListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n protected _canvasListeners: Map<(...args: any[]) => any, EventListener> = new Map();\n\n isInited: boolean = false;\n\n private _nextRafId: number;\n\n protected _width: number;\n protected _height: number;\n\n protected _container: IRenderContainer;\n protected _option: IRenderOption;\n getOption() {\n return this._option;\n }\n // 已释放标记\n private _released: boolean = false;\n\n /** 布局阶段 */\n private _layoutState?: LayoutState;\n\n private _compileChart: IChart = null;\n\n constructor(container: IRenderContainer, option: IRenderOption) {\n this._container = container;\n this._option = option;\n }\n\n getChart() {\n return this._compileChart;\n }\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas(): HTMLCanvasElement | undefined {\n return this._stage?.window.getNativeHandler().nativeCanvas;\n }\n\n _gestureController?: Gesture;\n /**\n * 获取 渲染引擎\n */\n getStage(): IStage | undefined {\n return this._stage;\n }\n\n initView() {\n if (this._released) {\n return;\n }\n this.isInited = true;\n if (this._stage) {\n return;\n }\n\n const {\n autoRefreshDpr,\n dpr,\n mode,\n modeParams,\n gestureConfig,\n interactive,\n clickInterval,\n autoPreventDefault,\n background\n } = this._option;\n vglobal.setEnv(toRenderMode(mode), modeParams ?? {});\n this._stage =\n this._option.stage ??\n (new Stage({\n background,\n width: this._width,\n height: this._height,\n container: this._container.dom ?? null,\n canvas: this._container.canvas ?? null,\n dpr,\n viewBox: this._option.viewBox,\n canvasControled: this._option.canvasControled,\n beforeRender: (stage: IStage) => {\n this._compileChart?.onBeforeRender();\n this._option.beforeRender?.(stage);\n },\n afterRender: this._option.afterRender,\n disableDirtyBounds: true,\n autoRender: true,\n ticker: this._option.ticker,\n pluginList: this._option.pluginList,\n enableHtmlAttribute: this._option.enableHtmlAttribute,\n optimize: this._option.optimize,\n supportsTouchEvents: this._option.supportsTouchEvents,\n supportsPointerEvents: this._option.supportsPointerEvents,\n event: {\n clickInterval: clickInterval,\n autoPreventDefault: autoPreventDefault\n },\n ReactDOM: this._option.ReactDOM,\n autoRefresh: isValid(autoRefreshDpr) ? autoRefreshDpr : !isValid(dpr),\n ...(this._option.renderHooks ?? {})\n }) as unknown as IStage);\n\n this._stage.enableIncrementalAutoRender();\n\n // 之前vgrammar 设置了一些默认配置\n (this._stage as any).setTheme({\n symbol: {\n shape: 'circle',\n size: 8\n },\n text: {\n fontSize: 14,\n fill: '#000000'\n }\n });\n\n const group = createGroup({\n x: 0,\n y: 0,\n width: this._width,\n height: this._height\n });\n group.name = 'root';\n this._stage.defaultLayer.appendChild(group);\n this._rootGroup = group;\n const GestureController =\n (isValid(gestureConfig) ? (gestureConfig as any) : isMobileLikeMode(mode)) &&\n interactive !== false &&\n Factory.getStageEventPlugin('gesture');\n\n if (GestureController) {\n this._gestureController = new GestureController(\n this._stage as unknown as IEventTarget,\n isObject(gestureConfig) ? gestureConfig : {}\n ) as Gesture;\n }\n\n this._setCanvasStyle();\n\n // emit afterRender event\n this.getStage().hooks.afterRender.tap('chart-event', this.handleStageRender);\n\n if (interactive !== false) {\n // 将 view 实例化之前监听的事件挂载到 view 上\n this._viewListeners.forEach(listener => {\n //this._view?.addEventListener(listener.type, listener.callback);\n });\n }\n }\n\n getLayoutState() {\n return this._layoutState;\n }\n\n updateLayoutTag() {\n this._layoutState = LayoutState.before;\n }\n\n protected handleLayoutEnd = () => {\n this._compileChart?.getEvent()?.emit(ChartEvent.afterMarkLayoutEnd, { chart: this._compileChart });\n };\n\n protected handleStageRender = () => {\n this._compileChart?.getEvent()?.emit(ChartEvent.afterRender, { chart: this._compileChart });\n };\n\n private _isGeoRegionRoamDragEnabled() {\n const chartSpec = this._compileChart?.getSpec?.();\n const regions = chartSpec?.region;\n if (!isArray(regions)) {\n return false;\n }\n\n return regions.some((region: any) => {\n if (region?.coordinate !== 'geo' || !region.roam) {\n return false;\n }\n\n if (region.roam === true) {\n return true;\n }\n\n return region.roam.drag ?? true;\n });\n }\n\n private _shouldDisableCanvasTouchAction() {\n if (!isTrueBrowser(this._option.mode)) {\n return false;\n }\n\n const supportsTouchEvents = isValid(this._option.supportsTouchEvents)\n ? this._option.supportsTouchEvents\n : vglobal.supportsTouchEvents;\n\n return supportsTouchEvents === false && this._isGeoRegionRoamDragEnabled();\n }\n\n private _setCanvasStyle() {\n if (!this._stage) {\n return;\n }\n if (this._container.dom && !isString(this._container.dom)) {\n this._container.dom.style.display = 'block';\n this._container.dom.style.position = 'relative';\n const canvas = this.getCanvas();\n if (canvas) {\n canvas.style.display = 'block';\n canvas.style.touchAction = this._shouldDisableCanvasTouchAction() ? 'none' : '';\n }\n }\n }\n\n compile(ctx: { chart: IChart; vChart: IVChart }, option?: IVChartRenderOption) {\n if (this._released) {\n return;\n }\n const { chart } = ctx;\n this._compileChart = chart;\n this.initView();\n if (!this._stage) {\n return;\n }\n\n if (option?.actionSource !== 'render' && this._cachedMarks) {\n this.reuseOrMorphing(option.morphConfig);\n // 清除缓存\n this._cachedMarks = null;\n }\n\n chart.compile();\n this._setCanvasStyle();\n chart.afterCompile();\n }\n protected clearNextRender() {\n if (this._nextRafId) {\n vglobal.getSpecifiedCancelAnimationFrame(10)(this._nextRafId);\n this._nextRafId = null;\n\n return true;\n }\n\n return false;\n }\n\n clear(ctx: { chart: IChart; vChart: IVChart }) {\n const { chart } = ctx;\n\n this.clearNextRender();\n chart.clear();\n }\n\n renderNextTick(morphConfig?: IMorphConfig): void {\n if (this._released) {\n return;\n }\n if (this._nextRafId) {\n this.clearNextRender();\n }\n\n this._nextRafId = vglobal.getSpecifiedRequestAnimationFrame(10)(() => {\n this._nextRafId = null;\n this.render(morphConfig);\n }) as unknown as number;\n }\n\n protected _commitedAll() {\n return this._rootMarks.some(mark => {\n return traverseGroupMark(mark, m => m.commit());\n });\n }\n\n protected _hasCommitedMark() {\n return this._rootMarks.some(mark => {\n return traverseGroupMark(mark, m => m.isCommited(), null, null, true);\n });\n }\n\n private _handleAfterNextRender = () => {\n if (this._stage && !this._option.disableDirtyBounds) {\n this._stage.enableDirtyBounds();\n }\n\n if (this._compileChart) {\n this._compileChart.getEvent()?.emit(ChartEvent.renderFinished, {\n chart: this._compileChart,\n vchart: this._compileChart.getOption()?.globalInstance\n });\n }\n this._option.performanceHook?.afterVRenderDraw?.(this._compileChart.getOption().globalInstance);\n };\n\n private _doRender(immediately: boolean) {\n this._option.performanceHook?.beforeDoRender?.(this._compileChart.getOption().globalInstance);\n if (this._stage) {\n this._rootMarks.forEach(g => {\n traverseGroupMark(\n g,\n m => {\n if (m.needClear) {\n if (!this._progressiveMarks) {\n m.runAnimation();\n }\n m.clearExitGraphics();\n m.needClear = false;\n }\n },\n null,\n true\n );\n });\n\n this._option.performanceHook?.beforeVRenderDraw?.(this._compileChart.getOption().globalInstance);\n // 全量渲染的时候先关闭dirty bounds 提升性能\n this._stage.disableDirtyBounds();\n this._stage.afterNextRender(this._handleAfterNextRender);\n\n if (immediately) {\n this._stage.render();\n\n this._option.performanceHook?.afterVRenderDraw?.(this._compileChart.getOption().globalInstance);\n }\n }\n }\n\n renderMarks() {\n if (!this._hasCommitedMark()) {\n return;\n }\n\n log(`--- start of renderMarks(${this._count}) ---`);\n this.clearProgressive();\n\n // 更新所有的mark\n this._rootMarks.forEach(mark => {\n mark.render();\n });\n\n if (this._layoutState === LayoutState.before) {\n // 需要更新布局\n this._layoutState = LayoutState.layouting;\n this._compileChart?.onLayout();\n this._layoutState = LayoutState.reevaluate;\n\n if (this._hasCommitedMark()) {\n // 第二次更新所有的mark\n this._rootMarks.forEach(mark => {\n mark.render();\n });\n }\n this.handleLayoutEnd();\n }\n\n this.findProgressiveMarks();\n\n // update stage animation state\n this.updateStateAnimation();\n\n this._doRender(true);\n this.doPreProgressive();\n\n log(`--- start of renderMarks(${this._count}) ---`);\n this._count++;\n }\n\n reuseOrMorphing(morphConfig: IMorphConfig = {}) {\n const { reuse = true, morph = true, morphAll = false, animation = {}, enableExitAnimation = false } = morphConfig;\n const newMarks = findSimpleMarks(this._rootMarks);\n const { update, exit } = diffMarks(this._cachedMarks, newMarks, { morph, morphAll, reuse });\n\n update.forEach(({ prev, next }) => {\n // const enableMarkMorphConfig =\n // prev.every(mark => mark.getMarkConfig().morph) && next.every(mark => mark.getMarkConfig().morph);\n\n // 优先复用\n if (reuse && prev.length === 1 && next.length === 1 && prev[0].type === next[0].type) {\n next[0].reuse(prev[0]);\n } else {\n // 执行morphing\n const prevMark = prev.filter(item => item.getMarkConfig().morph)[0];\n prevMark &&\n next.forEach(item => {\n item.getMarkConfig().morph && item.prepareMorph(prevMark);\n });\n }\n });\n\n // todo 离场元素执行exit动画\n exit.forEach(({ prev }) => {\n prev.forEach(m => {\n m.removeProduct();\n });\n });\n }\n\n render(morphConfig?: IMorphConfig) {\n if (this._released) {\n return;\n }\n this.clearNextRender();\n\n this.initView();\n if (!this._stage) {\n return;\n }\n\n const { width, height } = this._rootGroup.attribute;\n\n // 更新rootGroup的宽高\n if (this._width !== width || this._height !== height) {\n this._rootGroup.setAttributes({ width: this._width, height: this._height });\n }\n\n this.renderMarks();\n if (this.clearNextRender()) {\n this.renderMarks();\n }\n }\n\n setStageAnimationConfig(config: Partial<MarkAnimationSpec>) {\n // 封装options,批量添加一些默认参数\n const animationConfig: Partial<MarkAnimationSpec> = {};\n\n Object.keys(config).forEach(key => {\n const value = (config as any)[key];\n if (isArray(value)) {\n if (key === 'disappear') {\n (animationConfig as any)[key] = value.map(item => {\n if (isClass(item.callBack)) {\n return {\n ...item,\n custom: item.callBack\n };\n }\n return {\n ...item,\n type: BuiltIn_DISAPPEAR_ANIMATE_NAME,\n customParameters: {\n callBack: item.callBack\n }\n };\n });\n } else {\n (animationConfig as any)[key] = value.map(item => {\n const options = item!.options ?? {};\n\n return {\n ...item,\n options: (...args: any[]) => {\n const _options = typeof options === 'function' ? options(...args) : options;\n return {\n ..._options\n };\n }\n };\n });\n }\n } else {\n (animationConfig as any)[key] = {\n ...(config as any)[key]\n };\n }\n });\n this._stateAnimationConfig = animationConfig;\n }\n\n updateStateAnimation() {\n const allMarks: IMark[] = [];\n this._rootMarks.forEach(mark => {\n traverseGroupMark(mark, m => {\n allMarks.push(m);\n });\n });\n const markAnimationStates = allMarks.map(mark => mark.getAnimationState());\n const animationState = markAnimationStates.every(state => state === AnimationStateEnum.appear)\n ? AnimationStateEnum.appear\n : markAnimationStates.every(state => state === AnimationStateEnum.disappear)\n ? AnimationStateEnum.disappear\n : AnimationStateEnum.none;\n if (!this._stage.context) {\n this._stage.context = {};\n }\n this._stage.context.animationState = animationState;\n }\n\n updateViewBox(viewBox: IBoundsLike, reRender: boolean = true) {\n if (!this._stage) {\n return;\n }\n const prevViewBox = this._stage.viewBox;\n if (\n viewBox &&\n (!prevViewBox ||\n prevViewBox.x1 !== viewBox.x1 ||\n prevViewBox.y1 !== viewBox.y1 ||\n prevViewBox.x2 !== viewBox.x2 ||\n prevViewBox.y2 !== viewBox.y2)\n ) {\n (this._stage as any).setViewBox(viewBox, reRender);\n }\n }\n\n resize(width: number, height: number, reRender: boolean = true) {\n if (!this._stage) {\n return;\n }\n const hasChange = this._width !== width || this._height !== height;\n\n this._width = width;\n this._height = height;\n\n if (hasChange) {\n this._stage.resize(width, height);\n this._commitedAll();\n\n // todo resize\n if (reRender) {\n this.render({ morph: false });\n }\n }\n }\n\n setBackground(color: IColor) {\n if (this._stage) {\n this._stage.background = color;\n }\n }\n\n setSize(width: number, height: number) {\n this._width = width;\n this._height = height;\n if (!this._stage) {\n return;\n }\n\n // todo set size of stage\n }\n\n setViewBox(viewBox: IBoundsLike, reRender: boolean = true) {\n this.updateViewBox(viewBox, reRender);\n }\n\n addEventListener(\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ): void {\n // TODO: 需要明确一下 interactive 的作用范围,同时考虑是否存在非交互行为的事件以及是否需要生效\n if (this._option.interactive === false) {\n return;\n }\n if (source === Event_Source_Type.chart) {\n const rootGroup = this.getRootGroup();\n const wrappedCallback = function (event: any) {\n const graphic = event.target;\n let markGraphic: IMarkGraphic = null;\n\n if (graphic) {\n if (isValid(graphic.context)) {\n markGraphic = graphic;\n } else {\n markGraphic = findMarkGraphic(rootGroup, graphic) as unknown as IMarkGraphic;\n }\n }\n const context = (markGraphic?.context ?? {}) as Partial<IGraphicContext>;\n const markId = isValid(context.markId) ? context.markId : null;\n const modelId = isValid(context.modelId) ? context.modelId : null;\n const modelUserId = isValid(context.modelUserId) ? context.modelUserId : null;\n const markUserId = isValid(context.markUserId) ? context.markUserId : null;\n\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: markGraphic,\n datum: getDatumOfGraphic(markGraphic), // 是否要区分图元\n markId,\n modelId,\n markUserId,\n modelUserId\n };\n callback.call(null, params);\n }.bind(this);\n this._viewListeners.set(callback, { type, callback: wrappedCallback });\n // 如果 view 已经初始化则立刻挂载监听\n // FIXME: 目前 vgrammar 类型声明没有对齐,事件相关类型声明并没有使用 SceneItem\n //todo\n this._stage?.addEventListener(type, wrappedCallback as any);\n } else if (source === Event_Source_Type.window) {\n const wrappedCallback = function wrappedCallback(event: any) {\n // TODO: vgrammar 暂未提供基于事件直接筛选相应 mark 的能力,这里无法获取到相应的 item\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: null,\n datum: null,\n markId: null,\n modelId: null,\n markUserId: null,\n modelUserId: null\n };\n callback.call(null, params);\n }.bind(this);\n this._windowListeners.set(callback, { type, callback: wrappedCallback });\n const windowObject = this._getGlobalThis();\n windowObject?.addEventListener(type, wrappedCallback);\n } else if (source === Event_Source_Type.canvas) {\n const wrappedCallback = function wrappedCallback(event: any) {\n // TODO: vgrammar 暂未提供基于事件直接筛选相应 mark 的能力,这里无法获取到相应的 item\n const params: CompilerListenerParameters = {\n event,\n type,\n source,\n item: null,\n datum: null,\n markId: null,\n modelId: null,\n markUserId: null,\n modelUserId: null\n };\n callback.call(null, params);\n }.bind(this);\n this._canvasListeners.set(callback, { type, callback: wrappedCallback });\n const canvasObject = this.getStage()?.window;\n canvasObject?.addEventListener(type, wrappedCallback);\n }\n }\n\n removeEventListener(\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ): void {\n if (this._option.interactive === false) {\n return;\n }\n if (source === Event_Source_Type.chart) {\n const wrappedCallback = this._viewListeners.get(callback)?.callback;\n wrappedCallback && this._stage?.removeEventListener(type, wrappedCallback);\n this._viewListeners.delete(callback);\n } else if (source === Event_Source_Type.window) {\n const windowObject = this._getGlobalThis();\n const wrappedCallback = this._windowListeners.get(callback)?.callback;\n wrappedCallback && windowObject?.removeEventListener(type, wrappedCallback);\n this._windowListeners.delete(callback);\n } else if (source === Event_Source_Type.canvas) {\n const canvasObject = this.getStage()?.window;\n const wrappedCallback = this._canvasListeners.get(callback)?.callback;\n canvasObject && wrappedCallback && canvasObject?.removeEventListener(type, wrappedCallback);\n this._canvasListeners.delete(callback);\n }\n }\n\n protected releaseEvent(): void {\n const stage = this.getStage();\n\n if (stage) {\n stage.hooks.afterRender.unTap('chart-event', this.handleStageRender);\n }\n\n // 相应的事件remove在model中完成\n this._viewListeners.clear();\n this._windowListeners.clear();\n this._canvasListeners.clear();\n }\n\n release(): void {\n this.clearNextRender();\n this.releaseEvent();\n this._option = this._container = null as any;\n // vgrammar release\n this.releaseGrammar(true);\n\n if (this._stage !== this._option?.stage) {\n // don't release the stage created by outside\n this._stage.release();\n }\n this._stage = null;\n\n this.isInited = false;\n this._compileChart = null;\n this._released = true;\n }\n\n /**\n * 释放VGrammar\n * @param removeGraphicItems 是否删除场景元素,在同步渲染,并且无动画时,必须设置为true,否则有绘图残留\n */\n releaseGrammar(removeGraphicItems: boolean = false) {\n // this._releaseModel();\n if (removeGraphicItems) {\n // 彻底删除图形\n this._rootMarks.forEach(g => {\n traverseGroupMark(\n g,\n m => {\n m.removeProduct();\n },\n null,\n true\n );\n });\n } else {\n this._cachedMarks = findSimpleMarks(this._rootMarks);\n }\n this._rootMarks = [];\n }\n\n // protected _releaseModel() {\n // // 释放model\n // Object.keys(this._model).forEach(type => {\n // Object.values((this._model as any)[type] as IProductMap<IGrammarItem>).forEach(grammarItemMap => {\n // Object.values(grammarItemMap).forEach((item: IGrammarItem) => {\n // item.removeProduct(true); // 保留 vgrammar 语法元素,下面一起清空\n // });\n // });\n // (this._model as any)[type] = {};\n // });\n // }\n\n addRootMark(mark: IMark) {\n if (!this._rootMarks.includes(mark)) {\n this._rootMarks.push(mark);\n }\n }\n\n getRootMarks() {\n return this._rootMarks;\n }\n\n removeRootMark(mark: IMark) {\n const index = this._rootMarks.findIndex(m => m === mark);\n\n if (index >= 0) {\n this._rootMarks.splice(index, 1);\n\n return true;\n }\n return false;\n }\n\n private _getGlobalThis() {\n return isTrueBrowser(this._option.mode) ? globalThis : this.getStage()?.window;\n }\n\n private _combineIncrementalLayers() {\n if (this._stage) {\n waitForAllSubLayers(this._stage).then(() => {\n // stage might be null in current tick\n if (this._stage) {\n this._stage.defaultLayer.combineSubLayer();\n }\n });\n }\n }\n\n private findProgressiveMarks() {\n const marks: IMark[] = [];\n\n this._rootMarks.forEach(mark => {\n traverseGroupMark(mark, m => {\n if (m.isProgressive()) {\n marks.push(m);\n }\n });\n });\n\n if (!marks.length) {\n this._progressiveMarks = null;\n return null;\n }\n\n this._progressiveMarks = marks;\n\n this._combineIncrementalLayers();\n\n return marks;\n }\n\n private doPreProgressive() {\n if (this._progressiveMarks && this._progressiveMarks.some(mark => mark.isDoingProgressive())) {\n const raf = vglobal.getSpecifiedRequestAnimationFrame(10);\n this._progressiveRafId = raf(this.handleProgressiveFrame);\n } else if (this._progressiveMarks && this._progressiveMarks.every(mark => mark.canAnimateAfterProgressive())) {\n this._progressiveMarks.forEach(mark => {\n mark.runAnimation();\n mark.clearExitGraphics();\n });\n } else if (this._progressiveMarks) {\n this._progressiveMarks = null;\n }\n }\n\n /** 监听frame事件,更新增量元素的mark */\n private handleProgressiveFrame = () => {\n if (this._progressiveMarks.length) {\n this._progressiveMarks.forEach(mark => {\n if (mark.isDoingProgressive()) {\n mark.renderProgressive();\n }\n });\n }\n\n this.doPreProgressive();\n };\n\n /** 清除 */\n private clearProgressive() {\n if (this._progressiveRafId) {\n const cancelRaf = vglobal.getSpecifiedCancelAnimationFrame(10);\n cancelRaf(this._progressiveRafId);\n }\n\n if (this._progressiveMarks && this._progressiveMarks.length) {\n this._progressiveMarks.forEach(entry => {\n entry.clearProgressive();\n });\n\n this._progressiveMarks = null;\n }\n }\n}\n"]}
@@ -13,7 +13,7 @@ export declare class CompilableData extends GrammarItem implements ICompilableDa
13
13
  setDataView(d?: DataView): void;
14
14
  getLatestData(): any;
15
15
  constructor(option: GrammarItemInitOption, dataView?: DataView);
16
- removeProduct(_releaseDetach?: boolean): void;
16
+ removeProduct(): void;
17
17
  release(): void;
18
18
  protected _relatedMarks?: Record<string, ICompilableMark>;
19
19
  addRelatedMark(mark: ICompilableMark): void;
@@ -24,7 +24,7 @@ class CompilableData extends grammar_item_1.GrammarItem {
24
24
  constructor(option, dataView) {
25
25
  super(option), this._data = null, this._data = dataView;
26
26
  }
27
- removeProduct(_releaseDetach) {
27
+ removeProduct() {
28
28
  this._product = null, this._prevProduct = null, this._compiledProductId = null;
29
29
  }
30
30
  release() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/data/compilable-data.ts"],"names":[],"mappings":";;;AACA,kDAA8C;AAO9C,MAAa,cAAe,SAAQ,0BAAW;IAK7C,UAAU;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAa,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAEtF,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAID,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,WAAW,CAAC,CAAY;QACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,aAAa;;QACX,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAC;IAChC,CAAC;IAED,YAAY,MAA6B,EAAE,QAAmB;QAC5D,KAAK,CAAC,MAAM,CAAC,CAAC;QAbN,UAAK,GAAoB,IAAI,CAAC;QActC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,cAAwB;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAID,cAAc,CAAC,IAAqB;QAClC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACrC,CAAC;IAGD,UAAU,CAAC,QAAkB;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;oBAC1B,WAAW,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,IAAI,WAAW,EAAE;gBAE5B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;aAC5C;SACF;QAED,OAAO;IACT,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,iBAAiB;;QACf,OAAO,GAAG,MAAA,IAAI,CAAC,WAAW,EAAE,0CAAE,IAAI,EAAE,CAAC;IACvC,CAAC;CACF;AAtFD,wCAsFC","file":"compilable-data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { GrammarItem } from '../grammar-item';\nimport type { Maybe } from '../../typings';\nimport type { ICompilableData } from './interface';\nimport type { GrammarItemInitOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ICompilableMark } from '../mark';\n\nexport class CompilableData extends GrammarItem implements ICompilableData {\n protected declare _product: Maybe<any>;\n\n protected _prevProduct: Maybe<any>;\n\n getProduct() {\n if (this._product) {\n return this._product;\n }\n\n this._product = this.runTransforms<Maybe<any>>(this._transform, this.getLatestData());\n\n return this._product;\n }\n\n /** 原始DataView */\n protected _data: Maybe<DataView> = null;\n getDataView() {\n return this._data;\n }\n setDataView(d?: DataView) {\n this._data = d;\n }\n\n getLatestData() {\n return this._data?.latestData;\n }\n\n constructor(option: GrammarItemInitOption, dataView?: DataView) {\n super(option);\n this._data = dataView;\n }\n\n removeProduct(_releaseDetach?: boolean) {\n this._product = null;\n this._prevProduct = null;\n this._compiledProductId = null;\n }\n\n release() {\n this.removeProduct();\n super.release();\n this._data = null;\n }\n\n protected _relatedMarks?: Record<string, ICompilableMark>;\n\n addRelatedMark(mark: ICompilableMark) {\n if (!this._relatedMarks) {\n this._relatedMarks = {};\n }\n\n this._relatedMarks[mark.id] = mark;\n }\n\n /** 更新数据并默认重新渲染 */\n updateData(noRender?: boolean) {\n this._compileProduct();\n\n if (this._relatedMarks) {\n let hasCommited = false;\n Object.keys(this._relatedMarks).forEach(id => {\n if (this._relatedMarks[id]) {\n hasCommited = true;\n this._relatedMarks[id].commit();\n }\n });\n\n if (!noRender && hasCommited) {\n // 将实际的 dataflow 推迟到下一次异步操作,以避免同步的数据更新内容被忽略\n return this.getCompiler().renderNextTick();\n }\n }\n\n return;\n }\n\n protected _compileProduct() {\n this._prevProduct = this._product;\n // do nothing\n this._product = null;\n }\n\n generateProductId(): string {\n return `${this.getDataView()?.name}`;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/compile/data/compilable-data.ts"],"names":[],"mappings":";;;AACA,kDAA8C;AAO9C,MAAa,cAAe,SAAQ,0BAAW;IAK7C,UAAU;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAa,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAEtF,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAID,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,WAAW,CAAC,CAAY;QACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,aAAa;;QACX,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAC;IAChC,CAAC;IAED,YAAY,MAA6B,EAAE,QAAmB;QAC5D,KAAK,CAAC,MAAM,CAAC,CAAC;QAbN,UAAK,GAAoB,IAAI,CAAC;QActC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAID,cAAc,CAAC,IAAqB;QAClC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACrC,CAAC;IAGD,UAAU,CAAC,QAAkB;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;oBAC1B,WAAW,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,IAAI,WAAW,EAAE;gBAE5B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;aAC5C;SACF;QAED,OAAO;IACT,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,iBAAiB;;QACf,OAAO,GAAG,MAAA,IAAI,CAAC,WAAW,EAAE,0CAAE,IAAI,EAAE,CAAC;IACvC,CAAC;CACF;AAtFD,wCAsFC","file":"compilable-data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { GrammarItem } from '../grammar-item';\nimport type { Maybe } from '../../typings';\nimport type { ICompilableData } from './interface';\nimport type { GrammarItemInitOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ICompilableMark } from '../mark';\n\nexport class CompilableData extends GrammarItem implements ICompilableData {\n protected declare _product: Maybe<any>;\n\n protected _prevProduct: Maybe<any>;\n\n getProduct() {\n if (this._product) {\n return this._product;\n }\n\n this._product = this.runTransforms<Maybe<any>>(this._transform, this.getLatestData());\n\n return this._product;\n }\n\n /** 原始DataView */\n protected _data: Maybe<DataView> = null;\n getDataView() {\n return this._data;\n }\n setDataView(d?: DataView) {\n this._data = d;\n }\n\n getLatestData() {\n return this._data?.latestData;\n }\n\n constructor(option: GrammarItemInitOption, dataView?: DataView) {\n super(option);\n this._data = dataView;\n }\n\n removeProduct() {\n this._product = null;\n this._prevProduct = null;\n this._compiledProductId = null;\n }\n\n release() {\n this.removeProduct();\n super.release();\n this._data = null;\n }\n\n protected _relatedMarks?: Record<string, ICompilableMark>;\n\n addRelatedMark(mark: ICompilableMark) {\n if (!this._relatedMarks) {\n this._relatedMarks = {};\n }\n\n this._relatedMarks[mark.id] = mark;\n }\n\n /** 更新数据并默认重新渲染 */\n updateData(noRender?: boolean) {\n this._compileProduct();\n\n if (this._relatedMarks) {\n let hasCommited = false;\n Object.keys(this._relatedMarks).forEach(id => {\n if (this._relatedMarks[id]) {\n hasCommited = true;\n this._relatedMarks[id].commit();\n }\n });\n\n if (!noRender && hasCommited) {\n // 将实际的 dataflow 推迟到下一次异步操作,以避免同步的数据更新内容被忽略\n return this.getCompiler().renderNextTick();\n }\n }\n\n return;\n }\n\n protected _compileProduct() {\n this._prevProduct = this._product;\n // do nothing\n this._product = null;\n }\n\n generateProductId(): string {\n return `${this.getDataView()?.name}`;\n }\n}\n"]}
@@ -11,7 +11,7 @@ export declare abstract class GrammarItem extends CompilableBase implements IGra
11
11
  getProductId(): string;
12
12
  compile(option?: GrammarItemCompileOption): void;
13
13
  protected abstract _compileProduct(option?: GrammarItemCompileOption): void;
14
- abstract removeProduct(releaseDetach?: boolean): void;
14
+ abstract removeProduct(): void;
15
15
  protected _transform: ITransformSpec[];
16
16
  setTransform(transform: ITransformSpec[]): void;
17
17
  runTransforms<T = any>(transforms: ITransformSpec[], data: T): T;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/grammar-item.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AACtC,uDAAmD;AAEnD,6CAA0C;AAG1C,MAAsB,WAAY,SAAQ,gCAAc;IAAxD;;QAIW,OAAE,GAAW,IAAA,aAAQ,GAAE,CAAC;QAOvB,uBAAkB,GAAW,IAAI,CAAC;IAiC9C,CAAC;IA7BC,YAAY;;QACV,OAAO,MAAA,IAAI,CAAC,kBAAkB,mCAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7D,CAAC;IAGD,OAAO,CAAC,MAAiC;QACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAOD,YAAY,CAAC,SAA2B;QACtC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,aAAa,CAAU,UAA4B,EAAE,IAAO;QAC1D,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;;YACzB,OAAO,GAAG,MAAA,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QACH,OAAO,OAAY,CAAC;IACtB,CAAC;CACF;AA5CD,kCA4CC","file":"grammar-item.js","sourcesContent":["import type { Maybe } from '../typings';\nimport { createID } from '../util/id';\nimport { CompilableBase } from './compilable-base';\nimport type { GrammarItemCompileOption, IGrammarItem, GrammarItemInitOption, ITransformSpec } from './interface';\nimport { Factory } from '../core/factory';\n\n/** 可以直接编译为一个 VGrammar 语法元素的类的统一基类 */\nexport abstract class GrammarItem extends CompilableBase implements IGrammarItem {\n protected declare _option: GrammarItemInitOption;\n\n /** id */\n readonly id: number = createID();\n\n protected _product: Maybe<any>;\n /** 获取编译产物 */\n abstract getProduct(): Maybe<any>;\n\n /** 已经编译完成的产物的 name */\n protected _compiledProductId: string = null;\n /** 生成产物 name */\n abstract generateProductId(): string;\n /** 获取产物 name */\n getProductId() {\n return this._compiledProductId ?? this.generateProductId();\n }\n\n /** 编译入口(尽量不重写这个方法) */\n compile(option?: GrammarItemCompileOption): void {\n this._compileProduct(option);\n }\n\n /** 编译主过程 */\n protected abstract _compileProduct(option?: GrammarItemCompileOption): void;\n abstract removeProduct(releaseDetach?: boolean): void;\n\n protected _transform: ITransformSpec[];\n setTransform(transform: ITransformSpec[]) {\n this._transform = transform;\n }\n\n runTransforms<T = any>(transforms: ITransformSpec[], data: T): T {\n if (!transforms || !transforms.length) {\n return data;\n }\n\n let current = data;\n transforms.forEach(entry => {\n current = Factory.getGrammarTransform(entry.type)?.transform(entry, current);\n });\n return current as T;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/compile/grammar-item.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AACtC,uDAAmD;AAEnD,6CAA0C;AAG1C,MAAsB,WAAY,SAAQ,gCAAc;IAAxD;;QAIW,OAAE,GAAW,IAAA,aAAQ,GAAE,CAAC;QAOvB,uBAAkB,GAAW,IAAI,CAAC;IAiC9C,CAAC;IA7BC,YAAY;;QACV,OAAO,MAAA,IAAI,CAAC,kBAAkB,mCAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7D,CAAC;IAGD,OAAO,CAAC,MAAiC;QACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAOD,YAAY,CAAC,SAA2B;QACtC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,aAAa,CAAU,UAA4B,EAAE,IAAO;QAC1D,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;;YACzB,OAAO,GAAG,MAAA,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QACH,OAAO,OAAY,CAAC;IACtB,CAAC;CACF;AA5CD,kCA4CC","file":"grammar-item.js","sourcesContent":["import type { Maybe } from '../typings';\nimport { createID } from '../util/id';\nimport { CompilableBase } from './compilable-base';\nimport type { GrammarItemCompileOption, IGrammarItem, GrammarItemInitOption, ITransformSpec } from './interface';\nimport { Factory } from '../core/factory';\n\n/** 可以直接编译为一个 VGrammar 语法元素的类的统一基类 */\nexport abstract class GrammarItem extends CompilableBase implements IGrammarItem {\n protected declare _option: GrammarItemInitOption;\n\n /** id */\n readonly id: number = createID();\n\n protected _product: Maybe<any>;\n /** 获取编译产物 */\n abstract getProduct(): Maybe<any>;\n\n /** 已经编译完成的产物的 name */\n protected _compiledProductId: string = null;\n /** 生成产物 name */\n abstract generateProductId(): string;\n /** 获取产物 name */\n getProductId() {\n return this._compiledProductId ?? this.generateProductId();\n }\n\n /** 编译入口(尽量不重写这个方法) */\n compile(option?: GrammarItemCompileOption): void {\n this._compileProduct(option);\n }\n\n /** 编译主过程 */\n protected abstract _compileProduct(option?: GrammarItemCompileOption): void;\n abstract removeProduct(): void;\n\n protected _transform: ITransformSpec[];\n setTransform(transform: ITransformSpec[]) {\n this._transform = transform;\n }\n\n runTransforms<T = any>(transforms: ITransformSpec[], data: T): T {\n if (!transforms || !transforms.length) {\n return data;\n }\n\n let current = data;\n transforms.forEach(entry => {\n current = Factory.getGrammarTransform(entry.type)?.transform(entry, current);\n });\n return current as T;\n }\n}\n"]}
@@ -85,7 +85,7 @@ export interface IGrammarItem extends ICompilable {
85
85
  id: number;
86
86
  generateProductId: () => string;
87
87
  getProductId: () => string;
88
- removeProduct: (releaseDetach?: boolean) => void;
88
+ removeProduct: () => void;
89
89
  setTransform: (transform: ITransformSpec[]) => void;
90
90
  }
91
91
  export type GrammarItemInitOption = ICompilableInitOption;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/interface/compilable-item.ts"],"names":[],"mappings":";;;AAwGA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","file":"compilable-item.js","sourcesContent":["import type { StringOrNumber } from '../../typings';\nimport type { IColor, IGroup, IStage } from '@visactor/vrender-core';\nimport type { IChart } from '../../chart/interface/chart';\nimport type { IVChart, IVChartRenderOption } from '../../core/interface';\nimport type { IMorphConfig } from '../../animation/spec';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { EventSourceType, EventType } from '../../event/interface';\nimport type { IMark, IMarkGraphic } from '../../mark/interface';\nimport type { IRenderOption, LayoutState } from '../interface/compiler';\nimport type { MarkAnimationSpec } from '../../animation/interface';\n\nexport type CompilerListenerParameters = {\n type: EventType;\n event: Event;\n source: EventSourceType;\n item: IMarkGraphic | null;\n datum: any | null;\n markId: number | null;\n modelId: number | null;\n markUserId: StringOrNumber | null;\n modelUserId: StringOrNumber | null;\n};\n\nexport interface IProductMap<T extends IGrammarItem> {\n /** 编译产物 id 和对应的在 vchart 中的 GrammarItem */\n [productId: string]: IGrammarItemMap<T>;\n}\n\nexport interface IGrammarItemMap<T extends IGrammarItem> {\n /** GrammarItem id 和 对应的引用 */\n [id: number]: T;\n}\n\nexport type ICompilerModel = Record<GrammarType, IProductMap<IGrammarItem>>;\n\nexport interface ICompiler {\n getOption: () => IRenderOption;\n isInited?: boolean;\n readonly stateAnimationConfig?: MarkAnimationSpec;\n getCanvas: () => HTMLCanvasElement | undefined;\n getStage: () => IStage | undefined;\n compile: (ctx: { chart: IChart; vChart: IVChart }, option?: IVChartRenderOption) => void;\n clear: (ctx: { chart: IChart; vChart: IVChart }, removeGraphicItems?: boolean) => void;\n renderNextTick: (morphConfig?: IMorphConfig) => void;\n render: (morphConfig?: IMorphConfig) => void;\n setStageAnimationConfig: (config: Partial<MarkAnimationSpec>) => void;\n updateViewBox: (viewBox: IBoundsLike, reRender?: boolean) => void;\n resize: (width: number, height: number, reRender?: boolean) => void;\n setBackground: (color: IColor) => void;\n setSize: (width: number, height: number) => void;\n setViewBox: (viewBox: IBoundsLike, reRender?: boolean) => void;\n addEventListener: (\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ) => void;\n removeEventListener: (\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ) => void;\n release: () => void;\n releaseGrammar: (removeGraphicItems: boolean) => void;\n // addGrammarItem: (grammarItem: IGrammarItem) => void;\n // removeGrammarItem: (grammarItem: IGrammarItem, reserveVGrammarModel?: boolean) => void;\n\n addRootMark: (mark: IMark) => any;\n removeRootMark: (mark: IMark) => any;\n getRootMarks: () => IMark[];\n\n updateLayoutTag: () => void;\n getLayoutState: () => LayoutState;\n getRootGroup: () => IGroup;\n getChart: () => IChart;\n}\n\nexport interface ICompilable {\n /** 获取 compile 对象 */\n getCompiler: () => ICompiler;\n /** 获取 vgrammar view */\n getStage: () => IStage;\n\n /** 编译总入口 */\n compile: () => void;\n /** 编译所有 mark */\n compileMarks?: (group?: IGroup) => void;\n /** 编译所有 data */\n compileData?: () => void;\n\n /** 清除compile 内容入口 */\n clear?: () => void;\n\n /** 全部编译完成 lift circle */\n afterCompile?: () => void;\n\n /** 释放总入口 */\n release: () => void;\n}\n\nexport interface ICompilableInitOption {\n /** 编译对象 应当由外部提供 */\n getCompiler: () => ICompiler;\n}\n\nexport enum GrammarType {\n data = 'data',\n mark = 'mark'\n}\n\nexport interface ITransformSpec {\n type: string;\n [key: string]: any;\n}\n\nexport interface IGrammarItem extends ICompilable {\n id: number;\n /** 生成语法元素名称 */\n generateProductId: () => string;\n /** 获取语法元素名称 */\n getProductId: () => string;\n /** 删除已编译的语法元素 */\n removeProduct: (releaseDetach?: boolean) => void;\n // transform\n setTransform: (transform: ITransformSpec[]) => void;\n}\n\nexport type GrammarItemInitOption = ICompilableInitOption;\n\nexport type GrammarItemCompileOption = Record<string, any>;\n\nexport type StateValueMap = Record<string, unknown>;\n"]}
1
+ {"version":3,"sources":["../src/compile/interface/compilable-item.ts"],"names":[],"mappings":";;;AAwGA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","file":"compilable-item.js","sourcesContent":["import type { StringOrNumber } from '../../typings';\nimport type { IColor, IGroup, IStage } from '@visactor/vrender-core';\nimport type { IChart } from '../../chart/interface/chart';\nimport type { IVChart, IVChartRenderOption } from '../../core/interface';\nimport type { IMorphConfig } from '../../animation/spec';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { EventSourceType, EventType } from '../../event/interface';\nimport type { IMark, IMarkGraphic } from '../../mark/interface';\nimport type { IRenderOption, LayoutState } from '../interface/compiler';\nimport type { MarkAnimationSpec } from '../../animation/interface';\n\nexport type CompilerListenerParameters = {\n type: EventType;\n event: Event;\n source: EventSourceType;\n item: IMarkGraphic | null;\n datum: any | null;\n markId: number | null;\n modelId: number | null;\n markUserId: StringOrNumber | null;\n modelUserId: StringOrNumber | null;\n};\n\nexport interface IProductMap<T extends IGrammarItem> {\n /** 编译产物 id 和对应的在 vchart 中的 GrammarItem */\n [productId: string]: IGrammarItemMap<T>;\n}\n\nexport interface IGrammarItemMap<T extends IGrammarItem> {\n /** GrammarItem id 和 对应的引用 */\n [id: number]: T;\n}\n\nexport type ICompilerModel = Record<GrammarType, IProductMap<IGrammarItem>>;\n\nexport interface ICompiler {\n getOption: () => IRenderOption;\n isInited?: boolean;\n readonly stateAnimationConfig?: MarkAnimationSpec;\n getCanvas: () => HTMLCanvasElement | undefined;\n getStage: () => IStage | undefined;\n compile: (ctx: { chart: IChart; vChart: IVChart }, option?: IVChartRenderOption) => void;\n clear: (ctx: { chart: IChart; vChart: IVChart }, removeGraphicItems?: boolean) => void;\n renderNextTick: (morphConfig?: IMorphConfig) => void;\n render: (morphConfig?: IMorphConfig) => void;\n setStageAnimationConfig: (config: Partial<MarkAnimationSpec>) => void;\n updateViewBox: (viewBox: IBoundsLike, reRender?: boolean) => void;\n resize: (width: number, height: number, reRender?: boolean) => void;\n setBackground: (color: IColor) => void;\n setSize: (width: number, height: number) => void;\n setViewBox: (viewBox: IBoundsLike, reRender?: boolean) => void;\n addEventListener: (\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ) => void;\n removeEventListener: (\n source: EventSourceType,\n type: string,\n callback: (params: CompilerListenerParameters) => void\n ) => void;\n release: () => void;\n releaseGrammar: (removeGraphicItems: boolean) => void;\n // addGrammarItem: (grammarItem: IGrammarItem) => void;\n // removeGrammarItem: (grammarItem: IGrammarItem, reserveVGrammarModel?: boolean) => void;\n\n addRootMark: (mark: IMark) => any;\n removeRootMark: (mark: IMark) => any;\n getRootMarks: () => IMark[];\n\n updateLayoutTag: () => void;\n getLayoutState: () => LayoutState;\n getRootGroup: () => IGroup;\n getChart: () => IChart;\n}\n\nexport interface ICompilable {\n /** 获取 compile 对象 */\n getCompiler: () => ICompiler;\n /** 获取 vgrammar view */\n getStage: () => IStage;\n\n /** 编译总入口 */\n compile: () => void;\n /** 编译所有 mark */\n compileMarks?: (group?: IGroup) => void;\n /** 编译所有 data */\n compileData?: () => void;\n\n /** 清除compile 内容入口 */\n clear?: () => void;\n\n /** 全部编译完成 lift circle */\n afterCompile?: () => void;\n\n /** 释放总入口 */\n release: () => void;\n}\n\nexport interface ICompilableInitOption {\n /** 编译对象 应当由外部提供 */\n getCompiler: () => ICompiler;\n}\n\nexport enum GrammarType {\n data = 'data',\n mark = 'mark'\n}\n\nexport interface ITransformSpec {\n type: string;\n [key: string]: any;\n}\n\nexport interface IGrammarItem extends ICompilable {\n id: number;\n /** 生成语法元素名称 */\n generateProductId: () => string;\n /** 获取语法元素名称 */\n getProductId: () => string;\n /** 删除已编译的语法元素 */\n removeProduct: () => void;\n // transform\n setTransform: (transform: ITransformSpec[]) => void;\n}\n\nexport type GrammarItemInitOption = ICompilableInitOption;\n\nexport type GrammarItemCompileOption = Record<string, any>;\n\nexport type StateValueMap = Record<string, unknown>;\n"]}
@@ -1,4 +1,4 @@
1
- import type { IApp, IColor, IStageParams, IStage, ILayer, IOption3D, ITicker } from '@visactor/vrender-core';
1
+ import type { IColor, IStageParams, IStage, ILayer, IOption3D, ITicker } from '@visactor/vrender-core';
2
2
  import type { IPerformanceHook, RenderMode } from '../../typings/spec/common';
3
3
  import type { IBoundsLike } from '@visactor/vutils';
4
4
  import type { StringOrNumber } from '../../typings';
@@ -42,7 +42,6 @@ export interface IRenderOption {
42
42
  viewBox?: IBoundsLike;
43
43
  canvasControled?: boolean;
44
44
  stage?: IStage;
45
- app?: IApp;
46
45
  layer?: ILayer;
47
46
  beforeRender?: IStageParams['beforeRender'];
48
47
  afterRender?: IStageParams['afterRender'];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/interface/compiler.ts"],"names":[],"mappings":";;;AAMA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,sCAAuB,CAAA;IACvB,wCAAyB,CAAA;IACzB,8BAAe,CAAA;AACjB,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB","file":"compiler.js","sourcesContent":["import type { IApp, IColor, IStageParams, IStage, ILayer, IOption3D, ITicker } from '@visactor/vrender-core';\nimport type { IPerformanceHook, RenderMode } from '../../typings/spec/common';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { StringOrNumber } from '../../typings';\n\n/** 布局阶段 */\nexport enum LayoutState {\n before = 'before',\n layouting = 'layouting',\n reevaluate = 'reevaluate',\n after = 'after'\n}\n\nexport interface IRenderContainer {\n dom?: HTMLElement | 'none';\n canvas?: HTMLCanvasElement | string;\n}\n\n/**\n * @since 1.8.0\n */\nexport type IOptimizeType = {\n // 视口不在可视区,跳过渲染,默认为true\n skipRenderWithOutRange?: boolean;\n // 跳过图元在区间外的判断\n // 不存在dirtyBounds的时候,根据该配置判断是否关闭图元的超出边界判定\n // 如果有dirtyBounds那么该配置不生效\n disableCheckGraphicWidthOutRange?: boolean;\n};\n\nexport interface GestureConfig {\n press?: {\n /**\n * @default 251\n * Minimal press time in ms.\n * @see http://hammerjs.github.io/recognizer-press/\n */\n time?: number;\n /**\n * @default 10\n * Maximal movement that is allowed while pressing.\n * @see http://hammerjs.github.io/recognizer-press/\n */\n threshold?: number;\n };\n swipe?: {\n /**\n * Minimal distance required before recognizing.\n * @default 10\n * @see https://hammerjs.github.io/recognizer-swipe/\n */\n threshold?: number;\n /**\n * Minimal velocity required before recognizing, unit is in px per ms.\n * @default 0.3\n * @see http://hammerjs.github.io/recognizer-swipe/\n */\n velocity?: number;\n };\n tap?: {\n /**\n * max time between the multi-tap taps\n * @default 300\n */\n interval?: number;\n };\n}\n\nexport interface IRenderOption {\n /**\n * 配置渲染环境,默认为 'desktop-browser',当需要在非浏览器环境渲染 VChart 时,需要配置该属性。\n * - 'desktop-browser': 默认模式,适用于 PC 及 H5\n * - 'mobile-browser': H5 模式\n * - 'node': Node 渲染\n * - 'worker': worker 模式\n * - 'miniApp': 小程序模式\n * - 'lynx': lynx 渲染\n * @default 'desktop-browser'\n */\n mode?: RenderMode;\n\n gestureConfig?: GestureConfig;\n /**\n * 渲染环境参数配置。\n *\n * app 级 envParams 只应放对整个 VRender app scope 都有效的环境能力;\n * 具体 canvas name/id、width、height、dpr 会随 stage 创建参数传入。\n * Lynx 新接入请优先使用 pixelRatio、lynx/runtime、canvasFactory 等全局能力,\n * 不要把 domref/canvasIdLists/freeCanvasIdx 作为新主路径依赖。\n */\n modeParams?:\n | {\n tooltipCanvasId?: StringOrNumber;\n [key: string]: any;\n }\n | unknown;\n\n /**\n * 是否自动刷线dpr\n * @since 1.12.14\n */\n autoRefreshDpr?: boolean;\n /**\n * 设置屏幕分辨率\n */\n dpr?: number;\n /**\n * 图表交互全局开关,默认为 `true`,开启。\n * @default true\n */\n interactive?: boolean;\n /**\n * 指定绘制的区域\n */\n viewBox?: IBoundsLike;\n /**\n * 用于告诉底层的渲染引擎 VRender,图表的 Canvas 是否是受控制的canvas,如果不是的话,不会进行resize等操作。\n * @default true\n */\n canvasControled?: boolean;\n /**\n * 外部传入的 VRender stage。普通用户仍应优先使用 dom/renderCanvas;\n * 显式传入 stage 时,stage ownership 属于外部,VChart release 不会释放该 stage。\n */\n stage?: IStage;\n /**\n * 外部传入的 VRender app。VChart 可使用它创建内部 stage,但 app ownership 属于外部,\n * VChart release 只释放自己创建的 stage,不释放该 app。\n */\n app?: IApp;\n /**\n * 外部传入的 VRender layer\n */\n layer?: ILayer;\n\n /**\n * 绘制之前的钩子函数\n */\n beforeRender?: IStageParams['beforeRender'];\n /**\n * 绘制之后的钩子函数\n */\n afterRender?: IStageParams['afterRender'];\n\n renderHooks?: {\n /**\n * 渲染层清除屏幕之后的钩子函数,这个钩子在实际渲染之前\n * @since 2.0.1\n */\n afterClearScreen?: IStageParams['afterClearScreen'];\n /**\n * 渲染层清除屏幕之后的钩子函数,这个钩子在实际渲染之前\n * @since 2.0.2\n */\n afterClearRect?: IStageParams['afterClearRect'];\n /**\n * 渲染层钩子 直接透传\n * @since 2.0.2\n */\n [key: string]: any;\n };\n /**\n * 绘图区域背景色设置\n */\n background?: IColor;\n /**\n * 日志类型,用于开发调试\n */\n logLevel?: number;\n /**\n * 错误消息回调函数\n */\n onError?: (...args: any[]) => void;\n /**\n * 是否关闭dirtyBounds\n * @default false\n */\n disableDirtyBounds?: boolean;\n /**\n * 是否开启view3d的变换模式\n */\n enableView3dTransform?: boolean;\n /**\n * vrender 的插件列表\n */\n pluginList?: string[];\n /**\n * vrender 的 ticker\n */\n ticker?: ITicker;\n /**\n * @since 1.8.0\n */\n optimize?: IOptimizeType;\n /**\n * @since 1.8.3\n */\n enableHtmlAttribute?: boolean;\n /**\n * @since 1.8.9\n * 是否支持touch事件\n */\n supportsTouchEvents?: boolean;\n /**\n * @since 1.8.9\n * 是否支持pointer事件\n */\n supportsPointerEvents?: boolean;\n /**\n * @since 1.11.0\n * 用于vrender渲染react元素,`react-dom`包导出元素\n */\n ReactDOM?: any;\n /**\n * @since 1.13.2\n * @default 200\n * 单位 ms\n * 多次点击之间的最大时间,默认为 200 ms,用于判断点击次数\n */\n clickInterval?: number;\n /**\n * @since 1.13.2\n * @default false\n * VRender 参数 是否自动阻止事件\n */\n autoPreventDefault?: boolean;\n /**\n * @deprecated\n * 请使用 hooks 代替\n */\n performanceHook?: IPerformanceHook;\n\n /**\n * 3d配置\n */\n options3d?: {\n enable?: boolean;\n /* 是否支持3d视角变换 */\n enableView3dTranform?: boolean;\n } & IOption3D;\n}\n"]}
1
+ {"version":3,"sources":["../src/compile/interface/compiler.ts"],"names":[],"mappings":";;;AAMA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,sCAAuB,CAAA;IACvB,wCAAyB,CAAA;IACzB,8BAAe,CAAA;AACjB,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB","file":"compiler.js","sourcesContent":["import type { IColor, IStageParams, IStage, ILayer, IOption3D, ITicker } from '@visactor/vrender-core';\nimport type { IPerformanceHook, RenderMode } from '../../typings/spec/common';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { StringOrNumber } from '../../typings';\n\n/** 布局阶段 */\nexport enum LayoutState {\n before = 'before',\n layouting = 'layouting',\n reevaluate = 'reevaluate',\n after = 'after'\n}\n\nexport interface IRenderContainer {\n dom?: HTMLElement | 'none';\n canvas?: HTMLCanvasElement | string;\n}\n\n/**\n * @since 1.8.0\n */\nexport type IOptimizeType = {\n // 视口不在可视区,跳过渲染,默认为true\n skipRenderWithOutRange?: boolean;\n // 跳过图元在区间外的判断\n // 不存在dirtyBounds的时候,根据该配置判断是否关闭图元的超出边界判定\n // 如果有dirtyBounds那么该配置不生效\n disableCheckGraphicWidthOutRange?: boolean;\n};\n\nexport interface GestureConfig {\n press?: {\n /**\n * @default 251\n * Minimal press time in ms.\n * @see http://hammerjs.github.io/recognizer-press/\n */\n time?: number;\n /**\n * @default 10\n * Maximal movement that is allowed while pressing.\n * @see http://hammerjs.github.io/recognizer-press/\n */\n threshold?: number;\n };\n swipe?: {\n /**\n * Minimal distance required before recognizing.\n * @default 10\n * @see https://hammerjs.github.io/recognizer-swipe/\n */\n threshold?: number;\n /**\n * Minimal velocity required before recognizing, unit is in px per ms.\n * @default 0.3\n * @see http://hammerjs.github.io/recognizer-swipe/\n */\n velocity?: number;\n };\n tap?: {\n /**\n * max time between the multi-tap taps\n * @default 300\n */\n interval?: number;\n };\n}\n\nexport interface IRenderOption {\n /**\n * 配置渲染环境,默认为 'desktop-browser',当需要在非浏览器环境渲染 VChart 时,需要配置该属性。\n * - 'desktop-browser': 默认模式,适用于 PC 及 H5\n * - 'mobile-browser': H5 模式\n * - 'node': Node 渲染\n * - 'worker': worker 模式\n * - 'miniApp': 小程序模式\n * - 'lynx': lynx 渲染\n * @default 'desktop-browser'\n */\n mode?: RenderMode;\n\n gestureConfig?: GestureConfig;\n /**\n * 渲染环境参数配置\n */\n modeParams?:\n | {\n tooltipCanvasId?: StringOrNumber;\n [key: string]: any;\n }\n | unknown;\n\n /**\n * 是否自动刷线dpr\n * @since 1.12.14\n */\n autoRefreshDpr?: boolean;\n /**\n * 设置屏幕分辨率\n */\n dpr?: number;\n /**\n * 图表交互全局开关,默认为 `true`,开启。\n * @default true\n */\n interactive?: boolean;\n /**\n * 指定绘制的区域\n */\n viewBox?: IBoundsLike;\n /**\n * 用于告诉底层的渲染引擎 VRender,图表的 Canvas 是否是受控制的canvas,如果不是的话,不会进行resize等操作。\n * @default true\n */\n canvasControled?: boolean;\n /**\n * 外部传入的 VRender stage\n */\n stage?: IStage;\n /**\n * 外部传入的 VRender layer\n */\n layer?: ILayer;\n\n /**\n * 绘制之前的钩子函数\n */\n beforeRender?: IStageParams['beforeRender'];\n /**\n * 绘制之后的钩子函数\n */\n afterRender?: IStageParams['afterRender'];\n\n renderHooks?: {\n /**\n * 渲染层清除屏幕之后的钩子函数,这个钩子在实际渲染之前\n * @since 2.0.1\n */\n afterClearScreen?: IStageParams['afterClearScreen'];\n /**\n * 渲染层清除屏幕之后的钩子函数,这个钩子在实际渲染之前\n * @since 2.0.2\n */\n afterClearRect?: IStageParams['afterClearRect'];\n /**\n * 渲染层钩子 直接透传\n * @since 2.0.2\n */\n [key: string]: any;\n };\n /**\n * 绘图区域背景色设置\n */\n background?: IColor;\n /**\n * 日志类型,用于开发调试\n */\n logLevel?: number;\n /**\n * 错误消息回调函数\n */\n onError?: (...args: any[]) => void;\n /**\n * 是否关闭dirtyBounds\n * @default false\n */\n disableDirtyBounds?: boolean;\n /**\n * 是否开启view3d的变换模式\n */\n enableView3dTransform?: boolean;\n /**\n * vrender 的插件列表\n */\n pluginList?: string[];\n /**\n * vrender 的 ticker\n */\n ticker?: ITicker;\n /**\n * @since 1.8.0\n */\n optimize?: IOptimizeType;\n /**\n * @since 1.8.3\n */\n enableHtmlAttribute?: boolean;\n /**\n * @since 1.8.9\n * 是否支持touch事件\n */\n supportsTouchEvents?: boolean;\n /**\n * @since 1.8.9\n * 是否支持pointer事件\n */\n supportsPointerEvents?: boolean;\n /**\n * @since 1.11.0\n * 用于vrender渲染react元素,`react-dom`包导出元素\n */\n ReactDOM?: any;\n /**\n * @since 1.13.2\n * @default 200\n * 单位 ms\n * 多次点击之间的最大时间,默认为 200 ms,用于判断点击次数\n */\n clickInterval?: number;\n /**\n * @since 1.13.2\n * @default false\n * VRender 参数 是否自动阻止事件\n */\n autoPreventDefault?: boolean;\n /**\n * @deprecated\n * 请使用 hooks 代替\n */\n performanceHook?: IPerformanceHook;\n\n /**\n * 3d配置\n */\n options3d?: {\n enable?: boolean;\n /* 是否支持3d视角变换 */\n enableView3dTranform?: boolean;\n } & IOption3D;\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.morph = void 0;
6
6
 
7
- const morphing_1 = require("@visactor/vrender-animate/custom/morphing"), vutils_1 = require("@visactor/vutils"), invokeFunctionType = (value, params, morphData, morphElements) => "function" == typeof value ? value(params, morphData, morphElements) : value, doMorph = (prev, next, config, onEnd, parameters) => {
7
+ const vrender_animate_1 = require("@visactor/vrender-animate"), vutils_1 = require("@visactor/vutils"), invokeFunctionType = (value, params, morphData, morphElements) => "function" == typeof value ? value(params, morphData, morphElements) : value, doMorph = (prev, next, config, onEnd, parameters) => {
8
8
  var _a;
9
9
  const morphData = {
10
10
  prev: prev.map((element => {
@@ -21,21 +21,21 @@ const morphing_1 = require("@visactor/vrender-animate/custom/morphing"), vutils_
21
21
  }, animation = null !== (_a = config.animation) && void 0 !== _a ? _a : {}, easing = animation.easing, delay = invokeFunctionType(animation.delay, parameters, morphData, morphElements), duration = invokeFunctionType(animation.duration, parameters, morphData, morphElements), oneByOne = invokeFunctionType(animation.oneByOne, parameters, morphData, morphElements), splitPath = invokeFunctionType(animation.splitPath, parameters, morphData, morphElements), individualDelay = (0,
22
22
  vutils_1.isValidNumber)(oneByOne) && oneByOne > 0 ? index => (0, vutils_1.isNumber)(oneByOne) ? index * oneByOne : !0 === oneByOne ? index * duration : 0 : void 0;
23
23
  1 !== prev.length && 0 !== prev.length || 1 !== next.length ? 1 === prev.length && next.length > 1 ? (0,
24
- morphing_1.oneToMultiMorph)(prev[0], next, {
24
+ vrender_animate_1.oneToMultiMorph)(prev[0], next, {
25
25
  delay: delay,
26
26
  duration: duration,
27
27
  easing: easing,
28
28
  onEnd: onEnd,
29
29
  individualDelay: individualDelay,
30
30
  splitPath: splitPath
31
- }) : prev.length > 1 && 1 === next.length && (0, morphing_1.multiToOneMorph)(prev, next[0], {
31
+ }) : prev.length > 1 && 1 === next.length && (0, vrender_animate_1.multiToOneMorph)(prev, next[0], {
32
32
  delay: delay,
33
33
  duration: duration,
34
34
  easing: easing,
35
35
  onEnd: onEnd,
36
36
  individualDelay: individualDelay,
37
37
  splitPath: splitPath
38
- }) : (0, morphing_1.morphPath)(prev[0], next[0], {
38
+ }) : (0, vrender_animate_1.morphPath)(prev[0], next[0], {
39
39
  delay: delay,
40
40
  duration: duration,
41
41
  easing: easing,
@@ -89,4 +89,5 @@ const morphing_1 = require("@visactor/vrender-animate/custom/morphing"), vutils_
89
89
  })), 0 === morphCount && onMorphEnd(), !0;
90
90
  };
91
91
 
92
- exports.morph = morph;
92
+ exports.morph = morph;
93
+ //# sourceMappingURL=morph.js.map