@visactor/vchart 2.1.0-alpha.1 → 2.1.0-alpha.11

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 (512) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +5964 -3343
  3. package/build/index.js +5964 -3343
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/base/base-chart-transformer.d.ts +3 -0
  7. package/cjs/chart/base/base-chart-transformer.js +23 -3
  8. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  9. package/cjs/chart/base/base-chart.d.ts +25 -9
  10. package/cjs/chart/base/base-chart.js +199 -27
  11. package/cjs/chart/base/base-chart.js.map +1 -1
  12. package/cjs/chart/gauge/gauge-transformer.js +3 -2
  13. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  14. package/cjs/chart/interface/chart.d.ts +1 -0
  15. package/cjs/chart/interface/chart.js.map +1 -1
  16. package/cjs/chart/pie/base/pie-transformer.js +2 -2
  17. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  18. package/cjs/chart/polar/polar-transformer.js +1 -1
  19. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  20. package/cjs/chart/polar/progress-like/progress-like-transformer.js +1 -1
  21. package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  22. package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -1
  23. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  24. package/cjs/chart/progress/linear/linear-progress-transformer.js +1 -1
  25. package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  26. package/cjs/chart/radar/radar-transformer.js +3 -2
  27. package/cjs/chart/radar/radar-transformer.js.map +1 -1
  28. package/cjs/chart/range-area/range-area-transformer.js +2 -2
  29. package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
  30. package/cjs/chart/rose/rose-transformer.js +2 -1
  31. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  32. package/cjs/chart/util.d.ts +4 -1
  33. package/cjs/chart/util.js +40 -4
  34. package/cjs/chart/util.js.map +1 -1
  35. package/cjs/chart/waterfall/waterfall-transformer.js +2 -1
  36. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  37. package/cjs/compile/compiler.js +11 -9
  38. package/cjs/compile/compiler.js.map +1 -1
  39. package/cjs/compile/data/compilable-data.d.ts +1 -1
  40. package/cjs/compile/data/compilable-data.js +1 -1
  41. package/cjs/compile/data/compilable-data.js.map +1 -1
  42. package/cjs/compile/grammar-item.d.ts +1 -1
  43. package/cjs/compile/grammar-item.js.map +1 -1
  44. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  45. package/cjs/compile/interface/compilable-item.js.map +1 -1
  46. package/cjs/component/axis/base-axis.d.ts +2 -7
  47. package/cjs/component/axis/base-axis.js +26 -6
  48. package/cjs/component/axis/base-axis.js.map +1 -1
  49. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -7
  50. package/cjs/component/axis/mixin/linear-axis-mixin.js +7 -10
  51. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  52. package/cjs/component/axis/polar/band-axis.d.ts +2 -0
  53. package/cjs/component/axis/polar/band-axis.js +3 -0
  54. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  55. package/cjs/component/axis/polar/linear-axis.js +3 -0
  56. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  57. package/cjs/component/base/base-component.d.ts +7 -7
  58. package/cjs/component/base/base-component.js +41 -6
  59. package/cjs/component/base/base-component.js.map +1 -1
  60. package/cjs/component/base/release-vrender-component.d.ts +10 -0
  61. package/cjs/component/base/release-vrender-component.js +37 -0
  62. package/cjs/component/base/release-vrender-component.js.map +1 -0
  63. package/cjs/component/brush/brush.d.ts +3 -7
  64. package/cjs/component/brush/brush.js +22 -5
  65. package/cjs/component/brush/brush.js.map +1 -1
  66. package/cjs/component/crosshair/base.d.ts +4 -7
  67. package/cjs/component/crosshair/base.js +30 -2
  68. package/cjs/component/crosshair/base.js.map +1 -1
  69. package/cjs/component/custom-mark/custom-mark.d.ts +4 -7
  70. package/cjs/component/custom-mark/custom-mark.js +27 -3
  71. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  72. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -7
  73. package/cjs/component/data-zoom/data-filter-base-component.js +15 -2
  74. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  75. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  76. package/cjs/component/data-zoom/data-zoom/data-zoom.js +19 -1
  77. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  78. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  79. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
  80. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  81. package/cjs/component/geo/geo-coordinate.d.ts +1 -7
  82. package/cjs/component/index.js +1 -1
  83. package/cjs/component/indicator/indicator.d.ts +1 -0
  84. package/cjs/component/indicator/indicator.js +11 -2
  85. package/cjs/component/indicator/indicator.js.map +1 -1
  86. package/cjs/component/indicator/util.d.ts +4 -3
  87. package/cjs/component/indicator/util.js +1 -1
  88. package/cjs/component/indicator/util.js.map +1 -1
  89. package/cjs/component/label/base-label.d.ts +1 -7
  90. package/cjs/component/label/base-label.js +6 -2
  91. package/cjs/component/label/base-label.js.map +1 -1
  92. package/cjs/component/label/label.js +1 -1
  93. package/cjs/component/label/label.js.map +1 -1
  94. package/cjs/component/legend/base-legend.d.ts +2 -7
  95. package/cjs/component/legend/base-legend.js +20 -3
  96. package/cjs/component/legend/base-legend.js.map +1 -1
  97. package/cjs/component/marker/base-marker.d.ts +14 -7
  98. package/cjs/component/marker/base-marker.js +112 -12
  99. package/cjs/component/marker/base-marker.js.map +1 -1
  100. package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
  101. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  102. package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
  103. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  104. package/cjs/component/marker/mark-line/base-mark-line.js +2 -4
  105. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  106. package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
  107. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  108. package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
  109. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  110. package/cjs/component/marker/mark-point/base-mark-point.js +26 -11
  111. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  112. package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
  113. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  114. package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
  115. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  116. package/cjs/component/marker/utils.d.ts +4 -4
  117. package/cjs/component/marker/utils.js +27 -23
  118. package/cjs/component/marker/utils.js.map +1 -1
  119. package/cjs/component/player/player.d.ts +1 -0
  120. package/cjs/component/player/player.js +10 -0
  121. package/cjs/component/player/player.js.map +1 -1
  122. package/cjs/component/title/title.d.ts +1 -7
  123. package/cjs/component/title/title.js +6 -2
  124. package/cjs/component/title/title.js.map +1 -1
  125. package/cjs/component/tooltip/tooltip.d.ts +1 -0
  126. package/cjs/component/tooltip/tooltip.js +8 -0
  127. package/cjs/component/tooltip/tooltip.js.map +1 -1
  128. package/cjs/component/util.js +1 -1
  129. package/cjs/constant/attribute.js +1 -2
  130. package/cjs/constant/box-plot.js +2 -1
  131. package/cjs/constant/waterfall.js +1 -2
  132. package/cjs/core/expression-function.js +2 -1
  133. package/cjs/core/vchart.d.ts +5 -1
  134. package/cjs/core/vchart.js +30 -18
  135. package/cjs/core/vchart.js.map +1 -1
  136. package/cjs/data/data-view-utils.d.ts +5 -0
  137. package/cjs/data/data-view-utils.js +58 -0
  138. package/cjs/data/data-view-utils.js.map +1 -0
  139. package/cjs/data/initialize.js +1 -1
  140. package/cjs/data/transforms/box-plot.d.ts +4 -1
  141. package/cjs/data/transforms/box-plot.js +3 -3
  142. package/cjs/data/transforms/box-plot.js.map +1 -1
  143. package/cjs/data/transforms/correlation-center.d.ts +11 -4
  144. package/cjs/data/transforms/correlation-center.js +3 -2
  145. package/cjs/data/transforms/correlation-center.js.map +1 -1
  146. package/cjs/data/transforms/correlation.d.ts +18 -15
  147. package/cjs/data/transforms/correlation.js +22 -17
  148. package/cjs/data/transforms/correlation.js.map +1 -1
  149. package/cjs/data/transforms/funnel.d.ts +10 -8
  150. package/cjs/data/transforms/funnel.js +4 -3
  151. package/cjs/data/transforms/funnel.js.map +1 -1
  152. package/cjs/data/transforms/lookup.d.ts +3 -3
  153. package/cjs/data/transforms/lookup.js +12 -7
  154. package/cjs/data/transforms/lookup.js.map +1 -1
  155. package/cjs/data/transforms/map.d.ts +8 -2
  156. package/cjs/data/transforms/map.js +9 -6
  157. package/cjs/data/transforms/map.js.map +1 -1
  158. package/cjs/data/transforms/sankey.d.ts +12 -4
  159. package/cjs/data/transforms/sankey.js +18 -13
  160. package/cjs/data/transforms/sankey.js.map +1 -1
  161. package/cjs/data/transforms/stack-split.d.ts +2 -1
  162. package/cjs/data/transforms/stack-split.js +1 -1
  163. package/cjs/data/transforms/stack-split.js.map +1 -1
  164. package/cjs/data/transforms/treemap.d.ts +5 -3
  165. package/cjs/data/transforms/treemap.js +7 -6
  166. package/cjs/data/transforms/treemap.js.map +1 -1
  167. package/cjs/data/transforms/venn.d.ts +4 -2
  168. package/cjs/data/transforms/venn.js +4 -4
  169. package/cjs/data/transforms/venn.js.map +1 -1
  170. package/cjs/data/transforms/waterfall.d.ts +4 -2
  171. package/cjs/data/transforms/waterfall.js +7 -7
  172. package/cjs/data/transforms/waterfall.js.map +1 -1
  173. package/cjs/event/event.d.ts +4 -0
  174. package/cjs/event/event.js +26 -7
  175. package/cjs/event/event.js.map +1 -1
  176. package/cjs/mark/base/base-mark.d.ts +12 -2
  177. package/cjs/mark/base/base-mark.js +86 -23
  178. package/cjs/mark/base/base-mark.js.map +1 -1
  179. package/cjs/mark/component.d.ts +9 -0
  180. package/cjs/mark/component.js +51 -3
  181. package/cjs/mark/component.js.map +1 -1
  182. package/cjs/mark/group.js +1 -1
  183. package/cjs/mark/group.js.map +1 -1
  184. package/cjs/mark/interface/mark.d.ts +2 -0
  185. package/cjs/mark/interface/mark.js.map +1 -1
  186. package/cjs/model/base-model.d.ts +3 -15
  187. package/cjs/model/base-model.js.map +1 -1
  188. package/cjs/model/interface.d.ts +13 -0
  189. package/cjs/model/interface.js.map +1 -1
  190. package/cjs/region/region.d.ts +1 -7
  191. package/cjs/scale/color-ordinal-scale.d.ts +1 -0
  192. package/cjs/scale/color-ordinal-scale.js +3 -0
  193. package/cjs/scale/color-ordinal-scale.js.map +1 -1
  194. package/cjs/scale/global-scale.js +9 -2
  195. package/cjs/scale/global-scale.js.map +1 -1
  196. package/cjs/series/area/area.d.ts +2 -0
  197. package/cjs/series/area/area.js +6 -0
  198. package/cjs/series/area/area.js.map +1 -1
  199. package/cjs/series/bar/bar.d.ts +3 -0
  200. package/cjs/series/bar/bar.js +30 -4
  201. package/cjs/series/bar/bar.js.map +1 -1
  202. package/cjs/series/base/base-series.d.ts +10 -7
  203. package/cjs/series/base/base-series.js +78 -18
  204. package/cjs/series/base/base-series.js.map +1 -1
  205. package/cjs/series/base/constant.d.ts +3 -0
  206. package/cjs/series/base/constant.js +9 -1
  207. package/cjs/series/base/constant.js.map +1 -1
  208. package/cjs/series/box-plot/box-plot.d.ts +2 -0
  209. package/cjs/series/box-plot/box-plot.js +16 -4
  210. package/cjs/series/box-plot/box-plot.js.map +1 -1
  211. package/cjs/series/correlation/correlation.js +13 -11
  212. package/cjs/series/correlation/correlation.js.map +1 -1
  213. package/cjs/series/dot/dot.d.ts +12 -0
  214. package/cjs/series/dot/dot.js +16 -1
  215. package/cjs/series/dot/dot.js.map +1 -1
  216. package/cjs/series/funnel/funnel.js +5 -8
  217. package/cjs/series/funnel/funnel.js.map +1 -1
  218. package/cjs/series/heatmap/heatmap.d.ts +2 -0
  219. package/cjs/series/heatmap/heatmap.js +10 -0
  220. package/cjs/series/heatmap/heatmap.js.map +1 -1
  221. package/cjs/series/line/line.d.ts +2 -0
  222. package/cjs/series/line/line.js +6 -0
  223. package/cjs/series/line/line.js.map +1 -1
  224. package/cjs/series/map/map.js +3 -3
  225. package/cjs/series/map/map.js.map +1 -1
  226. package/cjs/series/mixin/line-mixin.d.ts +1 -0
  227. package/cjs/series/mixin/line-mixin.js +6 -1
  228. package/cjs/series/mixin/line-mixin.js.map +1 -1
  229. package/cjs/series/pie/pie.d.ts +3 -7
  230. package/cjs/series/pie/pie.js +16 -1
  231. package/cjs/series/pie/pie.js.map +1 -1
  232. package/cjs/series/polar/progress-like/progress-like.d.ts +2 -0
  233. package/cjs/series/polar/progress-like/progress-like.js +16 -1
  234. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  235. package/cjs/series/polar/rose-like/rose-like.d.ts +2 -0
  236. package/cjs/series/polar/rose-like/rose-like.js +15 -1
  237. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  238. package/cjs/series/progress/circular/circular.d.ts +2 -0
  239. package/cjs/series/progress/circular/circular.js +10 -1
  240. package/cjs/series/progress/circular/circular.js.map +1 -1
  241. package/cjs/series/progress/linear/linear.d.ts +2 -0
  242. package/cjs/series/progress/linear/linear.js +19 -1
  243. package/cjs/series/progress/linear/linear.js.map +1 -1
  244. package/cjs/series/sankey/sankey.js +35 -33
  245. package/cjs/series/sankey/sankey.js.map +1 -1
  246. package/cjs/series/scatter/scatter.d.ts +2 -0
  247. package/cjs/series/scatter/scatter.js +9 -1
  248. package/cjs/series/scatter/scatter.js.map +1 -1
  249. package/cjs/series/treemap/treemap.js +23 -20
  250. package/cjs/series/treemap/treemap.js.map +1 -1
  251. package/cjs/series/venn/venn.js +2 -2
  252. package/cjs/series/venn/venn.js.map +1 -1
  253. package/cjs/series/waterfall/waterfall.d.ts +2 -0
  254. package/cjs/series/waterfall/waterfall.js +36 -20
  255. package/cjs/series/waterfall/waterfall.js.map +1 -1
  256. package/cjs/util/graphic-state.d.ts +1 -0
  257. package/cjs/util/graphic-state.js +19 -4
  258. package/cjs/util/graphic-state.js.map +1 -1
  259. package/esm/chart/base/base-chart-transformer.d.ts +3 -0
  260. package/esm/chart/base/base-chart-transformer.js +24 -2
  261. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  262. package/esm/chart/base/base-chart.d.ts +25 -9
  263. package/esm/chart/base/base-chart.js +192 -26
  264. package/esm/chart/base/base-chart.js.map +1 -1
  265. package/esm/chart/gauge/gauge-transformer.js +3 -2
  266. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  267. package/esm/chart/interface/chart.d.ts +1 -0
  268. package/esm/chart/interface/chart.js.map +1 -1
  269. package/esm/chart/pie/base/pie-transformer.js +2 -2
  270. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  271. package/esm/chart/polar/polar-transformer.js +1 -1
  272. package/esm/chart/polar/polar-transformer.js.map +1 -1
  273. package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
  274. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  275. package/esm/chart/progress/circular/circular-progress-transformer.js +2 -1
  276. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  277. package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
  278. package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  279. package/esm/chart/radar/radar-transformer.js +3 -2
  280. package/esm/chart/radar/radar-transformer.js.map +1 -1
  281. package/esm/chart/range-area/range-area-transformer.js +2 -2
  282. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  283. package/esm/chart/rose/rose-transformer.js +2 -1
  284. package/esm/chart/rose/rose-transformer.js.map +1 -1
  285. package/esm/chart/util.d.ts +4 -1
  286. package/esm/chart/util.js +34 -1
  287. package/esm/chart/util.js.map +1 -1
  288. package/esm/chart/waterfall/waterfall-transformer.js +2 -1
  289. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  290. package/esm/compile/compiler.js +11 -9
  291. package/esm/compile/compiler.js.map +1 -1
  292. package/esm/compile/data/compilable-data.d.ts +1 -1
  293. package/esm/compile/data/compilable-data.js +1 -1
  294. package/esm/compile/data/compilable-data.js.map +1 -1
  295. package/esm/compile/grammar-item.d.ts +1 -1
  296. package/esm/compile/grammar-item.js.map +1 -1
  297. package/esm/compile/interface/compilable-item.d.ts +1 -1
  298. package/esm/compile/interface/compilable-item.js.map +1 -1
  299. package/esm/component/axis/base-axis.d.ts +2 -7
  300. package/esm/component/axis/base-axis.js +26 -5
  301. package/esm/component/axis/base-axis.js.map +1 -1
  302. package/esm/component/axis/cartesian/band-axis.d.ts +1 -7
  303. package/esm/component/axis/mixin/linear-axis-mixin.js +7 -10
  304. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  305. package/esm/component/axis/polar/band-axis.d.ts +2 -0
  306. package/esm/component/axis/polar/band-axis.js +3 -0
  307. package/esm/component/axis/polar/band-axis.js.map +1 -1
  308. package/esm/component/axis/polar/linear-axis.js +3 -0
  309. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  310. package/esm/component/base/base-component.d.ts +7 -7
  311. package/esm/component/base/base-component.js +41 -5
  312. package/esm/component/base/base-component.js.map +1 -1
  313. package/esm/component/base/release-vrender-component.d.ts +10 -0
  314. package/esm/component/base/release-vrender-component.js +24 -0
  315. package/esm/component/base/release-vrender-component.js.map +1 -0
  316. package/esm/component/brush/brush.d.ts +3 -7
  317. package/esm/component/brush/brush.js +20 -4
  318. package/esm/component/brush/brush.js.map +1 -1
  319. package/esm/component/crosshair/base.d.ts +4 -7
  320. package/esm/component/crosshair/base.js +26 -2
  321. package/esm/component/crosshair/base.js.map +1 -1
  322. package/esm/component/custom-mark/custom-mark.d.ts +4 -7
  323. package/esm/component/custom-mark/custom-mark.js +27 -2
  324. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  325. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -7
  326. package/esm/component/data-zoom/data-filter-base-component.js +14 -2
  327. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  328. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  329. package/esm/component/data-zoom/data-zoom/data-zoom.js +20 -0
  330. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  331. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  332. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
  333. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  334. package/esm/component/geo/geo-coordinate.d.ts +1 -7
  335. package/esm/component/index.js +1 -1
  336. package/esm/component/indicator/indicator.d.ts +1 -0
  337. package/esm/component/indicator/indicator.js +11 -2
  338. package/esm/component/indicator/indicator.js.map +1 -1
  339. package/esm/component/indicator/util.d.ts +4 -3
  340. package/esm/component/indicator/util.js +2 -2
  341. package/esm/component/indicator/util.js.map +1 -1
  342. package/esm/component/label/base-label.d.ts +1 -7
  343. package/esm/component/label/base-label.js +5 -1
  344. package/esm/component/label/base-label.js.map +1 -1
  345. package/esm/component/label/label.js +1 -1
  346. package/esm/component/label/label.js.map +1 -1
  347. package/esm/component/legend/base-legend.d.ts +2 -7
  348. package/esm/component/legend/base-legend.js +20 -2
  349. package/esm/component/legend/base-legend.js.map +1 -1
  350. package/esm/component/marker/base-marker.d.ts +14 -7
  351. package/esm/component/marker/base-marker.js +113 -11
  352. package/esm/component/marker/base-marker.js.map +1 -1
  353. package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
  354. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  355. package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
  356. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  357. package/esm/component/marker/mark-line/base-mark-line.js +2 -4
  358. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  359. package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
  360. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  361. package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
  362. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  363. package/esm/component/marker/mark-point/base-mark-point.js +24 -11
  364. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  365. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  366. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  367. package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
  368. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  369. package/esm/component/marker/utils.d.ts +4 -4
  370. package/esm/component/marker/utils.js +27 -23
  371. package/esm/component/marker/utils.js.map +1 -1
  372. package/esm/component/player/player.d.ts +1 -0
  373. package/esm/component/player/player.js +10 -0
  374. package/esm/component/player/player.js.map +1 -1
  375. package/esm/component/title/title.d.ts +1 -7
  376. package/esm/component/title/title.js +6 -2
  377. package/esm/component/title/title.js.map +1 -1
  378. package/esm/component/tooltip/tooltip.d.ts +1 -0
  379. package/esm/component/tooltip/tooltip.js +9 -1
  380. package/esm/component/tooltip/tooltip.js.map +1 -1
  381. package/esm/component/util.js +1 -1
  382. package/esm/constant/attribute.js +1 -2
  383. package/esm/constant/box-plot.js +2 -1
  384. package/esm/constant/waterfall.js +1 -2
  385. package/esm/core/expression-function.js +2 -1
  386. package/esm/core/vchart.d.ts +5 -1
  387. package/esm/core/vchart.js +31 -18
  388. package/esm/core/vchart.js.map +1 -1
  389. package/esm/data/data-view-utils.d.ts +5 -0
  390. package/esm/data/data-view-utils.js +46 -0
  391. package/esm/data/data-view-utils.js.map +1 -0
  392. package/esm/data/initialize.js +1 -1
  393. package/esm/data/transforms/box-plot.d.ts +4 -1
  394. package/esm/data/transforms/box-plot.js +4 -4
  395. package/esm/data/transforms/box-plot.js.map +1 -1
  396. package/esm/data/transforms/correlation-center.d.ts +11 -4
  397. package/esm/data/transforms/correlation-center.js +4 -2
  398. package/esm/data/transforms/correlation-center.js.map +1 -1
  399. package/esm/data/transforms/correlation.d.ts +18 -15
  400. package/esm/data/transforms/correlation.js +13 -8
  401. package/esm/data/transforms/correlation.js.map +1 -1
  402. package/esm/data/transforms/funnel.d.ts +10 -8
  403. package/esm/data/transforms/funnel.js +5 -3
  404. package/esm/data/transforms/funnel.js.map +1 -1
  405. package/esm/data/transforms/lookup.d.ts +3 -3
  406. package/esm/data/transforms/lookup.js +12 -6
  407. package/esm/data/transforms/lookup.js.map +1 -1
  408. package/esm/data/transforms/map.d.ts +8 -2
  409. package/esm/data/transforms/map.js +11 -6
  410. package/esm/data/transforms/map.js.map +1 -1
  411. package/esm/data/transforms/sankey.d.ts +12 -4
  412. package/esm/data/transforms/sankey.js +19 -14
  413. package/esm/data/transforms/sankey.js.map +1 -1
  414. package/esm/data/transforms/stack-split.d.ts +2 -1
  415. package/esm/data/transforms/stack-split.js +2 -2
  416. package/esm/data/transforms/stack-split.js.map +1 -1
  417. package/esm/data/transforms/treemap.d.ts +5 -3
  418. package/esm/data/transforms/treemap.js +8 -5
  419. package/esm/data/transforms/treemap.js.map +1 -1
  420. package/esm/data/transforms/venn.d.ts +4 -2
  421. package/esm/data/transforms/venn.js +5 -3
  422. package/esm/data/transforms/venn.js.map +1 -1
  423. package/esm/data/transforms/waterfall.d.ts +4 -2
  424. package/esm/data/transforms/waterfall.js +7 -8
  425. package/esm/data/transforms/waterfall.js.map +1 -1
  426. package/esm/event/event.d.ts +4 -0
  427. package/esm/event/event.js +26 -7
  428. package/esm/event/event.js.map +1 -1
  429. package/esm/mark/base/base-mark.d.ts +12 -2
  430. package/esm/mark/base/base-mark.js +86 -22
  431. package/esm/mark/base/base-mark.js.map +1 -1
  432. package/esm/mark/component.d.ts +9 -0
  433. package/esm/mark/component.js +51 -2
  434. package/esm/mark/component.js.map +1 -1
  435. package/esm/mark/group.js +1 -1
  436. package/esm/mark/group.js.map +1 -1
  437. package/esm/mark/interface/mark.d.ts +2 -0
  438. package/esm/mark/interface/mark.js.map +1 -1
  439. package/esm/model/base-model.d.ts +3 -15
  440. package/esm/model/base-model.js.map +1 -1
  441. package/esm/model/interface.d.ts +13 -0
  442. package/esm/model/interface.js.map +1 -1
  443. package/esm/region/region.d.ts +1 -7
  444. package/esm/scale/color-ordinal-scale.d.ts +1 -0
  445. package/esm/scale/color-ordinal-scale.js +3 -0
  446. package/esm/scale/color-ordinal-scale.js.map +1 -1
  447. package/esm/scale/global-scale.js +9 -1
  448. package/esm/scale/global-scale.js.map +1 -1
  449. package/esm/series/area/area.d.ts +2 -0
  450. package/esm/series/area/area.js +7 -1
  451. package/esm/series/area/area.js.map +1 -1
  452. package/esm/series/bar/bar.d.ts +3 -0
  453. package/esm/series/bar/bar.js +30 -4
  454. package/esm/series/bar/bar.js.map +1 -1
  455. package/esm/series/base/base-series.d.ts +10 -7
  456. package/esm/series/base/base-series.js +73 -16
  457. package/esm/series/base/base-series.js.map +1 -1
  458. package/esm/series/base/constant.d.ts +3 -0
  459. package/esm/series/base/constant.js +10 -0
  460. package/esm/series/base/constant.js.map +1 -1
  461. package/esm/series/box-plot/box-plot.d.ts +2 -0
  462. package/esm/series/box-plot/box-plot.js +15 -4
  463. package/esm/series/box-plot/box-plot.js.map +1 -1
  464. package/esm/series/correlation/correlation.js +13 -11
  465. package/esm/series/correlation/correlation.js.map +1 -1
  466. package/esm/series/dot/dot.d.ts +12 -0
  467. package/esm/series/dot/dot.js +17 -0
  468. package/esm/series/dot/dot.js.map +1 -1
  469. package/esm/series/funnel/funnel.js +5 -8
  470. package/esm/series/funnel/funnel.js.map +1 -1
  471. package/esm/series/heatmap/heatmap.d.ts +2 -0
  472. package/esm/series/heatmap/heatmap.js +10 -0
  473. package/esm/series/heatmap/heatmap.js.map +1 -1
  474. package/esm/series/line/line.d.ts +2 -0
  475. package/esm/series/line/line.js +7 -1
  476. package/esm/series/line/line.js.map +1 -1
  477. package/esm/series/map/map.js +3 -3
  478. package/esm/series/map/map.js.map +1 -1
  479. package/esm/series/mixin/line-mixin.d.ts +1 -0
  480. package/esm/series/mixin/line-mixin.js +5 -0
  481. package/esm/series/mixin/line-mixin.js.map +1 -1
  482. package/esm/series/pie/pie.d.ts +3 -7
  483. package/esm/series/pie/pie.js +17 -0
  484. package/esm/series/pie/pie.js.map +1 -1
  485. package/esm/series/polar/progress-like/progress-like.d.ts +2 -0
  486. package/esm/series/polar/progress-like/progress-like.js +17 -0
  487. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  488. package/esm/series/polar/rose-like/rose-like.d.ts +2 -0
  489. package/esm/series/polar/rose-like/rose-like.js +16 -0
  490. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  491. package/esm/series/progress/circular/circular.d.ts +2 -0
  492. package/esm/series/progress/circular/circular.js +11 -0
  493. package/esm/series/progress/circular/circular.js.map +1 -1
  494. package/esm/series/progress/linear/linear.d.ts +2 -0
  495. package/esm/series/progress/linear/linear.js +20 -0
  496. package/esm/series/progress/linear/linear.js.map +1 -1
  497. package/esm/series/sankey/sankey.js +35 -33
  498. package/esm/series/sankey/sankey.js.map +1 -1
  499. package/esm/series/scatter/scatter.d.ts +2 -0
  500. package/esm/series/scatter/scatter.js +10 -0
  501. package/esm/series/scatter/scatter.js.map +1 -1
  502. package/esm/series/treemap/treemap.js +23 -20
  503. package/esm/series/treemap/treemap.js.map +1 -1
  504. package/esm/series/venn/venn.js +2 -2
  505. package/esm/series/venn/venn.js.map +1 -1
  506. package/esm/series/waterfall/waterfall.d.ts +2 -0
  507. package/esm/series/waterfall/waterfall.js +36 -20
  508. package/esm/series/waterfall/waterfall.js.map +1 -1
  509. package/esm/util/graphic-state.d.ts +1 -0
  510. package/esm/util/graphic-state.js +16 -3
  511. package/esm/util/graphic-state.js.map +1 -1
  512. package/package.json +9 -8
@@ -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, 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 vglobal.setEnv(toRenderMode(mode), modeParams ?? {});\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(this._option.app, mode);\n this._releaseVRenderAppRef = resolvedApp.releaseAppRef;\n\n try {\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 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 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);\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();\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, 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, 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 vglobal.setEnv(toRenderMode(mode), modeParams ?? {});\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(this._option.app, mode);\n this._releaseVRenderAppRef = resolvedApp.releaseAppRef;\n\n try {\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"]}
@@ -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(): void;
16
+ removeProduct(_releaseDetach?: boolean): 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() {
27
+ removeProduct(_releaseDetach) {
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;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"]}
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"]}
@@ -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(): void;
14
+ abstract removeProduct(releaseDetach?: boolean): 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(): 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(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"]}
@@ -85,7 +85,7 @@ export interface IGrammarItem extends ICompilable {
85
85
  id: number;
86
86
  generateProductId: () => string;
87
87
  getProductId: () => string;
88
- removeProduct: () => void;
88
+ removeProduct: (releaseDetach?: boolean) => 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: () => 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: (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"]}
@@ -82,13 +82,8 @@ export declare abstract class AxisComponent<T extends ICommonAxisSpec & Record<s
82
82
  protected computeData(updateType?: 'domain' | 'range' | 'force'): void;
83
83
  protected _updateTickDataMarks(m: ICompilableMark): void;
84
84
  protected initScales(): void;
85
- _compareSpec(spec: T, prevSpec: T): {
86
- change: boolean;
87
- reMake: boolean;
88
- reRender: boolean;
89
- reSize: boolean;
90
- reCompile: boolean;
91
- };
85
+ _compareSpec(spec: T, prevSpec: T): import("../..").IUpdateSpecResult;
86
+ private _isComponentOnlySpecChange;
92
87
  protected _getAxisAttributes(): any;
93
88
  protected _getGridAttributes(): {
94
89
  alternateColor: any;
@@ -14,7 +14,19 @@ Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.registerAxis = exports.AxisComponent = void 0;
16
16
 
17
- const vscale_1 = require("@visactor/vscale"), base_component_1 = require("../base/base-component"), data_1 = require("../../compile/data"), interface_1 = require("./interface"), interface_2 = require("../interface"), model_1 = require("../../util/model"), vutils_extension_1 = require("@visactor/vutils-extension"), event_1 = require("../../constant/event"), layout_1 = require("../../constant/layout"), utils_1 = require("../../animation/utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("./util"), style_1 = require("../../util/style"), vdataset_1 = require("@visactor/vdataset"), component_1 = require("../../mark/component"), factory_1 = require("../../core/factory"), vrender_components_1 = require("@visactor/vrender-components"), scale_1 = require("../../data/parser/scale"), register_1 = require("../../data/register"), util_2 = require("../util"), transform_1 = require("../../util/spec/transform");
17
+ const vscale_1 = require("@visactor/vscale"), base_component_1 = require("../base/base-component"), data_1 = require("../../compile/data"), interface_1 = require("./interface"), interface_2 = require("../interface"), model_1 = require("../../util/model"), vutils_extension_1 = require("@visactor/vutils-extension"), event_1 = require("../../constant/event"), layout_1 = require("../../constant/layout"), utils_1 = require("../../animation/utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("./util"), style_1 = require("../../util/style"), vdataset_1 = require("@visactor/vdataset"), component_1 = require("../../mark/component"), factory_1 = require("../../core/factory"), vrender_components_1 = require("@visactor/vrender-components"), scale_1 = require("../../data/parser/scale"), register_1 = require("../../data/register"), util_2 = require("../util"), transform_1 = require("../../util/spec/transform"), AXIS_COMPONENT_ONLY_CHANGE_KEYS = {
18
+ grid: !0,
19
+ subGrid: !0,
20
+ tick: !0,
21
+ subTick: !0,
22
+ label: !0,
23
+ domainLine: !0,
24
+ title: !0,
25
+ maxWidth: !0,
26
+ minWidth: !0,
27
+ maxHeight: !0,
28
+ minHeight: !0
29
+ };
18
30
 
19
31
  class AxisComponent extends base_component_1.BaseComponent {
20
32
  getOrient() {
@@ -264,12 +276,20 @@ class AxisComponent extends base_component_1.BaseComponent {
264
276
  }
265
277
  }
266
278
  _compareSpec(spec, prevSpec) {
279
+ var _a, _b;
267
280
  const result = super._compareSpec(spec, prevSpec);
268
- return result.reMake ? result : (result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) || (null == prevSpec ? void 0 : prevSpec.visible) !== (null == spec ? void 0 : spec.visible) ? (result.reMake = !0,
269
- result) : (result.reMake = [ "grid", "subGrid", "tick", "subTick", "label", "domainLine", "title" ].some((k => {
270
- var _a, _b;
271
- return (null === (_a = null == prevSpec ? void 0 : prevSpec[k]) || void 0 === _a ? void 0 : _a.visible) !== (null === (_b = null == spec ? void 0 : spec[k]) || void 0 === _b ? void 0 : _b.visible);
272
- })), result));
281
+ if (result.reMake) return result;
282
+ const specChanged = !(0, vutils_1.isEqual)(prevSpec, spec);
283
+ return result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) || (null == prevSpec ? void 0 : prevSpec.visible) !== (null == spec ? void 0 : spec.visible) ? (result.reMake = !0,
284
+ result) : !0 !== (null === (_a = null == spec ? void 0 : spec.grid) || void 0 === _a ? void 0 : _a.visible) || !0 === (null === (_b = null == prevSpec ? void 0 : prevSpec.grid) || void 0 === _b ? void 0 : _b.visible) || this._gridMark ? (specChanged && !result.reMake && this._isComponentOnlySpecChange(spec, prevSpec) && (result.effects = Object.assign(Object.assign({}, result.effects), {
285
+ component: !0,
286
+ layout: !0,
287
+ render: !0
288
+ })), result) : (result.reMake = !0, result);
289
+ }
290
+ _isComponentOnlySpecChange(spec, prevSpec) {
291
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every((key => (0,
292
+ vutils_1.isEqual)(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || AXIS_COMPONENT_ONLY_CHANGE_KEYS[key]));
273
293
  }
274
294
  _getAxisAttributes() {
275
295
  const spec = this._spec, axisAttrs = {