@visactor/vchart 1.6.7 → 1.7.0-alpha.1

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 (993) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +44570 -43966
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.d.ts +2 -2
  6. package/cjs/chart/area/area.js +2 -1
  7. package/cjs/chart/area/area.js.map +1 -1
  8. package/cjs/chart/base-chart.d.ts +13 -16
  9. package/cjs/chart/base-chart.js +68 -68
  10. package/cjs/chart/base-chart.js.map +1 -1
  11. package/cjs/chart/interface/chart.d.ts +4 -6
  12. package/cjs/chart/interface/chart.js.map +1 -1
  13. package/cjs/chart/line/line.js +2 -1
  14. package/cjs/chart/line/line.js.map +1 -1
  15. package/cjs/chart/sequence/sequence.d.ts +1 -1
  16. package/cjs/chart/sequence/sequence.js +1 -1
  17. package/cjs/chart/sequence/sequence.js.map +1 -1
  18. package/cjs/compile/compiler.js +1 -2
  19. package/cjs/compile/grammar-item.js +2 -1
  20. package/cjs/compile/mark/compilable-mark.d.ts +10 -6
  21. package/cjs/compile/mark/compilable-mark.js +22 -11
  22. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  23. package/cjs/compile/mark/interface.d.ts +6 -4
  24. package/cjs/compile/mark/interface.js.map +1 -1
  25. package/cjs/compile/mark/util.d.ts +1 -3
  26. package/cjs/compile/mark/util.js +1 -37
  27. package/cjs/compile/mark/util.js.map +1 -1
  28. package/cjs/component/axis/base-axis.d.ts +2 -4
  29. package/cjs/component/axis/base-axis.js +20 -35
  30. package/cjs/component/axis/base-axis.js.map +1 -1
  31. package/cjs/component/axis/cartesian/axis.d.ts +12 -22
  32. package/cjs/component/axis/cartesian/axis.js +51 -67
  33. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  34. package/cjs/component/axis/cartesian/band-axis.d.ts +0 -7
  35. package/cjs/component/axis/cartesian/band-axis.js +0 -1
  36. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  37. package/cjs/component/axis/cartesian/interface/common.d.ts +0 -6
  38. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  39. package/cjs/component/axis/cartesian/interface/theme.d.ts +1 -1
  40. package/cjs/component/axis/cartesian/interface/theme.js.map +1 -1
  41. package/cjs/component/axis/interface/common.d.ts +0 -1
  42. package/cjs/component/axis/interface/common.js.map +1 -1
  43. package/cjs/component/axis/interface/spec.js.map +1 -1
  44. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +0 -1
  45. package/cjs/component/axis/mixin/band-axis-mixin.js +2 -2
  46. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  47. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  48. package/cjs/component/axis/mixin/linear-axis-mixin.js +4 -3
  49. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  50. package/cjs/component/axis/polar/axis.d.ts +3 -4
  51. package/cjs/component/axis/polar/axis.js +13 -15
  52. package/cjs/component/axis/polar/axis.js.map +1 -1
  53. package/cjs/component/base/base-component.d.ts +12 -4
  54. package/cjs/component/base/base-component.js +21 -11
  55. package/cjs/component/base/base-component.js.map +1 -1
  56. package/cjs/component/base/util.js +16 -12
  57. package/cjs/component/base/util.js.map +1 -1
  58. package/cjs/component/brush/brush.d.ts +2 -4
  59. package/cjs/component/brush/brush.js +4 -6
  60. package/cjs/component/brush/brush.js.map +1 -1
  61. package/cjs/component/crosshair/base.d.ts +3 -4
  62. package/cjs/component/crosshair/base.js +1 -1
  63. package/cjs/component/crosshair/base.js.map +1 -1
  64. package/cjs/component/crosshair/cartesian.d.ts +2 -0
  65. package/cjs/component/crosshair/cartesian.js +6 -8
  66. package/cjs/component/crosshair/cartesian.js.map +1 -1
  67. package/cjs/component/crosshair/interface/spec.d.ts +1 -1
  68. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  69. package/cjs/component/crosshair/polar.d.ts +2 -0
  70. package/cjs/component/crosshair/polar.js +5 -8
  71. package/cjs/component/crosshair/polar.js.map +1 -1
  72. package/cjs/component/custom-mark/custom-mark.d.ts +2 -3
  73. package/cjs/component/custom-mark/custom-mark.js +2 -3
  74. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  75. package/cjs/component/data-zoom/data-filter-base-component.d.ts +8 -8
  76. package/cjs/component/data-zoom/data-filter-base-component.js +60 -38
  77. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  78. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +4 -2
  79. package/cjs/component/data-zoom/data-zoom/data-zoom.js +47 -44
  80. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  81. package/cjs/component/data-zoom/data-zoom/interface.d.ts +6 -1
  82. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  83. package/cjs/component/data-zoom/scroll-bar/interface.d.ts +6 -2
  84. package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
  85. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
  86. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +24 -23
  87. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  88. package/cjs/component/data-zoom/util.d.ts +4 -0
  89. package/cjs/component/data-zoom/util.js +11 -2
  90. package/cjs/component/data-zoom/util.js.map +1 -1
  91. package/cjs/component/geo/geo-coordinate.d.ts +3 -2
  92. package/cjs/component/geo/geo-coordinate.js +4 -4
  93. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  94. package/cjs/component/index.d.ts +3 -2
  95. package/cjs/component/index.js.map +1 -1
  96. package/cjs/component/indicator/indicator.d.ts +1 -3
  97. package/cjs/component/indicator/indicator.js +4 -5
  98. package/cjs/component/indicator/indicator.js.map +1 -1
  99. package/cjs/component/indicator/interface.d.ts +1 -1
  100. package/cjs/component/indicator/interface.js.map +1 -1
  101. package/cjs/component/interface/common.d.ts +3 -3
  102. package/cjs/component/interface/common.js.map +1 -1
  103. package/cjs/component/interface/theme.d.ts +2 -1
  104. package/cjs/component/interface/theme.js.map +1 -1
  105. package/cjs/component/label/base-label.d.ts +2 -4
  106. package/cjs/component/label/base-label.js +1 -3
  107. package/cjs/component/label/base-label.js.map +1 -1
  108. package/cjs/component/label/interface.d.ts +4 -0
  109. package/cjs/component/label/interface.js.map +1 -1
  110. package/cjs/component/label/label.d.ts +5 -7
  111. package/cjs/component/label/label.js +15 -11
  112. package/cjs/component/label/label.js.map +1 -1
  113. package/cjs/component/label/totalLabel.d.ts +1 -3
  114. package/cjs/component/label/totalLabel.js +4 -4
  115. package/cjs/component/label/totalLabel.js.map +1 -1
  116. package/cjs/component/label/util.d.ts +9 -2
  117. package/cjs/component/label/util.js +20 -5
  118. package/cjs/component/label/util.js.map +1 -1
  119. package/cjs/component/legend/base-legend.d.ts +6 -9
  120. package/cjs/component/legend/base-legend.js +3 -9
  121. package/cjs/component/legend/base-legend.js.map +1 -1
  122. package/cjs/component/legend/continuous/legend.d.ts +4 -1
  123. package/cjs/component/legend/continuous/legend.js +7 -7
  124. package/cjs/component/legend/continuous/legend.js.map +1 -1
  125. package/cjs/component/legend/discrete/legend.d.ts +4 -1
  126. package/cjs/component/legend/discrete/legend.js +6 -7
  127. package/cjs/component/legend/discrete/legend.js.map +1 -1
  128. package/cjs/component/legend/discrete/util.d.ts +1 -1
  129. package/cjs/component/legend/discrete/util.js.map +1 -1
  130. package/cjs/component/legend/util.d.ts +2 -2
  131. package/cjs/component/map-label/component.d.ts +1 -3
  132. package/cjs/component/map-label/component.js +2 -3
  133. package/cjs/component/map-label/component.js.map +1 -1
  134. package/cjs/component/marker/base-marker.d.ts +7 -3
  135. package/cjs/component/marker/base-marker.js +43 -19
  136. package/cjs/component/marker/base-marker.js.map +1 -1
  137. package/cjs/component/marker/interface.d.ts +15 -4
  138. package/cjs/component/marker/interface.js.map +1 -1
  139. package/cjs/component/marker/mark-area/interface/spec.d.ts +1 -1
  140. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  141. package/cjs/component/marker/mark-area/mark-area.d.ts +1 -3
  142. package/cjs/component/marker/mark-area/mark-area.js +32 -20
  143. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  144. package/cjs/component/marker/mark-line/interface/spec.d.ts +3 -4
  145. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  146. package/cjs/component/marker/mark-line/mark-line.d.ts +1 -3
  147. package/cjs/component/marker/mark-line/mark-line.js +36 -22
  148. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  149. package/cjs/component/marker/mark-line/util.d.ts +3 -3
  150. package/cjs/component/marker/mark-line/util.js.map +1 -1
  151. package/cjs/component/marker/mark-point/interface/spec.d.ts +5 -4
  152. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  153. package/cjs/component/marker/mark-point/interface/theme.d.ts +5 -5
  154. package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
  155. package/cjs/component/marker/mark-point/mark-point.d.ts +1 -3
  156. package/cjs/component/marker/mark-point/mark-point.js +17 -13
  157. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  158. package/cjs/component/marker/utils.d.ts +3 -4
  159. package/cjs/component/marker/utils.js +44 -25
  160. package/cjs/component/marker/utils.js.map +1 -1
  161. package/cjs/component/player/interface/theme.d.ts +1 -1
  162. package/cjs/component/player/interface/theme.js.map +1 -1
  163. package/cjs/component/player/player.d.ts +6 -7
  164. package/cjs/component/player/player.js +4 -7
  165. package/cjs/component/player/player.js.map +1 -1
  166. package/cjs/component/title/interface/theme.d.ts +1 -1
  167. package/cjs/component/title/interface/theme.js.map +1 -1
  168. package/cjs/component/title/title.d.ts +6 -9
  169. package/cjs/component/title/title.js +13 -24
  170. package/cjs/component/title/title.js.map +1 -1
  171. package/cjs/component/tooltip/handler/base.js +6 -6
  172. package/cjs/component/tooltip/handler/base.js.map +1 -1
  173. package/cjs/component/tooltip/handler/dom/util.js +3 -2
  174. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  175. package/cjs/component/tooltip/handler/utils/attribute.d.ts +3 -3
  176. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  177. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  178. package/cjs/component/tooltip/interface/spec.d.ts +1 -1
  179. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  180. package/cjs/component/tooltip/interface/theme.d.ts +10 -11
  181. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  182. package/cjs/component/tooltip/tooltip.d.ts +3 -2
  183. package/cjs/component/tooltip/tooltip.js +7 -11
  184. package/cjs/component/tooltip/tooltip.js.map +1 -1
  185. package/cjs/component/util.d.ts +1 -3
  186. package/cjs/component/util.js +2 -2
  187. package/cjs/component/util.js.map +1 -1
  188. package/cjs/constant/index.js +2 -1
  189. package/cjs/constant/layout.d.ts +1 -0
  190. package/cjs/constant/layout.js +2 -2
  191. package/cjs/constant/layout.js.map +1 -1
  192. package/cjs/constant/scatter.js +1 -2
  193. package/cjs/core/expression-function.d.ts +12 -0
  194. package/cjs/core/expression-function.js +30 -0
  195. package/cjs/core/expression-function.js.map +1 -0
  196. package/cjs/core/factory.d.ts +5 -2
  197. package/cjs/core/factory.js +6 -3
  198. package/cjs/core/factory.js.map +1 -1
  199. package/cjs/core/index.d.ts +2 -1
  200. package/cjs/core/index.js +3 -2
  201. package/cjs/core/index.js.map +1 -1
  202. package/cjs/core/interface.d.ts +5 -0
  203. package/cjs/core/interface.js.map +1 -1
  204. package/cjs/core/vchart.d.ts +9 -1
  205. package/cjs/core/vchart.js +94 -68
  206. package/cjs/core/vchart.js.map +1 -1
  207. package/cjs/data/initialize.js +7 -6
  208. package/cjs/data/initialize.js.map +1 -1
  209. package/cjs/data/transforms/aggregation.d.ts +4 -3
  210. package/cjs/data/transforms/aggregation.js +4 -4
  211. package/cjs/data/transforms/aggregation.js.map +1 -1
  212. package/cjs/data/transforms/dimension-statistics.js +14 -4
  213. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  214. package/cjs/event/bubble.js +1 -2
  215. package/cjs/event/event.js +2 -1
  216. package/cjs/event/events/base.d.ts +16 -0
  217. package/cjs/event/events/base.js +23 -0
  218. package/cjs/event/events/base.js.map +1 -0
  219. package/cjs/event/events/dimension/util/cartesian.d.ts +1 -1
  220. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  221. package/cjs/event/events/dimension/util/common.d.ts +1 -2
  222. package/cjs/event/events/dimension/util/common.js +1 -1
  223. package/cjs/event/events/dimension/util/common.js.map +1 -1
  224. package/cjs/event/events/dimension/util/polar.d.ts +1 -1
  225. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  226. package/cjs/event/interface.d.ts +2 -2
  227. package/cjs/event/interface.js.map +1 -1
  228. package/cjs/index-wx-simple.d.ts +4 -0
  229. package/cjs/index-wx-simple.js +35 -0
  230. package/cjs/index-wx-simple.js.map +1 -0
  231. package/cjs/interaction/trigger.js +1 -1
  232. package/cjs/interaction/zoom/zoomable.d.ts +1 -0
  233. package/cjs/interaction/zoom/zoomable.js +6 -5
  234. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  235. package/cjs/layout/base-layout.d.ts +3 -5
  236. package/cjs/layout/base-layout.js +9 -9
  237. package/cjs/layout/base-layout.js.map +1 -1
  238. package/cjs/layout/grid-layout/grid-layout.d.ts +1 -2
  239. package/cjs/layout/grid-layout/grid-layout.js +6 -4
  240. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  241. package/cjs/layout/interface.d.ts +74 -6
  242. package/cjs/layout/interface.js.map +1 -1
  243. package/cjs/{model → layout}/layout-item.d.ts +35 -23
  244. package/cjs/{model → layout}/layout-item.js +98 -64
  245. package/cjs/layout/layout-item.js.map +1 -0
  246. package/cjs/layout/layout3d/index.d.ts +2 -4
  247. package/cjs/layout/layout3d/index.js +6 -6
  248. package/cjs/layout/layout3d/index.js.map +1 -1
  249. package/cjs/layout/util.d.ts +1 -1
  250. package/cjs/layout/util.js.map +1 -1
  251. package/cjs/mark/arc.js +2 -2
  252. package/cjs/mark/arc.js.map +1 -1
  253. package/cjs/mark/base/base-mark.d.ts +2 -2
  254. package/cjs/mark/base/base-mark.js +62 -40
  255. package/cjs/mark/base/base-mark.js.map +1 -1
  256. package/cjs/mark/label.js +1 -4
  257. package/cjs/mark/label.js.map +1 -1
  258. package/cjs/model/base-model.d.ts +10 -8
  259. package/cjs/model/base-model.js +27 -31
  260. package/cjs/model/base-model.js.map +1 -1
  261. package/cjs/model/interface.d.ts +21 -89
  262. package/cjs/model/interface.js.map +1 -1
  263. package/cjs/model/layout-model.d.ts +41 -0
  264. package/cjs/model/layout-model.js +86 -0
  265. package/cjs/model/layout-model.js.map +1 -0
  266. package/cjs/region/interface.d.ts +3 -2
  267. package/cjs/region/interface.js.map +1 -1
  268. package/cjs/region/region.d.ts +12 -7
  269. package/cjs/region/region.js +18 -10
  270. package/cjs/region/region.js.map +1 -1
  271. package/cjs/series/area/area.d.ts +1 -1
  272. package/cjs/series/area/area.js +5 -6
  273. package/cjs/series/area/area.js.map +1 -1
  274. package/cjs/series/area/interface.d.ts +4 -0
  275. package/cjs/series/area/interface.js.map +1 -1
  276. package/cjs/series/bar/bar.js +2 -4
  277. package/cjs/series/bar/bar.js.map +1 -1
  278. package/cjs/series/base/base-series.d.ts +14 -4
  279. package/cjs/series/base/base-series.js +40 -15
  280. package/cjs/series/base/base-series.js.map +1 -1
  281. package/cjs/series/cartesian/cartesian.d.ts +3 -0
  282. package/cjs/series/cartesian/cartesian.js +16 -4
  283. package/cjs/series/cartesian/cartesian.js.map +1 -1
  284. package/cjs/series/correlation/correlation.js +3 -7
  285. package/cjs/series/correlation/correlation.js.map +1 -1
  286. package/cjs/series/funnel/funnel-3d.js +1 -1
  287. package/cjs/series/funnel/funnel-3d.js.map +1 -1
  288. package/cjs/series/funnel/funnel.js +2 -6
  289. package/cjs/series/funnel/funnel.js.map +1 -1
  290. package/cjs/series/funnel/interface.d.ts +1 -2
  291. package/cjs/series/funnel/interface.js.map +1 -1
  292. package/cjs/series/gauge/gauge.d.ts +0 -1
  293. package/cjs/series/gauge/gauge.js +3 -8
  294. package/cjs/series/gauge/gauge.js.map +1 -1
  295. package/cjs/series/heatmap/heatmap.js +2 -4
  296. package/cjs/series/heatmap/heatmap.js.map +1 -1
  297. package/cjs/series/index.d.ts +2 -2
  298. package/cjs/series/index.js.map +1 -1
  299. package/cjs/series/interface/common.d.ts +2 -2
  300. package/cjs/series/interface/common.js.map +1 -1
  301. package/cjs/series/interface/series.d.ts +4 -2
  302. package/cjs/series/interface/series.js.map +1 -1
  303. package/cjs/series/interface/type.d.ts +3 -1
  304. package/cjs/series/interface/type.js +2 -1
  305. package/cjs/series/interface/type.js.map +1 -1
  306. package/cjs/series/line/interface.d.ts +4 -0
  307. package/cjs/series/line/interface.js.map +1 -1
  308. package/cjs/series/line/line.d.ts +1 -1
  309. package/cjs/series/line/line.js.map +1 -1
  310. package/cjs/series/map/map.js +2 -4
  311. package/cjs/series/map/map.js.map +1 -1
  312. package/cjs/series/mixin/line-mixin.d.ts +5 -2
  313. package/cjs/series/mixin/line-mixin.js +16 -10
  314. package/cjs/series/mixin/line-mixin.js.map +1 -1
  315. package/cjs/series/pie/pie.js +1 -4
  316. package/cjs/series/pie/pie.js.map +1 -1
  317. package/cjs/series/polar/progress-like/progress-like.js +4 -4
  318. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  319. package/cjs/series/radar/animation.js.map +1 -1
  320. package/cjs/series/range-column/range-column.js +2 -2
  321. package/cjs/series/range-column/range-column.js.map +1 -1
  322. package/cjs/series/rose/rose.d.ts +2 -1
  323. package/cjs/series/rose/rose.js +2 -4
  324. package/cjs/series/rose/rose.js.map +1 -1
  325. package/cjs/series/scatter/scatter.js +2 -4
  326. package/cjs/series/scatter/scatter.js.map +1 -1
  327. package/cjs/series/waterfall/waterfall.js +1 -1
  328. package/cjs/series/waterfall/waterfall.js.map +1 -1
  329. package/cjs/series/word-cloud/base.d.ts +1 -0
  330. package/cjs/series/word-cloud/base.js +33 -33
  331. package/cjs/series/word-cloud/base.js.map +1 -1
  332. package/cjs/series/word-cloud/word-cloud-3d.js +32 -32
  333. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  334. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
  335. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  336. package/cjs/theme/builtin/common/component/axis/common-axis.js +1 -1
  337. package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  338. package/cjs/theme/builtin/common/component/crosshair.js +5 -5
  339. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  340. package/cjs/theme/builtin/common/component/data-zoom.js +10 -10
  341. package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
  342. package/cjs/theme/builtin/common/component/indicator.js +1 -1
  343. package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
  344. package/cjs/theme/builtin/common/component/legend/color-legend.js +3 -4
  345. package/cjs/theme/builtin/common/component/legend/color-legend.js.map +1 -1
  346. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +2 -2
  347. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  348. package/cjs/theme/builtin/common/component/legend/size-legend.js +6 -6
  349. package/cjs/theme/builtin/common/component/legend/size-legend.js.map +1 -1
  350. package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
  351. package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
  352. package/cjs/theme/builtin/common/component/mark-line.js +9 -9
  353. package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
  354. package/cjs/theme/builtin/common/component/mark-point.js +15 -3
  355. package/cjs/theme/builtin/common/component/mark-point.js.map +1 -1
  356. package/cjs/theme/builtin/common/component/player.js +7 -7
  357. package/cjs/theme/builtin/common/component/player.js.map +1 -1
  358. package/cjs/theme/builtin/common/component/poptip.js +3 -4
  359. package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
  360. package/cjs/theme/builtin/common/component/scroll-bar.js +20 -7
  361. package/cjs/theme/builtin/common/component/scroll-bar.js.map +1 -1
  362. package/cjs/theme/builtin/common/component/title.js +1 -1
  363. package/cjs/theme/builtin/common/component/title.js.map +1 -1
  364. package/cjs/theme/builtin/common/component/tooltip.d.ts +2 -1
  365. package/cjs/theme/builtin/common/component/tooltip.js +3 -4
  366. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  367. package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
  368. package/cjs/theme/builtin/common/mark.js.map +1 -1
  369. package/cjs/theme/builtin/common/series/rangeColumn.js +1 -1
  370. package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
  371. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.d.ts +2 -0
  372. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js +22 -0
  373. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js.map +1 -0
  374. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +3 -0
  375. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js +36 -0
  376. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +1 -0
  377. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.d.ts +2 -0
  378. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js +42 -0
  379. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js.map +1 -0
  380. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +2 -0
  381. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js +22 -0
  382. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js.map +1 -0
  383. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +3 -0
  384. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js +25 -0
  385. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js.map +1 -0
  386. package/cjs/theme/builtin/common-mobile/component/crosshair.d.ts +2 -0
  387. package/cjs/theme/builtin/common-mobile/component/crosshair.js +39 -0
  388. package/cjs/theme/builtin/common-mobile/component/crosshair.js.map +1 -0
  389. package/cjs/theme/builtin/common-mobile/component/data-zoom.d.ts +2 -0
  390. package/cjs/theme/builtin/common-mobile/component/data-zoom.js +40 -0
  391. package/cjs/theme/builtin/common-mobile/component/data-zoom.js.map +1 -0
  392. package/cjs/theme/builtin/common-mobile/component/index.d.ts +2 -0
  393. package/cjs/theme/builtin/common-mobile/component/index.js +33 -0
  394. package/cjs/theme/builtin/common-mobile/component/index.js.map +1 -0
  395. package/cjs/theme/builtin/common-mobile/component/indicator.d.ts +2 -0
  396. package/cjs/theme/builtin/common-mobile/component/indicator.js +23 -0
  397. package/cjs/theme/builtin/common-mobile/component/indicator.js.map +1 -0
  398. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.d.ts +2 -0
  399. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js +23 -0
  400. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js.map +1 -0
  401. package/cjs/theme/builtin/common-mobile/component/legend/continuous.d.ts +2 -0
  402. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js +44 -0
  403. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js.map +1 -0
  404. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +2 -0
  405. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js +39 -0
  406. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +1 -0
  407. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.d.ts +2 -0
  408. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js +23 -0
  409. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js.map +1 -0
  410. package/cjs/theme/builtin/common-mobile/component/map-label.d.ts +2 -0
  411. package/cjs/theme/builtin/common-mobile/component/map-label.js +39 -0
  412. package/cjs/theme/builtin/common-mobile/component/map-label.js.map +1 -0
  413. package/cjs/theme/builtin/common-mobile/component/mark-area.d.ts +2 -0
  414. package/cjs/theme/builtin/common-mobile/component/mark-area.js +24 -0
  415. package/cjs/theme/builtin/common-mobile/component/mark-area.js.map +1 -0
  416. package/cjs/theme/builtin/common-mobile/component/mark-line.d.ts +2 -0
  417. package/cjs/theme/builtin/common-mobile/component/mark-line.js +33 -0
  418. package/cjs/theme/builtin/common-mobile/component/mark-line.js.map +1 -0
  419. package/cjs/theme/builtin/common-mobile/component/mark-point.d.ts +2 -0
  420. package/cjs/theme/builtin/common-mobile/component/mark-point.js +19 -0
  421. package/cjs/theme/builtin/common-mobile/component/mark-point.js.map +1 -0
  422. package/cjs/theme/builtin/common-mobile/component/player.d.ts +2 -0
  423. package/cjs/theme/builtin/common-mobile/component/player.js +51 -0
  424. package/cjs/theme/builtin/common-mobile/component/player.js.map +1 -0
  425. package/cjs/theme/builtin/common-mobile/component/poptip.d.ts +2 -0
  426. package/cjs/theme/builtin/common-mobile/component/poptip.js +25 -0
  427. package/cjs/theme/builtin/common-mobile/component/poptip.js.map +1 -0
  428. package/cjs/theme/builtin/common-mobile/component/title.d.ts +2 -0
  429. package/cjs/theme/builtin/common-mobile/component/title.js +23 -0
  430. package/cjs/theme/builtin/common-mobile/component/title.js.map +1 -0
  431. package/cjs/theme/builtin/common-mobile/component/tooltip.d.ts +2 -0
  432. package/cjs/theme/builtin/common-mobile/component/tooltip.js +43 -0
  433. package/cjs/theme/builtin/common-mobile/component/tooltip.js.map +1 -0
  434. package/cjs/theme/builtin/common-mobile/component/total-label.d.ts +2 -0
  435. package/cjs/theme/builtin/common-mobile/component/total-label.js +16 -0
  436. package/cjs/theme/builtin/common-mobile/component/total-label.js.map +1 -0
  437. package/cjs/theme/builtin/common-mobile/constants.d.ts +2 -0
  438. package/cjs/theme/builtin/common-mobile/constants.js +23 -0
  439. package/cjs/theme/builtin/common-mobile/constants.js.map +1 -0
  440. package/cjs/theme/builtin/common-mobile/mark.d.ts +3 -0
  441. package/cjs/theme/builtin/common-mobile/mark.js +35 -0
  442. package/cjs/theme/builtin/common-mobile/mark.js.map +1 -0
  443. package/cjs/theme/builtin/dark/color-scheme.js +20 -11
  444. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
  445. package/cjs/theme/builtin/dark-mobile/index.d.ts +2 -0
  446. package/cjs/theme/builtin/dark-mobile/index.js +18 -0
  447. package/cjs/theme/builtin/dark-mobile/index.js.map +1 -0
  448. package/cjs/theme/builtin/index.d.ts +2 -4
  449. package/cjs/theme/builtin/index.js +17 -20
  450. package/cjs/theme/builtin/index.js.map +1 -1
  451. package/cjs/theme/builtin/light/color-scheme.js +19 -10
  452. package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
  453. package/cjs/theme/builtin/light-mobile/index.d.ts +2 -0
  454. package/cjs/theme/builtin/light-mobile/index.js +18 -0
  455. package/cjs/theme/builtin/light-mobile/index.js.map +1 -0
  456. package/cjs/theme/color-scheme/builtin/interface.d.ts +16 -7
  457. package/cjs/theme/color-scheme/builtin/interface.js.map +1 -1
  458. package/cjs/theme/color-scheme/legacy.js +18 -2
  459. package/cjs/theme/color-scheme/legacy.js.map +1 -1
  460. package/cjs/theme/color-scheme/util.js +2 -2
  461. package/cjs/theme/color-scheme/util.js.map +1 -1
  462. package/cjs/theme/interface.d.ts +1 -2
  463. package/cjs/theme/interface.js.map +1 -1
  464. package/cjs/theme/theme-manager.d.ts +1 -1
  465. package/cjs/theme/theme-manager.js +2 -2
  466. package/cjs/theme/theme-manager.js.map +1 -1
  467. package/cjs/typings/index.d.ts +1 -0
  468. package/cjs/typings/index.js +2 -1
  469. package/cjs/typings/index.js.map +1 -1
  470. package/cjs/typings/layout.d.ts +23 -0
  471. package/cjs/typings/layout.js +6 -0
  472. package/cjs/typings/layout.js.map +1 -0
  473. package/cjs/typings/spec/common.d.ts +2 -4
  474. package/cjs/typings/spec/common.js.map +1 -1
  475. package/cjs/typings/visual.d.ts +1 -1
  476. package/cjs/typings/visual.js.map +1 -1
  477. package/cjs/util/space.d.ts +1 -1
  478. package/cjs/util/space.js.map +1 -1
  479. package/cjs/util/spec/background.js +8 -14
  480. package/cjs/util/spec/background.js.map +1 -1
  481. package/cjs/util/spec/common.d.ts +1 -1
  482. package/cjs/util/spec/common.js +2 -2
  483. package/cjs/util/spec/common.js.map +1 -1
  484. package/cjs/util/spec/preprocess.d.ts +1 -1
  485. package/cjs/util/spec/preprocess.js +7 -17
  486. package/cjs/util/spec/preprocess.js.map +1 -1
  487. package/cjs/util/spec/transform.d.ts +2 -0
  488. package/cjs/util/spec/transform.js +18 -2
  489. package/cjs/util/spec/transform.js.map +1 -1
  490. package/cjs/vchart-all.js +2 -3
  491. package/cjs/vchart-all.js.map +1 -1
  492. package/cjs/vchart-simple.d.ts +1 -0
  493. package/cjs/vchart-simple.js +4 -4
  494. package/cjs/vchart-simple.js.map +1 -1
  495. package/esm/animation/utils.d.ts +2 -2
  496. package/esm/chart/area/area.js +2 -1
  497. package/esm/chart/area/area.js.map +1 -1
  498. package/esm/chart/base-chart.d.ts +13 -16
  499. package/esm/chart/base-chart.js +66 -67
  500. package/esm/chart/base-chart.js.map +1 -1
  501. package/esm/chart/interface/chart.d.ts +4 -6
  502. package/esm/chart/interface/chart.js.map +1 -1
  503. package/esm/chart/line/line.js +2 -1
  504. package/esm/chart/line/line.js.map +1 -1
  505. package/esm/chart/sequence/sequence.d.ts +1 -1
  506. package/esm/chart/sequence/sequence.js +1 -1
  507. package/esm/chart/sequence/sequence.js.map +1 -1
  508. package/esm/compile/compiler.js +1 -2
  509. package/esm/compile/grammar-item.js +2 -1
  510. package/esm/compile/mark/compilable-mark.d.ts +10 -6
  511. package/esm/compile/mark/compilable-mark.js +23 -12
  512. package/esm/compile/mark/compilable-mark.js.map +1 -1
  513. package/esm/compile/mark/interface.d.ts +6 -4
  514. package/esm/compile/mark/interface.js.map +1 -1
  515. package/esm/compile/mark/util.d.ts +1 -3
  516. package/esm/compile/mark/util.js +0 -34
  517. package/esm/compile/mark/util.js.map +1 -1
  518. package/esm/component/axis/base-axis.d.ts +2 -4
  519. package/esm/component/axis/base-axis.js +19 -36
  520. package/esm/component/axis/base-axis.js.map +1 -1
  521. package/esm/component/axis/cartesian/axis.d.ts +12 -22
  522. package/esm/component/axis/cartesian/axis.js +49 -63
  523. package/esm/component/axis/cartesian/axis.js.map +1 -1
  524. package/esm/component/axis/cartesian/band-axis.d.ts +0 -7
  525. package/esm/component/axis/cartesian/band-axis.js +0 -1
  526. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  527. package/esm/component/axis/cartesian/interface/common.d.ts +0 -6
  528. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  529. package/esm/component/axis/cartesian/interface/theme.d.ts +1 -1
  530. package/esm/component/axis/cartesian/interface/theme.js.map +1 -1
  531. package/esm/component/axis/interface/common.d.ts +0 -1
  532. package/esm/component/axis/interface/common.js.map +1 -1
  533. package/esm/component/axis/interface/spec.js.map +1 -1
  534. package/esm/component/axis/mixin/band-axis-mixin.d.ts +0 -1
  535. package/esm/component/axis/mixin/band-axis-mixin.js +2 -2
  536. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  537. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  538. package/esm/component/axis/mixin/linear-axis-mixin.js +4 -3
  539. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  540. package/esm/component/axis/polar/axis.d.ts +3 -4
  541. package/esm/component/axis/polar/axis.js +12 -14
  542. package/esm/component/axis/polar/axis.js.map +1 -1
  543. package/esm/component/base/base-component.d.ts +12 -4
  544. package/esm/component/base/base-component.js +22 -14
  545. package/esm/component/base/base-component.js.map +1 -1
  546. package/esm/component/base/util.js +7 -3
  547. package/esm/component/base/util.js.map +1 -1
  548. package/esm/component/brush/brush.d.ts +2 -4
  549. package/esm/component/brush/brush.js +4 -6
  550. package/esm/component/brush/brush.js.map +1 -1
  551. package/esm/component/crosshair/base.d.ts +3 -4
  552. package/esm/component/crosshair/base.js +1 -1
  553. package/esm/component/crosshair/base.js.map +1 -1
  554. package/esm/component/crosshair/cartesian.d.ts +2 -0
  555. package/esm/component/crosshair/cartesian.js +5 -8
  556. package/esm/component/crosshair/cartesian.js.map +1 -1
  557. package/esm/component/crosshair/interface/spec.d.ts +1 -1
  558. package/esm/component/crosshair/interface/spec.js.map +1 -1
  559. package/esm/component/crosshair/polar.d.ts +2 -0
  560. package/esm/component/crosshair/polar.js +5 -8
  561. package/esm/component/crosshair/polar.js.map +1 -1
  562. package/esm/component/custom-mark/custom-mark.d.ts +2 -3
  563. package/esm/component/custom-mark/custom-mark.js +2 -3
  564. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  565. package/esm/component/data-zoom/data-filter-base-component.d.ts +8 -8
  566. package/esm/component/data-zoom/data-filter-base-component.js +60 -37
  567. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  568. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +4 -2
  569. package/esm/component/data-zoom/data-zoom/data-zoom.js +47 -44
  570. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  571. package/esm/component/data-zoom/data-zoom/interface.d.ts +6 -1
  572. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  573. package/esm/component/data-zoom/scroll-bar/interface.d.ts +6 -2
  574. package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
  575. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
  576. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +24 -23
  577. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  578. package/esm/component/data-zoom/util.d.ts +4 -0
  579. package/esm/component/data-zoom/util.js +13 -1
  580. package/esm/component/data-zoom/util.js.map +1 -1
  581. package/esm/component/geo/geo-coordinate.d.ts +3 -2
  582. package/esm/component/geo/geo-coordinate.js +3 -1
  583. package/esm/component/geo/geo-coordinate.js.map +1 -1
  584. package/esm/component/index.d.ts +3 -2
  585. package/esm/component/index.js.map +1 -1
  586. package/esm/component/indicator/indicator.d.ts +1 -3
  587. package/esm/component/indicator/indicator.js +4 -5
  588. package/esm/component/indicator/indicator.js.map +1 -1
  589. package/esm/component/indicator/interface.d.ts +1 -1
  590. package/esm/component/indicator/interface.js.map +1 -1
  591. package/esm/component/interface/common.d.ts +3 -3
  592. package/esm/component/interface/common.js.map +1 -1
  593. package/esm/component/interface/theme.d.ts +2 -1
  594. package/esm/component/interface/theme.js.map +1 -1
  595. package/esm/component/label/base-label.d.ts +2 -4
  596. package/esm/component/label/base-label.js +1 -3
  597. package/esm/component/label/base-label.js.map +1 -1
  598. package/esm/component/label/interface.d.ts +4 -0
  599. package/esm/component/label/interface.js.map +1 -1
  600. package/esm/component/label/label.d.ts +5 -7
  601. package/esm/component/label/label.js +16 -11
  602. package/esm/component/label/label.js.map +1 -1
  603. package/esm/component/label/totalLabel.d.ts +1 -3
  604. package/esm/component/label/totalLabel.js +4 -4
  605. package/esm/component/label/totalLabel.js.map +1 -1
  606. package/esm/component/label/util.d.ts +9 -2
  607. package/esm/component/label/util.js +17 -3
  608. package/esm/component/label/util.js.map +1 -1
  609. package/esm/component/legend/base-legend.d.ts +6 -9
  610. package/esm/component/legend/base-legend.js +3 -9
  611. package/esm/component/legend/base-legend.js.map +1 -1
  612. package/esm/component/legend/continuous/legend.d.ts +4 -1
  613. package/esm/component/legend/continuous/legend.js +6 -7
  614. package/esm/component/legend/continuous/legend.js.map +1 -1
  615. package/esm/component/legend/discrete/legend.d.ts +4 -1
  616. package/esm/component/legend/discrete/legend.js +6 -7
  617. package/esm/component/legend/discrete/legend.js.map +1 -1
  618. package/esm/component/legend/discrete/util.d.ts +1 -1
  619. package/esm/component/legend/discrete/util.js.map +1 -1
  620. package/esm/component/legend/util.d.ts +2 -2
  621. package/esm/component/map-label/component.d.ts +1 -3
  622. package/esm/component/map-label/component.js +2 -2
  623. package/esm/component/map-label/component.js.map +1 -1
  624. package/esm/component/marker/base-marker.d.ts +7 -3
  625. package/esm/component/marker/base-marker.js +41 -18
  626. package/esm/component/marker/base-marker.js.map +1 -1
  627. package/esm/component/marker/interface.d.ts +15 -4
  628. package/esm/component/marker/interface.js.map +1 -1
  629. package/esm/component/marker/mark-area/interface/spec.d.ts +1 -1
  630. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  631. package/esm/component/marker/mark-area/mark-area.d.ts +1 -3
  632. package/esm/component/marker/mark-area/mark-area.js +29 -18
  633. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  634. package/esm/component/marker/mark-line/interface/spec.d.ts +3 -4
  635. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  636. package/esm/component/marker/mark-line/mark-line.d.ts +1 -3
  637. package/esm/component/marker/mark-line/mark-line.js +36 -18
  638. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  639. package/esm/component/marker/mark-line/util.d.ts +3 -3
  640. package/esm/component/marker/mark-line/util.js.map +1 -1
  641. package/esm/component/marker/mark-point/interface/spec.d.ts +5 -4
  642. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  643. package/esm/component/marker/mark-point/interface/theme.d.ts +5 -5
  644. package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
  645. package/esm/component/marker/mark-point/mark-point.d.ts +1 -3
  646. package/esm/component/marker/mark-point/mark-point.js +17 -12
  647. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  648. package/esm/component/marker/utils.d.ts +3 -4
  649. package/esm/component/marker/utils.js +43 -23
  650. package/esm/component/marker/utils.js.map +1 -1
  651. package/esm/component/player/interface/theme.d.ts +1 -1
  652. package/esm/component/player/interface/theme.js.map +1 -1
  653. package/esm/component/player/player.d.ts +6 -7
  654. package/esm/component/player/player.js +4 -7
  655. package/esm/component/player/player.js.map +1 -1
  656. package/esm/component/title/interface/theme.d.ts +1 -1
  657. package/esm/component/title/interface/theme.js.map +1 -1
  658. package/esm/component/title/title.d.ts +6 -9
  659. package/esm/component/title/title.js +12 -22
  660. package/esm/component/title/title.js.map +1 -1
  661. package/esm/component/tooltip/handler/base.js +5 -7
  662. package/esm/component/tooltip/handler/base.js.map +1 -1
  663. package/esm/component/tooltip/handler/dom/util.js +3 -1
  664. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  665. package/esm/component/tooltip/handler/utils/attribute.d.ts +3 -3
  666. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  667. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  668. package/esm/component/tooltip/interface/spec.d.ts +1 -1
  669. package/esm/component/tooltip/interface/spec.js.map +1 -1
  670. package/esm/component/tooltip/interface/theme.d.ts +10 -11
  671. package/esm/component/tooltip/interface/theme.js.map +1 -1
  672. package/esm/component/tooltip/tooltip.d.ts +3 -2
  673. package/esm/component/tooltip/tooltip.js +7 -10
  674. package/esm/component/tooltip/tooltip.js.map +1 -1
  675. package/esm/component/util.d.ts +1 -3
  676. package/esm/component/util.js +2 -2
  677. package/esm/component/util.js.map +1 -1
  678. package/esm/constant/index.js +2 -1
  679. package/esm/constant/layout.d.ts +1 -0
  680. package/esm/constant/layout.js +2 -0
  681. package/esm/constant/layout.js.map +1 -1
  682. package/esm/constant/scatter.js +1 -2
  683. package/esm/core/expression-function.d.ts +12 -0
  684. package/esm/core/expression-function.js +22 -0
  685. package/esm/core/expression-function.js.map +1 -0
  686. package/esm/core/factory.d.ts +5 -2
  687. package/esm/core/factory.js +6 -3
  688. package/esm/core/factory.js.map +1 -1
  689. package/esm/core/index.d.ts +2 -1
  690. package/esm/core/index.js +3 -1
  691. package/esm/core/index.js.map +1 -1
  692. package/esm/core/interface.d.ts +5 -0
  693. package/esm/core/interface.js.map +1 -1
  694. package/esm/core/vchart.d.ts +9 -1
  695. package/esm/core/vchart.js +62 -41
  696. package/esm/core/vchart.js.map +1 -1
  697. package/esm/data/initialize.js +7 -7
  698. package/esm/data/initialize.js.map +1 -1
  699. package/esm/data/transforms/aggregation.d.ts +4 -3
  700. package/esm/data/transforms/aggregation.js +6 -6
  701. package/esm/data/transforms/aggregation.js.map +1 -1
  702. package/esm/data/transforms/dimension-statistics.js +14 -4
  703. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  704. package/esm/event/bubble.js +1 -2
  705. package/esm/event/event.js +2 -1
  706. package/esm/event/events/base.d.ts +16 -0
  707. package/esm/event/events/base.js +15 -0
  708. package/esm/event/events/base.js.map +1 -0
  709. package/esm/event/events/dimension/util/cartesian.d.ts +1 -1
  710. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  711. package/esm/event/events/dimension/util/common.d.ts +1 -2
  712. package/esm/event/events/dimension/util/common.js +1 -1
  713. package/esm/event/events/dimension/util/common.js.map +1 -1
  714. package/esm/event/events/dimension/util/polar.d.ts +1 -1
  715. package/esm/event/events/dimension/util/polar.js.map +1 -1
  716. package/esm/event/interface.d.ts +2 -2
  717. package/esm/event/interface.js.map +1 -1
  718. package/esm/index-wx-simple.d.ts +4 -0
  719. package/esm/index-wx-simple.js +35 -0
  720. package/esm/index-wx-simple.js.map +1 -0
  721. package/esm/interaction/trigger.js +1 -1
  722. package/esm/interaction/zoom/zoomable.d.ts +1 -0
  723. package/esm/interaction/zoom/zoomable.js +6 -5
  724. package/esm/interaction/zoom/zoomable.js.map +1 -1
  725. package/esm/layout/base-layout.d.ts +3 -5
  726. package/esm/layout/base-layout.js +9 -9
  727. package/esm/layout/base-layout.js.map +1 -1
  728. package/esm/layout/grid-layout/grid-layout.d.ts +1 -2
  729. package/esm/layout/grid-layout/grid-layout.js +6 -4
  730. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  731. package/esm/layout/interface.d.ts +74 -6
  732. package/esm/layout/interface.js.map +1 -1
  733. package/esm/{model → layout}/layout-item.d.ts +35 -23
  734. package/esm/{model → layout}/layout-item.js +93 -63
  735. package/esm/layout/layout-item.js.map +1 -0
  736. package/esm/layout/layout3d/index.d.ts +2 -4
  737. package/esm/layout/layout3d/index.js +5 -5
  738. package/esm/layout/layout3d/index.js.map +1 -1
  739. package/esm/layout/util.d.ts +1 -1
  740. package/esm/layout/util.js.map +1 -1
  741. package/esm/mark/arc.js +2 -2
  742. package/esm/mark/arc.js.map +1 -1
  743. package/esm/mark/base/base-mark.d.ts +2 -2
  744. package/esm/mark/base/base-mark.js +59 -38
  745. package/esm/mark/base/base-mark.js.map +1 -1
  746. package/esm/mark/label.js +1 -4
  747. package/esm/mark/label.js.map +1 -1
  748. package/esm/model/base-model.d.ts +10 -8
  749. package/esm/model/base-model.js +27 -35
  750. package/esm/model/base-model.js.map +1 -1
  751. package/esm/model/interface.d.ts +21 -89
  752. package/esm/model/interface.js.map +1 -1
  753. package/esm/model/layout-model.d.ts +41 -0
  754. package/esm/model/layout-model.js +80 -0
  755. package/esm/model/layout-model.js.map +1 -0
  756. package/esm/region/interface.d.ts +3 -2
  757. package/esm/region/interface.js.map +1 -1
  758. package/esm/region/region.d.ts +12 -7
  759. package/esm/region/region.js +19 -11
  760. package/esm/region/region.js.map +1 -1
  761. package/esm/series/area/area.d.ts +1 -1
  762. package/esm/series/area/area.js +5 -6
  763. package/esm/series/area/area.js.map +1 -1
  764. package/esm/series/area/interface.d.ts +4 -0
  765. package/esm/series/area/interface.js.map +1 -1
  766. package/esm/series/bar/bar.js +1 -5
  767. package/esm/series/bar/bar.js.map +1 -1
  768. package/esm/series/base/base-series.d.ts +14 -4
  769. package/esm/series/base/base-series.js +38 -16
  770. package/esm/series/base/base-series.js.map +1 -1
  771. package/esm/series/cartesian/cartesian.d.ts +3 -0
  772. package/esm/series/cartesian/cartesian.js +16 -4
  773. package/esm/series/cartesian/cartesian.js.map +1 -1
  774. package/esm/series/correlation/correlation.js +2 -8
  775. package/esm/series/correlation/correlation.js.map +1 -1
  776. package/esm/series/funnel/funnel-3d.js +1 -1
  777. package/esm/series/funnel/funnel-3d.js.map +1 -1
  778. package/esm/series/funnel/funnel.js +3 -7
  779. package/esm/series/funnel/funnel.js.map +1 -1
  780. package/esm/series/funnel/interface.d.ts +1 -2
  781. package/esm/series/funnel/interface.js.map +1 -1
  782. package/esm/series/gauge/gauge.d.ts +0 -1
  783. package/esm/series/gauge/gauge.js +2 -9
  784. package/esm/series/gauge/gauge.js.map +1 -1
  785. package/esm/series/heatmap/heatmap.js +1 -5
  786. package/esm/series/heatmap/heatmap.js.map +1 -1
  787. package/esm/series/index.d.ts +2 -2
  788. package/esm/series/index.js.map +1 -1
  789. package/esm/series/interface/common.d.ts +2 -2
  790. package/esm/series/interface/common.js.map +1 -1
  791. package/esm/series/interface/series.d.ts +4 -2
  792. package/esm/series/interface/series.js.map +1 -1
  793. package/esm/series/interface/type.d.ts +3 -1
  794. package/esm/series/interface/type.js +2 -1
  795. package/esm/series/interface/type.js.map +1 -1
  796. package/esm/series/line/interface.d.ts +4 -0
  797. package/esm/series/line/interface.js.map +1 -1
  798. package/esm/series/line/line.d.ts +1 -1
  799. package/esm/series/line/line.js.map +1 -1
  800. package/esm/series/map/map.js +1 -5
  801. package/esm/series/map/map.js.map +1 -1
  802. package/esm/series/mixin/line-mixin.d.ts +5 -2
  803. package/esm/series/mixin/line-mixin.js +15 -10
  804. package/esm/series/mixin/line-mixin.js.map +1 -1
  805. package/esm/series/pie/pie.js +1 -4
  806. package/esm/series/pie/pie.js.map +1 -1
  807. package/esm/series/polar/progress-like/progress-like.js +3 -4
  808. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  809. package/esm/series/radar/animation.js.map +1 -1
  810. package/esm/series/range-column/range-column.js +1 -3
  811. package/esm/series/range-column/range-column.js.map +1 -1
  812. package/esm/series/rose/rose.d.ts +2 -1
  813. package/esm/series/rose/rose.js +1 -5
  814. package/esm/series/rose/rose.js.map +1 -1
  815. package/esm/series/scatter/scatter.js +1 -5
  816. package/esm/series/scatter/scatter.js.map +1 -1
  817. package/esm/series/waterfall/waterfall.js +1 -1
  818. package/esm/series/waterfall/waterfall.js.map +1 -1
  819. package/esm/series/word-cloud/base.d.ts +1 -0
  820. package/esm/series/word-cloud/base.js +33 -33
  821. package/esm/series/word-cloud/base.js.map +1 -1
  822. package/esm/series/word-cloud/word-cloud-3d.js +32 -32
  823. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  824. package/esm/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
  825. package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  826. package/esm/theme/builtin/common/component/axis/common-axis.js +1 -1
  827. package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  828. package/esm/theme/builtin/common/component/crosshair.js +5 -5
  829. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  830. package/esm/theme/builtin/common/component/data-zoom.js +10 -10
  831. package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
  832. package/esm/theme/builtin/common/component/indicator.js +1 -1
  833. package/esm/theme/builtin/common/component/indicator.js.map +1 -1
  834. package/esm/theme/builtin/common/component/legend/color-legend.js +3 -4
  835. package/esm/theme/builtin/common/component/legend/color-legend.js.map +1 -1
  836. package/esm/theme/builtin/common/component/legend/discrete-legend.js +2 -2
  837. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  838. package/esm/theme/builtin/common/component/legend/size-legend.js +6 -6
  839. package/esm/theme/builtin/common/component/legend/size-legend.js.map +1 -1
  840. package/esm/theme/builtin/common/component/map-label.js.map +1 -1
  841. package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
  842. package/esm/theme/builtin/common/component/mark-line.js +9 -9
  843. package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
  844. package/esm/theme/builtin/common/component/mark-point.js +15 -3
  845. package/esm/theme/builtin/common/component/mark-point.js.map +1 -1
  846. package/esm/theme/builtin/common/component/player.js +7 -7
  847. package/esm/theme/builtin/common/component/player.js.map +1 -1
  848. package/esm/theme/builtin/common/component/poptip.js +3 -4
  849. package/esm/theme/builtin/common/component/poptip.js.map +1 -1
  850. package/esm/theme/builtin/common/component/scroll-bar.js +20 -7
  851. package/esm/theme/builtin/common/component/scroll-bar.js.map +1 -1
  852. package/esm/theme/builtin/common/component/title.js +1 -1
  853. package/esm/theme/builtin/common/component/title.js.map +1 -1
  854. package/esm/theme/builtin/common/component/tooltip.d.ts +2 -1
  855. package/esm/theme/builtin/common/component/tooltip.js +3 -4
  856. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  857. package/esm/theme/builtin/common/component/total-label.js.map +1 -1
  858. package/esm/theme/builtin/common/mark.js.map +1 -1
  859. package/esm/theme/builtin/common/series/rangeColumn.js +1 -1
  860. package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
  861. package/esm/theme/builtin/common-mobile/component/axis/band-axis.d.ts +2 -0
  862. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js +18 -0
  863. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js.map +1 -0
  864. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +3 -0
  865. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js +32 -0
  866. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +1 -0
  867. package/esm/theme/builtin/common-mobile/component/axis/common-axis.d.ts +2 -0
  868. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js +36 -0
  869. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js.map +1 -0
  870. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +2 -0
  871. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js +18 -0
  872. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js.map +1 -0
  873. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +3 -0
  874. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js +23 -0
  875. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js.map +1 -0
  876. package/esm/theme/builtin/common-mobile/component/crosshair.d.ts +2 -0
  877. package/esm/theme/builtin/common-mobile/component/crosshair.js +35 -0
  878. package/esm/theme/builtin/common-mobile/component/crosshair.js.map +1 -0
  879. package/esm/theme/builtin/common-mobile/component/data-zoom.d.ts +2 -0
  880. package/esm/theme/builtin/common-mobile/component/data-zoom.js +34 -0
  881. package/esm/theme/builtin/common-mobile/component/data-zoom.js.map +1 -0
  882. package/esm/theme/builtin/common-mobile/component/index.d.ts +2 -0
  883. package/esm/theme/builtin/common-mobile/component/index.js +65 -0
  884. package/esm/theme/builtin/common-mobile/component/index.js.map +1 -0
  885. package/esm/theme/builtin/common-mobile/component/indicator.d.ts +2 -0
  886. package/esm/theme/builtin/common-mobile/component/indicator.js +17 -0
  887. package/esm/theme/builtin/common-mobile/component/indicator.js.map +1 -0
  888. package/esm/theme/builtin/common-mobile/component/legend/color-legend.d.ts +2 -0
  889. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js +17 -0
  890. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js.map +1 -0
  891. package/esm/theme/builtin/common-mobile/component/legend/continuous.d.ts +2 -0
  892. package/esm/theme/builtin/common-mobile/component/legend/continuous.js +38 -0
  893. package/esm/theme/builtin/common-mobile/component/legend/continuous.js.map +1 -0
  894. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +2 -0
  895. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js +33 -0
  896. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +1 -0
  897. package/esm/theme/builtin/common-mobile/component/legend/size-legend.d.ts +2 -0
  898. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js +17 -0
  899. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js.map +1 -0
  900. package/esm/theme/builtin/common-mobile/component/map-label.d.ts +2 -0
  901. package/esm/theme/builtin/common-mobile/component/map-label.js +33 -0
  902. package/esm/theme/builtin/common-mobile/component/map-label.js.map +1 -0
  903. package/esm/theme/builtin/common-mobile/component/mark-area.d.ts +2 -0
  904. package/esm/theme/builtin/common-mobile/component/mark-area.js +18 -0
  905. package/esm/theme/builtin/common-mobile/component/mark-area.js.map +1 -0
  906. package/esm/theme/builtin/common-mobile/component/mark-line.d.ts +2 -0
  907. package/esm/theme/builtin/common-mobile/component/mark-line.js +27 -0
  908. package/esm/theme/builtin/common-mobile/component/mark-line.js.map +1 -0
  909. package/esm/theme/builtin/common-mobile/component/mark-point.d.ts +2 -0
  910. package/esm/theme/builtin/common-mobile/component/mark-point.js +15 -0
  911. package/esm/theme/builtin/common-mobile/component/mark-point.js.map +1 -0
  912. package/esm/theme/builtin/common-mobile/component/player.d.ts +2 -0
  913. package/esm/theme/builtin/common-mobile/component/player.js +47 -0
  914. package/esm/theme/builtin/common-mobile/component/player.js.map +1 -0
  915. package/esm/theme/builtin/common-mobile/component/poptip.d.ts +2 -0
  916. package/esm/theme/builtin/common-mobile/component/poptip.js +19 -0
  917. package/esm/theme/builtin/common-mobile/component/poptip.js.map +1 -0
  918. package/esm/theme/builtin/common-mobile/component/title.d.ts +2 -0
  919. package/esm/theme/builtin/common-mobile/component/title.js +17 -0
  920. package/esm/theme/builtin/common-mobile/component/title.js.map +1 -0
  921. package/esm/theme/builtin/common-mobile/component/tooltip.d.ts +2 -0
  922. package/esm/theme/builtin/common-mobile/component/tooltip.js +37 -0
  923. package/esm/theme/builtin/common-mobile/component/tooltip.js.map +1 -0
  924. package/esm/theme/builtin/common-mobile/component/total-label.d.ts +2 -0
  925. package/esm/theme/builtin/common-mobile/component/total-label.js +10 -0
  926. package/esm/theme/builtin/common-mobile/component/total-label.js.map +1 -0
  927. package/esm/theme/builtin/common-mobile/constants.d.ts +2 -0
  928. package/esm/theme/builtin/common-mobile/constants.js +19 -0
  929. package/esm/theme/builtin/common-mobile/constants.js.map +1 -0
  930. package/esm/theme/builtin/common-mobile/mark.d.ts +3 -0
  931. package/esm/theme/builtin/common-mobile/mark.js +31 -0
  932. package/esm/theme/builtin/common-mobile/mark.js.map +1 -0
  933. package/esm/theme/builtin/dark/color-scheme.js +20 -11
  934. package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
  935. package/esm/theme/builtin/dark-mobile/index.d.ts +2 -0
  936. package/esm/theme/builtin/dark-mobile/index.js +16 -0
  937. package/esm/theme/builtin/dark-mobile/index.js.map +1 -0
  938. package/esm/theme/builtin/index.d.ts +2 -4
  939. package/esm/theme/builtin/index.js +16 -23
  940. package/esm/theme/builtin/index.js.map +1 -1
  941. package/esm/theme/builtin/light/color-scheme.js +19 -10
  942. package/esm/theme/builtin/light/color-scheme.js.map +1 -1
  943. package/esm/theme/builtin/light-mobile/index.d.ts +2 -0
  944. package/esm/theme/builtin/light-mobile/index.js +16 -0
  945. package/esm/theme/builtin/light-mobile/index.js.map +1 -0
  946. package/esm/theme/color-scheme/builtin/interface.d.ts +16 -7
  947. package/esm/theme/color-scheme/builtin/interface.js.map +1 -1
  948. package/esm/theme/color-scheme/legacy.js +18 -2
  949. package/esm/theme/color-scheme/legacy.js.map +1 -1
  950. package/esm/theme/color-scheme/util.js +2 -2
  951. package/esm/theme/color-scheme/util.js.map +1 -1
  952. package/esm/theme/interface.d.ts +1 -2
  953. package/esm/theme/interface.js.map +1 -1
  954. package/esm/theme/theme-manager.d.ts +1 -1
  955. package/esm/theme/theme-manager.js +2 -2
  956. package/esm/theme/theme-manager.js.map +1 -1
  957. package/esm/typings/index.d.ts +1 -0
  958. package/esm/typings/index.js +2 -0
  959. package/esm/typings/index.js.map +1 -1
  960. package/esm/typings/layout.d.ts +23 -0
  961. package/esm/typings/layout.js +2 -0
  962. package/esm/typings/layout.js.map +1 -0
  963. package/esm/typings/spec/common.d.ts +2 -4
  964. package/esm/typings/spec/common.js.map +1 -1
  965. package/esm/typings/visual.d.ts +1 -1
  966. package/esm/typings/visual.js.map +1 -1
  967. package/esm/util/space.d.ts +1 -1
  968. package/esm/util/space.js.map +1 -1
  969. package/esm/util/spec/background.js +3 -11
  970. package/esm/util/spec/background.js.map +1 -1
  971. package/esm/util/spec/common.d.ts +1 -1
  972. package/esm/util/spec/common.js +2 -2
  973. package/esm/util/spec/common.js.map +1 -1
  974. package/esm/util/spec/preprocess.d.ts +1 -1
  975. package/esm/util/spec/preprocess.js +5 -18
  976. package/esm/util/spec/preprocess.js.map +1 -1
  977. package/esm/util/spec/transform.d.ts +2 -0
  978. package/esm/util/spec/transform.js +17 -1
  979. package/esm/util/spec/transform.js.map +1 -1
  980. package/esm/vchart-all.js +1 -4
  981. package/esm/vchart-all.js.map +1 -1
  982. package/esm/vchart-simple.d.ts +1 -0
  983. package/esm/vchart-simple.js +15 -14
  984. package/esm/vchart-simple.js.map +1 -1
  985. package/package.json +18 -19
  986. package/cjs/model/layout-item.js.map +0 -1
  987. package/cjs/theme/util.d.ts +0 -5
  988. package/cjs/theme/util.js +0 -35
  989. package/cjs/theme/util.js.map +0 -1
  990. package/esm/model/layout-item.js.map +0 -1
  991. package/esm/theme/util.d.ts +0 -5
  992. package/esm/theme/util.js +0 -37
  993. package/esm/theme/util.js.map +0 -1
@@ -30,12 +30,18 @@ Object.defineProperty(exports, "__esModule", {
30
30
  value: !0
31
31
  }), exports.BaseModel = void 0;
32
32
 
33
- const clone_deep_1 = require("../util/spec/clone-deep"), preprocess_1 = require("../util/spec/preprocess"), id_1 = require("../util/id"), merge_spec_1 = require("../util/spec/merge-spec"), event_1 = require("../event/event"), layout_item_1 = require("./layout-item"), constant_1 = require("../constant"), vutils_1 = require("@visactor/vutils"), factory_1 = require("../core/factory"), mark_set_1 = require("../mark/mark-set"), builtin_1 = require("../theme/builtin");
33
+ const clone_deep_1 = require("../util/spec/clone-deep"), id_1 = require("../util/id"), merge_spec_1 = require("../util/spec/merge-spec"), event_1 = require("../event/event"), vutils_1 = require("@visactor/vutils"), factory_1 = require("../core/factory"), mark_set_1 = require("../mark/mark-set"), compilable_base_1 = require("../compile/compilable-base"), base_1 = require("../constant/base");
34
34
 
35
- class BaseModel extends layout_item_1.LayoutItem {
35
+ class BaseModel extends compilable_base_1.CompilableBase {
36
+ getSpec() {
37
+ return this._spec || {};
38
+ }
36
39
  getData() {
37
40
  return this._data;
38
41
  }
42
+ get layout() {
43
+ return this._layout;
44
+ }
39
45
  getSpecIndex() {
40
46
  return this._specIndex;
41
47
  }
@@ -63,14 +69,14 @@ class BaseModel extends layout_item_1.LayoutItem {
63
69
  return this._option.getChart();
64
70
  }
65
71
  constructor(spec, option) {
66
- var _a, _b, _c;
72
+ var _a, _b;
67
73
  super(option), this.type = "null", this.modelType = "null", this.userId = void 0,
68
- this._data = null, this._specIndex = 0, this.specKey = "", this._marks = new mark_set_1.MarkSet,
69
- this._lastLayoutRect = null, this._isLayout = !0, this.id = (0, id_1.createID)(),
70
- this._originalSpec = spec, this._spec = (0, clone_deep_1.cloneDeepSpec)(spec), this._transformSpec(),
71
- this.userId = spec.id, this._specIndex = null !== (_a = option.specIndex) && void 0 !== _a ? _a : 0,
72
- this.specKey = null !== (_b = option.specKey) && void 0 !== _b ? _b : "", this.effect = {},
73
- this.event = new event_1.Event(option.eventDispatcher, option.mode), null === (_c = option.map) || void 0 === _c || _c.set(this.id, this);
74
+ this._data = null, this._layout = null, this._specIndex = 0, this.specKey = "",
75
+ this._marks = new mark_set_1.MarkSet, this._lastLayoutRect = null, this.id = (0,
76
+ id_1.createID)(), this._originalSpec = spec, this._spec = (0, clone_deep_1.cloneDeepSpec)(spec),
77
+ this._transformSpec(), this.userId = spec.id, this._specIndex = null !== (_a = option.specIndex) && void 0 !== _a ? _a : 0,
78
+ this.effect = {}, this.event = new event_1.Event(option.eventDispatcher, option.mode),
79
+ null === (_b = option.map) || void 0 === _b || _b.set(this.id, this);
74
80
  }
75
81
  _releaseEvent() {
76
82
  this.event.release();
@@ -80,18 +86,17 @@ class BaseModel extends layout_item_1.LayoutItem {
80
86
  }
81
87
  init(option) {}
82
88
  afterInit() {}
89
+ getVisible() {
90
+ var _a;
91
+ return !1 !== (null === (_a = this._spec) || void 0 === _a ? void 0 : _a.visible);
92
+ }
83
93
  onLayoutStart(layoutRect, viewRect, ctx) {
84
- super.onLayoutStart(layoutRect, viewRect, ctx), this._isLayout = !0;
94
+ var _a;
95
+ null === (_a = this._layout) || void 0 === _a || _a.onLayoutStart(layoutRect, viewRect, ctx);
85
96
  }
86
97
  onLayoutEnd(ctx) {
87
- const layoutRect = this.getLayoutRect();
88
- !this._forceLayoutTag && (0, vutils_1.isEqual)(this._lastLayoutRect, layoutRect) || this.updateLayoutAttribute(),
89
- this._forceLayoutTag = !1, this.getMarks().forEach((m => m.updateLayoutState(!0, !0))),
90
- this._isLayout = !1;
91
- }
92
- _forceLayout() {
93
98
  var _a;
94
- this._isLayout || (this._forceLayoutTag = !0, null === (_a = this._option.globalInstance.getChart()) || void 0 === _a || _a.setLayoutTag(!0));
99
+ null === (_a = this._layout) || void 0 === _a || _a.onLayoutEnd(ctx), this.getMarks().forEach((m => m.updateLayoutState(!0, !0)));
95
100
  }
96
101
  onEvaluateEnd(ctx) {}
97
102
  onDataUpdate() {}
@@ -131,7 +136,6 @@ class BaseModel extends layout_item_1.LayoutItem {
131
136
  merge_spec_1.mergeSpec)({}, this._theme, this._prepareSpecBeforeMergingTheme(specFromChart), this._prepareSpecBeforeMergingTheme(originalSpec)), baseSpec = this._spec;
132
137
  (0, vutils_1.isArray)(baseSpec) ? this._spec = baseSpec.map((spec => merge(spec))) : this._spec = merge(baseSpec);
133
138
  }
134
- this._prepareSpecAfterMergingTheme();
135
139
  }
136
140
  _getDefaultSpecFromChart(chartSpec) {
137
141
  return {};
@@ -142,11 +146,6 @@ class BaseModel extends layout_item_1.LayoutItem {
142
146
  _prepareSpecBeforeMergingTheme(obj) {
143
147
  return obj;
144
148
  }
145
- _prepareSpecAfterMergingTheme(obj) {
146
- arguments.length || (obj = this._spec);
147
- const newObj = (0, preprocess_1.preprocessSpecOrTheme)("spec", obj, this.getColorScheme(), "series" === this.modelType ? this._spec : void 0);
148
- return arguments.length || (this._spec = newObj), newObj;
149
- }
150
149
  setCurrentTheme(noRender) {
151
150
  return __awaiter(this, void 0, void 0, (function*() {
152
151
  const modifyConfig = () => (this.reInit(this._getTheme()), {
@@ -158,7 +157,8 @@ class BaseModel extends layout_item_1.LayoutItem {
158
157
  }
159
158
  updateLayoutAttribute() {}
160
159
  setAttrFromSpec() {
161
- super.setAttrFromSpec(this._spec, this._option.getChartViewRect());
160
+ var _a;
161
+ null === (_a = this._layout) || void 0 === _a || _a.setAttrFromSpec(this._spec, this._option.getChartViewRect());
162
162
  }
163
163
  _convertMarkStyle(style) {
164
164
  return Object.assign({}, style);
@@ -175,7 +175,7 @@ class BaseModel extends layout_item_1.LayoutItem {
175
175
  }))), mark.initStyleWithSpec(newSpec, key);
176
176
  }
177
177
  stateKeyToSignalName(key, opt) {
178
- let name = `${constant_1.PREFIX}_${this.modelType}_${this.type}_${this.id}_${key}`;
178
+ let name = `${base_1.PREFIX}_${this.modelType}_${this.type}_${this.id}_${key}`;
179
179
  return opt && (name += `_${opt}`), name;
180
180
  }
181
181
  compileData() {
@@ -200,12 +200,8 @@ class BaseModel extends layout_item_1.LayoutItem {
200
200
  }
201
201
  _getDataIdKey() {}
202
202
  getColorScheme() {
203
- var _a, _b, _c;
204
- return (null !== (_c = null === (_b = (_a = this._option).getThemeConfig) || void 0 === _b ? void 0 : _b.call(_a).chartLevelTheme) && void 0 !== _c ? _c : builtin_1.defaultChartLevelTheme).colorScheme;
205
- }
206
- _getChartLevelTheme() {
207
- var _a, _b, _c;
208
- return null !== (_c = null === (_b = (_a = this._option).getThemeConfig) || void 0 === _b ? void 0 : _b.call(_a).chartLevelTheme) && void 0 !== _c ? _c : builtin_1.defaultChartLevelTheme;
203
+ var _a, _b;
204
+ return null === (_b = (_a = this._option).getTheme) || void 0 === _b ? void 0 : _b.call(_a).colorScheme;
209
205
  }
210
206
  }
211
207
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model/base-model.ts"],"names":[],"mappings":"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","file":"base-model.js","sourcesContent":["import { cloneDeepSpec } from '../util/spec/clone-deep';\nimport { preprocessSpecOrTheme } from '../util/spec/preprocess';\nimport { createID } from '../util/id';\nimport { mergeSpec } from '../util/spec/merge-spec';\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 {\n Datum,\n StateValueType,\n ConvertToMarkStyleSpec,\n ICommonSpec,\n StringOrNumber,\n IRect,\n ISeriesSpec\n} from '../typings';\nimport type { CompilableData } from '../compile/data/compilable-data';\nimport { PREFIX } from '../constant';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\nimport { isArray, isEqual, isValid } from '@visactor/vutils';\nimport { Factory } from '../core/factory';\nimport { MarkSet } from '../mark/mark-set';\nimport { defaultChartLevelTheme } from '../theme/builtin';\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 _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 protected _theme?: any; // 非全局 theme,是对应于具体 model 的 theme 对象\n\n /** for layout diff */\n protected _lastLayoutRect: ILayoutRect = null;\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._transformSpec();\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 }\n coordinate?: CoordinateType;\n\n protected _releaseEvent() {\n this.event.release();\n }\n\n created() {\n this._initTheme();\n this.setAttrFromSpec();\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 beforeRelease() {\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._data?.release();\n this._data = this._specIndex = null;\n this._marks.clear();\n super.release();\n }\n\n updateSpec(spec: any) {\n this._spec = cloneDeepSpec(spec);\n const result = this._compareSpec();\n this._originalSpec = spec;\n if (!result.reMake) {\n this.reInit();\n }\n return result;\n }\n\n protected _transformSpec() {\n // do nothing\n // change spec by default logic\n }\n\n protected _compareSpec() {\n const result = {\n change: false,\n reMake: false,\n reRender: false,\n reSize: false,\n reCompile: false\n };\n return result;\n }\n\n reInit(theme?: any) {\n // before reInit reset this._spec to original\n this._spec = cloneDeepSpec(this._originalSpec);\n this._transformSpec();\n this._initTheme(theme);\n this.setAttrFromSpec();\n }\n\n protected _initTheme(theme?: any) {\n if (theme) {\n this._theme = theme;\n } else {\n this._theme = this._getTheme();\n }\n\n this._mergeThemeToSpec();\n }\n\n protected _getTheme(): any {\n return undefined;\n }\n\n /** 将 theme merge 到 spec 中 */\n protected _mergeThemeToSpec() {\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(this.getChart().getSpec());\n\n // this._originalSpec + specFromChart + this._theme = this._spec\n const merge = (originalSpec: any) =>\n mergeSpec(\n {},\n this._theme,\n this._prepareSpecBeforeMergingTheme(specFromChart),\n this._prepareSpecBeforeMergingTheme(originalSpec)\n );\n\n const baseSpec = this._spec;\n if (isArray(baseSpec)) {\n this._spec = baseSpec.map(spec => merge(spec)) as unknown as T;\n } else {\n this._spec = merge(baseSpec);\n }\n }\n this._prepareSpecAfterMergingTheme();\n }\n\n /** 从 chart spec 提取配置作为 model 的默认 spec 配置 */\n protected _getDefaultSpecFromChart(chartSpec: any): Partial<T> {\n return {};\n }\n\n /** 是否在初始化时将 theme 自动 merge 到 spec */\n protected _shouldMergeThemeToSpec(): boolean {\n return true;\n }\n\n /** 在 merge 主题前对 spec 进行预处理 */\n protected _prepareSpecBeforeMergingTheme(obj?: any): any {\n // do nothing\n return obj;\n }\n\n /** 在 merge 主题后对 spec 进行遍历和转换 */\n protected _prepareSpecAfterMergingTheme(obj?: any): any {\n if (!arguments.length) {\n obj = this._spec;\n }\n\n const newObj = preprocessSpecOrTheme(\n 'spec',\n obj,\n this.getColorScheme(),\n this.modelType === 'series' ? (this._spec as unknown as ISeriesSpec) : undefined\n );\n\n if (!arguments.length) {\n this._spec = newObj;\n }\n return newObj;\n }\n\n async setCurrentTheme(noRender?: boolean) {\n const modifyConfig = () => {\n // 重新初始化\n this.reInit(this._getTheme());\n\n return { change: true, reMake: false };\n };\n\n if (noRender) {\n modifyConfig();\n } else {\n await this._option.globalInstance.updateCustomConfigAndRerender(modifyConfig);\n }\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 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 getColorScheme() {\n return (this._option.getThemeConfig?.().chartLevelTheme ?? defaultChartLevelTheme).colorScheme;\n }\n\n protected _getChartLevelTheme() {\n return this._option.getThemeConfig?.().chartLevelTheme ?? defaultChartLevelTheme;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/model/base-model.ts"],"names":[],"mappings":"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","file":"base-model.js","sourcesContent":["import { cloneDeepSpec } from '../util/spec/clone-deep';\nimport { createID } from '../util/id';\nimport { mergeSpec } from '../util/spec/merge-spec';\nimport { Event } from '../event/event';\nimport type { IEvent } from '../event/interface';\nimport type {\n IEffect,\n IModel,\n IModelInitOption,\n IModelOption,\n IModelRenderOption,\n IModelEvaluateOption,\n IModelSpec,\n IModelMarkInfo\n} from './interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IMark, IMarkOption, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type {\n Datum,\n StateValueType,\n ConvertToMarkStyleSpec,\n ICommonSpec,\n StringOrNumber,\n IRect,\n ILayoutRect\n} from '../typings';\nimport type { CompilableData } from '../compile/data/compilable-data';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\nimport { isArray, isValid } from '@visactor/vutils';\nimport { Factory } from '../core/factory';\nimport { MarkSet } from '../mark/mark-set';\nimport type { ILayoutItem } from '../layout/interface';\nimport { CompilableBase } from '../compile/compilable-base';\nimport { PREFIX } from '../constant/base';\n\nexport abstract class BaseModel<T extends IModelSpec> extends CompilableBase implements IModel {\n protected _spec: T;\n getSpec(): T {\n return this._spec || ({} as T);\n }\n\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 // 布局\n protected _layout?: ILayoutItem = null;\n get layout() {\n return this._layout;\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 _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 protected _theme?: any; // 非全局 theme,是对应于具体 model 的 theme 对象\n\n /** for layout diff */\n protected _lastLayoutRect: ILayoutRect = null;\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._transformSpec();\n this.userId = spec.id;\n this._specIndex = option.specIndex ?? 0;\n this.effect = {};\n this.event = new Event(option.eventDispatcher, option.mode);\n option.map?.set(this.id, this);\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 init(option: IModelInitOption) {\n // do nothing\n }\n\n afterInit() {\n // do nothing\n }\n\n getVisible() {\n return (this._spec as unknown as any)?.visible !== false;\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void {\n // do nothing\n this._layout?.onLayoutStart(layoutRect, viewRect, ctx);\n }\n onLayoutEnd(ctx: any): void {\n this._layout?.onLayoutEnd(ctx);\n this.getMarks().forEach(m => m.updateLayoutState(true, 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 beforeRelease() {\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._data?.release();\n this._data = this._specIndex = null;\n this._marks.clear();\n super.release();\n }\n\n updateSpec(spec: any) {\n this._spec = cloneDeepSpec(spec);\n const result = this._compareSpec();\n this._originalSpec = spec;\n if (!result.reMake) {\n this.reInit();\n }\n return result;\n }\n\n protected _transformSpec() {\n // do nothing\n // change spec by default logic\n }\n\n protected _compareSpec() {\n const result = {\n change: false,\n reMake: false,\n reRender: false,\n reSize: false,\n reCompile: false\n };\n return result;\n }\n\n reInit(theme?: any) {\n // before reInit reset this._spec to original\n this._spec = cloneDeepSpec(this._originalSpec);\n this._transformSpec();\n this._initTheme(theme);\n this.setAttrFromSpec();\n }\n\n protected _initTheme(theme?: any) {\n // if (this.getVisible() === false) {\n // // 不展示不需要处理主题\n // return;\n // }\n if (theme) {\n this._theme = theme;\n } else {\n this._theme = this._getTheme();\n }\n\n this._mergeThemeToSpec();\n }\n\n protected _getTheme(): any {\n return undefined;\n }\n\n /** 将 theme merge 到 spec 中 */\n protected _mergeThemeToSpec() {\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(this.getChart().getSpec());\n\n // this._originalSpec + specFromChart + this._theme = this._spec\n const merge = (originalSpec: any) =>\n mergeSpec(\n {},\n this._theme,\n this._prepareSpecBeforeMergingTheme(specFromChart),\n this._prepareSpecBeforeMergingTheme(originalSpec)\n );\n\n const baseSpec = this._spec;\n if (isArray(baseSpec)) {\n this._spec = baseSpec.map(spec => merge(spec)) as unknown as T;\n } else {\n this._spec = merge(baseSpec);\n }\n }\n }\n\n /** 从 chart spec 提取配置作为 model 的默认 spec 配置 */\n protected _getDefaultSpecFromChart(chartSpec: any): Partial<T> {\n return {};\n }\n\n /** 是否在初始化时将 theme 自动 merge 到 spec */\n protected _shouldMergeThemeToSpec(): boolean {\n return true;\n }\n\n /** 在 merge 主题前对 spec 进行预处理 */\n protected _prepareSpecBeforeMergingTheme(obj?: any): any {\n // do nothing\n return obj;\n }\n\n async setCurrentTheme(noRender?: boolean) {\n const modifyConfig = () => {\n // 重新初始化\n this.reInit(this._getTheme());\n\n return { change: true, reMake: false };\n };\n\n if (noRender) {\n modifyConfig();\n } else {\n await this._option.globalInstance.updateCustomConfigAndRerender(modifyConfig);\n }\n }\n\n updateLayoutAttribute() {\n // do nothing\n }\n\n setAttrFromSpec() {\n this._layout?.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 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 getColorScheme() {\n return this._option.getTheme?.().colorScheme;\n }\n}\n"]}
@@ -5,92 +5,19 @@ import type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interfac
5
5
  import type { RenderMode } from '../typings/spec/common';
6
6
  import type { VChart } from '../vchart-all';
7
7
  import type { IData } from '@visactor/vgrammar-core';
8
- import type { IOrientType, IPoint, IGroupMarkSpec, ConvertToMarkStyleSpec, CoordinateType, ICommonSpec, IRect, StringOrNumber } from '../typings';
8
+ import type { StringOrNumber } from '../typings/common';
9
+ import type { IGroupMarkSpec, ConvertToMarkStyleSpec, ICommonSpec } from '../typings/visual';
10
+ import type { IRect } from '../typings/space';
11
+ import type { IPoint, CoordinateType } from '../typings/coordinate';
9
12
  import type { ITheme } from '../theme';
10
13
  import type { StateValueType } from '../typings/spec';
11
14
  import type { ICompilable, ICompilableInitOption } from '../compile/interface';
12
15
  import type { ICompilableData } from '../compile/data';
13
16
  import type { IGlobalScale } from '../scale/interface';
14
17
  import type { IChart } from '../chart/interface';
15
- import type { IChartLevelTheme } from '../core/interface';
16
18
  import type { IThemeColorScheme } from '../theme/color-scheme/interface';
17
- export type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number) | IPercentOffset;
18
- export interface ILayoutPoint {
19
- x: number;
20
- y: number;
21
- }
22
- export interface ILayoutRectLevel {
23
- width: number;
24
- height: number;
25
- }
26
- export interface ILayoutRect {
27
- width: number;
28
- height: number;
29
- }
30
- export type IPercent = `${number}%`;
31
- export type IPercentOffset = {
32
- percent?: number;
33
- offset?: number;
34
- };
35
- export type ILayoutPercent = IPercent | number;
36
- type ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';
37
- export type ILayoutOrientPadding = {
38
- left?: ILayoutNumber;
39
- right?: ILayoutNumber;
40
- top?: ILayoutNumber;
41
- bottom?: ILayoutNumber;
42
- };
43
- export type ILayoutPaddingSpec = ILayoutOrientPadding | ILayoutNumber | ILayoutNumber[];
44
- export interface ILayoutItem {
45
- directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';
46
- layoutClip: boolean;
47
- layoutType: ILayoutType;
48
- layoutBindRegionID: number | number[];
49
- layoutOrient: IOrientType;
50
- layoutPaddingLeft: number;
51
- layoutPaddingTop: number;
52
- layoutPaddingRight: number;
53
- layoutPaddingBottom: number;
54
- layoutOffsetX: number;
55
- layoutOffsetY: number;
56
- layoutLevel: number;
57
- layoutZIndex: number;
58
- chartLayoutRect: ILayoutRect;
59
- getVisible: () => boolean;
60
- getSpec?: () => any;
61
- getAutoIndent: () => boolean;
62
- getLayoutStartPoint: () => ILayoutPoint;
63
- getLayoutRect: () => ILayoutRect;
64
- getLastComputeOutBounds: () => IBoundsLike;
65
- getGraphicBounds: () => IBoundsLike;
66
- setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) => void;
67
- computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;
68
- setLayoutStartPosition: (pos: Partial<IPoint>) => void;
69
- absoluteLayoutInRect: (rect: IRect) => void;
70
- updateLayoutAttribute: () => void;
71
- }
72
- export interface ILayoutItemSpec {
73
- layoutType?: ILayoutType;
74
- layoutLevel?: number;
75
- orient?: IOrientType;
76
- padding?: ILayoutPaddingSpec;
77
- noOuterPadding?: boolean;
78
- width?: ILayoutNumber;
79
- maxWidth?: ILayoutNumber;
80
- minWidth?: ILayoutNumber;
81
- height?: ILayoutNumber;
82
- maxHeight?: ILayoutNumber;
83
- minHeight?: ILayoutNumber;
84
- offsetX?: ILayoutNumber;
85
- offsetY?: ILayoutNumber;
86
- zIndex?: number;
87
- clip?: boolean;
88
- left?: ILayoutNumber;
89
- right?: ILayoutNumber;
90
- top?: ILayoutNumber;
91
- bottom?: ILayoutNumber;
92
- center?: boolean;
93
- }
19
+ import type { ILayoutItem, ILayoutItemSpec } from '../layout/interface';
20
+ import type { ILayoutPoint, ILayoutRect } from '../typings/layout';
94
21
  export interface IModelInitOption {
95
22
  }
96
23
  export interface IModelLayoutOption {
@@ -118,7 +45,7 @@ export interface IUpdateSpecResult {
118
45
  export interface IModelProduct {
119
46
  srData: IData;
120
47
  }
121
- export interface IModel extends ICompilable, ILayoutItem {
48
+ export interface IModel extends ICompilable {
122
49
  readonly modelType: string;
123
50
  readonly type: string;
124
51
  readonly specKey: string;
@@ -127,6 +54,8 @@ export interface IModel extends ICompilable, ILayoutItem {
127
54
  readonly event: IEvent;
128
55
  readonly effect: IEffect;
129
56
  coordinate?: CoordinateType;
57
+ layout?: ILayoutItem;
58
+ getVisible: () => boolean;
130
59
  getOption: () => IModelOption;
131
60
  getMarks: () => IMark[];
132
61
  getMarkNameMap: () => Record<string, IMark>;
@@ -137,19 +66,28 @@ export interface IModel extends ICompilable, ILayoutItem {
137
66
  init: (option: IModelInitOption) => void;
138
67
  reInit: (theme?: any, lastSpec?: any) => void;
139
68
  beforeRelease: () => void;
140
- onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;
141
- onLayoutEnd: (ctx: IModelLayoutOption) => void;
142
69
  onEvaluateEnd: (ctx: IModelEvaluateOption) => void;
143
70
  onRender: (ctx: IModelRenderOption) => void;
144
71
  onDataUpdate: () => void;
145
72
  updateSpec: (spec: any, totalSpec?: any) => IUpdateSpecResult;
146
73
  getSpec?: () => any;
147
74
  getSpecIndex: () => number;
75
+ onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;
76
+ onLayoutEnd: (ctx: IModelLayoutOption) => void;
148
77
  setCurrentTheme: (noRender?: boolean) => void;
149
78
  getColorScheme: () => IThemeColorScheme | undefined;
150
79
  setMarkStyle: <T extends ICommonSpec>(mark?: IMarkRaw<T>, style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>, state?: StateValueType, level?: number) => void;
151
80
  initMarkStyleWithSpec: (mark?: IMark, spec?: any, key?: string) => void;
152
81
  }
82
+ export interface ILayoutModel extends IModel {
83
+ getLayoutStartPoint: () => IPoint;
84
+ setLayoutStartPosition: (pos: Partial<IPoint>) => void;
85
+ getLayoutRect: () => ILayoutRect;
86
+ setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>) => void;
87
+ getLastComputeOutBounds: () => IBoundsLike;
88
+ getBoundsInRect: (rect: ILayoutRect, fullRect: ILayoutRect) => IBoundsLike;
89
+ afterSetLayoutStartPoint: (pos: ILayoutPoint) => void;
90
+ }
153
91
  export interface IModelOption extends ICompilableInitOption {
154
92
  eventDispatcher: IEventDispatcher;
155
93
  dataSet: DataSet;
@@ -158,12 +96,7 @@ export interface IModelOption extends ICompilableInitOption {
158
96
  globalInstance: VChart;
159
97
  specIndex?: number;
160
98
  specKey?: string;
161
- getThemeConfig?: () => {
162
- globalTheme?: string;
163
- optionTheme?: string | ITheme;
164
- specTheme?: string | ITheme;
165
- chartLevelTheme: IChartLevelTheme;
166
- };
99
+ getTheme?: () => ITheme;
167
100
  getChartLayoutRect: () => IRect;
168
101
  getChartViewRect: () => ILayoutRect;
169
102
  getChart: () => IChart;
@@ -185,4 +118,3 @@ export interface IModelMarkInfo {
185
118
  type: MarkTypeEnum | string | (MarkTypeEnum | string)[];
186
119
  name: string;
187
120
  }
188
- export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { IEvent, IEventDispatcher } from '../event/interface';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { VChart } from '../vchart-all';\nimport type { IData } from '@visactor/vgrammar-core';\nimport type {\n IOrientType,\n IPoint,\n IGroupMarkSpec,\n ConvertToMarkStyleSpec,\n CoordinateType,\n ICommonSpec,\n IRect,\n StringOrNumber\n} from '../typings';\nimport type { ITheme } from '../theme';\nimport type { StateValueType } from '../typings/spec';\nimport type { ICompilable, ICompilableInitOption } from '../compile/interface';\nimport type { ICompilableData } from '../compile/data';\nimport type { IGlobalScale } from '../scale/interface';\nimport type { IChart } from '../chart/interface';\nimport type { IChartLevelTheme } from '../core/interface';\nimport type { IThemeColorScheme } from '../theme/color-scheme/interface';\n\nexport type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number) | IPercentOffset;\n\nexport interface ILayoutPoint {\n x: number;\n y: number;\n}\n\nexport interface ILayoutRectLevel {\n width: number;\n height: number;\n}\nexport interface ILayoutRect {\n width: number;\n height: number;\n}\n\nexport type IPercent = `${number}%`;\n\nexport type IPercentOffset = { percent?: number; offset?: number };\n\nexport type ILayoutPercent = IPercent | number;\n\n/**\n * 相对布局和绝对布局\n * 在相对布局结束后进行二次的绝对布局\n * 绝对布局会只根据 chart 进行相对处理\n */\n\ntype ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';\n\nexport type ILayoutOrientPadding = {\n left?: ILayoutNumber;\n right?: ILayoutNumber;\n top?: ILayoutNumber;\n bottom?: ILayoutNumber;\n};\n\n/** 布局 padding的配置 */\nexport type ILayoutPaddingSpec = ILayoutOrientPadding | ILayoutNumber | ILayoutNumber[];\n\n/**\n * 因为这些元素都会继承到各个模块,所以这里统一有前缀避免语意冲突\n */\nexport interface ILayoutItem {\n /**\n * 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n */\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n layoutClip: boolean;\n layoutType: ILayoutType;\n layoutBindRegionID: number | number[];\n layoutOrient: IOrientType;\n\n layoutPaddingLeft: number;\n layoutPaddingTop: number;\n layoutPaddingRight: number;\n layoutPaddingBottom: number;\n\n layoutOffsetX: number;\n layoutOffsetY: number;\n\n // 越大越先处理\n layoutLevel: number;\n\n layoutZIndex: number;\n chartLayoutRect: ILayoutRect;\n\n /** 是否可见 */\n getVisible: () => boolean;\n\n getSpec?: () => any;\n\n /** 是否自动缩进 */\n getAutoIndent: () => boolean;\n\n getLayoutStartPoint: () => ILayoutPoint;\n getLayoutRect: () => ILayoutRect;\n getLastComputeOutBounds: () => IBoundsLike;\n getGraphicBounds: () => IBoundsLike;\n\n /**\n * 更新元素布局的 layoutRect 大小,用来更新指定布局空间\n */\n setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) => void;\n /**\n * 基于元素内部逻辑计算占位空间,rect表示可用空间\n */\n computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;\n /**\n * 更新元素布局的起始点位置\n */\n setLayoutStartPosition: (pos: Partial<IPoint>) => void;\n /**\n * 更新绝对布局元素的位置信息\n */\n absoluteLayoutInRect: (rect: IRect) => void;\n /**\n * 元素内部布局信息更新\n */\n updateLayoutAttribute: () => void;\n}\n\nexport interface ILayoutItemSpec {\n /** 当前模块的布局类型,配置为 absolute 的话,当前元素会以图表左上角为原点进行绝对布局 */\n layoutType?: ILayoutType;\n /**\n * 布局顺序等级,等级越大的,越优先布局\n * 比如顶部同时有标题和图例的场景,期望标题先放在顶部,然后放置图例。\n */\n layoutLevel?: number;\n\n // 基础的布局配置\n /** 模块布局位置 */\n orient?: IOrientType;\n /** 模块的布局间距 */\n padding?: ILayoutPaddingSpec;\n /** 是否按照 orient 自动修改 padding,隐藏位于外侧的 padding。目前只在组件上生效 */\n noOuterPadding?: boolean;\n /** 模块的布局大小:宽度 */\n width?: ILayoutNumber;\n /** 模块的布局最大宽度 */\n maxWidth?: ILayoutNumber;\n /** 模块的布局最小宽度 */\n minWidth?: ILayoutNumber;\n /** 模块的布局大小:高度 */\n height?: ILayoutNumber;\n /** 模块的布局最大高度 */\n maxHeight?: ILayoutNumber;\n /** 模块的布局最小高度 */\n minHeight?: ILayoutNumber;\n /** 模块的布局位置偏移:X */\n offsetX?: ILayoutNumber;\n /** 模块的布局位置偏移:Y */\n offsetY?: ILayoutNumber;\n\n /** 模块的展示层级,当2个模块重叠时,层级较大的展示在上方 */\n zIndex?: number;\n /** 模块是否裁剪超出布局区域外的绘图内容 */\n clip?: boolean;\n\n // 绝对布局下的对齐设置\n\n /** 模块绝对布局下,与图表左侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n left?: ILayoutNumber;\n /** 模块绝对布局下,与图表右侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n right?: ILayoutNumber;\n /** 模块绝对布局下,与图表顶部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n top?: ILayoutNumber;\n /** 模块绝对布局下,与图表底部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n bottom?: ILayoutNumber;\n /** 模块绝对布局下,元素将放置在图表的正中间。注意仅在 layoutType === 'absolute' 时生效,同时将忽略 padding 属性 */\n center?: boolean;\n}\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelInitOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelLayoutOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelEvaluateOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelRenderOption {}\n\nexport interface IEffect {\n [key: string]: (e?: any) => any;\n}\n\nexport interface IMarkTreeGroup extends Partial<IMarkStyle<IGroupMarkSpec>> {\n // 必须要有名字\n type: 'group';\n name: string;\n marks: (IMarkTreeGroup | IMark)[];\n // TODO: 这里要不要支持复杂场景,有图形组合的场景,用自定义mark?\n // from?: IData;\n}\n\nexport type IMarkTree = IMarkTreeGroup | IMark | (IMarkTreeGroup | IMark)[];\n\nexport interface IUpdateSpecResult {\n change: boolean;\n reMake: boolean;\n reRender?: boolean;\n reSize?: boolean;\n // TODO: compile 的判断应不应该出现在这里?\n reCompile?: boolean;\n}\n\nexport interface IModelProduct {\n srData: IData;\n}\n\nexport interface IModel extends ICompilable, ILayoutItem {\n readonly modelType: string;\n readonly type: string;\n readonly specKey: string;\n\n readonly id: number;\n\n readonly userId?: StringOrNumber;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n coordinate?: CoordinateType;\n\n // 初始化参数\n getOption: () => IModelOption;\n\n getMarks: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarkInfoList: () => IModelMarkInfo[];\n\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n // updateSpec 或者切换主题后,根据新 spec 执行的初始化过程\n reInit: (theme?: any, lastSpec?: any) => void;\n beforeRelease: () => void;\n\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n onEvaluateEnd: (ctx: IModelEvaluateOption) => void;\n onRender: (ctx: IModelRenderOption) => void;\n onDataUpdate: () => void;\n\n updateSpec: (spec: any, totalSpec?: any) => IUpdateSpecResult;\n getSpec?: () => any;\n getSpecIndex: () => number;\n\n // theme\n setCurrentTheme: (noRender?: boolean) => void;\n getColorScheme: () => IThemeColorScheme | undefined;\n\n setMarkStyle: <T extends ICommonSpec>(\n mark?: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) => void;\n\n initMarkStyleWithSpec: (mark?: IMark, spec?: any, key?: string) => void;\n}\n\nexport interface IModelOption extends ICompilableInitOption {\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n specIndex?: number;\n specKey?: string;\n\n getThemeConfig?: () => {\n globalTheme?: string;\n optionTheme?: string | ITheme;\n specTheme?: string | ITheme;\n chartLevelTheme: IChartLevelTheme;\n };\n\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n}\n\nexport interface IModelConstructor {\n new (ctx: IModelOption): IModel;\n}\n\nexport type ILayoutModelState = {\n layoutUpdateRank: number;\n [key: string]: unknown;\n};\n\n// TODO: 补充model共有配置\nexport type IModelSpec = ILayoutItemSpec & { id?: StringOrNumber };\n\nexport interface IModelMarkInfo {\n /** mark 类型 */\n type: MarkTypeEnum | string | (MarkTypeEnum | string)[];\n /** mark 名称 */\n name: string;\n}\n"]}
1
+ {"version":3,"sources":["../src/model/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { IEvent, IEventDispatcher } from '../event/interface';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { VChart } from '../vchart-all';\nimport type { IData } from '@visactor/vgrammar-core';\nimport type { StringOrNumber } from '../typings/common';\nimport type { IGroupMarkSpec, ConvertToMarkStyleSpec, ICommonSpec } from '../typings/visual';\nimport type { IRect } from '../typings/space';\nimport type { IPoint, CoordinateType } from '../typings/coordinate';\nimport type { ITheme } from '../theme';\nimport type { StateValueType } from '../typings/spec';\nimport type { ICompilable, ICompilableInitOption } from '../compile/interface';\nimport type { ICompilableData } from '../compile/data';\nimport type { IGlobalScale } from '../scale/interface';\nimport type { IChart } from '../chart/interface';\nimport type { IThemeColorScheme } from '../theme/color-scheme/interface';\nimport type { ILayoutItem, ILayoutItemSpec } from '../layout/interface';\nimport type { ILayoutPoint, ILayoutRect } from '../typings/layout';\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelInitOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelLayoutOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelEvaluateOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelRenderOption {}\n\nexport interface IEffect {\n [key: string]: (e?: any) => any;\n}\n\nexport interface IMarkTreeGroup extends Partial<IMarkStyle<IGroupMarkSpec>> {\n // 必须要有名字\n type: 'group';\n name: string;\n marks: (IMarkTreeGroup | IMark)[];\n // TODO: 这里要不要支持复杂场景,有图形组合的场景,用自定义mark?\n // from?: IData;\n}\n\nexport type IMarkTree = IMarkTreeGroup | IMark | (IMarkTreeGroup | IMark)[];\n\nexport interface IUpdateSpecResult {\n change: boolean;\n reMake: boolean;\n reRender?: boolean;\n reSize?: boolean;\n // TODO: compile 的判断应不应该出现在这里?\n reCompile?: boolean;\n}\n\nexport interface IModelProduct {\n srData: IData;\n}\n\nexport interface IModel extends ICompilable {\n readonly modelType: string;\n readonly type: string;\n readonly specKey: string;\n\n readonly id: number;\n\n readonly userId?: StringOrNumber;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n coordinate?: CoordinateType;\n\n // 布局\n layout?: ILayoutItem;\n\n /** 是否可见 */\n getVisible: () => boolean;\n\n // 初始化参数\n getOption: () => IModelOption;\n\n getMarks: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarkInfoList: () => IModelMarkInfo[];\n\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n // updateSpec 或者切换主题后,根据新 spec 执行的初始化过程\n reInit: (theme?: any, lastSpec?: any) => void;\n beforeRelease: () => void;\n\n onEvaluateEnd: (ctx: IModelEvaluateOption) => void;\n onRender: (ctx: IModelRenderOption) => void;\n onDataUpdate: () => void;\n\n updateSpec: (spec: any, totalSpec?: any) => IUpdateSpecResult;\n getSpec?: () => any;\n getSpecIndex: () => number;\n\n //布局周期\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n\n // theme\n setCurrentTheme: (noRender?: boolean) => void;\n getColorScheme: () => IThemeColorScheme | undefined;\n\n setMarkStyle: <T extends ICommonSpec>(\n mark?: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) => void;\n\n initMarkStyleWithSpec: (mark?: IMark, spec?: any, key?: string) => void;\n}\n\nexport interface ILayoutModel extends IModel {\n // 布局相关\n getLayoutStartPoint: () => IPoint;\n setLayoutStartPosition: (pos: Partial<IPoint>) => void;\n getLayoutRect: () => ILayoutRect;\n setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>) => void;\n\n getLastComputeOutBounds: () => IBoundsLike;\n\n getBoundsInRect: (rect: ILayoutRect, fullRect: ILayoutRect) => IBoundsLike;\n\n //布局周期\n afterSetLayoutStartPoint: (pos: ILayoutPoint) => void;\n}\n\nexport interface IModelOption extends ICompilableInitOption {\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n specIndex?: number;\n specKey?: string;\n\n getTheme?: () => ITheme;\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n}\n\nexport interface IModelConstructor {\n new (ctx: IModelOption): IModel;\n}\n\nexport type ILayoutModelState = {\n layoutUpdateRank: number;\n [key: string]: unknown;\n};\n\n// TODO: 补充model共有配置\nexport type IModelSpec = ILayoutItemSpec & { id?: StringOrNumber };\n\nexport interface IModelMarkInfo {\n /** mark 类型 */\n type: MarkTypeEnum | string | (MarkTypeEnum | string)[];\n /** mark 名称 */\n name: string;\n}\n"]}
@@ -0,0 +1,41 @@
1
+ import type { IBoundsLike } from '@visactor/vutils';
2
+ import type { ILayoutItem } from '../layout/interface';
3
+ import type { IOrientType, IPolarOrientType, IRect } from '../typings/space';
4
+ import { BaseModel } from './base-model';
5
+ import type { IModelSpec } from './interface';
6
+ import type { IPoint } from '../typings/coordinate';
7
+ import type { ILayoutType, ILayoutPoint, ILayoutRect } from '../typings/layout';
8
+ export declare abstract class LayoutModel<T extends IModelSpec> extends BaseModel<T> {
9
+ protected layoutType: ILayoutType | 'none';
10
+ protected layoutLevel?: number;
11
+ protected layoutZIndex: number;
12
+ layoutClip: boolean;
13
+ get layoutOrient(): IOrientType;
14
+ set layoutOrient(v: IOrientType);
15
+ protected _forceLayoutTag: boolean;
16
+ protected _layout: ILayoutItem;
17
+ protected _orient?: IPolarOrientType | IOrientType;
18
+ protected _layoutRect: ILayoutRect;
19
+ protected _layoutStartPos: IPoint;
20
+ protected _isLayout: boolean;
21
+ initLayout(): void;
22
+ onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void;
23
+ onLayoutEnd(ctx: any): void;
24
+ afterSetLayoutStartPoint(_pos: ILayoutPoint): void;
25
+ protected _forceLayout(): void;
26
+ getLayoutStartPoint(): IPoint;
27
+ setLayoutStartPosition(pos: Partial<IPoint>): any;
28
+ getLayoutRect(): ILayoutRect;
29
+ setLayoutRect(rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>): any;
30
+ getLastComputeOutBounds(): IBoundsLike;
31
+ getGraphicBounds: () => {
32
+ x1: number;
33
+ y1: number;
34
+ x2: number;
35
+ y2: number;
36
+ };
37
+ setAttrFromSpec(): void;
38
+ abstract getBoundsInRect(rect: ILayoutRect, fullRect: ILayoutRect): IBoundsLike;
39
+ protected _transformLayoutRect: (rect: ILayoutRect) => ILayoutRect;
40
+ protected _transformLayoutPosition: (rect: Partial<IPoint>) => Partial<IPoint>;
41
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.LayoutModel = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), base_model_1 = require("./base-model"), layout_item_1 = require("../layout/layout-item");
8
+
9
+ class LayoutModel extends base_model_1.BaseModel {
10
+ constructor() {
11
+ super(...arguments), this.layoutType = "normal", this.layoutLevel = 0, this.layoutZIndex = 0,
12
+ this._forceLayoutTag = !1, this._layout = null, this._orient = null, this._layoutRect = {
13
+ width: 0,
14
+ height: 0
15
+ }, this._layoutStartPos = {
16
+ x: 0,
17
+ y: 0
18
+ }, this._isLayout = !0, this.getGraphicBounds = () => this._layout ? {
19
+ x1: this._layout.getLayoutStartPoint().x,
20
+ y1: this._layout.getLayoutStartPoint().y,
21
+ x2: this._layout.getLayoutStartPoint().x + this._layout.getLayoutRect().width,
22
+ y2: this._layout.getLayoutStartPoint().y + this._layout.getLayoutRect().height
23
+ } : {
24
+ x1: 0,
25
+ x2: 0,
26
+ y1: 0,
27
+ y2: 0
28
+ }, this._transformLayoutRect = null, this._transformLayoutPosition = null;
29
+ }
30
+ get layoutOrient() {
31
+ return this._orient;
32
+ }
33
+ set layoutOrient(v) {
34
+ this._orient = v, this._layout && (this._layout.layoutOrient = v);
35
+ }
36
+ initLayout() {
37
+ "none" !== this.layoutType && (this._layout = new layout_item_1.LayoutItem(this, {
38
+ layoutType: this.layoutType,
39
+ layoutLevel: this.layoutLevel,
40
+ layoutOrient: this._orient,
41
+ transformLayoutRect: this._transformLayoutRect,
42
+ transformLayoutPosition: this._transformLayoutPosition
43
+ }), this._orient && "radius" !== this._orient && "angle" !== this._orient && this.layout && (this._layout.layoutOrient = this._orient));
44
+ }
45
+ onLayoutStart(layoutRect, viewRect, ctx) {
46
+ this._isLayout = !0, super.onLayoutStart(layoutRect, viewRect, ctx);
47
+ }
48
+ onLayoutEnd(ctx) {
49
+ super.onLayoutEnd(ctx), this.updateLayoutAttribute();
50
+ const layoutRect = this.getLayoutRect();
51
+ !this._forceLayoutTag && (0, vutils_1.isEqual)(this._lastLayoutRect, layoutRect) || (this._lastLayoutRect = Object.assign({}, layoutRect)),
52
+ this._forceLayoutTag = !1, this._isLayout = !1;
53
+ }
54
+ afterSetLayoutStartPoint(_pos) {}
55
+ _forceLayout() {
56
+ var _a;
57
+ this._isLayout || (this._forceLayoutTag = !0, null === (_a = this._option.globalInstance.getChart()) || void 0 === _a || _a.setLayoutTag(!0));
58
+ }
59
+ getLayoutStartPoint() {
60
+ return this._layout ? this._layout.getLayoutStartPoint() : this._layoutStartPos;
61
+ }
62
+ setLayoutStartPosition(pos) {
63
+ return this._layout ? this._layout.setLayoutStartPosition(pos) : this._layoutStartPos = (0,
64
+ vutils_1.merge)(this._layoutStartPos, pos);
65
+ }
66
+ getLayoutRect() {
67
+ return this._layout ? this._layout.getLayoutRect() : this._layoutRect;
68
+ }
69
+ setLayoutRect(rect, levelMap) {
70
+ return this._layout ? this._layout.setLayoutRect(rect) : this._lastLayoutRect = (0,
71
+ vutils_1.merge)(this._layoutRect, rect);
72
+ }
73
+ getLastComputeOutBounds() {
74
+ var _a;
75
+ return null === (_a = this._layout) || void 0 === _a ? void 0 : _a.getLastComputeOutBounds();
76
+ }
77
+ setAttrFromSpec() {
78
+ var _a, _b, _c;
79
+ super.setAttrFromSpec(), this.layoutClip = null !== (_a = this._spec.clip) && void 0 !== _a ? _a : this.layoutClip,
80
+ this.layoutZIndex = null !== (_b = this._spec.zIndex) && void 0 !== _b ? _b : this.layoutZIndex,
81
+ this.layoutType = null !== (_c = this._spec.layoutType) && void 0 !== _c ? _c : this.layoutType;
82
+ }
83
+ }
84
+
85
+ exports.LayoutModel = LayoutModel;
86
+ //# sourceMappingURL=layout-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model/layout-model.ts"],"names":[],"mappings":"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","file":"layout-model.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport { isEqual, merge } from '@visactor/vutils';\nimport type { ILayoutItem } from '../layout/interface';\nimport type { IOrientType, IPolarOrientType, IRect } from '../typings/space';\nimport { BaseModel } from './base-model';\nimport type { IModelSpec } from './interface';\nimport { LayoutItem } from '../layout/layout-item';\nimport type { IPoint } from '../typings/coordinate';\nimport type { ILayoutType, ILayoutPoint, ILayoutRect } from '../typings/layout';\n\nexport abstract class LayoutModel<T extends IModelSpec> extends BaseModel<T> {\n protected layoutType: ILayoutType | 'none' = 'normal';\n protected layoutLevel?: number = 0;\n protected layoutZIndex: number = 0;\n layoutClip: boolean;\n get layoutOrient() {\n return this._orient as IOrientType;\n }\n\n set layoutOrient(v: IOrientType) {\n this._orient = v;\n this._layout && (this._layout.layoutOrient = v);\n }\n\n protected _forceLayoutTag: boolean = false;\n protected _layout: ILayoutItem = null;\n protected _orient?: IPolarOrientType | IOrientType = null;\n\n protected _layoutRect: ILayoutRect = { width: 0, height: 0 };\n protected _layoutStartPos: IPoint = { x: 0, y: 0 };\n\n // TODO: 有些hack,这个tag是为了避免布局逻辑中,轴的数据变化,又由数据变化触发重新布局\n protected _isLayout: boolean = true;\n\n initLayout() {\n if (this.layoutType === 'none') {\n return;\n }\n this._layout = new LayoutItem(this, {\n layoutType: this.layoutType,\n layoutLevel: this.layoutLevel,\n layoutOrient: this._orient as IOrientType,\n transformLayoutRect: this._transformLayoutRect,\n transformLayoutPosition: this._transformLayoutPosition\n });\n if (this._orient && this._orient !== 'radius' && this._orient !== 'angle' && this.layout) {\n this._layout.layoutOrient = this._orient;\n }\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void {\n this._isLayout = true;\n super.onLayoutStart(layoutRect, viewRect, ctx);\n }\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n // diff layoutRect\n this.updateLayoutAttribute();\n const layoutRect = this.getLayoutRect();\n if (this._forceLayoutTag || !isEqual(this._lastLayoutRect, layoutRect)) {\n this._lastLayoutRect = { ...layoutRect };\n }\n this._forceLayoutTag = false;\n this._isLayout = false;\n }\n\n afterSetLayoutStartPoint(_pos: ILayoutPoint) {\n // do nothing\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 // 布局相关\n getLayoutStartPoint() {\n return this._layout ? this._layout.getLayoutStartPoint() : this._layoutStartPos;\n }\n setLayoutStartPosition(pos: Partial<IPoint>) {\n return this._layout\n ? this._layout.setLayoutStartPosition(pos)\n : (this._layoutStartPos = merge(this._layoutStartPos, pos));\n }\n getLayoutRect() {\n return this._layout ? this._layout.getLayoutRect() : this._layoutRect;\n }\n setLayoutRect(rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>) {\n return this._layout ? this._layout.setLayoutRect(rect) : (this._lastLayoutRect = merge(this._layoutRect, rect));\n }\n\n getLastComputeOutBounds() {\n return this._layout?.getLastComputeOutBounds();\n }\n\n getGraphicBounds = () => {\n if (this._layout) {\n return {\n x1: this._layout.getLayoutStartPoint().x,\n y1: this._layout.getLayoutStartPoint().y,\n x2: this._layout.getLayoutStartPoint().x + this._layout.getLayoutRect().width,\n y2: this._layout.getLayoutStartPoint().y + this._layout.getLayoutRect().height\n };\n }\n return { x1: 0, x2: 0, y1: 0, y2: 0 };\n };\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this.layoutClip = this._spec.clip ?? this.layoutClip;\n this.layoutZIndex = this._spec.zIndex ?? this.layoutZIndex;\n this.layoutType = this._spec.layoutType ?? this.layoutType;\n }\n\n abstract getBoundsInRect(rect: ILayoutRect, fullRect: ILayoutRect): IBoundsLike;\n\n protected _transformLayoutRect: (rect: ILayoutRect) => ILayoutRect = null;\n protected _transformLayoutPosition: (rect: Partial<IPoint>) => Partial<IPoint> = null;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { IMark } from '../mark/interface';
2
- import type { IModel, IModelOption, ILayoutItem, ILayoutItemSpec } from '../model/interface';
2
+ import type { ILayoutModel, IModelOption } from '../model/interface';
3
3
  import type { ISeries, SeriesType } from '../series/interface';
4
4
  import type { CoordinateType } from '../typings/coordinate';
5
5
  import type { IInteraction } from '../interaction/interface';
@@ -8,7 +8,8 @@ import type { ConvertToMarkStyleSpec, IRectMarkSpec } from '../typings/visual';
8
8
  import type { IAnimate } from '../animation/interface';
9
9
  import type { IGroupMark } from '../mark/group';
10
10
  import type { StringOrNumber } from '../typings';
11
- export interface IRegion extends IModel, ILayoutItem {
11
+ import type { ILayoutItemSpec } from '../layout/interface';
12
+ export interface IRegion extends ILayoutModel {
12
13
  animate?: IAnimate;
13
14
  interaction: IInteraction;
14
15
  getStackInverse: () => boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/region/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IMark } from '../mark/interface';\nimport type { IModel, IModelOption, ILayoutItem, ILayoutItemSpec } from '../model/interface';\nimport type { ISeries, SeriesType } from '../series/interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IInteraction } from '../interaction/interface';\nimport type { IProjectionSpec } from '../component/geo/interface';\nimport type { ConvertToMarkStyleSpec, IRectMarkSpec } from '../typings/visual';\nimport type { IAnimate } from '../animation/interface';\nimport type { IGroupMark } from '../mark/group';\nimport type { StringOrNumber } from '../typings';\n\nexport interface IRegion extends IModel, ILayoutItem {\n animate?: IAnimate;\n interaction: IInteraction;\n\n //stack\n getStackInverse: () => boolean;\n\n getMaxWidth: () => number | undefined;\n setMaxWidth: (value: number) => void;\n getMaxHeight: () => number | undefined;\n setMaxHeight: (value: number) => void;\n\n // 系列\n addSeries: (series: ISeries) => void;\n removeSeries: (series: ISeries) => void;\n\n getSeries: (opt?: ISeriesFilter) => ISeries[];\n getSeriesInName: (name: string) => ISeries;\n getSeriesInUserId: (userId: string) => ISeries;\n getSeriesInId: (id: number) => ISeries;\n getSeriesInType: (type: SeriesType) => ISeries[];\n getSeriesInCoordinateType: (type: CoordinateType) => ISeries[];\n getSeriesInDataName: (dataName: string) => ISeries[];\n\n getMarks: () => IMark[];\n getGroupMark: () => IGroupMark;\n}\n\nexport type ISeriesFilter = {\n name?: string;\n userId?: StringOrNumber | StringOrNumber[];\n specIndex?: number | number[];\n id?: number;\n type?: string;\n coordinateType?: CoordinateType;\n dataName?: string;\n};\n\nexport interface IRegionConstructor {\n new (spec: IRegionSpec, ctx: IModelOption): IRegion;\n}\n\nexport interface IRegionSpec extends ILayoutItemSpec {\n id?: StringOrNumber;\n coordinate?: CoordinateType;\n style?: ConvertToMarkStyleSpec<IRectMarkSpec>;\n /**\n * 堆积时是否逆序\n * @default false\n * @since 1.4.0\n */\n stackInverse?: boolean;\n}\n\nexport interface IGeoRegionSpec extends IRegionSpec {\n coordinate?: 'geo';\n /**\n * 是否可以拖拽\n * @default false\n */\n roam?: boolean;\n /**\n * 数据中的经度字段名\n */\n longitudeField?: string;\n /**\n * 数据中的纬度字段名\n */\n latitudeField?: string;\n /**\n * 地理映射配置\n */\n projection?: Partial<Omit<IProjectionSpec, 'name'>>;\n /**\n * 缩放最大最小倍数限制\n */\n zoomLimit?: {\n min?: number;\n max?: number;\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/region/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IMark } from '../mark/interface';\nimport type { ILayoutModel, IModelOption } from '../model/interface';\nimport type { ISeries, SeriesType } from '../series/interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IInteraction } from '../interaction/interface';\nimport type { IProjectionSpec } from '../component/geo/interface';\nimport type { ConvertToMarkStyleSpec, IRectMarkSpec } from '../typings/visual';\nimport type { IAnimate } from '../animation/interface';\nimport type { IGroupMark } from '../mark/group';\nimport type { StringOrNumber } from '../typings';\nimport type { ILayoutItemSpec } from '../layout/interface';\n\nexport interface IRegion extends ILayoutModel {\n animate?: IAnimate;\n interaction: IInteraction;\n\n //stack\n getStackInverse: () => boolean;\n\n getMaxWidth: () => number | undefined;\n setMaxWidth: (value: number) => void;\n getMaxHeight: () => number | undefined;\n setMaxHeight: (value: number) => void;\n\n // 系列\n addSeries: (series: ISeries) => void;\n removeSeries: (series: ISeries) => void;\n\n getSeries: (opt?: ISeriesFilter) => ISeries[];\n getSeriesInName: (name: string) => ISeries;\n getSeriesInUserId: (userId: string) => ISeries;\n getSeriesInId: (id: number) => ISeries;\n getSeriesInType: (type: SeriesType) => ISeries[];\n getSeriesInCoordinateType: (type: CoordinateType) => ISeries[];\n getSeriesInDataName: (dataName: string) => ISeries[];\n\n getMarks: () => IMark[];\n getGroupMark: () => IGroupMark;\n}\n\nexport type ISeriesFilter = {\n name?: string;\n userId?: StringOrNumber | StringOrNumber[];\n specIndex?: number | number[];\n id?: number;\n type?: string;\n coordinateType?: CoordinateType;\n dataName?: string;\n};\n\nexport interface IRegionConstructor {\n new (spec: IRegionSpec, ctx: IModelOption): IRegion;\n}\n\nexport interface IRegionSpec extends ILayoutItemSpec {\n id?: StringOrNumber;\n coordinate?: CoordinateType;\n style?: ConvertToMarkStyleSpec<IRectMarkSpec>;\n /**\n * 堆积时是否逆序\n * @default false\n * @since 1.4.0\n */\n stackInverse?: boolean;\n}\n\nexport interface IGeoRegionSpec extends IRegionSpec {\n coordinate?: 'geo';\n /**\n * 是否可以拖拽\n * @default false\n */\n roam?: boolean;\n /**\n * 数据中的经度字段名\n */\n longitudeField?: string;\n /**\n * 数据中的纬度字段名\n */\n latitudeField?: string;\n /**\n * 地理映射配置\n */\n projection?: Partial<Omit<IProjectionSpec, 'name'>>;\n /**\n * 缩放最大最小倍数限制\n */\n zoomLimit?: {\n min?: number;\n max?: number;\n };\n}\n"]}