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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (690) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +63796 -59964
  3. package/build/index.js +63798 -59966
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/callback-disappear.d.ts +1 -1
  7. package/cjs/animation/callback-disappear.js +2 -2
  8. package/cjs/animation/callback-disappear.js.map +1 -1
  9. package/cjs/animation/config.js +34 -34
  10. package/cjs/animation/config.js.map +1 -1
  11. package/cjs/animation/index.js +2 -1
  12. package/cjs/chart/base/base-chart-transformer.d.ts +3 -0
  13. package/cjs/chart/base/base-chart-transformer.js +23 -3
  14. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  15. package/cjs/chart/base/base-chart.d.ts +27 -9
  16. package/cjs/chart/base/base-chart.js +209 -28
  17. package/cjs/chart/base/base-chart.js.map +1 -1
  18. package/cjs/chart/gauge/gauge-transformer.js +3 -2
  19. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  20. package/cjs/chart/interface/chart.d.ts +1 -0
  21. package/cjs/chart/interface/chart.js.map +1 -1
  22. package/cjs/chart/pie/base/pie-transformer.js +2 -2
  23. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  24. package/cjs/chart/polar/polar-transformer.js +1 -1
  25. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  26. package/cjs/chart/polar/progress-like/progress-like-transformer.js +1 -1
  27. package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  28. package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -1
  29. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  30. package/cjs/chart/progress/linear/linear-progress-transformer.js +1 -1
  31. package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  32. package/cjs/chart/radar/radar-transformer.js +3 -2
  33. package/cjs/chart/radar/radar-transformer.js.map +1 -1
  34. package/cjs/chart/range-area/range-area-transformer.js +2 -2
  35. package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
  36. package/cjs/chart/rose/rose-transformer.js +2 -1
  37. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  38. package/cjs/chart/util.d.ts +4 -1
  39. package/cjs/chart/util.js +40 -4
  40. package/cjs/chart/util.js.map +1 -1
  41. package/cjs/chart/waterfall/waterfall-transformer.js +2 -1
  42. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  43. package/cjs/compile/compiler.d.ts +2 -0
  44. package/cjs/compile/compiler.js +68 -48
  45. package/cjs/compile/compiler.js.map +1 -1
  46. package/cjs/compile/data/compilable-data.d.ts +1 -1
  47. package/cjs/compile/data/compilable-data.js +1 -1
  48. package/cjs/compile/data/compilable-data.js.map +1 -1
  49. package/cjs/compile/grammar-item.d.ts +1 -1
  50. package/cjs/compile/grammar-item.js.map +1 -1
  51. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  52. package/cjs/compile/interface/compilable-item.js.map +1 -1
  53. package/cjs/compile/interface/compiler.d.ts +2 -1
  54. package/cjs/compile/interface/compiler.js.map +1 -1
  55. package/cjs/compile/morph.js +5 -6
  56. package/cjs/compile/morph.js.map +1 -1
  57. package/cjs/compile/stage-app.d.ts +17 -0
  58. package/cjs/compile/stage-app.js +82 -0
  59. package/cjs/compile/stage-app.js.map +1 -0
  60. package/cjs/component/axis/base-axis.d.ts +3 -8
  61. package/cjs/component/axis/base-axis.js +27 -7
  62. package/cjs/component/axis/base-axis.js.map +1 -1
  63. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -7
  64. package/cjs/component/axis/cartesian/band-axis.js +4 -4
  65. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  66. package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -1
  67. package/cjs/component/axis/cartesian/linear-axis.js +4 -4
  68. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  69. package/cjs/component/axis/mixin/linear-axis-mixin.js +7 -10
  70. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  71. package/cjs/component/axis/polar/band-axis.d.ts +2 -0
  72. package/cjs/component/axis/polar/band-axis.js +3 -0
  73. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  74. package/cjs/component/axis/polar/linear-axis.js +3 -0
  75. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  76. package/cjs/component/base/base-component.d.ts +7 -7
  77. package/cjs/component/base/base-component.js +41 -6
  78. package/cjs/component/base/base-component.js.map +1 -1
  79. package/cjs/component/base/release-vrender-component.d.ts +10 -0
  80. package/cjs/component/base/release-vrender-component.js +37 -0
  81. package/cjs/component/base/release-vrender-component.js.map +1 -0
  82. package/cjs/component/brush/brush.d.ts +3 -7
  83. package/cjs/component/brush/brush.js +34 -16
  84. package/cjs/component/brush/brush.js.map +1 -1
  85. package/cjs/component/crosshair/base.d.ts +5 -8
  86. package/cjs/component/crosshair/base.js +33 -5
  87. package/cjs/component/crosshair/base.js.map +1 -1
  88. package/cjs/component/crosshair/cartesian.js +3 -3
  89. package/cjs/component/crosshair/cartesian.js.map +1 -1
  90. package/cjs/component/custom-mark/custom-mark.d.ts +4 -7
  91. package/cjs/component/custom-mark/custom-mark.js +27 -3
  92. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  93. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -7
  94. package/cjs/component/data-zoom/data-filter-base-component.js +15 -2
  95. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  96. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  97. package/cjs/component/data-zoom/data-zoom/data-zoom.js +19 -1
  98. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  99. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  100. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
  101. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  102. package/cjs/component/geo/geo-coordinate.d.ts +1 -7
  103. package/cjs/component/indicator/indicator.d.ts +1 -0
  104. package/cjs/component/indicator/indicator.js +11 -2
  105. package/cjs/component/indicator/indicator.js.map +1 -1
  106. package/cjs/component/indicator/util.d.ts +4 -3
  107. package/cjs/component/indicator/util.js +1 -1
  108. package/cjs/component/indicator/util.js.map +1 -1
  109. package/cjs/component/label/base-label.d.ts +1 -7
  110. package/cjs/component/label/base-label.js +6 -2
  111. package/cjs/component/label/base-label.js.map +1 -1
  112. package/cjs/component/label/label.js +3 -3
  113. package/cjs/component/label/label.js.map +1 -1
  114. package/cjs/component/legend/base-legend.d.ts +2 -7
  115. package/cjs/component/legend/base-legend.js +20 -3
  116. package/cjs/component/legend/base-legend.js.map +1 -1
  117. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  118. package/cjs/component/legend/discrete/legend.js +7 -7
  119. package/cjs/component/legend/discrete/legend.js.map +1 -1
  120. package/cjs/component/marker/base-marker.d.ts +14 -7
  121. package/cjs/component/marker/base-marker.js +112 -12
  122. package/cjs/component/marker/base-marker.js.map +1 -1
  123. package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
  124. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  125. package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
  126. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  127. package/cjs/component/marker/mark-line/base-mark-line.js +2 -4
  128. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  129. package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
  130. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  131. package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
  132. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  133. package/cjs/component/marker/mark-point/base-mark-point.js +26 -11
  134. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  135. package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
  136. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  137. package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
  138. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  139. package/cjs/component/marker/utils.d.ts +4 -4
  140. package/cjs/component/marker/utils.js +27 -23
  141. package/cjs/component/marker/utils.js.map +1 -1
  142. package/cjs/component/player/player.d.ts +1 -0
  143. package/cjs/component/player/player.js +10 -0
  144. package/cjs/component/player/player.js.map +1 -1
  145. package/cjs/component/title/title.d.ts +1 -7
  146. package/cjs/component/title/title.js +6 -2
  147. package/cjs/component/title/title.js.map +1 -1
  148. package/cjs/component/tooltip/tooltip.d.ts +1 -0
  149. package/cjs/component/tooltip/tooltip.js +8 -0
  150. package/cjs/component/tooltip/tooltip.js.map +1 -1
  151. package/cjs/component/util.js +2 -1
  152. package/cjs/constant/correlation.js +1 -2
  153. package/cjs/constant/marker.js +1 -1
  154. package/cjs/constant/polar.js +1 -1
  155. package/cjs/constant/scatter.js +1 -1
  156. package/cjs/constant/scroll-bar.js +2 -1
  157. package/cjs/constant/sunburst.js +1 -1
  158. package/cjs/constant/waterfall.js +1 -1
  159. package/cjs/constant/word-cloud.js +1 -1
  160. package/cjs/core/expression-function.js +1 -2
  161. package/cjs/core/index.d.ts +2 -1
  162. package/cjs/core/index.js +8 -4
  163. package/cjs/core/index.js.map +1 -1
  164. package/cjs/core/interface.js +1 -1
  165. package/cjs/core/util.js +1 -1
  166. package/cjs/core/vchart.d.ts +5 -1
  167. package/cjs/core/vchart.js +38 -21
  168. package/cjs/core/vchart.js.map +1 -1
  169. package/cjs/data/data-view-utils.d.ts +5 -0
  170. package/cjs/data/data-view-utils.js +58 -0
  171. package/cjs/data/data-view-utils.js.map +1 -0
  172. package/cjs/data/transforms/box-plot.d.ts +4 -1
  173. package/cjs/data/transforms/box-plot.js +3 -3
  174. package/cjs/data/transforms/box-plot.js.map +1 -1
  175. package/cjs/data/transforms/correlation-center.d.ts +11 -4
  176. package/cjs/data/transforms/correlation-center.js +3 -2
  177. package/cjs/data/transforms/correlation-center.js.map +1 -1
  178. package/cjs/data/transforms/correlation.d.ts +18 -15
  179. package/cjs/data/transforms/correlation.js +22 -17
  180. package/cjs/data/transforms/correlation.js.map +1 -1
  181. package/cjs/data/transforms/funnel.d.ts +10 -8
  182. package/cjs/data/transforms/funnel.js +4 -3
  183. package/cjs/data/transforms/funnel.js.map +1 -1
  184. package/cjs/data/transforms/lookup.d.ts +3 -3
  185. package/cjs/data/transforms/lookup.js +12 -7
  186. package/cjs/data/transforms/lookup.js.map +1 -1
  187. package/cjs/data/transforms/map.d.ts +8 -2
  188. package/cjs/data/transforms/map.js +9 -6
  189. package/cjs/data/transforms/map.js.map +1 -1
  190. package/cjs/data/transforms/sankey.d.ts +12 -4
  191. package/cjs/data/transforms/sankey.js +18 -13
  192. package/cjs/data/transforms/sankey.js.map +1 -1
  193. package/cjs/data/transforms/stack-split.d.ts +2 -1
  194. package/cjs/data/transforms/stack-split.js +1 -1
  195. package/cjs/data/transforms/stack-split.js.map +1 -1
  196. package/cjs/data/transforms/treemap.d.ts +5 -3
  197. package/cjs/data/transforms/treemap.js +7 -6
  198. package/cjs/data/transforms/treemap.js.map +1 -1
  199. package/cjs/data/transforms/venn.d.ts +4 -2
  200. package/cjs/data/transforms/venn.js +4 -4
  201. package/cjs/data/transforms/venn.js.map +1 -1
  202. package/cjs/data/transforms/waterfall.d.ts +4 -2
  203. package/cjs/data/transforms/waterfall.js +7 -7
  204. package/cjs/data/transforms/waterfall.js.map +1 -1
  205. package/cjs/env/env.js +11 -11
  206. package/cjs/env/env.js.map +1 -1
  207. package/cjs/env/index.js +1 -1
  208. package/cjs/event/event.d.ts +4 -0
  209. package/cjs/event/event.js +26 -7
  210. package/cjs/event/event.js.map +1 -1
  211. package/cjs/interaction/interaction.js +11 -8
  212. package/cjs/interaction/interaction.js.map +1 -1
  213. package/cjs/interaction/triggers/element-active-by-legend.js +3 -2
  214. package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
  215. package/cjs/interaction/triggers/element-active.js +4 -3
  216. package/cjs/interaction/triggers/element-active.js.map +1 -1
  217. package/cjs/interaction/triggers/element-highlight-by-group.js +3 -2
  218. package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
  219. package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
  220. package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  221. package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
  222. package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
  223. package/cjs/interaction/triggers/element-highlight.js +2 -2
  224. package/cjs/interaction/triggers/element-highlight.js.map +1 -1
  225. package/cjs/interaction/triggers/element-select.js +3 -3
  226. package/cjs/interaction/triggers/element-select.js.map +1 -1
  227. package/cjs/mark/arc.js +4 -4
  228. package/cjs/mark/arc.js.map +1 -1
  229. package/cjs/mark/area.js +4 -5
  230. package/cjs/mark/area.js.map +1 -1
  231. package/cjs/mark/base/base-mark.d.ts +12 -2
  232. package/cjs/mark/base/base-mark.js +98 -29
  233. package/cjs/mark/base/base-mark.js.map +1 -1
  234. package/cjs/mark/component.d.ts +9 -0
  235. package/cjs/mark/component.js +51 -3
  236. package/cjs/mark/component.js.map +1 -1
  237. package/cjs/mark/glyph.js +1 -1
  238. package/cjs/mark/glyph.js.map +1 -1
  239. package/cjs/mark/group.js +6 -6
  240. package/cjs/mark/group.js.map +1 -1
  241. package/cjs/mark/interface/common.js.map +1 -1
  242. package/cjs/mark/interface/mark.d.ts +2 -0
  243. package/cjs/mark/interface/mark.js.map +1 -1
  244. package/cjs/mark/line.js +4 -5
  245. package/cjs/mark/line.js.map +1 -1
  246. package/cjs/mark/rect.js +3 -3
  247. package/cjs/mark/rect.js.map +1 -1
  248. package/cjs/mark/symbol.js +3 -3
  249. package/cjs/mark/symbol.js.map +1 -1
  250. package/cjs/mark/text.js +4 -4
  251. package/cjs/mark/text.js.map +1 -1
  252. package/cjs/mark/utils/glyph.js +3 -2
  253. package/cjs/mark/utils/glyph.js.map +1 -1
  254. package/cjs/model/base-model.d.ts +3 -15
  255. package/cjs/model/base-model.js.map +1 -1
  256. package/cjs/model/interface.d.ts +13 -0
  257. package/cjs/model/interface.js.map +1 -1
  258. package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
  259. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  260. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  261. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js +2 -2
  262. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  263. package/cjs/plugin/other.js +5 -5
  264. package/cjs/plugin/other.js.map +1 -1
  265. package/cjs/region/region.d.ts +1 -7
  266. package/cjs/scale/color-ordinal-scale.d.ts +1 -0
  267. package/cjs/scale/color-ordinal-scale.js +3 -0
  268. package/cjs/scale/color-ordinal-scale.js.map +1 -1
  269. package/cjs/scale/global-scale.js +9 -2
  270. package/cjs/scale/global-scale.js.map +1 -1
  271. package/cjs/series/area/area.d.ts +2 -0
  272. package/cjs/series/area/area.js +6 -0
  273. package/cjs/series/area/area.js.map +1 -1
  274. package/cjs/series/bar/bar.d.ts +3 -0
  275. package/cjs/series/bar/bar.js +30 -4
  276. package/cjs/series/bar/bar.js.map +1 -1
  277. package/cjs/series/base/base-series.d.ts +11 -7
  278. package/cjs/series/base/base-series.js +93 -23
  279. package/cjs/series/base/base-series.js.map +1 -1
  280. package/cjs/series/base/constant.d.ts +3 -0
  281. package/cjs/series/base/constant.js +9 -1
  282. package/cjs/series/base/constant.js.map +1 -1
  283. package/cjs/series/box-plot/box-plot.d.ts +2 -0
  284. package/cjs/series/box-plot/box-plot.js +16 -4
  285. package/cjs/series/box-plot/box-plot.js.map +1 -1
  286. package/cjs/series/correlation/correlation.js +13 -11
  287. package/cjs/series/correlation/correlation.js.map +1 -1
  288. package/cjs/series/dot/dot.d.ts +12 -0
  289. package/cjs/series/dot/dot.js +16 -1
  290. package/cjs/series/dot/dot.js.map +1 -1
  291. package/cjs/series/funnel/funnel.js +5 -8
  292. package/cjs/series/funnel/funnel.js.map +1 -1
  293. package/cjs/series/heatmap/heatmap.d.ts +2 -0
  294. package/cjs/series/heatmap/heatmap.js +10 -0
  295. package/cjs/series/heatmap/heatmap.js.map +1 -1
  296. package/cjs/series/line/line.d.ts +2 -0
  297. package/cjs/series/line/line.js +9 -3
  298. package/cjs/series/line/line.js.map +1 -1
  299. package/cjs/series/map/map.js +3 -3
  300. package/cjs/series/map/map.js.map +1 -1
  301. package/cjs/series/mixin/line-mixin.d.ts +1 -0
  302. package/cjs/series/mixin/line-mixin.js +6 -1
  303. package/cjs/series/mixin/line-mixin.js.map +1 -1
  304. package/cjs/series/pie/pie.d.ts +3 -7
  305. package/cjs/series/pie/pie.js +16 -1
  306. package/cjs/series/pie/pie.js.map +1 -1
  307. package/cjs/series/polar/progress-like/progress-like.d.ts +2 -0
  308. package/cjs/series/polar/progress-like/progress-like.js +16 -1
  309. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  310. package/cjs/series/polar/rose-like/rose-like.d.ts +2 -0
  311. package/cjs/series/polar/rose-like/rose-like.js +15 -1
  312. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  313. package/cjs/series/progress/circular/circular.d.ts +2 -0
  314. package/cjs/series/progress/circular/circular.js +10 -1
  315. package/cjs/series/progress/circular/circular.js.map +1 -1
  316. package/cjs/series/progress/linear/linear.d.ts +2 -0
  317. package/cjs/series/progress/linear/linear.js +19 -1
  318. package/cjs/series/progress/linear/linear.js.map +1 -1
  319. package/cjs/series/sankey/sankey.js +67 -57
  320. package/cjs/series/sankey/sankey.js.map +1 -1
  321. package/cjs/series/scatter/scatter.d.ts +2 -0
  322. package/cjs/series/scatter/scatter.js +9 -1
  323. package/cjs/series/scatter/scatter.js.map +1 -1
  324. package/cjs/series/treemap/treemap.js +23 -20
  325. package/cjs/series/treemap/treemap.js.map +1 -1
  326. package/cjs/series/venn/venn.js +2 -2
  327. package/cjs/series/venn/venn.js.map +1 -1
  328. package/cjs/series/waterfall/waterfall.d.ts +2 -0
  329. package/cjs/series/waterfall/waterfall.js +36 -20
  330. package/cjs/series/waterfall/waterfall.js.map +1 -1
  331. package/cjs/series/word-cloud/animation.js +3 -0
  332. package/cjs/series/word-cloud/animation.js.map +1 -1
  333. package/cjs/theme/builtin/common/series/word-cloud.js +2 -6
  334. package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -1
  335. package/cjs/util/graphic-state.d.ts +4 -0
  336. package/cjs/util/graphic-state.js +40 -0
  337. package/cjs/util/graphic-state.js.map +1 -0
  338. package/cjs/util/mark.js +7 -3
  339. package/cjs/util/mark.js.map +1 -1
  340. package/cjs/util/math.d.ts +1 -1
  341. package/cjs/util/math.js +2 -2
  342. package/cjs/util/math.js.map +1 -1
  343. package/cjs/util/text.js +2 -2
  344. package/cjs/util/text.js.map +1 -1
  345. package/cjs/vchart-line.d.ts +4 -0
  346. package/cjs/vchart-line.js +35 -0
  347. package/cjs/vchart-line.js.map +1 -0
  348. package/esm/animation/callback-disappear.d.ts +1 -1
  349. package/esm/animation/callback-disappear.js +1 -1
  350. package/esm/animation/callback-disappear.js.map +1 -1
  351. package/esm/animation/config.js +33 -1
  352. package/esm/animation/config.js.map +1 -1
  353. package/esm/animation/index.js +2 -1
  354. package/esm/chart/base/base-chart-transformer.d.ts +3 -0
  355. package/esm/chart/base/base-chart-transformer.js +24 -2
  356. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  357. package/esm/chart/base/base-chart.d.ts +27 -9
  358. package/esm/chart/base/base-chart.js +202 -27
  359. package/esm/chart/base/base-chart.js.map +1 -1
  360. package/esm/chart/gauge/gauge-transformer.js +3 -2
  361. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  362. package/esm/chart/interface/chart.d.ts +1 -0
  363. package/esm/chart/interface/chart.js.map +1 -1
  364. package/esm/chart/pie/base/pie-transformer.js +2 -2
  365. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  366. package/esm/chart/polar/polar-transformer.js +1 -1
  367. package/esm/chart/polar/polar-transformer.js.map +1 -1
  368. package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
  369. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  370. package/esm/chart/progress/circular/circular-progress-transformer.js +2 -1
  371. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  372. package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
  373. package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  374. package/esm/chart/radar/radar-transformer.js +3 -2
  375. package/esm/chart/radar/radar-transformer.js.map +1 -1
  376. package/esm/chart/range-area/range-area-transformer.js +2 -2
  377. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  378. package/esm/chart/rose/rose-transformer.js +2 -1
  379. package/esm/chart/rose/rose-transformer.js.map +1 -1
  380. package/esm/chart/util.d.ts +4 -1
  381. package/esm/chart/util.js +34 -1
  382. package/esm/chart/util.js.map +1 -1
  383. package/esm/chart/waterfall/waterfall-transformer.js +2 -1
  384. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  385. package/esm/compile/compiler.d.ts +2 -0
  386. package/esm/compile/compiler.js +69 -47
  387. package/esm/compile/compiler.js.map +1 -1
  388. package/esm/compile/data/compilable-data.d.ts +1 -1
  389. package/esm/compile/data/compilable-data.js +1 -1
  390. package/esm/compile/data/compilable-data.js.map +1 -1
  391. package/esm/compile/grammar-item.d.ts +1 -1
  392. package/esm/compile/grammar-item.js.map +1 -1
  393. package/esm/compile/interface/compilable-item.d.ts +1 -1
  394. package/esm/compile/interface/compilable-item.js.map +1 -1
  395. package/esm/compile/interface/compiler.d.ts +2 -1
  396. package/esm/compile/interface/compiler.js.map +1 -1
  397. package/esm/compile/morph.js +2 -3
  398. package/esm/compile/morph.js.map +1 -1
  399. package/esm/compile/stage-app.d.ts +17 -0
  400. package/esm/compile/stage-app.js +77 -0
  401. package/esm/compile/stage-app.js.map +1 -0
  402. package/esm/component/axis/base-axis.d.ts +3 -8
  403. package/esm/component/axis/base-axis.js +27 -6
  404. package/esm/component/axis/base-axis.js.map +1 -1
  405. package/esm/component/axis/cartesian/band-axis.d.ts +1 -7
  406. package/esm/component/axis/cartesian/band-axis.js +4 -2
  407. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  408. package/esm/component/axis/cartesian/linear-axis.d.ts +1 -1
  409. package/esm/component/axis/cartesian/linear-axis.js +5 -1
  410. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  411. package/esm/component/axis/mixin/linear-axis-mixin.js +7 -10
  412. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  413. package/esm/component/axis/polar/band-axis.d.ts +2 -0
  414. package/esm/component/axis/polar/band-axis.js +3 -0
  415. package/esm/component/axis/polar/band-axis.js.map +1 -1
  416. package/esm/component/axis/polar/linear-axis.js +3 -0
  417. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  418. package/esm/component/base/base-component.d.ts +7 -7
  419. package/esm/component/base/base-component.js +41 -5
  420. package/esm/component/base/base-component.js.map +1 -1
  421. package/esm/component/base/release-vrender-component.d.ts +10 -0
  422. package/esm/component/base/release-vrender-component.js +24 -0
  423. package/esm/component/base/release-vrender-component.js.map +1 -0
  424. package/esm/component/brush/brush.d.ts +3 -7
  425. package/esm/component/brush/brush.js +29 -11
  426. package/esm/component/brush/brush.js.map +1 -1
  427. package/esm/component/crosshair/base.d.ts +5 -8
  428. package/esm/component/crosshair/base.js +27 -3
  429. package/esm/component/crosshair/base.js.map +1 -1
  430. package/esm/component/crosshair/cartesian.js +3 -1
  431. package/esm/component/crosshair/cartesian.js.map +1 -1
  432. package/esm/component/custom-mark/custom-mark.d.ts +4 -7
  433. package/esm/component/custom-mark/custom-mark.js +27 -2
  434. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  435. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -7
  436. package/esm/component/data-zoom/data-filter-base-component.js +14 -2
  437. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  438. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  439. package/esm/component/data-zoom/data-zoom/data-zoom.js +20 -0
  440. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  441. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  442. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
  443. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  444. package/esm/component/geo/geo-coordinate.d.ts +1 -7
  445. package/esm/component/indicator/indicator.d.ts +1 -0
  446. package/esm/component/indicator/indicator.js +11 -2
  447. package/esm/component/indicator/indicator.js.map +1 -1
  448. package/esm/component/indicator/util.d.ts +4 -3
  449. package/esm/component/indicator/util.js +2 -2
  450. package/esm/component/indicator/util.js.map +1 -1
  451. package/esm/component/label/base-label.d.ts +1 -7
  452. package/esm/component/label/base-label.js +5 -1
  453. package/esm/component/label/base-label.js.map +1 -1
  454. package/esm/component/label/label.js +2 -2
  455. package/esm/component/label/label.js.map +1 -1
  456. package/esm/component/legend/base-legend.d.ts +2 -7
  457. package/esm/component/legend/base-legend.js +20 -2
  458. package/esm/component/legend/base-legend.js.map +1 -1
  459. package/esm/component/legend/discrete/legend.d.ts +1 -1
  460. package/esm/component/legend/discrete/legend.js +2 -2
  461. package/esm/component/legend/discrete/legend.js.map +1 -1
  462. package/esm/component/marker/base-marker.d.ts +14 -7
  463. package/esm/component/marker/base-marker.js +113 -11
  464. package/esm/component/marker/base-marker.js.map +1 -1
  465. package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
  466. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  467. package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
  468. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  469. package/esm/component/marker/mark-line/base-mark-line.js +2 -4
  470. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  471. package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
  472. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  473. package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
  474. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  475. package/esm/component/marker/mark-point/base-mark-point.js +24 -11
  476. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  477. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  478. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  479. package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
  480. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  481. package/esm/component/marker/utils.d.ts +4 -4
  482. package/esm/component/marker/utils.js +27 -23
  483. package/esm/component/marker/utils.js.map +1 -1
  484. package/esm/component/player/player.d.ts +1 -0
  485. package/esm/component/player/player.js +10 -0
  486. package/esm/component/player/player.js.map +1 -1
  487. package/esm/component/title/title.d.ts +1 -7
  488. package/esm/component/title/title.js +6 -2
  489. package/esm/component/title/title.js.map +1 -1
  490. package/esm/component/tooltip/tooltip.d.ts +1 -0
  491. package/esm/component/tooltip/tooltip.js +9 -1
  492. package/esm/component/tooltip/tooltip.js.map +1 -1
  493. package/esm/component/util.js +2 -1
  494. package/esm/constant/correlation.js +1 -2
  495. package/esm/constant/marker.js +1 -1
  496. package/esm/constant/polar.js +1 -1
  497. package/esm/constant/scatter.js +1 -1
  498. package/esm/constant/scroll-bar.js +2 -1
  499. package/esm/constant/sunburst.js +1 -1
  500. package/esm/constant/waterfall.js +1 -1
  501. package/esm/constant/word-cloud.js +1 -1
  502. package/esm/core/expression-function.js +1 -2
  503. package/esm/core/index.d.ts +2 -1
  504. package/esm/core/index.js +3 -1
  505. package/esm/core/index.js.map +1 -1
  506. package/esm/core/interface.js +1 -1
  507. package/esm/core/util.js +1 -1
  508. package/esm/core/vchart.d.ts +5 -1
  509. package/esm/core/vchart.js +39 -21
  510. package/esm/core/vchart.js.map +1 -1
  511. package/esm/data/data-view-utils.d.ts +5 -0
  512. package/esm/data/data-view-utils.js +46 -0
  513. package/esm/data/data-view-utils.js.map +1 -0
  514. package/esm/data/transforms/box-plot.d.ts +4 -1
  515. package/esm/data/transforms/box-plot.js +4 -4
  516. package/esm/data/transforms/box-plot.js.map +1 -1
  517. package/esm/data/transforms/correlation-center.d.ts +11 -4
  518. package/esm/data/transforms/correlation-center.js +4 -2
  519. package/esm/data/transforms/correlation-center.js.map +1 -1
  520. package/esm/data/transforms/correlation.d.ts +18 -15
  521. package/esm/data/transforms/correlation.js +13 -8
  522. package/esm/data/transforms/correlation.js.map +1 -1
  523. package/esm/data/transforms/funnel.d.ts +10 -8
  524. package/esm/data/transforms/funnel.js +5 -3
  525. package/esm/data/transforms/funnel.js.map +1 -1
  526. package/esm/data/transforms/lookup.d.ts +3 -3
  527. package/esm/data/transforms/lookup.js +12 -6
  528. package/esm/data/transforms/lookup.js.map +1 -1
  529. package/esm/data/transforms/map.d.ts +8 -2
  530. package/esm/data/transforms/map.js +11 -6
  531. package/esm/data/transforms/map.js.map +1 -1
  532. package/esm/data/transforms/sankey.d.ts +12 -4
  533. package/esm/data/transforms/sankey.js +19 -14
  534. package/esm/data/transforms/sankey.js.map +1 -1
  535. package/esm/data/transforms/stack-split.d.ts +2 -1
  536. package/esm/data/transforms/stack-split.js +2 -2
  537. package/esm/data/transforms/stack-split.js.map +1 -1
  538. package/esm/data/transforms/treemap.d.ts +5 -3
  539. package/esm/data/transforms/treemap.js +8 -5
  540. package/esm/data/transforms/treemap.js.map +1 -1
  541. package/esm/data/transforms/venn.d.ts +4 -2
  542. package/esm/data/transforms/venn.js +5 -3
  543. package/esm/data/transforms/venn.js.map +1 -1
  544. package/esm/data/transforms/waterfall.d.ts +4 -2
  545. package/esm/data/transforms/waterfall.js +7 -8
  546. package/esm/data/transforms/waterfall.js.map +1 -1
  547. package/esm/env/env.js +2 -2
  548. package/esm/env/env.js.map +1 -1
  549. package/esm/env/index.js +1 -1
  550. package/esm/event/event.d.ts +4 -0
  551. package/esm/event/event.js +26 -7
  552. package/esm/event/event.js.map +1 -1
  553. package/esm/interaction/interaction.js +10 -8
  554. package/esm/interaction/interaction.js.map +1 -1
  555. package/esm/interaction/triggers/element-active-by-legend.js +3 -1
  556. package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
  557. package/esm/interaction/triggers/element-active.js +4 -2
  558. package/esm/interaction/triggers/element-active.js.map +1 -1
  559. package/esm/interaction/triggers/element-highlight-by-group.js +4 -1
  560. package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
  561. package/esm/interaction/triggers/element-highlight-by-legend.js +3 -1
  562. package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  563. package/esm/interaction/triggers/element-highlight-by-name.js +3 -1
  564. package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
  565. package/esm/interaction/triggers/element-highlight.js +3 -1
  566. package/esm/interaction/triggers/element-highlight.js.map +1 -1
  567. package/esm/interaction/triggers/element-select.js +4 -2
  568. package/esm/interaction/triggers/element-select.js.map +1 -1
  569. package/esm/mark/arc.js +4 -2
  570. package/esm/mark/arc.js.map +1 -1
  571. package/esm/mark/area.js +6 -2
  572. package/esm/mark/area.js.map +1 -1
  573. package/esm/mark/base/base-mark.d.ts +12 -2
  574. package/esm/mark/base/base-mark.js +99 -28
  575. package/esm/mark/base/base-mark.js.map +1 -1
  576. package/esm/mark/component.d.ts +9 -0
  577. package/esm/mark/component.js +51 -2
  578. package/esm/mark/component.js.map +1 -1
  579. package/esm/mark/glyph.js +1 -1
  580. package/esm/mark/glyph.js.map +1 -1
  581. package/esm/mark/group.js +6 -5
  582. package/esm/mark/group.js.map +1 -1
  583. package/esm/mark/interface/common.js.map +1 -1
  584. package/esm/mark/interface/mark.d.ts +2 -0
  585. package/esm/mark/interface/mark.js.map +1 -1
  586. package/esm/mark/line.js +6 -2
  587. package/esm/mark/line.js.map +1 -1
  588. package/esm/mark/rect.js +4 -2
  589. package/esm/mark/rect.js.map +1 -1
  590. package/esm/mark/symbol.js +4 -2
  591. package/esm/mark/symbol.js.map +1 -1
  592. package/esm/mark/text.js +5 -1
  593. package/esm/mark/text.js.map +1 -1
  594. package/esm/mark/utils/glyph.js +3 -1
  595. package/esm/mark/utils/glyph.js.map +1 -1
  596. package/esm/model/base-model.d.ts +3 -15
  597. package/esm/model/base-model.js.map +1 -1
  598. package/esm/model/interface.d.ts +13 -0
  599. package/esm/model/interface.js.map +1 -1
  600. package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
  601. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  602. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  603. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js +1 -1
  604. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  605. package/esm/plugin/other.js +2 -2
  606. package/esm/plugin/other.js.map +1 -1
  607. package/esm/region/region.d.ts +1 -7
  608. package/esm/scale/color-ordinal-scale.d.ts +1 -0
  609. package/esm/scale/color-ordinal-scale.js +3 -0
  610. package/esm/scale/color-ordinal-scale.js.map +1 -1
  611. package/esm/scale/global-scale.js +9 -1
  612. package/esm/scale/global-scale.js.map +1 -1
  613. package/esm/series/area/area.d.ts +2 -0
  614. package/esm/series/area/area.js +7 -1
  615. package/esm/series/area/area.js.map +1 -1
  616. package/esm/series/bar/bar.d.ts +3 -0
  617. package/esm/series/bar/bar.js +30 -4
  618. package/esm/series/bar/bar.js.map +1 -1
  619. package/esm/series/base/base-series.d.ts +11 -7
  620. package/esm/series/base/base-series.js +89 -21
  621. package/esm/series/base/base-series.js.map +1 -1
  622. package/esm/series/base/constant.d.ts +3 -0
  623. package/esm/series/base/constant.js +10 -0
  624. package/esm/series/base/constant.js.map +1 -1
  625. package/esm/series/box-plot/box-plot.d.ts +2 -0
  626. package/esm/series/box-plot/box-plot.js +15 -4
  627. package/esm/series/box-plot/box-plot.js.map +1 -1
  628. package/esm/series/correlation/correlation.js +13 -11
  629. package/esm/series/correlation/correlation.js.map +1 -1
  630. package/esm/series/dot/dot.d.ts +12 -0
  631. package/esm/series/dot/dot.js +17 -0
  632. package/esm/series/dot/dot.js.map +1 -1
  633. package/esm/series/funnel/funnel.js +5 -8
  634. package/esm/series/funnel/funnel.js.map +1 -1
  635. package/esm/series/heatmap/heatmap.d.ts +2 -0
  636. package/esm/series/heatmap/heatmap.js +10 -0
  637. package/esm/series/heatmap/heatmap.js.map +1 -1
  638. package/esm/series/line/line.d.ts +2 -0
  639. package/esm/series/line/line.js +10 -2
  640. package/esm/series/line/line.js.map +1 -1
  641. package/esm/series/map/map.js +3 -3
  642. package/esm/series/map/map.js.map +1 -1
  643. package/esm/series/mixin/line-mixin.d.ts +1 -0
  644. package/esm/series/mixin/line-mixin.js +5 -0
  645. package/esm/series/mixin/line-mixin.js.map +1 -1
  646. package/esm/series/pie/pie.d.ts +3 -7
  647. package/esm/series/pie/pie.js +17 -0
  648. package/esm/series/pie/pie.js.map +1 -1
  649. package/esm/series/polar/progress-like/progress-like.d.ts +2 -0
  650. package/esm/series/polar/progress-like/progress-like.js +17 -0
  651. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  652. package/esm/series/polar/rose-like/rose-like.d.ts +2 -0
  653. package/esm/series/polar/rose-like/rose-like.js +16 -0
  654. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  655. package/esm/series/progress/circular/circular.d.ts +2 -0
  656. package/esm/series/progress/circular/circular.js +11 -0
  657. package/esm/series/progress/circular/circular.js.map +1 -1
  658. package/esm/series/progress/linear/linear.d.ts +2 -0
  659. package/esm/series/progress/linear/linear.js +20 -0
  660. package/esm/series/progress/linear/linear.js.map +1 -1
  661. package/esm/series/sankey/sankey.js +60 -54
  662. package/esm/series/sankey/sankey.js.map +1 -1
  663. package/esm/series/scatter/scatter.d.ts +2 -0
  664. package/esm/series/scatter/scatter.js +10 -0
  665. package/esm/series/scatter/scatter.js.map +1 -1
  666. package/esm/series/treemap/treemap.js +23 -20
  667. package/esm/series/treemap/treemap.js.map +1 -1
  668. package/esm/series/venn/venn.js +2 -2
  669. package/esm/series/venn/venn.js.map +1 -1
  670. package/esm/series/waterfall/waterfall.d.ts +2 -0
  671. package/esm/series/waterfall/waterfall.js +36 -20
  672. package/esm/series/waterfall/waterfall.js.map +1 -1
  673. package/esm/series/word-cloud/animation.js +3 -0
  674. package/esm/series/word-cloud/animation.js.map +1 -1
  675. package/esm/theme/builtin/common/series/word-cloud.js +2 -6
  676. package/esm/theme/builtin/common/series/word-cloud.js.map +1 -1
  677. package/esm/util/graphic-state.d.ts +4 -0
  678. package/esm/util/graphic-state.js +30 -0
  679. package/esm/util/graphic-state.js.map +1 -0
  680. package/esm/util/mark.js +8 -2
  681. package/esm/util/mark.js.map +1 -1
  682. package/esm/util/math.d.ts +1 -1
  683. package/esm/util/math.js +1 -1
  684. package/esm/util/math.js.map +1 -1
  685. package/esm/util/text.js +1 -1
  686. package/esm/util/text.js.map +1 -1
  687. package/esm/vchart-line.d.ts +4 -0
  688. package/esm/vchart-line.js +28 -0
  689. package/esm/vchart-line.js.map +1 -0
  690. package/package.json +12 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { IChartSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, RegionSpec } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\nimport type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';\nimport { array } from '../../util';\nimport { getSpecInfo } from '../../component/util';\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (chartSpec.tooltip === undefined) {\n chartSpec.tooltip = {};\n }\n // 堆积逆序\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);\n });\n }\n // 堆积排序\n if (isValid(chartSpec.stackSort)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackSort) && (r.stackSort = chartSpec.stackSort);\n });\n }\n }\n\n generateTransform(chartSpec: T, isRuntime?: boolean) {\n return (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n const chartSpecInfoValue = {\n ...specInfo,\n ...transformResult\n };\n if (isRuntime) {\n chartSpecInfoValue.theme = transformer.getTheme(spec, chartSpec);\n } else {\n setProperty(chartSpec, specPath, transformResult.spec);\n }\n setProperty(chartSpecInfo, specInfoPath ?? specPath, chartSpecInfoValue);\n };\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n return this.createSpecInfo(chartSpec, this.generateTransform(chartSpec, false));\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = this.generateTransform(chartSpec, true);\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any, pickKeys?: string[], pickKeys2?: string[]) {\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.globalInstance?.isAnimationEnable(),\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.('animationThreshold'),\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n animationState: chartSpec.animationState,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n\n const seriesType = this.seriesType;\n if (seriesType) {\n series.type = seriesType;\n series[seriesType] = (chartSpec as any)[seriesType];\n }\n\n if (pickKeys && pickKeys.length) {\n pickKeys.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n if (pickKeys2 && pickKeys2.length) {\n pickKeys2.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as RegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let tooltip: IComponentConstructor;\n const otherComponents = [];\n\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || (chartSpec as any)[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.tooltip) {\n tooltip = cmp;\n } else {\n otherComponents.push(components[index]);\n }\n }\n }\n\n // NOTE: 坐标轴组件需要在其他组件之前创建\n let hasInitAxis = false;\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n otherComponents.sort((a, b) => {\n return a.createOrder - b.createOrder;\n });\n\n otherComponents.forEach(({ cmp: C }) => {\n (C.getSpecInfo ? C.getSpecInfo(chartSpec, chartSpecInfo) : getSpecInfo(chartSpec, C.specKey, C.type))?.forEach(\n info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n }\n );\n });\n\n // NOTE: tooltip 组件需要在 crosshair 组件之后创建\n if (tooltip) {\n getSpecInfo(chartSpec, tooltip.specKey, tooltip.type)?.forEach(info => {\n results.push(callbackfn(tooltip, info, chartSpecInfo));\n });\n }\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n (s as any)[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n\n protected _findBandAxisBySeries(seriesSpec: ISeriesSpec, seriesIndex: number, axesSpec: any) {\n const isHorizontal = (seriesSpec as any)?.direction === 'horizontal';\n const matchOrient = isHorizontal ? ['left', 'right'] : ['top', 'bottom'];\n const targetBandAxis: any = axesSpec.find((axis: any) => {\n if (!matchOrient.includes(axis.orient)) {\n // orient必须匹配\n return false;\n }\n if (isValid(axis.seriesId)) {\n // 1. 通过seriesId绑定\n if (array(axis.seriesId).includes(seriesSpec?.id)) {\n return true;\n }\n } else if (isValid(axis.seriesIndex)) {\n // 2. 通过seriesIndex绑定\n if (array(axis.seriesIndex).includes(seriesIndex)) {\n return true;\n }\n } else if (axis.type === 'band') {\n // 3. 通过axis type识别\n return true;\n }\n // 4. 剩下的情况满足axis orient要求\n return true;\n });\n\n return targetBandAxis;\n }\n\n /**\n * @description bar chart 和 common chart支持autoBandsize, 此方法用于识别barWidth配置后应用到轴上\n * */\n protected _applyAxisBandSize(\n axis: ICartesianBandAxisSpec,\n extend: number,\n barWidthSpec: {\n barMaxWidth: number | string;\n barMinWidth: number | string;\n barWidth: number | string;\n barGapInGroup: number | string | (number | string)[];\n }\n ) {\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = barWidthSpec;\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n axis.minBandSize = barMinWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n axis.minBandSize = barWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n axis.minBandSize = barMaxWidth as number;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n axis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n axis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[(barGapInGroup as any[]).length - 1] : barGapInGroup\n };\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { IChartSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, RegionSpec } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\nimport type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';\nimport { array } from '../../util';\nimport { getSpecInfo } from '../../component/util';\n\nconst DEFAULT_SERIES_RELATED_CHART_SPEC_KEYS: Record<string, true> = {\n series: true,\n label: true,\n animationAppear: true,\n animationEnter: true,\n animationUpdate: true,\n animationExit: true,\n animationNormal: true\n};\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n protected _seriesRelatedSpecKeys: Record<string, true> = { ...DEFAULT_SERIES_RELATED_CHART_SPEC_KEYS };\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (chartSpec.tooltip === undefined) {\n chartSpec.tooltip = {};\n }\n // 堆积逆序\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);\n });\n }\n // 堆积排序\n if (isValid(chartSpec.stackSort)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackSort) && (r.stackSort = chartSpec.stackSort);\n });\n }\n }\n\n generateTransform(chartSpec: T, isRuntime?: boolean) {\n return (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n const chartSpecInfoValue = {\n ...specInfo,\n ...transformResult\n };\n if (isRuntime) {\n chartSpecInfoValue.theme = transformer.getTheme(spec, chartSpec);\n } else {\n setProperty(chartSpec, specPath, transformResult.spec);\n }\n setProperty(chartSpecInfo, specInfoPath ?? specPath, chartSpecInfoValue);\n };\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n return this.createSpecInfo(chartSpec, this.generateTransform(chartSpec, false));\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = this.generateTransform(chartSpec, true);\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n getSeriesRelatedSpecKeys(): Record<string, true> {\n return this._seriesRelatedSpecKeys;\n }\n\n protected _addSeriesRelatedSpecKeys(...keysList: Array<string[] | undefined>) {\n keysList.forEach(keys => {\n keys?.forEach(key => {\n this._seriesRelatedSpecKeys[key] = true;\n });\n });\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any, pickKeys?: string[], pickKeys2?: string[]) {\n this._addSeriesRelatedSpecKeys(pickKeys, pickKeys2);\n\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.globalInstance?.isAnimationEnable(),\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.('animationThreshold'),\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n animationState: chartSpec.animationState,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n\n const seriesType = this.seriesType;\n if (seriesType) {\n this._addSeriesRelatedSpecKeys([seriesType]);\n series.type = seriesType;\n series[seriesType] = (chartSpec as any)[seriesType];\n }\n\n if (pickKeys && pickKeys.length) {\n pickKeys.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n if (pickKeys2 && pickKeys2.length) {\n pickKeys2.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as RegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let tooltip: IComponentConstructor;\n const otherComponents = [];\n\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || (chartSpec as any)[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.tooltip) {\n tooltip = cmp;\n } else {\n otherComponents.push(components[index]);\n }\n }\n }\n\n // NOTE: 坐标轴组件需要在其他组件之前创建\n let hasInitAxis = false;\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n otherComponents.sort((a, b) => {\n return a.createOrder - b.createOrder;\n });\n\n otherComponents.forEach(({ cmp: C }) => {\n (C.getSpecInfo ? C.getSpecInfo(chartSpec, chartSpecInfo) : getSpecInfo(chartSpec, C.specKey, C.type))?.forEach(\n info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n }\n );\n });\n\n // NOTE: tooltip 组件需要在 crosshair 组件之后创建\n if (tooltip) {\n getSpecInfo(chartSpec, tooltip.specKey, tooltip.type)?.forEach(info => {\n results.push(callbackfn(tooltip, info, chartSpecInfo));\n });\n }\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n (s as any)[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n\n protected _findBandAxisBySeries(seriesSpec: ISeriesSpec, seriesIndex: number, axesSpec: any) {\n const isHorizontal = (seriesSpec as any)?.direction === 'horizontal';\n const matchOrient = isHorizontal ? ['left', 'right'] : ['top', 'bottom'];\n const targetBandAxis: any = axesSpec.find((axis: any) => {\n if (!matchOrient.includes(axis.orient)) {\n // orient必须匹配\n return false;\n }\n if (isValid(axis.seriesId)) {\n // 1. 通过seriesId绑定\n if (array(axis.seriesId).includes(seriesSpec?.id)) {\n return true;\n }\n } else if (isValid(axis.seriesIndex)) {\n // 2. 通过seriesIndex绑定\n if (array(axis.seriesIndex).includes(seriesIndex)) {\n return true;\n }\n } else if (axis.type === 'band') {\n // 3. 通过axis type识别\n return true;\n }\n // 4. 剩下的情况满足axis orient要求\n return true;\n });\n\n return targetBandAxis;\n }\n\n /**\n * @description bar chart 和 common chart支持autoBandsize, 此方法用于识别barWidth配置后应用到轴上\n * */\n protected _applyAxisBandSize(\n axis: ICartesianBandAxisSpec,\n extend: number,\n barWidthSpec: {\n barMaxWidth: number | string;\n barMinWidth: number | string;\n barWidth: number | string;\n barGapInGroup: number | string | (number | string)[];\n }\n ) {\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = barWidthSpec;\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n axis.minBandSize = barMinWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n axis.minBandSize = barWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n axis.minBandSize = barMaxWidth as number;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n axis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n axis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[(barGapInGroup as any[]).length - 1] : barGapInGroup\n };\n }\n }\n}\n"]}
@@ -30,6 +30,7 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
30
30
  protected _regions: IRegion[];
31
31
  protected _series: ISeries[];
32
32
  protected _components: IComponent[];
33
+ protected _specTransformer: Maybe<IChartSpecTransformer>;
33
34
  protected _layoutFunc: LayoutCallBack;
34
35
  protected _layoutRect: IRect;
35
36
  getLayoutRect(): IRect;
@@ -118,17 +119,34 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
118
119
  updateGlobalScale(result: IUpdateSpecResult): void;
119
120
  updateGlobalScaleTheme(): void;
120
121
  private _getSpecKeys;
121
- updateSpec(spec: T): {
122
- change: boolean;
123
- reMake: boolean;
124
- reRender: boolean;
125
- reSize: boolean;
126
- reCompile: boolean;
127
- };
122
+ private _isSeriesRelatedSpecKey;
123
+ private _canChangeSpecKeysWithoutRemake;
124
+ updateSpec(spec: T): IUpdateSpecResult;
128
125
  updateChartConfig(result: IUpdateSpecResult, oldSpec: IChartSpec): void;
129
126
  updateDataSpec(): void;
130
127
  updateRegionSpec(result: IUpdateSpecResult): void;
131
- updateComponentSpec(result: IUpdateSpecResult): void;
128
+ updateComponentSpec(result: IUpdateSpecResult): {
129
+ componentOnlyUpdatedComponents: IComponent[];
130
+ hasNonComponentOnlyUpdate: boolean;
131
+ };
132
+ private _canChangeMarkerComponentsWithoutRemake;
133
+ private _canAddMarkerComponentsWithoutRemake;
134
+ private _isMarkerAdditionSpecSafeWithoutRemake;
135
+ private _isAutoRangeMarkerSpec;
136
+ private _canRemoveMarkerComponentsWithoutRemake;
137
+ private _isOnlyMarkerComponentsRemoved;
138
+ private _isComponentSpecKey;
139
+ private _isOnlyComponentSpecsChanged;
140
+ private _isOnlySeriesSpecsChanged;
141
+ private _isOnlyComponentOrSeriesSpecsChanged;
142
+ private _canSkipChartDataStages;
143
+ private _isComponentScaleDomainOnlyUpdate;
144
+ private _reRunStackDataFlow;
145
+ private _getModelSpecIndex;
146
+ private _hasComponentForSpecInfo;
147
+ private _createMissingMarkerComponentsForSpecs;
148
+ private _removeMarkerComponentsForEmptySpecs;
149
+ private _removeComponent;
132
150
  updateSeriesSpec(result: IUpdateSpecResult): void;
133
151
  getCanvas(): HTMLCanvasElement;
134
152
  private _updateLayoutRect;
@@ -142,7 +160,7 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
142
160
  compileRegions(): void;
143
161
  compileSeries(): void;
144
162
  compileComponents(): void;
145
- release(): void;
163
+ release(forceReleaseVRenderComponents?: boolean): void;
146
164
  onLayout(): void;
147
165
  updateState(state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>, filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean): void;
148
166
  setSelected(datum: MaybeArray<any> | null, filter?: (series: ISeries, mark: IMark) => boolean, region?: IRegionQuerier): void;
@@ -38,7 +38,7 @@ import { ChartEvent, HOOK_EVENT } from "../../constant/event";
38
38
 
39
39
  import { DimensionEventEnum } from "../../event/events/dimension/interface";
40
40
 
41
- import { calculateChartSize, mergeUpdateResult } from "../util";
41
+ import { calculateChartSize, isUpdateSpecResultComponentOnly, isUpdateSpecResultLocalOnly, mergeUpdateResult } from "../util";
42
42
 
43
43
  import { isDiscrete } from "@visactor/vscale";
44
44
 
@@ -50,6 +50,19 @@ import { Interaction } from "../../interaction/interaction";
50
50
 
51
51
  import { animationConfig, userAnimationConfig } from "../../animation/utils";
52
52
 
53
+ const MARKER_COMPONENT_SPEC_KEYS = {
54
+ [ComponentTypeEnum.markPoint]: !0,
55
+ [ComponentTypeEnum.markLine]: !0,
56
+ [ComponentTypeEnum.markArea]: !0
57
+ }, MARKER_ADDITION_REMAKE_SPEC_KEYS = {
58
+ regionId: !0,
59
+ regionIndex: !0,
60
+ seriesId: !0,
61
+ seriesIndex: !0,
62
+ specifiedDataSeriesId: !0,
63
+ specifiedDataSeriesIndex: !0
64
+ };
65
+
53
66
  export class BaseChart extends CompilableBase {
54
67
  getSpec() {
55
68
  return this._spec;
@@ -94,7 +107,7 @@ export class BaseChart extends CompilableBase {
94
107
  constructor(spec, option) {
95
108
  var _a, _b, _c, _d;
96
109
  super(option), this.type = "chart", this.id = createID(), this._regions = [], this._series = [],
97
- this._components = [], this._layoutRect = {
110
+ this._components = [], this._specTransformer = null, this._layoutRect = {
98
111
  x: 0,
99
112
  y: 0,
100
113
  width: DEFAULT_CHART_WIDTH,
@@ -136,7 +149,11 @@ export class BaseChart extends CompilableBase {
136
149
  const component = this._components.find((s => s.userId === userId));
137
150
  if (component) return component;
138
151
  }, this.getComponentsByType = type => this._components.filter((c => c.type === type)),
139
- this._paddingSpec = normalizeLayoutPaddingSpec(null !== (_a = spec.padding) && void 0 !== _a ? _a : option.getTheme("padding")),
152
+ this._isMarkerAdditionSpecSafeWithoutRemake = spec => {
153
+ if (!spec || "object" != typeof spec) return !1;
154
+ const markerSpec = spec;
155
+ return !1 !== markerSpec.visible && !Object.keys(MARKER_ADDITION_REMAKE_SPEC_KEYS).some((key => !isNil(markerSpec[key])));
156
+ }, this._paddingSpec = normalizeLayoutPaddingSpec(null !== (_a = spec.padding) && void 0 !== _a ? _a : option.getTheme("padding")),
140
157
  this._event = new Event(option.eventDispatcher, option.mode), this._dataSet = option.dataSet,
141
158
  this._chartData = new ChartData(this._dataSet), this._modelOption = Object.assign(Object.assign({}, option), {
142
159
  mode: this._option.mode,
@@ -153,8 +170,8 @@ export class BaseChart extends CompilableBase {
153
170
  }), this._setModelOption && this._setModelOption(), this._spec = spec;
154
171
  }
155
172
  created(transformer) {
156
- this._chartData.parseData(this._spec.data), this._createGlobalScale(), this._createBackground(),
157
- this._createLayout(), transformer.forEachRegionInSpec(this._spec, this._createRegion.bind(this)),
173
+ this._specTransformer = transformer, this._chartData.parseData(this._spec.data),
174
+ this._createGlobalScale(), this._createBackground(), this._createLayout(), transformer.forEachRegionInSpec(this._spec, this._createRegion.bind(this)),
158
175
  transformer.forEachSeriesInSpec(this._spec, this._createSeries.bind(this)), transformer.forEachComponentInSpec(this._spec, this._createComponent.bind(this), this._option.getSpecInfo());
159
176
  }
160
177
  _initInteractions() {
@@ -446,11 +463,22 @@ export class BaseChart extends CompilableBase {
446
463
  _getSpecKeys(spec) {
447
464
  const ignoreKeys = {
448
465
  width: !0,
449
- height: !0
466
+ height: !0,
467
+ xField: !0,
468
+ yField: !0
450
469
  };
451
470
  return Object.keys(spec).filter((key => !ignoreKeys[key])).sort();
452
471
  }
472
+ _isSeriesRelatedSpecKey(key) {
473
+ var _a, _b;
474
+ return !!(null === (_b = null === (_a = this._specTransformer) || void 0 === _a ? void 0 : _a.getSeriesRelatedSpecKeys()) || void 0 === _b ? void 0 : _b[key]);
475
+ }
476
+ _canChangeSpecKeysWithoutRemake(currentKeys, nextKeys) {
477
+ const currentKeySet = new Set(currentKeys), nextKeySet = new Set(nextKeys), changedKeys = [ ...currentKeys.filter((key => !nextKeySet.has(key))), ...nextKeys.filter((key => !currentKeySet.has(key))) ];
478
+ return changedKeys.length > 0 && changedKeys.every((key => this._isSeriesRelatedSpecKey(key)));
479
+ }
453
480
  updateSpec(spec) {
481
+ var _a, _b;
454
482
  const result = {
455
483
  change: !1,
456
484
  reMake: !1,
@@ -458,20 +486,35 @@ export class BaseChart extends CompilableBase {
458
486
  reSize: !1,
459
487
  reCompile: !1
460
488
  };
461
- if (this.setLayoutTag(!0, null, !1), spec.type !== this.type) return result.reMake = !0,
489
+ if (spec.type !== this.type) return result.reMake = !0, this.setLayoutTag(!0, null, !1),
462
490
  result;
463
491
  const currentKeys = this._getSpecKeys(this._spec), nextKeys = this._getSpecKeys(spec);
464
- if (!isEqual(currentKeys, nextKeys)) return result.reMake = !0, result;
465
- for (let i = 0; i < currentKeys.length; i++) {
466
- const key = currentKeys[i];
467
- if (isArray(this._spec[key]) && this._spec[key].length !== array(spec[key]).length) return result.reMake = !0,
468
- result;
492
+ if (!isEqual(currentKeys, nextKeys) && !this._canChangeSpecKeysWithoutRemake(currentKeys, nextKeys)) return result.reMake = !0,
493
+ this.setLayoutTag(!0, null, !1), result;
494
+ const specKeys = Array.from(new Set([ ...currentKeys, ...nextKeys ])).sort();
495
+ for (let i = 0; i < specKeys.length; i++) {
496
+ const key = specKeys[i], currentSpec = this._spec[key], nextSpec = spec[key];
497
+ if (isArray(currentSpec) && currentSpec.length !== array(nextSpec).length && !this._canChangeMarkerComponentsWithoutRemake(key, currentSpec, nextSpec)) return result.reMake = !0,
498
+ this.setLayoutTag(!0, null, !1), result;
469
499
  }
470
- const oldSpec = this._spec;
471
- return this._spec = spec, this.updateChartConfig(result, oldSpec), result.reMake ? result : (this.updateGlobalScale(result),
472
- result.reMake ? result : (this.updateRegionSpec(result), result.reMake ? result : (this.updateComponentSpec(result),
473
- result.reMake ? result : (this.updateSeriesSpec(result), result.reMake || (this.reInit(),
474
- this.updateDataSpec(), this.updateGlobalScaleDomain()), result))));
500
+ const oldSpec = this._spec, onlyMarkerComponentsRemoved = this._isOnlyMarkerComponentsRemoved(this._spec, spec, specKeys), onlyComponentSpecsChanged = this._isOnlyComponentSpecsChanged(this._spec, spec, specKeys), onlySeriesSpecsChanged = this._isOnlySeriesSpecsChanged(this._spec, spec, specKeys), onlyComponentOrSeriesSpecsChanged = !(!onlyComponentSpecsChanged && !onlySeriesSpecsChanged) || this._isOnlyComponentOrSeriesSpecsChanged(this._spec, spec, specKeys);
501
+ if (this._spec = spec, onlyMarkerComponentsRemoved) return this._removeMarkerComponentsForEmptySpecs(result),
502
+ result;
503
+ if (this.updateChartConfig(result, oldSpec), result.reMake) return this.setLayoutTag(!0, null, !1),
504
+ result;
505
+ if (this.updateGlobalScale(result), result.reMake) return this.setLayoutTag(!0, null, !1),
506
+ result;
507
+ if (this.updateRegionSpec(result), result.reMake) return this.setLayoutTag(!0, null, !1),
508
+ result;
509
+ const componentUpdateResult = this.updateComponentSpec(result);
510
+ return result.reMake ? (this.setLayoutTag(!0, null, !1), result) : (!onlyComponentSpecsChanged && (null === (_a = result.effects) || void 0 === _a ? void 0 : _a.localOnly) && delete result.effects.localOnly,
511
+ isUpdateSpecResultLocalOnly(result) ? result : onlyComponentSpecsChanged && !componentUpdateResult.hasNonComponentOnlyUpdate && (isUpdateSpecResultComponentOnly(result) || this._isComponentScaleDomainOnlyUpdate(result)) ? (componentUpdateResult.componentOnlyUpdatedComponents.forEach((component => {
512
+ component.reInit(component.getSpec());
513
+ })), (null === (_b = result.effects) || void 0 === _b ? void 0 : _b.layout) && this.setLayoutTag(!0, null, !1),
514
+ result) : (this.setLayoutTag(!0, null, !1), this.updateSeriesSpec(result), result.reMake || (this.reInit(),
515
+ onlyComponentOrSeriesSpecsChanged && this._canSkipChartDataStages(result) || (this.updateDataSpec(),
516
+ this.reDataFlow(), this._reRunStackDataFlow(), this.getAllModels().forEach((model => model.onDataUpdate())))),
517
+ result));
475
518
  }
476
519
  updateChartConfig(result, oldSpec) {
477
520
  var _a, _b;
@@ -488,33 +531,165 @@ export class BaseChart extends CompilableBase {
488
531
  })) : result.reMake = !0);
489
532
  }
490
533
  updateComponentSpec(result) {
534
+ const componentOnlyUpdatedComponents = [];
535
+ let hasNonComponentOnlyUpdate = !1;
491
536
  const componentCache = {}, checkVisibleComponents = {
492
537
  [ComponentTypeEnum.title]: !0,
493
538
  [ComponentTypeEnum.brush]: !0,
494
539
  [ComponentTypeEnum.indicator]: !0
495
- };
540
+ }, removedComponents = [];
541
+ let hasNonLocalComponentRemoval = !1;
496
542
  this._components.forEach((c => {
497
543
  var _a, _b;
498
- if (c.type === ComponentTypeEnum.label || c.type === ComponentTypeEnum.totalLabel) return;
544
+ if (c.type === ComponentTypeEnum.label || c.type === ComponentTypeEnum.totalLabel) return void (c.getSpecInfo() || (removedComponents.push(c),
545
+ hasNonLocalComponentRemoval = !0, hasNonComponentOnlyUpdate = !0));
499
546
  checkVisibleComponents[c.type] && (checkVisibleComponents[c.type] = !1);
500
547
  const compSpecKey = c.specKey || c.type, cmpSpec = null !== (_a = this._spec[compSpecKey]) && void 0 !== _a ? _a : {};
501
- isArray(cmpSpec) ? (componentCache[compSpecKey] = componentCache[compSpecKey] || {
502
- specCount: cmpSpec.length,
503
- componentCount: 0
504
- }, componentCache[compSpecKey].componentCount++, mergeUpdateResult(result, c.updateSpec(null !== (_b = cmpSpec[c.getSpecIndex()]) && void 0 !== _b ? _b : {}, cmpSpec))) : mergeUpdateResult(result, c.updateSpec(cmpSpec));
505
- }));
548
+ if (isArray(cmpSpec)) {
549
+ if (componentCache[compSpecKey] = componentCache[compSpecKey] || {
550
+ specCount: cmpSpec.length,
551
+ componentCount: 0
552
+ }, this._canRemoveMarkerComponentsWithoutRemake(compSpecKey, [ c.getSpec() ], cmpSpec)) return void removedComponents.push(c);
553
+ componentCache[compSpecKey].componentCount++;
554
+ const componentSpec = null !== (_b = cmpSpec[c.getSpecIndex()]) && void 0 !== _b ? _b : {}, previousComponentSpec = c.getSpec(), componentResult = c.updateSpec(componentSpec, cmpSpec);
555
+ isUpdateSpecResultComponentOnly(componentResult) || this._isComponentScaleDomainOnlyUpdate(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, componentSpec) || (hasNonComponentOnlyUpdate = !0),
556
+ mergeUpdateResult(result, componentResult);
557
+ } else {
558
+ const previousComponentSpec = c.getSpec(), componentResult = c.updateSpec(cmpSpec);
559
+ isUpdateSpecResultComponentOnly(componentResult) || this._isComponentScaleDomainOnlyUpdate(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, cmpSpec) || (hasNonComponentOnlyUpdate = !0),
560
+ mergeUpdateResult(result, componentResult);
561
+ }
562
+ })), result.reMake || this._createMissingMarkerComponentsForSpecs(result, componentCache);
506
563
  for (const key in componentCache) if (Object.prototype.hasOwnProperty.call(componentCache, key)) {
507
564
  const element = componentCache[key];
508
565
  element.componentCount !== element.specCount && (result.reMake = !0);
509
566
  }
567
+ removedComponents.length && (removedComponents.forEach((component => {
568
+ this._removeComponent(component);
569
+ })), result.change = !0, result.effects = Object.assign(Object.assign(Object.assign({}, result.effects), {
570
+ component: !0
571
+ }), hasNonLocalComponentRemoval ? {
572
+ layout: !0,
573
+ render: !0
574
+ } : {
575
+ localOnly: !0
576
+ }));
510
577
  const isVisible = compSpec => compSpec && !1 !== compSpec.visible;
511
- Object.keys(checkVisibleComponents).forEach((type => {
578
+ return Object.keys(checkVisibleComponents).forEach((type => {
512
579
  if (checkVisibleComponents[type]) {
513
580
  const compSpec = this._spec[type];
514
581
  (isArray(compSpec) ? compSpec.some(isVisible) : isVisible(compSpec)) && (result.reMake = !0);
515
582
  }
583
+ })), {
584
+ componentOnlyUpdatedComponents: componentOnlyUpdatedComponents,
585
+ hasNonComponentOnlyUpdate: hasNonComponentOnlyUpdate
586
+ };
587
+ }
588
+ _canChangeMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
589
+ return this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) || this._canAddMarkerComponentsWithoutRemake(key, currentSpec, nextSpec);
590
+ }
591
+ _canAddMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
592
+ return !!(MARKER_COMPONENT_SPEC_KEYS[key] && isArray(currentSpec) && isArray(nextSpec)) && (!(nextSpec.length <= currentSpec.length) && nextSpec.slice(currentSpec.length).every(this._isMarkerAdditionSpecSafeWithoutRemake));
593
+ }
594
+ _isAutoRangeMarkerSpec(spec) {
595
+ return !!spec && "object" == typeof spec && !0 === spec.autoRange;
596
+ }
597
+ _canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
598
+ return MARKER_COMPONENT_SPEC_KEYS[key] && isArray(currentSpec) && currentSpec.length > 0 && isArray(nextSpec) && 0 === nextSpec.length;
599
+ }
600
+ _isOnlyMarkerComponentsRemoved(currentSpec, nextSpec, specKeys) {
601
+ let hasMarkerRemoval = !1;
602
+ const onlyMarkerRemoval = specKeys.every((key => this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec[key], nextSpec[key]) ? (hasMarkerRemoval = !0,
603
+ !0) : isEqual(currentSpec[key], nextSpec[key])));
604
+ return hasMarkerRemoval && onlyMarkerRemoval;
605
+ }
606
+ _isComponentSpecKey(key) {
607
+ return !!MARKER_COMPONENT_SPEC_KEYS[key] || this._components.some((component => (component.specKey || component.type) === key));
608
+ }
609
+ _isOnlyComponentSpecsChanged(currentSpec, nextSpec, specKeys) {
610
+ let hasComponentSpecChange = !1;
611
+ const currentSpecRecord = currentSpec, nextSpecRecord = nextSpec, onlyComponentSpecChange = specKeys.every((key => !!isEqual(currentSpecRecord[key], nextSpecRecord[key]) || !!this._isComponentSpecKey(key) && (hasComponentSpecChange = !0,
612
+ !0)));
613
+ return hasComponentSpecChange && onlyComponentSpecChange;
614
+ }
615
+ _isOnlySeriesSpecsChanged(currentSpec, nextSpec, specKeys) {
616
+ var _a, _b;
617
+ let hasSeriesSpecChange = !1;
618
+ const currentSpecRecord = currentSpec, nextSpecRecord = nextSpec, seriesRelatedSpecKeys = null !== (_b = null === (_a = this._specTransformer) || void 0 === _a ? void 0 : _a.getSeriesRelatedSpecKeys()) && void 0 !== _b ? _b : {}, onlySeriesSpecChange = specKeys.every((key => !!isEqual(currentSpecRecord[key], nextSpecRecord[key]) || !!seriesRelatedSpecKeys[key] && (hasSeriesSpecChange = !0,
619
+ !0)));
620
+ return hasSeriesSpecChange && onlySeriesSpecChange;
621
+ }
622
+ _isOnlyComponentOrSeriesSpecsChanged(currentSpec, nextSpec, specKeys) {
623
+ var _a, _b;
624
+ let hasComponentOrSeriesSpecChange = !1;
625
+ const currentSpecRecord = currentSpec, nextSpecRecord = nextSpec, seriesRelatedSpecKeys = null !== (_b = null === (_a = this._specTransformer) || void 0 === _a ? void 0 : _a.getSeriesRelatedSpecKeys()) && void 0 !== _b ? _b : {}, onlyComponentOrSeriesSpecChange = specKeys.every((key => !!isEqual(currentSpecRecord[key], nextSpecRecord[key]) || !(!this._isComponentSpecKey(key) && !seriesRelatedSpecKeys[key]) && (hasComponentOrSeriesSpecChange = !0,
626
+ !0)));
627
+ return hasComponentOrSeriesSpecChange && onlyComponentOrSeriesSpecChange;
628
+ }
629
+ _canSkipChartDataStages(result) {
630
+ const effects = result.effects;
631
+ return !(!(null == effects ? void 0 : effects.series) || effects.remake || effects.data || effects.scaleDomain || result.reMake);
632
+ }
633
+ _isComponentScaleDomainOnlyUpdate(result) {
634
+ const effects = result.effects;
635
+ return !(!(null == effects ? void 0 : effects.component) || !effects.scaleDomain || result.reMake || result.reCompile || result.reSize || effects.remake || effects.compile || effects.data || effects.series || effects.animation || result.reTransformSpec || result.reAnimate || result.changeTheme || result.changeBackground);
636
+ }
637
+ _reRunStackDataFlow() {
638
+ var _a, _b;
639
+ this._series.some((series => {
640
+ var _a;
641
+ return null === (_a = series.getStack) || void 0 === _a ? void 0 : _a.call(series);
642
+ })) && (null === (_b = null === (_a = this._stack) || void 0 === _a ? void 0 : _a.stackAll) || void 0 === _b || _b.call(_a),
643
+ this._series.forEach((series => {
644
+ series.getViewDataFilter() && series.reTransformViewData();
645
+ })));
646
+ }
647
+ _getModelSpecIndex(specInfo) {
648
+ var _a;
649
+ const specPath = null !== (_a = specInfo.specPath) && void 0 !== _a ? _a : [], specIndex = specPath[specPath.length - 1];
650
+ return "number" == typeof specIndex ? specIndex : 0;
651
+ }
652
+ _hasComponentForSpecInfo(key, specInfo) {
653
+ const specIndex = this._getModelSpecIndex(specInfo);
654
+ return this._components.some((component => (component.specKey || component.type) === key && component.getSpecIndex() === specIndex));
655
+ }
656
+ _createMissingMarkerComponentsForSpecs(result, componentCache) {
657
+ var _a;
658
+ let createdCount = 0, hasAutoRangeMarker = !1;
659
+ null === (_a = this._specTransformer) || void 0 === _a || _a.forEachComponentInSpec(this._spec, ((constructor, specInfo) => {
660
+ if (result.reMake) return;
661
+ const compSpecKey = constructor.specKey || constructor.type;
662
+ MARKER_COMPONENT_SPEC_KEYS[compSpecKey] && !this._hasComponentForSpecInfo(compSpecKey, specInfo) && (this._isMarkerAdditionSpecSafeWithoutRemake(specInfo.spec) ? (this._createComponent(constructor, specInfo),
663
+ componentCache[compSpecKey] && componentCache[compSpecKey].componentCount++, createdCount++,
664
+ hasAutoRangeMarker = hasAutoRangeMarker || this._isAutoRangeMarkerSpec(specInfo.spec)) : result.reMake = !0);
665
+ }), this._option.getSpecInfo()), createdCount && (result.change = !0, result.effects = Object.assign(Object.assign(Object.assign(Object.assign({}, result.effects), {
666
+ component: !0
667
+ }), hasAutoRangeMarker ? {
668
+ scaleDomain: !0
669
+ } : null), {
670
+ layout: !0,
671
+ render: !0
516
672
  }));
517
673
  }
674
+ _removeMarkerComponentsForEmptySpecs(result) {
675
+ const removedComponents = this._components.filter((component => {
676
+ var _a;
677
+ const compSpecKey = component.specKey || component.type, cmpSpec = null !== (_a = this._spec[compSpecKey]) && void 0 !== _a ? _a : {};
678
+ return this._canRemoveMarkerComponentsWithoutRemake(compSpecKey, [ component.getSpec() ], cmpSpec);
679
+ }));
680
+ removedComponents.length && (removedComponents.forEach((component => {
681
+ this._removeComponent(component);
682
+ })), result.change = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
683
+ component: !0,
684
+ localOnly: !0
685
+ }));
686
+ }
687
+ _removeComponent(component) {
688
+ this._components = this._components.filter((c => c !== component)), this._idMap.delete(component.id),
689
+ component.getMarks().forEach((mark => {
690
+ this.getCompiler().removeRootMark(mark);
691
+ })), component.release();
692
+ }
518
693
  updateSeriesSpec(result) {
519
694
  this._spec.series.length === this._series.length ? this._series.forEach((s => {
520
695
  const spec = this._spec.series[s.getSpecIndex()];
@@ -610,8 +785,8 @@ export class BaseChart extends CompilableBase {
610
785
  c.compile();
611
786
  })), null === (_d = null === (_c = this._option.performanceHook) || void 0 === _c ? void 0 : _c.afterComponentCompile) || void 0 === _d || _d.call(_c, this._option.globalInstance);
612
787
  }
613
- release() {
614
- [ ...this._components, ...this._regions, ...this._series ].forEach((m => {
788
+ release(forceReleaseVRenderComponents = !0) {
789
+ forceReleaseVRenderComponents && [ ...this._components, ...this._regions, ...this._series ].forEach((m => {
615
790
  m.beforeRelease();
616
791
  })), super.release(), this.clear(), [ ...this._components, ...this._regions, ...this._series ].forEach((m => {
617
792
  m.release();