@visactor/vchart 1.3.0-beta.7 → 1.3.0-beta.8

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 (1160) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.js +36794 -36453
  3. package/build/index.min.js +2 -2
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/index.d.ts +2 -2
  6. package/cjs/chart/index.js +3 -3
  7. package/cjs/chart/index.js.map +1 -1
  8. package/cjs/chart/treemap/treemap.d.ts +1 -1
  9. package/cjs/chart/treemap/treemap.js +5 -5
  10. package/cjs/chart/treemap/treemap.js.map +1 -1
  11. package/cjs/component/axis/base-axis.d.ts +15 -14
  12. package/cjs/component/axis/base-axis.js.map +1 -1
  13. package/cjs/component/axis/cartesian/axis.d.ts +2 -2
  14. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  15. package/cjs/component/axis/cartesian/band-axis.d.ts +2 -3
  16. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  17. package/cjs/component/axis/cartesian/linear-axis.d.ts +3 -3
  18. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  19. package/cjs/component/axis/cartesian/log-axis.d.ts +3 -2
  20. package/cjs/component/axis/cartesian/log-axis.js.map +1 -1
  21. package/cjs/component/axis/cartesian/time-axis.d.ts +3 -2
  22. package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
  23. package/cjs/component/axis/interface.d.ts +6 -1
  24. package/cjs/component/axis/interface.js.map +1 -1
  25. package/cjs/component/axis/polar/axis.d.ts +2 -2
  26. package/cjs/component/axis/polar/axis.js.map +1 -1
  27. package/cjs/component/axis/polar/band-axis.d.ts +3 -2
  28. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  29. package/cjs/component/axis/polar/interface/spec.d.ts +7 -2
  30. package/cjs/component/axis/polar/interface/spec.js.map +1 -1
  31. package/cjs/component/axis/polar/linear-axis.d.ts +2 -3
  32. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  33. package/cjs/component/base/base-component.d.ts +4 -2
  34. package/cjs/component/base/base-component.js +11 -4
  35. package/cjs/component/base/base-component.js.map +1 -1
  36. package/cjs/component/brush/brush.d.ts +2 -2
  37. package/cjs/component/brush/brush.js +1 -1
  38. package/cjs/component/brush/brush.js.map +1 -1
  39. package/cjs/component/brush/interface.d.ts +1 -0
  40. package/cjs/component/brush/interface.js.map +1 -1
  41. package/cjs/component/crosshair/base.d.ts +2 -2
  42. package/cjs/component/crosshair/base.js +1 -1
  43. package/cjs/component/crosshair/base.js.map +1 -1
  44. package/cjs/component/crosshair/cartesian.d.ts +3 -3
  45. package/cjs/component/crosshair/cartesian.js.map +1 -1
  46. package/cjs/component/crosshair/polar.d.ts +3 -3
  47. package/cjs/component/crosshair/polar.js.map +1 -1
  48. package/cjs/component/custom-mark/custom-mark.d.ts +1 -1
  49. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  50. package/cjs/component/data-zoom/data-filter-base-component.d.ts +4 -4
  51. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  52. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +5 -4
  53. package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -1
  54. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  55. package/cjs/component/data-zoom/data-zoom/interface.d.ts +3 -1
  56. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  57. package/cjs/component/data-zoom/interface.d.ts +4 -1
  58. package/cjs/component/data-zoom/interface.js.map +1 -1
  59. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -2
  60. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  61. package/cjs/component/geo/geo-coordinate.d.ts +1 -2
  62. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  63. package/cjs/component/indicator/indicator.d.ts +2 -2
  64. package/cjs/component/indicator/indicator.js +1 -1
  65. package/cjs/component/indicator/indicator.js.map +1 -1
  66. package/cjs/component/indicator/interface.d.ts +2 -0
  67. package/cjs/component/indicator/interface.js.map +1 -1
  68. package/cjs/component/label/base-label.d.ts +2 -2
  69. package/cjs/component/label/base-label.js.map +1 -1
  70. package/cjs/component/label/interface.d.ts +3 -0
  71. package/cjs/component/label/interface.js.map +1 -1
  72. package/cjs/component/label/label.d.ts +4 -3
  73. package/cjs/component/label/label.js.map +1 -1
  74. package/cjs/component/legend/base-legend.d.ts +2 -2
  75. package/cjs/component/legend/base-legend.js.map +1 -1
  76. package/cjs/component/legend/continuous/legend.d.ts +3 -4
  77. package/cjs/component/legend/continuous/legend.js.map +1 -1
  78. package/cjs/component/legend/discrete/legend.d.ts +1 -2
  79. package/cjs/component/legend/discrete/legend.js.map +1 -1
  80. package/cjs/component/map-label/component.d.ts +1 -2
  81. package/cjs/component/map-label/component.js.map +1 -1
  82. package/cjs/component/marker/base-marker.d.ts +2 -2
  83. package/cjs/component/marker/base-marker.js.map +1 -1
  84. package/cjs/component/marker/mark-area/mark-area.d.ts +1 -2
  85. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  86. package/cjs/component/marker/mark-line/mark-line.d.ts +1 -2
  87. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  88. package/cjs/component/marker/mark-point/mark-point.d.ts +1 -2
  89. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  90. package/cjs/component/player/player.d.ts +1 -2
  91. package/cjs/component/player/player.js.map +1 -1
  92. package/cjs/component/title/title.d.ts +1 -2
  93. package/cjs/component/title/title.js.map +1 -1
  94. package/cjs/component/tooltip/handler/base.js +3 -3
  95. package/cjs/component/tooltip/handler/base.js.map +1 -1
  96. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +1 -1
  97. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  98. package/cjs/component/tooltip/handler/utils/attribute.js +1 -1
  99. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  100. package/cjs/component/tooltip/handler/utils/style.js.map +1 -1
  101. package/cjs/component/tooltip/interface/theme.d.ts +6 -5
  102. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  103. package/cjs/component/tooltip/tooltip.d.ts +3 -2
  104. package/cjs/component/tooltip/tooltip.js +4 -1
  105. package/cjs/component/tooltip/tooltip.js.map +1 -1
  106. package/cjs/core/index.d.ts +1 -1
  107. package/cjs/core/index.js +1 -1
  108. package/cjs/core/index.js.map +1 -1
  109. package/cjs/core/vchart.js +8 -3
  110. package/cjs/core/vchart.js.map +1 -1
  111. package/cjs/data/transforms/data-key.d.ts +2 -2
  112. package/cjs/data/transforms/data-key.js.map +1 -1
  113. package/cjs/model/base-model.d.ts +4 -4
  114. package/cjs/model/base-model.js +13 -15
  115. package/cjs/model/base-model.js.map +1 -1
  116. package/cjs/model/interface.d.ts +1 -0
  117. package/cjs/model/interface.js.map +1 -1
  118. package/cjs/model/layout-item.d.ts +3 -3
  119. package/cjs/model/layout-item.js.map +1 -1
  120. package/cjs/model/tooltip-helper.d.ts +0 -2
  121. package/cjs/model/tooltip-helper.js +0 -3
  122. package/cjs/model/tooltip-helper.js.map +1 -1
  123. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -1
  124. package/cjs/region/region.d.ts +2 -3
  125. package/cjs/region/region.js.map +1 -1
  126. package/cjs/series/area/area.d.ts +3 -2
  127. package/cjs/series/area/area.js +10 -12
  128. package/cjs/series/area/area.js.map +1 -1
  129. package/cjs/series/area/constant.d.ts +2 -0
  130. package/cjs/series/area/constant.js +15 -0
  131. package/cjs/series/area/constant.js.map +1 -0
  132. package/cjs/series/area/interface.d.ts +2 -0
  133. package/cjs/series/area/interface.js.map +1 -1
  134. package/cjs/series/bar/bar-3d.d.ts +3 -1
  135. package/cjs/series/bar/bar-3d.js +2 -7
  136. package/cjs/series/bar/bar-3d.js.map +1 -1
  137. package/cjs/series/bar/bar.js +2 -7
  138. package/cjs/series/bar/bar.js.map +1 -1
  139. package/cjs/series/bar/constant.d.ts +3 -0
  140. package/cjs/series/bar/constant.js +20 -0
  141. package/cjs/series/bar/constant.js.map +1 -0
  142. package/cjs/series/bar/interface.d.ts +3 -2
  143. package/cjs/series/bar/interface.js.map +1 -1
  144. package/cjs/series/base/base-series.d.ts +3 -6
  145. package/cjs/series/base/base-series.js +3 -19
  146. package/cjs/series/base/base-series.js.map +1 -1
  147. package/cjs/series/base/constant.d.ts +2 -0
  148. package/cjs/series/base/constant.js +15 -0
  149. package/cjs/series/base/constant.js.map +1 -0
  150. package/cjs/series/base/tooltip-helper.d.ts +0 -1
  151. package/cjs/series/base/tooltip-helper.js +1 -4
  152. package/cjs/series/base/tooltip-helper.js.map +1 -1
  153. package/cjs/series/box-plot/box-plot.d.ts +1 -2
  154. package/cjs/series/box-plot/box-plot.js +5 -14
  155. package/cjs/series/box-plot/box-plot.js.map +1 -1
  156. package/cjs/series/box-plot/constant.d.ts +2 -0
  157. package/cjs/series/box-plot/constant.js +19 -0
  158. package/cjs/series/box-plot/constant.js.map +1 -0
  159. package/cjs/series/cartesian/interface.d.ts +2 -2
  160. package/cjs/series/cartesian/interface.js.map +1 -1
  161. package/cjs/series/circle-packing/circle-packing.d.ts +1 -2
  162. package/cjs/series/circle-packing/circle-packing.js +6 -11
  163. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  164. package/cjs/series/circle-packing/constant.d.ts +2 -0
  165. package/cjs/series/circle-packing/constant.js +15 -0
  166. package/cjs/series/circle-packing/constant.js.map +1 -0
  167. package/cjs/series/dot/constant.d.ts +2 -0
  168. package/cjs/series/dot/constant.js +39 -0
  169. package/cjs/series/dot/constant.js.map +1 -0
  170. package/cjs/series/dot/dot.d.ts +1 -1
  171. package/cjs/series/dot/dot.js +2 -31
  172. package/cjs/series/dot/dot.js.map +1 -1
  173. package/cjs/series/funnel/constant.d.ts +3 -0
  174. package/cjs/series/funnel/constant.js +52 -0
  175. package/cjs/series/funnel/constant.js.map +1 -0
  176. package/cjs/series/funnel/funnel-3d.d.ts +3 -2
  177. package/cjs/series/funnel/funnel-3d.js +2 -23
  178. package/cjs/series/funnel/funnel-3d.js.map +1 -1
  179. package/cjs/series/funnel/funnel.d.ts +1 -1
  180. package/cjs/series/funnel/funnel.js +2 -23
  181. package/cjs/series/funnel/funnel.js.map +1 -1
  182. package/cjs/series/gauge/constant.d.ts +3 -0
  183. package/cjs/series/gauge/constant.js +32 -0
  184. package/cjs/series/gauge/constant.js.map +1 -0
  185. package/cjs/series/gauge/gauge-pointer.d.ts +2 -2
  186. package/cjs/series/gauge/gauge-pointer.js +5 -15
  187. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  188. package/cjs/series/gauge/gauge.d.ts +2 -1
  189. package/cjs/series/gauge/gauge.js +8 -14
  190. package/cjs/series/gauge/gauge.js.map +1 -1
  191. package/cjs/series/heatmap/constant.d.ts +2 -0
  192. package/cjs/series/heatmap/constant.js +19 -0
  193. package/cjs/series/heatmap/constant.js.map +1 -0
  194. package/cjs/series/heatmap/heatmap.d.ts +1 -1
  195. package/cjs/series/heatmap/heatmap.js +5 -14
  196. package/cjs/series/heatmap/heatmap.js.map +1 -1
  197. package/cjs/series/index.d.ts +2 -2
  198. package/cjs/series/index.js +3 -3
  199. package/cjs/series/index.js.map +1 -1
  200. package/cjs/series/interface/theme.d.ts +3 -2
  201. package/cjs/series/interface/theme.js +34 -1
  202. package/cjs/series/interface/theme.js.map +1 -1
  203. package/cjs/series/line/constant.d.ts +2 -0
  204. package/cjs/series/line/constant.js +10 -0
  205. package/cjs/series/line/constant.js.map +1 -0
  206. package/cjs/series/line/interface.d.ts +4 -0
  207. package/cjs/series/line/interface.js.map +1 -1
  208. package/cjs/series/line/line.d.ts +3 -2
  209. package/cjs/series/line/line.js +5 -3
  210. package/cjs/series/line/line.js.map +1 -1
  211. package/cjs/series/link/constant.d.ts +2 -0
  212. package/cjs/series/link/constant.js +23 -0
  213. package/cjs/series/link/constant.js.map +1 -0
  214. package/cjs/series/link/link.d.ts +1 -1
  215. package/cjs/series/link/link.js +2 -15
  216. package/cjs/series/link/link.js.map +1 -1
  217. package/cjs/series/map/constant.d.ts +2 -0
  218. package/cjs/series/map/constant.js +15 -0
  219. package/cjs/series/map/constant.js.map +1 -0
  220. package/cjs/series/map/map.d.ts +1 -1
  221. package/cjs/series/map/map.js +2 -7
  222. package/cjs/series/map/map.js.map +1 -1
  223. package/cjs/series/mixin/line-mixin.d.ts +1 -1
  224. package/cjs/series/mixin/line-mixin.js +4 -4
  225. package/cjs/series/mixin/line-mixin.js.map +1 -1
  226. package/cjs/series/pie/constant.d.ts +3 -0
  227. package/cjs/series/pie/constant.js +28 -0
  228. package/cjs/series/pie/constant.js.map +1 -0
  229. package/cjs/series/pie/pie-3d.d.ts +1 -1
  230. package/cjs/series/pie/pie-3d.js +2 -11
  231. package/cjs/series/pie/pie-3d.js.map +1 -1
  232. package/cjs/series/pie/pie.d.ts +1 -1
  233. package/cjs/series/pie/pie.js +3 -12
  234. package/cjs/series/pie/pie.js.map +1 -1
  235. package/cjs/series/progress/circular/circular.d.ts +1 -1
  236. package/cjs/series/progress/circular/circular.js +6 -15
  237. package/cjs/series/progress/circular/circular.js.map +1 -1
  238. package/cjs/series/progress/circular/constant.d.ts +2 -0
  239. package/cjs/series/progress/circular/constant.js +19 -0
  240. package/cjs/series/progress/circular/constant.js.map +1 -0
  241. package/cjs/series/progress/linear/constant.d.ts +2 -0
  242. package/cjs/series/progress/linear/constant.js +23 -0
  243. package/cjs/series/progress/linear/constant.js.map +1 -0
  244. package/cjs/series/progress/linear/linear.d.ts +1 -1
  245. package/cjs/series/progress/linear/linear.js +2 -15
  246. package/cjs/series/progress/linear/linear.js.map +1 -1
  247. package/cjs/series/radar/constant.d.ts +2 -0
  248. package/cjs/series/radar/constant.js +15 -0
  249. package/cjs/series/radar/constant.js.map +1 -0
  250. package/cjs/series/radar/radar.d.ts +3 -2
  251. package/cjs/series/radar/radar.js +8 -10
  252. package/cjs/series/radar/radar.js.map +1 -1
  253. package/cjs/series/range-area/constant.d.ts +2 -0
  254. package/cjs/series/range-area/constant.js +10 -0
  255. package/cjs/series/range-area/constant.js.map +1 -0
  256. package/cjs/series/range-area/range-area.d.ts +2 -1
  257. package/cjs/series/range-area/range-area.js +2 -2
  258. package/cjs/series/range-area/range-area.js.map +1 -1
  259. package/cjs/series/range-column/constant.d.ts +3 -0
  260. package/cjs/series/range-column/constant.js +28 -0
  261. package/cjs/series/range-column/constant.js.map +1 -0
  262. package/cjs/series/range-column/range-column-3d.d.ts +5 -1
  263. package/cjs/series/range-column/range-column-3d.js +3 -2
  264. package/cjs/series/range-column/range-column-3d.js.map +1 -1
  265. package/cjs/series/range-column/range-column.d.ts +2 -2
  266. package/cjs/series/range-column/range-column.js +2 -11
  267. package/cjs/series/range-column/range-column.js.map +1 -1
  268. package/cjs/series/rose/constant.d.ts +2 -0
  269. package/cjs/series/rose/constant.js +15 -0
  270. package/cjs/series/rose/constant.js.map +1 -0
  271. package/cjs/series/rose/rose.d.ts +2 -1
  272. package/cjs/series/rose/rose.js +8 -10
  273. package/cjs/series/rose/rose.js.map +1 -1
  274. package/cjs/series/sankey/constant.d.ts +2 -0
  275. package/cjs/series/sankey/constant.js +19 -0
  276. package/cjs/series/sankey/constant.js.map +1 -0
  277. package/cjs/series/sankey/sankey.d.ts +1 -2
  278. package/cjs/series/sankey/sankey.js +2 -11
  279. package/cjs/series/sankey/sankey.js.map +1 -1
  280. package/cjs/series/scatter/constant.d.ts +2 -0
  281. package/cjs/series/scatter/constant.js +15 -0
  282. package/cjs/series/scatter/constant.js.map +1 -0
  283. package/cjs/series/scatter/interface.d.ts +2 -0
  284. package/cjs/series/scatter/interface.js.map +1 -1
  285. package/cjs/series/scatter/scatter.d.ts +2 -1
  286. package/cjs/series/scatter/scatter.js +8 -10
  287. package/cjs/series/scatter/scatter.js.map +1 -1
  288. package/cjs/series/sunburst/constant.d.ts +2 -0
  289. package/cjs/series/sunburst/constant.js +15 -0
  290. package/cjs/series/sunburst/constant.js.map +1 -0
  291. package/cjs/series/sunburst/sunburst.js +2 -7
  292. package/cjs/series/sunburst/sunburst.js.map +1 -1
  293. package/cjs/series/treemap/constant.d.ts +2 -0
  294. package/cjs/series/treemap/constant.js +23 -0
  295. package/cjs/series/treemap/constant.js.map +1 -0
  296. package/cjs/series/treemap/treemap.d.ts +1 -1
  297. package/cjs/series/treemap/treemap.js +10 -22
  298. package/cjs/series/treemap/treemap.js.map +1 -1
  299. package/cjs/series/waterfall/constant.d.ts +2 -0
  300. package/cjs/series/waterfall/constant.js +19 -0
  301. package/cjs/series/waterfall/constant.js.map +1 -0
  302. package/cjs/series/waterfall/waterfall.d.ts +2 -2
  303. package/cjs/series/waterfall/waterfall.js +2 -11
  304. package/cjs/series/waterfall/waterfall.js.map +1 -1
  305. package/cjs/series/word-cloud/base.js +3 -12
  306. package/cjs/series/word-cloud/base.js.map +1 -1
  307. package/cjs/series/word-cloud/constant.d.ts +2 -0
  308. package/cjs/series/word-cloud/constant.js +19 -0
  309. package/cjs/series/word-cloud/constant.js.map +1 -0
  310. package/cjs/series/word-cloud/word-cloud-3d.d.ts +1 -1
  311. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  312. package/cjs/series/word-cloud/word-cloud.d.ts +1 -1
  313. package/cjs/series/word-cloud/word-cloud.js.map +1 -1
  314. package/cjs/theme/builtin/common/component/axis/band-axis.d.ts +2 -0
  315. package/cjs/theme/builtin/common/component/axis/band-axis.js.map +1 -0
  316. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -0
  317. package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -0
  318. package/cjs/theme/builtin/common/component/axis/linear-axis.js.map +1 -0
  319. package/cjs/theme/builtin/common/component/axis/log-axis.js.map +1 -0
  320. package/cjs/theme/builtin/common/component/axis/polar-axis.js.map +1 -0
  321. package/cjs/theme/builtin/common/component/brush.js.map +1 -0
  322. package/cjs/theme/{buildin-theme/light → builtin/common}/component/crosshair.js +16 -4
  323. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -0
  324. package/cjs/theme/builtin/common/component/data-zoom.js +160 -0
  325. package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -0
  326. package/cjs/theme/builtin/common/component/index.js.map +1 -0
  327. package/cjs/theme/builtin/common/component/indicator.js.map +1 -0
  328. package/cjs/theme/builtin/common/component/legend/color-legend.js.map +1 -0
  329. package/cjs/theme/{buildin-theme/light → builtin/common}/component/legend/continuous.js +1 -1
  330. package/cjs/theme/builtin/common/component/legend/continuous.js.map +1 -0
  331. package/cjs/theme/{buildin-theme/light → builtin/common}/component/legend/discrete-legend.js +8 -5
  332. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -0
  333. package/cjs/theme/builtin/common/component/legend/size-legend.js.map +1 -0
  334. package/cjs/theme/builtin/common/component/map-label.js.map +1 -0
  335. package/cjs/theme/{buildin-theme/light → builtin/common}/component/mark-area.js +8 -2
  336. package/cjs/theme/builtin/common/component/mark-area.js.map +1 -0
  337. package/cjs/theme/{buildin-theme/light → builtin/common}/component/mark-line.js +8 -2
  338. package/cjs/theme/builtin/common/component/mark-line.js.map +1 -0
  339. package/cjs/theme/builtin/common/component/mark-point.js.map +1 -0
  340. package/cjs/theme/{buildin-theme/light → builtin/common}/component/player.js +4 -1
  341. package/cjs/theme/builtin/common/component/player.js.map +1 -0
  342. package/cjs/theme/{buildin-theme/light → builtin/common}/component/poptip.js +16 -4
  343. package/cjs/theme/builtin/common/component/poptip.js.map +1 -0
  344. package/cjs/theme/{buildin-theme/light → builtin/common}/component/title.js +2 -2
  345. package/cjs/theme/builtin/common/component/title.js.map +1 -0
  346. package/cjs/theme/{buildin-theme/light → builtin/common}/component/tooltip.js +25 -6
  347. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -0
  348. package/cjs/theme/{buildin-theme/light → builtin/common}/component/total-label.js +4 -1
  349. package/cjs/theme/builtin/common/component/total-label.js.map +1 -0
  350. package/cjs/theme/{buildin-theme/light → builtin/common}/constants.js +3 -3
  351. package/cjs/theme/builtin/common/constants.js.map +1 -0
  352. package/cjs/theme/{buildin-theme/light → builtin/common}/mark.js +12 -3
  353. package/cjs/theme/builtin/common/mark.js.map +1 -0
  354. package/cjs/theme/builtin/common/series/area.js.map +1 -0
  355. package/cjs/theme/builtin/common/series/bar.js.map +1 -0
  356. package/cjs/theme/builtin/common/series/bar3d.js.map +1 -0
  357. package/cjs/theme/builtin/common/series/box-plot.js.map +1 -0
  358. package/cjs/theme/{buildin-theme/light → builtin/common}/series/circle-packing.js +8 -2
  359. package/cjs/theme/builtin/common/series/circle-packing.js.map +1 -0
  360. package/cjs/theme/builtin/common/series/circular-progress.js.map +1 -0
  361. package/cjs/theme/builtin/common/series/dot.js.map +1 -0
  362. package/cjs/theme/builtin/common/series/funnel.js.map +1 -0
  363. package/cjs/theme/builtin/common/series/funnel3d.js.map +1 -0
  364. package/cjs/theme/builtin/common/series/gauge-pointer.js.map +1 -0
  365. package/cjs/theme/builtin/common/series/gauge.js.map +1 -0
  366. package/cjs/theme/builtin/common/series/heatmap.js.map +1 -0
  367. package/cjs/theme/builtin/common/series/index.js.map +1 -0
  368. package/cjs/theme/builtin/common/series/line.js.map +1 -0
  369. package/cjs/theme/builtin/common/series/linear-progress.js.map +1 -0
  370. package/cjs/theme/builtin/common/series/link.js.map +1 -0
  371. package/cjs/theme/builtin/common/series/map.js.map +1 -0
  372. package/cjs/theme/builtin/common/series/pie.js.map +1 -0
  373. package/cjs/theme/builtin/common/series/pie3d.js.map +1 -0
  374. package/cjs/theme/builtin/common/series/radar.js.map +1 -0
  375. package/cjs/theme/{buildin-theme/light → builtin/common}/series/rangeColumn.js +4 -1
  376. package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -0
  377. package/cjs/theme/builtin/common/series/rose.js.map +1 -0
  378. package/cjs/theme/builtin/common/series/sankey.js.map +1 -0
  379. package/cjs/theme/builtin/common/series/scatter.js.map +1 -0
  380. package/cjs/theme/{buildin-theme/light → builtin/common}/series/sunburst.js +8 -2
  381. package/cjs/theme/builtin/common/series/sunburst.js.map +1 -0
  382. package/cjs/theme/builtin/common/series/treemap.js.map +1 -0
  383. package/cjs/theme/builtin/common/series/waterfall.js.map +1 -0
  384. package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -0
  385. package/cjs/theme/builtin/common/series/word-cloud3d.js.map +1 -0
  386. package/cjs/theme/{buildin-theme/config.js → builtin/constant.js} +1 -1
  387. package/cjs/theme/builtin/constant.js.map +1 -0
  388. package/cjs/theme/builtin/dark/color-scheme.js +33 -0
  389. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -0
  390. package/cjs/theme/builtin/dark/index.d.ts +2 -0
  391. package/cjs/theme/builtin/dark/index.js +13 -0
  392. package/cjs/theme/builtin/dark/index.js.map +1 -0
  393. package/{esm/theme/buildin-theme → cjs/theme/builtin}/index.d.ts +2 -2
  394. package/cjs/theme/{buildin-theme → builtin}/index.js +3 -3
  395. package/cjs/theme/builtin/index.js.map +1 -0
  396. package/cjs/theme/builtin/light/color-scheme.js +33 -0
  397. package/cjs/theme/builtin/light/color-scheme.js.map +1 -0
  398. package/cjs/theme/{buildin-theme → builtin}/light/index.js +5 -1
  399. package/cjs/theme/builtin/light/index.js.map +1 -0
  400. package/cjs/theme/color-scheme/builtin/default.d.ts +2 -0
  401. package/cjs/theme/color-scheme/builtin/default.js +11 -0
  402. package/cjs/theme/color-scheme/builtin/default.js.map +1 -0
  403. package/cjs/theme/color-scheme/util.d.ts +2 -1
  404. package/cjs/theme/color-scheme/util.js +9 -2
  405. package/cjs/theme/color-scheme/util.js.map +1 -1
  406. package/cjs/theme/index.d.ts +1 -1
  407. package/cjs/theme/index.js +1 -1
  408. package/cjs/theme/index.js.map +1 -1
  409. package/cjs/theme/interface.d.ts +2 -2
  410. package/cjs/theme/interface.js.map +1 -1
  411. package/cjs/theme/theme-manager.js +7 -7
  412. package/cjs/theme/theme-manager.js.map +1 -1
  413. package/cjs/typings/spec/common.d.ts +5 -0
  414. package/cjs/typings/spec/common.js.map +1 -1
  415. package/cjs/util/spec.d.ts +7 -0
  416. package/cjs/util/spec.js +55 -6
  417. package/cjs/util/spec.js.map +1 -1
  418. package/cjs/util/text.d.ts +0 -4
  419. package/cjs/util/text.js +6 -14
  420. package/cjs/util/text.js.map +1 -1
  421. package/cjs/vchart-all.js +1 -1
  422. package/cjs/vchart-all.js.map +1 -1
  423. package/esm/chart/index.d.ts +2 -2
  424. package/esm/chart/index.js +2 -2
  425. package/esm/chart/index.js.map +1 -1
  426. package/esm/chart/treemap/treemap.d.ts +1 -1
  427. package/esm/chart/treemap/treemap.js +4 -4
  428. package/esm/chart/treemap/treemap.js.map +1 -1
  429. package/esm/component/axis/base-axis.d.ts +15 -14
  430. package/esm/component/axis/base-axis.js.map +1 -1
  431. package/esm/component/axis/cartesian/axis.d.ts +2 -2
  432. package/esm/component/axis/cartesian/axis.js.map +1 -1
  433. package/esm/component/axis/cartesian/band-axis.d.ts +2 -3
  434. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  435. package/esm/component/axis/cartesian/linear-axis.d.ts +3 -3
  436. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  437. package/esm/component/axis/cartesian/log-axis.d.ts +3 -2
  438. package/esm/component/axis/cartesian/log-axis.js.map +1 -1
  439. package/esm/component/axis/cartesian/time-axis.d.ts +3 -2
  440. package/esm/component/axis/cartesian/time-axis.js.map +1 -1
  441. package/esm/component/axis/interface.d.ts +6 -1
  442. package/esm/component/axis/interface.js.map +1 -1
  443. package/esm/component/axis/polar/axis.d.ts +2 -2
  444. package/esm/component/axis/polar/axis.js.map +1 -1
  445. package/esm/component/axis/polar/band-axis.d.ts +3 -2
  446. package/esm/component/axis/polar/band-axis.js.map +1 -1
  447. package/esm/component/axis/polar/interface/spec.d.ts +7 -2
  448. package/esm/component/axis/polar/interface/spec.js.map +1 -1
  449. package/esm/component/axis/polar/linear-axis.d.ts +2 -3
  450. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  451. package/esm/component/base/base-component.d.ts +4 -2
  452. package/esm/component/base/base-component.js +11 -1
  453. package/esm/component/base/base-component.js.map +1 -1
  454. package/esm/component/brush/brush.d.ts +2 -2
  455. package/esm/component/brush/brush.js +1 -1
  456. package/esm/component/brush/brush.js.map +1 -1
  457. package/esm/component/brush/interface.d.ts +1 -0
  458. package/esm/component/brush/interface.js.map +1 -1
  459. package/esm/component/crosshair/base.d.ts +2 -2
  460. package/esm/component/crosshair/base.js +1 -1
  461. package/esm/component/crosshair/base.js.map +1 -1
  462. package/esm/component/crosshair/cartesian.d.ts +3 -3
  463. package/esm/component/crosshair/cartesian.js.map +1 -1
  464. package/esm/component/crosshair/polar.d.ts +3 -3
  465. package/esm/component/crosshair/polar.js.map +1 -1
  466. package/esm/component/custom-mark/custom-mark.d.ts +1 -1
  467. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  468. package/esm/component/data-zoom/data-filter-base-component.d.ts +4 -4
  469. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  470. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +5 -4
  471. package/esm/component/data-zoom/data-zoom/data-zoom.js +1 -1
  472. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  473. package/esm/component/data-zoom/data-zoom/interface.d.ts +3 -1
  474. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  475. package/esm/component/data-zoom/interface.d.ts +4 -1
  476. package/esm/component/data-zoom/interface.js.map +1 -1
  477. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -2
  478. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  479. package/esm/component/geo/geo-coordinate.d.ts +1 -2
  480. package/esm/component/geo/geo-coordinate.js.map +1 -1
  481. package/esm/component/indicator/indicator.d.ts +2 -2
  482. package/esm/component/indicator/indicator.js +1 -1
  483. package/esm/component/indicator/indicator.js.map +1 -1
  484. package/esm/component/indicator/interface.d.ts +2 -0
  485. package/esm/component/indicator/interface.js.map +1 -1
  486. package/esm/component/label/base-label.d.ts +2 -2
  487. package/esm/component/label/base-label.js.map +1 -1
  488. package/esm/component/label/interface.d.ts +3 -0
  489. package/esm/component/label/interface.js.map +1 -1
  490. package/esm/component/label/label.d.ts +4 -3
  491. package/esm/component/label/label.js.map +1 -1
  492. package/esm/component/legend/base-legend.d.ts +2 -2
  493. package/esm/component/legend/base-legend.js.map +1 -1
  494. package/esm/component/legend/continuous/legend.d.ts +3 -4
  495. package/esm/component/legend/continuous/legend.js.map +1 -1
  496. package/esm/component/legend/discrete/legend.d.ts +1 -2
  497. package/esm/component/legend/discrete/legend.js.map +1 -1
  498. package/esm/component/map-label/component.d.ts +1 -2
  499. package/esm/component/map-label/component.js.map +1 -1
  500. package/esm/component/marker/base-marker.d.ts +2 -2
  501. package/esm/component/marker/base-marker.js.map +1 -1
  502. package/esm/component/marker/mark-area/mark-area.d.ts +1 -2
  503. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  504. package/esm/component/marker/mark-line/mark-line.d.ts +1 -2
  505. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  506. package/esm/component/marker/mark-point/mark-point.d.ts +1 -2
  507. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  508. package/esm/component/player/player.d.ts +1 -2
  509. package/esm/component/player/player.js.map +1 -1
  510. package/esm/component/title/title.d.ts +1 -2
  511. package/esm/component/title/title.js.map +1 -1
  512. package/esm/component/tooltip/handler/base.js +3 -3
  513. package/esm/component/tooltip/handler/base.js.map +1 -1
  514. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +1 -1
  515. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  516. package/esm/component/tooltip/handler/utils/attribute.js +2 -2
  517. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  518. package/esm/component/tooltip/handler/utils/style.js.map +1 -1
  519. package/esm/component/tooltip/interface/theme.d.ts +6 -5
  520. package/esm/component/tooltip/interface/theme.js.map +1 -1
  521. package/esm/component/tooltip/tooltip.d.ts +3 -2
  522. package/esm/component/tooltip/tooltip.js +4 -1
  523. package/esm/component/tooltip/tooltip.js.map +1 -1
  524. package/esm/core/index.d.ts +1 -1
  525. package/esm/core/index.js +1 -1
  526. package/esm/core/index.js.map +1 -1
  527. package/esm/core/vchart.js +8 -3
  528. package/esm/core/vchart.js.map +1 -1
  529. package/esm/data/transforms/data-key.d.ts +2 -2
  530. package/esm/data/transforms/data-key.js.map +1 -1
  531. package/esm/model/base-model.d.ts +4 -4
  532. package/esm/model/base-model.js +14 -16
  533. package/esm/model/base-model.js.map +1 -1
  534. package/esm/model/interface.d.ts +1 -0
  535. package/esm/model/interface.js.map +1 -1
  536. package/esm/model/layout-item.d.ts +3 -3
  537. package/esm/model/layout-item.js.map +1 -1
  538. package/esm/model/tooltip-helper.d.ts +0 -2
  539. package/esm/model/tooltip-helper.js +0 -3
  540. package/esm/model/tooltip-helper.js.map +1 -1
  541. package/esm/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -1
  542. package/esm/region/region.d.ts +2 -3
  543. package/esm/region/region.js.map +1 -1
  544. package/esm/series/area/area.d.ts +3 -2
  545. package/esm/series/area/area.js +7 -11
  546. package/esm/series/area/area.js.map +1 -1
  547. package/esm/series/area/constant.d.ts +2 -0
  548. package/esm/series/area/constant.js +15 -0
  549. package/esm/series/area/constant.js.map +1 -0
  550. package/esm/series/area/interface.d.ts +2 -0
  551. package/esm/series/area/interface.js.map +1 -1
  552. package/esm/series/bar/bar-3d.d.ts +3 -1
  553. package/esm/series/bar/bar-3d.js +3 -8
  554. package/esm/series/bar/bar-3d.js.map +1 -1
  555. package/esm/series/bar/bar.js +3 -8
  556. package/esm/series/bar/bar.js.map +1 -1
  557. package/esm/series/bar/constant.d.ts +3 -0
  558. package/esm/series/bar/constant.js +20 -0
  559. package/esm/series/bar/constant.js.map +1 -0
  560. package/esm/series/bar/interface.d.ts +3 -2
  561. package/esm/series/bar/interface.js.map +1 -1
  562. package/esm/series/base/base-series.d.ts +3 -6
  563. package/esm/series/base/base-series.js +4 -20
  564. package/esm/series/base/base-series.js.map +1 -1
  565. package/esm/series/base/constant.d.ts +2 -0
  566. package/esm/series/base/constant.js +11 -0
  567. package/esm/series/base/constant.js.map +1 -0
  568. package/esm/series/base/tooltip-helper.d.ts +0 -1
  569. package/esm/series/base/tooltip-helper.js +1 -4
  570. package/esm/series/base/tooltip-helper.js.map +1 -1
  571. package/esm/series/box-plot/box-plot.d.ts +1 -2
  572. package/esm/series/box-plot/box-plot.js +3 -14
  573. package/esm/series/box-plot/box-plot.js.map +1 -1
  574. package/esm/series/box-plot/constant.d.ts +2 -0
  575. package/esm/series/box-plot/constant.js +17 -0
  576. package/esm/series/box-plot/constant.js.map +1 -0
  577. package/esm/series/cartesian/interface.d.ts +2 -2
  578. package/esm/series/cartesian/interface.js.map +1 -1
  579. package/esm/series/circle-packing/circle-packing.d.ts +1 -2
  580. package/esm/series/circle-packing/circle-packing.js +4 -10
  581. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  582. package/esm/series/circle-packing/constant.d.ts +2 -0
  583. package/esm/series/circle-packing/constant.js +13 -0
  584. package/esm/series/circle-packing/constant.js.map +1 -0
  585. package/esm/series/dot/constant.d.ts +2 -0
  586. package/esm/series/dot/constant.js +37 -0
  587. package/esm/series/dot/constant.js.map +1 -0
  588. package/esm/series/dot/dot.d.ts +1 -1
  589. package/esm/series/dot/dot.js +3 -34
  590. package/esm/series/dot/dot.js.map +1 -1
  591. package/esm/series/funnel/constant.d.ts +3 -0
  592. package/esm/series/funnel/constant.js +52 -0
  593. package/esm/series/funnel/constant.js.map +1 -0
  594. package/esm/series/funnel/funnel-3d.d.ts +3 -2
  595. package/esm/series/funnel/funnel-3d.js +3 -24
  596. package/esm/series/funnel/funnel-3d.js.map +1 -1
  597. package/esm/series/funnel/funnel.d.ts +1 -1
  598. package/esm/series/funnel/funnel.js +3 -22
  599. package/esm/series/funnel/funnel.js.map +1 -1
  600. package/esm/series/gauge/constant.d.ts +3 -0
  601. package/esm/series/gauge/constant.js +32 -0
  602. package/esm/series/gauge/constant.js.map +1 -0
  603. package/esm/series/gauge/gauge-pointer.d.ts +2 -2
  604. package/esm/series/gauge/gauge-pointer.js +6 -16
  605. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  606. package/esm/series/gauge/gauge.d.ts +2 -1
  607. package/esm/series/gauge/gauge.js +6 -14
  608. package/esm/series/gauge/gauge.js.map +1 -1
  609. package/esm/series/heatmap/constant.d.ts +2 -0
  610. package/esm/series/heatmap/constant.js +17 -0
  611. package/esm/series/heatmap/constant.js.map +1 -0
  612. package/esm/series/heatmap/heatmap.d.ts +1 -1
  613. package/esm/series/heatmap/heatmap.js +3 -14
  614. package/esm/series/heatmap/heatmap.js.map +1 -1
  615. package/esm/series/index.d.ts +2 -2
  616. package/esm/series/index.js +2 -2
  617. package/esm/series/index.js.map +1 -1
  618. package/esm/series/interface/theme.d.ts +3 -2
  619. package/esm/series/interface/theme.js +78 -1
  620. package/esm/series/interface/theme.js.map +1 -1
  621. package/esm/series/line/constant.d.ts +2 -0
  622. package/esm/series/line/constant.js +6 -0
  623. package/esm/series/line/constant.js.map +1 -0
  624. package/esm/series/line/interface.d.ts +4 -0
  625. package/esm/series/line/interface.js.map +1 -1
  626. package/esm/series/line/line.d.ts +3 -2
  627. package/esm/series/line/line.js +7 -5
  628. package/esm/series/line/line.js.map +1 -1
  629. package/esm/series/link/constant.d.ts +2 -0
  630. package/esm/series/link/constant.js +21 -0
  631. package/esm/series/link/constant.js.map +1 -0
  632. package/esm/series/link/link.d.ts +1 -1
  633. package/esm/series/link/link.js +3 -20
  634. package/esm/series/link/link.js.map +1 -1
  635. package/esm/series/map/constant.d.ts +2 -0
  636. package/esm/series/map/constant.js +13 -0
  637. package/esm/series/map/constant.js.map +1 -0
  638. package/esm/series/map/map.d.ts +1 -1
  639. package/esm/series/map/map.js +3 -8
  640. package/esm/series/map/map.js.map +1 -1
  641. package/esm/series/mixin/line-mixin.d.ts +1 -1
  642. package/esm/series/mixin/line-mixin.js +3 -3
  643. package/esm/series/mixin/line-mixin.js.map +1 -1
  644. package/esm/series/pie/constant.d.ts +3 -0
  645. package/esm/series/pie/constant.js +28 -0
  646. package/esm/series/pie/constant.js.map +1 -0
  647. package/esm/series/pie/pie-3d.d.ts +1 -1
  648. package/esm/series/pie/pie-3d.js +3 -12
  649. package/esm/series/pie/pie-3d.js.map +1 -1
  650. package/esm/series/pie/pie.d.ts +1 -1
  651. package/esm/series/pie/pie.js +4 -13
  652. package/esm/series/pie/pie.js.map +1 -1
  653. package/esm/series/progress/circular/circular.d.ts +1 -1
  654. package/esm/series/progress/circular/circular.js +3 -14
  655. package/esm/series/progress/circular/circular.js.map +1 -1
  656. package/esm/series/progress/circular/constant.d.ts +2 -0
  657. package/esm/series/progress/circular/constant.js +17 -0
  658. package/esm/series/progress/circular/constant.js.map +1 -0
  659. package/esm/series/progress/linear/constant.d.ts +2 -0
  660. package/esm/series/progress/linear/constant.js +21 -0
  661. package/esm/series/progress/linear/constant.js.map +1 -0
  662. package/esm/series/progress/linear/linear.d.ts +1 -1
  663. package/esm/series/progress/linear/linear.js +3 -18
  664. package/esm/series/progress/linear/linear.js.map +1 -1
  665. package/esm/series/radar/constant.d.ts +2 -0
  666. package/esm/series/radar/constant.js +15 -0
  667. package/esm/series/radar/constant.js.map +1 -0
  668. package/esm/series/radar/radar.d.ts +3 -2
  669. package/esm/series/radar/radar.js +7 -11
  670. package/esm/series/radar/radar.js.map +1 -1
  671. package/esm/series/range-area/constant.d.ts +2 -0
  672. package/esm/series/range-area/constant.js +4 -0
  673. package/esm/series/range-area/constant.js.map +1 -0
  674. package/esm/series/range-area/range-area.d.ts +2 -1
  675. package/esm/series/range-area/range-area.js +3 -1
  676. package/esm/series/range-area/range-area.js.map +1 -1
  677. package/esm/series/range-column/constant.d.ts +3 -0
  678. package/esm/series/range-column/constant.js +28 -0
  679. package/esm/series/range-column/constant.js.map +1 -0
  680. package/esm/series/range-column/range-column-3d.d.ts +5 -1
  681. package/esm/series/range-column/range-column-3d.js +3 -1
  682. package/esm/series/range-column/range-column-3d.js.map +1 -1
  683. package/esm/series/range-column/range-column.d.ts +2 -2
  684. package/esm/series/range-column/range-column.js +3 -10
  685. package/esm/series/range-column/range-column.js.map +1 -1
  686. package/esm/series/rose/constant.d.ts +2 -0
  687. package/esm/series/rose/constant.js +13 -0
  688. package/esm/series/rose/constant.js.map +1 -0
  689. package/esm/series/rose/rose.d.ts +2 -1
  690. package/esm/series/rose/rose.js +6 -10
  691. package/esm/series/rose/rose.js.map +1 -1
  692. package/esm/series/sankey/constant.d.ts +2 -0
  693. package/esm/series/sankey/constant.js +17 -0
  694. package/esm/series/sankey/constant.js.map +1 -0
  695. package/esm/series/sankey/sankey.d.ts +1 -2
  696. package/esm/series/sankey/sankey.js +3 -14
  697. package/esm/series/sankey/sankey.js.map +1 -1
  698. package/esm/series/scatter/constant.d.ts +2 -0
  699. package/esm/series/scatter/constant.js +13 -0
  700. package/esm/series/scatter/constant.js.map +1 -0
  701. package/esm/series/scatter/interface.d.ts +2 -0
  702. package/esm/series/scatter/interface.js.map +1 -1
  703. package/esm/series/scatter/scatter.d.ts +2 -1
  704. package/esm/series/scatter/scatter.js +6 -10
  705. package/esm/series/scatter/scatter.js.map +1 -1
  706. package/esm/series/sunburst/constant.d.ts +2 -0
  707. package/esm/series/sunburst/constant.js +13 -0
  708. package/esm/series/sunburst/constant.js.map +1 -0
  709. package/esm/series/sunburst/sunburst.js +5 -9
  710. package/esm/series/sunburst/sunburst.js.map +1 -1
  711. package/esm/series/treemap/constant.d.ts +2 -0
  712. package/esm/series/treemap/constant.js +21 -0
  713. package/esm/series/treemap/constant.js.map +1 -0
  714. package/esm/series/treemap/treemap.d.ts +1 -1
  715. package/esm/series/treemap/treemap.js +10 -22
  716. package/esm/series/treemap/treemap.js.map +1 -1
  717. package/esm/series/waterfall/constant.d.ts +2 -0
  718. package/esm/series/waterfall/constant.js +17 -0
  719. package/esm/series/waterfall/constant.js.map +1 -0
  720. package/esm/series/waterfall/waterfall.d.ts +2 -2
  721. package/esm/series/waterfall/waterfall.js +3 -12
  722. package/esm/series/waterfall/waterfall.js.map +1 -1
  723. package/esm/series/word-cloud/base.js +3 -12
  724. package/esm/series/word-cloud/base.js.map +1 -1
  725. package/esm/series/word-cloud/constant.d.ts +2 -0
  726. package/esm/series/word-cloud/constant.js +17 -0
  727. package/esm/series/word-cloud/constant.js.map +1 -0
  728. package/esm/series/word-cloud/word-cloud-3d.d.ts +1 -1
  729. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  730. package/esm/series/word-cloud/word-cloud.d.ts +1 -1
  731. package/esm/series/word-cloud/word-cloud.js.map +1 -1
  732. package/esm/theme/builtin/common/component/axis/band-axis.d.ts +2 -0
  733. package/esm/theme/builtin/common/component/axis/band-axis.js.map +1 -0
  734. package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -0
  735. package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -0
  736. package/esm/theme/builtin/common/component/axis/linear-axis.js.map +1 -0
  737. package/esm/theme/builtin/common/component/axis/log-axis.js.map +1 -0
  738. package/esm/theme/builtin/common/component/axis/polar-axis.js.map +1 -0
  739. package/esm/theme/builtin/common/component/brush.js.map +1 -0
  740. package/esm/theme/{buildin-theme/light → builtin/common}/component/crosshair.js +16 -4
  741. package/esm/theme/builtin/common/component/crosshair.js.map +1 -0
  742. package/esm/theme/builtin/common/component/data-zoom.js +156 -0
  743. package/esm/theme/builtin/common/component/data-zoom.js.map +1 -0
  744. package/esm/theme/builtin/common/component/index.js.map +1 -0
  745. package/esm/theme/builtin/common/component/indicator.js.map +1 -0
  746. package/esm/theme/builtin/common/component/legend/color-legend.js.map +1 -0
  747. package/esm/theme/{buildin-theme/light → builtin/common}/component/legend/continuous.js +1 -1
  748. package/esm/theme/builtin/common/component/legend/continuous.js.map +1 -0
  749. package/esm/theme/{buildin-theme/light → builtin/common}/component/legend/discrete-legend.js +8 -5
  750. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -0
  751. package/esm/theme/builtin/common/component/legend/size-legend.js.map +1 -0
  752. package/esm/theme/builtin/common/component/map-label.js.map +1 -0
  753. package/esm/theme/{buildin-theme/light → builtin/common}/component/mark-area.js +8 -2
  754. package/esm/theme/builtin/common/component/mark-area.js.map +1 -0
  755. package/esm/theme/{buildin-theme/light → builtin/common}/component/mark-line.js +8 -2
  756. package/esm/theme/builtin/common/component/mark-line.js.map +1 -0
  757. package/esm/theme/builtin/common/component/mark-point.js.map +1 -0
  758. package/esm/theme/{buildin-theme/light → builtin/common}/component/player.js +4 -1
  759. package/esm/theme/builtin/common/component/player.js.map +1 -0
  760. package/esm/theme/{buildin-theme/light → builtin/common}/component/poptip.js +16 -4
  761. package/esm/theme/builtin/common/component/poptip.js.map +1 -0
  762. package/esm/theme/{buildin-theme/light → builtin/common}/component/title.js +2 -2
  763. package/esm/theme/builtin/common/component/title.js.map +1 -0
  764. package/esm/theme/{buildin-theme/light → builtin/common}/component/tooltip.js +25 -6
  765. package/esm/theme/builtin/common/component/tooltip.js.map +1 -0
  766. package/esm/theme/{buildin-theme/light → builtin/common}/component/total-label.js +4 -1
  767. package/esm/theme/builtin/common/component/total-label.js.map +1 -0
  768. package/esm/theme/{buildin-theme/light → builtin/common}/constants.js +1 -1
  769. package/esm/theme/builtin/common/constants.js.map +1 -0
  770. package/esm/theme/{buildin-theme/light → builtin/common}/mark.js +12 -3
  771. package/esm/theme/builtin/common/mark.js.map +1 -0
  772. package/esm/theme/builtin/common/series/area.js.map +1 -0
  773. package/esm/theme/builtin/common/series/bar.js.map +1 -0
  774. package/esm/theme/builtin/common/series/bar3d.js.map +1 -0
  775. package/esm/theme/builtin/common/series/box-plot.js.map +1 -0
  776. package/esm/theme/{buildin-theme/light → builtin/common}/series/circle-packing.js +8 -2
  777. package/esm/theme/builtin/common/series/circle-packing.js.map +1 -0
  778. package/esm/theme/builtin/common/series/circular-progress.js.map +1 -0
  779. package/esm/theme/builtin/common/series/dot.js.map +1 -0
  780. package/esm/theme/builtin/common/series/funnel.js.map +1 -0
  781. package/esm/theme/builtin/common/series/funnel3d.js.map +1 -0
  782. package/esm/theme/builtin/common/series/gauge-pointer.js.map +1 -0
  783. package/esm/theme/builtin/common/series/gauge.js.map +1 -0
  784. package/esm/theme/builtin/common/series/heatmap.js.map +1 -0
  785. package/esm/theme/builtin/common/series/index.js.map +1 -0
  786. package/esm/theme/builtin/common/series/line.js.map +1 -0
  787. package/esm/theme/builtin/common/series/linear-progress.js.map +1 -0
  788. package/esm/theme/builtin/common/series/link.js.map +1 -0
  789. package/esm/theme/builtin/common/series/map.js.map +1 -0
  790. package/esm/theme/builtin/common/series/pie.js.map +1 -0
  791. package/esm/theme/builtin/common/series/pie3d.js.map +1 -0
  792. package/esm/theme/builtin/common/series/radar.js.map +1 -0
  793. package/esm/theme/{buildin-theme/light → builtin/common}/series/rangeColumn.js +4 -1
  794. package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -0
  795. package/esm/theme/builtin/common/series/rose.js.map +1 -0
  796. package/esm/theme/builtin/common/series/sankey.js.map +1 -0
  797. package/esm/theme/builtin/common/series/scatter.js.map +1 -0
  798. package/esm/theme/{buildin-theme/light → builtin/common}/series/sunburst.js +8 -2
  799. package/esm/theme/builtin/common/series/sunburst.js.map +1 -0
  800. package/esm/theme/builtin/common/series/treemap.js.map +1 -0
  801. package/esm/theme/builtin/common/series/waterfall.js.map +1 -0
  802. package/esm/theme/builtin/common/series/word-cloud.js.map +1 -0
  803. package/esm/theme/builtin/common/series/word-cloud3d.js.map +1 -0
  804. package/esm/theme/{buildin-theme/config.js → builtin/constant.js} +1 -1
  805. package/esm/theme/builtin/constant.js.map +1 -0
  806. package/esm/theme/builtin/dark/color-scheme.d.ts +2 -0
  807. package/esm/theme/builtin/dark/color-scheme.js +27 -0
  808. package/esm/theme/builtin/dark/color-scheme.js.map +1 -0
  809. package/esm/theme/builtin/dark/index.d.ts +2 -0
  810. package/esm/theme/builtin/dark/index.js +7 -0
  811. package/esm/theme/builtin/dark/index.js.map +1 -0
  812. package/{cjs/theme/buildin-theme → esm/theme/builtin}/index.d.ts +2 -2
  813. package/esm/theme/builtin/index.js +12 -0
  814. package/esm/theme/builtin/index.js.map +1 -0
  815. package/esm/theme/builtin/light/color-scheme.d.ts +2 -0
  816. package/esm/theme/builtin/light/color-scheme.js +27 -0
  817. package/esm/theme/builtin/light/color-scheme.js.map +1 -0
  818. package/esm/theme/{buildin-theme → builtin}/light/index.js +8 -4
  819. package/esm/theme/builtin/light/index.js.map +1 -0
  820. package/esm/theme/color-scheme/builtin/default.d.ts +2 -0
  821. package/esm/theme/color-scheme/builtin/default.js +7 -0
  822. package/esm/theme/color-scheme/builtin/default.js.map +1 -0
  823. package/esm/theme/color-scheme/util.d.ts +2 -1
  824. package/esm/theme/color-scheme/util.js +6 -0
  825. package/esm/theme/color-scheme/util.js.map +1 -1
  826. package/esm/theme/index.d.ts +1 -1
  827. package/esm/theme/index.js +1 -1
  828. package/esm/theme/index.js.map +1 -1
  829. package/esm/theme/interface.d.ts +2 -2
  830. package/esm/theme/interface.js.map +1 -1
  831. package/esm/theme/theme-manager.js +6 -6
  832. package/esm/theme/theme-manager.js.map +1 -1
  833. package/esm/typings/spec/common.d.ts +5 -0
  834. package/esm/typings/spec/common.js.map +1 -1
  835. package/esm/util/spec.d.ts +7 -0
  836. package/esm/util/spec.js +52 -4
  837. package/esm/util/spec.js.map +1 -1
  838. package/esm/util/text.d.ts +0 -4
  839. package/esm/util/text.js +2 -8
  840. package/esm/util/text.js.map +1 -1
  841. package/esm/vchart-all.js +2 -2
  842. package/esm/vchart-all.js.map +1 -1
  843. package/package.json +8 -8
  844. package/cjs/theme/buildin-theme/config.js.map +0 -1
  845. package/cjs/theme/buildin-theme/index.js.map +0 -1
  846. package/cjs/theme/buildin-theme/light/color-scheme.js +0 -21
  847. package/cjs/theme/buildin-theme/light/color-scheme.js.map +0 -1
  848. package/cjs/theme/buildin-theme/light/component/axis/band-axis.d.ts +0 -2
  849. package/cjs/theme/buildin-theme/light/component/axis/band-axis.js.map +0 -1
  850. package/cjs/theme/buildin-theme/light/component/axis/cartesian-axis.js.map +0 -1
  851. package/cjs/theme/buildin-theme/light/component/axis/common-axis.js.map +0 -1
  852. package/cjs/theme/buildin-theme/light/component/axis/linear-axis.js.map +0 -1
  853. package/cjs/theme/buildin-theme/light/component/axis/log-axis.js.map +0 -1
  854. package/cjs/theme/buildin-theme/light/component/axis/polar-axis.js.map +0 -1
  855. package/cjs/theme/buildin-theme/light/component/brush.js.map +0 -1
  856. package/cjs/theme/buildin-theme/light/component/crosshair.js.map +0 -1
  857. package/cjs/theme/buildin-theme/light/component/data-zoom.js +0 -105
  858. package/cjs/theme/buildin-theme/light/component/data-zoom.js.map +0 -1
  859. package/cjs/theme/buildin-theme/light/component/index.js.map +0 -1
  860. package/cjs/theme/buildin-theme/light/component/indicator.js.map +0 -1
  861. package/cjs/theme/buildin-theme/light/component/legend/color-legend.js.map +0 -1
  862. package/cjs/theme/buildin-theme/light/component/legend/continuous.js.map +0 -1
  863. package/cjs/theme/buildin-theme/light/component/legend/discrete-legend.js.map +0 -1
  864. package/cjs/theme/buildin-theme/light/component/legend/size-legend.js.map +0 -1
  865. package/cjs/theme/buildin-theme/light/component/map-label.js.map +0 -1
  866. package/cjs/theme/buildin-theme/light/component/mark-area.js.map +0 -1
  867. package/cjs/theme/buildin-theme/light/component/mark-line.js.map +0 -1
  868. package/cjs/theme/buildin-theme/light/component/mark-point.js.map +0 -1
  869. package/cjs/theme/buildin-theme/light/component/player.js.map +0 -1
  870. package/cjs/theme/buildin-theme/light/component/poptip.js.map +0 -1
  871. package/cjs/theme/buildin-theme/light/component/title.js.map +0 -1
  872. package/cjs/theme/buildin-theme/light/component/tooltip.js.map +0 -1
  873. package/cjs/theme/buildin-theme/light/component/total-label.js.map +0 -1
  874. package/cjs/theme/buildin-theme/light/constants.js.map +0 -1
  875. package/cjs/theme/buildin-theme/light/index.js.map +0 -1
  876. package/cjs/theme/buildin-theme/light/mark.js.map +0 -1
  877. package/cjs/theme/buildin-theme/light/series/area.js.map +0 -1
  878. package/cjs/theme/buildin-theme/light/series/bar.js.map +0 -1
  879. package/cjs/theme/buildin-theme/light/series/bar3d.js.map +0 -1
  880. package/cjs/theme/buildin-theme/light/series/box-plot.js.map +0 -1
  881. package/cjs/theme/buildin-theme/light/series/circle-packing.js.map +0 -1
  882. package/cjs/theme/buildin-theme/light/series/circular-progress.js.map +0 -1
  883. package/cjs/theme/buildin-theme/light/series/dot.js.map +0 -1
  884. package/cjs/theme/buildin-theme/light/series/funnel.js.map +0 -1
  885. package/cjs/theme/buildin-theme/light/series/funnel3d.js.map +0 -1
  886. package/cjs/theme/buildin-theme/light/series/gauge-pointer.js.map +0 -1
  887. package/cjs/theme/buildin-theme/light/series/gauge.js.map +0 -1
  888. package/cjs/theme/buildin-theme/light/series/heatmap.js.map +0 -1
  889. package/cjs/theme/buildin-theme/light/series/index.js.map +0 -1
  890. package/cjs/theme/buildin-theme/light/series/line.js.map +0 -1
  891. package/cjs/theme/buildin-theme/light/series/linear-progress.js.map +0 -1
  892. package/cjs/theme/buildin-theme/light/series/link.js.map +0 -1
  893. package/cjs/theme/buildin-theme/light/series/map.js.map +0 -1
  894. package/cjs/theme/buildin-theme/light/series/pie.js.map +0 -1
  895. package/cjs/theme/buildin-theme/light/series/pie3d.js.map +0 -1
  896. package/cjs/theme/buildin-theme/light/series/radar.js.map +0 -1
  897. package/cjs/theme/buildin-theme/light/series/rangeColumn.js.map +0 -1
  898. package/cjs/theme/buildin-theme/light/series/rose.js.map +0 -1
  899. package/cjs/theme/buildin-theme/light/series/sankey.js.map +0 -1
  900. package/cjs/theme/buildin-theme/light/series/scatter.js.map +0 -1
  901. package/cjs/theme/buildin-theme/light/series/sunburst.js.map +0 -1
  902. package/cjs/theme/buildin-theme/light/series/treemap.js.map +0 -1
  903. package/cjs/theme/buildin-theme/light/series/waterfall.js.map +0 -1
  904. package/cjs/theme/buildin-theme/light/series/word-cloud.js.map +0 -1
  905. package/cjs/theme/buildin-theme/light/series/word-cloud3d.js.map +0 -1
  906. package/esm/theme/buildin-theme/config.js.map +0 -1
  907. package/esm/theme/buildin-theme/index.js +0 -10
  908. package/esm/theme/buildin-theme/index.js.map +0 -1
  909. package/esm/theme/buildin-theme/light/color-scheme.js +0 -17
  910. package/esm/theme/buildin-theme/light/color-scheme.js.map +0 -1
  911. package/esm/theme/buildin-theme/light/component/axis/band-axis.d.ts +0 -2
  912. package/esm/theme/buildin-theme/light/component/axis/band-axis.js.map +0 -1
  913. package/esm/theme/buildin-theme/light/component/axis/cartesian-axis.js.map +0 -1
  914. package/esm/theme/buildin-theme/light/component/axis/common-axis.js.map +0 -1
  915. package/esm/theme/buildin-theme/light/component/axis/linear-axis.js.map +0 -1
  916. package/esm/theme/buildin-theme/light/component/axis/log-axis.js.map +0 -1
  917. package/esm/theme/buildin-theme/light/component/axis/polar-axis.js.map +0 -1
  918. package/esm/theme/buildin-theme/light/component/brush.js.map +0 -1
  919. package/esm/theme/buildin-theme/light/component/crosshair.js.map +0 -1
  920. package/esm/theme/buildin-theme/light/component/data-zoom.js +0 -101
  921. package/esm/theme/buildin-theme/light/component/data-zoom.js.map +0 -1
  922. package/esm/theme/buildin-theme/light/component/index.js.map +0 -1
  923. package/esm/theme/buildin-theme/light/component/indicator.js.map +0 -1
  924. package/esm/theme/buildin-theme/light/component/legend/color-legend.js.map +0 -1
  925. package/esm/theme/buildin-theme/light/component/legend/continuous.js.map +0 -1
  926. package/esm/theme/buildin-theme/light/component/legend/discrete-legend.js.map +0 -1
  927. package/esm/theme/buildin-theme/light/component/legend/size-legend.js.map +0 -1
  928. package/esm/theme/buildin-theme/light/component/map-label.js.map +0 -1
  929. package/esm/theme/buildin-theme/light/component/mark-area.js.map +0 -1
  930. package/esm/theme/buildin-theme/light/component/mark-line.js.map +0 -1
  931. package/esm/theme/buildin-theme/light/component/mark-point.js.map +0 -1
  932. package/esm/theme/buildin-theme/light/component/player.js.map +0 -1
  933. package/esm/theme/buildin-theme/light/component/poptip.js.map +0 -1
  934. package/esm/theme/buildin-theme/light/component/title.js.map +0 -1
  935. package/esm/theme/buildin-theme/light/component/tooltip.js.map +0 -1
  936. package/esm/theme/buildin-theme/light/component/total-label.js.map +0 -1
  937. package/esm/theme/buildin-theme/light/constants.js.map +0 -1
  938. package/esm/theme/buildin-theme/light/index.js.map +0 -1
  939. package/esm/theme/buildin-theme/light/mark.js.map +0 -1
  940. package/esm/theme/buildin-theme/light/series/area.js.map +0 -1
  941. package/esm/theme/buildin-theme/light/series/bar.js.map +0 -1
  942. package/esm/theme/buildin-theme/light/series/bar3d.js.map +0 -1
  943. package/esm/theme/buildin-theme/light/series/box-plot.js.map +0 -1
  944. package/esm/theme/buildin-theme/light/series/circle-packing.js.map +0 -1
  945. package/esm/theme/buildin-theme/light/series/circular-progress.js.map +0 -1
  946. package/esm/theme/buildin-theme/light/series/dot.js.map +0 -1
  947. package/esm/theme/buildin-theme/light/series/funnel.js.map +0 -1
  948. package/esm/theme/buildin-theme/light/series/funnel3d.js.map +0 -1
  949. package/esm/theme/buildin-theme/light/series/gauge-pointer.js.map +0 -1
  950. package/esm/theme/buildin-theme/light/series/gauge.js.map +0 -1
  951. package/esm/theme/buildin-theme/light/series/heatmap.js.map +0 -1
  952. package/esm/theme/buildin-theme/light/series/index.js.map +0 -1
  953. package/esm/theme/buildin-theme/light/series/line.js.map +0 -1
  954. package/esm/theme/buildin-theme/light/series/linear-progress.js.map +0 -1
  955. package/esm/theme/buildin-theme/light/series/link.js.map +0 -1
  956. package/esm/theme/buildin-theme/light/series/map.js.map +0 -1
  957. package/esm/theme/buildin-theme/light/series/pie.js.map +0 -1
  958. package/esm/theme/buildin-theme/light/series/pie3d.js.map +0 -1
  959. package/esm/theme/buildin-theme/light/series/radar.js.map +0 -1
  960. package/esm/theme/buildin-theme/light/series/rangeColumn.js.map +0 -1
  961. package/esm/theme/buildin-theme/light/series/rose.js.map +0 -1
  962. package/esm/theme/buildin-theme/light/series/sankey.js.map +0 -1
  963. package/esm/theme/buildin-theme/light/series/scatter.js.map +0 -1
  964. package/esm/theme/buildin-theme/light/series/sunburst.js.map +0 -1
  965. package/esm/theme/buildin-theme/light/series/treemap.js.map +0 -1
  966. package/esm/theme/buildin-theme/light/series/waterfall.js.map +0 -1
  967. package/esm/theme/buildin-theme/light/series/word-cloud.js.map +0 -1
  968. package/esm/theme/buildin-theme/light/series/word-cloud3d.js.map +0 -1
  969. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/band-axis.js +0 -0
  970. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/cartesian-axis.d.ts +0 -0
  971. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/cartesian-axis.js +0 -0
  972. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/common-axis.d.ts +0 -0
  973. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/common-axis.js +0 -0
  974. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/linear-axis.d.ts +0 -0
  975. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/linear-axis.js +0 -0
  976. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/log-axis.d.ts +0 -0
  977. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/log-axis.js +0 -0
  978. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/polar-axis.d.ts +0 -0
  979. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/axis/polar-axis.js +0 -0
  980. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/brush.d.ts +0 -0
  981. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/brush.js +0 -0
  982. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/crosshair.d.ts +0 -0
  983. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/data-zoom.d.ts +0 -0
  984. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/index.d.ts +0 -0
  985. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/index.js +0 -0
  986. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/indicator.d.ts +0 -0
  987. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/indicator.js +0 -0
  988. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/legend/color-legend.d.ts +0 -0
  989. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/legend/color-legend.js +0 -0
  990. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/legend/continuous.d.ts +0 -0
  991. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/legend/discrete-legend.d.ts +0 -0
  992. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/legend/size-legend.d.ts +0 -0
  993. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/legend/size-legend.js +0 -0
  994. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/map-label.d.ts +0 -0
  995. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/map-label.js +0 -0
  996. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/mark-area.d.ts +0 -0
  997. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/mark-line.d.ts +0 -0
  998. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/mark-point.d.ts +0 -0
  999. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/mark-point.js +0 -0
  1000. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/player.d.ts +0 -0
  1001. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/poptip.d.ts +0 -0
  1002. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/title.d.ts +0 -0
  1003. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/tooltip.d.ts +0 -0
  1004. /package/cjs/theme/{buildin-theme/light → builtin/common}/component/total-label.d.ts +0 -0
  1005. /package/cjs/theme/{buildin-theme/light → builtin/common}/constants.d.ts +0 -0
  1006. /package/cjs/theme/{buildin-theme/light → builtin/common}/mark.d.ts +0 -0
  1007. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/area.d.ts +0 -0
  1008. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/area.js +0 -0
  1009. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/bar.d.ts +0 -0
  1010. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/bar.js +0 -0
  1011. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/bar3d.d.ts +0 -0
  1012. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/bar3d.js +0 -0
  1013. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/box-plot.d.ts +0 -0
  1014. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/box-plot.js +0 -0
  1015. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/circle-packing.d.ts +0 -0
  1016. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/circular-progress.d.ts +0 -0
  1017. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/circular-progress.js +0 -0
  1018. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/dot.d.ts +0 -0
  1019. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/dot.js +0 -0
  1020. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/funnel.d.ts +0 -0
  1021. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/funnel.js +0 -0
  1022. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/funnel3d.d.ts +0 -0
  1023. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/funnel3d.js +0 -0
  1024. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/gauge-pointer.d.ts +0 -0
  1025. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/gauge-pointer.js +0 -0
  1026. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/gauge.d.ts +0 -0
  1027. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/gauge.js +0 -0
  1028. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/heatmap.d.ts +0 -0
  1029. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/heatmap.js +0 -0
  1030. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/index.d.ts +0 -0
  1031. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/index.js +0 -0
  1032. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/line.d.ts +0 -0
  1033. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/line.js +0 -0
  1034. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/linear-progress.d.ts +0 -0
  1035. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/linear-progress.js +0 -0
  1036. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/link.d.ts +0 -0
  1037. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/link.js +0 -0
  1038. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/map.d.ts +0 -0
  1039. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/map.js +0 -0
  1040. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/pie.d.ts +0 -0
  1041. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/pie.js +0 -0
  1042. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/pie3d.d.ts +0 -0
  1043. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/pie3d.js +0 -0
  1044. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/radar.d.ts +0 -0
  1045. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/radar.js +0 -0
  1046. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/rangeColumn.d.ts +0 -0
  1047. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/rose.d.ts +0 -0
  1048. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/rose.js +0 -0
  1049. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/sankey.d.ts +0 -0
  1050. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/sankey.js +0 -0
  1051. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/scatter.d.ts +0 -0
  1052. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/scatter.js +0 -0
  1053. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/sunburst.d.ts +0 -0
  1054. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/treemap.d.ts +0 -0
  1055. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/treemap.js +0 -0
  1056. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/waterfall.d.ts +0 -0
  1057. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/waterfall.js +0 -0
  1058. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/word-cloud.d.ts +0 -0
  1059. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/word-cloud.js +0 -0
  1060. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/word-cloud3d.d.ts +0 -0
  1061. /package/cjs/theme/{buildin-theme/light → builtin/common}/series/word-cloud3d.js +0 -0
  1062. /package/cjs/theme/{buildin-theme/config.d.ts → builtin/constant.d.ts} +0 -0
  1063. /package/cjs/theme/{buildin-theme/light → builtin/dark}/color-scheme.d.ts +0 -0
  1064. /package/{esm/theme/buildin-theme → cjs/theme/builtin}/light/color-scheme.d.ts +0 -0
  1065. /package/cjs/theme/{buildin-theme → builtin}/light/index.d.ts +0 -0
  1066. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/band-axis.js +0 -0
  1067. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/cartesian-axis.d.ts +0 -0
  1068. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/cartesian-axis.js +0 -0
  1069. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/common-axis.d.ts +0 -0
  1070. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/common-axis.js +0 -0
  1071. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/linear-axis.d.ts +0 -0
  1072. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/linear-axis.js +0 -0
  1073. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/log-axis.d.ts +0 -0
  1074. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/log-axis.js +0 -0
  1075. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/polar-axis.d.ts +0 -0
  1076. /package/esm/theme/{buildin-theme/light → builtin/common}/component/axis/polar-axis.js +0 -0
  1077. /package/esm/theme/{buildin-theme/light → builtin/common}/component/brush.d.ts +0 -0
  1078. /package/esm/theme/{buildin-theme/light → builtin/common}/component/brush.js +0 -0
  1079. /package/esm/theme/{buildin-theme/light → builtin/common}/component/crosshair.d.ts +0 -0
  1080. /package/esm/theme/{buildin-theme/light → builtin/common}/component/data-zoom.d.ts +0 -0
  1081. /package/esm/theme/{buildin-theme/light → builtin/common}/component/index.d.ts +0 -0
  1082. /package/esm/theme/{buildin-theme/light → builtin/common}/component/index.js +0 -0
  1083. /package/esm/theme/{buildin-theme/light → builtin/common}/component/indicator.d.ts +0 -0
  1084. /package/esm/theme/{buildin-theme/light → builtin/common}/component/indicator.js +0 -0
  1085. /package/esm/theme/{buildin-theme/light → builtin/common}/component/legend/color-legend.d.ts +0 -0
  1086. /package/esm/theme/{buildin-theme/light → builtin/common}/component/legend/color-legend.js +0 -0
  1087. /package/esm/theme/{buildin-theme/light → builtin/common}/component/legend/continuous.d.ts +0 -0
  1088. /package/esm/theme/{buildin-theme/light → builtin/common}/component/legend/discrete-legend.d.ts +0 -0
  1089. /package/esm/theme/{buildin-theme/light → builtin/common}/component/legend/size-legend.d.ts +0 -0
  1090. /package/esm/theme/{buildin-theme/light → builtin/common}/component/legend/size-legend.js +0 -0
  1091. /package/esm/theme/{buildin-theme/light → builtin/common}/component/map-label.d.ts +0 -0
  1092. /package/esm/theme/{buildin-theme/light → builtin/common}/component/map-label.js +0 -0
  1093. /package/esm/theme/{buildin-theme/light → builtin/common}/component/mark-area.d.ts +0 -0
  1094. /package/esm/theme/{buildin-theme/light → builtin/common}/component/mark-line.d.ts +0 -0
  1095. /package/esm/theme/{buildin-theme/light → builtin/common}/component/mark-point.d.ts +0 -0
  1096. /package/esm/theme/{buildin-theme/light → builtin/common}/component/mark-point.js +0 -0
  1097. /package/esm/theme/{buildin-theme/light → builtin/common}/component/player.d.ts +0 -0
  1098. /package/esm/theme/{buildin-theme/light → builtin/common}/component/poptip.d.ts +0 -0
  1099. /package/esm/theme/{buildin-theme/light → builtin/common}/component/title.d.ts +0 -0
  1100. /package/esm/theme/{buildin-theme/light → builtin/common}/component/tooltip.d.ts +0 -0
  1101. /package/esm/theme/{buildin-theme/light → builtin/common}/component/total-label.d.ts +0 -0
  1102. /package/esm/theme/{buildin-theme/light → builtin/common}/constants.d.ts +0 -0
  1103. /package/esm/theme/{buildin-theme/light → builtin/common}/mark.d.ts +0 -0
  1104. /package/esm/theme/{buildin-theme/light → builtin/common}/series/area.d.ts +0 -0
  1105. /package/esm/theme/{buildin-theme/light → builtin/common}/series/area.js +0 -0
  1106. /package/esm/theme/{buildin-theme/light → builtin/common}/series/bar.d.ts +0 -0
  1107. /package/esm/theme/{buildin-theme/light → builtin/common}/series/bar.js +0 -0
  1108. /package/esm/theme/{buildin-theme/light → builtin/common}/series/bar3d.d.ts +0 -0
  1109. /package/esm/theme/{buildin-theme/light → builtin/common}/series/bar3d.js +0 -0
  1110. /package/esm/theme/{buildin-theme/light → builtin/common}/series/box-plot.d.ts +0 -0
  1111. /package/esm/theme/{buildin-theme/light → builtin/common}/series/box-plot.js +0 -0
  1112. /package/esm/theme/{buildin-theme/light → builtin/common}/series/circle-packing.d.ts +0 -0
  1113. /package/esm/theme/{buildin-theme/light → builtin/common}/series/circular-progress.d.ts +0 -0
  1114. /package/esm/theme/{buildin-theme/light → builtin/common}/series/circular-progress.js +0 -0
  1115. /package/esm/theme/{buildin-theme/light → builtin/common}/series/dot.d.ts +0 -0
  1116. /package/esm/theme/{buildin-theme/light → builtin/common}/series/dot.js +0 -0
  1117. /package/esm/theme/{buildin-theme/light → builtin/common}/series/funnel.d.ts +0 -0
  1118. /package/esm/theme/{buildin-theme/light → builtin/common}/series/funnel.js +0 -0
  1119. /package/esm/theme/{buildin-theme/light → builtin/common}/series/funnel3d.d.ts +0 -0
  1120. /package/esm/theme/{buildin-theme/light → builtin/common}/series/funnel3d.js +0 -0
  1121. /package/esm/theme/{buildin-theme/light → builtin/common}/series/gauge-pointer.d.ts +0 -0
  1122. /package/esm/theme/{buildin-theme/light → builtin/common}/series/gauge-pointer.js +0 -0
  1123. /package/esm/theme/{buildin-theme/light → builtin/common}/series/gauge.d.ts +0 -0
  1124. /package/esm/theme/{buildin-theme/light → builtin/common}/series/gauge.js +0 -0
  1125. /package/esm/theme/{buildin-theme/light → builtin/common}/series/heatmap.d.ts +0 -0
  1126. /package/esm/theme/{buildin-theme/light → builtin/common}/series/heatmap.js +0 -0
  1127. /package/esm/theme/{buildin-theme/light → builtin/common}/series/index.d.ts +0 -0
  1128. /package/esm/theme/{buildin-theme/light → builtin/common}/series/index.js +0 -0
  1129. /package/esm/theme/{buildin-theme/light → builtin/common}/series/line.d.ts +0 -0
  1130. /package/esm/theme/{buildin-theme/light → builtin/common}/series/line.js +0 -0
  1131. /package/esm/theme/{buildin-theme/light → builtin/common}/series/linear-progress.d.ts +0 -0
  1132. /package/esm/theme/{buildin-theme/light → builtin/common}/series/linear-progress.js +0 -0
  1133. /package/esm/theme/{buildin-theme/light → builtin/common}/series/link.d.ts +0 -0
  1134. /package/esm/theme/{buildin-theme/light → builtin/common}/series/link.js +0 -0
  1135. /package/esm/theme/{buildin-theme/light → builtin/common}/series/map.d.ts +0 -0
  1136. /package/esm/theme/{buildin-theme/light → builtin/common}/series/map.js +0 -0
  1137. /package/esm/theme/{buildin-theme/light → builtin/common}/series/pie.d.ts +0 -0
  1138. /package/esm/theme/{buildin-theme/light → builtin/common}/series/pie.js +0 -0
  1139. /package/esm/theme/{buildin-theme/light → builtin/common}/series/pie3d.d.ts +0 -0
  1140. /package/esm/theme/{buildin-theme/light → builtin/common}/series/pie3d.js +0 -0
  1141. /package/esm/theme/{buildin-theme/light → builtin/common}/series/radar.d.ts +0 -0
  1142. /package/esm/theme/{buildin-theme/light → builtin/common}/series/radar.js +0 -0
  1143. /package/esm/theme/{buildin-theme/light → builtin/common}/series/rangeColumn.d.ts +0 -0
  1144. /package/esm/theme/{buildin-theme/light → builtin/common}/series/rose.d.ts +0 -0
  1145. /package/esm/theme/{buildin-theme/light → builtin/common}/series/rose.js +0 -0
  1146. /package/esm/theme/{buildin-theme/light → builtin/common}/series/sankey.d.ts +0 -0
  1147. /package/esm/theme/{buildin-theme/light → builtin/common}/series/sankey.js +0 -0
  1148. /package/esm/theme/{buildin-theme/light → builtin/common}/series/scatter.d.ts +0 -0
  1149. /package/esm/theme/{buildin-theme/light → builtin/common}/series/scatter.js +0 -0
  1150. /package/esm/theme/{buildin-theme/light → builtin/common}/series/sunburst.d.ts +0 -0
  1151. /package/esm/theme/{buildin-theme/light → builtin/common}/series/treemap.d.ts +0 -0
  1152. /package/esm/theme/{buildin-theme/light → builtin/common}/series/treemap.js +0 -0
  1153. /package/esm/theme/{buildin-theme/light → builtin/common}/series/waterfall.d.ts +0 -0
  1154. /package/esm/theme/{buildin-theme/light → builtin/common}/series/waterfall.js +0 -0
  1155. /package/esm/theme/{buildin-theme/light → builtin/common}/series/word-cloud.d.ts +0 -0
  1156. /package/esm/theme/{buildin-theme/light → builtin/common}/series/word-cloud.js +0 -0
  1157. /package/esm/theme/{buildin-theme/light → builtin/common}/series/word-cloud3d.d.ts +0 -0
  1158. /package/esm/theme/{buildin-theme/light → builtin/common}/series/word-cloud3d.js +0 -0
  1159. /package/esm/theme/{buildin-theme/config.d.ts → builtin/constant.d.ts} +0 -0
  1160. /package/esm/theme/{buildin-theme → builtin}/light/index.d.ts +0 -0
@@ -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 { EventCallback, EventParams, EventQuery, EventType, IEvent, IEventDispatcher } 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';\nimport {\n isString,\n isValid,\n isNil,\n array,\n merge,\n createID,\n debounce,\n isTrueBrowser,\n warn,\n error,\n specTransform,\n convertPoint,\n config,\n isMiniAppLikeMode\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 { registerMapSource, getMapSource, unregisterMapSource } 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 IData,\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 { 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 { getContainerSize, isArray, isEmpty, Logger } from '@visactor/vutils';\nimport type { DataLinkAxis, DataLinkSeries, IGlobalConfig, IVChart } from './interface';\nimport { InstanceManager } from './instance-manager';\nimport type { IAxis } from '../component/axis';\nimport { setPoptipTheme } from '@visactor/vrender-components';\nimport { calculateChartSize } from '../chart/util';\nexport class VChart implements IVChart {\n readonly id = createID();\n\n /**\n * 注册图表\n * @param charts 图表类\n */\n static useChart(charts: IChartConstructor[]) {\n charts.forEach(c => Factory.registerChart(c.type, c));\n }\n /**\n * 注册系列\n * @param series 系列类\n */\n static useSeries(series: ISeriesConstructor[]) {\n series.forEach(s => Factory.registerSeries(s.type, s));\n }\n /**\n * 注册组件\n * @param components 组件类\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 registerMapSource(key, source, option);\n }\n\n /**\n * 注销地图数据\n * @param key 地图名称\n */\n static unregisterMap(key: string) {\n unregisterMapSource(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 protected _spec: any;\n\n private _viewBox: IBoundsLike;\n private _chart!: Maybe<IChart>;\n private _compiler: Compiler;\n private _event: Maybe<IEvent>;\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\n private _onError?: (...args: any[]) => void;\n\n private _context: any = {}; // 存放用户在model初始化前通过实例方法传入的配置等\n\n constructor(spec: ISpec, options: IInitOption) {\n this._option = merge(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._currentTheme.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 _initData() {\n if (isNil(this._dataSet)) {\n warn('dataSet is not initialized');\n return;\n }\n const specData: (DataView | IDataValues)[] = array(this._spec.data);\n\n const dataViewArr: DataView[] = [];\n for (let i = 0; i < specData.length; i++) {\n const curSpecData = specData[i];\n dataViewArr.push(\n dataToDataView(curSpecData, <DataSet>this._dataSet, dataViewArr, {\n onError: this._option.onError\n })\n );\n }\n\n this._spec.data = dataViewArr;\n }\n\n private _initChart(spec: any) {\n if (!this._compiler) {\n this._option.onError('compiler is not initialized');\n return;\n }\n this._initData();\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 getTheme: () => this._currentTheme,\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 _onResize = debounce((...args: any[]) => {\n const { width: containerWidth, height: containerHeight } = getContainerSize(\n this._container!,\n DEFAULT_CHART_WIDTH,\n DEFAULT_CHART_HEIGHT\n );\n const width = this._spec.width ?? containerWidth;\n const height = this._spec.height ?? containerHeight;\n if (this._curSize.width !== width || this._curSize.height !== height) {\n this.resize(width, height);\n this._curSize = { width, height };\n }\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\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\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\n // chart 内部事件 模块自己必须删除\n // 外部事件不处理\n // 释放 compiler compiler需要释放吗? 还是释放当前的内容就可以呢\n // VGrammar view 对象不需要释放,提供了reuse和morph能力之后,srView有上下文缓存\n } else {\n // FIXME: 暂时这么处理,还需要整体设计下组件的生命周期\n this.getComponents().forEach(c => c.clear());\n // TODO: 释放事件?\n // 重新绑定事件\n // TODO: 释放XX?\n // 释放 compiler compiler需要释放吗? 还是释放当前的内容就可以呢\n // 先compile\n this._compiler?.compile({ chart: this._chart, vChart: this }, {});\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._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(\n list: { id: string; data: DataView | Datum[]; options?: IParserOptions }[]\n ): Promise<IVChart> {\n if (this._chart) {\n list.forEach(({ id, data, options }) => {\n this._chart.updateData(id, data, false, options);\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 // 没有配置变化 因为数据对象的原因,这里会报错\n // if (specString == JSON.stringify(this._spec)) {\n // return;\n // }\n\n if (forceMerge) {\n spec = merge({}, this._spec, spec);\n }\n\n await this.updateCustomConfigAndRerender(() => {\n spec = specTransform(spec) as any;\n this._spec = spec;\n this._updateCurrentTheme();\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n return this._chart.updateSpec(spec, morphConfig);\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 = merge({}, this._spec, spec);\n }\n\n this.updateCustomConfigAndRerenderSync(() => {\n spec = specTransform(spec) as any;\n this._spec = spec;\n this._updateCurrentTheme();\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n return this._chart.updateSpec(spec, morphConfig);\n }, morphConfig);\n return this as unknown as IVChart;\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\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 this._event?.on(eType as any, query as any, handler as any);\n }\n off(eType: string, handler?: EventCallback<EventParams>): void {\n this._event?.off(eType, handler);\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 /** 当 spec 或者 currentThemeName 有变化时需要调用此方法对 currentTheme 进行更新 */\n private _updateCurrentTheme() {\n if (isString(this._spec?.theme)) {\n this._currentTheme = merge({}, ThemeManager.getTheme(this._spec.theme));\n this._currentThemeName = this._spec.theme;\n } else {\n this._currentTheme = merge({}, ThemeManager.getTheme(this._currentThemeName), this._spec?.theme ?? {});\n }\n // 设置 poptip 的主题\n setPoptipTheme(merge({}, this._currentTheme.component?.poptip));\n // 设置背景色\n this._compiler?.setBackground(this._getBackground());\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._currentTheme.background as string) || this._option.background;\n }\n\n /**\n * 获取当前主题,会返回完整的主题配置\n * */\n getCurrentTheme() {\n return this._currentTheme;\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._currentThemeName = name;\n this._updateCurrentTheme();\n this._chart?.setCurrentTheme(this._currentTheme, 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._currentThemeName = name;\n this._updateCurrentTheme();\n this._chart?.setCurrentTheme(this._currentTheme, 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 /**\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).orient;\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"]}
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 { EventCallback, EventParams, EventQuery, EventType, IEvent, IEventDispatcher } 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';\nimport {\n isString,\n isValid,\n isNil,\n array,\n merge,\n createID,\n debounce,\n isTrueBrowser,\n warn,\n specTransform,\n convertPoint,\n preprocessSpecOrTheme,\n mergeTheme\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 { registerMapSource, getMapSource, unregisterMapSource } 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 IData,\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 { 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 { getContainerSize, isArray, isEmpty, Logger } from '@visactor/vutils';\nimport type { DataLinkAxis, DataLinkSeries, IGlobalConfig, IVChart } from './interface';\nimport { InstanceManager } from './instance-manager';\nimport type { IAxis } from '../component/axis';\nimport { setPoptipTheme } from '@visactor/vrender-components';\nimport { calculateChartSize } from '../chart/util';\nexport class VChart implements IVChart {\n readonly id = createID();\n\n /**\n * 注册图表\n * @param charts 图表类\n */\n static useChart(charts: IChartConstructor[]) {\n charts.forEach(c => Factory.registerChart(c.type, c));\n }\n /**\n * 注册系列\n * @param series 系列类\n */\n static useSeries(series: ISeriesConstructor[]) {\n series.forEach(s => Factory.registerSeries(s.type, s));\n }\n /**\n * 注册组件\n * @param components 组件类\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 registerMapSource(key, source, option);\n }\n\n /**\n * 注销地图数据\n * @param key 地图名称\n */\n static unregisterMap(key: string) {\n unregisterMapSource(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 protected _spec: any;\n\n private _viewBox: IBoundsLike;\n private _chart!: Maybe<IChart>;\n private _compiler: Compiler;\n private _event: Maybe<IEvent>;\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\n private _onError?: (...args: any[]) => void;\n\n private _context: any = {}; // 存放用户在model初始化前通过实例方法传入的配置等\n\n constructor(spec: ISpec, options: IInitOption) {\n this._option = merge(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._currentTheme.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 _initData() {\n if (isNil(this._dataSet)) {\n warn('dataSet is not initialized');\n return;\n }\n const specData: (DataView | IDataValues)[] = array(this._spec.data);\n\n const dataViewArr: DataView[] = [];\n for (let i = 0; i < specData.length; i++) {\n const curSpecData = specData[i];\n dataViewArr.push(\n dataToDataView(curSpecData, <DataSet>this._dataSet, dataViewArr, {\n onError: this._option.onError\n })\n );\n }\n\n this._spec.data = dataViewArr;\n }\n\n private _initChart(spec: any) {\n if (!this._compiler) {\n this._option.onError('compiler is not initialized');\n return;\n }\n this._initData();\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 getTheme: () => this._currentTheme,\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 _onResize = debounce((...args: any[]) => {\n const { width: containerWidth, height: containerHeight } = getContainerSize(\n this._container!,\n DEFAULT_CHART_WIDTH,\n DEFAULT_CHART_HEIGHT\n );\n const width = this._spec.width ?? containerWidth;\n const height = this._spec.height ?? containerHeight;\n if (this._curSize.width !== width || this._curSize.height !== height) {\n this.resize(width, height);\n this._curSize = { width, height };\n }\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\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\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\n // chart 内部事件 模块自己必须删除\n // 外部事件不处理\n // 释放 compiler compiler需要释放吗? 还是释放当前的内容就可以呢\n // VGrammar view 对象不需要释放,提供了reuse和morph能力之后,srView有上下文缓存\n } else {\n // FIXME: 暂时这么处理,还需要整体设计下组件的生命周期\n this.getComponents().forEach(c => c.clear());\n // TODO: 释放事件?\n // 重新绑定事件\n // TODO: 释放XX?\n // 释放 compiler compiler需要释放吗? 还是释放当前的内容就可以呢\n // 先compile\n this._compiler?.compile({ chart: this._chart, vChart: this }, {});\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._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(\n list: { id: string; data: DataView | Datum[]; options?: IParserOptions }[]\n ): Promise<IVChart> {\n if (this._chart) {\n list.forEach(({ id, data, options }) => {\n this._chart.updateData(id, data, false, options);\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 // 没有配置变化 因为数据对象的原因,这里会报错\n // if (specString == JSON.stringify(this._spec)) {\n // return;\n // }\n\n if (forceMerge) {\n spec = merge({}, this._spec, spec);\n }\n\n await this.updateCustomConfigAndRerender(() => {\n spec = specTransform(spec) as any;\n this._spec = spec;\n this._updateCurrentTheme();\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n return this._chart.updateSpec(spec, morphConfig);\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 = merge({}, this._spec, spec);\n }\n\n this.updateCustomConfigAndRerenderSync(() => {\n spec = specTransform(spec) as any;\n this._spec = spec;\n this._updateCurrentTheme();\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n return this._chart.updateSpec(spec, morphConfig);\n }, morphConfig);\n return this as unknown as IVChart;\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\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 this._event?.on(eType as any, query as any, handler as any);\n }\n off(eType: string, handler?: EventCallback<EventParams>): void {\n this._event?.off(eType, handler);\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 /** 当 spec 或者 currentThemeName 有变化时需要调用此方法对 currentTheme 进行更新 */\n private _updateCurrentTheme() {\n if (isString(this._spec?.theme)) {\n const theme = mergeTheme({}, ThemeManager.getTheme(this._spec.theme));\n this._currentTheme = preprocessSpecOrTheme(theme, theme.colorScheme);\n this._currentThemeName = this._spec.theme;\n } else {\n const theme = mergeTheme({}, ThemeManager.getTheme(this._currentThemeName), this._spec?.theme ?? {});\n this._currentTheme = preprocessSpecOrTheme(theme, theme.colorScheme);\n }\n // 设置 poptip 的主题\n setPoptipTheme(merge({}, this._currentTheme.component?.poptip));\n // 设置背景色\n this._compiler?.setBackground(this._getBackground());\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._currentTheme.background as string) || this._option.background;\n }\n\n /**\n * 获取当前主题,会返回完整的主题配置\n * */\n getCurrentTheme() {\n return this._currentTheme;\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._currentThemeName = name;\n this._updateCurrentTheme();\n this._chart?.setCurrentTheme(this._currentTheme, 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._currentThemeName = name;\n this._updateCurrentTheme();\n this._chart?.setCurrentTheme(this._currentTheme, 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 /**\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).orient;\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"]}
@@ -1,5 +1,5 @@
1
1
  import type { BaseSeries } from '../../series/base/base-series';
2
- import type { TreeMapSeries } from '../../series/treemap/treemap';
2
+ import type { TreemapSeries } from '../../series/treemap/treemap';
3
3
  import type { AddVChartPropertyContext } from './add-property';
4
4
  import type { SunburstSeries } from '../../series/sunburst/sunburst';
5
5
  import type { CirclePackingSeries } from '../../series/circle-packing/circle-packing';
@@ -7,4 +7,4 @@ export declare const initKeyMap: () => {
7
7
  keyMap: Map<any, any>;
8
8
  };
9
9
  export declare function addDataKey(this: BaseSeries<any>, d: any, i: number, context: AddVChartPropertyContext): void;
10
- export declare function addHierarchyDataKey(this: TreeMapSeries | SunburstSeries | CirclePackingSeries, d: any, i: number, context: AddVChartPropertyContext, depth?: number, root?: string, rootIndex?: number): void;
10
+ export declare function addHierarchyDataKey(this: TreemapSeries | SunburstSeries | CirclePackingSeries, d: any, i: number, context: AddVChartPropertyContext, depth?: number, root?: string, rootIndex?: number): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/data-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAIjG,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,0BAA0B,CAAC;AAIlC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAwB,CAAM,EAAE,CAAS,EAAE,OAAiC;IACpG,IAAI,CAAC,CAAC,EAAE;QACN,OAAO;KACR;IACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;QACtB,CAAC,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;KACxD;IACD,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAEjC,CAAM,EACN,CAAS,EACT,OAAiC,EACjC,QAAgB,CAAC,EACjB,IAAa,EACb,SAAkB;IAElB,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,SAAS,GAAG,CAAC,CAAC;KACf;IACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,uBAAuB,CAAC,GAAG,KAAK,CAAC;IACnC,CAAC,CAAC,sBAAsB,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,4BAA4B,CAAC,GAAG,SAAS,CAAC;IAC5C,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;QACnC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAU,EAAE,EAAE,CACzC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,EAAE,EACF,EAAE,EACF,OAAO,EACP,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAC9B,CAAC,CAAC,sBAAsB,CAAC,EACzB,SAAS,CACV,CACF,CAAC;KACH;AACH,CAAC","file":"data-key.js","sourcesContent":["import { DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD } from '../../constant';\nimport type { BaseSeries } from '../../series/base/base-series';\nimport type { TreeMapSeries } from '../../series/treemap/treemap';\nimport type { AddVChartPropertyContext } from './add-property';\nimport {\n DEFAULT_HIERARCHY_DEPTH,\n DEFAULT_HIERARCHY_ROOT,\n DEFAULT_HIERARCHY_ROOT_INDEX\n} from '../../constant/hierarchy';\nimport type { SunburstSeries } from '../../series/sunburst/sunburst';\nimport type { CirclePackingSeries } from '../../series/circle-packing/circle-packing';\n\nexport const initKeyMap = () => {\n return { keyMap: new Map() };\n};\n\nexport function addDataKey(this: BaseSeries<any>, d: any, i: number, context: AddVChartPropertyContext) {\n if (!d) {\n return;\n }\n if (!this._seriesField) {\n d[DEFAULT_DATA_SERIES_FIELD] = this.getSeriesKeys()[0];\n }\n d[DEFAULT_DATA_INDEX] = i;\n d[DEFAULT_DATA_KEY] = this.generateDefaultDataKey(this._spec.dataKey, d, i, context);\n}\n\nexport function addHierarchyDataKey(\n this: TreeMapSeries | SunburstSeries | CirclePackingSeries,\n d: any,\n i: number,\n context: AddVChartPropertyContext,\n depth: number = 0,\n root?: string,\n rootIndex?: number\n) {\n if (rootIndex === undefined) {\n rootIndex = i;\n }\n addDataKey.bind(this)(d, i, context);\n d[DEFAULT_HIERARCHY_DEPTH] = depth;\n d[DEFAULT_HIERARCHY_ROOT] = root || d[this.getCategoryField()];\n d[DEFAULT_HIERARCHY_ROOT_INDEX] = rootIndex;\n if (d.children && d.children.length) {\n d.children.forEach((_d: any, _i: number) =>\n addHierarchyDataKey.bind(this)(\n _d,\n _i,\n context,\n d[DEFAULT_HIERARCHY_DEPTH] + 1,\n d[DEFAULT_HIERARCHY_ROOT],\n rootIndex\n )\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/data-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAIjG,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,0BAA0B,CAAC;AAIlC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAwB,CAAM,EAAE,CAAS,EAAE,OAAiC;IACpG,IAAI,CAAC,CAAC,EAAE;QACN,OAAO;KACR;IACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;QACtB,CAAC,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;KACxD;IACD,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAEjC,CAAM,EACN,CAAS,EACT,OAAiC,EACjC,QAAgB,CAAC,EACjB,IAAa,EACb,SAAkB;IAElB,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,SAAS,GAAG,CAAC,CAAC;KACf;IACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,uBAAuB,CAAC,GAAG,KAAK,CAAC;IACnC,CAAC,CAAC,sBAAsB,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,4BAA4B,CAAC,GAAG,SAAS,CAAC;IAC5C,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;QACnC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAU,EAAE,EAAE,CACzC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,EAAE,EACF,EAAE,EACF,OAAO,EACP,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAC9B,CAAC,CAAC,sBAAsB,CAAC,EACzB,SAAS,CACV,CACF,CAAC;KACH;AACH,CAAC","file":"data-key.js","sourcesContent":["import { DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY, DEFAULT_DATA_SERIES_FIELD } from '../../constant';\nimport type { BaseSeries } from '../../series/base/base-series';\nimport type { TreemapSeries } from '../../series/treemap/treemap';\nimport type { AddVChartPropertyContext } from './add-property';\nimport {\n DEFAULT_HIERARCHY_DEPTH,\n DEFAULT_HIERARCHY_ROOT,\n DEFAULT_HIERARCHY_ROOT_INDEX\n} from '../../constant/hierarchy';\nimport type { SunburstSeries } from '../../series/sunburst/sunburst';\nimport type { CirclePackingSeries } from '../../series/circle-packing/circle-packing';\n\nexport const initKeyMap = () => {\n return { keyMap: new Map() };\n};\n\nexport function addDataKey(this: BaseSeries<any>, d: any, i: number, context: AddVChartPropertyContext) {\n if (!d) {\n return;\n }\n if (!this._seriesField) {\n d[DEFAULT_DATA_SERIES_FIELD] = this.getSeriesKeys()[0];\n }\n d[DEFAULT_DATA_INDEX] = i;\n d[DEFAULT_DATA_KEY] = this.generateDefaultDataKey(this._spec.dataKey, d, i, context);\n}\n\nexport function addHierarchyDataKey(\n this: TreemapSeries | SunburstSeries | CirclePackingSeries,\n d: any,\n i: number,\n context: AddVChartPropertyContext,\n depth: number = 0,\n root?: string,\n rootIndex?: number\n) {\n if (rootIndex === undefined) {\n rootIndex = i;\n }\n addDataKey.bind(this)(d, i, context);\n d[DEFAULT_HIERARCHY_DEPTH] = depth;\n d[DEFAULT_HIERARCHY_ROOT] = root || d[this.getCategoryField()];\n d[DEFAULT_HIERARCHY_ROOT_INDEX] = rootIndex;\n if (d.children && d.children.length) {\n d.children.forEach((_d: any, _i: number) =>\n addHierarchyDataKey.bind(this)(\n _d,\n _i,\n context,\n d[DEFAULT_HIERARCHY_DEPTH] + 1,\n d[DEFAULT_HIERARCHY_ROOT],\n rootIndex\n )\n );\n }\n}\n"]}
@@ -9,7 +9,7 @@ import type { CompilableData } from '../compile/data/compilable-data';
9
9
  import { ModelStateManager } from './model-state-manager';
10
10
  import type { IElement, IGroupMark, IMark as IVGrammarMark } from '@visactor/vgrammar';
11
11
  import { MarkSet } from '../mark/mark-set';
12
- export declare abstract class BaseModel extends LayoutItem implements IModel {
12
+ export declare abstract class BaseModel<T extends IModelSpec> extends LayoutItem<T> implements IModel {
13
13
  readonly type: string;
14
14
  readonly modelType: string;
15
15
  readonly id: number;
@@ -18,8 +18,6 @@ export declare abstract class BaseModel extends LayoutItem implements IModel {
18
18
  readonly effect: IEffect;
19
19
  protected _data: CompilableData;
20
20
  getData(): CompilableData;
21
- protected _spec: any;
22
- getSpec(): any;
23
21
  protected _specIndex: number;
24
22
  getSpecIndex(): number;
25
23
  readonly specKey: string;
@@ -43,7 +41,7 @@ export declare abstract class BaseModel extends LayoutItem implements IModel {
43
41
  protected _tooltipHelper: ITooltipHelper | undefined;
44
42
  get tooltipHelper(): ITooltipHelper;
45
43
  protected _isLayout: boolean;
46
- constructor(spec: IModelSpec, option: IModelOption);
44
+ constructor(spec: T, option: IModelOption);
47
45
  coordinate?: CoordinateType;
48
46
  protected _releaseEvent(): void;
49
47
  created(): void;
@@ -68,6 +66,8 @@ export declare abstract class BaseModel extends LayoutItem implements IModel {
68
66
  reInit(theme?: any): void;
69
67
  protected _initTheme(theme?: any): void;
70
68
  protected _mergeMarkTheme(): void;
69
+ protected _mergeThemeToSpec(): void;
70
+ protected _getDefaultSpecFromChart(chartSpec: any): Partial<T>;
71
71
  protected _preprocessSpec(obj?: any): any;
72
72
  setCurrentTheme(theme: any, noRender?: boolean): void;
73
73
  updateLayoutAttribute(): void;
@@ -1,4 +1,4 @@
1
- import { createID, isValid, cloneDeepSpec } from "../util";
1
+ import { createID, isValid, cloneDeepSpec, preprocessSpecOrTheme } from "../util";
2
2
 
3
3
  import { Event } from "../event/event";
4
4
 
@@ -8,21 +8,16 @@ import { ModelStateManager } from "./model-state-manager";
8
8
 
9
9
  import { PREFIX } from "../constant";
10
10
 
11
- import { array, isArray, isEqual, isFunction, isNil, isObject, merge } from "@visactor/vutils";
11
+ import { array, isEqual, isNil, merge } from "@visactor/vutils";
12
12
 
13
13
  import { Factory } from "../core/factory";
14
14
 
15
- import { getActualColor, isColorKey } from "../theme/color-scheme/util";
16
-
17
15
  import { MarkSet } from "../mark/mark-set";
18
16
 
19
17
  export class BaseModel extends LayoutItem {
20
18
  getData() {
21
19
  return this._data;
22
20
  }
23
- getSpec() {
24
- return this._spec;
25
- }
26
21
  getSpecIndex() {
27
22
  return this._specIndex;
28
23
  }
@@ -95,7 +90,7 @@ export class BaseModel extends LayoutItem {
95
90
  onDataUpdate() {}
96
91
  release() {
97
92
  var _a;
98
- this._releaseEvent(), this._originalSpec = {}, this._spec = {}, this.getMarks().forEach((m => m.release())),
93
+ this._releaseEvent(), this._originalSpec = {}, this._spec = void 0, this.getMarks().forEach((m => m.release())),
99
94
  this.state.release(), null === (_a = this._data) || void 0 === _a || _a.release(),
100
95
  this._data = this._specIndex = this._sceneNodeMap = null, this._marks.clear(), super.release();
101
96
  }
@@ -126,15 +121,18 @@ export class BaseModel extends LayoutItem {
126
121
  this._theme[name] = merge({}, null !== (_a = null == markThemeByType ? void 0 : markThemeByType[array(type)[0]]) && void 0 !== _a ? _a : {}, null !== (_b = null == markThemeByName ? void 0 : markThemeByName[name]) && void 0 !== _b ? _b : {}, this._theme[name]);
127
122
  }));
128
123
  }
124
+ _mergeThemeToSpec() {
125
+ const chartSpec = this.getChart().getSpec();
126
+ this._spec = merge({}, this._theme, this._getDefaultSpecFromChart(chartSpec), this._originalSpec);
127
+ }
128
+ _getDefaultSpecFromChart(chartSpec) {
129
+ return {};
130
+ }
129
131
  _preprocessSpec(obj) {
130
- if (arguments.length || (obj = this._spec), isArray(obj)) return obj.map((element => isObject(element) && !isFunction(element) ? this._preprocessSpec(element) : element));
131
- const newObj = Object.assign({}, obj);
132
- return Object.keys(newObj).forEach((key => {
133
- var _a, _b, _c;
134
- if (key.includes("data")) return;
135
- const value = obj[key];
136
- isObject(value) && !isFunction(value) && (isColorKey(value) ? newObj[key] = getActualColor(value, null === (_c = null === (_b = (_a = this._option).getTheme) || void 0 === _b ? void 0 : _b.call(_a)) || void 0 === _c ? void 0 : _c.colorScheme, "series" === this.modelType ? this.type : void 0) : newObj[key] = this._preprocessSpec(value));
137
- })), arguments.length || (this._spec = newObj), newObj;
132
+ var _a, _b, _c;
133
+ arguments.length || (obj = this._spec);
134
+ const newObj = preprocessSpecOrTheme(obj, null === (_c = null === (_b = (_a = this._option).getTheme) || void 0 === _b ? void 0 : _b.call(_a)) || void 0 === _c ? void 0 : _c.colorScheme, "series" === this.modelType ? this.type : void 0);
135
+ return arguments.length || (this._spec = newObj), newObj;
138
136
  }
139
137
  setCurrentTheme(theme, noRender) {}
140
138
  updateLayoutAttribute() {}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model/base-model.ts"],"names":[],"mappings":"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","file":"base-model.js","sourcesContent":["import { createID, isValid, cloneDeepSpec } from '../util';\nimport { Event } from '../event/event';\nimport type { IEvent } from '../event/interface';\nimport { LayoutItem } from './layout-item';\nimport type {\n IEffect,\n IModel,\n IModelInitOption,\n IModelOption,\n IModelRenderOption,\n IModelEvaluateOption,\n IModelSpec,\n ILayoutRect,\n IModelMarkInfo\n} from './interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IMark, IMarkOption, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { Datum, StateValueType, ConvertToMarkStyleSpec, ICommonSpec, StringOrNumber, IRect } from '../typings';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { CompilableData } from '../compile/data/compilable-data';\nimport { ModelStateManager } from './model-state-manager';\nimport { PREFIX } from '../constant';\nimport type { IElement, IGroupMark, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport { array, isArray, isEqual, isFunction, isNil, isObject, merge } from '@visactor/vutils';\nimport { Factory } from '../core/factory';\nimport { getActualColor, isColorKey } from '../theme/color-scheme/util';\nimport type { SeriesTypeEnum } from '../series/interface';\nimport { MarkSet } from '../mark/mark-set';\n\nexport abstract class BaseModel extends LayoutItem implements IModel {\n readonly type: string = 'null';\n readonly modelType: string = 'null';\n\n readonly id;\n\n userId: StringOrNumber | undefined = undefined;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // 数据\n protected _data: CompilableData = null;\n getData() {\n return this._data;\n }\n\n protected declare _spec: any;\n getSpec(): any {\n return this._spec;\n }\n\n protected _specIndex: number = 0;\n getSpecIndex() {\n return this._specIndex;\n }\n\n readonly specKey: string = '';\n\n protected _originalSpec: any;\n\n protected declare _option: IModelOption;\n getOption() {\n return this._option;\n }\n\n protected _sceneNodeMap: Map<string, IElement>;\n\n protected _marks: MarkSet = new MarkSet();\n getMarks(): IMark[] {\n return this._marks?.getMarks() ?? [];\n }\n getMarkNameMap() {\n return this._marks?.getMarkNameMap();\n }\n getMarkSet() {\n return this._marks;\n }\n getMarkInfoList(): IModelMarkInfo[] {\n return this.getMarks().map(mark => ({\n type: mark.type as MarkTypeEnum,\n name: mark.name\n }));\n }\n\n getChart() {\n return this._option.getChart();\n }\n\n /** 状态管理器 */\n state: ModelStateManager;\n getState() {\n return this.state._stateMap;\n }\n\n protected _theme?: any; // 非全局 theme,是对应于具体 model 的 theme 对象\n\n /** for layout diff */\n protected _lastLayoutRect: ILayoutRect = null;\n\n protected _tooltipHelper: ITooltipHelper | undefined;\n get tooltipHelper() {\n return this._tooltipHelper;\n }\n\n // TODO: 有些hack,这个tag是为了避免布局逻辑中,轴的数据变化,又由数据变化触发重新布局\n protected _isLayout: boolean = true;\n\n constructor(spec: IModelSpec, option: IModelOption) {\n super(option);\n this.id = createID();\n this._originalSpec = spec;\n this._spec = cloneDeepSpec(spec);\n this.userId = spec.id;\n this._specIndex = option.specIndex ?? 0;\n this.specKey = option.specKey ?? '';\n this.effect = {};\n this.event = new Event(option.eventDispatcher, option.mode);\n option.map?.set(this.id, this);\n this._sceneNodeMap = new Map();\n this.state = new ModelStateManager({\n ...option,\n stateKeyToSignalName: this.stateKeyToSignalName.bind(this)\n });\n }\n coordinate?: CoordinateType;\n\n protected _releaseEvent() {\n this.event.release();\n }\n\n created() {\n this._initTheme();\n this.setAttrFromSpec();\n }\n\n updateState(newState: Record<string, unknown>) {\n return this.state.updateState(newState);\n }\n\n init(option: IModelInitOption) {\n // do nothing\n }\n\n afterInit() {\n // do nothing\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void {\n super.onLayoutStart(layoutRect, viewRect, ctx);\n this._isLayout = true;\n }\n onLayoutEnd(ctx: any): void {\n // diff layoutRect\n const layoutRect = this.getLayoutRect();\n if (this._forceLayoutTag || !isEqual(this._lastLayoutRect, layoutRect)) {\n this.updateLayoutAttribute();\n }\n this._forceLayoutTag = false;\n this.getMarks().forEach(m => m.updateLayoutState(true, true));\n this._isLayout = false;\n }\n\n protected _forceLayout() {\n if (this._isLayout) {\n return;\n }\n this._forceLayoutTag = true;\n this._option.globalInstance.getChart()?.setLayoutTag(true);\n }\n\n onEvaluateEnd(ctx: IModelEvaluateOption) {\n // do nothing\n }\n abstract onRender(ctx: IModelRenderOption): void;\n\n onDataUpdate() {\n // do nothing\n }\n\n release() {\n this._releaseEvent();\n this._originalSpec = {};\n this._spec = {};\n this.getMarks().forEach(m => m.release());\n this.state.release();\n this._data?.release();\n this._data = this._specIndex = this._sceneNodeMap = null;\n this._marks.clear();\n super.release();\n }\n\n updateSpec(spec: any) {\n this._originalSpec = spec;\n this._spec = cloneDeepSpec(spec);\n const result = {\n change: false,\n reMake: false,\n reMakeData: false,\n reRender: false,\n reSize: false,\n reCompile: false\n };\n return result;\n }\n\n reInit(theme?: any) {\n this._initTheme(theme);\n this.setAttrFromSpec();\n }\n\n protected _initTheme(theme?: any) {\n this._theme = theme;\n\n this._mergeMarkTheme();\n }\n\n /** 将全局的 mark theme 合并进 model theme */\n protected _mergeMarkTheme() {\n const globalTheme = this._option.getTheme?.();\n if (isNil(globalTheme) || isNil(this._theme)) {\n return;\n }\n\n const { mark: markThemeByType, markByName: markThemeByName } = globalTheme;\n this.getMarkInfoList().forEach(({ type, name }) => {\n this._theme[name] = merge(\n {},\n markThemeByType?.[array(type)[0]] ?? {},\n markThemeByName?.[name] ?? {},\n this._theme[name]\n );\n });\n }\n\n /** 对 spec 进行遍历和转换 */\n protected _preprocessSpec(obj?: any): any {\n if (!arguments.length) {\n obj = this._spec;\n }\n\n if (isArray(obj)) {\n return obj.map(element => {\n if (isObject(element) && !isFunction(element)) {\n return this._preprocessSpec(element);\n }\n return element;\n });\n }\n const newObj = { ...obj };\n Object.keys(newObj).forEach(key => {\n // 绕过 DataView 对象\n if (key.includes('data')) {\n return;\n }\n const value = obj[key];\n if (isObject(value) && !isFunction(value)) {\n // 查询、替换语义化颜色\n if (isColorKey(value)) {\n newObj[key] = getActualColor(\n value,\n this._option.getTheme?.()?.colorScheme,\n this.modelType === 'series' ? (this.type as SeriesTypeEnum) : undefined\n );\n } else {\n newObj[key] = this._preprocessSpec(value);\n }\n }\n });\n\n if (!arguments.length) {\n this._spec = newObj;\n }\n return newObj;\n }\n\n setCurrentTheme(theme: any, noRender?: boolean) {\n // do nothing\n }\n\n updateLayoutAttribute() {\n // do nothing\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec(this._spec, this._option.getChartViewRect());\n }\n\n /** mark style 内部转换逻辑,override 使用 */\n protected _convertMarkStyle<T extends ICommonSpec = ICommonSpec>(\n style: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>\n ): Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>> {\n const newStyle: any = { ...style };\n return newStyle;\n }\n\n setMarkStyle<T extends ICommonSpec>(\n mark: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) {\n if (!isValid(mark) || !isValid(style)) {\n return;\n }\n mark.setStyle(this._convertMarkStyle(style), state, level);\n }\n\n initMarkStyleWithSpec(mark?: IMark, spec?: any, key?: string) {\n if (!isValid(mark) || !isValid(spec)) {\n return;\n }\n const { style, state } = spec;\n const newSpec = { ...spec };\n\n if (style) {\n newSpec.style = this._convertMarkStyle(style);\n }\n if (state) {\n newSpec.state = {};\n Object.keys(state).forEach(key => {\n newSpec.state[key] = this._convertMarkStyle(state[key]);\n });\n }\n mark.initStyleWithSpec(newSpec, key);\n }\n\n protected stateKeyToSignalName(key: string, opt?: string) {\n let name = `${PREFIX}_${this.modelType}_${this.type}_${this.id}_${key}`;\n opt && (name += `_${opt}`);\n return name;\n }\n\n compileData() {\n this._data?.compile();\n }\n\n compileMarks(group?: string | IGroupMark) {\n this.getMarks().forEach(m => {\n m.compile({ group });\n });\n }\n\n compileSignal() {\n this.state?.compile();\n }\n\n bindSceneNode(node: IElement) {\n this._sceneNodeMap.set(node.mark.id(), node as IElement);\n }\n\n getSceneNodes() {\n return Array.from(this._sceneNodeMap.values());\n }\n\n getSceneNodeMarks() {\n return this.getSceneNodes().map(node => node.mark as IVGrammarMark);\n }\n\n protected _createMark<T extends IMark>(markInfo: IModelMarkInfo, option: Partial<IMarkOption> = {}): T {\n const { type, name } = markInfo;\n const m = Factory.createMark(type as any, name, {\n model: this,\n map: this._option.map,\n getCompiler: this.getCompiler,\n globalScale: this._option.globalScale,\n ...option\n }) as T;\n m?.created();\n return m;\n }\n\n /**\n * 数据唯一ID\n * 根据自身动画数据匹配需求设置返回值。\n * 默认返回 undefined 时,根据 VGrammar 默认数据 ID 进行索引和匹配。\n */\n protected _getDataIdKey(): string | ((datum: Datum) => string) | undefined {\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/model/base-model.ts"],"names":[],"mappings":"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","file":"base-model.js","sourcesContent":["import { createID, isValid, cloneDeepSpec, preprocessSpecOrTheme } from '../util';\nimport { Event } from '../event/event';\nimport type { IEvent } from '../event/interface';\nimport { LayoutItem } from './layout-item';\nimport type {\n IEffect,\n IModel,\n IModelInitOption,\n IModelOption,\n IModelRenderOption,\n IModelEvaluateOption,\n IModelSpec,\n ILayoutRect,\n IModelMarkInfo\n} from './interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IMark, IMarkOption, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { Datum, StateValueType, ConvertToMarkStyleSpec, ICommonSpec, StringOrNumber, IRect } from '../typings';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { CompilableData } from '../compile/data/compilable-data';\nimport { ModelStateManager } from './model-state-manager';\nimport { PREFIX } from '../constant';\nimport type { IElement, IGroupMark, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport { array, isEqual, isNil, merge } from '@visactor/vutils';\nimport { Factory } from '../core/factory';\nimport type { SeriesTypeEnum } from '../series/interface';\nimport { MarkSet } from '../mark/mark-set';\n\nexport abstract class BaseModel<T extends IModelSpec> extends LayoutItem<T> implements IModel {\n readonly type: string = 'null';\n readonly modelType: string = 'null';\n\n readonly id;\n\n userId: StringOrNumber | undefined = undefined;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // 数据\n protected _data: CompilableData = null;\n getData() {\n return this._data;\n }\n\n protected _specIndex: number = 0;\n getSpecIndex() {\n return this._specIndex;\n }\n\n readonly specKey: string = '';\n\n protected _originalSpec: any;\n\n protected declare _option: IModelOption;\n getOption() {\n return this._option;\n }\n\n protected _sceneNodeMap: Map<string, IElement>;\n\n protected _marks: MarkSet = new MarkSet();\n getMarks(): IMark[] {\n return this._marks?.getMarks() ?? [];\n }\n getMarkNameMap() {\n return this._marks?.getMarkNameMap();\n }\n getMarkSet() {\n return this._marks;\n }\n getMarkInfoList(): IModelMarkInfo[] {\n return this.getMarks().map(mark => ({\n type: mark.type as MarkTypeEnum,\n name: mark.name\n }));\n }\n\n getChart() {\n return this._option.getChart();\n }\n\n /** 状态管理器 */\n state: ModelStateManager;\n getState() {\n return this.state._stateMap;\n }\n\n protected _theme?: any; // 非全局 theme,是对应于具体 model 的 theme 对象\n\n /** for layout diff */\n protected _lastLayoutRect: ILayoutRect = null;\n\n protected _tooltipHelper: ITooltipHelper | undefined;\n get tooltipHelper() {\n return this._tooltipHelper;\n }\n\n // TODO: 有些hack,这个tag是为了避免布局逻辑中,轴的数据变化,又由数据变化触发重新布局\n protected _isLayout: boolean = true;\n\n constructor(spec: T, option: IModelOption) {\n super(option);\n this.id = createID();\n this._originalSpec = spec;\n this._spec = cloneDeepSpec(spec);\n this.userId = spec.id;\n this._specIndex = option.specIndex ?? 0;\n this.specKey = option.specKey ?? '';\n this.effect = {};\n this.event = new Event(option.eventDispatcher, option.mode);\n option.map?.set(this.id, this);\n this._sceneNodeMap = new Map();\n this.state = new ModelStateManager({\n ...option,\n stateKeyToSignalName: this.stateKeyToSignalName.bind(this)\n });\n }\n coordinate?: CoordinateType;\n\n protected _releaseEvent() {\n this.event.release();\n }\n\n created() {\n this._initTheme();\n this.setAttrFromSpec();\n }\n\n updateState(newState: Record<string, unknown>) {\n return this.state.updateState(newState);\n }\n\n init(option: IModelInitOption) {\n // do nothing\n }\n\n afterInit() {\n // do nothing\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void {\n super.onLayoutStart(layoutRect, viewRect, ctx);\n this._isLayout = true;\n }\n onLayoutEnd(ctx: any): void {\n // diff layoutRect\n const layoutRect = this.getLayoutRect();\n if (this._forceLayoutTag || !isEqual(this._lastLayoutRect, layoutRect)) {\n this.updateLayoutAttribute();\n }\n this._forceLayoutTag = false;\n this.getMarks().forEach(m => m.updateLayoutState(true, true));\n this._isLayout = false;\n }\n\n protected _forceLayout() {\n if (this._isLayout) {\n return;\n }\n this._forceLayoutTag = true;\n this._option.globalInstance.getChart()?.setLayoutTag(true);\n }\n\n onEvaluateEnd(ctx: IModelEvaluateOption) {\n // do nothing\n }\n abstract onRender(ctx: IModelRenderOption): void;\n\n onDataUpdate() {\n // do nothing\n }\n\n release() {\n this._releaseEvent();\n this._originalSpec = {};\n this._spec = undefined;\n this.getMarks().forEach(m => m.release());\n this.state.release();\n this._data?.release();\n this._data = this._specIndex = this._sceneNodeMap = null;\n this._marks.clear();\n super.release();\n }\n\n updateSpec(spec: any) {\n this._originalSpec = spec;\n this._spec = cloneDeepSpec(spec);\n const result = {\n change: false,\n reMake: false,\n reMakeData: false,\n reRender: false,\n reSize: false,\n reCompile: false\n };\n return result;\n }\n\n reInit(theme?: any) {\n this._initTheme(theme);\n this.setAttrFromSpec();\n }\n\n protected _initTheme(theme?: any) {\n this._theme = theme;\n\n this._mergeMarkTheme();\n }\n\n /** 将全局的 mark theme 合并进 model theme */\n protected _mergeMarkTheme() {\n const globalTheme = this._option.getTheme?.();\n if (isNil(globalTheme) || isNil(this._theme)) {\n return;\n }\n\n const { mark: markThemeByType, markByName: markThemeByName } = globalTheme;\n this.getMarkInfoList().forEach(({ type, name }) => {\n this._theme[name] = merge(\n {},\n markThemeByType?.[array(type)[0]] ?? {},\n markThemeByName?.[name] ?? {},\n this._theme[name]\n );\n });\n }\n\n /** 将 theme merge 到 spec 中 */\n protected _mergeThemeToSpec() {\n const chartSpec = this.getChart().getSpec();\n this._spec = merge({}, this._theme, this._getDefaultSpecFromChart(chartSpec), this._originalSpec);\n }\n\n /** 从 chart spec 提取配置作为 model 的默认 spec 配置 */\n protected _getDefaultSpecFromChart(chartSpec: any): Partial<T> {\n return {};\n }\n\n /** 对 spec 进行遍历和转换 */\n protected _preprocessSpec(obj?: any): any {\n if (!arguments.length) {\n obj = this._spec;\n }\n\n const newObj = preprocessSpecOrTheme(\n obj,\n this._option.getTheme?.()?.colorScheme,\n this.modelType === 'series' ? (this.type as SeriesTypeEnum) : undefined\n );\n\n if (!arguments.length) {\n this._spec = newObj;\n }\n return newObj;\n }\n\n setCurrentTheme(theme: any, noRender?: boolean) {\n // do nothing\n }\n\n updateLayoutAttribute() {\n // do nothing\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec(this._spec, this._option.getChartViewRect());\n }\n\n /** mark style 内部转换逻辑,override 使用 */\n protected _convertMarkStyle<T extends ICommonSpec = ICommonSpec>(\n style: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>\n ): Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>> {\n const newStyle: any = { ...style };\n return newStyle;\n }\n\n setMarkStyle<T extends ICommonSpec>(\n mark: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) {\n if (!isValid(mark) || !isValid(style)) {\n return;\n }\n mark.setStyle(this._convertMarkStyle(style), state, level);\n }\n\n initMarkStyleWithSpec(mark?: IMark, spec?: any, key?: string) {\n if (!isValid(mark) || !isValid(spec)) {\n return;\n }\n const { style, state } = spec;\n const newSpec = { ...spec };\n\n if (style) {\n newSpec.style = this._convertMarkStyle(style);\n }\n if (state) {\n newSpec.state = {};\n Object.keys(state).forEach(key => {\n newSpec.state[key] = this._convertMarkStyle(state[key]);\n });\n }\n mark.initStyleWithSpec(newSpec, key);\n }\n\n protected stateKeyToSignalName(key: string, opt?: string) {\n let name = `${PREFIX}_${this.modelType}_${this.type}_${this.id}_${key}`;\n opt && (name += `_${opt}`);\n return name;\n }\n\n compileData() {\n this._data?.compile();\n }\n\n compileMarks(group?: string | IGroupMark) {\n this.getMarks().forEach(m => {\n m.compile({ group });\n });\n }\n\n compileSignal() {\n this.state?.compile();\n }\n\n bindSceneNode(node: IElement) {\n this._sceneNodeMap.set(node.mark.id(), node as IElement);\n }\n\n getSceneNodes() {\n return Array.from(this._sceneNodeMap.values());\n }\n\n getSceneNodeMarks() {\n return this.getSceneNodes().map(node => node.mark as IVGrammarMark);\n }\n\n protected _createMark<T extends IMark>(markInfo: IModelMarkInfo, option: Partial<IMarkOption> = {}): T {\n const { type, name } = markInfo;\n const m = Factory.createMark(type as any, name, {\n model: this,\n map: this._option.map,\n getCompiler: this.getCompiler,\n globalScale: this._option.globalScale,\n ...option\n }) as T;\n m?.created();\n return m;\n }\n\n /**\n * 数据唯一ID\n * 根据自身动画数据匹配需求设置返回值。\n * 默认返回 undefined 时,根据 VGrammar 默认数据 ID 进行索引和匹配。\n */\n protected _getDataIdKey(): string | ((datum: Datum) => string) | undefined {\n return undefined;\n }\n}\n"]}
@@ -72,6 +72,7 @@ export interface ILayoutItemSpec {
72
72
  layoutLevel?: number;
73
73
  orient?: IOrientType;
74
74
  padding?: ILayoutPaddingSpec;
75
+ noOuterPadding?: boolean;
75
76
  width?: ILayoutNumber;
76
77
  maxWidth?: ILayoutNumber;
77
78
  minWidth?: ILayoutNumber;