@visactor/vchart 1.12.0-alpha.0 → 1.12.0-alpha.4

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 (480) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +7713 -7064
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/animate-manager.js +1 -1
  6. package/cjs/animation/animate-manager.js.map +1 -1
  7. package/cjs/animation/config.js +4 -1
  8. package/cjs/animation/config.js.map +1 -1
  9. package/cjs/chart/base/base-chart.d.ts +1 -0
  10. package/cjs/chart/base/base-chart.js +18 -9
  11. package/cjs/chart/base/base-chart.js.map +1 -1
  12. package/cjs/chart/cartesian/cartesian-transformer.d.ts +4 -0
  13. package/cjs/chart/cartesian/cartesian-transformer.js +25 -10
  14. package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -1
  15. package/cjs/chart/index.d.ts +5 -3
  16. package/cjs/chart/index.js +16 -2
  17. package/cjs/chart/index.js.map +1 -1
  18. package/cjs/chart/interface/type.d.ts +2 -1
  19. package/cjs/chart/interface/type.js +2 -1
  20. package/cjs/chart/interface/type.js.map +1 -1
  21. package/cjs/chart/mosaic/index.d.ts +3 -0
  22. package/cjs/chart/mosaic/index.js +22 -0
  23. package/cjs/chart/mosaic/index.js.map +1 -0
  24. package/cjs/chart/mosaic/interface.d.ts +7 -0
  25. package/cjs/chart/mosaic/interface.js +6 -0
  26. package/cjs/chart/mosaic/interface.js.map +1 -0
  27. package/cjs/chart/mosaic/mosaic-transformer.d.ts +9 -0
  28. package/cjs/chart/mosaic/mosaic-transformer.js +43 -0
  29. package/cjs/chart/mosaic/mosaic-transformer.js.map +1 -0
  30. package/cjs/chart/mosaic/mosaic.d.ts +20 -0
  31. package/cjs/chart/mosaic/mosaic.js +39 -0
  32. package/cjs/chart/mosaic/mosaic.js.map +1 -0
  33. package/cjs/chart/sankey/sankey.js +5 -3
  34. package/cjs/chart/sankey/sankey.js.map +1 -1
  35. package/cjs/chart/stack.d.ts +11 -1
  36. package/cjs/chart/stack.js +5 -4
  37. package/cjs/chart/stack.js.map +1 -1
  38. package/cjs/compile/grammar-item.js +2 -1
  39. package/cjs/compile/mark/compilable-mark.js +6 -4
  40. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  41. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  42. package/cjs/component/axis/cartesian/band-axis.d.ts +2 -2
  43. package/cjs/component/axis/cartesian/band-axis.js +2 -2
  44. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  45. package/cjs/component/axis/polar/axis.d.ts +1 -1
  46. package/cjs/component/axis/polar/axis.js +1 -1
  47. package/cjs/component/axis/polar/axis.js.map +1 -1
  48. package/cjs/component/axis/polar/band-axis.d.ts +1 -1
  49. package/cjs/component/crosshair/cartesian.js +10 -5
  50. package/cjs/component/crosshair/cartesian.js.map +1 -1
  51. package/cjs/component/crosshair/polar.js +2 -2
  52. package/cjs/component/crosshair/polar.js.map +1 -1
  53. package/cjs/component/data-zoom/data-filter-base-component.d.ts +0 -1
  54. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  55. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  56. package/cjs/component/data-zoom/data-zoom/data-zoom.js +19 -5
  57. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  58. package/cjs/component/data-zoom/data-zoom/interface.d.ts +1 -0
  59. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  60. package/cjs/component/indicator/indicator.d.ts +1 -1
  61. package/cjs/component/indicator/indicator.js +4 -2
  62. package/cjs/component/indicator/indicator.js.map +1 -1
  63. package/cjs/component/indicator/interface.d.ts +3 -1
  64. package/cjs/component/indicator/interface.js.map +1 -1
  65. package/cjs/component/label/interface.d.ts +2 -1
  66. package/cjs/component/label/interface.js.map +1 -1
  67. package/cjs/component/label/label.js +8 -5
  68. package/cjs/component/label/label.js.map +1 -1
  69. package/cjs/component/label/util.d.ts +9 -0
  70. package/cjs/component/label/util.js +35 -8
  71. package/cjs/component/label/util.js.map +1 -1
  72. package/cjs/component/legend/continuous/legend.js +2 -1
  73. package/cjs/component/legend/continuous/legend.js.map +1 -1
  74. package/cjs/component/marker/base-marker.d.ts +4 -3
  75. package/cjs/component/marker/base-marker.js +6 -45
  76. package/cjs/component/marker/base-marker.js.map +1 -1
  77. package/cjs/component/marker/interface.d.ts +3 -3
  78. package/cjs/component/marker/interface.js.map +1 -1
  79. package/cjs/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
  80. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  81. package/cjs/component/marker/mark-area/interface/spec.d.ts +3 -2
  82. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  83. package/cjs/component/marker/mark-area/polar-mark-area.d.ts +2 -2
  84. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  85. package/cjs/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
  86. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  87. package/cjs/component/marker/mark-line/interface/spec.d.ts +5 -5
  88. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  89. package/cjs/component/marker/mark-line/polar-mark-line.d.ts +2 -2
  90. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  91. package/cjs/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
  92. package/cjs/component/marker/mark-point/cartesian-mark-point.js +1 -1
  93. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  94. package/cjs/component/marker/mark-point/geo-mark-point.d.ts +2 -1
  95. package/cjs/component/marker/mark-point/geo-mark-point.js.map +1 -1
  96. package/cjs/component/marker/mark-point/interface/spec.d.ts +4 -3
  97. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  98. package/cjs/component/marker/mark-point/polar-mark-point.d.ts +2 -1
  99. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  100. package/cjs/component/marker/utils.d.ts +2 -3
  101. package/cjs/component/marker/utils.js +16 -14
  102. package/cjs/component/marker/utils.js.map +1 -1
  103. package/cjs/component/tooltip/interface/spec.d.ts +1 -0
  104. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  105. package/cjs/component/tooltip/interface/theme.d.ts +3 -2
  106. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  107. package/cjs/component/tooltip/tooltip.d.ts +2 -1
  108. package/cjs/component/tooltip/tooltip.js +5 -3
  109. package/cjs/component/tooltip/tooltip.js.map +1 -1
  110. package/cjs/component/util.js +1 -2
  111. package/cjs/constant/index.d.ts +5 -0
  112. package/cjs/constant/index.js +6 -2
  113. package/cjs/constant/index.js.map +1 -1
  114. package/cjs/core/index.d.ts +1 -2
  115. package/cjs/core/index.js +2 -2
  116. package/cjs/core/index.js.map +1 -1
  117. package/cjs/core/interface.d.ts +3 -2
  118. package/cjs/core/interface.js.map +1 -1
  119. package/cjs/core/vchart.d.ts +8 -6
  120. package/cjs/core/vchart.js +46 -27
  121. package/cjs/core/vchart.js.map +1 -1
  122. package/cjs/data/transforms/aggregation.d.ts +8 -3
  123. package/cjs/data/transforms/aggregation.js +62 -2
  124. package/cjs/data/transforms/aggregation.js.map +1 -1
  125. package/cjs/data/transforms/legend-data/continuous/continuous.js +4 -3
  126. package/cjs/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  127. package/cjs/data/transforms/legend-data/continuous/interface.d.ts +1 -0
  128. package/cjs/data/transforms/legend-data/continuous/interface.js.map +1 -1
  129. package/cjs/data/transforms/stack-split.js +2 -2
  130. package/cjs/data/transforms/stack-split.js.map +1 -1
  131. package/cjs/data/transforms/waterfall.js +17 -6
  132. package/cjs/data/transforms/waterfall.js.map +1 -1
  133. package/cjs/index-wx.d.ts +1 -0
  134. package/cjs/index-wx.js +1 -1
  135. package/cjs/index-wx.js.map +1 -1
  136. package/cjs/index.d.ts +1 -0
  137. package/cjs/index.js +5 -4
  138. package/cjs/index.js.map +1 -1
  139. package/cjs/layout/layout-item.d.ts +1 -1
  140. package/cjs/model/interface.d.ts +4 -0
  141. package/cjs/model/interface.js.map +1 -1
  142. package/cjs/plugin/components/tooltip-handler/dom/interface.d.ts +1 -0
  143. package/cjs/plugin/components/tooltip-handler/dom/interface.js.map +1 -1
  144. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.d.ts +1 -3
  145. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js +9 -14
  146. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js.map +1 -1
  147. package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js +7 -11
  148. package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js.map +1 -1
  149. package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js +8 -6
  150. package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js.map +1 -1
  151. package/cjs/plugin/components/tooltip-handler/dom/utils/style.js +6 -5
  152. package/cjs/plugin/components/tooltip-handler/dom/utils/style.js.map +1 -1
  153. package/cjs/plugin/components/tooltip-handler/interface/style.d.ts +1 -0
  154. package/cjs/plugin/components/tooltip-handler/interface/style.js.map +1 -1
  155. package/cjs/plugin/components/tooltip-handler/utils/attribute.js +8 -3
  156. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  157. package/cjs/series/bar/bar.d.ts +0 -1
  158. package/cjs/series/bar/bar.js +38 -33
  159. package/cjs/series/bar/bar.js.map +1 -1
  160. package/cjs/series/base/base-series.js +7 -7
  161. package/cjs/series/base/base-series.js.map +1 -1
  162. package/cjs/series/base/constant.d.ts +6 -0
  163. package/cjs/series/base/constant.js +12 -2
  164. package/cjs/series/base/constant.js.map +1 -1
  165. package/cjs/series/gauge/gauge-pointer.js +3 -1
  166. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  167. package/cjs/series/interface/common.d.ts +2 -0
  168. package/cjs/series/interface/common.js.map +1 -1
  169. package/cjs/series/interface/series.d.ts +4 -1
  170. package/cjs/series/interface/series.js.map +1 -1
  171. package/cjs/series/interface/theme.d.ts +2 -0
  172. package/cjs/series/interface/theme.js +2 -1
  173. package/cjs/series/interface/theme.js.map +1 -1
  174. package/cjs/series/interface/type.d.ts +2 -1
  175. package/cjs/series/interface/type.js +1 -1
  176. package/cjs/series/interface/type.js.map +1 -1
  177. package/cjs/series/line/animation.js +7 -4
  178. package/cjs/series/line/animation.js.map +1 -1
  179. package/cjs/series/mosaic/interface.d.ts +16 -0
  180. package/cjs/series/mosaic/interface.js +6 -0
  181. package/cjs/series/mosaic/interface.js.map +1 -0
  182. package/cjs/series/mosaic/mosaic.d.ts +16 -0
  183. package/cjs/series/mosaic/mosaic.js +69 -0
  184. package/cjs/series/mosaic/mosaic.js.map +1 -0
  185. package/cjs/series/polar/animation.js +12 -3
  186. package/cjs/series/polar/animation.js.map +1 -1
  187. package/cjs/series/polar/progress-like/progress-like.js +2 -2
  188. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  189. package/cjs/series/rose/animation.js +8 -2
  190. package/cjs/series/rose/animation.js.map +1 -1
  191. package/cjs/series/sankey/interface.d.ts +5 -4
  192. package/cjs/series/sankey/interface.js.map +1 -1
  193. package/cjs/series/sankey/sankey-transformer.d.ts +5 -0
  194. package/cjs/series/sankey/sankey-transformer.js +16 -0
  195. package/cjs/series/sankey/sankey-transformer.js.map +1 -0
  196. package/cjs/series/sankey/sankey.d.ts +7 -2
  197. package/cjs/series/sankey/sankey.js +47 -151
  198. package/cjs/series/sankey/sankey.js.map +1 -1
  199. package/cjs/series/treemap/treemap.d.ts +1 -0
  200. package/cjs/series/treemap/treemap.js +2 -1
  201. package/cjs/series/treemap/treemap.js.map +1 -1
  202. package/cjs/series/word-cloud/interface.d.ts +1 -1
  203. package/cjs/series/word-cloud/interface.js.map +1 -1
  204. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +24 -0
  205. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  206. package/cjs/theme/builtin/common/component/tooltip.js +0 -2
  207. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  208. package/cjs/theme/builtin/common/series/index.js +3 -2
  209. package/cjs/theme/builtin/common/series/index.js.map +1 -1
  210. package/cjs/theme/builtin/common/series/mosaic.d.ts +2 -0
  211. package/cjs/theme/builtin/common/series/mosaic.js +27 -0
  212. package/cjs/theme/builtin/common/series/mosaic.js.map +1 -0
  213. package/cjs/theme/builtin/common/series/pie.js +1 -0
  214. package/cjs/theme/builtin/common/series/pie.js.map +1 -1
  215. package/cjs/theme/builtin/common/series/pie3d.js +1 -0
  216. package/cjs/theme/builtin/common/series/pie3d.js.map +1 -1
  217. package/cjs/theme/builtin/dark/color-scheme.js +4 -1
  218. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
  219. package/cjs/theme/builtin/light/color-scheme.js +4 -1
  220. package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
  221. package/cjs/theme/interface.d.ts +2 -2
  222. package/cjs/theme/interface.js.map +1 -1
  223. package/cjs/typings/spec/common.d.ts +2 -2
  224. package/cjs/typings/spec/common.js.map +1 -1
  225. package/cjs/typings/visual.d.ts +2 -2
  226. package/cjs/typings/visual.js.map +1 -1
  227. package/cjs/util/data.d.ts +24 -1
  228. package/cjs/util/data.js +88 -17
  229. package/cjs/util/data.js.map +1 -1
  230. package/cjs/util/hierarchy.d.ts +2 -0
  231. package/cjs/util/hierarchy.js +16 -3
  232. package/cjs/util/hierarchy.js.map +1 -1
  233. package/cjs/util/spec/index.d.ts +0 -1
  234. package/cjs/util/spec/index.js +1 -1
  235. package/cjs/util/spec/index.js.map +1 -1
  236. package/cjs/util/style.d.ts +1 -0
  237. package/cjs/util/style.js +11 -2
  238. package/cjs/util/style.js.map +1 -1
  239. package/esm/animation/animate-manager.js +1 -1
  240. package/esm/animation/animate-manager.js.map +1 -1
  241. package/esm/animation/config.js +4 -1
  242. package/esm/animation/config.js.map +1 -1
  243. package/esm/chart/base/base-chart.d.ts +1 -0
  244. package/esm/chart/base/base-chart.js +20 -11
  245. package/esm/chart/base/base-chart.js.map +1 -1
  246. package/esm/chart/cartesian/cartesian-transformer.d.ts +4 -0
  247. package/esm/chart/cartesian/cartesian-transformer.js +25 -10
  248. package/esm/chart/cartesian/cartesian-transformer.js.map +1 -1
  249. package/esm/chart/index.d.ts +5 -3
  250. package/esm/chart/index.js +4 -2
  251. package/esm/chart/index.js.map +1 -1
  252. package/esm/chart/interface/type.d.ts +2 -1
  253. package/esm/chart/interface/type.js +2 -1
  254. package/esm/chart/interface/type.js.map +1 -1
  255. package/esm/chart/mosaic/index.d.ts +3 -0
  256. package/esm/chart/mosaic/index.js +6 -0
  257. package/esm/chart/mosaic/index.js.map +1 -0
  258. package/esm/chart/mosaic/interface.d.ts +7 -0
  259. package/esm/chart/mosaic/interface.js +2 -0
  260. package/esm/chart/mosaic/interface.js.map +1 -0
  261. package/esm/chart/mosaic/mosaic-transformer.d.ts +9 -0
  262. package/esm/chart/mosaic/mosaic-transformer.js +37 -0
  263. package/esm/chart/mosaic/mosaic-transformer.js.map +1 -0
  264. package/esm/chart/mosaic/mosaic.d.ts +20 -0
  265. package/esm/chart/mosaic/mosaic.js +41 -0
  266. package/esm/chart/mosaic/mosaic.js.map +1 -0
  267. package/esm/chart/sankey/sankey.js +5 -3
  268. package/esm/chart/sankey/sankey.js.map +1 -1
  269. package/esm/chart/stack.d.ts +11 -1
  270. package/esm/chart/stack.js +5 -4
  271. package/esm/chart/stack.js.map +1 -1
  272. package/esm/compile/grammar-item.js +2 -1
  273. package/esm/compile/mark/compilable-mark.js +6 -4
  274. package/esm/compile/mark/compilable-mark.js.map +1 -1
  275. package/esm/component/axis/cartesian/axis.js.map +1 -1
  276. package/esm/component/axis/cartesian/band-axis.d.ts +2 -2
  277. package/esm/component/axis/cartesian/band-axis.js +2 -2
  278. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  279. package/esm/component/axis/polar/axis.d.ts +1 -1
  280. package/esm/component/axis/polar/axis.js +1 -1
  281. package/esm/component/axis/polar/axis.js.map +1 -1
  282. package/esm/component/axis/polar/band-axis.d.ts +1 -1
  283. package/esm/component/crosshair/cartesian.js +10 -5
  284. package/esm/component/crosshair/cartesian.js.map +1 -1
  285. package/esm/component/crosshair/polar.js +2 -2
  286. package/esm/component/crosshair/polar.js.map +1 -1
  287. package/esm/component/data-zoom/data-filter-base-component.d.ts +0 -1
  288. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  289. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  290. package/esm/component/data-zoom/data-zoom/data-zoom.js +19 -5
  291. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  292. package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -0
  293. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  294. package/esm/component/indicator/indicator.d.ts +1 -1
  295. package/esm/component/indicator/indicator.js +4 -4
  296. package/esm/component/indicator/indicator.js.map +1 -1
  297. package/esm/component/indicator/interface.d.ts +3 -1
  298. package/esm/component/indicator/interface.js.map +1 -1
  299. package/esm/component/label/interface.d.ts +2 -1
  300. package/esm/component/label/interface.js.map +1 -1
  301. package/esm/component/label/label.js +9 -5
  302. package/esm/component/label/label.js.map +1 -1
  303. package/esm/component/label/util.d.ts +9 -0
  304. package/esm/component/label/util.js +34 -5
  305. package/esm/component/label/util.js.map +1 -1
  306. package/esm/component/legend/continuous/legend.js +2 -1
  307. package/esm/component/legend/continuous/legend.js.map +1 -1
  308. package/esm/component/marker/base-marker.d.ts +4 -3
  309. package/esm/component/marker/base-marker.js +6 -39
  310. package/esm/component/marker/base-marker.js.map +1 -1
  311. package/esm/component/marker/interface.d.ts +3 -3
  312. package/esm/component/marker/interface.js.map +1 -1
  313. package/esm/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
  314. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  315. package/esm/component/marker/mark-area/interface/spec.d.ts +3 -2
  316. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  317. package/esm/component/marker/mark-area/polar-mark-area.d.ts +2 -2
  318. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  319. package/esm/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
  320. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  321. package/esm/component/marker/mark-line/interface/spec.d.ts +5 -5
  322. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  323. package/esm/component/marker/mark-line/polar-mark-line.d.ts +2 -2
  324. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  325. package/esm/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
  326. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  327. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  328. package/esm/component/marker/mark-point/geo-mark-point.d.ts +2 -1
  329. package/esm/component/marker/mark-point/geo-mark-point.js.map +1 -1
  330. package/esm/component/marker/mark-point/interface/spec.d.ts +4 -3
  331. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  332. package/esm/component/marker/mark-point/polar-mark-point.d.ts +2 -1
  333. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  334. package/esm/component/marker/utils.d.ts +2 -3
  335. package/esm/component/marker/utils.js +16 -14
  336. package/esm/component/marker/utils.js.map +1 -1
  337. package/esm/component/tooltip/interface/spec.d.ts +1 -0
  338. package/esm/component/tooltip/interface/spec.js.map +1 -1
  339. package/esm/component/tooltip/interface/theme.d.ts +3 -2
  340. package/esm/component/tooltip/interface/theme.js.map +1 -1
  341. package/esm/component/tooltip/tooltip.d.ts +2 -1
  342. package/esm/component/tooltip/tooltip.js +5 -3
  343. package/esm/component/tooltip/tooltip.js.map +1 -1
  344. package/esm/component/util.js +1 -2
  345. package/esm/constant/index.d.ts +5 -0
  346. package/esm/constant/index.js +10 -0
  347. package/esm/constant/index.js.map +1 -1
  348. package/esm/core/index.d.ts +1 -2
  349. package/esm/core/index.js +1 -3
  350. package/esm/core/index.js.map +1 -1
  351. package/esm/core/interface.d.ts +3 -2
  352. package/esm/core/interface.js.map +1 -1
  353. package/esm/core/vchart.d.ts +8 -6
  354. package/esm/core/vchart.js +47 -28
  355. package/esm/core/vchart.js.map +1 -1
  356. package/esm/data/transforms/aggregation.d.ts +8 -3
  357. package/esm/data/transforms/aggregation.js +60 -2
  358. package/esm/data/transforms/aggregation.js.map +1 -1
  359. package/esm/data/transforms/legend-data/continuous/continuous.js +4 -2
  360. package/esm/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  361. package/esm/data/transforms/legend-data/continuous/interface.d.ts +1 -0
  362. package/esm/data/transforms/legend-data/continuous/interface.js.map +1 -1
  363. package/esm/data/transforms/stack-split.js +2 -2
  364. package/esm/data/transforms/stack-split.js.map +1 -1
  365. package/esm/data/transforms/waterfall.js +17 -6
  366. package/esm/data/transforms/waterfall.js.map +1 -1
  367. package/esm/index-wx.d.ts +1 -0
  368. package/esm/index-wx.js +2 -0
  369. package/esm/index-wx.js.map +1 -1
  370. package/esm/index.d.ts +1 -0
  371. package/esm/index.js +2 -0
  372. package/esm/index.js.map +1 -1
  373. package/esm/layout/layout-item.d.ts +1 -1
  374. package/esm/model/interface.d.ts +4 -0
  375. package/esm/model/interface.js.map +1 -1
  376. package/esm/plugin/components/tooltip-handler/dom/interface.d.ts +1 -0
  377. package/esm/plugin/components/tooltip-handler/dom/interface.js.map +1 -1
  378. package/esm/plugin/components/tooltip-handler/dom/model/content-model.d.ts +1 -3
  379. package/esm/plugin/components/tooltip-handler/dom/model/content-model.js +9 -14
  380. package/esm/plugin/components/tooltip-handler/dom/model/content-model.js.map +1 -1
  381. package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js +5 -9
  382. package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js.map +1 -1
  383. package/esm/plugin/components/tooltip-handler/dom/model/title-model.js +8 -6
  384. package/esm/plugin/components/tooltip-handler/dom/model/title-model.js.map +1 -1
  385. package/esm/plugin/components/tooltip-handler/dom/utils/style.js +5 -4
  386. package/esm/plugin/components/tooltip-handler/dom/utils/style.js.map +1 -1
  387. package/esm/plugin/components/tooltip-handler/interface/style.d.ts +1 -0
  388. package/esm/plugin/components/tooltip-handler/interface/style.js.map +1 -1
  389. package/esm/plugin/components/tooltip-handler/utils/attribute.js +7 -2
  390. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  391. package/esm/series/bar/bar.d.ts +0 -1
  392. package/esm/series/bar/bar.js +39 -34
  393. package/esm/series/bar/bar.js.map +1 -1
  394. package/esm/series/base/base-series.js +8 -7
  395. package/esm/series/base/base-series.js.map +1 -1
  396. package/esm/series/base/constant.d.ts +6 -0
  397. package/esm/series/base/constant.js +13 -0
  398. package/esm/series/base/constant.js.map +1 -1
  399. package/esm/series/gauge/gauge-pointer.js +3 -2
  400. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  401. package/esm/series/interface/common.d.ts +2 -0
  402. package/esm/series/interface/common.js.map +1 -1
  403. package/esm/series/interface/series.d.ts +4 -1
  404. package/esm/series/interface/series.js.map +1 -1
  405. package/esm/series/interface/theme.d.ts +2 -0
  406. package/esm/series/interface/theme.js +2 -1
  407. package/esm/series/interface/theme.js.map +1 -1
  408. package/esm/series/interface/type.d.ts +2 -1
  409. package/esm/series/interface/type.js +1 -1
  410. package/esm/series/interface/type.js.map +1 -1
  411. package/esm/series/line/animation.js +7 -4
  412. package/esm/series/line/animation.js.map +1 -1
  413. package/esm/series/mosaic/interface.d.ts +16 -0
  414. package/esm/series/mosaic/interface.js +2 -0
  415. package/esm/series/mosaic/interface.js.map +1 -0
  416. package/esm/series/mosaic/mosaic.d.ts +16 -0
  417. package/esm/series/mosaic/mosaic.js +78 -0
  418. package/esm/series/mosaic/mosaic.js.map +1 -0
  419. package/esm/series/polar/animation.js +10 -4
  420. package/esm/series/polar/animation.js.map +1 -1
  421. package/esm/series/polar/progress-like/progress-like.js +2 -2
  422. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  423. package/esm/series/rose/animation.js +8 -2
  424. package/esm/series/rose/animation.js.map +1 -1
  425. package/esm/series/sankey/interface.d.ts +5 -4
  426. package/esm/series/sankey/interface.js.map +1 -1
  427. package/esm/series/sankey/sankey-transformer.d.ts +5 -0
  428. package/esm/series/sankey/sankey-transformer.js +8 -0
  429. package/esm/series/sankey/sankey-transformer.js.map +1 -0
  430. package/esm/series/sankey/sankey.d.ts +7 -2
  431. package/esm/series/sankey/sankey.js +49 -147
  432. package/esm/series/sankey/sankey.js.map +1 -1
  433. package/esm/series/treemap/treemap.d.ts +1 -0
  434. package/esm/series/treemap/treemap.js +2 -1
  435. package/esm/series/treemap/treemap.js.map +1 -1
  436. package/esm/series/word-cloud/interface.d.ts +1 -1
  437. package/esm/series/word-cloud/interface.js.map +1 -1
  438. package/esm/theme/builtin/common/component/legend/discrete-legend.js +24 -0
  439. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  440. package/esm/theme/builtin/common/component/tooltip.js +0 -2
  441. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  442. package/esm/theme/builtin/common/series/index.js +4 -1
  443. package/esm/theme/builtin/common/series/index.js.map +1 -1
  444. package/esm/theme/builtin/common/series/mosaic.d.ts +2 -0
  445. package/esm/theme/builtin/common/series/mosaic.js +23 -0
  446. package/esm/theme/builtin/common/series/mosaic.js.map +1 -0
  447. package/esm/theme/builtin/common/series/pie.js +1 -0
  448. package/esm/theme/builtin/common/series/pie.js.map +1 -1
  449. package/esm/theme/builtin/common/series/pie3d.js +1 -0
  450. package/esm/theme/builtin/common/series/pie3d.js.map +1 -1
  451. package/esm/theme/builtin/dark/color-scheme.js +4 -1
  452. package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
  453. package/esm/theme/builtin/light/color-scheme.js +4 -1
  454. package/esm/theme/builtin/light/color-scheme.js.map +1 -1
  455. package/esm/theme/interface.d.ts +2 -2
  456. package/esm/theme/interface.js.map +1 -1
  457. package/esm/typings/spec/common.d.ts +2 -2
  458. package/esm/typings/spec/common.js.map +1 -1
  459. package/esm/typings/visual.d.ts +2 -2
  460. package/esm/typings/visual.js.map +1 -1
  461. package/esm/util/data.d.ts +24 -1
  462. package/esm/util/data.js +86 -17
  463. package/esm/util/data.js.map +1 -1
  464. package/esm/util/hierarchy.d.ts +2 -0
  465. package/esm/util/hierarchy.js +14 -0
  466. package/esm/util/hierarchy.js.map +1 -1
  467. package/esm/util/spec/index.d.ts +0 -1
  468. package/esm/util/spec/index.js +0 -2
  469. package/esm/util/spec/index.js.map +1 -1
  470. package/esm/util/style.d.ts +1 -0
  471. package/esm/util/style.js +8 -0
  472. package/esm/util/style.js.map +1 -1
  473. package/package.json +18 -18
  474. package/build/index.es.js +0 -101358
  475. package/cjs/util/spec/background.d.ts +0 -4
  476. package/cjs/util/spec/background.js +0 -21
  477. package/cjs/util/spec/background.js.map +0 -1
  478. package/esm/util/spec/background.d.ts +0 -4
  479. package/esm/util/spec/background.js +0 -13
  480. package/esm/util/spec/background.js.map +0 -1
@@ -14,6 +14,7 @@ import type { IChart, IChartSpecInfo } from '../chart/interface';
14
14
  import type { Stage } from '@visactor/vrender-core';
15
15
  import type { IContainerSize } from '@visactor/vrender-components';
16
16
  import type { IBaseScale } from '@visactor/vscale';
17
+ import type { IUpdateSpecResult } from '../model/interface';
17
18
  export type DataLinkSeries = {
18
19
  seriesId?: StringOrNumber;
19
20
  seriesIndex?: number;
@@ -38,8 +39,8 @@ export interface IVChart {
38
39
  }[]) => Promise<IVChart>;
39
40
  updateDataSync: (id: StringOrNumber, data: Datum[], options?: IParserOptions) => IVChart;
40
41
  updateFullDataSync: (data: IDataValues | IDataValues[], reRender?: boolean) => IVChart;
41
- updateSpec: (spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig, resetMediaQuery?: boolean) => Promise<IVChart>;
42
- updateSpecSync: (spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig, resetMediaQuery?: boolean) => void;
42
+ updateSpec: (spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig, userUpdateOptions?: IUpdateSpecResult) => Promise<IVChart>;
43
+ updateSpecSync: (spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig, userUpdateOptions?: IUpdateSpecResult) => void;
43
44
  updateModelSpecSync: (filter: string | {
44
45
  type: string;
45
46
  index: number;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { DataSet } from '@visactor/vdataset';\n\nimport type { IParserOptions } from '@visactor/vdataset';\nimport type {\n Datum,\n IDataValues,\n IInitOption,\n IMarkStateSpec,\n IPoint,\n IRegionQuerier,\n IShowTooltipOption,\n ISpec,\n ITooltipHandler,\n Maybe,\n MaybeArray,\n StringOrNumber\n} from '../typings';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { EventCallback, EventParams, EventQuery, EventType } from '../event/interface';\nimport type { IMark } from '../mark/interface';\nimport type { ISeries } from '../series/interface/series';\nimport type { ITheme } from '../theme';\nimport type { IComponent } from '../component/interface';\nimport type { LayoutCallBack } from '../layout/interface';\nimport type { Compiler } from '../compile/compiler';\nimport type { IChart, IChartSpecInfo } from '../chart/interface';\nimport type { Stage } from '@visactor/vrender-core';\nimport type { IContainerSize } from '@visactor/vrender-components';\nimport type { IBaseScale } from '@visactor/vscale';\n\nexport type DataLinkSeries = {\n /**\n * 关联的系列 id\n * the binding series id\n */\n seriesId?: StringOrNumber;\n /**\n * 关联的系列索引\n * the binding series index\n */\n seriesIndex?: number;\n};\n\nexport type DataLinkAxis = {\n /**\n * 关联的轴 id,目前仅支持直角坐标轴\n * the binding axis id\n */\n axisId?: StringOrNumber;\n /**\n * 关联的轴索引,目前仅支持直角坐标轴\n * the binding axis index\n */\n axisIndex?: number;\n};\n\nexport interface IVChartConstructor {\n new (spec: ISpec, options: IInitOption): IVChart;\n useRegisters: (comps: (() => void)[]) => any;\n}\n\nexport interface IVChart {\n readonly id: number;\n\n /**\n * **同步**渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n renderSync: (morphConfig?: IMorphConfig, resetMediaQuery?: boolean) => IVChart;\n\n /**\n * **异步**渲染图表。\n * @async\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n renderAsync: (morphConfig?: IMorphConfig, resetMediaQuery?: boolean) => Promise<IVChart>;\n\n /**\n * **异步**更新数据。\n * @param id 数据 id\n * @param data 数据值\n * @param options 数据参数\n * @returns VChart 实例\n */\n updateData: (id: StringOrNumber, data: Datum[] | string, options?: IParserOptions) => Promise<IVChart>;\n\n /**\n * **异步**批量更新数据。\n * @param list 待更新的数据列表\n * @returns VChart 实例\n */\n updateDataInBatches: (list: { id: string; data: Datum[]; options?: IParserOptions }[]) => Promise<IVChart>;\n\n /**\n * **同步**更新数据。\n * @param id 数据 id\n * @param data 数据值\n * @param options 数据参数\n * @returns VChart 实例\n */\n updateDataSync: (id: StringOrNumber, data: Datum[], options?: IParserOptions) => IVChart;\n\n /**\n * **同步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n */\n updateFullDataSync: (data: IDataValues | IDataValues[], reRender?: boolean) => IVChart;\n /**\n * **异步**spec 更新。\n * @param spec\n * @param forceMerge\n * @returns\n */\n updateSpec: (\n spec: ISpec,\n forceMerge?: boolean,\n morphConfig?: IMorphConfig,\n resetMediaQuery?: boolean\n ) => Promise<IVChart>;\n\n /**\n * **同步方法**spec 更新。\n * @param spec\n * @param forceMerge\n * @returns\n */\n updateSpecSync: (spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig, resetMediaQuery?: boolean) => void;\n\n /**\n * **同步方法** 模块 spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n updateModelSpecSync: (\n filter: string | { type: string; index: number },\n spec: unknown,\n forceMerge?: boolean,\n morphConfig?: IMorphConfig\n ) => IVChart;\n\n /**\n * **异步方法** 模块 spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n updateModelSpec: (\n filter: string | { type: string; index: number },\n spec: unknown,\n forceMerge?: boolean,\n morphConfig?: IMorphConfig\n ) => Promise<IVChart>;\n\n /** 更新 spec 并重新编译(不渲染),返回是否成功 */\n updateSpecAndRecompile: (spec: ISpec, forceMerge: boolean, option: IVChartRenderOption) => boolean;\n\n /**\n * 更新绘制区域。\n * @param viewBox 绘制区域\n * @param reRender 是否重新渲染,默认为 true\n * @returns\n */\n updateViewBox: (viewBox: IBoundsLike, reRender?: boolean) => IVChart;\n\n /**\n * **异步方法**,图表尺寸更新方法。\n * @param width 宽度\n * @param height 高度\n * @returns VChart 当前实例\n */\n resize: (width: number, height: number) => Promise<IVChart>;\n\n /**\n * 销毁图表。\n */\n release: () => void;\n\n /**\n * 事件监听\n */\n on: ((eType: EventType, handler: EventCallback<EventParams>) => void) &\n ((eType: EventType, query: EventQuery, handler: EventCallback<EventParams>) => void);\n off: (eType: EventType, handler?: EventCallback<EventParams>) => void;\n\n /**\n * 更新或设置图元状态。\n * @param state 状态筛选器\n * @param filter 筛选器\n */\n updateState: (\n state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>,\n filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean //series + mark 筛选\n ) => void;\n\n /**\n * 更新图元选中状态。\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setSelected: (\n datum: MaybeArray<any> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ) => void;\n\n /**\n * 更新图元 hover 状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setHovered: (\n datum: MaybeArray<Datum> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ) => void;\n\n /**\n * 清除所有图元的状态\n * @param state 状态名\n *\n * @since 1.11.0\n */\n clearState: (state: string) => void;\n\n /**\n * 清除所有图元的选中状态\n *\n * @since 1.11.0\n */\n clearSelected: () => void;\n\n /**\n * 清除所有图元的hover状态\n *\n * @since 1.11.0\n */\n clearHovered: () => void;\n\n /**\n * 获取当前主题,会返回完整的主题配置(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n * */\n getCurrentTheme: () => ITheme;\n\n /**\n * 获取当前主题名称(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n */\n getCurrentThemeName: () => string;\n\n /**\n * **异步方法**, 设置当前主题。\n * @param name 主题名称\n * @returns\n */\n setCurrentTheme: (name: string) => Promise<IVChart>;\n\n /**\n * 自定义 TooltipHandler。\n * @param tooltipHandler\n */\n setTooltipHandler: (tooltipHandler: ITooltipHandler) => void;\n\n /**\n * 获取用户定义的 TooltipHandler\n * @returns ITooltipHandler\n */\n getTooltipHandlerByUser: () => ITooltipHandler | undefined;\n\n /**\n * 获取 TooltipHandler\n * @returns\n */\n getTooltipHandler: () => ITooltipHandler | undefined;\n\n /**\n * 手动调用展示 tooltip\n * @param datum 原始数据\n * @param options\n * @returns\n */\n showTooltip: (datum: Datum, options: IShowTooltipOption) => boolean;\n\n /**\n * 手动调用,关闭 tooltip\n * @returns\n */\n hideTooltip: () => boolean;\n\n // 图例相关 api\n /**\n * 根据图例组件 id 获取图例数据\n * @param id 组件 id\n * @returns\n */\n getLegendDataById: (id: string) => Datum[];\n\n /**\n * 根据图例组件索引获取图例数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendDataByIndex: (index?: number) => Datum[];\n\n /**\n * 根据图例组件 id 获取当前图例的选中项\n * @param id 组件 id\n * @returns\n */\n getLegendSelectedDataById: (id: string) => StringOrNumber[];\n\n /**\n * 根据图例组件索引获取当前图例的选中项\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendSelectedDataByIndex: (index?: number) => StringOrNumber[];\n\n /**\n * 根据图例组件 id 更新图例选中数据\n * @param id\n * @returns\n */\n setLegendSelectedDataById: (id: string, selectedData: StringOrNumber[]) => void;\n\n /**\n * 根据图例组件索引更新图例选中数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n setLegendSelectedDataByIndex: (index: number, selectedData: StringOrNumber[]) => void;\n\n /**\n * **异步方法**返回一个包含图片展示的 data URI。\n * @returns data URI\n */\n getDataURL: () => Promise<any>;\n\n /**\n * **异步方法** 导出图表图片,只支持浏览器端。\n * @param name 保存的图片名称\n * @returns\n */\n exportImg: (name?: string) => Promise<void>;\n\n /**\n * 导出绘制了图表内容的 canvas\n * @returns HTMLCanvasElement\n * @since 1.5.2\n */\n exportCanvas: () => HTMLCanvasElement | undefined;\n\n /**\n * 目前仅支持 node 环境,用于 node 端的图片导出\n * @returns\n */\n getImageBuffer: () => void;\n /**\n * 设置自定义布局\n */\n setLayout: (layout: LayoutCallBack) => void;\n /**\n * 强制重新布局\n */\n reLayout: () => void;\n\n /**\n * 获取编译器实例\n * @returns\n */\n getCompiler: () => Compiler;\n\n /**\n * Get the chart instance\n * 获取 Chart 图表实例。\n * @returns Chart 实例\n */\n getChart: () => Maybe<IChart>;\n\n /**\n * Get the renderer instance.\n * 获取渲染引擎实例。\n * @returns the instance of VRender Stage\n */\n getStage: () => Stage;\n\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas: () => HTMLCanvasElement | undefined;\n\n /**\n * 获取图表的 dom 容器\n * @returns\n */\n getContainer: () => Maybe<HTMLElement>;\n\n /**\n * 获取图表所有的组件实例\n * @returns 组件实例\n */\n getComponents: () => IComponent[];\n\n /**\n * 获取图表的 DataSet 实例\n * @returns DataSet 实例\n */\n getDataSet: () => Maybe<DataSet>;\n\n /**\n * 获取图表的 Scale 实例\n * @param scaleId scale 的id\n * @returns Scale 实例\n * @since 1.10.4\n */\n getScale: (scaleId: string) => IBaseScale | null;\n\n // 数据转换相关的 api\n /**\n * Convert the data to coordinate position\n * @param datum the datum to convert\n * @param dataLinkInfo the data link info, could be seriesId or seriesIndex, default is { seriesIndex: 0 }\n * @param isRelativeToCanvas 是否相对画布坐标,默认为 false Whether relative to canvas coordinates, default is false\n * @param checkInViewData 是否检查数据对应的图元是否在视图中,如果不在视图中,返回 null\n * @returns\n */\n convertDatumToPosition: (\n datum: Datum,\n dataLinkInfo?: DataLinkSeries,\n isRelativeToCanvas?: boolean,\n checkInViewData?: boolean\n ) => IPoint | null;\n\n /**\n * Convert the value to coordinate position\n * @param value number | [number, number], the value to convert\n * @param dataLinkInfo the data link info, could be seriesId,seriesIndex,axisId,axisIndex\n * @param isRelativeToCanvas 是否相对画布坐标,默认为 false Whether relative to canvas coordinates, default is false\n * returns\n */\n convertValueToPosition: ((\n value: StringOrNumber,\n dataLinkInfo: DataLinkAxis,\n isRelativeToCanvas?: boolean\n ) => number | null) &\n ((\n value: [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkSeries,\n isRelativeToCanvas?: boolean\n ) => IPoint | null);\n\n /** 停止正在进行的所有动画 */\n stopAnimation: () => void;\n\n /** 暂停正在进行的所有动画 */\n pauseAnimation: () => void;\n\n /** 恢复暂停时正在进行的所有动画 */\n resumeAnimation: () => void;\n\n /** 注册实例函数 */\n registerFunction: (key: string, fun: Function) => void;\n\n /** 注销实例函数 */\n unregisterFunction: (key: string) => void;\n\n /** 获取实例函数 */\n getFunction: (key: string) => Function | null;\n\n /** 获取实例函数列表 */\n getFunctionList: () => string[] | null;\n\n /** 获取图表 spec 详细信息 */\n getSpecInfo: () => IChartSpecInfo;\n\n /** 设置运行时 spec */\n setRuntimeSpec: (spec: any) => void;\n\n /** 获取运行时 spec */\n getSpec: () => any;\n\n /** 获取当前容器宽高 */\n getCurrentSize: () => IContainerSize;\n}\n\nexport interface IGlobalConfig {\n /** 是否全局显示唯一 tooltip */\n uniqueTooltip?: boolean;\n /** 是否监测图表 dom 变化自动 release */\n // TODO\n // autoRelease?: boolean;\n}\n\nexport interface IVChartRenderOption {\n /** morphing 动画 spec */\n morphConfig?: IMorphConfig;\n /** 是否重新转换图表 spec */\n transformSpec?: boolean;\n actionSource?: VChartRenderActionSource;\n}\n\nexport type VChartRenderActionSource =\n | 'render'\n | 'updateSpec'\n | 'updateModelSpec'\n | 'setCurrentTheme'\n | 'updateSpecAndRecompile';\n"]}
1
+ {"version":3,"sources":["../src/core/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { DataSet } from '@visactor/vdataset';\n\nimport type { IParserOptions } from '@visactor/vdataset';\nimport type {\n Datum,\n IDataValues,\n IInitOption,\n IMarkStateSpec,\n IPoint,\n IRegionQuerier,\n IShowTooltipOption,\n ISpec,\n ITooltipHandler,\n Maybe,\n MaybeArray,\n StringOrNumber\n} from '../typings';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { EventCallback, EventParams, EventQuery, EventType } from '../event/interface';\nimport type { IMark } from '../mark/interface';\nimport type { ISeries } from '../series/interface/series';\nimport type { ITheme } from '../theme';\nimport type { IComponent } from '../component/interface';\nimport type { LayoutCallBack } from '../layout/interface';\nimport type { Compiler } from '../compile/compiler';\nimport type { IChart, IChartSpecInfo } from '../chart/interface';\nimport type { Stage } from '@visactor/vrender-core';\nimport type { IContainerSize } from '@visactor/vrender-components';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type { IUpdateSpecResult } from '../model/interface';\n\nexport type DataLinkSeries = {\n /**\n * 关联的系列 id\n * the binding series id\n */\n seriesId?: StringOrNumber;\n /**\n * 关联的系列索引\n * the binding series index\n */\n seriesIndex?: number;\n};\n\nexport type DataLinkAxis = {\n /**\n * 关联的轴 id,目前仅支持直角坐标轴\n * the binding axis id\n */\n axisId?: StringOrNumber;\n /**\n * 关联的轴索引,目前仅支持直角坐标轴\n * the binding axis index\n */\n axisIndex?: number;\n};\n\nexport interface IVChartConstructor {\n new (spec: ISpec, options: IInitOption): IVChart;\n useRegisters: (comps: (() => void)[]) => any;\n}\n\nexport interface IVChart {\n readonly id: number;\n\n /**\n * **同步**渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n renderSync: (morphConfig?: IMorphConfig, resetMediaQuery?: boolean) => IVChart;\n\n /**\n * **异步**渲染图表。\n * @async\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n renderAsync: (morphConfig?: IMorphConfig, resetMediaQuery?: boolean) => Promise<IVChart>;\n\n /**\n * **异步**更新数据。\n * @param id 数据 id\n * @param data 数据值\n * @param options 数据参数\n * @returns VChart 实例\n */\n updateData: (id: StringOrNumber, data: Datum[] | string, options?: IParserOptions) => Promise<IVChart>;\n\n /**\n * **异步**批量更新数据。\n * @param list 待更新的数据列表\n * @returns VChart 实例\n */\n updateDataInBatches: (list: { id: string; data: Datum[]; options?: IParserOptions }[]) => Promise<IVChart>;\n\n /**\n * **同步**更新数据。\n * @param id 数据 id\n * @param data 数据值\n * @param options 数据参数\n * @returns VChart 实例\n */\n updateDataSync: (id: StringOrNumber, data: Datum[], options?: IParserOptions) => IVChart;\n\n /**\n * **同步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n */\n updateFullDataSync: (data: IDataValues | IDataValues[], reRender?: boolean) => IVChart;\n /**\n * **异步**spec 更新。\n * @param spec\n * @param forceMerge\n * @returns\n */\n updateSpec: (\n spec: ISpec,\n forceMerge?: boolean,\n morphConfig?: IMorphConfig,\n userUpdateOptions?: IUpdateSpecResult\n ) => Promise<IVChart>;\n\n /**\n * **同步方法**spec 更新。\n * @param spec\n * @param forceMerge\n * @returns\n */\n updateSpecSync: (\n spec: ISpec,\n forceMerge?: boolean,\n morphConfig?: IMorphConfig,\n userUpdateOptions?: IUpdateSpecResult\n ) => void;\n\n /**\n * **同步方法** 模块 spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n updateModelSpecSync: (\n filter: string | { type: string; index: number },\n spec: unknown,\n forceMerge?: boolean,\n morphConfig?: IMorphConfig\n ) => IVChart;\n\n /**\n * **异步方法** 模块 spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n updateModelSpec: (\n filter: string | { type: string; index: number },\n spec: unknown,\n forceMerge?: boolean,\n morphConfig?: IMorphConfig\n ) => Promise<IVChart>;\n\n /** 更新 spec 并重新编译(不渲染),返回是否成功 */\n updateSpecAndRecompile: (spec: ISpec, forceMerge: boolean, option: IVChartRenderOption) => boolean;\n\n /**\n * 更新绘制区域。\n * @param viewBox 绘制区域\n * @param reRender 是否重新渲染,默认为 true\n * @returns\n */\n updateViewBox: (viewBox: IBoundsLike, reRender?: boolean) => IVChart;\n\n /**\n * **异步方法**,图表尺寸更新方法。\n * @param width 宽度\n * @param height 高度\n * @returns VChart 当前实例\n */\n resize: (width: number, height: number) => Promise<IVChart>;\n\n /**\n * 销毁图表。\n */\n release: () => void;\n\n /**\n * 事件监听\n */\n on: ((eType: EventType, handler: EventCallback<EventParams>) => void) &\n ((eType: EventType, query: EventQuery, handler: EventCallback<EventParams>) => void);\n off: (eType: EventType, handler?: EventCallback<EventParams>) => void;\n\n /**\n * 更新或设置图元状态。\n * @param state 状态筛选器\n * @param filter 筛选器\n */\n updateState: (\n state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>,\n filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean //series + mark 筛选\n ) => void;\n\n /**\n * 更新图元选中状态。\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setSelected: (\n datum: MaybeArray<any> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ) => void;\n\n /**\n * 更新图元 hover 状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setHovered: (\n datum: MaybeArray<Datum> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ) => void;\n\n /**\n * 清除所有图元的状态\n * @param state 状态名\n *\n * @since 1.11.0\n */\n clearState: (state: string) => void;\n\n /**\n * 清除所有图元的选中状态\n *\n * @since 1.11.0\n */\n clearSelected: () => void;\n\n /**\n * 清除所有图元的hover状态\n *\n * @since 1.11.0\n */\n clearHovered: () => void;\n\n /**\n * 获取当前主题,会返回完整的主题配置(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n * */\n getCurrentTheme: () => ITheme;\n\n /**\n * 获取当前主题名称(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n */\n getCurrentThemeName: () => string;\n\n /**\n * **异步方法**, 设置当前主题。\n * @param name 主题名称\n * @returns\n */\n setCurrentTheme: (name: string) => Promise<IVChart>;\n\n /**\n * 自定义 TooltipHandler。\n * @param tooltipHandler\n */\n setTooltipHandler: (tooltipHandler: ITooltipHandler) => void;\n\n /**\n * 获取用户定义的 TooltipHandler\n * @returns ITooltipHandler\n */\n getTooltipHandlerByUser: () => ITooltipHandler | undefined;\n\n /**\n * 获取 TooltipHandler\n * @returns\n */\n getTooltipHandler: () => ITooltipHandler | undefined;\n\n /**\n * 手动调用展示 tooltip\n * @param datum 原始数据\n * @param options\n * @returns\n */\n showTooltip: (datum: Datum, options: IShowTooltipOption) => boolean;\n\n /**\n * 手动调用,关闭 tooltip\n * @returns\n */\n hideTooltip: () => boolean;\n\n // 图例相关 api\n /**\n * 根据图例组件 id 获取图例数据\n * @param id 组件 id\n * @returns\n */\n getLegendDataById: (id: string) => Datum[];\n\n /**\n * 根据图例组件索引获取图例数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendDataByIndex: (index?: number) => Datum[];\n\n /**\n * 根据图例组件 id 获取当前图例的选中项\n * @param id 组件 id\n * @returns\n */\n getLegendSelectedDataById: (id: string) => StringOrNumber[];\n\n /**\n * 根据图例组件索引获取当前图例的选中项\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendSelectedDataByIndex: (index?: number) => StringOrNumber[];\n\n /**\n * 根据图例组件 id 更新图例选中数据\n * @param id\n * @returns\n */\n setLegendSelectedDataById: (id: string, selectedData: StringOrNumber[]) => void;\n\n /**\n * 根据图例组件索引更新图例选中数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n setLegendSelectedDataByIndex: (index: number, selectedData: StringOrNumber[]) => void;\n\n /**\n * **异步方法**返回一个包含图片展示的 data URI。\n * @returns data URI\n */\n getDataURL: () => Promise<any>;\n\n /**\n * **异步方法** 导出图表图片,只支持浏览器端。\n * @param name 保存的图片名称\n * @returns\n */\n exportImg: (name?: string) => Promise<void>;\n\n /**\n * 导出绘制了图表内容的 canvas\n * @returns HTMLCanvasElement\n * @since 1.5.2\n */\n exportCanvas: () => HTMLCanvasElement | undefined;\n\n /**\n * 目前仅支持 node 环境,用于 node 端的图片导出\n * @returns\n */\n getImageBuffer: () => void;\n /**\n * 设置自定义布局\n */\n setLayout: (layout: LayoutCallBack) => void;\n /**\n * 强制重新布局\n */\n reLayout: () => void;\n\n /**\n * 获取编译器实例\n * @returns\n */\n getCompiler: () => Compiler;\n\n /**\n * Get the chart instance\n * 获取 Chart 图表实例。\n * @returns Chart 实例\n */\n getChart: () => Maybe<IChart>;\n\n /**\n * Get the renderer instance.\n * 获取渲染引擎实例。\n * @returns the instance of VRender Stage\n */\n getStage: () => Stage;\n\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas: () => HTMLCanvasElement | undefined;\n\n /**\n * 获取图表的 dom 容器\n * @returns\n */\n getContainer: () => Maybe<HTMLElement>;\n\n /**\n * 获取图表所有的组件实例\n * @returns 组件实例\n */\n getComponents: () => IComponent[];\n\n /**\n * 获取图表的 DataSet 实例\n * @returns DataSet 实例\n */\n getDataSet: () => Maybe<DataSet>;\n\n /**\n * 获取图表的 Scale 实例\n * @param scaleId scale 的id\n * @returns Scale 实例\n * @since 1.10.4\n */\n getScale: (scaleId: string) => IBaseScale | null;\n\n // 数据转换相关的 api\n /**\n * Convert the data to coordinate position\n * @param datum the datum to convert\n * @param dataLinkInfo the data link info, could be seriesId or seriesIndex, default is { seriesIndex: 0 }\n * @param isRelativeToCanvas 是否相对画布坐标,默认为 false Whether relative to canvas coordinates, default is false\n * @param checkInViewData 是否检查数据对应的图元是否在视图中,如果不在视图中,返回 null\n * @returns\n */\n convertDatumToPosition: (\n datum: Datum,\n dataLinkInfo?: DataLinkSeries,\n isRelativeToCanvas?: boolean,\n checkInViewData?: boolean\n ) => IPoint | null;\n\n /**\n * Convert the value to coordinate position\n * @param value number | [number, number], the value to convert\n * @param dataLinkInfo the data link info, could be seriesId,seriesIndex,axisId,axisIndex\n * @param isRelativeToCanvas 是否相对画布坐标,默认为 false Whether relative to canvas coordinates, default is false\n * returns\n */\n convertValueToPosition: ((\n value: StringOrNumber,\n dataLinkInfo: DataLinkAxis,\n isRelativeToCanvas?: boolean\n ) => number | null) &\n ((\n value: [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkSeries,\n isRelativeToCanvas?: boolean\n ) => IPoint | null);\n\n /** 停止正在进行的所有动画 */\n stopAnimation: () => void;\n\n /** 暂停正在进行的所有动画 */\n pauseAnimation: () => void;\n\n /** 恢复暂停时正在进行的所有动画 */\n resumeAnimation: () => void;\n\n /** 注册实例函数 */\n registerFunction: (key: string, fun: Function) => void;\n\n /** 注销实例函数 */\n unregisterFunction: (key: string) => void;\n\n /** 获取实例函数 */\n getFunction: (key: string) => Function | null;\n\n /** 获取实例函数列表 */\n getFunctionList: () => string[] | null;\n\n /** 获取图表 spec 详细信息 */\n getSpecInfo: () => IChartSpecInfo;\n\n /** 设置运行时 spec */\n setRuntimeSpec: (spec: any) => void;\n\n /** 获取运行时 spec */\n getSpec: () => any;\n\n /** 获取当前容器宽高 */\n getCurrentSize: () => IContainerSize;\n}\n\nexport interface IGlobalConfig {\n /** 是否全局显示唯一 tooltip */\n uniqueTooltip?: boolean;\n /** 是否监测图表 dom 变化自动 release */\n // TODO\n // autoRelease?: boolean;\n}\n\nexport interface IVChartRenderOption {\n /** morphing 动画 spec */\n morphConfig?: IMorphConfig;\n /** 是否重新转换图表 spec */\n transformSpec?: boolean;\n actionSource?: VChartRenderActionSource;\n}\n\nexport type VChartRenderActionSource =\n | 'render'\n | 'updateSpec'\n | 'updateModelSpec'\n | 'setCurrentTheme'\n | 'updateSpecAndRecompile';\n"]}
@@ -17,7 +17,7 @@ import type { Datum, IPoint, IRegionQuerier, IShowTooltipOption, ISpec, Maybe, M
17
17
  import type { IBoundsLike, ILogger } from '@visactor/vutils';
18
18
  import { ThemeManager } from '../theme/theme-manager';
19
19
  import type { ITheme } from '../theme';
20
- import type { IModel, IUpdateSpecResult } from '../model/interface';
20
+ import type { IModel, IUpdateDataResult, IUpdateSpecResult } from '../model/interface';
21
21
  import { Compiler } from '../compile/compiler';
22
22
  import type { IMorphConfig } from '../animation/spec';
23
23
  import type { DataLinkAxis, DataLinkSeries, IGlobalConfig, IVChart, IVChartRenderOption } from './interface';
@@ -102,18 +102,18 @@ export declare class VChart implements IVChart {
102
102
  protected _renderAsync(option?: IVChartRenderOption): Promise<IVChart>;
103
103
  private _updateAnimateState;
104
104
  release(): void;
105
- updateData(id: StringOrNumber, data: DataView | Datum[] | string, options?: IParserOptions): Promise<IVChart>;
105
+ updateData(id: StringOrNumber, data: DataView | Datum[] | string, parserOptions?: IParserOptions, userUpdateOptions?: IUpdateDataResult): Promise<IVChart>;
106
106
  private _updateDataById;
107
107
  updateDataInBatches(list: {
108
108
  id: string;
109
109
  data: Datum[];
110
110
  options?: IParserOptions;
111
111
  }[]): Promise<IVChart>;
112
- updateDataSync(id: StringOrNumber, data: DataView | Datum[] | string, options?: IParserOptions): IVChart;
113
- updateFullDataSync(data: IDataValues | IDataValues[], reRender?: boolean): IVChart;
112
+ updateDataSync(id: StringOrNumber, data: DataView | Datum[] | string, parserOptions?: IParserOptions, userUpdateOptions?: IUpdateDataResult): IVChart;
113
+ updateFullDataSync(data: IDataValues | IDataValues[], reRender?: boolean, userUpdateOptions?: IUpdateSpecResult): IVChart;
114
114
  updateFullData(data: IDataValues | IDataValues[], reRender?: boolean): Promise<IVChart>;
115
- updateSpec(spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig): Promise<IVChart>;
116
- updateSpecSync(spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig): IVChart;
115
+ updateSpec(spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig, userUpdateOptions?: IUpdateSpecResult): Promise<IVChart>;
116
+ updateSpecSync(spec: ISpec, forceMerge?: boolean, morphConfig?: IMorphConfig, userUpdateOptions?: IUpdateSpecResult): IVChart;
117
117
  updateSpecAndRecompile(spec: ISpec, forceMerge?: boolean, option?: IVChartRenderOption): boolean;
118
118
  private _updateSpec;
119
119
  updateModelSpec(filter: string | {
@@ -184,6 +184,8 @@ export declare class VChart implements IVChart {
184
184
  unregisterFunction(key: string): void;
185
185
  getFunctionList(): string[];
186
186
  setRuntimeSpec(spec: any): void;
187
+ updateIndicatorDataById(id: string, datum?: Datum): void;
188
+ updateIndicatorDataByIndex(index?: number, datum?: Datum): void;
187
189
  private _initChartPlugin;
188
190
  private _chartPluginApply;
189
191
  protected _getMode(): (typeof RenderModeEnum)["desktop-browser"] | "desktop-browser" | "mobile-browser" | "node" | "worker" | "miniApp" | "wx" | "tt" | "harmony" | "desktop-miniApp" | "lynx";
@@ -82,7 +82,7 @@ import { getCanvasDataURL, URLToImage } from "../util/image";
82
82
 
83
83
  import { ChartEvent, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, VGRAMMAR_HOOK_EVENT } from "../constant";
84
84
 
85
- import { isArray, isEmpty, Logger, merge as mergeOrigin, isFunction, LoggerLevel, isEqual, get, cloneDeep } from "@visactor/vutils";
85
+ import { isArray, isEmpty, Logger, merge as mergeOrigin, isFunction, LoggerLevel, isEqual, get, cloneDeep, isObject } from "@visactor/vutils";
86
86
 
87
87
  import { InstanceManager } from "./instance-manager";
88
88
 
@@ -314,6 +314,7 @@ export class VChart {
314
314
  }
315
315
  updateCustomConfigAndRerender(updateSpecResult, sync, option = {}) {
316
316
  if (!this._isReleased && updateSpecResult) return isFunction(updateSpecResult) && (updateSpecResult = updateSpecResult()),
317
+ updateSpecResult.reAnimate && (this.stopAnimation(), this._updateAnimateState(!0)),
317
318
  this._reCompile(updateSpecResult), sync ? this._renderSync(option) : this._renderAsync(option);
318
319
  }
319
320
  _updateCustomConfigAndRecompile(updateSpecResult, option = {}) {
@@ -388,15 +389,18 @@ export class VChart {
388
389
  return this._renderSync(option);
389
390
  }));
390
391
  }
391
- _updateAnimateState() {
392
+ _updateAnimateState(initial) {
392
393
  var _a, _b;
393
- this._option.animation && (null === (_a = this._chart) || void 0 === _a || _a.getAllRegions().forEach((region => {
394
- var _a;
395
- null === (_a = region.animate) || void 0 === _a || _a.updateAnimateState(AnimationStateEnum.update, !0);
396
- })), null === (_b = this._chart) || void 0 === _b || _b.getAllComponents().forEach((component => {
397
- var _a;
398
- null === (_a = component.animate) || void 0 === _a || _a.updateAnimateState(AnimationStateEnum.update, !0);
399
- })));
394
+ if (this._option.animation) {
395
+ const animationState = initial ? AnimationStateEnum.appear : AnimationStateEnum.update;
396
+ null === (_a = this._chart) || void 0 === _a || _a.getAllRegions().forEach((region => {
397
+ var _a;
398
+ null === (_a = region.animate) || void 0 === _a || _a.updateAnimateState(animationState, !0);
399
+ })), null === (_b = this._chart) || void 0 === _b || _b.getAllComponents().forEach((component => {
400
+ var _a;
401
+ null === (_a = component.animate) || void 0 === _a || _a.updateAnimateState(animationState, !0);
402
+ }));
403
+ }
400
404
  }
401
405
  release() {
402
406
  var _a, _b, _c, _d;
@@ -409,14 +413,14 @@ export class VChart {
409
413
  this._spec = null, this._specInfo = null, this._originalSpec = null, this._userEvents = null,
410
414
  this._event = null, this._eventDispatcher = null, this._isReleased = !0, InstanceManager.unregisterInstance(this);
411
415
  }
412
- updateData(id, data, options) {
416
+ updateData(id, data, parserOptions, userUpdateOptions) {
413
417
  return __awaiter(this, void 0, void 0, (function*() {
414
- return this.updateDataSync(id, data, options);
418
+ return this.updateDataSync(id, data, parserOptions, userUpdateOptions);
415
419
  }));
416
420
  }
417
- _updateDataById(id, data, options) {
421
+ _updateDataById(id, data, parserOptions) {
418
422
  const preDV = this._spec.data.find((dv => dv.name === id || dv.id === id));
419
- preDV ? preDV.id === id ? preDV.values = data : preDV.name === id && preDV.parse(data, options) : isArray(data) ? this._spec.data.push({
423
+ preDV ? preDV.id === id ? preDV.values = data : preDV.name === id && preDV.parse(data, parserOptions) : isArray(data) ? this._spec.data.push({
420
424
  id: id,
421
425
  values: data
422
426
  }) : this._spec.data.push(data);
@@ -433,13 +437,15 @@ export class VChart {
433
437
  })), this);
434
438
  }));
435
439
  }
436
- updateDataSync(id, data, options) {
437
- return isNil(this._dataSet) ? this : this._chart ? (this._chart.updateData(id, data, !0, options),
438
- this._compiler.render(), this) : (this._spec.data = array(this._spec.data), this._updateDataById(id, data, options),
440
+ updateDataSync(id, data, parserOptions, userUpdateOptions) {
441
+ return isNil(this._dataSet) ? this : this._chart ? ((null == userUpdateOptions ? void 0 : userUpdateOptions.reAnimate) && (this.stopAnimation(),
442
+ this._updateAnimateState(!0)), this._chart.updateData(id, data, !0, parserOptions),
443
+ this._compiler.render(), this) : (this._spec.data = array(this._spec.data), this._updateDataById(id, data, parserOptions),
439
444
  this);
440
445
  }
441
- updateFullDataSync(data, reRender = !0) {
442
- if (this._chart) return this._chart.updateFullData(data), reRender && this._compiler.render(),
446
+ updateFullDataSync(data, reRender = !0, userUpdateOptions) {
447
+ if (this._chart) return (null == userUpdateOptions ? void 0 : userUpdateOptions.reAnimate) && (this.stopAnimation(),
448
+ this._updateAnimateState(!0)), this._chart.updateFullData(data), reRender && this._compiler.render(),
443
449
  this;
444
450
  const prevData = array(this._spec.data);
445
451
  return array(data).forEach((d => {
@@ -459,9 +465,9 @@ export class VChart {
459
465
  return this.updateFullDataSync(data, reRender);
460
466
  }));
461
467
  }
462
- updateSpec(spec, forceMerge = !1, morphConfig) {
468
+ updateSpec(spec, forceMerge = !1, morphConfig, userUpdateOptions) {
463
469
  return __awaiter(this, void 0, void 0, (function*() {
464
- const result = this._updateSpec(spec, forceMerge);
470
+ const result = this._updateSpec(spec, forceMerge, userUpdateOptions);
465
471
  return result ? (yield this.updateCustomConfigAndRerender(result, !1, {
466
472
  morphConfig: morphConfig,
467
473
  transformSpec: result.reTransformSpec,
@@ -469,8 +475,8 @@ export class VChart {
469
475
  }), this) : this;
470
476
  }));
471
477
  }
472
- updateSpecSync(spec, forceMerge = !1, morphConfig) {
473
- const result = this._updateSpec(spec, forceMerge);
478
+ updateSpecSync(spec, forceMerge = !1, morphConfig, userUpdateOptions) {
479
+ const result = this._updateSpec(spec, forceMerge, userUpdateOptions);
474
480
  return result ? (this.updateCustomConfigAndRerender(result, !0, {
475
481
  morphConfig: morphConfig,
476
482
  transformSpec: result.reTransformSpec,
@@ -483,26 +489,29 @@ export class VChart {
483
489
  actionSource: "updateSpecAndRecompile"
484
490
  }, option));
485
491
  }
486
- _updateSpec(spec, forceMerge = !1) {
492
+ _updateSpec(spec, forceMerge = !1, userUpdateOptions) {
487
493
  var _a, _b;
488
494
  const lastSpec = this._spec;
489
495
  if (!this._setNewSpec(spec, forceMerge)) return;
490
496
  isEqual(lastSpec.theme, this._spec.theme) || this._setCurrentTheme();
491
497
  const reSize = this._shouldChartResize(lastSpec);
492
- return null === (_b = null === (_a = this._compiler) || void 0 === _a ? void 0 : _a.getVGrammarView()) || void 0 === _b || _b.updateLayoutTag(),
493
- this._spec.type !== lastSpec.type ? {
498
+ if (null === (_b = null === (_a = this._compiler) || void 0 === _a ? void 0 : _a.getVGrammarView()) || void 0 === _b || _b.updateLayoutTag(),
499
+ this._spec.type !== lastSpec.type) return {
494
500
  reTransformSpec: !0,
495
501
  change: !0,
496
502
  reMake: !0,
497
503
  reCompile: !1,
498
504
  reSize: reSize
499
- } : (this._initChartSpec(this._spec, "render"), mergeUpdateResult(this._chart.updateSpec(this._spec), {
505
+ };
506
+ this._initChartSpec(this._spec, "render");
507
+ const res = mergeUpdateResult(this._chart.updateSpec(this._spec), {
500
508
  reTransformSpec: !1,
501
509
  change: reSize,
502
510
  reMake: !1,
503
511
  reCompile: !1,
504
512
  reSize: reSize
505
- }));
513
+ });
514
+ return userUpdateOptions ? Object.assign(Object.assign({}, res), userUpdateOptions) : res;
506
515
  }
507
516
  updateModelSpec(filter, spec, forceMerge = !1, morphConfig) {
508
517
  return __awaiter(this, void 0, void 0, (function*() {
@@ -621,7 +630,7 @@ export class VChart {
621
630
  this._autoSize !== lasAutoSize && (resize = !0), resize;
622
631
  }
623
632
  _getBackground() {
624
- return ("string" == typeof this._spec.background ? this._spec.background : null) || this._currentTheme.background || this._option.background;
633
+ return ("string" == typeof this._spec.background || isObject(this._spec.background) && this._spec.background.gradient ? this._spec.background : null) || this._currentTheme.background || this._option.background;
625
634
  }
626
635
  getCurrentTheme() {
627
636
  return getThemeObject(this._currentThemeName);
@@ -858,6 +867,16 @@ export class VChart {
858
867
  setRuntimeSpec(spec) {
859
868
  this._spec = spec, this._updateSpecInfo();
860
869
  }
870
+ updateIndicatorDataById(id, datum) {
871
+ var _a;
872
+ const indicator = null === (_a = this._chart) || void 0 === _a ? void 0 : _a.getComponentByUserId(id);
873
+ indicator && indicator.updateDatum(datum);
874
+ }
875
+ updateIndicatorDataByIndex(index = 0, datum) {
876
+ var _a;
877
+ const indicators = null === (_a = this._chart) || void 0 === _a ? void 0 : _a.getComponentsByType(ComponentTypeEnum.indicator);
878
+ indicators && indicators[index] && indicators[index].updateDatum(datum);
879
+ }
861
880
  _initChartPlugin() {
862
881
  const pluginList = Factory.getChartPlugins();
863
882
  pluginList.length > 0 && (this._chartPlugin = new ChartPluginService(this), this._chartPlugin.load(pluginList.map((p => new p))),