@visactor/vchart 1.5.4 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1508) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +32345 -31832
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/animate-manager.d.ts +1 -1
  6. package/cjs/animation/animate-manager.js +4 -4
  7. package/cjs/animation/animate-manager.js.map +1 -1
  8. package/cjs/animation/utils.d.ts +8 -10
  9. package/cjs/animation/utils.js +35 -10
  10. package/cjs/animation/utils.js.map +1 -1
  11. package/cjs/chart/area/area.d.ts +1 -0
  12. package/cjs/chart/area/area.js +10 -5
  13. package/cjs/chart/area/area.js.map +1 -1
  14. package/cjs/chart/bar/bar-3d.js +3 -4
  15. package/cjs/chart/bar/bar-3d.js.map +1 -1
  16. package/cjs/chart/bar/bar.d.ts +1 -0
  17. package/cjs/chart/bar/bar.js +6 -3
  18. package/cjs/chart/bar/bar.js.map +1 -1
  19. package/cjs/chart/base-chart.d.ts +4 -4
  20. package/cjs/chart/base-chart.js +4 -11
  21. package/cjs/chart/base-chart.js.map +1 -1
  22. package/cjs/chart/box-plot/box-plot.js +3 -3
  23. package/cjs/chart/box-plot/box-plot.js.map +1 -1
  24. package/cjs/chart/circle-packing/circle-packing.js +4 -4
  25. package/cjs/chart/circle-packing/circle-packing.js.map +1 -1
  26. package/cjs/chart/common/common.d.ts +1 -0
  27. package/cjs/chart/common/common.js +3 -3
  28. package/cjs/chart/common/common.js.map +1 -1
  29. package/cjs/chart/common/interface.d.ts +1 -1
  30. package/cjs/chart/common/interface.js.map +1 -1
  31. package/cjs/chart/correlation/correlation.js +4 -4
  32. package/cjs/chart/correlation/correlation.js.map +1 -1
  33. package/cjs/chart/funnel/funnel-3d.js +3 -3
  34. package/cjs/chart/funnel/funnel-3d.js.map +1 -1
  35. package/cjs/chart/funnel/funnel.js +3 -3
  36. package/cjs/chart/funnel/funnel.js.map +1 -1
  37. package/cjs/chart/gauge/gauge.js +3 -4
  38. package/cjs/chart/gauge/gauge.js.map +1 -1
  39. package/cjs/chart/heatmap/heatmap.js +3 -3
  40. package/cjs/chart/heatmap/heatmap.js.map +1 -1
  41. package/cjs/chart/histogram/base.d.ts +1 -0
  42. package/cjs/chart/histogram/base.js +3 -0
  43. package/cjs/chart/histogram/base.js.map +1 -1
  44. package/cjs/chart/histogram/histogram-3d.js +3 -3
  45. package/cjs/chart/histogram/histogram-3d.js.map +1 -1
  46. package/cjs/chart/histogram/histogram.js +3 -3
  47. package/cjs/chart/histogram/histogram.js.map +1 -1
  48. package/cjs/chart/line/line.d.ts +1 -0
  49. package/cjs/chart/line/line.js +10 -5
  50. package/cjs/chart/line/line.js.map +1 -1
  51. package/cjs/chart/pie/pie-3d.js +3 -4
  52. package/cjs/chart/pie/pie-3d.js.map +1 -1
  53. package/cjs/chart/pie/pie.js +3 -3
  54. package/cjs/chart/pie/pie.js.map +1 -1
  55. package/cjs/chart/polar/rose-like.d.ts +1 -0
  56. package/cjs/chart/polar/rose-like.js +3 -0
  57. package/cjs/chart/polar/rose-like.js.map +1 -1
  58. package/cjs/chart/progress/circular/circular.d.ts +1 -0
  59. package/cjs/chart/progress/circular/circular.js +2 -1
  60. package/cjs/chart/progress/circular/circular.js.map +1 -1
  61. package/cjs/chart/progress/linear/linear.d.ts +1 -0
  62. package/cjs/chart/progress/linear/linear.js +2 -1
  63. package/cjs/chart/progress/linear/linear.js.map +1 -1
  64. package/cjs/chart/radar/radar.js +7 -5
  65. package/cjs/chart/radar/radar.js.map +1 -1
  66. package/cjs/chart/range-area/range-area.js +3 -3
  67. package/cjs/chart/range-area/range-area.js.map +1 -1
  68. package/cjs/chart/range-column/range-column-3d.js +3 -3
  69. package/cjs/chart/range-column/range-column-3d.js.map +1 -1
  70. package/cjs/chart/range-column/range-column.js +3 -3
  71. package/cjs/chart/range-column/range-column.js.map +1 -1
  72. package/cjs/chart/rose/rose.js +3 -4
  73. package/cjs/chart/rose/rose.js.map +1 -1
  74. package/cjs/chart/sankey/sankey.js +3 -3
  75. package/cjs/chart/sankey/sankey.js.map +1 -1
  76. package/cjs/chart/scatter/scatter.d.ts +1 -0
  77. package/cjs/chart/scatter/scatter.js +4 -3
  78. package/cjs/chart/scatter/scatter.js.map +1 -1
  79. package/cjs/chart/sequence/sequence.js +3 -3
  80. package/cjs/chart/sequence/sequence.js.map +1 -1
  81. package/cjs/chart/stack.js +11 -6
  82. package/cjs/chart/stack.js.map +1 -1
  83. package/cjs/chart/sunburst/sunburst.js +4 -4
  84. package/cjs/chart/sunburst/sunburst.js.map +1 -1
  85. package/cjs/chart/treemap/treemap.js +3 -3
  86. package/cjs/chart/treemap/treemap.js.map +1 -1
  87. package/cjs/chart/waterfall/waterfall.js +3 -3
  88. package/cjs/chart/waterfall/waterfall.js.map +1 -1
  89. package/cjs/chart/word-cloud/base.js +2 -2
  90. package/cjs/chart/word-cloud/base.js.map +1 -1
  91. package/cjs/chart/word-cloud/word-cloud-3d.d.ts +1 -0
  92. package/cjs/chart/word-cloud/word-cloud-3d.js +10 -4
  93. package/cjs/chart/word-cloud/word-cloud-3d.js.map +1 -1
  94. package/cjs/chart/word-cloud/word-cloud.d.ts +1 -0
  95. package/cjs/chart/word-cloud/word-cloud.js +10 -5
  96. package/cjs/chart/word-cloud/word-cloud.js.map +1 -1
  97. package/cjs/compile/compiler.js +7 -7
  98. package/cjs/compile/compiler.js.map +1 -1
  99. package/cjs/compile/data/compilable-data.d.ts +1 -1
  100. package/cjs/compile/data/compilable-data.js +3 -3
  101. package/cjs/compile/data/compilable-data.js.map +1 -1
  102. package/cjs/compile/grammar-item.js +7 -7
  103. package/cjs/compile/grammar-item.js.map +1 -1
  104. package/cjs/compile/mark/compilable-mark.d.ts +3 -2
  105. package/cjs/compile/mark/compilable-mark.js +23 -19
  106. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  107. package/cjs/compile/mark/mark-state-manager.js +4 -4
  108. package/cjs/compile/mark/mark-state-manager.js.map +1 -1
  109. package/cjs/compile/signal/compilable-signal.d.ts +1 -1
  110. package/cjs/compile/signal/compilable-signal.js +3 -3
  111. package/cjs/compile/signal/compilable-signal.js.map +1 -1
  112. package/cjs/compile/util.js +9 -9
  113. package/cjs/compile/util.js.map +1 -1
  114. package/cjs/component/axis/base-axis.d.ts +2 -2
  115. package/cjs/component/axis/base-axis.js +42 -39
  116. package/cjs/component/axis/base-axis.js.map +1 -1
  117. package/cjs/component/axis/cartesian/axis.d.ts +5 -3
  118. package/cjs/component/axis/cartesian/axis.js +35 -31
  119. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  120. package/cjs/component/axis/cartesian/band-axis.d.ts +2 -3
  121. package/cjs/component/axis/cartesian/band-axis.js +3 -9
  122. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  123. package/cjs/component/axis/cartesian/interface/common.d.ts +2 -6
  124. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  125. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  126. package/cjs/component/axis/cartesian/linear-axis.d.ts +2 -2
  127. package/cjs/component/axis/cartesian/linear-axis.js +6 -6
  128. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  129. package/cjs/component/axis/cartesian/log-axis.d.ts +2 -2
  130. package/cjs/component/axis/cartesian/log-axis.js +4 -4
  131. package/cjs/component/axis/cartesian/log-axis.js.map +1 -1
  132. package/cjs/component/axis/cartesian/symlog-axis.d.ts +2 -2
  133. package/cjs/component/axis/cartesian/symlog-axis.js +4 -4
  134. package/cjs/component/axis/cartesian/symlog-axis.js.map +1 -1
  135. package/cjs/component/axis/cartesian/time-axis.d.ts +3 -3
  136. package/cjs/component/axis/cartesian/time-axis.js +14 -12
  137. package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
  138. package/cjs/component/axis/cartesian/util/common.d.ts +1 -1
  139. package/cjs/component/axis/cartesian/util/common.js +4 -4
  140. package/cjs/component/axis/cartesian/util/common.js.map +1 -1
  141. package/cjs/component/axis/interface/common.d.ts +38 -0
  142. package/cjs/component/axis/{interface.js → interface/common.js} +1 -1
  143. package/cjs/component/axis/interface/common.js.map +1 -0
  144. package/cjs/component/axis/interface/index.d.ts +3 -0
  145. package/cjs/component/axis/interface/index.js +22 -0
  146. package/cjs/component/axis/interface/index.js.map +1 -0
  147. package/{esm/component/axis/interface.d.ts → cjs/component/axis/interface/spec.d.ts} +4 -50
  148. package/cjs/component/axis/interface/spec.js +6 -0
  149. package/cjs/component/axis/interface/spec.js.map +1 -0
  150. package/cjs/component/axis/interface/theme.d.ts +15 -0
  151. package/cjs/component/axis/interface/theme.js +6 -0
  152. package/cjs/component/axis/interface/theme.js.map +1 -0
  153. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +5 -0
  154. package/cjs/component/axis/mixin/band-axis-mixin.js +9 -3
  155. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  156. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +1 -2
  157. package/cjs/component/axis/mixin/linear-axis-mixin.js +21 -21
  158. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  159. package/cjs/component/axis/polar/axis.d.ts +6 -3
  160. package/cjs/component/axis/polar/axis.js +35 -33
  161. package/cjs/component/axis/polar/axis.js.map +1 -1
  162. package/cjs/component/axis/polar/band-axis.d.ts +2 -3
  163. package/cjs/component/axis/polar/band-axis.js +4 -10
  164. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  165. package/cjs/component/axis/polar/interface/common.js.map +1 -1
  166. package/cjs/component/axis/polar/linear-axis.d.ts +1 -1
  167. package/cjs/component/axis/polar/linear-axis.js +4 -4
  168. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  169. package/cjs/component/axis/util.js +10 -10
  170. package/cjs/component/axis/util.js.map +1 -1
  171. package/cjs/component/base/base-component.js +4 -4
  172. package/cjs/component/base/base-component.js.map +1 -1
  173. package/cjs/component/base/util.d.ts +1 -1
  174. package/cjs/component/base/util.js +26 -26
  175. package/cjs/component/base/util.js.map +1 -1
  176. package/cjs/component/brush/brush.d.ts +2 -2
  177. package/cjs/component/brush/brush.js +5 -5
  178. package/cjs/component/brush/brush.js.map +1 -1
  179. package/cjs/component/common/trigger/config.js +3 -3
  180. package/cjs/component/common/trigger/config.js.map +1 -1
  181. package/cjs/component/crosshair/base.d.ts +1 -1
  182. package/cjs/component/crosshair/base.js +12 -12
  183. package/cjs/component/crosshair/base.js.map +1 -1
  184. package/cjs/component/crosshair/cartesian.d.ts +1 -1
  185. package/cjs/component/crosshair/cartesian.js +15 -15
  186. package/cjs/component/crosshair/cartesian.js.map +1 -1
  187. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  188. package/cjs/component/crosshair/interface/theme.d.ts +6 -6
  189. package/cjs/component/crosshair/interface/theme.js.map +1 -1
  190. package/cjs/component/crosshair/polar.d.ts +1 -1
  191. package/cjs/component/crosshair/polar.js +15 -15
  192. package/cjs/component/crosshair/polar.js.map +1 -1
  193. package/cjs/component/crosshair/util.js +11 -9
  194. package/cjs/component/crosshair/util.js.map +1 -1
  195. package/cjs/component/custom-mark/custom-mark.d.ts +2 -2
  196. package/cjs/component/custom-mark/custom-mark.js +4 -4
  197. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  198. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
  199. package/cjs/component/data-zoom/data-filter-base-component.js +34 -31
  200. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  201. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  202. package/cjs/component/data-zoom/data-zoom/data-zoom.js +6 -6
  203. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  204. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -1
  205. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +4 -4
  206. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  207. package/cjs/component/geo/geo-coordinate.d.ts +2 -2
  208. package/cjs/component/geo/geo-coordinate.js +14 -14
  209. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  210. package/cjs/component/index.d.ts +26 -22
  211. package/cjs/component/index.js +9 -8
  212. package/cjs/component/index.js.map +1 -1
  213. package/cjs/component/indicator/indicator.d.ts +2 -2
  214. package/cjs/component/indicator/indicator.js +21 -19
  215. package/cjs/component/indicator/indicator.js.map +1 -1
  216. package/cjs/component/label/base-label.d.ts +2 -2
  217. package/cjs/component/label/base-label.js +4 -4
  218. package/cjs/component/label/base-label.js.map +1 -1
  219. package/cjs/component/label/interface.d.ts +2 -2
  220. package/cjs/component/label/interface.js.map +1 -1
  221. package/cjs/component/label/label.d.ts +1 -1
  222. package/cjs/component/label/label.js +10 -10
  223. package/cjs/component/label/label.js.map +1 -1
  224. package/cjs/component/label/totalLabel.d.ts +1 -1
  225. package/cjs/component/label/totalLabel.js +9 -9
  226. package/cjs/component/label/totalLabel.js.map +1 -1
  227. package/cjs/component/label/util.d.ts +11 -3
  228. package/cjs/component/label/util.js +26 -15
  229. package/cjs/component/label/util.js.map +1 -1
  230. package/cjs/component/legend/base-legend.d.ts +3 -3
  231. package/cjs/component/legend/base-legend.js +17 -17
  232. package/cjs/component/legend/base-legend.js.map +1 -1
  233. package/cjs/component/legend/continuous/legend.d.ts +1 -1
  234. package/cjs/component/legend/continuous/legend.js +18 -15
  235. package/cjs/component/legend/continuous/legend.js.map +1 -1
  236. package/cjs/component/legend/continuous/util.js +4 -4
  237. package/cjs/component/legend/continuous/util.js.map +1 -1
  238. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  239. package/cjs/component/legend/discrete/legend.js +16 -13
  240. package/cjs/component/legend/discrete/legend.js.map +1 -1
  241. package/cjs/component/legend/discrete/util.js +7 -7
  242. package/cjs/component/legend/discrete/util.js.map +1 -1
  243. package/cjs/component/legend/util.d.ts +1 -1
  244. package/cjs/component/legend/util.js +2 -2
  245. package/cjs/component/legend/util.js.map +1 -1
  246. package/cjs/component/map-label/component.d.ts +2 -2
  247. package/cjs/component/map-label/component.js +10 -8
  248. package/cjs/component/map-label/component.js.map +1 -1
  249. package/cjs/component/marker/base-marker.d.ts +1 -1
  250. package/cjs/component/marker/base-marker.js +2 -2
  251. package/cjs/component/marker/base-marker.js.map +1 -1
  252. package/cjs/component/marker/interface.d.ts +1 -1
  253. package/cjs/component/marker/interface.js.map +1 -1
  254. package/cjs/component/marker/mark-area/mark-area.d.ts +1 -1
  255. package/cjs/component/marker/mark-area/mark-area.js +7 -5
  256. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  257. package/cjs/component/marker/mark-line/mark-line.d.ts +1 -1
  258. package/cjs/component/marker/mark-line/mark-line.js +9 -7
  259. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  260. package/cjs/component/marker/mark-point/mark-point.d.ts +1 -1
  261. package/cjs/component/marker/mark-point/mark-point.js +7 -5
  262. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  263. package/cjs/component/player/player.d.ts +2 -2
  264. package/cjs/component/player/player.js +9 -9
  265. package/cjs/component/player/player.js.map +1 -1
  266. package/cjs/component/title/title.d.ts +2 -2
  267. package/cjs/component/title/title.js +10 -10
  268. package/cjs/component/title/title.js.map +1 -1
  269. package/cjs/component/title/utils.js.map +1 -1
  270. package/cjs/component/tooltip/handler/base.d.ts +5 -6
  271. package/cjs/component/tooltip/handler/base.js +51 -49
  272. package/cjs/component/tooltip/handler/base.js.map +1 -1
  273. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +14 -3
  274. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  275. package/cjs/component/tooltip/handler/dom/model/content-column-model.js +5 -5
  276. package/cjs/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  277. package/cjs/component/tooltip/handler/dom/model/content-model.js +2 -2
  278. package/cjs/component/tooltip/handler/dom/model/content-model.js.map +1 -1
  279. package/cjs/component/tooltip/handler/dom/model/shape-model.js +15 -13
  280. package/cjs/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  281. package/cjs/component/tooltip/handler/dom/model/title-model.js +2 -2
  282. package/cjs/component/tooltip/handler/dom/model/title-model.js.map +1 -1
  283. package/cjs/component/tooltip/handler/dom/model/tooltip-model.js +2 -2
  284. package/cjs/component/tooltip/handler/dom/model/tooltip-model.js.map +1 -1
  285. package/cjs/component/tooltip/handler/dom/util.js +6 -6
  286. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  287. package/cjs/component/tooltip/handler/utils/attribute.js +5 -5
  288. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  289. package/cjs/component/tooltip/handler/utils/common.js +9 -9
  290. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  291. package/cjs/component/tooltip/handler/utils/compose.js +8 -8
  292. package/cjs/component/tooltip/handler/utils/compose.js.map +1 -1
  293. package/cjs/component/tooltip/handler/utils/get-spec.js +22 -22
  294. package/cjs/component/tooltip/handler/utils/get-spec.js.map +1 -1
  295. package/cjs/component/tooltip/handler/utils/position.d.ts +1 -1
  296. package/cjs/component/tooltip/handler/utils/position.js +17 -17
  297. package/cjs/component/tooltip/handler/utils/position.js.map +1 -1
  298. package/cjs/component/tooltip/interface/spec.d.ts +2 -1
  299. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  300. package/cjs/component/tooltip/processor/base.d.ts +1 -1
  301. package/cjs/component/tooltip/processor/base.js +4 -4
  302. package/cjs/component/tooltip/processor/base.js.map +1 -1
  303. package/cjs/component/tooltip/tooltip.d.ts +6 -4
  304. package/cjs/component/tooltip/tooltip.js +42 -42
  305. package/cjs/component/tooltip/tooltip.js.map +1 -1
  306. package/cjs/component/tooltip/utils/common.js +4 -4
  307. package/cjs/component/tooltip/utils/common.js.map +1 -1
  308. package/cjs/component/tooltip/utils/show-tooltip.js +15 -15
  309. package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
  310. package/cjs/constant/base.js +2 -1
  311. package/cjs/constant/event.d.ts +0 -1
  312. package/cjs/constant/event.js +15 -16
  313. package/cjs/constant/event.js.map +1 -1
  314. package/cjs/constant/scroll-bar.js +1 -2
  315. package/cjs/core/factory.js +2 -2
  316. package/cjs/core/factory.js.map +1 -1
  317. package/cjs/core/index.d.ts +6 -3
  318. package/cjs/core/index.js +13 -3
  319. package/cjs/core/index.js.map +1 -1
  320. package/cjs/core/vchart.js +69 -67
  321. package/cjs/core/vchart.js.map +1 -1
  322. package/cjs/data/initialize.d.ts +10 -0
  323. package/cjs/data/initialize.js +15 -6
  324. package/cjs/data/initialize.js.map +1 -1
  325. package/cjs/data/transforms/add-property.d.ts +4 -0
  326. package/cjs/data/transforms/add-property.js.map +1 -1
  327. package/cjs/data/transforms/aggregation.js +12 -12
  328. package/cjs/data/transforms/aggregation.js.map +1 -1
  329. package/cjs/data/transforms/copy-data-view.js +2 -2
  330. package/cjs/data/transforms/copy-data-view.js.map +1 -1
  331. package/cjs/data/transforms/correlation.js +6 -6
  332. package/cjs/data/transforms/correlation.js.map +1 -1
  333. package/cjs/data/transforms/data-key.d.ts +13 -3
  334. package/cjs/data/transforms/data-key.js +28 -10
  335. package/cjs/data/transforms/data-key.js.map +1 -1
  336. package/cjs/data/transforms/dimension-statistics.d.ts +10 -4
  337. package/cjs/data/transforms/dimension-statistics.js +17 -14
  338. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  339. package/cjs/data/transforms/drill.js +6 -6
  340. package/cjs/data/transforms/drill.js.map +1 -1
  341. package/cjs/data/transforms/invalid-travel.js +2 -2
  342. package/cjs/data/transforms/invalid-travel.js.map +1 -1
  343. package/cjs/data/transforms/legend-data/continuous/continuous.js +1 -2
  344. package/cjs/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  345. package/cjs/data/transforms/lookup.js +4 -4
  346. package/cjs/data/transforms/lookup.js.map +1 -1
  347. package/cjs/data/transforms/pie.js +3 -3
  348. package/cjs/data/transforms/pie.js.map +1 -1
  349. package/cjs/data/transforms/regression.js +2 -2
  350. package/cjs/data/transforms/regression.js.map +1 -1
  351. package/cjs/data/transforms/stack-split.js +2 -2
  352. package/cjs/data/transforms/stack-split.js.map +1 -1
  353. package/cjs/event/event-dispatcher.js +13 -13
  354. package/cjs/event/event-dispatcher.js.map +1 -1
  355. package/cjs/event/event.js +1 -2
  356. package/cjs/event/events/dimension/base.js +4 -4
  357. package/cjs/event/events/dimension/base.js.map +1 -1
  358. package/cjs/event/events/dimension/dimension-hover.js +4 -4
  359. package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
  360. package/cjs/event/events/dimension/interface.d.ts +1 -1
  361. package/cjs/event/events/dimension/interface.js.map +1 -1
  362. package/cjs/event/events/dimension/util/cartesian.js +3 -3
  363. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  364. package/cjs/event/events/dimension/util/common.js +9 -9
  365. package/cjs/event/events/dimension/util/common.js.map +1 -1
  366. package/cjs/event/events/dimension/util/polar.js +7 -7
  367. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  368. package/cjs/index-lark.d.ts +4 -0
  369. package/cjs/index-lark.js +35 -0
  370. package/cjs/index-lark.js.map +1 -0
  371. package/cjs/index-wx.d.ts +4 -0
  372. package/cjs/index-wx.js +36 -0
  373. package/cjs/index-wx.js.map +1 -0
  374. package/cjs/index.d.ts +0 -3
  375. package/cjs/index.js +3 -21
  376. package/cjs/index.js.map +1 -1
  377. package/cjs/interaction/config.d.ts +2 -2
  378. package/cjs/interaction/config.js +4 -3
  379. package/cjs/interaction/config.js.map +1 -1
  380. package/cjs/interaction/dimension-trigger.js.map +1 -1
  381. package/cjs/interaction/drill/drillable.js +7 -7
  382. package/cjs/interaction/drill/drillable.js.map +1 -1
  383. package/cjs/interaction/trigger.js +30 -28
  384. package/cjs/interaction/trigger.js.map +1 -1
  385. package/cjs/interaction/zoom/zoomable.js +5 -5
  386. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  387. package/cjs/layout/grid-layout/grid-layout.js +10 -9
  388. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  389. package/cjs/layout/index.js +1 -1
  390. package/cjs/layout/interface.js +1 -1
  391. package/cjs/layout/layout3d/index.js +3 -3
  392. package/cjs/layout/layout3d/index.js.map +1 -1
  393. package/cjs/mark/arc-3d.d.ts +1 -1
  394. package/cjs/mark/arc-3d.js +2 -2
  395. package/cjs/mark/arc-3d.js.map +1 -1
  396. package/cjs/mark/arc.d.ts +1 -1
  397. package/cjs/mark/arc.js +4 -4
  398. package/cjs/mark/arc.js.map +1 -1
  399. package/cjs/mark/area.d.ts +1 -1
  400. package/cjs/mark/area.js +2 -2
  401. package/cjs/mark/area.js.map +1 -1
  402. package/cjs/mark/base/base-line.js +4 -4
  403. package/cjs/mark/base/base-line.js.map +1 -1
  404. package/cjs/mark/base/base-mark.d.ts +3 -3
  405. package/cjs/mark/base/base-mark.js +85 -44
  406. package/cjs/mark/base/base-mark.js.map +1 -1
  407. package/cjs/mark/box-plot.d.ts +1 -1
  408. package/cjs/mark/box-plot.js +2 -2
  409. package/cjs/mark/box-plot.js.map +1 -1
  410. package/cjs/mark/cell.d.ts +1 -1
  411. package/cjs/mark/cell.js +2 -2
  412. package/cjs/mark/cell.js.map +1 -1
  413. package/cjs/mark/component.d.ts +1 -1
  414. package/cjs/mark/component.js +2 -2
  415. package/cjs/mark/component.js.map +1 -1
  416. package/cjs/mark/group.d.ts +1 -1
  417. package/cjs/mark/group.js +4 -4
  418. package/cjs/mark/group.js.map +1 -1
  419. package/cjs/mark/image.d.ts +1 -1
  420. package/cjs/mark/image.js +2 -2
  421. package/cjs/mark/image.js.map +1 -1
  422. package/cjs/mark/interface/common.d.ts +12 -2
  423. package/cjs/mark/interface/common.js.map +1 -1
  424. package/cjs/mark/label.d.ts +2 -1
  425. package/cjs/mark/label.js +6 -3
  426. package/cjs/mark/label.js.map +1 -1
  427. package/cjs/mark/line.d.ts +1 -1
  428. package/cjs/mark/line.js +3 -3
  429. package/cjs/mark/line.js.map +1 -1
  430. package/cjs/mark/link-path.d.ts +1 -1
  431. package/cjs/mark/link-path.js +2 -2
  432. package/cjs/mark/link-path.js.map +1 -1
  433. package/cjs/mark/path.d.ts +1 -1
  434. package/cjs/mark/path.js +2 -2
  435. package/cjs/mark/path.js.map +1 -1
  436. package/cjs/mark/polygon/polygon.d.ts +1 -1
  437. package/cjs/mark/polygon/polygon.js +2 -2
  438. package/cjs/mark/polygon/polygon.js.map +1 -1
  439. package/cjs/mark/polygon/pyramid-3d.d.ts +1 -1
  440. package/cjs/mark/polygon/pyramid-3d.js +2 -2
  441. package/cjs/mark/polygon/pyramid-3d.js.map +1 -1
  442. package/cjs/mark/progress-arc.d.ts +1 -1
  443. package/cjs/mark/progress-arc.js +3 -3
  444. package/cjs/mark/progress-arc.js.map +1 -1
  445. package/cjs/mark/rect-3d.d.ts +1 -1
  446. package/cjs/mark/rect-3d.js +2 -2
  447. package/cjs/mark/rect-3d.js.map +1 -1
  448. package/cjs/mark/rect.d.ts +1 -1
  449. package/cjs/mark/rect.js +2 -2
  450. package/cjs/mark/rect.js.map +1 -1
  451. package/cjs/mark/ripple.d.ts +1 -1
  452. package/cjs/mark/ripple.js +2 -2
  453. package/cjs/mark/ripple.js.map +1 -1
  454. package/cjs/mark/rule.d.ts +1 -1
  455. package/cjs/mark/rule.js +2 -2
  456. package/cjs/mark/rule.js.map +1 -1
  457. package/cjs/mark/symbol.d.ts +1 -1
  458. package/cjs/mark/symbol.js +2 -2
  459. package/cjs/mark/symbol.js.map +1 -1
  460. package/cjs/mark/text.d.ts +1 -1
  461. package/cjs/mark/text.js +2 -2
  462. package/cjs/mark/text.js.map +1 -1
  463. package/cjs/mark/utils/common.d.ts +1 -1
  464. package/cjs/mark/utils/common.js +2 -2
  465. package/cjs/mark/utils/common.js.map +1 -1
  466. package/cjs/model/base-model.d.ts +2 -15
  467. package/cjs/model/base-model.js +15 -49
  468. package/cjs/model/base-model.js.map +1 -1
  469. package/cjs/model/interface.d.ts +5 -8
  470. package/cjs/model/interface.js.map +1 -1
  471. package/cjs/model/layout-item.js +16 -16
  472. package/cjs/model/layout-item.js.map +1 -1
  473. package/cjs/plugin/components/basic-plugin.js +2 -2
  474. package/cjs/plugin/components/basic-plugin.js.map +1 -1
  475. package/cjs/plugin/components/plugin-service.js +3 -3
  476. package/cjs/plugin/components/plugin-service.js.map +1 -1
  477. package/cjs/region/region.d.ts +2 -3
  478. package/cjs/region/region.js +17 -17
  479. package/cjs/region/region.js.map +1 -1
  480. package/cjs/scale/global-scale.d.ts +3 -3
  481. package/cjs/scale/global-scale.js +41 -30
  482. package/cjs/scale/global-scale.js.map +1 -1
  483. package/cjs/scale/interface.d.ts +1 -2
  484. package/cjs/scale/interface.js.map +1 -1
  485. package/cjs/series/area/animation.js +3 -3
  486. package/cjs/series/area/animation.js.map +1 -1
  487. package/cjs/series/area/area.d.ts +4 -2
  488. package/cjs/series/area/area.js +32 -20
  489. package/cjs/series/area/area.js.map +1 -1
  490. package/cjs/series/area/constant.js +4 -4
  491. package/cjs/series/area/constant.js.map +1 -1
  492. package/cjs/series/area/interface.d.ts +6 -5
  493. package/cjs/series/area/interface.js.map +1 -1
  494. package/cjs/series/area/tooltip-helpter.js +3 -3
  495. package/cjs/series/area/tooltip-helpter.js.map +1 -1
  496. package/cjs/series/bar/animation.js +3 -3
  497. package/cjs/series/bar/animation.js.map +1 -1
  498. package/cjs/series/bar/bar-3d.d.ts +1 -1
  499. package/cjs/series/bar/bar-3d.js +4 -4
  500. package/cjs/series/bar/bar-3d.js.map +1 -1
  501. package/cjs/series/bar/bar.d.ts +3 -3
  502. package/cjs/series/bar/bar.js +44 -32
  503. package/cjs/series/bar/bar.js.map +1 -1
  504. package/cjs/series/bar/constant.js +10 -10
  505. package/cjs/series/bar/constant.js.map +1 -1
  506. package/cjs/series/bar/interface.d.ts +5 -4
  507. package/cjs/series/bar/interface.js.map +1 -1
  508. package/cjs/series/base/base-series.d.ts +17 -10
  509. package/cjs/series/base/base-series.js +86 -100
  510. package/cjs/series/base/base-series.js.map +1 -1
  511. package/cjs/series/base/constant.js +4 -4
  512. package/cjs/series/base/constant.js.map +1 -1
  513. package/cjs/series/base/series-data.d.ts +1 -1
  514. package/cjs/series/base/series-data.js +2 -2
  515. package/cjs/series/base/series-data.js.map +1 -1
  516. package/cjs/series/base/tooltip-helper.js +10 -10
  517. package/cjs/series/base/tooltip-helper.js.map +1 -1
  518. package/cjs/series/box-plot/box-plot.js +27 -24
  519. package/cjs/series/box-plot/box-plot.js.map +1 -1
  520. package/cjs/series/box-plot/constant.js +7 -7
  521. package/cjs/series/box-plot/constant.js.map +1 -1
  522. package/cjs/series/box-plot/tooltip-helper.js +2 -2
  523. package/cjs/series/box-plot/tooltip-helper.js.map +1 -1
  524. package/cjs/series/cartesian/cartesian.d.ts +2 -1
  525. package/cjs/series/cartesian/cartesian.js +14 -14
  526. package/cjs/series/cartesian/cartesian.js.map +1 -1
  527. package/cjs/series/circle-packing/circle-packing.d.ts +1 -1
  528. package/cjs/series/circle-packing/circle-packing.js +11 -11
  529. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  530. package/cjs/series/circle-packing/constant.js +4 -4
  531. package/cjs/series/circle-packing/constant.js.map +1 -1
  532. package/cjs/series/correlation/constant.js +13 -13
  533. package/cjs/series/correlation/constant.js.map +1 -1
  534. package/cjs/series/correlation/correlation.d.ts +1 -3
  535. package/cjs/series/correlation/correlation.js +13 -11
  536. package/cjs/series/correlation/correlation.js.map +1 -1
  537. package/cjs/series/correlation/interface.js.map +1 -1
  538. package/cjs/series/dot/constant.js +22 -22
  539. package/cjs/series/dot/constant.js.map +1 -1
  540. package/cjs/series/dot/dot.js +16 -15
  541. package/cjs/series/dot/dot.js.map +1 -1
  542. package/cjs/series/dot/tooltip-helper.js +2 -2
  543. package/cjs/series/dot/tooltip-helper.js.map +1 -1
  544. package/cjs/series/funnel/constant.js +31 -31
  545. package/cjs/series/funnel/constant.js.map +1 -1
  546. package/cjs/series/funnel/funnel-3d.d.ts +1 -1
  547. package/cjs/series/funnel/funnel-3d.js +5 -5
  548. package/cjs/series/funnel/funnel-3d.js.map +1 -1
  549. package/cjs/series/funnel/funnel.d.ts +2 -5
  550. package/cjs/series/funnel/funnel.js +18 -20
  551. package/cjs/series/funnel/funnel.js.map +1 -1
  552. package/cjs/series/gauge/constant.js +16 -16
  553. package/cjs/series/gauge/constant.js.map +1 -1
  554. package/cjs/series/gauge/gauge-pointer.d.ts +1 -1
  555. package/cjs/series/gauge/gauge-pointer.js +7 -7
  556. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  557. package/cjs/series/gauge/gauge.js +5 -5
  558. package/cjs/series/gauge/gauge.js.map +1 -1
  559. package/cjs/series/geo/geo.d.ts +0 -3
  560. package/cjs/series/geo/geo.js +6 -9
  561. package/cjs/series/geo/geo.js.map +1 -1
  562. package/cjs/series/heatmap/constant.js +7 -7
  563. package/cjs/series/heatmap/constant.js.map +1 -1
  564. package/cjs/series/heatmap/heatmap.js +5 -5
  565. package/cjs/series/heatmap/heatmap.js.map +1 -1
  566. package/cjs/series/index.d.ts +1 -0
  567. package/cjs/series/index.js +16 -1
  568. package/cjs/series/index.js.map +1 -1
  569. package/cjs/series/interface/common.d.ts +1 -1
  570. package/cjs/series/interface/common.js.map +1 -1
  571. package/cjs/series/interface/series.d.ts +7 -1
  572. package/cjs/series/interface/series.js.map +1 -1
  573. package/cjs/series/interface/theme.d.ts +52 -8
  574. package/cjs/series/interface/theme.js +20 -2
  575. package/cjs/series/interface/theme.js.map +1 -1
  576. package/cjs/series/line/animation.js +3 -3
  577. package/cjs/series/line/animation.js.map +1 -1
  578. package/cjs/series/line/interface.d.ts +6 -11
  579. package/cjs/series/line/interface.js.map +1 -1
  580. package/cjs/series/line/line.d.ts +5 -3
  581. package/cjs/series/line/line.js +14 -7
  582. package/cjs/series/line/line.js.map +1 -1
  583. package/cjs/series/link/constant.js +10 -10
  584. package/cjs/series/link/constant.js.map +1 -1
  585. package/cjs/series/link/link.js +10 -9
  586. package/cjs/series/link/link.js.map +1 -1
  587. package/cjs/series/link/tooltip-helper.js +2 -2
  588. package/cjs/series/link/tooltip-helper.js.map +1 -1
  589. package/cjs/series/map/constant.js +4 -4
  590. package/cjs/series/map/constant.js.map +1 -1
  591. package/cjs/series/map/geo-source.js +3 -3
  592. package/cjs/series/map/geo-source.js.map +1 -1
  593. package/cjs/series/map/map.js +12 -9
  594. package/cjs/series/map/map.js.map +1 -1
  595. package/cjs/series/mixin/constant.js +7 -7
  596. package/cjs/series/mixin/constant.js.map +1 -1
  597. package/cjs/series/mixin/line-mixin.d.ts +17 -2
  598. package/cjs/series/mixin/line-mixin.js +45 -11
  599. package/cjs/series/mixin/line-mixin.js.map +1 -1
  600. package/cjs/series/pie/animation/centerOffset.js +6 -6
  601. package/cjs/series/pie/animation/centerOffset.js.map +1 -1
  602. package/cjs/series/pie/constant.js +13 -13
  603. package/cjs/series/pie/constant.js.map +1 -1
  604. package/cjs/series/pie/pie-3d.d.ts +1 -1
  605. package/cjs/series/pie/pie-3d.js +15 -15
  606. package/cjs/series/pie/pie-3d.js.map +1 -1
  607. package/cjs/series/pie/pie.d.ts +1 -3
  608. package/cjs/series/pie/pie.js +28 -29
  609. package/cjs/series/pie/pie.js.map +1 -1
  610. package/cjs/series/polar/polar.d.ts +0 -1
  611. package/cjs/series/polar/polar.js +15 -14
  612. package/cjs/series/polar/polar.js.map +1 -1
  613. package/cjs/series/polar/progress-like/constant.js +4 -4
  614. package/cjs/series/polar/progress-like/constant.js.map +1 -1
  615. package/cjs/series/polar/progress-like/progress-like.d.ts +0 -3
  616. package/cjs/series/polar/progress-like/progress-like.js +4 -7
  617. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  618. package/cjs/series/polar/rose-like/interface.d.ts +2 -7
  619. package/cjs/series/polar/rose-like/interface.js.map +1 -1
  620. package/cjs/series/polar/rose-like/rose-like.d.ts +0 -1
  621. package/cjs/series/polar/rose-like/rose-like.js +0 -1
  622. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  623. package/cjs/series/progress/circular/circular.js +5 -5
  624. package/cjs/series/progress/circular/circular.js.map +1 -1
  625. package/cjs/series/progress/circular/constant.js +7 -7
  626. package/cjs/series/progress/circular/constant.js.map +1 -1
  627. package/cjs/series/progress/linear/animation.js +3 -3
  628. package/cjs/series/progress/linear/animation.js.map +1 -1
  629. package/cjs/series/progress/linear/constant.js +10 -10
  630. package/cjs/series/progress/linear/constant.js.map +1 -1
  631. package/cjs/series/progress/linear/linear.js +11 -11
  632. package/cjs/series/progress/linear/linear.js.map +1 -1
  633. package/cjs/series/radar/constant.js +4 -4
  634. package/cjs/series/radar/constant.js.map +1 -1
  635. package/cjs/series/radar/interface.d.ts +4 -3
  636. package/cjs/series/radar/interface.js.map +1 -1
  637. package/cjs/series/radar/radar.d.ts +2 -1
  638. package/cjs/series/radar/radar.js +12 -9
  639. package/cjs/series/radar/radar.js.map +1 -1
  640. package/cjs/series/range-area/range-area.d.ts +1 -1
  641. package/cjs/series/range-area/range-area.js +3 -3
  642. package/cjs/series/range-area/range-area.js.map +1 -1
  643. package/cjs/series/range-area/tooltip-helper.js +2 -2
  644. package/cjs/series/range-area/tooltip-helper.js.map +1 -1
  645. package/cjs/series/range-column/constant.js +13 -13
  646. package/cjs/series/range-column/constant.js.map +1 -1
  647. package/cjs/series/range-column/range-column-3d.d.ts +2 -2
  648. package/cjs/series/range-column/range-column-3d.js +4 -4
  649. package/cjs/series/range-column/range-column-3d.js.map +1 -1
  650. package/cjs/series/range-column/range-column.d.ts +1 -1
  651. package/cjs/series/range-column/range-column.js +15 -15
  652. package/cjs/series/range-column/range-column.js.map +1 -1
  653. package/cjs/series/range-column/tooltip-helper.js +2 -2
  654. package/cjs/series/range-column/tooltip-helper.js.map +1 -1
  655. package/cjs/series/rose/constant.js +4 -4
  656. package/cjs/series/rose/constant.js.map +1 -1
  657. package/cjs/series/rose/rose.js +6 -6
  658. package/cjs/series/rose/rose.js.map +1 -1
  659. package/cjs/series/sankey/animation.js +5 -5
  660. package/cjs/series/sankey/animation.js.map +1 -1
  661. package/cjs/series/sankey/constant.js +7 -7
  662. package/cjs/series/sankey/constant.js.map +1 -1
  663. package/cjs/series/sankey/sankey.js +42 -36
  664. package/cjs/series/sankey/sankey.js.map +1 -1
  665. package/cjs/series/scatter/constant.js +4 -4
  666. package/cjs/series/scatter/constant.js.map +1 -1
  667. package/cjs/series/scatter/interface.d.ts +2 -4
  668. package/cjs/series/scatter/interface.js.map +1 -1
  669. package/cjs/series/scatter/scatter.js +23 -21
  670. package/cjs/series/scatter/scatter.js.map +1 -1
  671. package/cjs/series/sunburst/constant.js +4 -4
  672. package/cjs/series/sunburst/constant.js.map +1 -1
  673. package/cjs/series/sunburst/sunburst.d.ts +1 -3
  674. package/cjs/series/sunburst/sunburst.js +11 -13
  675. package/cjs/series/sunburst/sunburst.js.map +1 -1
  676. package/cjs/series/treemap/constant.js +10 -10
  677. package/cjs/series/treemap/constant.js.map +1 -1
  678. package/cjs/series/treemap/treemap.d.ts +2 -2
  679. package/cjs/series/treemap/treemap.js +27 -21
  680. package/cjs/series/treemap/treemap.js.map +1 -1
  681. package/cjs/series/util/spec.d.ts +2 -0
  682. package/cjs/series/util/spec.js +16 -0
  683. package/cjs/series/util/spec.js.map +1 -0
  684. package/cjs/series/util/utils.js +2 -2
  685. package/cjs/series/util/utils.js.map +1 -1
  686. package/cjs/series/waterfall/constant.js +7 -7
  687. package/cjs/series/waterfall/constant.js.map +1 -1
  688. package/cjs/series/waterfall/waterfall.js +8 -8
  689. package/cjs/series/waterfall/waterfall.js.map +1 -1
  690. package/cjs/series/word-cloud/base.d.ts +0 -3
  691. package/cjs/series/word-cloud/base.js +3 -6
  692. package/cjs/series/word-cloud/base.js.map +1 -1
  693. package/cjs/series/word-cloud/constant.js +7 -7
  694. package/cjs/series/word-cloud/constant.js.map +1 -1
  695. package/cjs/series/word-cloud/word-cloud-3d.d.ts +1 -0
  696. package/cjs/series/word-cloud/word-cloud-3d.js +13 -6
  697. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  698. package/cjs/series/word-cloud/word-cloud.d.ts +2 -1
  699. package/cjs/series/word-cloud/word-cloud.js +12 -6
  700. package/cjs/series/word-cloud/word-cloud.js.map +1 -1
  701. package/cjs/theme/builtin/index.d.ts +5 -0
  702. package/cjs/theme/builtin/index.js +32 -4
  703. package/cjs/theme/builtin/index.js.map +1 -1
  704. package/cjs/theme/color-scheme/builtin/index.d.ts +2 -0
  705. package/cjs/theme/color-scheme/builtin/index.js +21 -0
  706. package/cjs/theme/color-scheme/builtin/index.js.map +1 -0
  707. package/cjs/theme/color-scheme/index.d.ts +3 -0
  708. package/cjs/theme/color-scheme/index.js +22 -0
  709. package/cjs/theme/color-scheme/index.js.map +1 -0
  710. package/cjs/theme/color-scheme/interface.d.ts +2 -2
  711. package/cjs/theme/color-scheme/interface.js.map +1 -1
  712. package/cjs/theme/color-scheme/util.d.ts +5 -4
  713. package/cjs/theme/color-scheme/util.js +28 -15
  714. package/cjs/theme/color-scheme/util.js.map +1 -1
  715. package/cjs/theme/index.d.ts +1 -0
  716. package/cjs/theme/index.js +1 -1
  717. package/cjs/theme/index.js.map +1 -1
  718. package/cjs/theme/interface.d.ts +2 -0
  719. package/cjs/theme/interface.js.map +1 -1
  720. package/cjs/theme/theme-manager.js +5 -6
  721. package/cjs/theme/theme-manager.js.map +1 -1
  722. package/cjs/theme/util.js +6 -5
  723. package/cjs/theme/util.js.map +1 -1
  724. package/cjs/typings/tooltip/tooltip.d.ts +2 -1
  725. package/cjs/typings/tooltip/tooltip.js.map +1 -1
  726. package/cjs/typings/visual.d.ts +1 -1
  727. package/cjs/typings/visual.js.map +1 -1
  728. package/cjs/util/data.d.ts +1 -1
  729. package/cjs/util/data.js +3 -3
  730. package/cjs/util/data.js.map +1 -1
  731. package/cjs/util/scale.d.ts +1 -2
  732. package/cjs/util/scale.js +1 -1
  733. package/cjs/util/scale.js.map +1 -1
  734. package/cjs/util/spec/merge-spec.js +2 -1
  735. package/cjs/util/spec/merge-spec.js.map +1 -1
  736. package/cjs/util/spec/merge-theme.js +8 -8
  737. package/cjs/util/spec/merge-theme.js.map +1 -1
  738. package/cjs/util/spec/preprocess.d.ts +2 -2
  739. package/cjs/util/spec/preprocess.js +4 -4
  740. package/cjs/util/spec/preprocess.js.map +1 -1
  741. package/cjs/vchart-all.js +1 -1
  742. package/cjs/vchart-all.js.map +1 -1
  743. package/cjs/vchart-simple.d.ts +1 -0
  744. package/cjs/vchart-simple.js +16 -1
  745. package/cjs/vchart-simple.js.map +1 -1
  746. package/esm/animation/animate-manager.d.ts +1 -1
  747. package/esm/animation/animate-manager.js +3 -3
  748. package/esm/animation/animate-manager.js.map +1 -1
  749. package/esm/animation/utils.d.ts +8 -10
  750. package/esm/animation/utils.js +31 -7
  751. package/esm/animation/utils.js.map +1 -1
  752. package/esm/chart/area/area.d.ts +1 -0
  753. package/esm/chart/area/area.js +10 -4
  754. package/esm/chart/area/area.js.map +1 -1
  755. package/esm/chart/bar/bar-3d.js +2 -2
  756. package/esm/chart/bar/bar-3d.js.map +1 -1
  757. package/esm/chart/bar/bar.d.ts +1 -0
  758. package/esm/chart/bar/bar.js +6 -3
  759. package/esm/chart/bar/bar.js.map +1 -1
  760. package/esm/chart/base-chart.d.ts +4 -4
  761. package/esm/chart/base-chart.js +4 -11
  762. package/esm/chart/base-chart.js.map +1 -1
  763. package/esm/chart/box-plot/box-plot.js +2 -2
  764. package/esm/chart/box-plot/box-plot.js.map +1 -1
  765. package/esm/chart/circle-packing/circle-packing.js +2 -2
  766. package/esm/chart/circle-packing/circle-packing.js.map +1 -1
  767. package/esm/chart/common/common.d.ts +1 -0
  768. package/esm/chart/common/common.js +2 -2
  769. package/esm/chart/common/common.js.map +1 -1
  770. package/esm/chart/common/interface.d.ts +1 -1
  771. package/esm/chart/common/interface.js.map +1 -1
  772. package/esm/chart/correlation/correlation.js +2 -2
  773. package/esm/chart/correlation/correlation.js.map +1 -1
  774. package/esm/chart/funnel/funnel-3d.js +2 -2
  775. package/esm/chart/funnel/funnel-3d.js.map +1 -1
  776. package/esm/chart/funnel/funnel.js +2 -2
  777. package/esm/chart/funnel/funnel.js.map +1 -1
  778. package/esm/chart/gauge/gauge.js +1 -1
  779. package/esm/chart/gauge/gauge.js.map +1 -1
  780. package/esm/chart/heatmap/heatmap.js +2 -2
  781. package/esm/chart/heatmap/heatmap.js.map +1 -1
  782. package/esm/chart/histogram/base.d.ts +1 -0
  783. package/esm/chart/histogram/base.js +3 -0
  784. package/esm/chart/histogram/base.js.map +1 -1
  785. package/esm/chart/histogram/histogram-3d.js +2 -2
  786. package/esm/chart/histogram/histogram-3d.js.map +1 -1
  787. package/esm/chart/histogram/histogram.js +2 -2
  788. package/esm/chart/histogram/histogram.js.map +1 -1
  789. package/esm/chart/line/line.d.ts +1 -0
  790. package/esm/chart/line/line.js +10 -4
  791. package/esm/chart/line/line.js.map +1 -1
  792. package/esm/chart/pie/pie-3d.js +2 -2
  793. package/esm/chart/pie/pie-3d.js.map +1 -1
  794. package/esm/chart/pie/pie.js +2 -2
  795. package/esm/chart/pie/pie.js.map +1 -1
  796. package/esm/chart/polar/rose-like.d.ts +1 -0
  797. package/esm/chart/polar/rose-like.js +3 -0
  798. package/esm/chart/polar/rose-like.js.map +1 -1
  799. package/esm/chart/progress/circular/circular.d.ts +1 -0
  800. package/esm/chart/progress/circular/circular.js +2 -1
  801. package/esm/chart/progress/circular/circular.js.map +1 -1
  802. package/esm/chart/progress/linear/linear.d.ts +1 -0
  803. package/esm/chart/progress/linear/linear.js +2 -1
  804. package/esm/chart/progress/linear/linear.js.map +1 -1
  805. package/esm/chart/radar/radar.js +6 -3
  806. package/esm/chart/radar/radar.js.map +1 -1
  807. package/esm/chart/range-area/range-area.js +2 -2
  808. package/esm/chart/range-area/range-area.js.map +1 -1
  809. package/esm/chart/range-column/range-column-3d.js +2 -2
  810. package/esm/chart/range-column/range-column-3d.js.map +1 -1
  811. package/esm/chart/range-column/range-column.js +2 -2
  812. package/esm/chart/range-column/range-column.js.map +1 -1
  813. package/esm/chart/rose/rose.js +2 -2
  814. package/esm/chart/rose/rose.js.map +1 -1
  815. package/esm/chart/sankey/sankey.js +2 -2
  816. package/esm/chart/sankey/sankey.js.map +1 -1
  817. package/esm/chart/scatter/scatter.d.ts +1 -0
  818. package/esm/chart/scatter/scatter.js +4 -3
  819. package/esm/chart/scatter/scatter.js.map +1 -1
  820. package/esm/chart/sequence/sequence.js +1 -1
  821. package/esm/chart/sequence/sequence.js.map +1 -1
  822. package/esm/chart/stack.js +10 -6
  823. package/esm/chart/stack.js.map +1 -1
  824. package/esm/chart/sunburst/sunburst.js +2 -2
  825. package/esm/chart/sunburst/sunburst.js.map +1 -1
  826. package/esm/chart/treemap/treemap.js +2 -2
  827. package/esm/chart/treemap/treemap.js.map +1 -1
  828. package/esm/chart/waterfall/waterfall.js +2 -2
  829. package/esm/chart/waterfall/waterfall.js.map +1 -1
  830. package/esm/chart/word-cloud/base.js +2 -2
  831. package/esm/chart/word-cloud/base.js.map +1 -1
  832. package/esm/chart/word-cloud/word-cloud-3d.d.ts +1 -0
  833. package/esm/chart/word-cloud/word-cloud-3d.js +7 -3
  834. package/esm/chart/word-cloud/word-cloud-3d.js.map +1 -1
  835. package/esm/chart/word-cloud/word-cloud.d.ts +1 -0
  836. package/esm/chart/word-cloud/word-cloud.js +8 -9
  837. package/esm/chart/word-cloud/word-cloud.js.map +1 -1
  838. package/esm/compile/compiler.js +4 -2
  839. package/esm/compile/compiler.js.map +1 -1
  840. package/esm/compile/data/compilable-data.d.ts +1 -1
  841. package/esm/compile/data/compilable-data.js +2 -2
  842. package/esm/compile/data/compilable-data.js.map +1 -1
  843. package/esm/compile/grammar-item.js +3 -1
  844. package/esm/compile/grammar-item.js.map +1 -1
  845. package/esm/compile/mark/compilable-mark.d.ts +3 -2
  846. package/esm/compile/mark/compilable-mark.js +9 -5
  847. package/esm/compile/mark/compilable-mark.js.map +1 -1
  848. package/esm/compile/mark/mark-state-manager.js +1 -1
  849. package/esm/compile/mark/mark-state-manager.js.map +1 -1
  850. package/esm/compile/signal/compilable-signal.d.ts +1 -1
  851. package/esm/compile/signal/compilable-signal.js +2 -2
  852. package/esm/compile/signal/compilable-signal.js.map +1 -1
  853. package/esm/compile/util.js +1 -1
  854. package/esm/compile/util.js.map +1 -1
  855. package/esm/component/axis/base-axis.d.ts +2 -2
  856. package/esm/component/axis/base-axis.js +9 -2
  857. package/esm/component/axis/base-axis.js.map +1 -1
  858. package/esm/component/axis/cartesian/axis.d.ts +5 -3
  859. package/esm/component/axis/cartesian/axis.js +9 -7
  860. package/esm/component/axis/cartesian/axis.js.map +1 -1
  861. package/esm/component/axis/cartesian/band-axis.d.ts +2 -3
  862. package/esm/component/axis/cartesian/band-axis.js +2 -10
  863. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  864. package/esm/component/axis/cartesian/interface/common.d.ts +2 -6
  865. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  866. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  867. package/esm/component/axis/cartesian/linear-axis.d.ts +2 -2
  868. package/esm/component/axis/cartesian/linear-axis.js +2 -4
  869. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  870. package/esm/component/axis/cartesian/log-axis.d.ts +2 -2
  871. package/esm/component/axis/cartesian/log-axis.js +1 -1
  872. package/esm/component/axis/cartesian/log-axis.js.map +1 -1
  873. package/esm/component/axis/cartesian/symlog-axis.d.ts +2 -2
  874. package/esm/component/axis/cartesian/symlog-axis.js +1 -1
  875. package/esm/component/axis/cartesian/symlog-axis.js.map +1 -1
  876. package/esm/component/axis/cartesian/time-axis.d.ts +3 -3
  877. package/esm/component/axis/cartesian/time-axis.js +13 -5
  878. package/esm/component/axis/cartesian/time-axis.js.map +1 -1
  879. package/esm/component/axis/cartesian/util/common.d.ts +1 -1
  880. package/esm/component/axis/cartesian/util/common.js +4 -2
  881. package/esm/component/axis/cartesian/util/common.js.map +1 -1
  882. package/esm/component/axis/interface/common.d.ts +38 -0
  883. package/esm/component/axis/interface/common.js +2 -0
  884. package/esm/component/axis/interface/common.js.map +1 -0
  885. package/esm/component/axis/interface/index.d.ts +3 -0
  886. package/esm/component/axis/interface/index.js +6 -0
  887. package/esm/component/axis/interface/index.js.map +1 -0
  888. package/{cjs/component/axis/interface.d.ts → esm/component/axis/interface/spec.d.ts} +4 -50
  889. package/esm/component/axis/interface/spec.js +2 -0
  890. package/esm/component/axis/interface/spec.js.map +1 -0
  891. package/esm/component/axis/interface/theme.d.ts +15 -0
  892. package/esm/component/axis/interface/theme.js +2 -0
  893. package/esm/component/axis/interface/theme.js.map +1 -0
  894. package/esm/component/axis/mixin/band-axis-mixin.d.ts +5 -0
  895. package/esm/component/axis/mixin/band-axis-mixin.js +7 -1
  896. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  897. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +1 -2
  898. package/esm/component/axis/mixin/linear-axis-mixin.js +2 -2
  899. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  900. package/esm/component/axis/polar/axis.d.ts +6 -3
  901. package/esm/component/axis/polar/axis.js +25 -21
  902. package/esm/component/axis/polar/axis.js.map +1 -1
  903. package/esm/component/axis/polar/band-axis.d.ts +2 -3
  904. package/esm/component/axis/polar/band-axis.js +2 -10
  905. package/esm/component/axis/polar/band-axis.js.map +1 -1
  906. package/esm/component/axis/polar/interface/common.js.map +1 -1
  907. package/esm/component/axis/polar/linear-axis.d.ts +1 -1
  908. package/esm/component/axis/polar/linear-axis.js +1 -1
  909. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  910. package/esm/component/axis/util.js +2 -2
  911. package/esm/component/axis/util.js.map +1 -1
  912. package/esm/component/base/base-component.js +4 -2
  913. package/esm/component/base/base-component.js.map +1 -1
  914. package/esm/component/base/util.d.ts +1 -1
  915. package/esm/component/base/util.js +2 -2
  916. package/esm/component/base/util.js.map +1 -1
  917. package/esm/component/brush/brush.d.ts +2 -2
  918. package/esm/component/brush/brush.js +2 -2
  919. package/esm/component/brush/brush.js.map +1 -1
  920. package/esm/component/common/trigger/config.js +2 -2
  921. package/esm/component/common/trigger/config.js.map +1 -1
  922. package/esm/component/crosshair/base.d.ts +1 -1
  923. package/esm/component/crosshair/base.js +3 -3
  924. package/esm/component/crosshair/base.js.map +1 -1
  925. package/esm/component/crosshair/cartesian.d.ts +1 -1
  926. package/esm/component/crosshair/cartesian.js +3 -3
  927. package/esm/component/crosshair/cartesian.js.map +1 -1
  928. package/esm/component/crosshair/interface/spec.js.map +1 -1
  929. package/esm/component/crosshair/interface/theme.d.ts +6 -6
  930. package/esm/component/crosshair/interface/theme.js.map +1 -1
  931. package/esm/component/crosshair/polar.d.ts +1 -1
  932. package/esm/component/crosshair/polar.js +3 -3
  933. package/esm/component/crosshair/polar.js.map +1 -1
  934. package/esm/component/crosshair/util.js +5 -3
  935. package/esm/component/crosshair/util.js.map +1 -1
  936. package/esm/component/custom-mark/custom-mark.d.ts +2 -2
  937. package/esm/component/custom-mark/custom-mark.js +2 -2
  938. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  939. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
  940. package/esm/component/data-zoom/data-filter-base-component.js +13 -8
  941. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  942. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  943. package/esm/component/data-zoom/data-zoom/data-zoom.js +2 -2
  944. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  945. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -1
  946. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +1 -1
  947. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  948. package/esm/component/geo/geo-coordinate.d.ts +2 -2
  949. package/esm/component/geo/geo-coordinate.js +6 -4
  950. package/esm/component/geo/geo-coordinate.js.map +1 -1
  951. package/esm/component/index.d.ts +26 -22
  952. package/esm/component/index.js +7 -6
  953. package/esm/component/index.js.map +1 -1
  954. package/esm/component/indicator/indicator.d.ts +2 -2
  955. package/esm/component/indicator/indicator.js +14 -6
  956. package/esm/component/indicator/indicator.js.map +1 -1
  957. package/esm/component/label/base-label.d.ts +2 -2
  958. package/esm/component/label/base-label.js +2 -2
  959. package/esm/component/label/base-label.js.map +1 -1
  960. package/esm/component/label/interface.d.ts +2 -2
  961. package/esm/component/label/interface.js.map +1 -1
  962. package/esm/component/label/label.d.ts +1 -1
  963. package/esm/component/label/label.js +5 -3
  964. package/esm/component/label/label.js.map +1 -1
  965. package/esm/component/label/totalLabel.d.ts +1 -1
  966. package/esm/component/label/totalLabel.js +4 -2
  967. package/esm/component/label/totalLabel.js.map +1 -1
  968. package/esm/component/label/util.d.ts +11 -3
  969. package/esm/component/label/util.js +20 -10
  970. package/esm/component/label/util.js.map +1 -1
  971. package/esm/component/legend/base-legend.d.ts +3 -3
  972. package/esm/component/legend/base-legend.js +10 -6
  973. package/esm/component/legend/base-legend.js.map +1 -1
  974. package/esm/component/legend/continuous/legend.d.ts +1 -1
  975. package/esm/component/legend/continuous/legend.js +15 -6
  976. package/esm/component/legend/continuous/legend.js.map +1 -1
  977. package/esm/component/legend/continuous/util.js +1 -1
  978. package/esm/component/legend/continuous/util.js.map +1 -1
  979. package/esm/component/legend/discrete/legend.d.ts +1 -1
  980. package/esm/component/legend/discrete/legend.js +15 -6
  981. package/esm/component/legend/discrete/legend.js.map +1 -1
  982. package/esm/component/legend/discrete/util.js +3 -1
  983. package/esm/component/legend/discrete/util.js.map +1 -1
  984. package/esm/component/legend/util.d.ts +1 -1
  985. package/esm/component/legend/util.js +1 -1
  986. package/esm/component/legend/util.js.map +1 -1
  987. package/esm/component/map-label/component.d.ts +2 -2
  988. package/esm/component/map-label/component.js +11 -7
  989. package/esm/component/map-label/component.js.map +1 -1
  990. package/esm/component/marker/base-marker.d.ts +1 -1
  991. package/esm/component/marker/base-marker.js +1 -1
  992. package/esm/component/marker/base-marker.js.map +1 -1
  993. package/esm/component/marker/interface.d.ts +1 -1
  994. package/esm/component/marker/interface.js.map +1 -1
  995. package/esm/component/marker/mark-area/mark-area.d.ts +1 -1
  996. package/esm/component/marker/mark-area/mark-area.js +5 -5
  997. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  998. package/esm/component/marker/mark-line/mark-line.d.ts +1 -1
  999. package/esm/component/marker/mark-line/mark-line.js +5 -5
  1000. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  1001. package/esm/component/marker/mark-point/mark-point.d.ts +1 -1
  1002. package/esm/component/marker/mark-point/mark-point.js +5 -5
  1003. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  1004. package/esm/component/player/player.d.ts +2 -2
  1005. package/esm/component/player/player.js +4 -6
  1006. package/esm/component/player/player.js.map +1 -1
  1007. package/esm/component/title/title.d.ts +2 -2
  1008. package/esm/component/title/title.js +4 -4
  1009. package/esm/component/title/title.js.map +1 -1
  1010. package/esm/component/title/utils.js.map +1 -1
  1011. package/esm/component/tooltip/handler/base.d.ts +5 -6
  1012. package/esm/component/tooltip/handler/base.js +22 -15
  1013. package/esm/component/tooltip/handler/base.js.map +1 -1
  1014. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +14 -3
  1015. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  1016. package/esm/component/tooltip/handler/dom/model/content-column-model.js +1 -1
  1017. package/esm/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  1018. package/esm/component/tooltip/handler/dom/model/content-model.js +1 -1
  1019. package/esm/component/tooltip/handler/dom/model/content-model.js.map +1 -1
  1020. package/esm/component/tooltip/handler/dom/model/shape-model.js +12 -10
  1021. package/esm/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  1022. package/esm/component/tooltip/handler/dom/model/title-model.js +1 -1
  1023. package/esm/component/tooltip/handler/dom/model/title-model.js.map +1 -1
  1024. package/esm/component/tooltip/handler/dom/model/tooltip-model.js +1 -1
  1025. package/esm/component/tooltip/handler/dom/model/tooltip-model.js.map +1 -1
  1026. package/esm/component/tooltip/handler/dom/util.js +5 -1
  1027. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  1028. package/esm/component/tooltip/handler/utils/attribute.js +3 -1
  1029. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  1030. package/esm/component/tooltip/handler/utils/common.js +1 -1
  1031. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  1032. package/esm/component/tooltip/handler/utils/compose.js +2 -2
  1033. package/esm/component/tooltip/handler/utils/compose.js.map +1 -1
  1034. package/esm/component/tooltip/handler/utils/get-spec.js +3 -3
  1035. package/esm/component/tooltip/handler/utils/get-spec.js.map +1 -1
  1036. package/esm/component/tooltip/handler/utils/position.d.ts +1 -1
  1037. package/esm/component/tooltip/handler/utils/position.js +2 -2
  1038. package/esm/component/tooltip/handler/utils/position.js.map +1 -1
  1039. package/esm/component/tooltip/interface/spec.d.ts +2 -1
  1040. package/esm/component/tooltip/interface/spec.js.map +1 -1
  1041. package/esm/component/tooltip/processor/base.d.ts +1 -1
  1042. package/esm/component/tooltip/processor/base.js +4 -2
  1043. package/esm/component/tooltip/processor/base.js.map +1 -1
  1044. package/esm/component/tooltip/tooltip.d.ts +6 -4
  1045. package/esm/component/tooltip/tooltip.js +19 -9
  1046. package/esm/component/tooltip/tooltip.js.map +1 -1
  1047. package/esm/component/tooltip/utils/common.js +1 -1
  1048. package/esm/component/tooltip/utils/common.js.map +1 -1
  1049. package/esm/component/tooltip/utils/show-tooltip.js +1 -3
  1050. package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
  1051. package/esm/constant/base.js +2 -1
  1052. package/esm/constant/event.d.ts +0 -1
  1053. package/esm/constant/event.js +15 -16
  1054. package/esm/constant/event.js.map +1 -1
  1055. package/esm/constant/scroll-bar.js +1 -2
  1056. package/esm/core/factory.js +1 -1
  1057. package/esm/core/factory.js.map +1 -1
  1058. package/esm/core/index.d.ts +6 -3
  1059. package/esm/core/index.js +9 -3
  1060. package/esm/core/index.js.map +1 -1
  1061. package/esm/core/vchart.js +27 -10
  1062. package/esm/core/vchart.js.map +1 -1
  1063. package/esm/data/initialize.d.ts +10 -0
  1064. package/esm/data/initialize.js +12 -4
  1065. package/esm/data/initialize.js.map +1 -1
  1066. package/esm/data/transforms/add-property.d.ts +4 -0
  1067. package/esm/data/transforms/add-property.js.map +1 -1
  1068. package/esm/data/transforms/aggregation.js +3 -1
  1069. package/esm/data/transforms/aggregation.js.map +1 -1
  1070. package/esm/data/transforms/copy-data-view.js +1 -1
  1071. package/esm/data/transforms/copy-data-view.js.map +1 -1
  1072. package/esm/data/transforms/correlation.js +1 -3
  1073. package/esm/data/transforms/correlation.js.map +1 -1
  1074. package/esm/data/transforms/data-key.d.ts +13 -3
  1075. package/esm/data/transforms/data-key.js +23 -8
  1076. package/esm/data/transforms/data-key.js.map +1 -1
  1077. package/esm/data/transforms/dimension-statistics.d.ts +10 -4
  1078. package/esm/data/transforms/dimension-statistics.js +13 -10
  1079. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  1080. package/esm/data/transforms/drill.js +3 -1
  1081. package/esm/data/transforms/drill.js.map +1 -1
  1082. package/esm/data/transforms/invalid-travel.js +1 -1
  1083. package/esm/data/transforms/invalid-travel.js.map +1 -1
  1084. package/esm/data/transforms/legend-data/continuous/continuous.js +1 -2
  1085. package/esm/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  1086. package/esm/data/transforms/lookup.js +1 -1
  1087. package/esm/data/transforms/lookup.js.map +1 -1
  1088. package/esm/data/transforms/pie.js +3 -1
  1089. package/esm/data/transforms/pie.js.map +1 -1
  1090. package/esm/data/transforms/regression.js +1 -1
  1091. package/esm/data/transforms/regression.js.map +1 -1
  1092. package/esm/data/transforms/stack-split.js +1 -1
  1093. package/esm/data/transforms/stack-split.js.map +1 -1
  1094. package/esm/event/event-dispatcher.js +1 -1
  1095. package/esm/event/event-dispatcher.js.map +1 -1
  1096. package/esm/event/event.js +1 -2
  1097. package/esm/event/events/dimension/base.js +3 -1
  1098. package/esm/event/events/dimension/base.js.map +1 -1
  1099. package/esm/event/events/dimension/dimension-hover.js +2 -2
  1100. package/esm/event/events/dimension/dimension-hover.js.map +1 -1
  1101. package/esm/event/events/dimension/interface.d.ts +1 -1
  1102. package/esm/event/events/dimension/interface.js.map +1 -1
  1103. package/esm/event/events/dimension/util/cartesian.js +2 -2
  1104. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  1105. package/esm/event/events/dimension/util/common.js +1 -1
  1106. package/esm/event/events/dimension/util/common.js.map +1 -1
  1107. package/esm/event/events/dimension/util/polar.js +3 -3
  1108. package/esm/event/events/dimension/util/polar.js.map +1 -1
  1109. package/esm/index-lark.d.ts +4 -0
  1110. package/esm/index-lark.js +102 -0
  1111. package/esm/index-lark.js.map +1 -0
  1112. package/esm/index-wx.d.ts +4 -0
  1113. package/esm/index-wx.js +103 -0
  1114. package/esm/index-wx.js.map +1 -0
  1115. package/esm/index.d.ts +0 -3
  1116. package/esm/index.js +1 -6
  1117. package/esm/index.js.map +1 -1
  1118. package/esm/interaction/config.d.ts +2 -2
  1119. package/esm/interaction/config.js +4 -3
  1120. package/esm/interaction/config.js.map +1 -1
  1121. package/esm/interaction/dimension-trigger.js.map +1 -1
  1122. package/esm/interaction/drill/drillable.js +3 -5
  1123. package/esm/interaction/drill/drillable.js.map +1 -1
  1124. package/esm/interaction/trigger.js +4 -2
  1125. package/esm/interaction/trigger.js.map +1 -1
  1126. package/esm/interaction/zoom/zoomable.js +2 -2
  1127. package/esm/interaction/zoom/zoomable.js.map +1 -1
  1128. package/esm/layout/grid-layout/grid-layout.js +1 -1
  1129. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  1130. package/esm/layout/index.js +1 -1
  1131. package/esm/layout/interface.js +1 -1
  1132. package/esm/layout/layout3d/index.js +1 -1
  1133. package/esm/layout/layout3d/index.js.map +1 -1
  1134. package/esm/mark/arc-3d.d.ts +1 -1
  1135. package/esm/mark/arc-3d.js +1 -1
  1136. package/esm/mark/arc-3d.js.map +1 -1
  1137. package/esm/mark/arc.d.ts +1 -1
  1138. package/esm/mark/arc.js +3 -3
  1139. package/esm/mark/arc.js.map +1 -1
  1140. package/esm/mark/area.d.ts +1 -1
  1141. package/esm/mark/area.js +1 -1
  1142. package/esm/mark/area.js.map +1 -1
  1143. package/esm/mark/base/base-line.js +1 -1
  1144. package/esm/mark/base/base-line.js.map +1 -1
  1145. package/esm/mark/base/base-mark.d.ts +3 -3
  1146. package/esm/mark/base/base-mark.js +79 -35
  1147. package/esm/mark/base/base-mark.js.map +1 -1
  1148. package/esm/mark/box-plot.d.ts +1 -1
  1149. package/esm/mark/box-plot.js +1 -1
  1150. package/esm/mark/box-plot.js.map +1 -1
  1151. package/esm/mark/cell.d.ts +1 -1
  1152. package/esm/mark/cell.js +1 -1
  1153. package/esm/mark/cell.js.map +1 -1
  1154. package/esm/mark/component.d.ts +1 -1
  1155. package/esm/mark/component.js +1 -1
  1156. package/esm/mark/component.js.map +1 -1
  1157. package/esm/mark/group.d.ts +1 -1
  1158. package/esm/mark/group.js +2 -2
  1159. package/esm/mark/group.js.map +1 -1
  1160. package/esm/mark/image.d.ts +1 -1
  1161. package/esm/mark/image.js +1 -1
  1162. package/esm/mark/image.js.map +1 -1
  1163. package/esm/mark/interface/common.d.ts +12 -2
  1164. package/esm/mark/interface/common.js.map +1 -1
  1165. package/esm/mark/label.d.ts +2 -1
  1166. package/esm/mark/label.js +5 -2
  1167. package/esm/mark/label.js.map +1 -1
  1168. package/esm/mark/line.d.ts +1 -1
  1169. package/esm/mark/line.js +2 -2
  1170. package/esm/mark/line.js.map +1 -1
  1171. package/esm/mark/link-path.d.ts +1 -1
  1172. package/esm/mark/link-path.js +1 -1
  1173. package/esm/mark/link-path.js.map +1 -1
  1174. package/esm/mark/path.d.ts +1 -1
  1175. package/esm/mark/path.js +1 -1
  1176. package/esm/mark/path.js.map +1 -1
  1177. package/esm/mark/polygon/polygon.d.ts +1 -1
  1178. package/esm/mark/polygon/polygon.js +1 -1
  1179. package/esm/mark/polygon/polygon.js.map +1 -1
  1180. package/esm/mark/polygon/pyramid-3d.d.ts +1 -1
  1181. package/esm/mark/polygon/pyramid-3d.js +1 -1
  1182. package/esm/mark/polygon/pyramid-3d.js.map +1 -1
  1183. package/esm/mark/progress-arc.d.ts +1 -1
  1184. package/esm/mark/progress-arc.js +1 -1
  1185. package/esm/mark/progress-arc.js.map +1 -1
  1186. package/esm/mark/rect-3d.d.ts +1 -1
  1187. package/esm/mark/rect-3d.js +1 -1
  1188. package/esm/mark/rect-3d.js.map +1 -1
  1189. package/esm/mark/rect.d.ts +1 -1
  1190. package/esm/mark/rect.js +1 -1
  1191. package/esm/mark/rect.js.map +1 -1
  1192. package/esm/mark/ripple.d.ts +1 -1
  1193. package/esm/mark/ripple.js +1 -1
  1194. package/esm/mark/ripple.js.map +1 -1
  1195. package/esm/mark/rule.d.ts +1 -1
  1196. package/esm/mark/rule.js +1 -1
  1197. package/esm/mark/rule.js.map +1 -1
  1198. package/esm/mark/symbol.d.ts +1 -1
  1199. package/esm/mark/symbol.js +1 -1
  1200. package/esm/mark/symbol.js.map +1 -1
  1201. package/esm/mark/text.d.ts +1 -1
  1202. package/esm/mark/text.js +1 -1
  1203. package/esm/mark/text.js.map +1 -1
  1204. package/esm/mark/utils/common.d.ts +1 -1
  1205. package/esm/mark/utils/common.js +1 -1
  1206. package/esm/mark/utils/common.js.map +1 -1
  1207. package/esm/model/base-model.d.ts +2 -15
  1208. package/esm/model/base-model.js +14 -44
  1209. package/esm/model/base-model.js.map +1 -1
  1210. package/esm/model/interface.d.ts +5 -8
  1211. package/esm/model/interface.js.map +1 -1
  1212. package/esm/model/layout-item.js +2 -2
  1213. package/esm/model/layout-item.js.map +1 -1
  1214. package/esm/plugin/components/basic-plugin.js +1 -1
  1215. package/esm/plugin/components/basic-plugin.js.map +1 -1
  1216. package/esm/plugin/components/plugin-service.js +3 -1
  1217. package/esm/plugin/components/plugin-service.js.map +1 -1
  1218. package/esm/region/region.d.ts +2 -3
  1219. package/esm/region/region.js +12 -14
  1220. package/esm/region/region.js.map +1 -1
  1221. package/esm/scale/global-scale.d.ts +3 -3
  1222. package/esm/scale/global-scale.js +36 -21
  1223. package/esm/scale/global-scale.js.map +1 -1
  1224. package/esm/scale/interface.d.ts +1 -2
  1225. package/esm/scale/interface.js.map +1 -1
  1226. package/esm/series/area/animation.js +1 -1
  1227. package/esm/series/area/animation.js.map +1 -1
  1228. package/esm/series/area/area.d.ts +4 -2
  1229. package/esm/series/area/area.js +28 -15
  1230. package/esm/series/area/area.js.map +1 -1
  1231. package/esm/series/area/constant.js +1 -1
  1232. package/esm/series/area/constant.js.map +1 -1
  1233. package/esm/series/area/interface.d.ts +6 -5
  1234. package/esm/series/area/interface.js.map +1 -1
  1235. package/esm/series/area/tooltip-helpter.js +1 -1
  1236. package/esm/series/area/tooltip-helpter.js.map +1 -1
  1237. package/esm/series/bar/animation.js +1 -1
  1238. package/esm/series/bar/animation.js.map +1 -1
  1239. package/esm/series/bar/bar-3d.d.ts +1 -1
  1240. package/esm/series/bar/bar-3d.js +1 -1
  1241. package/esm/series/bar/bar-3d.js.map +1 -1
  1242. package/esm/series/bar/bar.d.ts +3 -3
  1243. package/esm/series/bar/bar.js +31 -12
  1244. package/esm/series/bar/bar.js.map +1 -1
  1245. package/esm/series/bar/constant.js +1 -1
  1246. package/esm/series/bar/constant.js.map +1 -1
  1247. package/esm/series/bar/interface.d.ts +5 -4
  1248. package/esm/series/bar/interface.js.map +1 -1
  1249. package/esm/series/base/base-series.d.ts +17 -10
  1250. package/esm/series/base/base-series.js +69 -77
  1251. package/esm/series/base/base-series.js.map +1 -1
  1252. package/esm/series/base/constant.js +1 -1
  1253. package/esm/series/base/constant.js.map +1 -1
  1254. package/esm/series/base/series-data.d.ts +1 -1
  1255. package/esm/series/base/series-data.js +1 -1
  1256. package/esm/series/base/series-data.js.map +1 -1
  1257. package/esm/series/base/tooltip-helper.js +2 -2
  1258. package/esm/series/base/tooltip-helper.js.map +1 -1
  1259. package/esm/series/box-plot/box-plot.js +11 -9
  1260. package/esm/series/box-plot/box-plot.js.map +1 -1
  1261. package/esm/series/box-plot/constant.js +1 -1
  1262. package/esm/series/box-plot/constant.js.map +1 -1
  1263. package/esm/series/box-plot/tooltip-helper.js +1 -1
  1264. package/esm/series/box-plot/tooltip-helper.js.map +1 -1
  1265. package/esm/series/cartesian/cartesian.d.ts +2 -1
  1266. package/esm/series/cartesian/cartesian.js +3 -1
  1267. package/esm/series/cartesian/cartesian.js.map +1 -1
  1268. package/esm/series/circle-packing/circle-packing.d.ts +1 -1
  1269. package/esm/series/circle-packing/circle-packing.js +8 -8
  1270. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  1271. package/esm/series/circle-packing/constant.js +1 -1
  1272. package/esm/series/circle-packing/constant.js.map +1 -1
  1273. package/esm/series/correlation/constant.js +1 -1
  1274. package/esm/series/correlation/constant.js.map +1 -1
  1275. package/esm/series/correlation/correlation.d.ts +1 -3
  1276. package/esm/series/correlation/correlation.js +6 -6
  1277. package/esm/series/correlation/correlation.js.map +1 -1
  1278. package/esm/series/correlation/interface.js.map +1 -1
  1279. package/esm/series/dot/constant.js +1 -1
  1280. package/esm/series/dot/constant.js.map +1 -1
  1281. package/esm/series/dot/dot.js +11 -6
  1282. package/esm/series/dot/dot.js.map +1 -1
  1283. package/esm/series/dot/tooltip-helper.js +1 -1
  1284. package/esm/series/dot/tooltip-helper.js.map +1 -1
  1285. package/esm/series/funnel/constant.js +1 -1
  1286. package/esm/series/funnel/constant.js.map +1 -1
  1287. package/esm/series/funnel/funnel-3d.d.ts +1 -1
  1288. package/esm/series/funnel/funnel-3d.js +1 -1
  1289. package/esm/series/funnel/funnel-3d.js.map +1 -1
  1290. package/esm/series/funnel/funnel.d.ts +2 -5
  1291. package/esm/series/funnel/funnel.js +17 -15
  1292. package/esm/series/funnel/funnel.js.map +1 -1
  1293. package/esm/series/gauge/constant.js +1 -1
  1294. package/esm/series/gauge/constant.js.map +1 -1
  1295. package/esm/series/gauge/gauge-pointer.d.ts +1 -1
  1296. package/esm/series/gauge/gauge-pointer.js +3 -3
  1297. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  1298. package/esm/series/gauge/gauge.js +4 -4
  1299. package/esm/series/gauge/gauge.js.map +1 -1
  1300. package/esm/series/geo/geo.d.ts +0 -3
  1301. package/esm/series/geo/geo.js +3 -6
  1302. package/esm/series/geo/geo.js.map +1 -1
  1303. package/esm/series/heatmap/constant.js +1 -1
  1304. package/esm/series/heatmap/constant.js.map +1 -1
  1305. package/esm/series/heatmap/heatmap.js +5 -5
  1306. package/esm/series/heatmap/heatmap.js.map +1 -1
  1307. package/esm/series/index.d.ts +1 -0
  1308. package/esm/series/index.js +2 -0
  1309. package/esm/series/index.js.map +1 -1
  1310. package/esm/series/interface/common.d.ts +1 -1
  1311. package/esm/series/interface/common.js.map +1 -1
  1312. package/esm/series/interface/series.d.ts +7 -1
  1313. package/esm/series/interface/series.js.map +1 -1
  1314. package/esm/series/interface/theme.d.ts +52 -8
  1315. package/esm/series/interface/theme.js +22 -1
  1316. package/esm/series/interface/theme.js.map +1 -1
  1317. package/esm/series/line/animation.js +1 -1
  1318. package/esm/series/line/animation.js.map +1 -1
  1319. package/esm/series/line/interface.d.ts +6 -11
  1320. package/esm/series/line/interface.js.map +1 -1
  1321. package/esm/series/line/line.d.ts +5 -3
  1322. package/esm/series/line/line.js +14 -7
  1323. package/esm/series/line/line.js.map +1 -1
  1324. package/esm/series/link/constant.js +1 -1
  1325. package/esm/series/link/constant.js.map +1 -1
  1326. package/esm/series/link/link.js +8 -5
  1327. package/esm/series/link/link.js.map +1 -1
  1328. package/esm/series/link/tooltip-helper.js +1 -1
  1329. package/esm/series/link/tooltip-helper.js.map +1 -1
  1330. package/esm/series/map/constant.js +1 -1
  1331. package/esm/series/map/constant.js.map +1 -1
  1332. package/esm/series/map/geo-source.js +1 -1
  1333. package/esm/series/map/geo-source.js.map +1 -1
  1334. package/esm/series/map/map.js +12 -7
  1335. package/esm/series/map/map.js.map +1 -1
  1336. package/esm/series/mixin/constant.js +1 -1
  1337. package/esm/series/mixin/constant.js.map +1 -1
  1338. package/esm/series/mixin/line-mixin.d.ts +17 -2
  1339. package/esm/series/mixin/line-mixin.js +43 -10
  1340. package/esm/series/mixin/line-mixin.js.map +1 -1
  1341. package/esm/series/pie/animation/centerOffset.js +3 -1
  1342. package/esm/series/pie/animation/centerOffset.js.map +1 -1
  1343. package/esm/series/pie/constant.js +1 -1
  1344. package/esm/series/pie/constant.js.map +1 -1
  1345. package/esm/series/pie/pie-3d.d.ts +1 -1
  1346. package/esm/series/pie/pie-3d.js +2 -2
  1347. package/esm/series/pie/pie-3d.js.map +1 -1
  1348. package/esm/series/pie/pie.d.ts +1 -3
  1349. package/esm/series/pie/pie.js +16 -10
  1350. package/esm/series/pie/pie.js.map +1 -1
  1351. package/esm/series/polar/polar.d.ts +0 -1
  1352. package/esm/series/polar/polar.js +3 -2
  1353. package/esm/series/polar/polar.js.map +1 -1
  1354. package/esm/series/polar/progress-like/constant.js +1 -1
  1355. package/esm/series/polar/progress-like/constant.js.map +1 -1
  1356. package/esm/series/polar/progress-like/progress-like.d.ts +0 -3
  1357. package/esm/series/polar/progress-like/progress-like.js +4 -5
  1358. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  1359. package/esm/series/polar/rose-like/interface.d.ts +2 -7
  1360. package/esm/series/polar/rose-like/interface.js.map +1 -1
  1361. package/esm/series/polar/rose-like/rose-like.d.ts +0 -1
  1362. package/esm/series/polar/rose-like/rose-like.js +0 -1
  1363. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  1364. package/esm/series/progress/circular/circular.js +3 -3
  1365. package/esm/series/progress/circular/circular.js.map +1 -1
  1366. package/esm/series/progress/circular/constant.js +1 -1
  1367. package/esm/series/progress/circular/constant.js.map +1 -1
  1368. package/esm/series/progress/linear/animation.js +1 -1
  1369. package/esm/series/progress/linear/animation.js.map +1 -1
  1370. package/esm/series/progress/linear/constant.js +1 -1
  1371. package/esm/series/progress/linear/constant.js.map +1 -1
  1372. package/esm/series/progress/linear/linear.js +3 -3
  1373. package/esm/series/progress/linear/linear.js.map +1 -1
  1374. package/esm/series/radar/constant.js +1 -1
  1375. package/esm/series/radar/constant.js.map +1 -1
  1376. package/esm/series/radar/interface.d.ts +4 -3
  1377. package/esm/series/radar/interface.js.map +1 -1
  1378. package/esm/series/radar/radar.d.ts +2 -1
  1379. package/esm/series/radar/radar.js +10 -7
  1380. package/esm/series/radar/radar.js.map +1 -1
  1381. package/esm/series/range-area/range-area.d.ts +1 -1
  1382. package/esm/series/range-area/range-area.js +1 -1
  1383. package/esm/series/range-area/range-area.js.map +1 -1
  1384. package/esm/series/range-area/tooltip-helper.js +1 -1
  1385. package/esm/series/range-area/tooltip-helper.js.map +1 -1
  1386. package/esm/series/range-column/constant.js +1 -1
  1387. package/esm/series/range-column/constant.js.map +1 -1
  1388. package/esm/series/range-column/range-column-3d.d.ts +2 -2
  1389. package/esm/series/range-column/range-column-3d.js +2 -2
  1390. package/esm/series/range-column/range-column-3d.js.map +1 -1
  1391. package/esm/series/range-column/range-column.d.ts +1 -1
  1392. package/esm/series/range-column/range-column.js +10 -8
  1393. package/esm/series/range-column/range-column.js.map +1 -1
  1394. package/esm/series/range-column/tooltip-helper.js +1 -1
  1395. package/esm/series/range-column/tooltip-helper.js.map +1 -1
  1396. package/esm/series/rose/constant.js +1 -1
  1397. package/esm/series/rose/constant.js.map +1 -1
  1398. package/esm/series/rose/rose.js +6 -4
  1399. package/esm/series/rose/rose.js.map +1 -1
  1400. package/esm/series/sankey/animation.js +1 -1
  1401. package/esm/series/sankey/animation.js.map +1 -1
  1402. package/esm/series/sankey/constant.js +1 -1
  1403. package/esm/series/sankey/constant.js.map +1 -1
  1404. package/esm/series/sankey/sankey.js +21 -16
  1405. package/esm/series/sankey/sankey.js.map +1 -1
  1406. package/esm/series/scatter/constant.js +1 -1
  1407. package/esm/series/scatter/constant.js.map +1 -1
  1408. package/esm/series/scatter/interface.d.ts +2 -4
  1409. package/esm/series/scatter/interface.js.map +1 -1
  1410. package/esm/series/scatter/scatter.js +7 -5
  1411. package/esm/series/scatter/scatter.js.map +1 -1
  1412. package/esm/series/sunburst/constant.js +1 -1
  1413. package/esm/series/sunburst/constant.js.map +1 -1
  1414. package/esm/series/sunburst/sunburst.d.ts +1 -3
  1415. package/esm/series/sunburst/sunburst.js +8 -10
  1416. package/esm/series/sunburst/sunburst.js.map +1 -1
  1417. package/esm/series/treemap/constant.js +1 -1
  1418. package/esm/series/treemap/constant.js.map +1 -1
  1419. package/esm/series/treemap/treemap.d.ts +2 -2
  1420. package/esm/series/treemap/treemap.js +25 -17
  1421. package/esm/series/treemap/treemap.js.map +1 -1
  1422. package/esm/series/util/spec.d.ts +2 -0
  1423. package/esm/series/util/spec.js +8 -0
  1424. package/esm/series/util/spec.js.map +1 -0
  1425. package/esm/series/util/utils.js +1 -1
  1426. package/esm/series/util/utils.js.map +1 -1
  1427. package/esm/series/waterfall/constant.js +1 -1
  1428. package/esm/series/waterfall/constant.js.map +1 -1
  1429. package/esm/series/waterfall/waterfall.js +4 -4
  1430. package/esm/series/waterfall/waterfall.js.map +1 -1
  1431. package/esm/series/word-cloud/base.d.ts +0 -3
  1432. package/esm/series/word-cloud/base.js +2 -5
  1433. package/esm/series/word-cloud/base.js.map +1 -1
  1434. package/esm/series/word-cloud/constant.js +1 -1
  1435. package/esm/series/word-cloud/constant.js.map +1 -1
  1436. package/esm/series/word-cloud/word-cloud-3d.d.ts +1 -0
  1437. package/esm/series/word-cloud/word-cloud-3d.js +13 -3
  1438. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  1439. package/esm/series/word-cloud/word-cloud.d.ts +2 -1
  1440. package/esm/series/word-cloud/word-cloud.js +11 -2
  1441. package/esm/series/word-cloud/word-cloud.js.map +1 -1
  1442. package/esm/theme/builtin/index.d.ts +5 -0
  1443. package/esm/theme/builtin/index.js +23 -2
  1444. package/esm/theme/builtin/index.js.map +1 -1
  1445. package/esm/theme/color-scheme/builtin/index.d.ts +2 -0
  1446. package/esm/theme/color-scheme/builtin/index.js +4 -0
  1447. package/esm/theme/color-scheme/builtin/index.js.map +1 -0
  1448. package/esm/theme/color-scheme/index.d.ts +3 -0
  1449. package/esm/theme/color-scheme/index.js +6 -0
  1450. package/esm/theme/color-scheme/index.js.map +1 -0
  1451. package/esm/theme/color-scheme/interface.d.ts +2 -2
  1452. package/esm/theme/color-scheme/interface.js.map +1 -1
  1453. package/esm/theme/color-scheme/util.d.ts +5 -4
  1454. package/esm/theme/color-scheme/util.js +26 -14
  1455. package/esm/theme/color-scheme/util.js.map +1 -1
  1456. package/esm/theme/index.d.ts +1 -0
  1457. package/esm/theme/index.js +2 -0
  1458. package/esm/theme/index.js.map +1 -1
  1459. package/esm/theme/interface.d.ts +2 -0
  1460. package/esm/theme/interface.js.map +1 -1
  1461. package/esm/theme/theme-manager.js +5 -8
  1462. package/esm/theme/theme-manager.js.map +1 -1
  1463. package/esm/theme/util.js +4 -1
  1464. package/esm/theme/util.js.map +1 -1
  1465. package/esm/typings/tooltip/tooltip.d.ts +2 -1
  1466. package/esm/typings/tooltip/tooltip.js.map +1 -1
  1467. package/esm/typings/visual.d.ts +1 -1
  1468. package/esm/typings/visual.js.map +1 -1
  1469. package/esm/util/data.d.ts +1 -1
  1470. package/esm/util/data.js +3 -3
  1471. package/esm/util/data.js.map +1 -1
  1472. package/esm/util/scale.d.ts +1 -2
  1473. package/esm/util/scale.js +1 -1
  1474. package/esm/util/scale.js.map +1 -1
  1475. package/esm/util/spec/merge-spec.js +1 -1
  1476. package/esm/util/spec/merge-spec.js.map +1 -1
  1477. package/esm/util/spec/merge-theme.js +7 -7
  1478. package/esm/util/spec/merge-theme.js.map +1 -1
  1479. package/esm/util/spec/preprocess.d.ts +2 -2
  1480. package/esm/util/spec/preprocess.js +4 -4
  1481. package/esm/util/spec/preprocess.js.map +1 -1
  1482. package/esm/vchart-all.js +2 -2
  1483. package/esm/vchart-all.js.map +1 -1
  1484. package/esm/vchart-simple.d.ts +1 -0
  1485. package/esm/vchart-simple.js +2 -0
  1486. package/esm/vchart-simple.js.map +1 -1
  1487. package/package.json +9 -7
  1488. package/cjs/component/axis/cartesian/config.d.ts +0 -3
  1489. package/cjs/component/axis/cartesian/config.js +0 -8
  1490. package/cjs/component/axis/cartesian/config.js.map +0 -1
  1491. package/cjs/component/axis/interface.js.map +0 -1
  1492. package/cjs/component/axis/polar/config.d.ts +0 -3
  1493. package/cjs/component/axis/polar/config.js +0 -8
  1494. package/cjs/component/axis/polar/config.js.map +0 -1
  1495. package/cjs/model/model-state-manager.d.ts +0 -9
  1496. package/cjs/model/model-state-manager.js +0 -23
  1497. package/cjs/model/model-state-manager.js.map +0 -1
  1498. package/esm/component/axis/cartesian/config.d.ts +0 -3
  1499. package/esm/component/axis/cartesian/config.js +0 -6
  1500. package/esm/component/axis/cartesian/config.js.map +0 -1
  1501. package/esm/component/axis/interface.js +0 -2
  1502. package/esm/component/axis/interface.js.map +0 -1
  1503. package/esm/component/axis/polar/config.d.ts +0 -3
  1504. package/esm/component/axis/polar/config.js +0 -6
  1505. package/esm/component/axis/polar/config.js.map +0 -1
  1506. package/esm/model/model-state-manager.d.ts +0 -9
  1507. package/esm/model/model-state-manager.js +0 -15
  1508. package/esm/model/model-state-manager.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/vchart.ts"],"names":[],"mappings":"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","file":"vchart.js","sourcesContent":["import type { ISeries } from '../series/interface/series';\nimport { arrayParser } from '../data/parser/array';\nimport type { ILayoutConstructor, LayoutCallBack } from '../layout/interface';\nimport type { IDataValues, IMarkStateSpec, IInitOption } from '../typings/spec/common';\n// eslint-disable-next-line no-duplicate-imports\nimport { RenderModeEnum } from '../typings/spec/common';\nimport type { ISeriesConstructor } from '../series/interface';\nimport type { DimensionIndexOption, IChart, IChartConstructor } from '../chart/interface';\nimport type { IComponentConstructor } from '../component/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../component/interface';\nimport type {\n EventCallback,\n EventParams,\n EventParamsDefinition,\n EventQuery,\n EventType,\n IEvent,\n IEventDispatcher\n} from '../event/interface';\nimport type { IParserOptions } from '@visactor/vdataset/es/parser';\nimport type { IFields, Transform } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, dataViewParser, DataView } from '@visactor/vdataset';\nimport type { Stage } from '@visactor/vrender-core';\nimport {\n isString,\n isValid,\n isNil,\n array,\n mergeSpec,\n createID,\n debounce,\n isTrueBrowser,\n warn,\n specTransform,\n convertPoint,\n preprocessSpecOrTheme,\n getThemeObject,\n mergeSpecWithFilter\n} from '../util';\nimport { Factory } from './factory';\nimport { Event } from '../event/event';\nimport { EventDispatcher } from '../event/event-dispatcher';\nimport type { GeoSourceType } from '../typings/geo';\nimport type { GeoSourceOption } from '../series/map/geo-source';\n// eslint-disable-next-line no-duplicate-imports\nimport { getMapSource } from '../series/map/geo-source';\nimport type { IMark, MarkConstructor } from '../mark/interface';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../data/register';\nimport { dataToDataView } from '../data/initialize';\nimport { stackSplit } from '../data/transforms/stack-split';\nimport { copyDataView } from '../data/transforms/copy-data-view';\nimport type { ITooltipHandler } from '../typings/tooltip';\nimport type { Tooltip } from '../component/tooltip';\nimport type {\n Datum,\n IPoint,\n IRegionQuerier,\n IShowTooltipOption,\n ISpec,\n Maybe,\n MaybeArray,\n StringOrNumber\n} from '../typings';\nimport { AnimationStateEnum } from '../animation/interface';\nimport type { IBoundsLike, ILogger } from '@visactor/vutils';\nimport { ThemeManager } from '../theme/theme-manager';\nimport type { ITheme } from '../theme';\nimport type { IModel, IUpdateSpecResult } from '../model/interface';\nimport { Compiler } from '../compile/compiler';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { ILegend } from '../component/legend/interface';\nimport { getCanvasDataURL, URLToImage } from '../util/image';\nimport { ChartEvent, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, VGRAMMAR_HOOK_EVENT } from '../constant';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n getContainerSize,\n isArray,\n isEmpty,\n Logger,\n merge as mergeOrigin,\n isFunction,\n LoggerLevel,\n isEqual\n} from '@visactor/vutils';\nimport type { DataLinkAxis, DataLinkSeries, IChartLevelTheme, IGlobalConfig, IVChart } from './interface';\nimport { InstanceManager } from './instance-manager';\nimport type { IAxis } from '../component/axis';\nimport { setPoptipTheme } from '@visactor/vrender-components';\nimport { calculateChartSize, mergeUpdateResult } from '../chart/util';\nimport { Region } from '../region/region';\nimport { Layout } from '../layout';\nimport { GroupMark } from '../mark';\nimport { registerVGrammarAnimation } from '../animation/config';\nimport { View, registerFilterTransform, registerMapTransform } from '@visactor/vgrammar-core';\nimport { VCHART_UTILS } from './util';\nimport { mergeThemeAndGet } from '../theme/util';\n\nexport class VChart implements IVChart {\n readonly id = createID();\n\n /**\n * 按需注册图表和组件\n * @param comps\n * @since 1.5.1\n */\n static useRegisters(comps: (() => void)[]) {\n comps.forEach((fn: () => void) => {\n fn();\n });\n }\n\n /**\n * 注册自定义图表\n * @param charts 图表类\n * @description 若用于按需加载,1.5.1版本后,请统一使用 `useRegisters` API,例如:`VChart.useRegisters([registerLineChart])`。\n */\n static useChart(charts: IChartConstructor[]) {\n charts.forEach(c => Factory.registerChart(c.type, c));\n }\n /**\n * 注册自定义系列\n * @param series 系列类\n * @description 若用于按需加载,1.5.1版本后,统一使用 `useRegisters` API,例如 `VChart.useRegisters([registerLineSeries])`。\n */\n static useSeries(series: ISeriesConstructor[]) {\n series.forEach(s => Factory.registerSeries(s.type, s));\n }\n /**\n * 注册自定义组件\n * @param components 组件类\n * @description 若用于按需加载,1.5.1版本后,统一使用 `useRegisters` API,例如 `VChart.useRegisters([registerCartesianLinearAxis])`。\n */\n static useComponent(components: IComponentConstructor[]) {\n components.forEach(c => Factory.registerComponent(c.type, c));\n }\n /**\n * 注册自定义 Mark\n * @param marks Mark 图元类\n */\n static useMark(marks: MarkConstructor[]) {\n marks.forEach(m => Factory.registerMark(m.constructorType ?? m.type, m));\n }\n /**\n * 注册自定义布局\n * @param layouts 布局类\n */\n static useLayout(layouts: ILayoutConstructor[]) {\n layouts.forEach(l => Factory.registerLayout(l.type, l));\n }\n /**\n * 注册 DataSet 数据方法\n * @param name 数据 transform 方法名称\n * @param transform 具体的 Transform 执行方法\n */\n static registerDataSetTransform(name: string, transform: Transform) {\n Factory.registerTransform(name, transform);\n }\n\n /**\n * 注册地图数据\n * @param key 地图名称\n * @param source 地图数据\n * @param option 地图数据配置\n */\n static registerMap(key: string, source: GeoSourceType, option?: GeoSourceOption) {\n const impl = Factory.getImplementInKey('registerMap');\n impl && impl(key, source, option);\n }\n\n /**\n * 注销地图数据\n * @param key 地图名称\n */\n static unregisterMap(key: string) {\n const impl = Factory.getImplementInKey('unregisterMap');\n impl && impl(key);\n }\n\n /**\n * 根据地图名称获取地图数据\n * @param key 地图名称\n * @returns 地图数据\n */\n static getMap(key: string): GeoSourceType {\n return getMapSource(key);\n }\n\n /**\n * 全局关闭 tooltip\n * @param excludeId 可选,指定不需要关闭 tooltip 的实例 id\n */\n static hideTooltip(excludeId: MaybeArray<number> = []): void {\n InstanceManager.forEach(instance => instance?.hideTooltip?.(), excludeId);\n }\n\n /** 获取 Logger */\n static getLogger(): ILogger {\n return Logger.getInstance();\n }\n\n /** 图表实例管理器 */\n static readonly InstanceManager = InstanceManager;\n /** 主题管理器 */\n static readonly ThemeManager = ThemeManager;\n\n /** 全局配置 */\n static globalConfig: IGlobalConfig = {\n uniqueTooltip: true\n };\n\n /** 工具方法 */\n static readonly Utils = VCHART_UTILS;\n\n protected _spec: any;\n\n private _viewBox: IBoundsLike;\n private _chart!: Maybe<IChart>;\n private _compiler: Compiler;\n private _event: Maybe<IEvent>;\n private _userEvents: {\n eType: EventType;\n query: EventQuery | EventCallback<EventParamsDefinition[EventType]>;\n handler?: EventCallback<EventParamsDefinition[EventType]>;\n }[] = [];\n private _eventDispatcher: Maybe<IEventDispatcher>;\n private _dataSet!: Maybe<DataSet>;\n getDataSet() {\n return this._dataSet;\n }\n\n private _container?: HTMLElement;\n private _canvas?: HTMLCanvasElement | OffscreenCanvas | string;\n private _stage?: Stage;\n\n private _autoSize: boolean = true;\n private _option: IInitOption = {\n mode: RenderModeEnum['desktop-browser'],\n animation: true,\n onError: (msg: string) => {\n throw new Error(msg);\n }\n };\n\n private _curSize: { width: number; height: number };\n private _observer: ResizeObserver = null;\n\n private _currentThemeName: string;\n //private _currentTheme: ITheme;\n private _currentChartLevelTheme: IChartLevelTheme = {};\n\n private _onError?: (...args: any[]) => void;\n\n private _context: any = {}; // 存放用户在model初始化前通过实例方法传入的配置等\n\n constructor(spec: ISpec, options: IInitOption) {\n this._option = mergeOrigin(this._option, options);\n this._onError = this._option?.onError;\n\n const { dom, renderCanvas, mode, stage, poptip, ...restOptions } = this._option;\n\n if (dom) {\n this._container = isString(dom) ? document?.getElementById(dom) : dom;\n }\n if (renderCanvas) {\n this._canvas = renderCanvas;\n }\n if (stage) {\n this._stage = stage as unknown as Stage; // FIXME: 等待 vrender 解决类型和接口不匹配的问题 @zhouxinyu\n }\n\n if (mode !== 'node' && !this._container && !this._canvas && !this._stage) {\n this._option?.onError('please specify container or renderCanvas!');\n return;\n }\n\n this._viewBox = this._option.viewBox;\n this._currentThemeName = ThemeManager.getCurrentThemeName();\n this._setSpec(spec);\n this._updateCurrentTheme();\n this._curSize = calculateChartSize(this._spec, {\n container: this._container,\n canvas: this._canvas,\n mode: this._option.mode || RenderModeEnum['desktop-browser'],\n modeParams: this._option.modeParams\n });\n this._compiler = new Compiler(\n {\n dom: this._container ?? 'none',\n canvas: renderCanvas\n },\n {\n mode: this._option.mode,\n stage,\n pluginList: poptip !== false ? ['poptipForText'] : [],\n ...restOptions,\n background: this._getBackground(),\n onError: this._onError\n }\n );\n this._compiler.setSize(this._curSize.width, this._curSize.height);\n this._eventDispatcher = new EventDispatcher(this, this._compiler);\n this._event = new Event(this._eventDispatcher, mode);\n this._compiler.initView();\n // 设置全局字体\n this.getStage()?.setTheme({\n text: { fontFamily: this._currentChartLevelTheme.fontFamily }\n });\n this._initDataSet(this._option.dataSet);\n this._autoSize = isTrueBrowser(mode) ? spec.autoFit ?? this._option.autoFit ?? true : false;\n this._bindResizeEvent();\n this._bindVGrammarViewEvent();\n this._event.emit(ChartEvent.initialized, {});\n\n InstanceManager.registerInstance(this);\n }\n\n private _setSpec(spec: any) {\n if (!spec) {\n return;\n }\n\n this._spec = specTransform(isString(spec) ? JSON.parse(spec) : spec);\n }\n\n private _initChart(spec: any) {\n if (!this._compiler) {\n this._option?.onError('compiler is not initialized');\n return;\n }\n // 放到这里而不是放到chart内的考虑\n // 用户spec更新,也许会有core上图表实例的内容存在\n // 如果要支持spec的类似Proxy监听,更新逻辑应当从这一层开始。如果在chart上做,就需要在再向上发送spec更新消息,不是很合理。\n // todo: 问题1 存不存在 chart 需要在这个阶段处理的特殊字段?目前没有,但是理论上可以有?\n const chart = Factory.createChart(spec.type, spec, {\n globalInstance: this,\n eventDispatcher: this._eventDispatcher!,\n dataSet: this._dataSet!,\n container: this._container,\n canvas: this._canvas,\n map: new Map(),\n mode: this._option.mode || RenderModeEnum['desktop-browser'],\n modeParams: this._option.modeParams,\n getCompiler: () => this._compiler,\n performanceHook: this._option.performanceHook,\n viewBox: this._viewBox,\n animation: this._option.animation,\n getThemeConfig: () => ({\n globalTheme: this._currentThemeName,\n optionTheme: this._option.theme,\n specTheme: this._spec?.theme,\n chartLevelTheme: this._currentChartLevelTheme\n }),\n layout: this._option.layout,\n onError: this._onError\n });\n if (!chart) {\n this._option?.onError('init chart fail');\n return;\n }\n this._chart = chart;\n this._chart.setCanvasRect(this._curSize.width, this._curSize.height);\n this._chart.created();\n this._chart.init({});\n }\n\n private _releaseData() {\n if (this._dataSet) {\n this._dataSet.dataViewMap = {};\n this._dataSet = null;\n }\n }\n\n private _bindVGrammarViewEvent() {\n if (!this._compiler || this._compiler.isReleased) {\n return;\n }\n this._compiler.getVGrammarView().addEventListener(VGRAMMAR_HOOK_EVENT.ALL_ANIMATION_END, () => {\n this._event.emit(ChartEvent.animationFinished, {});\n });\n this._compiler.getVGrammarView().addEventListener(VGRAMMAR_HOOK_EVENT.AFTER_VRENDER_NEXT_RENDER, () => {\n this._event.emit(ChartEvent.renderFinished, {});\n });\n }\n\n private _bindResizeEvent() {\n if (this._autoSize) {\n if (this._container) {\n const ResizeObserverWindow: any = window.ResizeObserver;\n this._observer = new ResizeObserverWindow(this._onResize);\n this._observer?.observe(this._container);\n }\n window.addEventListener('resize', this._onResize);\n }\n }\n\n private _unBindResizeEvent() {\n if (this._autoSize) {\n window.removeEventListener('resize', this._onResize);\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n }\n }\n\n private _getCurSize() {\n const { width: containerWidth, height: containerHeight } = getContainerSize(\n this._container!,\n DEFAULT_CHART_WIDTH,\n DEFAULT_CHART_HEIGHT\n );\n return { width: this._spec.width ?? containerWidth, height: this._spec.height ?? containerHeight };\n }\n\n private _doResize() {\n const { width, height } = this._getCurSize();\n if (this._curSize.width !== width || this._curSize.height !== height) {\n this._curSize = { width, height };\n this.resize(width, height);\n }\n }\n\n private _onResize = debounce((...args: any[]) => {\n this._doResize();\n }, 100);\n\n private _initDataSet(dataSet?: DataSet) {\n if (dataSet instanceof DataSet) {\n this._dataSet = dataSet;\n } else {\n this._dataSet = new DataSet();\n }\n registerDataSetInstanceParser(this._dataSet, 'dataview', dataViewParser);\n registerDataSetInstanceParser(this._dataSet, 'array', arrayParser);\n registerDataSetInstanceTransform(this._dataSet, 'stackSplit', stackSplit);\n registerDataSetInstanceTransform(this._dataSet, 'copyDataView', copyDataView);\n // 注册 dataset transform\n for (const key in Factory.transforms) {\n registerDataSetInstanceTransform(this._dataSet, key, Factory.transforms[key]);\n }\n // 注册 dataview parser\n for (const key in Factory.dataParser) {\n registerDataSetInstanceParser(this._dataSet, key, Factory.dataParser[key]);\n }\n }\n\n /** **异步方法** 执行自定义的回调修改图表配置,并重新渲染 */\n async updateCustomConfigAndRerender(modifyConfig: () => IUpdateSpecResult | undefined, morphConfig?: IMorphConfig) {\n const result = modifyConfig(); // 执行回调\n if (!isValid(result)) {\n return this as unknown as IVChart;\n }\n this._reCompile(result);\n await this.renderAsync(morphConfig);\n return this as unknown as IVChart;\n }\n\n /** **同步方法** 执行自定义的回调修改图表配置,并重新渲染 */\n updateCustomConfigAndRerenderSync(modifyConfig: () => IUpdateSpecResult | undefined, morphConfig?: IMorphConfig) {\n const result = modifyConfig(); // 执行回调\n if (!isValid(result)) {\n return this as unknown as IVChart;\n }\n this._reCompile(result);\n this.renderSync(morphConfig);\n return this as unknown as IVChart;\n }\n\n protected _reCompile(updateResult: IUpdateSpecResult) {\n if (updateResult.reMake) {\n this._releaseData();\n this._initDataSet();\n // 释放图表等等\n this._chart.release();\n this._chart = null as unknown as IChart;\n this._compiler?.releaseGrammar();\n // chart 内部事件 模块自己必须删除\n // 内部模块删除事件时,调用了event Dispatcher.release() 导致用户事件被一起删除\n // 外部事件现在需要重新添加\n this._userEvents.forEach(e => this._event?.on(e.eType as any, e.query as any, e.handler as any));\n\n if (updateResult.reSize) {\n this._doResize();\n }\n } else {\n if (updateResult.reCompile) {\n // recompile\n // 清除之前的所有 compile 内容\n this._compiler?.clear({ chart: this._chart, vChart: this });\n // TODO: 释放事件? vgrammar 的 view 应该不需要释放,响应的stage也没有释放,所以事件可以不绑定\n // 重新绑定事件\n // TODO: 释放XX?\n // 重新compile\n this._compiler?.compile({ chart: this._chart, vChart: this }, {});\n }\n if (updateResult.reSize) {\n const { width, height } = this._getCurSize();\n this._chart.onResize(width, height);\n this._compiler.resize?.(width, height, false);\n }\n }\n }\n\n /**\n * **同步方法** 渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n renderSync(morphConfig?: IMorphConfig) {\n if (!this._chart) {\n this._option.performanceHook?.beforeInitializeChart?.();\n this._initChart(this._spec);\n this._option.performanceHook?.afterInitializeChart?.();\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n // 先compile\n this._option.performanceHook?.beforeCompileToVGrammar?.();\n this._compiler.compile({ chart: this._chart, vChart: this }, { performanceHook: this._option.performanceHook });\n this._option.performanceHook?.afterCompileToVGrammar?.();\n }\n // 最后填充数据绘图\n this._compiler?.renderSync(morphConfig);\n\n if (this._option.animation) {\n this._chart?.getAllRegions().forEach(region => {\n region.animate?.updateAnimateState(AnimationStateEnum.update, true);\n });\n this._chart?.getAllComponents().forEach(component => {\n component.animate?.updateAnimateState(AnimationStateEnum.update, true);\n });\n }\n\n this._event.emit(ChartEvent.rendered, {});\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** 渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n async renderAsync(morphConfig?: IMorphConfig) {\n if (!this._chart) {\n this._option.performanceHook?.beforeInitializeChart?.();\n this._initChart(this._spec);\n this._option.performanceHook?.afterInitializeChart?.();\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n // 先compile\n this._option.performanceHook?.beforeCompileToVGrammar?.();\n this._compiler.compile({ chart: this._chart, vChart: this }, { performanceHook: this._option.performanceHook });\n this._option.performanceHook?.afterCompileToVGrammar?.();\n }\n // 最后填充数据绘图\n await this._compiler?.renderAsync(morphConfig);\n\n if (this._option.animation) {\n this._chart?.getAllRegions().forEach(region => {\n region.animate?.updateAnimateState(AnimationStateEnum.update, true);\n });\n this._chart?.getAllComponents().forEach(component => {\n component.animate?.updateAnimateState(AnimationStateEnum.update, true);\n });\n }\n\n this._event.emit(ChartEvent.rendered, {});\n return this as unknown as IVChart;\n }\n\n /**\n * 销毁图表\n */\n release() {\n if ((this._onResize as any)?.cancel) {\n (this._onResize as any).cancel();\n }\n this._chart?.release();\n this._compiler?.release();\n this._eventDispatcher?.release();\n this._unBindResizeEvent();\n // resetID(); // 为什么要重置ID呢?\n\n this._releaseData();\n\n this._chart = null;\n this._compiler = null;\n this._spec = null;\n // this._option = null;\n this._userEvents = null;\n this._event = null;\n this._eventDispatcher = null;\n\n InstanceManager.unregisterInstance(this);\n }\n\n /**\n * **异步方法** 更新数据。\n * @param id 数据 id\n * @param data 数据值\n * @param options 数据参数\n * @returns VChart 实例\n */\n async updateData(id: StringOrNumber, data: DataView | Datum[] | string, options?: IParserOptions): Promise<IVChart> {\n if (isNil(this._dataSet)) {\n return this as unknown as IVChart;\n }\n if (this._chart) {\n this._chart.updateData(id, data, true, options);\n\n // after layout\n await this._compiler.renderAsync();\n return this as unknown as IVChart;\n }\n this._spec.data = array(this._spec.data);\n const preDV = this._spec.data.find((dv: any) => dv.name === id || dv.id === id);\n if (preDV) {\n if (preDV.id === id) {\n preDV.values = data;\n } else if (preDV.name === id) {\n preDV.parse(data, options);\n }\n } else {\n if (isArray(data)) {\n this._spec.data.push({\n id,\n values: data\n });\n } else {\n this._spec.data.push(data);\n }\n }\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** 批量更新数据。\n * @param list 待更新的数据列表\n * @returns VChart 实例\n */\n async updateDataInBatches(list: { id: string; data: Datum[]; options?: IParserOptions }[]): Promise<IVChart> {\n if (this._chart) {\n this._chart.updateFullData(\n list.map(({ id, data, options }) => {\n return { id, values: data, parser: options };\n })\n );\n this._chart.updateGlobalScaleDomain();\n await this._compiler.renderAsync();\n return this as unknown as IVChart;\n }\n list.forEach(({ id, data, options }) => {\n const preDV = (this._spec.data as DataView[]).find(dv => dv.name === id);\n if (preDV) {\n preDV.parse(data, options);\n } else {\n const dataView = new DataView(this._dataSet, { name: id });\n dataView.parse(data, options);\n this._spec.data.push(dataView);\n }\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 更新数据\n * @param id 数据 id\n * @param data 数据值\n * @param options 数据参数\n * @returns VChart 实例\n */\n updateDataSync(id: StringOrNumber, data: DataView | Datum[], options?: IParserOptions) {\n if (isNil(this._dataSet)) {\n return this as unknown as IVChart;\n }\n if (this._chart) {\n this._chart.updateData(id, data, true, options);\n // after layout\n this._compiler.renderSync();\n return this as unknown as IVChart;\n }\n const preDV = (this._spec.data as DataView[]).find(dv => dv.name === id);\n if (preDV) {\n preDV.parse(data, options);\n } else {\n const dataView = new DataView(this._dataSet, { name: id as string });\n dataView.parse(data, options);\n this._spec.data.push(dataView);\n }\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n * @since 1.3.0\n */\n updateFullDataSync(data: IDataValues | IDataValues[], reRender: boolean = true) {\n if (this._chart) {\n this._chart.updateFullData(data);\n if (reRender) {\n this._compiler.renderSync();\n }\n return this as unknown as IVChart;\n }\n const list: IDataValues[] = array(data);\n list.forEach(d => {\n // only support update this attrs\n const { id, values, parser, fields } = d;\n const preDV = (this._spec.data as DataView[]).find(dv => dv.name === id);\n if (preDV) {\n preDV.setFields(fields as IFields);\n preDV.parse(values, parser as IParserOptions);\n } else {\n // new data\n const dataView = dataToDataView(d, <DataSet>this._dataSet, this._spec.data, {\n onError: this._option?.onError\n });\n this._spec.data.push(dataView);\n }\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n * @since 1.3.0\n */\n async updateFullData(data: IDataValues | IDataValues[], reRender: boolean = true) {\n if (this._chart) {\n this._chart.updateFullData(data);\n if (reRender) {\n await this._compiler.renderAsync();\n }\n return this as unknown as IVChart;\n }\n const list: IDataValues[] = array(data);\n list.forEach(d => {\n // only support update this attrs\n const { id, values, parser, fields } = d;\n const preDV = (this._spec.data as DataView[]).find(dv => dv.name === id);\n if (preDV) {\n preDV.setFields(fields as IFields);\n preDV.parse(values, parser as IParserOptions);\n } else {\n // new data\n const dataView = dataToDataView(d, <DataSet>this._dataSet, this._spec.data, {\n onError: this._option?.onError\n });\n this._spec.data.push(dataView);\n }\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** spec 更新\n * @param spec\n * @param forceMerge\n * @returns\n */\n async updateSpec(spec: ISpec, forceMerge: boolean = false, morphConfig?: IMorphConfig) {\n if (!spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n if (forceMerge) {\n spec = mergeSpec({}, this._spec, spec);\n }\n\n await this.updateCustomConfigAndRerender(() => {\n spec = specTransform(spec) as any;\n const lastSpec = this._spec;\n this._spec = spec;\n if (!isEqual(lastSpec.theme, spec.theme)) {\n this._updateCurrentTheme();\n this._chart?.setCurrentTheme();\n }\n const reSize = this._shouldChartResize(lastSpec);\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n return mergeUpdateResult(this._chart.updateSpec(spec, morphConfig), {\n change: reSize,\n reMake: false,\n reCompile: false,\n reSize\n });\n }, morphConfig);\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** spec 更新\n * @param spec\n * @param forceMerge\n * @returns\n */\n updateSpecSync(spec: ISpec, forceMerge: boolean = false, morphConfig?: IMorphConfig) {\n if (!spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n // 没有配置变化 因为数据对象的原因,这里会报错\n // if (specString == JSON.stringify(this._spec)) {\n // return;\n // }\n\n if (forceMerge) {\n spec = mergeSpec({}, this._spec, spec);\n }\n\n this.updateCustomConfigAndRerenderSync(() => {\n spec = specTransform(spec) as any;\n // because of in data-init, data will be set as array;\n spec.data = spec.data ?? [];\n const lastSpec = this._spec;\n this._spec = spec;\n if (!isEqual(lastSpec.theme, spec.theme)) {\n this._updateCurrentTheme();\n this._chart?.setCurrentTheme();\n }\n const reSize = this._shouldChartResize(lastSpec);\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n return mergeUpdateResult(this._chart.updateSpec(spec, morphConfig), {\n change: reSize,\n reMake: false,\n reCompile: false,\n reSize\n });\n }, morphConfig);\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n async updateModelSpec(\n filter: string | { type: string; index: number } | ((model: IModel) => boolean),\n spec: unknown,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (!spec || !this._spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n if (!isFunction(filter)) {\n // find spec and update\n mergeSpecWithFilter(this._spec, filter, spec, forceMerge);\n }\n\n if (this._chart) {\n const model = this._chart.getModelInFilter(filter);\n if (model) {\n return this._updateModelSpec(model, spec, false, forceMerge, morphConfig);\n }\n }\n return this as unknown as IVChart;\n }\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 } | ((model: IModel) => boolean),\n spec: unknown,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (!spec || !this._spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n if (!isFunction(filter)) {\n // find spec and update\n mergeSpecWithFilter(this._spec, filter, spec, forceMerge);\n }\n\n if (this._chart) {\n const model = this._chart.getModelInFilter(filter);\n if (model) {\n return this._updateModelSpec(model, spec, true, forceMerge, morphConfig) as IVChart;\n }\n }\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 模块 spec 更新\n * @param model\n * @param spec\n * @param forceMerge\n * @returns\n */\n protected _updateModelSpec(\n model: IModel,\n spec: unknown,\n sync: boolean = false,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (forceMerge) {\n spec = mergeSpec({}, model.getSpec(), spec);\n }\n const modifyConfig = () => {\n const result = model.updateSpec(spec);\n model.reInit();\n if (result.change || result.reCompile || result.reMake || result.reSize || result.reRender) {\n this._chart.reDataFlow();\n }\n return result;\n };\n if (sync) {\n return this.updateCustomConfigAndRerenderSync(modifyConfig, morphConfig);\n }\n return this.updateCustomConfigAndRerender(modifyConfig, morphConfig);\n }\n\n /**\n * **异步方法**,图表尺寸更新方法\n * @param width 宽度\n * @param height 高度\n * @returns VChart 当前实例\n */\n async resize(width: number, height: number) {\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n // 如果宽高未变化,不需要重新执行 resize,防止当图表初始化时会执行一次多余的 resize\n const chartCanvasRect = this._chart.getCanvasRect();\n if (chartCanvasRect && chartCanvasRect.width === width && chartCanvasRect.height === height) {\n return this as unknown as IVChart;\n }\n this._option.performanceHook?.beforeResizeWithUpdate?.();\n this._chart.onResize(width, height);\n this._option.performanceHook?.afterResizeWithUpdate?.();\n await this._compiler.resize?.(width, height);\n // emit resize event\n this._event.emit(ChartEvent.afterResize, { chart: this._chart });\n return this as unknown as IVChart;\n }\n\n /**\n * 更新绘制区域\n * @param viewBox 绘制区域\n * @param reRender 是否重新渲染,默认为 true\n * @param reLayout 是否重新布局,默认为 true\n * @returns\n */\n updateViewBox(viewBox: IBoundsLike, reRender: boolean = true, reLayout: boolean = true) {\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n this._viewBox = viewBox;\n // 更新 layout 参数\n this._chart.updateViewBox(viewBox, reLayout);\n if (reLayout) {\n // 重新布局\n this._compiler.renderSync();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this._chart?.onEvaluateEnd();\n }\n // 获取 compiler\n this._compiler.updateViewBox(viewBox, reRender);\n return this as unknown as IVChart;\n }\n\n // 事件相关方法\n on(eType: EventType, handler: EventCallback<EventParams>): void;\n on(eType: EventType, query: EventQuery, handler: EventCallback<EventParams>): void;\n on(eType: EventType, query: EventQuery | EventCallback<EventParams>, handler?: EventCallback<EventParams>): void {\n if (!this._userEvents) {\n // userEvents正常情况下有默认值,如果!userEvents,说明此时chart被release了,就可以终止流程\n return;\n }\n this._userEvents.push({\n eType,\n query: typeof query === 'function' ? null : query,\n handler: typeof query === 'function' ? query : handler\n });\n this._event?.on(eType as any, query as any, handler as any);\n }\n off(eType: string, handler?: EventCallback<EventParams>): void {\n if (!this._userEvents || this._userEvents.length === 0) {\n return;\n }\n if (handler) {\n const index = this._userEvents.findIndex(e => e.eType === eType && e.handler === handler);\n if (index >= 0) {\n this._userEvents.splice(index, 1);\n this._event?.off(eType, handler);\n }\n } else {\n this._userEvents.forEach(e => {\n if (e.eType === eType) {\n this._event?.off(eType, e.handler);\n }\n });\n this._userEvents = this._userEvents.filter(e => e.eType !== eType);\n }\n }\n\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 if (!this._chart) {\n return;\n }\n this._chart.updateState(state, filter);\n }\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 if (!this._chart) {\n return;\n }\n this._chart.setSelected(datum, filter, region);\n }\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 if (!this._chart) {\n return;\n }\n this._chart.setHovered(datum, filter, region);\n }\n\n // 主题相关方法\n /**\n * 当 spec 或者 currentThemeName 有变化时需要调用此方法对 currentTheme 进行更新\n * @param nextThemeName 通过 setCurrentTheme 方法新设的主题\n */\n private _updateCurrentTheme(nextThemeName?: string) {\n const optionTheme: Maybe<string | ITheme> = this._option.theme;\n const specTheme: Maybe<string | ITheme> = this._spec?.theme;\n\n if (nextThemeName) {\n this._currentThemeName = nextThemeName;\n }\n\n const colorScheme = mergeThemeAndGet('colorScheme', this._currentThemeName, optionTheme, specTheme);\n this._currentChartLevelTheme = {\n colorScheme,\n background: mergeThemeAndGet('background', this._currentThemeName, optionTheme, specTheme, colorScheme),\n fontFamily: mergeThemeAndGet('fontFamily', this._currentThemeName, optionTheme, specTheme, colorScheme)\n };\n\n // 设置 poptip 的主题\n setPoptipTheme(\n preprocessSpecOrTheme(\n 'mark-theme',\n mergeThemeAndGet('component.poptip', this._currentThemeName, optionTheme, specTheme, colorScheme),\n colorScheme\n )\n );\n // 设置背景色\n this._compiler?.setBackground(this._getBackground());\n }\n\n private _shouldChartResize(oldSpec: ISpec): boolean {\n let resize = false;\n\n if (isNil(this._spec.width)) {\n this._spec.width = oldSpec.width;\n } else if (this._spec.width !== oldSpec.width) {\n resize = true;\n }\n\n if (isNil(this._spec.height)) {\n this._spec.height = oldSpec.height;\n } else if (this._spec.height !== oldSpec.height) {\n resize = true;\n }\n\n const lasAutoSize = this._autoSize;\n this._autoSize = isTrueBrowser(this._option.mode) ? this._spec.autoFit ?? this._option.autoFit ?? true : false;\n if (this._autoSize !== lasAutoSize) {\n resize = true;\n }\n return resize;\n }\n\n private _getBackground() {\n const specBackground = typeof this._spec.background === 'string' ? this._spec.background : null;\n // spec > spec.theme > initOptions.theme\n return specBackground || (this._currentChartLevelTheme.background as string) || this._option.background;\n }\n\n /**\n * 获取当前主题,会返回完整的主题配置(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n * */\n getCurrentTheme() {\n return getThemeObject(this._currentThemeName);\n }\n\n /**\n * 获取当前主题名称(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n */\n getCurrentThemeName() {\n return this._currentThemeName;\n }\n\n /**\n * **异步方法**, 设置当前主题。\n * **注意,如果在 spec 上配置了 theme,则 spec 上的 theme 优先级更高。**\n * @param name 主题名称\n * @returns\n */\n async setCurrentTheme(name: string) {\n if (!ThemeManager.themeExist(name)) {\n return this as unknown as IVChart;\n }\n\n await this.updateCustomConfigAndRerender(() => {\n this._updateCurrentTheme(name);\n this._chart?.setCurrentTheme(true);\n return { change: true, reMake: false };\n });\n\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 设置当前主题。\n * **注意,如果在 spec 上配置了 theme,则 spec 上的 theme 优先级更高。**\n * @param name 主题名称\n * @returns\n */\n setCurrentThemeSync(name: string) {\n if (!ThemeManager.themeExist(name)) {\n return this as unknown as IVChart;\n }\n\n this.updateCustomConfigAndRerenderSync(() => {\n this._updateCurrentTheme(name);\n this._chart?.setCurrentTheme(true);\n return { change: true, reMake: false };\n });\n\n return this as unknown as IVChart;\n }\n\n // Tooltip 相关方法\n private _getTooltipComponent(): Tooltip | undefined {\n const tooltip = this._chart?.getAllComponents().find(c => c.type === ComponentTypeEnum.tooltip) as Tooltip;\n return tooltip;\n }\n\n /**\n * 自定义 TooltipHandler\n * @param tooltipHandler\n */\n setTooltipHandler(tooltipHandler: ITooltipHandler) {\n this._context.tooltipHandler = tooltipHandler;\n const tooltip = this._getTooltipComponent();\n if (tooltip) {\n tooltip.tooltipHandler?.release?.();\n tooltip.tooltipHandler = tooltipHandler;\n }\n }\n\n /**\n * 获取用户定义的 TooltipHandler\n * @returns ITooltipHandler\n */\n getTooltipHandlerByUser(): ITooltipHandler | undefined {\n return this._context?.tooltipHandler;\n }\n\n /**\n * 获取 TooltipHandler\n * @returns\n */\n getTooltipHandler(): ITooltipHandler | undefined {\n const tooltip = this._getTooltipComponent();\n if (tooltip) {\n return tooltip.tooltipHandler;\n }\n return this._context.tooltipHandler;\n }\n\n /**\n * 手动调用展示 tooltip\n * @param datum 原始数据\n * @param options\n * @returns\n */\n showTooltip(datum: Datum, options: IShowTooltipOption): boolean {\n const tooltip = this._getTooltipComponent();\n return (isValid(datum) && tooltip?.showTooltip(datum, options) !== 'none') ?? false;\n }\n\n /**\n * 手动调用,关闭 tooltip\n * @returns\n */\n hideTooltip(): boolean {\n const tooltip = this._getTooltipComponent();\n return tooltip?.hideTooltip() ?? false;\n }\n\n // 图例相关 api\n /**\n * 根据图例组件 id 获取图例数据\n * @param id 组件 id\n * @returns\n */\n getLegendDataById(id: string) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n return legendComponent.getLegendData();\n }\n return [];\n }\n\n /**\n * 根据图例组件索引获取图例数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendDataByIndex(index: number = 0) {\n const legends = this._chart\n ?.getAllComponents()\n .filter(c => c.type === ComponentTypeEnum.discreteLegend) as ILegend[];\n\n if (legends[index]) {\n return legends[index].getLegendData();\n }\n\n return [];\n }\n\n /**\n * 根据图例组件 id 获取当前图例的选中项\n * @param id 组件 id\n * @returns\n */\n getLegendSelectedDataById(id: string) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n return legendComponent.getSelectedData();\n }\n return [];\n }\n\n /**\n * 根据图例组件索引获取当前图例的选中项\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendSelectedDataByIndex(index: number = 0) {\n const legends = this._chart\n ?.getAllComponents()\n .filter(c => c.type === ComponentTypeEnum.discreteLegend) as ILegend[];\n\n if (legends[index]) {\n return legends[index].getSelectedData();\n }\n\n return [];\n }\n\n /**\n * 根据图例组件 id 更新图例选中数据\n * @param id\n * @returns\n */\n setLegendSelectedDataById(id: string, selectedData: StringOrNumber[]) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n legendComponent.setSelectedData(selectedData);\n }\n }\n\n /**\n * 根据图例组件索引更新图例选中数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n setLegendSelectedDataByIndex(index: number = 0, selectedData: StringOrNumber[]) {\n const legends = this._chart\n ?.getAllComponents()\n .filter(c => c.type === ComponentTypeEnum.discreteLegend) as ILegend[];\n\n if (legends[index]) {\n legends[index].setSelectedData(selectedData);\n }\n }\n\n // 保存图片相关的方法\n /**\n * **异步方法**返回一个包含图片展示的 data URI。\n * @returns data URI\n */\n async getDataURL() {\n const stage = this.getStage();\n if (this._chart && stage) {\n // 因为 vrender 是 autoRender 的,它不能确认第几帧才是完整的图表,所以这里调用一次 render 以保证获取到的是完整的画布\n stage.render();\n const canvas = this._chart.getCanvas();\n const url = await getCanvasDataURL(canvas, {\n onError: this._onError\n });\n return url;\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n\n return null;\n }\n\n /**\n * **异步方法** 导出图表图片,只支持浏览器端。\n * @param name 保存的图片名称\n * @returns\n */\n async exportImg(name?: string) {\n if (!isTrueBrowser(this._option.mode)) {\n this._option?.onError(new TypeError(`non-browser environment can not export img`));\n return;\n }\n\n const dataURL = await this.getDataURL();\n if (dataURL) {\n URLToImage(name, dataURL);\n } else {\n this._option?.onError(new ReferenceError(`render is not defined`));\n }\n }\n /**\n * 导出绘制了图表内容的 canvas\n * @returns HTMLCanvasElement\n */\n exportCanvas(): HTMLCanvasElement | undefined {\n const stage = this.getStage();\n if (this._chart && stage) {\n return stage.toCanvas();\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n return undefined;\n }\n\n /**\n * 目前仅支持 node 环境,用于 node 端的图片导出\n * @returns\n */\n getImageBuffer() {\n if (this._option.mode !== 'node') {\n this._option?.onError(new TypeError('getImageBuffer() now only support node environment.'));\n return;\n }\n const stage = this.getStage();\n if (stage) {\n stage.render();\n const buffer = stage.window.getImageBuffer();\n return buffer;\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n\n return null;\n }\n\n // 布局相关的方法\n /**\n * 设置自定义布局\n */\n setLayout(layout: LayoutCallBack) {\n this._option.layout = layout;\n this._chart?.setLayout(layout);\n }\n /**\n * 强制重新布局\n */\n reLayout() {\n this._chart?.setLayoutTag(true);\n }\n\n /**\n * 获取编译器实例\n * @returns\n */\n getCompiler() {\n return this._compiler;\n }\n\n /**\n * Get the chart instance\n * 获取 Chart 图表实例。\n * @returns Chart 实例\n */\n getChart() {\n return this._chart;\n }\n\n /**\n * Get the renderer instance.\n * 获取渲染引擎实例。\n * @returns the instance of VRender Stage\n */\n getStage(): Stage {\n return this._compiler.getStage();\n }\n\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas(): HTMLCanvasElement | undefined {\n return this._compiler?.getCanvas();\n }\n\n /**\n * 获取图表的 dom 容器\n * @returns\n */\n getContainer(): Maybe<HTMLElement> {\n // 用户传入 dom container\n if (isValid(this._container)) {\n return this._container;\n }\n\n // 用户传入 canvas\n let canvasNode: Maybe<HTMLCanvasElement>;\n if (isString(this._canvas)) {\n canvasNode = document?.getElementById(this._canvas) as HTMLCanvasElement;\n } else {\n canvasNode = this._canvas as HTMLCanvasElement;\n }\n if (isValid(canvasNode)) {\n return canvasNode.parentElement;\n }\n\n // 用户传入 stage\n return this.getCanvas()?.parentElement;\n }\n\n /**\n * 获取图表所有的组件实例\n * @returns 组件实例\n */\n getComponents() {\n return this._chart.getAllComponents();\n }\n\n /**\n * setDimensionIndex could trigger mark state, tooltip, crosshair\n * @param value dimension value\n * @param opt option for set trigger\n */\n setDimensionIndex(value: StringOrNumber, opt: DimensionIndexOption = {}) {\n return this._chart?.setDimensionIndex(value, opt);\n }\n\n /** 停止正在进行的所有动画 */\n stopAnimation() {\n this._compiler?.getVGrammarView()?.animate?.stop();\n }\n\n /** 暂停正在进行的所有动画 */\n pauseAnimation() {\n this._compiler?.getVGrammarView()?.animate?.pause();\n }\n\n /** 恢复暂停时正在进行的所有动画 */\n resumeAnimation() {\n this._compiler?.getVGrammarView()?.animate?.resume();\n }\n\n // TODO: 后续需要考虑滚动场景\n /**\n * Convert the data corresponding to the graph into coordinates\n * 将图形对应的数据转换为坐标,该数据需要从传入图表的数据集中获取,如果数据不存在数据集中,可以使用 `convertValueToPosition` 方法\n * @param datum 要转化的数据 the datum(from data source)to convert\n * @param dataLinkInfo 数据的绑定信息,the data link info, could be seriesId or seriesIndex, default is { seriesIndex: 0 }\n * @param isRelativeToCanvas 是否相对画布坐标 Whether relative to canvas coordinates\n * @returns\n */\n convertDatumToPosition(\n datum: Datum,\n dataLinkInfo: DataLinkSeries = {},\n isRelativeToCanvas: boolean = false\n ): IPoint | null {\n if (!this._chart) {\n return null;\n }\n if (isEmpty(datum)) {\n return null;\n }\n const { seriesId, seriesIndex = 0 } = dataLinkInfo;\n\n let series: ISeries;\n if (isValid(seriesId)) {\n series = this._chart.getSeriesInUserId(seriesId);\n } else if (isValid(seriesIndex)) {\n series = this._chart.getSeriesInIndex([seriesIndex])?.[0];\n }\n\n if (series) {\n const keys = Object.keys(datum);\n const handledDatum = series\n .getViewData()\n // eslint-disable-next-line eqeqeq\n .latestData.find((viewDatum: Datum) => keys.every(k => viewDatum[k] == datum[k]));\n const seriesLayoutStartPoint = series.getLayoutStartPoint();\n let point: IPoint;\n if (handledDatum) {\n point = series.dataToPosition(handledDatum);\n } else {\n point = series.dataToPosition(datum);\n }\n return convertPoint(point, seriesLayoutStartPoint, isRelativeToCanvas);\n }\n\n return null;\n }\n\n // TODO: 1. 后续需要考虑滚动场景 2. 极坐标场景支持\n convertValueToPosition(\n value: StringOrNumber,\n dataLinkInfo: DataLinkAxis,\n isRelativeToCanvas?: boolean\n ): number | null;\n convertValueToPosition(\n value: [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkSeries,\n isRelativeToCanvas?: boolean\n ): IPoint | null;\n convertValueToPosition(\n value: StringOrNumber | [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkAxis | DataLinkSeries,\n isRelativeToCanvas: boolean = false\n ): number | IPoint | null {\n if (!this._chart || isNil(value) || isEmpty(dataLinkInfo)) {\n return null;\n }\n\n if (!isArray(value)) {\n // 如果单个值,则默认使用 axis 绑定信息\n const { axisId, axisIndex } = dataLinkInfo as DataLinkAxis;\n let axis;\n if (isValid(axisId)) {\n axis = this._chart.getComponentsByKey('axes').find(s => s.userId === axisId);\n } else if (isValid(axisIndex)) {\n axis = this._chart.getComponentsByKey('axes')?.[axisIndex];\n }\n if (!axis) {\n warn('Please check whether the `axisId` or `axisIndex` is set!');\n return null;\n }\n\n const pointValue = (axis as IAxis)?.valueToPosition(value);\n if (isRelativeToCanvas) {\n const axisLayoutStartPoint = axis.getLayoutStartPoint();\n const axisOrient = (axis as IAxis).getOrient();\n return (\n pointValue +\n (axisOrient === 'bottom' || axisOrient === 'top' ? axisLayoutStartPoint.x : axisLayoutStartPoint.y)\n );\n }\n\n return pointValue;\n }\n const { seriesId, seriesIndex } = dataLinkInfo as DataLinkSeries;\n let series;\n if (isValid(seriesId)) {\n series = this._chart.getSeriesInUserId(seriesId);\n } else if (isValid(seriesIndex)) {\n series = this._chart.getSeriesInIndex([seriesIndex])?.[0];\n }\n\n if (!series) {\n warn('Please check whether the `seriesId` or `seriesIndex` is set!');\n return null;\n }\n\n return convertPoint(\n (series as ISeries).valueToPosition(value[0], value[1]),\n series.getLayoutStartPoint(),\n isRelativeToCanvas\n );\n }\n}\n\nexport const registerVChartCore = () => {\n // install region module\n Factory.registerRegion('region', Region);\n // install layout module\n Factory.registerLayout('base', Layout);\n // install essential marks\n Factory.registerMark(GroupMark.type, GroupMark);\n // install essential vgrammar transform\n View.useRegisters([registerFilterTransform, registerMapTransform]);\n // install animation\n registerVGrammarAnimation();\n // set default logger level to Level.error\n Logger.getInstance(LoggerLevel.Error);\n};\n\nregisterVChartCore();\n"]}
1
+ {"version":3,"sources":["../src/core/vchart.ts"],"names":[],"mappings":"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","file":"vchart.js","sourcesContent":["import type { ISeries } from '../series/interface/series';\nimport { arrayParser } from '../data/parser/array';\nimport type { ILayoutConstructor, LayoutCallBack } from '../layout/interface';\nimport type { IDataValues, IMarkStateSpec, IInitOption } from '../typings/spec/common';\n// eslint-disable-next-line no-duplicate-imports\nimport { RenderModeEnum } from '../typings/spec/common';\nimport type { ISeriesConstructor } from '../series/interface';\nimport type { DimensionIndexOption, IChart, IChartConstructor } from '../chart/interface';\nimport type { IComponentConstructor } from '../component/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../component/interface/type';\nimport type {\n EventCallback,\n EventParams,\n EventParamsDefinition,\n EventQuery,\n EventType,\n IEvent,\n IEventDispatcher\n} from '../event/interface';\nimport type { IParserOptions } from '@visactor/vdataset/es/parser';\nimport type { IFields, Transform } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, dataViewParser, DataView } from '@visactor/vdataset';\nimport type { Stage } from '@visactor/vrender-core';\nimport { createID } from '../util/id';\nimport { convertPoint } from '../util/space';\nimport { isTrueBrowser } from '../util/env';\nimport { warn } from '../util/debug';\nimport { mergeSpec, mergeSpecWithFilter } from '../util/spec/merge-spec';\nimport { specTransform } from '../util/spec/transform';\nimport { preprocessSpecOrTheme } from '../util/spec/preprocess';\nimport { getThemeObject } from '../util/spec/common';\nimport { Factory } from './factory';\nimport { Event } from '../event/event';\nimport { EventDispatcher } from '../event/event-dispatcher';\nimport type { GeoSourceType } from '../typings/geo';\nimport type { GeoSourceOption } from '../series/map/geo-source';\n// eslint-disable-next-line no-duplicate-imports\nimport { getMapSource } from '../series/map/geo-source';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IMark, MarkConstructor } from '../mark/interface';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../data/register';\nimport { dataToDataView } from '../data/initialize';\nimport { stackSplit } from '../data/transforms/stack-split';\nimport { copyDataView } from '../data/transforms/copy-data-view';\nimport type { ITooltipHandler } from '../typings/tooltip';\nimport type { Tooltip } from '../component/tooltip';\nimport type {\n Datum,\n IPoint,\n IRegionQuerier,\n IShowTooltipOption,\n ISpec,\n Maybe,\n MaybeArray,\n StringOrNumber\n} from '../typings';\nimport { AnimationStateEnum } from '../animation/interface';\nimport type { IBoundsLike, ILogger } from '@visactor/vutils';\nimport { ThemeManager } from '../theme/theme-manager';\nimport type { ITheme } from '../theme';\nimport type { IModel, IUpdateSpecResult } from '../model/interface';\nimport { Compiler } from '../compile/compiler';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { ILegend } from '../component/legend/interface';\nimport { getCanvasDataURL, URLToImage } from '../util/image';\nimport { ChartEvent, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, VGRAMMAR_HOOK_EVENT } from '../constant';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n getContainerSize,\n isArray,\n isEmpty,\n Logger,\n merge as mergeOrigin,\n isFunction,\n LoggerLevel,\n isEqual,\n isString,\n isValid,\n isNil,\n array,\n debounce\n} from '@visactor/vutils';\nimport type { DataLinkAxis, DataLinkSeries, IChartLevelTheme, IGlobalConfig, IVChart } from './interface';\nimport { InstanceManager } from './instance-manager';\nimport type { IAxis } from '../component/axis';\nimport { setPoptipTheme } from '@visactor/vrender-components';\nimport { calculateChartSize, mergeUpdateResult } from '../chart/util';\nimport { Region } from '../region/region';\nimport { Layout } from '../layout/base-layout';\nimport { GroupMark } from '../mark/group';\nimport { registerVGrammarAnimation } from '../animation/config';\nimport { View, registerFilterTransform, registerMapTransform } from '@visactor/vgrammar-core';\nimport { VCHART_UTILS } from './util';\nimport { mergeThemeAndGet } from '../theme/util';\nimport { registerBrowserEnv, registerNodeEnv } from '../env';\n\nexport class VChart implements IVChart {\n readonly id = createID();\n\n /**\n * 按需注册图表和组件\n * @param comps\n * @since 1.5.1\n */\n static useRegisters(comps: (() => void)[]) {\n comps.forEach((fn: () => void) => {\n fn();\n });\n }\n\n /**\n * 注册自定义图表\n * @param charts 图表类\n * @description 若用于按需加载,1.5.1版本后,请统一使用 `useRegisters` API,例如:`VChart.useRegisters([registerLineChart])`。\n */\n static useChart(charts: IChartConstructor[]) {\n charts.forEach(c => Factory.registerChart(c.type, c));\n }\n /**\n * 注册自定义系列\n * @param series 系列类\n * @description 若用于按需加载,1.5.1版本后,统一使用 `useRegisters` API,例如 `VChart.useRegisters([registerLineSeries])`。\n */\n static useSeries(series: ISeriesConstructor[]) {\n series.forEach(s => Factory.registerSeries(s.type, s));\n }\n /**\n * 注册自定义组件\n * @param components 组件类\n * @description 若用于按需加载,1.5.1版本后,统一使用 `useRegisters` API,例如 `VChart.useRegisters([registerCartesianLinearAxis])`。\n */\n static useComponent(components: IComponentConstructor[]) {\n components.forEach(c => Factory.registerComponent(c.type, c));\n }\n /**\n * 注册自定义 Mark\n * @param marks Mark 图元类\n */\n static useMark(marks: MarkConstructor[]) {\n marks.forEach(m => Factory.registerMark(m.constructorType ?? m.type, m));\n }\n /**\n * 注册自定义布局\n * @param layouts 布局类\n */\n static useLayout(layouts: ILayoutConstructor[]) {\n layouts.forEach(l => Factory.registerLayout(l.type, l));\n }\n /**\n * 注册 DataSet 数据方法\n * @param name 数据 transform 方法名称\n * @param transform 具体的 Transform 执行方法\n */\n static registerDataSetTransform(name: string, transform: Transform) {\n Factory.registerTransform(name, transform);\n }\n\n /**\n * 注册地图数据\n * @param key 地图名称\n * @param source 地图数据\n * @param option 地图数据配置\n */\n static registerMap(key: string, source: GeoSourceType, option?: GeoSourceOption) {\n const impl = Factory.getImplementInKey('registerMap');\n impl && impl(key, source, option);\n }\n\n /**\n * 注销地图数据\n * @param key 地图名称\n */\n static unregisterMap(key: string) {\n const impl = Factory.getImplementInKey('unregisterMap');\n impl && impl(key);\n }\n\n /**\n * 根据地图名称获取地图数据\n * @param key 地图名称\n * @returns 地图数据\n */\n static getMap(key: string): GeoSourceType {\n return getMapSource(key);\n }\n\n /**\n * 全局关闭 tooltip\n * @param excludeId 可选,指定不需要关闭 tooltip 的实例 id\n */\n static hideTooltip(excludeId: MaybeArray<number> = []): void {\n InstanceManager.forEach(instance => instance?.hideTooltip?.(), excludeId);\n }\n\n /** 获取 Logger */\n static getLogger(): ILogger {\n return Logger.getInstance();\n }\n\n /** 图表实例管理器 */\n static readonly InstanceManager = InstanceManager;\n /** 主题管理器 */\n static readonly ThemeManager = ThemeManager;\n\n /** 全局配置 */\n static globalConfig: IGlobalConfig = {\n uniqueTooltip: true\n };\n\n /** 工具方法 */\n static readonly Utils = VCHART_UTILS;\n\n protected _spec: any;\n\n private _viewBox: IBoundsLike;\n private _chart!: Maybe<IChart>;\n private _compiler: Compiler;\n private _event: Maybe<IEvent>;\n private _userEvents: {\n eType: EventType;\n query: EventQuery | EventCallback<EventParamsDefinition[EventType]>;\n handler?: EventCallback<EventParamsDefinition[EventType]>;\n }[] = [];\n private _eventDispatcher: Maybe<IEventDispatcher>;\n private _dataSet!: Maybe<DataSet>;\n getDataSet() {\n return this._dataSet;\n }\n\n private _container?: HTMLElement;\n private _canvas?: HTMLCanvasElement | OffscreenCanvas | string;\n private _stage?: Stage;\n\n private _autoSize: boolean = true;\n private _option: IInitOption = {\n mode: RenderModeEnum['desktop-browser'],\n onError: (msg: string) => {\n throw new Error(msg);\n }\n };\n\n private _curSize: { width: number; height: number };\n private _observer: ResizeObserver = null;\n\n private _currentThemeName: string;\n //private _currentTheme: ITheme;\n private _currentChartLevelTheme: IChartLevelTheme = {};\n\n private _onError?: (...args: any[]) => void;\n\n private _context: any = {}; // 存放用户在model初始化前通过实例方法传入的配置等\n\n constructor(spec: ISpec, options: IInitOption) {\n this._option = mergeOrigin(this._option, { animation: (spec as any).animation !== false }, options);\n this._onError = this._option?.onError;\n\n const { dom, renderCanvas, mode, stage, poptip, ...restOptions } = this._option;\n\n if (dom) {\n this._container = isString(dom) ? document?.getElementById(dom) : dom;\n }\n if (renderCanvas) {\n this._canvas = renderCanvas;\n }\n if (stage) {\n this._stage = stage as unknown as Stage; // FIXME: 等待 vrender 解决类型和接口不匹配的问题 @zhouxinyu\n }\n\n if (mode !== 'node' && !this._container && !this._canvas && !this._stage) {\n this._option?.onError('please specify container or renderCanvas!');\n return;\n }\n\n // 根据 mode 配置动态加载浏览器或 node 环境代码\n if (isTrueBrowser(mode)) {\n registerBrowserEnv();\n } else if (mode === 'node') {\n registerNodeEnv();\n }\n\n this._viewBox = this._option.viewBox;\n this._currentThemeName = ThemeManager.getCurrentThemeName();\n this._setSpec(spec);\n this._updateCurrentTheme();\n this._curSize = calculateChartSize(this._spec, {\n container: this._container,\n canvas: this._canvas,\n mode: this._option.mode || RenderModeEnum['desktop-browser'],\n modeParams: this._option.modeParams\n });\n this._compiler = new Compiler(\n {\n dom: this._container ?? 'none',\n canvas: renderCanvas\n },\n {\n mode: this._option.mode,\n stage,\n pluginList: poptip !== false ? ['poptipForText'] : [],\n ...restOptions,\n background: this._getBackground(),\n onError: this._onError\n }\n );\n this._compiler.setSize(this._curSize.width, this._curSize.height);\n this._eventDispatcher = new EventDispatcher(this, this._compiler);\n this._event = new Event(this._eventDispatcher, mode);\n this._compiler.initView();\n // 设置全局字体\n this.getStage()?.setTheme({\n text: { fontFamily: this._currentChartLevelTheme.fontFamily }\n });\n this._initDataSet(this._option.dataSet);\n this._autoSize = isTrueBrowser(mode) ? spec.autoFit ?? this._option.autoFit ?? true : false;\n this._bindResizeEvent();\n this._bindVGrammarViewEvent();\n this._event.emit(ChartEvent.initialized, {});\n\n InstanceManager.registerInstance(this);\n }\n\n private _setSpec(spec: any) {\n if (!spec) {\n return;\n }\n\n this._spec = specTransform(isString(spec) ? JSON.parse(spec) : spec);\n }\n\n private _initChart(spec: any) {\n if (!this._compiler) {\n this._option?.onError('compiler is not initialized');\n return;\n }\n // 放到这里而不是放到chart内的考虑\n // 用户spec更新,也许会有core上图表实例的内容存在\n // 如果要支持spec的类似Proxy监听,更新逻辑应当从这一层开始。如果在chart上做,就需要在再向上发送spec更新消息,不是很合理。\n // todo: 问题1 存不存在 chart 需要在这个阶段处理的特殊字段?目前没有,但是理论上可以有?\n const chart = Factory.createChart(spec.type, spec, {\n globalInstance: this,\n eventDispatcher: this._eventDispatcher!,\n dataSet: this._dataSet!,\n container: this._container,\n canvas: this._canvas,\n map: new Map(),\n mode: this._option.mode || RenderModeEnum['desktop-browser'],\n modeParams: this._option.modeParams,\n getCompiler: () => this._compiler,\n performanceHook: this._option.performanceHook,\n viewBox: this._viewBox,\n animation: this._option.animation,\n getThemeConfig: () => ({\n globalTheme: this._currentThemeName,\n optionTheme: this._option.theme,\n specTheme: this._spec?.theme,\n chartLevelTheme: this._currentChartLevelTheme\n }),\n layout: this._option.layout,\n onError: this._onError\n });\n if (!chart) {\n this._option?.onError('init chart fail');\n return;\n }\n this._chart = chart;\n this._chart.setCanvasRect(this._curSize.width, this._curSize.height);\n this._chart.created();\n this._chart.init({});\n }\n\n private _releaseData() {\n if (this._dataSet) {\n this._dataSet.dataViewMap = {};\n this._dataSet = null;\n }\n }\n\n private _bindVGrammarViewEvent() {\n if (!this._compiler || this._compiler.isReleased) {\n return;\n }\n this._compiler.getVGrammarView().addEventListener(VGRAMMAR_HOOK_EVENT.ALL_ANIMATION_END, () => {\n this._event.emit(ChartEvent.animationFinished, {});\n });\n this._compiler.getVGrammarView().addEventListener(VGRAMMAR_HOOK_EVENT.AFTER_VRENDER_NEXT_RENDER, () => {\n this._event.emit(ChartEvent.renderFinished, {});\n });\n }\n\n private _bindResizeEvent() {\n if (this._autoSize) {\n if (this._container) {\n const ResizeObserverWindow: any = window.ResizeObserver;\n this._observer = new ResizeObserverWindow(this._onResize);\n this._observer?.observe(this._container);\n }\n window.addEventListener('resize', this._onResize);\n }\n }\n\n private _unBindResizeEvent() {\n if (this._autoSize) {\n window.removeEventListener('resize', this._onResize);\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n }\n }\n\n private _getCurSize() {\n const { width: containerWidth, height: containerHeight } = getContainerSize(\n this._container!,\n DEFAULT_CHART_WIDTH,\n DEFAULT_CHART_HEIGHT\n );\n return { width: this._spec.width ?? containerWidth, height: this._spec.height ?? containerHeight };\n }\n\n private _doResize() {\n const { width, height } = this._getCurSize();\n if (this._curSize.width !== width || this._curSize.height !== height) {\n this._curSize = { width, height };\n this.resize(width, height);\n }\n }\n\n private _onResize = debounce((...args: any[]) => {\n this._doResize();\n }, 100);\n\n private _initDataSet(dataSet?: DataSet) {\n if (dataSet instanceof DataSet) {\n this._dataSet = dataSet;\n } else {\n this._dataSet = new DataSet();\n }\n registerDataSetInstanceParser(this._dataSet, 'dataview', dataViewParser);\n registerDataSetInstanceParser(this._dataSet, 'array', arrayParser);\n registerDataSetInstanceTransform(this._dataSet, 'stackSplit', stackSplit);\n registerDataSetInstanceTransform(this._dataSet, 'copyDataView', copyDataView);\n // 注册 dataset transform\n for (const key in Factory.transforms) {\n registerDataSetInstanceTransform(this._dataSet, key, Factory.transforms[key]);\n }\n // 注册 dataview parser\n for (const key in Factory.dataParser) {\n registerDataSetInstanceParser(this._dataSet, key, Factory.dataParser[key]);\n }\n }\n\n /** **异步方法** 执行自定义的回调修改图表配置,并重新渲染 */\n async updateCustomConfigAndRerender(modifyConfig: () => IUpdateSpecResult | undefined, morphConfig?: IMorphConfig) {\n const result = modifyConfig(); // 执行回调\n if (!isValid(result)) {\n return this as unknown as IVChart;\n }\n this._reCompile(result);\n await this.renderAsync(morphConfig);\n return this as unknown as IVChart;\n }\n\n /** **同步方法** 执行自定义的回调修改图表配置,并重新渲染 */\n updateCustomConfigAndRerenderSync(modifyConfig: () => IUpdateSpecResult | undefined, morphConfig?: IMorphConfig) {\n const result = modifyConfig(); // 执行回调\n if (!isValid(result)) {\n return this as unknown as IVChart;\n }\n this._reCompile(result);\n this.renderSync(morphConfig);\n return this as unknown as IVChart;\n }\n\n protected _reCompile(updateResult: IUpdateSpecResult) {\n if (updateResult.reMake) {\n this._releaseData();\n this._initDataSet();\n // 释放图表等等\n this._chart.release();\n this._chart = null as unknown as IChart;\n this._compiler?.releaseGrammar();\n // chart 内部事件 模块自己必须删除\n // 内部模块删除事件时,调用了event Dispatcher.release() 导致用户事件被一起删除\n // 外部事件现在需要重新添加\n this._userEvents.forEach(e => this._event?.on(e.eType as any, e.query as any, e.handler as any));\n\n if (updateResult.reSize) {\n this._doResize();\n }\n } else {\n if (updateResult.reCompile) {\n // recompile\n // 清除之前的所有 compile 内容\n this._compiler?.clear({ chart: this._chart, vChart: this });\n // TODO: 释放事件? vgrammar 的 view 应该不需要释放,响应的stage也没有释放,所以事件可以不绑定\n // 重新绑定事件\n // TODO: 释放XX?\n // 重新compile\n this._compiler?.compile({ chart: this._chart, vChart: this }, {});\n }\n if (updateResult.reSize) {\n const { width, height } = this._getCurSize();\n this._chart.onResize(width, height);\n this._compiler.resize?.(width, height, false);\n }\n }\n }\n\n /**\n * **同步方法** 渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n renderSync(morphConfig?: IMorphConfig) {\n if (!this._chart) {\n this._option.performanceHook?.beforeInitializeChart?.();\n this._initChart(this._spec);\n this._option.performanceHook?.afterInitializeChart?.();\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n // 先compile\n this._option.performanceHook?.beforeCompileToVGrammar?.();\n this._compiler.compile({ chart: this._chart, vChart: this }, { performanceHook: this._option.performanceHook });\n this._option.performanceHook?.afterCompileToVGrammar?.();\n }\n // 最后填充数据绘图\n this._compiler?.renderSync(morphConfig);\n\n if (this._option.animation) {\n this._chart?.getAllRegions().forEach(region => {\n region.animate?.updateAnimateState(AnimationStateEnum.update, true);\n });\n this._chart?.getAllComponents().forEach(component => {\n component.animate?.updateAnimateState(AnimationStateEnum.update, true);\n });\n }\n\n this._event.emit(ChartEvent.rendered, {});\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** 渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n async renderAsync(morphConfig?: IMorphConfig) {\n if (!this._chart) {\n this._option.performanceHook?.beforeInitializeChart?.();\n this._initChart(this._spec);\n this._option.performanceHook?.afterInitializeChart?.();\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n // 先compile\n this._option.performanceHook?.beforeCompileToVGrammar?.();\n this._compiler.compile({ chart: this._chart, vChart: this }, { performanceHook: this._option.performanceHook });\n this._option.performanceHook?.afterCompileToVGrammar?.();\n }\n // 最后填充数据绘图\n await this._compiler?.renderAsync(morphConfig);\n\n if (this._option.animation) {\n this._chart?.getAllRegions().forEach(region => {\n region.animate?.updateAnimateState(AnimationStateEnum.update, true);\n });\n this._chart?.getAllComponents().forEach(component => {\n component.animate?.updateAnimateState(AnimationStateEnum.update, true);\n });\n }\n\n this._event.emit(ChartEvent.rendered, {});\n return this as unknown as IVChart;\n }\n\n /**\n * 销毁图表\n */\n release() {\n if ((this._onResize as any)?.cancel) {\n (this._onResize as any).cancel();\n }\n this._chart?.release();\n this._compiler?.release();\n this._eventDispatcher?.release();\n this._unBindResizeEvent();\n // resetID(); // 为什么要重置ID呢?\n\n this._releaseData();\n\n this._chart = null;\n this._compiler = null;\n this._spec = null;\n // this._option = null;\n this._userEvents = null;\n this._event = null;\n this._eventDispatcher = null;\n\n InstanceManager.unregisterInstance(this);\n }\n\n /**\n * **异步方法** 更新数据。\n * @param id 数据 id\n * @param data 数据值\n * @param options 数据参数\n * @returns VChart 实例\n */\n async updateData(id: StringOrNumber, data: DataView | Datum[] | string, options?: IParserOptions): Promise<IVChart> {\n if (isNil(this._dataSet)) {\n return this as unknown as IVChart;\n }\n if (this._chart) {\n this._chart.updateData(id, data, true, options);\n\n // after layout\n await this._compiler.renderAsync();\n return this as unknown as IVChart;\n }\n this._spec.data = array(this._spec.data);\n const preDV = this._spec.data.find((dv: any) => dv.name === id || dv.id === id);\n if (preDV) {\n if (preDV.id === id) {\n preDV.values = data;\n } else if (preDV.name === id) {\n preDV.parse(data, options);\n }\n } else {\n if (isArray(data)) {\n this._spec.data.push({\n id,\n values: data\n });\n } else {\n this._spec.data.push(data);\n }\n }\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** 批量更新数据。\n * @param list 待更新的数据列表\n * @returns VChart 实例\n */\n async updateDataInBatches(list: { id: string; data: Datum[]; options?: IParserOptions }[]): Promise<IVChart> {\n if (this._chart) {\n this._chart.updateFullData(\n list.map(({ id, data, options }) => {\n return { id, values: data, parser: options };\n })\n );\n this._chart.updateGlobalScaleDomain();\n await this._compiler.renderAsync();\n return this as unknown as IVChart;\n }\n list.forEach(({ id, data, options }) => {\n const preDV = (this._spec.data as DataView[]).find(dv => dv.name === id);\n if (preDV) {\n preDV.parse(data, options);\n } else {\n const dataView = new DataView(this._dataSet, { name: id });\n dataView.parse(data, options);\n this._spec.data.push(dataView);\n }\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 更新数据\n * @param id 数据 id\n * @param data 数据值\n * @param options 数据参数\n * @returns VChart 实例\n */\n updateDataSync(id: StringOrNumber, data: DataView | Datum[], options?: IParserOptions) {\n if (isNil(this._dataSet)) {\n return this as unknown as IVChart;\n }\n if (this._chart) {\n this._chart.updateData(id, data, true, options);\n // after layout\n this._compiler.renderSync();\n return this as unknown as IVChart;\n }\n const preDV = (this._spec.data as DataView[]).find(dv => dv.name === id);\n if (preDV) {\n preDV.parse(data, options);\n } else {\n const dataView = new DataView(this._dataSet, { name: id as string });\n dataView.parse(data, options);\n this._spec.data.push(dataView);\n }\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n * @since 1.3.0\n */\n updateFullDataSync(data: IDataValues | IDataValues[], reRender: boolean = true) {\n if (this._chart) {\n this._chart.updateFullData(data);\n if (reRender) {\n this._compiler.renderSync();\n }\n return this as unknown as IVChart;\n }\n const list: IDataValues[] = array(data);\n list.forEach(d => {\n // only support update this attrs\n const { id, values, parser, fields } = d;\n const preDV = (this._spec.data as DataView[]).find(dv => dv.name === id);\n if (preDV) {\n preDV.setFields(fields as IFields);\n preDV.parse(values, parser as IParserOptions);\n } else {\n // new data\n const dataView = dataToDataView(d, <DataSet>this._dataSet, this._spec.data, {\n onError: this._option?.onError\n });\n this._spec.data.push(dataView);\n }\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n * @since 1.3.0\n */\n async updateFullData(data: IDataValues | IDataValues[], reRender: boolean = true) {\n if (this._chart) {\n this._chart.updateFullData(data);\n if (reRender) {\n await this._compiler.renderAsync();\n }\n return this as unknown as IVChart;\n }\n const list: IDataValues[] = array(data);\n list.forEach(d => {\n // only support update this attrs\n const { id, values, parser, fields } = d;\n const preDV = (this._spec.data as DataView[]).find(dv => dv.name === id);\n if (preDV) {\n preDV.setFields(fields as IFields);\n preDV.parse(values, parser as IParserOptions);\n } else {\n // new data\n const dataView = dataToDataView(d, <DataSet>this._dataSet, this._spec.data, {\n onError: this._option?.onError\n });\n this._spec.data.push(dataView);\n }\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** spec 更新\n * @param spec\n * @param forceMerge\n * @returns\n */\n async updateSpec(spec: ISpec, forceMerge: boolean = false, morphConfig?: IMorphConfig) {\n if (!spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n if (forceMerge) {\n spec = mergeSpec({}, this._spec, spec);\n }\n\n await this.updateCustomConfigAndRerender(() => {\n spec = specTransform(spec) as any;\n const lastSpec = this._spec;\n this._spec = spec;\n if (!isEqual(lastSpec.theme, spec.theme)) {\n this._updateCurrentTheme();\n this._chart?.setCurrentTheme();\n }\n const reSize = this._shouldChartResize(lastSpec);\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n return mergeUpdateResult(this._chart.updateSpec(spec, morphConfig), {\n change: reSize,\n reMake: false,\n reCompile: false,\n reSize\n });\n }, morphConfig);\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** spec 更新\n * @param spec\n * @param forceMerge\n * @returns\n */\n updateSpecSync(spec: ISpec, forceMerge: boolean = false, morphConfig?: IMorphConfig) {\n if (!spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n // 没有配置变化 因为数据对象的原因,这里会报错\n // if (specString == JSON.stringify(this._spec)) {\n // return;\n // }\n\n if (forceMerge) {\n spec = mergeSpec({}, this._spec, spec);\n }\n\n this.updateCustomConfigAndRerenderSync(() => {\n spec = specTransform(spec) as any;\n // because of in data-init, data will be set as array;\n spec.data = spec.data ?? [];\n const lastSpec = this._spec;\n this._spec = spec;\n if (!isEqual(lastSpec.theme, spec.theme)) {\n this._updateCurrentTheme();\n this._chart?.setCurrentTheme();\n }\n const reSize = this._shouldChartResize(lastSpec);\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n return mergeUpdateResult(this._chart.updateSpec(spec, morphConfig), {\n change: reSize,\n reMake: false,\n reCompile: false,\n reSize\n });\n }, morphConfig);\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n async updateModelSpec(\n filter: string | { type: string; index: number } | ((model: IModel) => boolean),\n spec: unknown,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (!spec || !this._spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n if (!isFunction(filter)) {\n // find spec and update\n mergeSpecWithFilter(this._spec, filter, spec, forceMerge);\n }\n\n if (this._chart) {\n const model = this._chart.getModelInFilter(filter);\n if (model) {\n return this._updateModelSpec(model, spec, false, forceMerge, morphConfig);\n }\n }\n return this as unknown as IVChart;\n }\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 } | ((model: IModel) => boolean),\n spec: unknown,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (!spec || !this._spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n if (!isFunction(filter)) {\n // find spec and update\n mergeSpecWithFilter(this._spec, filter, spec, forceMerge);\n }\n\n if (this._chart) {\n const model = this._chart.getModelInFilter(filter);\n if (model) {\n return this._updateModelSpec(model, spec, true, forceMerge, morphConfig) as IVChart;\n }\n }\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 模块 spec 更新\n * @param model\n * @param spec\n * @param forceMerge\n * @returns\n */\n protected _updateModelSpec(\n model: IModel,\n spec: unknown,\n sync: boolean = false,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (forceMerge) {\n spec = mergeSpec({}, model.getSpec(), spec);\n }\n const modifyConfig = () => {\n const result = model.updateSpec(spec);\n model.reInit();\n if (result.change || result.reCompile || result.reMake || result.reSize || result.reRender) {\n this._chart.reDataFlow();\n }\n return result;\n };\n if (sync) {\n return this.updateCustomConfigAndRerenderSync(modifyConfig, morphConfig);\n }\n return this.updateCustomConfigAndRerender(modifyConfig, morphConfig);\n }\n\n /**\n * **异步方法**,图表尺寸更新方法\n * @param width 宽度\n * @param height 高度\n * @returns VChart 当前实例\n */\n async resize(width: number, height: number) {\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n // 如果宽高未变化,不需要重新执行 resize,防止当图表初始化时会执行一次多余的 resize\n const chartCanvasRect = this._chart.getCanvasRect();\n if (chartCanvasRect && chartCanvasRect.width === width && chartCanvasRect.height === height) {\n return this as unknown as IVChart;\n }\n this._option.performanceHook?.beforeResizeWithUpdate?.();\n this._chart.onResize(width, height);\n this._option.performanceHook?.afterResizeWithUpdate?.();\n await this._compiler.resize?.(width, height);\n // emit resize event\n this._event.emit(ChartEvent.afterResize, { chart: this._chart });\n return this as unknown as IVChart;\n }\n\n /**\n * 更新绘制区域\n * @param viewBox 绘制区域\n * @param reRender 是否重新渲染,默认为 true\n * @param reLayout 是否重新布局,默认为 true\n * @returns\n */\n updateViewBox(viewBox: IBoundsLike, reRender: boolean = true, reLayout: boolean = true) {\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n this._viewBox = viewBox;\n // 更新 layout 参数\n this._chart.updateViewBox(viewBox, reLayout);\n if (reLayout) {\n // 重新布局\n this._compiler.renderSync();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this._chart?.onEvaluateEnd();\n }\n // 获取 compiler\n this._compiler.updateViewBox(viewBox, reRender);\n return this as unknown as IVChart;\n }\n\n // 事件相关方法\n on(eType: EventType, handler: EventCallback<EventParams>): void;\n on(eType: EventType, query: EventQuery, handler: EventCallback<EventParams>): void;\n on(eType: EventType, query: EventQuery | EventCallback<EventParams>, handler?: EventCallback<EventParams>): void {\n if (!this._userEvents) {\n // userEvents正常情况下有默认值,如果!userEvents,说明此时chart被release了,就可以终止流程\n return;\n }\n this._userEvents.push({\n eType,\n query: typeof query === 'function' ? null : query,\n handler: typeof query === 'function' ? query : handler\n });\n this._event?.on(eType as any, query as any, handler as any);\n }\n off(eType: string, handler?: EventCallback<EventParams>): void {\n if (!this._userEvents || this._userEvents.length === 0) {\n return;\n }\n if (handler) {\n const index = this._userEvents.findIndex(e => e.eType === eType && e.handler === handler);\n if (index >= 0) {\n this._userEvents.splice(index, 1);\n this._event?.off(eType, handler);\n }\n } else {\n this._userEvents.forEach(e => {\n if (e.eType === eType) {\n this._event?.off(eType, e.handler);\n }\n });\n this._userEvents = this._userEvents.filter(e => e.eType !== eType);\n }\n }\n\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 if (!this._chart) {\n return;\n }\n this._chart.updateState(state, filter);\n }\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 if (!this._chart) {\n return;\n }\n this._chart.setSelected(datum, filter, region);\n }\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 if (!this._chart) {\n return;\n }\n this._chart.setHovered(datum, filter, region);\n }\n\n // 主题相关方法\n /**\n * 当 spec 或者 currentThemeName 有变化时需要调用此方法对 currentTheme 进行更新\n * @param nextThemeName 通过 setCurrentTheme 方法新设的主题\n */\n private _updateCurrentTheme(nextThemeName?: string) {\n const optionTheme: Maybe<string | ITheme> = this._option.theme;\n const specTheme: Maybe<string | ITheme> = this._spec?.theme;\n\n if (nextThemeName) {\n this._currentThemeName = nextThemeName;\n }\n\n const colorScheme = mergeThemeAndGet('colorScheme', this._currentThemeName, optionTheme, specTheme);\n this._currentChartLevelTheme = {\n colorScheme,\n background: mergeThemeAndGet('background', this._currentThemeName, optionTheme, specTheme, colorScheme),\n fontFamily: mergeThemeAndGet('fontFamily', this._currentThemeName, optionTheme, specTheme, colorScheme)\n };\n\n // 设置 poptip 的主题\n setPoptipTheme(\n preprocessSpecOrTheme(\n 'mark-theme',\n mergeThemeAndGet('component.poptip', this._currentThemeName, optionTheme, specTheme, colorScheme),\n colorScheme\n )\n );\n // 设置背景色\n this._compiler?.setBackground(this._getBackground());\n }\n\n private _shouldChartResize(oldSpec: ISpec): boolean {\n let resize = false;\n\n if (isNil(this._spec.width)) {\n this._spec.width = oldSpec.width;\n } else if (this._spec.width !== oldSpec.width) {\n resize = true;\n }\n\n if (isNil(this._spec.height)) {\n this._spec.height = oldSpec.height;\n } else if (this._spec.height !== oldSpec.height) {\n resize = true;\n }\n\n const lasAutoSize = this._autoSize;\n this._autoSize = isTrueBrowser(this._option.mode) ? this._spec.autoFit ?? this._option.autoFit ?? true : false;\n if (this._autoSize !== lasAutoSize) {\n resize = true;\n }\n return resize;\n }\n\n private _getBackground() {\n const specBackground = typeof this._spec.background === 'string' ? this._spec.background : null;\n // spec > spec.theme > initOptions.theme\n return specBackground || (this._currentChartLevelTheme.background as string) || this._option.background;\n }\n\n /**\n * 获取当前主题,会返回完整的主题配置(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n * */\n getCurrentTheme() {\n return getThemeObject(this._currentThemeName);\n }\n\n /**\n * 获取当前主题名称(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n */\n getCurrentThemeName() {\n return this._currentThemeName;\n }\n\n /**\n * **异步方法**, 设置当前主题。\n * **注意,如果在 spec 上配置了 theme,则 spec 上的 theme 优先级更高。**\n * @param name 主题名称\n * @returns\n */\n async setCurrentTheme(name: string) {\n if (!ThemeManager.themeExist(name)) {\n return this as unknown as IVChart;\n }\n\n await this.updateCustomConfigAndRerender(() => {\n this._updateCurrentTheme(name);\n this._chart?.setCurrentTheme(true);\n return { change: true, reMake: false };\n });\n\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 设置当前主题。\n * **注意,如果在 spec 上配置了 theme,则 spec 上的 theme 优先级更高。**\n * @param name 主题名称\n * @returns\n */\n setCurrentThemeSync(name: string) {\n if (!ThemeManager.themeExist(name)) {\n return this as unknown as IVChart;\n }\n\n this.updateCustomConfigAndRerenderSync(() => {\n this._updateCurrentTheme(name);\n this._chart?.setCurrentTheme(true);\n return { change: true, reMake: false };\n });\n\n return this as unknown as IVChart;\n }\n\n // Tooltip 相关方法\n private _getTooltipComponent(): Tooltip | undefined {\n const tooltip = this._chart?.getAllComponents().find(c => c.type === ComponentTypeEnum.tooltip) as Tooltip;\n return tooltip;\n }\n\n /**\n * 自定义 TooltipHandler\n * @param tooltipHandler\n */\n setTooltipHandler(tooltipHandler: ITooltipHandler) {\n this._context.tooltipHandler = tooltipHandler;\n const tooltip = this._getTooltipComponent();\n if (tooltip) {\n tooltip.tooltipHandler?.release?.();\n tooltip.tooltipHandler = tooltipHandler;\n }\n }\n\n /**\n * 获取用户定义的 TooltipHandler\n * @returns ITooltipHandler\n */\n getTooltipHandlerByUser(): ITooltipHandler | undefined {\n return this._context?.tooltipHandler;\n }\n\n /**\n * 获取 TooltipHandler\n * @returns\n */\n getTooltipHandler(): ITooltipHandler | undefined {\n const tooltip = this._getTooltipComponent();\n if (tooltip) {\n return tooltip.tooltipHandler;\n }\n return this._context.tooltipHandler;\n }\n\n /**\n * 手动调用展示 tooltip\n * @param datum 原始数据\n * @param options\n * @returns\n */\n showTooltip(datum: Datum, options: IShowTooltipOption): boolean {\n const tooltip = this._getTooltipComponent();\n return (isValid(datum) && tooltip?.showTooltip(datum, options) !== 'none') ?? false;\n }\n\n /**\n * 手动调用,关闭 tooltip\n * @returns\n */\n hideTooltip(): boolean {\n const tooltip = this._getTooltipComponent();\n return tooltip?.hideTooltip() ?? false;\n }\n\n // 图例相关 api\n /**\n * 根据图例组件 id 获取图例数据\n * @param id 组件 id\n * @returns\n */\n getLegendDataById(id: string) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n return legendComponent.getLegendData();\n }\n return [];\n }\n\n /**\n * 根据图例组件索引获取图例数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendDataByIndex(index: number = 0) {\n const legends = this._chart\n ?.getAllComponents()\n .filter(c => c.type === ComponentTypeEnum.discreteLegend) as ILegend[];\n\n if (legends[index]) {\n return legends[index].getLegendData();\n }\n\n return [];\n }\n\n /**\n * 根据图例组件 id 获取当前图例的选中项\n * @param id 组件 id\n * @returns\n */\n getLegendSelectedDataById(id: string) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n return legendComponent.getSelectedData();\n }\n return [];\n }\n\n /**\n * 根据图例组件索引获取当前图例的选中项\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendSelectedDataByIndex(index: number = 0) {\n const legends = this._chart\n ?.getAllComponents()\n .filter(c => c.type === ComponentTypeEnum.discreteLegend) as ILegend[];\n\n if (legends[index]) {\n return legends[index].getSelectedData();\n }\n\n return [];\n }\n\n /**\n * 根据图例组件 id 更新图例选中数据\n * @param id\n * @returns\n */\n setLegendSelectedDataById(id: string, selectedData: StringOrNumber[]) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n legendComponent.setSelectedData(selectedData);\n }\n }\n\n /**\n * 根据图例组件索引更新图例选中数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n setLegendSelectedDataByIndex(index: number = 0, selectedData: StringOrNumber[]) {\n const legends = this._chart\n ?.getAllComponents()\n .filter(c => c.type === ComponentTypeEnum.discreteLegend) as ILegend[];\n\n if (legends[index]) {\n legends[index].setSelectedData(selectedData);\n }\n }\n\n // 保存图片相关的方法\n /**\n * **异步方法**返回一个包含图片展示的 data URI。\n * @returns data URI\n */\n async getDataURL() {\n const stage = this.getStage();\n if (this._chart && stage) {\n // 因为 vrender 是 autoRender 的,它不能确认第几帧才是完整的图表,所以这里调用一次 render 以保证获取到的是完整的画布\n stage.render();\n const canvas = this._chart.getCanvas();\n const url = await getCanvasDataURL(canvas, {\n onError: this._onError\n });\n return url;\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n\n return null;\n }\n\n /**\n * **异步方法** 导出图表图片,只支持浏览器端。\n * @param name 保存的图片名称\n * @returns\n */\n async exportImg(name?: string) {\n if (!isTrueBrowser(this._option.mode)) {\n this._option?.onError(new TypeError(`non-browser environment can not export img`));\n return;\n }\n\n const dataURL = await this.getDataURL();\n if (dataURL) {\n URLToImage(name, dataURL);\n } else {\n this._option?.onError(new ReferenceError(`render is not defined`));\n }\n }\n /**\n * 导出绘制了图表内容的 canvas\n * @returns HTMLCanvasElement\n */\n exportCanvas(): HTMLCanvasElement | undefined {\n const stage = this.getStage();\n if (this._chart && stage) {\n return stage.toCanvas();\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n return undefined;\n }\n\n /**\n * 目前仅支持 node 环境,用于 node 端的图片导出\n * @returns\n */\n getImageBuffer() {\n if (this._option.mode !== 'node') {\n this._option?.onError(new TypeError('getImageBuffer() now only support node environment.'));\n return;\n }\n const stage = this.getStage();\n if (stage) {\n stage.render();\n const buffer = stage.window.getImageBuffer();\n return buffer;\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n\n return null;\n }\n\n // 布局相关的方法\n /**\n * 设置自定义布局\n */\n setLayout(layout: LayoutCallBack) {\n this._option.layout = layout;\n this._chart?.setLayout(layout);\n }\n /**\n * 强制重新布局\n */\n reLayout() {\n this._chart?.setLayoutTag(true);\n }\n\n /**\n * 获取编译器实例\n * @returns\n */\n getCompiler() {\n return this._compiler;\n }\n\n /**\n * Get the chart instance\n * 获取 Chart 图表实例。\n * @returns Chart 实例\n */\n getChart() {\n return this._chart;\n }\n\n /**\n * Get the renderer instance.\n * 获取渲染引擎实例。\n * @returns the instance of VRender Stage\n */\n getStage(): Stage {\n return this._compiler.getStage();\n }\n\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas(): HTMLCanvasElement | undefined {\n return this._compiler?.getCanvas();\n }\n\n /**\n * 获取图表的 dom 容器\n * @returns\n */\n getContainer(): Maybe<HTMLElement> {\n // 用户传入 dom container\n if (isValid(this._container)) {\n return this._container;\n }\n\n // 用户传入 canvas\n let canvasNode: Maybe<HTMLCanvasElement>;\n if (isString(this._canvas)) {\n canvasNode = document?.getElementById(this._canvas) as HTMLCanvasElement;\n } else {\n canvasNode = this._canvas as HTMLCanvasElement;\n }\n if (isValid(canvasNode)) {\n return canvasNode.parentElement;\n }\n\n // 用户传入 stage\n return this.getCanvas()?.parentElement;\n }\n\n /**\n * 获取图表所有的组件实例\n * @returns 组件实例\n */\n getComponents() {\n return this._chart.getAllComponents();\n }\n\n /**\n * setDimensionIndex could trigger mark state, tooltip, crosshair\n * @param value dimension value\n * @param opt option for set trigger\n */\n setDimensionIndex(value: StringOrNumber, opt: DimensionIndexOption = {}) {\n return this._chart?.setDimensionIndex(value, opt);\n }\n\n /** 停止正在进行的所有动画 */\n stopAnimation() {\n this._compiler?.getVGrammarView()?.animate?.stop();\n }\n\n /** 暂停正在进行的所有动画 */\n pauseAnimation() {\n this._compiler?.getVGrammarView()?.animate?.pause();\n }\n\n /** 恢复暂停时正在进行的所有动画 */\n resumeAnimation() {\n this._compiler?.getVGrammarView()?.animate?.resume();\n }\n\n // TODO: 后续需要考虑滚动场景\n /**\n * Convert the data corresponding to the graph into coordinates\n * 将图形对应的数据转换为坐标,该数据需要从传入图表的数据集中获取,如果数据不存在数据集中,可以使用 `convertValueToPosition` 方法\n * @param datum 要转化的数据 the datum(from data source)to convert\n * @param dataLinkInfo 数据的绑定信息,the data link info, could be seriesId or seriesIndex, default is { seriesIndex: 0 }\n * @param isRelativeToCanvas 是否相对画布坐标 Whether relative to canvas coordinates\n * @returns\n */\n convertDatumToPosition(\n datum: Datum,\n dataLinkInfo: DataLinkSeries = {},\n isRelativeToCanvas: boolean = false\n ): IPoint | null {\n if (!this._chart) {\n return null;\n }\n if (isEmpty(datum)) {\n return null;\n }\n const { seriesId, seriesIndex = 0 } = dataLinkInfo;\n\n let series: ISeries;\n if (isValid(seriesId)) {\n series = this._chart.getSeriesInUserId(seriesId);\n } else if (isValid(seriesIndex)) {\n series = this._chart.getSeriesInIndex([seriesIndex])?.[0];\n }\n\n if (series) {\n const keys = Object.keys(datum);\n const handledDatum = series\n .getViewData()\n // eslint-disable-next-line eqeqeq\n .latestData.find((viewDatum: Datum) => keys.every(k => viewDatum[k] == datum[k]));\n const seriesLayoutStartPoint = series.getLayoutStartPoint();\n let point: IPoint;\n if (handledDatum) {\n point = series.dataToPosition(handledDatum);\n } else {\n point = series.dataToPosition(datum);\n }\n return convertPoint(point, seriesLayoutStartPoint, isRelativeToCanvas);\n }\n\n return null;\n }\n\n // TODO: 1. 后续需要考虑滚动场景 2. 极坐标场景支持\n convertValueToPosition(\n value: StringOrNumber,\n dataLinkInfo: DataLinkAxis,\n isRelativeToCanvas?: boolean\n ): number | null;\n convertValueToPosition(\n value: [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkSeries,\n isRelativeToCanvas?: boolean\n ): IPoint | null;\n convertValueToPosition(\n value: StringOrNumber | [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkAxis | DataLinkSeries,\n isRelativeToCanvas: boolean = false\n ): number | IPoint | null {\n if (!this._chart || isNil(value) || isEmpty(dataLinkInfo)) {\n return null;\n }\n\n if (!isArray(value)) {\n // 如果单个值,则默认使用 axis 绑定信息\n const { axisId, axisIndex } = dataLinkInfo as DataLinkAxis;\n let axis;\n if (isValid(axisId)) {\n axis = this._chart.getComponentsByKey('axes').find(s => s.userId === axisId);\n } else if (isValid(axisIndex)) {\n axis = this._chart.getComponentsByKey('axes')?.[axisIndex];\n }\n if (!axis) {\n warn('Please check whether the `axisId` or `axisIndex` is set!');\n return null;\n }\n\n const pointValue = (axis as IAxis)?.valueToPosition(value);\n if (isRelativeToCanvas) {\n const axisLayoutStartPoint = axis.getLayoutStartPoint();\n const axisOrient = (axis as IAxis).getOrient();\n return (\n pointValue +\n (axisOrient === 'bottom' || axisOrient === 'top' ? axisLayoutStartPoint.x : axisLayoutStartPoint.y)\n );\n }\n\n return pointValue;\n }\n const { seriesId, seriesIndex } = dataLinkInfo as DataLinkSeries;\n let series;\n if (isValid(seriesId)) {\n series = this._chart.getSeriesInUserId(seriesId);\n } else if (isValid(seriesIndex)) {\n series = this._chart.getSeriesInIndex([seriesIndex])?.[0];\n }\n\n if (!series) {\n warn('Please check whether the `seriesId` or `seriesIndex` is set!');\n return null;\n }\n\n return convertPoint(\n (series as ISeries).valueToPosition(value[0], value[1]),\n series.getLayoutStartPoint(),\n isRelativeToCanvas\n );\n }\n}\n\nexport const registerVChartCore = () => {\n // install region module\n Factory.registerRegion('region', Region);\n // install layout module\n Factory.registerLayout('base', Layout);\n // install essential marks\n Factory.registerMark(GroupMark.type, GroupMark);\n // install essential vgrammar transform\n View.useRegisters([registerFilterTransform, registerMapTransform]);\n // install animation\n registerVGrammarAnimation();\n // set default logger level to Level.error\n Logger.getInstance(LoggerLevel.Error);\n};\n\nregisterVChartCore();\n"]}
@@ -9,3 +9,13 @@ export declare function initFoldData(): void;
9
9
  export declare function dataViewFromDataView(rawData: DataView, dataSet?: DataSet, op?: IDataViewOptions): DataView;
10
10
  export declare function dataToDataView(data: DataView | IDataValues, dataSet: DataSet, sourceDataViews?: DataView[], ctx?: utilFunctionCtx): DataView;
11
11
  export declare function updateDataViewInData(dataView: DataView, data: IDataValues, forceMerge: boolean): void;
12
+ export declare enum TransformLevel {
13
+ copyDataView = -10,
14
+ treemapFilter = -8,
15
+ treemapFlatten = -7,
16
+ dotObjFlat = -7,
17
+ linkDotInfo = -7,
18
+ sankeyLayout = -7,
19
+ dataZoomFilter = -6,
20
+ legendFilter = -5
21
+ }
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.updateDataViewInData = exports.dataToDataView = exports.dataViewFromDataView = exports.initFoldData = exports.initData = exports.initCSVData = exports.initializeData = void 0;
5
+ }), exports.TransformLevel = exports.updateDataViewInData = exports.dataToDataView = exports.dataViewFromDataView = exports.initFoldData = exports.initData = exports.initCSVData = exports.initializeData = void 0;
6
6
 
7
- const debug_1 = require("../util/debug"), vutils_1 = require("@visactor/vutils"), vdataset_1 = require("@visactor/vdataset"), util_1 = require("../util"), register_1 = require("./register"), copy_data_view_1 = require("./transforms/copy-data-view");
7
+ const debug_1 = require("../util/debug"), vutils_1 = require("@visactor/vutils"), vdataset_1 = require("@visactor/vdataset"), register_1 = require("./register"), copy_data_view_1 = require("./transforms/copy-data-view");
8
8
 
9
9
  function initializeData() {}
10
10
 
@@ -21,7 +21,8 @@ function dataViewFromDataView(rawData, dataSet, op) {
21
21
  return viewData.parse([ rawData ], {
22
22
  type: "dataview"
23
23
  }), viewData.transform({
24
- type: "copyDataView"
24
+ type: "copyDataView",
25
+ level: TransformLevel.copyDataView
25
26
  }), viewData;
26
27
  }
27
28
 
@@ -41,7 +42,7 @@ function dataToDataView(data, dataSet, sourceDataViews = [], ctx = {}) {
41
42
  if (fields && (initOption.fields = fields), dataView = new vdataset_1.DataView(dataSet, initOption),
42
43
  "string" == typeof fromDataId) {
43
44
  const fromDataView = sourceDataViews.find((dv => dv.name === fromDataId));
44
- if (!fromDataView) return (null !== (_b = ctx.onError) && void 0 !== _b ? _b : util_1.error)(`no data matches fromDataId ${fromDataId}`),
45
+ if (!fromDataView) return (null !== (_b = ctx.onError) && void 0 !== _b ? _b : debug_1.error)(`no data matches fromDataId ${fromDataId}`),
45
46
  null;
46
47
  dataView.parse([ fromDataView ], {
47
48
  type: "dataview"
@@ -50,7 +51,7 @@ function dataToDataView(data, dataSet, sourceDataViews = [], ctx = {}) {
50
51
  });
51
52
  } else if ("number" == typeof fromDataIndex) {
52
53
  const fromDataView = sourceDataViews[fromDataIndex];
53
- if (!fromDataView) return (null !== (_c = ctx.onError) && void 0 !== _c ? _c : util_1.error)(`no data matches fromDataIndex ${fromDataIndex}`),
54
+ if (!fromDataView) return (null !== (_c = ctx.onError) && void 0 !== _c ? _c : debug_1.error)(`no data matches fromDataIndex ${fromDataIndex}`),
54
55
  null;
55
56
  dataView.parse([ fromDataView ], {
56
57
  type: "dataview"
@@ -72,7 +73,15 @@ function updateDataViewInData(dataView, data, forceMerge) {
72
73
  dataView && (data.fields && dataView.setFields(data.fields, forceMerge), dataView.parseNewData(data.values, data.parser));
73
74
  }
74
75
 
76
+ var TransformLevel;
77
+
75
78
  exports.initializeData = initializeData, exports.initCSVData = initCSVData, exports.initData = initData,
76
79
  exports.initFoldData = initFoldData, exports.dataViewFromDataView = dataViewFromDataView,
77
- exports.dataToDataView = dataToDataView, exports.updateDataViewInData = updateDataViewInData;
80
+ exports.dataToDataView = dataToDataView, exports.updateDataViewInData = updateDataViewInData,
81
+ function(TransformLevel) {
82
+ TransformLevel[TransformLevel.copyDataView = -10] = "copyDataView", TransformLevel[TransformLevel.treemapFilter = -8] = "treemapFilter",
83
+ TransformLevel[TransformLevel.treemapFlatten = -7] = "treemapFlatten", TransformLevel[TransformLevel.dotObjFlat = -7] = "dotObjFlat",
84
+ TransformLevel[TransformLevel.linkDotInfo = -7] = "linkDotInfo", TransformLevel[TransformLevel.sankeyLayout = -7] = "sankeyLayout",
85
+ TransformLevel[TransformLevel.dataZoomFilter = -6] = "dataZoomFilter", TransformLevel[TransformLevel.legendFilter = -5] = "legendFilter";
86
+ }(TransformLevel = exports.TransformLevel || (exports.TransformLevel = {}));
78
87
  //# sourceMappingURL=initialize.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/initialize.ts"],"names":[],"mappings":"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","file":"initialize.js","sourcesContent":["import type { utilFunctionCtx } from '../typings/params';\nimport { warn } from '../util/debug';\nimport { isString } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, DataView } from '@visactor/vdataset';\nimport type { IDataViewOptions, IFields, ITransformOptions } from '@visactor/vdataset';\nimport type { IDataValues, SheetParseOptions } from '../typings/spec/common';\nimport { error } from '../util';\nimport { registerDataSetInstanceTransform } from './register';\nimport { copyDataView } from './transforms/copy-data-view';\nimport type { IParserOptions } from '@visactor/vdataset/es/parser';\n\nexport function initializeData() {\n // todo\n}\n\nexport function initCSVData() {\n // todo\n}\n\nexport function initData() {\n // todo\n}\n\nexport function initFoldData() {\n // todo\n}\n\nexport function dataViewFromDataView(rawData: DataView, dataSet?: DataSet, op?: IDataViewOptions) {\n dataSet = dataSet instanceof DataSet ? dataSet : rawData.dataSet;\n registerDataSetInstanceTransform(dataSet, 'copyDataView', copyDataView);\n const viewData = new DataView(dataSet, op);\n viewData.parse([rawData], {\n type: 'dataview'\n });\n viewData.transform({\n type: 'copyDataView'\n });\n return viewData;\n}\n\n/**\n * 将数据实例化为 DataView\n * @param data 数据\n * @param dataSet 数据集\n * @returns\n */\nexport function dataToDataView(\n data: DataView | IDataValues,\n dataSet: DataSet,\n sourceDataViews: DataView[] = [],\n ctx: utilFunctionCtx = {}\n) {\n if (data instanceof DataView) {\n return data;\n }\n\n const { id, values = [], fromDataIndex, fromDataId, transforms = [], fields } = data;\n const parser = (data.parser ?? { clone: true }) as IParserOptions;\n // set parser.clone default value to true\n parser.clone = !(parser.clone === false);\n let dataView: DataView;\n const existDataView = sourceDataViews.find(dv => dv.name === id);\n if (existDataView) {\n dataView = existDataView;\n } else {\n const initOption: IDataViewOptions = { name: id };\n // fields 支持在dataView初始化参数中传入\n if (fields) {\n initOption.fields = fields as IFields;\n }\n dataView = new DataView(dataSet, initOption);\n if (typeof fromDataId === 'string') {\n // 使用id查找上游dataview\n const fromDataView = sourceDataViews.find(dv => dv.name === fromDataId);\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataId ${fromDataId}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (typeof fromDataIndex === 'number') {\n // 使用index查找上游dataview\n const fromDataView = sourceDataViews[fromDataIndex];\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataIndex ${fromDataIndex}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (Array.isArray(values)) {\n dataView.parse(values, parser);\n } else if (isString(values) && (!parser || ['csv', 'dsv', 'tsv'].includes((parser as SheetParseOptions).type))) {\n // 内置 csv parser\n dataView.parse(values, (parser as SheetParseOptions) ?? { type: 'csv' });\n } else {\n // 如果 values 不符合要求,则默认设置为 [],同时打印错误信息\n dataView.parse([]);\n warn('values should be array');\n }\n // 处理transform\n if (transforms && transforms.length) {\n transforms.forEach((transform: ITransformOptions) => {\n if (dataSet.getTransform(transform.type)) {\n dataView.transform(transform);\n }\n });\n }\n }\n\n return dataView;\n}\n\nexport function updateDataViewInData(dataView: DataView, data: IDataValues, forceMerge: boolean) {\n if (!dataView) {\n return;\n }\n if (data.fields) {\n dataView.setFields(data.fields as any, forceMerge);\n }\n dataView.parseNewData(data.values, data.parser as any);\n}\n"]}
1
+ {"version":3,"sources":["../src/data/initialize.ts"],"names":[],"mappings":"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","file":"initialize.js","sourcesContent":["import type { utilFunctionCtx } from '../typings/params';\nimport { warn, error } from '../util/debug';\nimport { isString } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, DataView } from '@visactor/vdataset';\nimport type { IDataViewOptions, IFields, ITransformOptions } from '@visactor/vdataset';\nimport type { IDataValues, SheetParseOptions } from '../typings/spec/common';\nimport { registerDataSetInstanceTransform } from './register';\nimport { copyDataView } from './transforms/copy-data-view';\nimport type { IParserOptions } from '@visactor/vdataset/es/parser';\n\nexport function initializeData() {\n // todo\n}\n\nexport function initCSVData() {\n // todo\n}\n\nexport function initData() {\n // todo\n}\n\nexport function initFoldData() {\n // todo\n}\n\nexport function dataViewFromDataView(rawData: DataView, dataSet?: DataSet, op?: IDataViewOptions) {\n dataSet = dataSet instanceof DataSet ? dataSet : rawData.dataSet;\n registerDataSetInstanceTransform(dataSet, 'copyDataView', copyDataView);\n const viewData = new DataView(dataSet, op);\n viewData.parse([rawData], {\n type: 'dataview'\n });\n viewData.transform({\n type: 'copyDataView',\n level: TransformLevel.copyDataView\n });\n return viewData;\n}\n\n/**\n * 将数据实例化为 DataView\n * @param data 数据\n * @param dataSet 数据集\n * @returns\n */\nexport function dataToDataView(\n data: DataView | IDataValues,\n dataSet: DataSet,\n sourceDataViews: DataView[] = [],\n ctx: utilFunctionCtx = {}\n) {\n if (data instanceof DataView) {\n return data;\n }\n\n const { id, values = [], fromDataIndex, fromDataId, transforms = [], fields } = data;\n const parser = (data.parser ?? { clone: true }) as IParserOptions;\n // set parser.clone default value to true\n parser.clone = !(parser.clone === false);\n let dataView: DataView;\n const existDataView = sourceDataViews.find(dv => dv.name === id);\n if (existDataView) {\n dataView = existDataView;\n } else {\n const initOption: IDataViewOptions = { name: id };\n // fields 支持在dataView初始化参数中传入\n if (fields) {\n initOption.fields = fields as IFields;\n }\n dataView = new DataView(dataSet, initOption);\n if (typeof fromDataId === 'string') {\n // 使用id查找上游dataview\n const fromDataView = sourceDataViews.find(dv => dv.name === fromDataId);\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataId ${fromDataId}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (typeof fromDataIndex === 'number') {\n // 使用index查找上游dataview\n const fromDataView = sourceDataViews[fromDataIndex];\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataIndex ${fromDataIndex}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (Array.isArray(values)) {\n dataView.parse(values, parser);\n } else if (isString(values) && (!parser || ['csv', 'dsv', 'tsv'].includes((parser as SheetParseOptions).type))) {\n // 内置 csv parser\n dataView.parse(values, (parser as SheetParseOptions) ?? { type: 'csv' });\n } else {\n // 如果 values 不符合要求,则默认设置为 [],同时打印错误信息\n dataView.parse([]);\n warn('values should be array');\n }\n // 处理transform\n if (transforms && transforms.length) {\n transforms.forEach((transform: ITransformOptions) => {\n if (dataSet.getTransform(transform.type)) {\n dataView.transform(transform);\n }\n });\n }\n }\n\n return dataView;\n}\n\nexport function updateDataViewInData(dataView: DataView, data: IDataValues, forceMerge: boolean) {\n if (!dataView) {\n return;\n }\n if (data.fields) {\n dataView.setFields(data.fields as any, forceMerge);\n }\n dataView.parseNewData(data.values, data.parser as any);\n}\n\nexport enum TransformLevel {\n copyDataView = -10,\n\n treemapFilter = -8,\n treemapFlatten = -7,\n\n dotObjFlat = -7,\n linkDotInfo = -7,\n sankeyLayout = -7,\n\n dataZoomFilter = -6,\n legendFilter = -5\n}\n"]}
@@ -1,5 +1,9 @@
1
1
  export type AddVChartPropertyContext = {
2
2
  keyMap: Map<string, number>;
3
+ needDefaultSeriesField: boolean;
4
+ defaultSeriesField?: string;
5
+ getKey?: (d: any, i: number, context: AddVChartPropertyContext) => string;
6
+ categoryField?: string;
3
7
  };
4
8
  export interface IAddVChartPropertyOpt {
5
9
  beforeCall: () => AddVChartPropertyContext;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/add-property.ts"],"names":[],"mappings":";;;AAMO,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAE,EAAyB,EAAE,EAAE;IAC/E,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;KACvB;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B","file":"add-property.js","sourcesContent":["export type AddVChartPropertyContext = { keyMap: Map<string, number> };\nexport interface IAddVChartPropertyOpt {\n beforeCall: () => AddVChartPropertyContext;\n call: (d: any, i: number, context: AddVChartPropertyContext) => void;\n}\n\nexport const addVChartProperty = (data: Array<any>, op: IAddVChartPropertyOpt) => {\n const context = op.beforeCall();\n data.forEach((d, i) => op.call(d, i, context));\n\n if (context.keyMap) {\n context.keyMap.clear();\n context.keyMap = null;\n }\n\n return data;\n};\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/add-property.ts"],"names":[],"mappings":";;;AAYO,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAE,EAAyB,EAAE,EAAE;IAC/E,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;KACvB;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B","file":"add-property.js","sourcesContent":["export type AddVChartPropertyContext = {\n keyMap: Map<string, number>;\n needDefaultSeriesField: boolean;\n defaultSeriesField?: string;\n getKey?: (d: any, i: number, context: AddVChartPropertyContext) => string;\n categoryField?: string;\n};\nexport interface IAddVChartPropertyOpt {\n beforeCall: () => AddVChartPropertyContext;\n call: (d: any, i: number, context: AddVChartPropertyContext) => void;\n}\n\nexport const addVChartProperty = (data: Array<any>, op: IAddVChartPropertyOpt) => {\n const context = op.beforeCall();\n data.forEach((d, i) => op.call(d, i, context));\n\n if (context.keyMap) {\n context.keyMap.clear();\n context.keyMap = null;\n }\n\n return data;\n};\n"]}