@visactor/vchart 1.7.0-alpha.0 → 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 (689) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +23903 -23822
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/area/area.js +2 -1
  6. package/cjs/chart/area/area.js.map +1 -1
  7. package/cjs/chart/base-chart.d.ts +9 -12
  8. package/cjs/chart/base-chart.js +35 -46
  9. package/cjs/chart/base-chart.js.map +1 -1
  10. package/cjs/chart/interface/chart.d.ts +2 -4
  11. package/cjs/chart/interface/chart.js.map +1 -1
  12. package/cjs/chart/line/line.js +2 -1
  13. package/cjs/chart/line/line.js.map +1 -1
  14. package/cjs/chart/sequence/sequence.d.ts +1 -1
  15. package/cjs/chart/sequence/sequence.js +1 -1
  16. package/cjs/chart/sequence/sequence.js.map +1 -1
  17. package/cjs/chart/stack.js +2 -1
  18. package/cjs/compile/compiler.d.ts +2 -2
  19. package/cjs/compile/compiler.js +7 -7
  20. package/cjs/compile/compiler.js.map +1 -1
  21. package/cjs/compile/mark/compilable-mark.d.ts +10 -6
  22. package/cjs/compile/mark/compilable-mark.js +22 -11
  23. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  24. package/cjs/compile/mark/interface.d.ts +6 -4
  25. package/cjs/compile/mark/interface.js.map +1 -1
  26. package/cjs/compile/mark/util.d.ts +1 -3
  27. package/cjs/compile/mark/util.js +1 -37
  28. package/cjs/compile/mark/util.js.map +1 -1
  29. package/cjs/component/axis/base-axis.d.ts +1 -4
  30. package/cjs/component/axis/base-axis.js +19 -34
  31. package/cjs/component/axis/base-axis.js.map +1 -1
  32. package/cjs/component/axis/cartesian/axis.d.ts +3 -13
  33. package/cjs/component/axis/cartesian/axis.js +15 -15
  34. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  35. package/cjs/component/axis/cartesian/band-axis.d.ts +0 -7
  36. package/cjs/component/axis/cartesian/band-axis.js +0 -1
  37. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  38. package/cjs/component/axis/cartesian/interface/common.d.ts +0 -6
  39. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  40. package/cjs/component/axis/interface/common.d.ts +0 -1
  41. package/cjs/component/axis/interface/common.js.map +1 -1
  42. package/cjs/component/axis/interface/spec.js.map +1 -1
  43. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +0 -1
  44. package/cjs/component/axis/mixin/band-axis-mixin.js +1 -1
  45. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  46. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  47. package/cjs/component/axis/mixin/linear-axis-mixin.js +4 -3
  48. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  49. package/cjs/component/axis/polar/axis.js +6 -3
  50. package/cjs/component/axis/polar/axis.js.map +1 -1
  51. package/cjs/component/base/base-component.js +3 -3
  52. package/cjs/component/base/base-component.js.map +1 -1
  53. package/cjs/component/base/util.js +16 -12
  54. package/cjs/component/base/util.js.map +1 -1
  55. package/cjs/component/brush/brush.d.ts +1 -2
  56. package/cjs/component/brush/brush.js +1 -1
  57. package/cjs/component/brush/brush.js.map +1 -1
  58. package/cjs/component/crosshair/base.d.ts +2 -2
  59. package/cjs/component/crosshair/base.js +1 -1
  60. package/cjs/component/crosshair/base.js.map +1 -1
  61. package/cjs/component/custom-mark/custom-mark.d.ts +2 -2
  62. package/cjs/component/custom-mark/custom-mark.js +1 -1
  63. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  64. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -1
  65. package/cjs/component/data-zoom/data-filter-base-component.js +52 -30
  66. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  67. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +3 -1
  68. package/cjs/component/data-zoom/data-zoom/data-zoom.js +47 -37
  69. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  70. package/cjs/component/data-zoom/data-zoom/interface.d.ts +5 -1
  71. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  72. package/cjs/component/data-zoom/scroll-bar/interface.d.ts +5 -1
  73. package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
  74. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
  75. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +19 -15
  76. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  77. package/cjs/component/data-zoom/util.d.ts +4 -0
  78. package/cjs/component/data-zoom/util.js +11 -2
  79. package/cjs/component/data-zoom/util.js.map +1 -1
  80. package/cjs/component/geo/geo-coordinate.d.ts +2 -2
  81. package/cjs/component/geo/geo-coordinate.js +1 -1
  82. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  83. package/cjs/component/index.d.ts +3 -2
  84. package/cjs/component/index.js.map +1 -1
  85. package/cjs/component/indicator/indicator.d.ts +2 -2
  86. package/cjs/component/indicator/indicator.js +1 -1
  87. package/cjs/component/indicator/indicator.js.map +1 -1
  88. package/cjs/component/interface/theme.d.ts +2 -1
  89. package/cjs/component/interface/theme.js.map +1 -1
  90. package/cjs/component/label/base-label.d.ts +1 -2
  91. package/cjs/component/label/base-label.js +1 -2
  92. package/cjs/component/label/base-label.js.map +1 -1
  93. package/cjs/component/label/interface.d.ts +4 -0
  94. package/cjs/component/label/interface.js.map +1 -1
  95. package/cjs/component/label/label.d.ts +4 -6
  96. package/cjs/component/label/label.js +13 -8
  97. package/cjs/component/label/label.js.map +1 -1
  98. package/cjs/component/label/totalLabel.d.ts +0 -2
  99. package/cjs/component/label/totalLabel.js +2 -1
  100. package/cjs/component/label/totalLabel.js.map +1 -1
  101. package/cjs/component/label/util.d.ts +9 -2
  102. package/cjs/component/label/util.js +20 -5
  103. package/cjs/component/label/util.js.map +1 -1
  104. package/cjs/component/legend/util.d.ts +1 -1
  105. package/cjs/component/map-label/component.d.ts +2 -2
  106. package/cjs/component/map-label/component.js +1 -1
  107. package/cjs/component/map-label/component.js.map +1 -1
  108. package/cjs/component/marker/base-marker.d.ts +7 -2
  109. package/cjs/component/marker/base-marker.js +43 -19
  110. package/cjs/component/marker/base-marker.js.map +1 -1
  111. package/cjs/component/marker/interface.d.ts +14 -3
  112. package/cjs/component/marker/interface.js.map +1 -1
  113. package/cjs/component/marker/mark-area/interface/spec.d.ts +1 -1
  114. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  115. package/cjs/component/marker/mark-area/mark-area.js +28 -12
  116. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  117. package/cjs/component/marker/mark-line/interface/spec.d.ts +3 -4
  118. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  119. package/cjs/component/marker/mark-line/mark-line.js +32 -14
  120. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  121. package/cjs/component/marker/mark-line/util.d.ts +3 -3
  122. package/cjs/component/marker/mark-line/util.js.map +1 -1
  123. package/cjs/component/marker/mark-point/interface/spec.d.ts +5 -4
  124. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  125. package/cjs/component/marker/mark-point/interface/theme.d.ts +5 -5
  126. package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
  127. package/cjs/component/marker/mark-point/mark-point.js +13 -5
  128. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  129. package/cjs/component/marker/utils.d.ts +3 -4
  130. package/cjs/component/marker/utils.js +44 -25
  131. package/cjs/component/marker/utils.js.map +1 -1
  132. package/cjs/component/title/title.js +1 -1
  133. package/cjs/component/title/title.js.map +1 -1
  134. package/cjs/component/tooltip/handler/base.js +6 -6
  135. package/cjs/component/tooltip/handler/base.js.map +1 -1
  136. package/cjs/component/tooltip/handler/dom/util.js +3 -2
  137. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  138. package/cjs/component/tooltip/handler/utils/attribute.d.ts +3 -3
  139. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  140. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  141. package/cjs/component/tooltip/interface/spec.d.ts +1 -1
  142. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  143. package/cjs/component/tooltip/interface/theme.d.ts +10 -11
  144. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  145. package/cjs/component/tooltip/tooltip.d.ts +2 -2
  146. package/cjs/component/tooltip/tooltip.js +3 -4
  147. package/cjs/component/tooltip/tooltip.js.map +1 -1
  148. package/cjs/component/util.d.ts +1 -3
  149. package/cjs/component/util.js +2 -2
  150. package/cjs/component/util.js.map +1 -1
  151. package/cjs/constant/scatter.js +1 -2
  152. package/cjs/constant/scroll-bar.js +2 -1
  153. package/cjs/core/expression-function.d.ts +12 -0
  154. package/cjs/core/expression-function.js +30 -0
  155. package/cjs/core/expression-function.js.map +1 -0
  156. package/cjs/core/index.d.ts +2 -1
  157. package/cjs/core/index.js +3 -2
  158. package/cjs/core/index.js.map +1 -1
  159. package/cjs/core/interface.d.ts +5 -0
  160. package/cjs/core/interface.js.map +1 -1
  161. package/cjs/core/vchart.d.ts +9 -1
  162. package/cjs/core/vchart.js +97 -71
  163. package/cjs/core/vchart.js.map +1 -1
  164. package/cjs/data/initialize.js +7 -6
  165. package/cjs/data/initialize.js.map +1 -1
  166. package/cjs/data/transforms/aggregation.d.ts +4 -3
  167. package/cjs/data/transforms/aggregation.js +4 -4
  168. package/cjs/data/transforms/aggregation.js.map +1 -1
  169. package/cjs/data/transforms/dimension-statistics.js +14 -4
  170. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  171. package/cjs/data/transforms/sankey.d.ts +3 -6
  172. package/cjs/data/transforms/sankey.js +40 -23
  173. package/cjs/data/transforms/sankey.js.map +1 -1
  174. package/cjs/event/bubble.js +1 -2
  175. package/cjs/event/event.js +2 -1
  176. package/cjs/event/events/dimension/base.d.ts +1 -0
  177. package/cjs/event/events/dimension/base.js +10 -6
  178. package/cjs/event/events/dimension/base.js.map +1 -1
  179. package/cjs/event/interface.d.ts +1 -1
  180. package/cjs/event/interface.js.map +1 -1
  181. package/cjs/index-wx-simple.d.ts +4 -0
  182. package/cjs/index-wx-simple.js +35 -0
  183. package/cjs/index-wx-simple.js.map +1 -0
  184. package/cjs/interaction/config.d.ts +2 -2
  185. package/cjs/interaction/config.js +2 -2
  186. package/cjs/interaction/config.js.map +1 -1
  187. package/cjs/interaction/trigger.js +2 -2
  188. package/cjs/interaction/trigger.js.map +1 -1
  189. package/cjs/layout/base-layout.js +1 -1
  190. package/cjs/layout/layout-item.js +3 -5
  191. package/cjs/layout/layout-item.js.map +1 -1
  192. package/cjs/mark/arc.js +2 -2
  193. package/cjs/mark/arc.js.map +1 -1
  194. package/cjs/mark/base/base-mark.d.ts +2 -2
  195. package/cjs/mark/base/base-mark.js +62 -40
  196. package/cjs/mark/base/base-mark.js.map +1 -1
  197. package/cjs/mark/label.js +1 -4
  198. package/cjs/mark/label.js.map +1 -1
  199. package/cjs/model/base-model.d.ts +0 -2
  200. package/cjs/model/base-model.js +9 -15
  201. package/cjs/model/base-model.js.map +1 -1
  202. package/cjs/model/interface.d.ts +3 -9
  203. package/cjs/model/interface.js.map +1 -1
  204. package/cjs/model/layout-model.d.ts +6 -4
  205. package/cjs/model/layout-model.js +28 -17
  206. package/cjs/model/layout-model.js.map +1 -1
  207. package/cjs/series/area/area.d.ts +1 -1
  208. package/cjs/series/area/area.js +5 -6
  209. package/cjs/series/area/area.js.map +1 -1
  210. package/cjs/series/area/interface.d.ts +4 -0
  211. package/cjs/series/area/interface.js.map +1 -1
  212. package/cjs/series/bar/bar.js +2 -4
  213. package/cjs/series/bar/bar.js.map +1 -1
  214. package/cjs/series/base/base-series.d.ts +4 -0
  215. package/cjs/series/base/base-series.js +13 -5
  216. package/cjs/series/base/base-series.js.map +1 -1
  217. package/cjs/series/cartesian/cartesian.d.ts +3 -0
  218. package/cjs/series/cartesian/cartesian.js +16 -4
  219. package/cjs/series/cartesian/cartesian.js.map +1 -1
  220. package/cjs/series/correlation/correlation.js +3 -7
  221. package/cjs/series/correlation/correlation.js.map +1 -1
  222. package/cjs/series/funnel/funnel-3d.js +1 -1
  223. package/cjs/series/funnel/funnel-3d.js.map +1 -1
  224. package/cjs/series/funnel/funnel.js +2 -6
  225. package/cjs/series/funnel/funnel.js.map +1 -1
  226. package/cjs/series/gauge/gauge.d.ts +0 -1
  227. package/cjs/series/gauge/gauge.js +3 -8
  228. package/cjs/series/gauge/gauge.js.map +1 -1
  229. package/cjs/series/heatmap/heatmap.js +2 -4
  230. package/cjs/series/heatmap/heatmap.js.map +1 -1
  231. package/cjs/series/index.d.ts +2 -2
  232. package/cjs/series/index.js.map +1 -1
  233. package/cjs/series/interface/common.d.ts +2 -2
  234. package/cjs/series/interface/common.js.map +1 -1
  235. package/cjs/series/interface/series.d.ts +1 -0
  236. package/cjs/series/interface/series.js.map +1 -1
  237. package/cjs/series/interface/type.d.ts +3 -1
  238. package/cjs/series/interface/type.js +2 -1
  239. package/cjs/series/interface/type.js.map +1 -1
  240. package/cjs/series/line/interface.d.ts +4 -0
  241. package/cjs/series/line/interface.js.map +1 -1
  242. package/cjs/series/line/line.d.ts +1 -1
  243. package/cjs/series/line/line.js.map +1 -1
  244. package/cjs/series/map/map.js +2 -4
  245. package/cjs/series/map/map.js.map +1 -1
  246. package/cjs/series/mixin/line-mixin.d.ts +3 -1
  247. package/cjs/series/mixin/line-mixin.js +16 -10
  248. package/cjs/series/mixin/line-mixin.js.map +1 -1
  249. package/cjs/series/pie/pie.js +1 -4
  250. package/cjs/series/pie/pie.js.map +1 -1
  251. package/cjs/series/polar/progress-like/progress-like.js +4 -4
  252. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  253. package/cjs/series/radar/animation.js.map +1 -1
  254. package/cjs/series/range-column/range-column.js +2 -2
  255. package/cjs/series/range-column/range-column.js.map +1 -1
  256. package/cjs/series/rose/rose.d.ts +2 -1
  257. package/cjs/series/rose/rose.js +2 -4
  258. package/cjs/series/rose/rose.js.map +1 -1
  259. package/cjs/series/sankey/sankey.d.ts +6 -1
  260. package/cjs/series/sankey/sankey.js +48 -42
  261. package/cjs/series/sankey/sankey.js.map +1 -1
  262. package/cjs/series/scatter/scatter.js +2 -4
  263. package/cjs/series/scatter/scatter.js.map +1 -1
  264. package/cjs/series/waterfall/waterfall.js +1 -1
  265. package/cjs/series/waterfall/waterfall.js.map +1 -1
  266. package/cjs/series/word-cloud/base.d.ts +1 -0
  267. package/cjs/series/word-cloud/base.js +33 -33
  268. package/cjs/series/word-cloud/base.js.map +1 -1
  269. package/cjs/series/word-cloud/word-cloud-3d.js +32 -32
  270. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  271. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
  272. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  273. package/cjs/theme/builtin/common/component/axis/common-axis.js +1 -1
  274. package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  275. package/cjs/theme/builtin/common/component/crosshair.js +5 -5
  276. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  277. package/cjs/theme/builtin/common/component/data-zoom.js +10 -10
  278. package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
  279. package/cjs/theme/builtin/common/component/indicator.js +1 -1
  280. package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
  281. package/cjs/theme/builtin/common/component/legend/color-legend.js +3 -4
  282. package/cjs/theme/builtin/common/component/legend/color-legend.js.map +1 -1
  283. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +2 -2
  284. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  285. package/cjs/theme/builtin/common/component/legend/size-legend.js +6 -6
  286. package/cjs/theme/builtin/common/component/legend/size-legend.js.map +1 -1
  287. package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
  288. package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
  289. package/cjs/theme/builtin/common/component/mark-line.js +9 -9
  290. package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
  291. package/cjs/theme/builtin/common/component/mark-point.js +15 -3
  292. package/cjs/theme/builtin/common/component/mark-point.js.map +1 -1
  293. package/cjs/theme/builtin/common/component/player.js +7 -7
  294. package/cjs/theme/builtin/common/component/player.js.map +1 -1
  295. package/cjs/theme/builtin/common/component/poptip.js +3 -4
  296. package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
  297. package/cjs/theme/builtin/common/component/scroll-bar.js +20 -7
  298. package/cjs/theme/builtin/common/component/scroll-bar.js.map +1 -1
  299. package/cjs/theme/builtin/common/component/title.js +1 -1
  300. package/cjs/theme/builtin/common/component/title.js.map +1 -1
  301. package/cjs/theme/builtin/common/component/tooltip.d.ts +2 -1
  302. package/cjs/theme/builtin/common/component/tooltip.js +3 -4
  303. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  304. package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
  305. package/cjs/theme/builtin/common/mark.js.map +1 -1
  306. package/cjs/theme/builtin/common/series/rangeColumn.js +1 -1
  307. package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
  308. package/cjs/theme/builtin/dark/color-scheme.js +20 -11
  309. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
  310. package/cjs/theme/builtin/index.d.ts +2 -4
  311. package/cjs/theme/builtin/index.js +17 -22
  312. package/cjs/theme/builtin/index.js.map +1 -1
  313. package/cjs/theme/builtin/light/color-scheme.js +19 -10
  314. package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
  315. package/cjs/theme/color-scheme/builtin/interface.d.ts +16 -7
  316. package/cjs/theme/color-scheme/builtin/interface.js.map +1 -1
  317. package/cjs/theme/color-scheme/legacy.js +18 -2
  318. package/cjs/theme/color-scheme/legacy.js.map +1 -1
  319. package/cjs/theme/color-scheme/util.js +2 -2
  320. package/cjs/theme/color-scheme/util.js.map +1 -1
  321. package/cjs/theme/theme-manager.d.ts +1 -1
  322. package/cjs/theme/theme-manager.js +2 -2
  323. package/cjs/theme/theme-manager.js.map +1 -1
  324. package/cjs/typings/spec/common.d.ts +1 -2
  325. package/cjs/typings/spec/common.js.map +1 -1
  326. package/cjs/typings/visual.d.ts +1 -1
  327. package/cjs/typings/visual.js.map +1 -1
  328. package/cjs/util/spec/background.js +8 -14
  329. package/cjs/util/spec/background.js.map +1 -1
  330. package/cjs/util/spec/common.d.ts +1 -1
  331. package/cjs/util/spec/common.js +2 -2
  332. package/cjs/util/spec/common.js.map +1 -1
  333. package/cjs/util/spec/preprocess.d.ts +1 -1
  334. package/cjs/util/spec/preprocess.js +7 -17
  335. package/cjs/util/spec/preprocess.js.map +1 -1
  336. package/cjs/util/spec/transform.d.ts +2 -0
  337. package/cjs/util/spec/transform.js +18 -2
  338. package/cjs/util/spec/transform.js.map +1 -1
  339. package/cjs/vchart-all.js +2 -3
  340. package/cjs/vchart-all.js.map +1 -1
  341. package/cjs/vchart-simple.d.ts +1 -0
  342. package/cjs/vchart-simple.js +4 -4
  343. package/cjs/vchart-simple.js.map +1 -1
  344. package/esm/chart/area/area.js +2 -1
  345. package/esm/chart/area/area.js.map +1 -1
  346. package/esm/chart/base-chart.d.ts +9 -12
  347. package/esm/chart/base-chart.js +33 -45
  348. package/esm/chart/base-chart.js.map +1 -1
  349. package/esm/chart/interface/chart.d.ts +2 -4
  350. package/esm/chart/interface/chart.js.map +1 -1
  351. package/esm/chart/line/line.js +2 -1
  352. package/esm/chart/line/line.js.map +1 -1
  353. package/esm/chart/sequence/sequence.d.ts +1 -1
  354. package/esm/chart/sequence/sequence.js +1 -1
  355. package/esm/chart/sequence/sequence.js.map +1 -1
  356. package/esm/chart/stack.js +2 -1
  357. package/esm/compile/compiler.d.ts +2 -2
  358. package/esm/compile/compiler.js +7 -7
  359. package/esm/compile/compiler.js.map +1 -1
  360. package/esm/compile/mark/compilable-mark.d.ts +10 -6
  361. package/esm/compile/mark/compilable-mark.js +23 -12
  362. package/esm/compile/mark/compilable-mark.js.map +1 -1
  363. package/esm/compile/mark/interface.d.ts +6 -4
  364. package/esm/compile/mark/interface.js.map +1 -1
  365. package/esm/compile/mark/util.d.ts +1 -3
  366. package/esm/compile/mark/util.js +0 -34
  367. package/esm/compile/mark/util.js.map +1 -1
  368. package/esm/component/axis/base-axis.d.ts +1 -4
  369. package/esm/component/axis/base-axis.js +18 -35
  370. package/esm/component/axis/base-axis.js.map +1 -1
  371. package/esm/component/axis/cartesian/axis.d.ts +3 -13
  372. package/esm/component/axis/cartesian/axis.js +14 -13
  373. package/esm/component/axis/cartesian/axis.js.map +1 -1
  374. package/esm/component/axis/cartesian/band-axis.d.ts +0 -7
  375. package/esm/component/axis/cartesian/band-axis.js +0 -1
  376. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  377. package/esm/component/axis/cartesian/interface/common.d.ts +0 -6
  378. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  379. package/esm/component/axis/interface/common.d.ts +0 -1
  380. package/esm/component/axis/interface/common.js.map +1 -1
  381. package/esm/component/axis/interface/spec.js.map +1 -1
  382. package/esm/component/axis/mixin/band-axis-mixin.d.ts +0 -1
  383. package/esm/component/axis/mixin/band-axis-mixin.js +1 -1
  384. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  385. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  386. package/esm/component/axis/mixin/linear-axis-mixin.js +4 -3
  387. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  388. package/esm/component/axis/polar/axis.js +5 -2
  389. package/esm/component/axis/polar/axis.js.map +1 -1
  390. package/esm/component/base/base-component.js +2 -4
  391. package/esm/component/base/base-component.js.map +1 -1
  392. package/esm/component/base/util.js +7 -3
  393. package/esm/component/base/util.js.map +1 -1
  394. package/esm/component/brush/brush.d.ts +1 -2
  395. package/esm/component/brush/brush.js +1 -1
  396. package/esm/component/brush/brush.js.map +1 -1
  397. package/esm/component/crosshair/base.d.ts +2 -2
  398. package/esm/component/crosshair/base.js +1 -1
  399. package/esm/component/crosshair/base.js.map +1 -1
  400. package/esm/component/custom-mark/custom-mark.d.ts +2 -2
  401. package/esm/component/custom-mark/custom-mark.js +1 -1
  402. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  403. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -1
  404. package/esm/component/data-zoom/data-filter-base-component.js +52 -30
  405. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  406. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +3 -1
  407. package/esm/component/data-zoom/data-zoom/data-zoom.js +47 -37
  408. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  409. package/esm/component/data-zoom/data-zoom/interface.d.ts +5 -1
  410. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  411. package/esm/component/data-zoom/scroll-bar/interface.d.ts +5 -1
  412. package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
  413. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
  414. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +19 -15
  415. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  416. package/esm/component/data-zoom/util.d.ts +4 -0
  417. package/esm/component/data-zoom/util.js +13 -1
  418. package/esm/component/data-zoom/util.js.map +1 -1
  419. package/esm/component/geo/geo-coordinate.d.ts +2 -2
  420. package/esm/component/geo/geo-coordinate.js +1 -1
  421. package/esm/component/geo/geo-coordinate.js.map +1 -1
  422. package/esm/component/index.d.ts +3 -2
  423. package/esm/component/index.js.map +1 -1
  424. package/esm/component/indicator/indicator.d.ts +2 -2
  425. package/esm/component/indicator/indicator.js +1 -1
  426. package/esm/component/indicator/indicator.js.map +1 -1
  427. package/esm/component/interface/theme.d.ts +2 -1
  428. package/esm/component/interface/theme.js.map +1 -1
  429. package/esm/component/label/base-label.d.ts +1 -2
  430. package/esm/component/label/base-label.js +1 -1
  431. package/esm/component/label/base-label.js.map +1 -1
  432. package/esm/component/label/interface.d.ts +4 -0
  433. package/esm/component/label/interface.js.map +1 -1
  434. package/esm/component/label/label.d.ts +4 -6
  435. package/esm/component/label/label.js +14 -8
  436. package/esm/component/label/label.js.map +1 -1
  437. package/esm/component/label/totalLabel.d.ts +0 -2
  438. package/esm/component/label/totalLabel.js +2 -1
  439. package/esm/component/label/totalLabel.js.map +1 -1
  440. package/esm/component/label/util.d.ts +9 -2
  441. package/esm/component/label/util.js +17 -3
  442. package/esm/component/label/util.js.map +1 -1
  443. package/esm/component/legend/util.d.ts +1 -1
  444. package/esm/component/map-label/component.d.ts +2 -2
  445. package/esm/component/map-label/component.js +1 -1
  446. package/esm/component/map-label/component.js.map +1 -1
  447. package/esm/component/marker/base-marker.d.ts +7 -2
  448. package/esm/component/marker/base-marker.js +41 -18
  449. package/esm/component/marker/base-marker.js.map +1 -1
  450. package/esm/component/marker/interface.d.ts +14 -3
  451. package/esm/component/marker/interface.js.map +1 -1
  452. package/esm/component/marker/mark-area/interface/spec.d.ts +1 -1
  453. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  454. package/esm/component/marker/mark-area/mark-area.js +25 -11
  455. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  456. package/esm/component/marker/mark-line/interface/spec.d.ts +3 -4
  457. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  458. package/esm/component/marker/mark-line/mark-line.js +32 -11
  459. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  460. package/esm/component/marker/mark-line/util.d.ts +3 -3
  461. package/esm/component/marker/mark-line/util.js.map +1 -1
  462. package/esm/component/marker/mark-point/interface/spec.d.ts +5 -4
  463. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  464. package/esm/component/marker/mark-point/interface/theme.d.ts +5 -5
  465. package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
  466. package/esm/component/marker/mark-point/mark-point.js +13 -5
  467. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  468. package/esm/component/marker/utils.d.ts +3 -4
  469. package/esm/component/marker/utils.js +43 -23
  470. package/esm/component/marker/utils.js.map +1 -1
  471. package/esm/component/title/title.js +1 -1
  472. package/esm/component/title/title.js.map +1 -1
  473. package/esm/component/tooltip/handler/base.js +5 -7
  474. package/esm/component/tooltip/handler/base.js.map +1 -1
  475. package/esm/component/tooltip/handler/dom/util.js +3 -1
  476. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  477. package/esm/component/tooltip/handler/utils/attribute.d.ts +3 -3
  478. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  479. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  480. package/esm/component/tooltip/interface/spec.d.ts +1 -1
  481. package/esm/component/tooltip/interface/spec.js.map +1 -1
  482. package/esm/component/tooltip/interface/theme.d.ts +10 -11
  483. package/esm/component/tooltip/interface/theme.js.map +1 -1
  484. package/esm/component/tooltip/tooltip.d.ts +2 -2
  485. package/esm/component/tooltip/tooltip.js +3 -3
  486. package/esm/component/tooltip/tooltip.js.map +1 -1
  487. package/esm/component/util.d.ts +1 -3
  488. package/esm/component/util.js +2 -2
  489. package/esm/component/util.js.map +1 -1
  490. package/esm/constant/scatter.js +1 -2
  491. package/esm/constant/scroll-bar.js +2 -1
  492. package/esm/core/expression-function.d.ts +12 -0
  493. package/esm/core/expression-function.js +22 -0
  494. package/esm/core/expression-function.js.map +1 -0
  495. package/esm/core/index.d.ts +2 -1
  496. package/esm/core/index.js +3 -1
  497. package/esm/core/index.js.map +1 -1
  498. package/esm/core/interface.d.ts +5 -0
  499. package/esm/core/interface.js.map +1 -1
  500. package/esm/core/vchart.d.ts +9 -1
  501. package/esm/core/vchart.js +65 -44
  502. package/esm/core/vchart.js.map +1 -1
  503. package/esm/data/initialize.js +7 -7
  504. package/esm/data/initialize.js.map +1 -1
  505. package/esm/data/transforms/aggregation.d.ts +4 -3
  506. package/esm/data/transforms/aggregation.js +6 -6
  507. package/esm/data/transforms/aggregation.js.map +1 -1
  508. package/esm/data/transforms/dimension-statistics.js +14 -4
  509. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  510. package/esm/data/transforms/sankey.d.ts +3 -6
  511. package/esm/data/transforms/sankey.js +36 -22
  512. package/esm/data/transforms/sankey.js.map +1 -1
  513. package/esm/event/bubble.js +1 -2
  514. package/esm/event/event.js +2 -1
  515. package/esm/event/events/dimension/base.d.ts +1 -0
  516. package/esm/event/events/dimension/base.js +10 -6
  517. package/esm/event/events/dimension/base.js.map +1 -1
  518. package/esm/event/interface.d.ts +1 -1
  519. package/esm/event/interface.js.map +1 -1
  520. package/esm/index-wx-simple.d.ts +4 -0
  521. package/esm/index-wx-simple.js +35 -0
  522. package/esm/index-wx-simple.js.map +1 -0
  523. package/esm/interaction/config.d.ts +2 -2
  524. package/esm/interaction/config.js +2 -2
  525. package/esm/interaction/config.js.map +1 -1
  526. package/esm/interaction/trigger.js +2 -2
  527. package/esm/interaction/trigger.js.map +1 -1
  528. package/esm/layout/base-layout.js +1 -1
  529. package/esm/layout/layout-item.js +3 -5
  530. package/esm/layout/layout-item.js.map +1 -1
  531. package/esm/mark/arc.js +2 -2
  532. package/esm/mark/arc.js.map +1 -1
  533. package/esm/mark/base/base-mark.d.ts +2 -2
  534. package/esm/mark/base/base-mark.js +59 -38
  535. package/esm/mark/base/base-mark.js.map +1 -1
  536. package/esm/mark/label.js +1 -4
  537. package/esm/mark/label.js.map +1 -1
  538. package/esm/model/base-model.d.ts +0 -2
  539. package/esm/model/base-model.js +8 -18
  540. package/esm/model/base-model.js.map +1 -1
  541. package/esm/model/interface.d.ts +3 -9
  542. package/esm/model/interface.js.map +1 -1
  543. package/esm/model/layout-model.d.ts +6 -4
  544. package/esm/model/layout-model.js +27 -18
  545. package/esm/model/layout-model.js.map +1 -1
  546. package/esm/series/area/area.d.ts +1 -1
  547. package/esm/series/area/area.js +5 -6
  548. package/esm/series/area/area.js.map +1 -1
  549. package/esm/series/area/interface.d.ts +4 -0
  550. package/esm/series/area/interface.js.map +1 -1
  551. package/esm/series/bar/bar.js +1 -5
  552. package/esm/series/bar/bar.js.map +1 -1
  553. package/esm/series/base/base-series.d.ts +4 -0
  554. package/esm/series/base/base-series.js +13 -7
  555. package/esm/series/base/base-series.js.map +1 -1
  556. package/esm/series/cartesian/cartesian.d.ts +3 -0
  557. package/esm/series/cartesian/cartesian.js +16 -4
  558. package/esm/series/cartesian/cartesian.js.map +1 -1
  559. package/esm/series/correlation/correlation.js +2 -8
  560. package/esm/series/correlation/correlation.js.map +1 -1
  561. package/esm/series/funnel/funnel-3d.js +1 -1
  562. package/esm/series/funnel/funnel-3d.js.map +1 -1
  563. package/esm/series/funnel/funnel.js +3 -7
  564. package/esm/series/funnel/funnel.js.map +1 -1
  565. package/esm/series/gauge/gauge.d.ts +0 -1
  566. package/esm/series/gauge/gauge.js +2 -9
  567. package/esm/series/gauge/gauge.js.map +1 -1
  568. package/esm/series/heatmap/heatmap.js +1 -5
  569. package/esm/series/heatmap/heatmap.js.map +1 -1
  570. package/esm/series/index.d.ts +2 -2
  571. package/esm/series/index.js.map +1 -1
  572. package/esm/series/interface/common.d.ts +2 -2
  573. package/esm/series/interface/common.js.map +1 -1
  574. package/esm/series/interface/series.d.ts +1 -0
  575. package/esm/series/interface/series.js.map +1 -1
  576. package/esm/series/interface/type.d.ts +3 -1
  577. package/esm/series/interface/type.js +2 -1
  578. package/esm/series/interface/type.js.map +1 -1
  579. package/esm/series/line/interface.d.ts +4 -0
  580. package/esm/series/line/interface.js.map +1 -1
  581. package/esm/series/line/line.d.ts +1 -1
  582. package/esm/series/line/line.js.map +1 -1
  583. package/esm/series/map/map.js +1 -5
  584. package/esm/series/map/map.js.map +1 -1
  585. package/esm/series/mixin/line-mixin.d.ts +3 -1
  586. package/esm/series/mixin/line-mixin.js +15 -10
  587. package/esm/series/mixin/line-mixin.js.map +1 -1
  588. package/esm/series/pie/pie.js +1 -4
  589. package/esm/series/pie/pie.js.map +1 -1
  590. package/esm/series/polar/progress-like/progress-like.js +3 -4
  591. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  592. package/esm/series/radar/animation.js.map +1 -1
  593. package/esm/series/range-column/range-column.js +1 -3
  594. package/esm/series/range-column/range-column.js.map +1 -1
  595. package/esm/series/rose/rose.d.ts +2 -1
  596. package/esm/series/rose/rose.js +1 -5
  597. package/esm/series/rose/rose.js.map +1 -1
  598. package/esm/series/sankey/sankey.d.ts +6 -1
  599. package/esm/series/sankey/sankey.js +49 -46
  600. package/esm/series/sankey/sankey.js.map +1 -1
  601. package/esm/series/scatter/scatter.js +1 -5
  602. package/esm/series/scatter/scatter.js.map +1 -1
  603. package/esm/series/waterfall/waterfall.js +1 -1
  604. package/esm/series/waterfall/waterfall.js.map +1 -1
  605. package/esm/series/word-cloud/base.d.ts +1 -0
  606. package/esm/series/word-cloud/base.js +33 -33
  607. package/esm/series/word-cloud/base.js.map +1 -1
  608. package/esm/series/word-cloud/word-cloud-3d.js +32 -32
  609. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  610. package/esm/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
  611. package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  612. package/esm/theme/builtin/common/component/axis/common-axis.js +1 -1
  613. package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  614. package/esm/theme/builtin/common/component/crosshair.js +5 -5
  615. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  616. package/esm/theme/builtin/common/component/data-zoom.js +10 -10
  617. package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
  618. package/esm/theme/builtin/common/component/indicator.js +1 -1
  619. package/esm/theme/builtin/common/component/indicator.js.map +1 -1
  620. package/esm/theme/builtin/common/component/legend/color-legend.js +3 -4
  621. package/esm/theme/builtin/common/component/legend/color-legend.js.map +1 -1
  622. package/esm/theme/builtin/common/component/legend/discrete-legend.js +2 -2
  623. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  624. package/esm/theme/builtin/common/component/legend/size-legend.js +6 -6
  625. package/esm/theme/builtin/common/component/legend/size-legend.js.map +1 -1
  626. package/esm/theme/builtin/common/component/map-label.js.map +1 -1
  627. package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
  628. package/esm/theme/builtin/common/component/mark-line.js +9 -9
  629. package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
  630. package/esm/theme/builtin/common/component/mark-point.js +15 -3
  631. package/esm/theme/builtin/common/component/mark-point.js.map +1 -1
  632. package/esm/theme/builtin/common/component/player.js +7 -7
  633. package/esm/theme/builtin/common/component/player.js.map +1 -1
  634. package/esm/theme/builtin/common/component/poptip.js +3 -4
  635. package/esm/theme/builtin/common/component/poptip.js.map +1 -1
  636. package/esm/theme/builtin/common/component/scroll-bar.js +20 -7
  637. package/esm/theme/builtin/common/component/scroll-bar.js.map +1 -1
  638. package/esm/theme/builtin/common/component/title.js +1 -1
  639. package/esm/theme/builtin/common/component/title.js.map +1 -1
  640. package/esm/theme/builtin/common/component/tooltip.d.ts +2 -1
  641. package/esm/theme/builtin/common/component/tooltip.js +3 -4
  642. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  643. package/esm/theme/builtin/common/component/total-label.js.map +1 -1
  644. package/esm/theme/builtin/common/mark.js.map +1 -1
  645. package/esm/theme/builtin/common/series/rangeColumn.js +1 -1
  646. package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
  647. package/esm/theme/builtin/dark/color-scheme.js +20 -11
  648. package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
  649. package/esm/theme/builtin/index.d.ts +2 -4
  650. package/esm/theme/builtin/index.js +15 -28
  651. package/esm/theme/builtin/index.js.map +1 -1
  652. package/esm/theme/builtin/light/color-scheme.js +19 -10
  653. package/esm/theme/builtin/light/color-scheme.js.map +1 -1
  654. package/esm/theme/color-scheme/builtin/interface.d.ts +16 -7
  655. package/esm/theme/color-scheme/builtin/interface.js.map +1 -1
  656. package/esm/theme/color-scheme/legacy.js +18 -2
  657. package/esm/theme/color-scheme/legacy.js.map +1 -1
  658. package/esm/theme/color-scheme/util.js +2 -2
  659. package/esm/theme/color-scheme/util.js.map +1 -1
  660. package/esm/theme/theme-manager.d.ts +1 -1
  661. package/esm/theme/theme-manager.js +2 -2
  662. package/esm/theme/theme-manager.js.map +1 -1
  663. package/esm/typings/spec/common.d.ts +1 -2
  664. package/esm/typings/spec/common.js.map +1 -1
  665. package/esm/typings/visual.d.ts +1 -1
  666. package/esm/typings/visual.js.map +1 -1
  667. package/esm/util/spec/background.js +3 -11
  668. package/esm/util/spec/background.js.map +1 -1
  669. package/esm/util/spec/common.d.ts +1 -1
  670. package/esm/util/spec/common.js +2 -2
  671. package/esm/util/spec/common.js.map +1 -1
  672. package/esm/util/spec/preprocess.d.ts +1 -1
  673. package/esm/util/spec/preprocess.js +5 -18
  674. package/esm/util/spec/preprocess.js.map +1 -1
  675. package/esm/util/spec/transform.d.ts +2 -0
  676. package/esm/util/spec/transform.js +17 -1
  677. package/esm/util/spec/transform.js.map +1 -1
  678. package/esm/vchart-all.js +1 -4
  679. package/esm/vchart-all.js.map +1 -1
  680. package/esm/vchart-simple.d.ts +1 -0
  681. package/esm/vchart-simple.js +15 -14
  682. package/esm/vchart-simple.js.map +1 -1
  683. package/package.json +19 -20
  684. package/cjs/theme/util.d.ts +0 -5
  685. package/cjs/theme/util.js +0 -35
  686. package/cjs/theme/util.js.map +0 -1
  687. package/esm/theme/util.d.ts +0 -5
  688. package/esm/theme/util.js +0 -37
  689. package/esm/theme/util.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/label.ts"],"names":[],"mappings":";;;AAEA,2CAAgD;AAChD,iCAAkC;AAElC,MAAa,SAAU,SAAQ,eAAQ;IAAvC;;QAIE,eAAU,GAAG,KAAK,CAAC;IA8BrB,CAAC;IA3BC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,SAAS,CAAC,MAAa;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAEf,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACpB;IACH,CAAC;IAGD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,SAAgB;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;;AAjCH,8BAkCC;AAjCiB,cAAI,GAAG,mBAAY,CAAC,IAAI,CAAC;AACzB,yBAAe,GAAG,mBAAY,CAAC,KAAK,CAAC","file":"label.js","sourcesContent":["import type { IComponentMark } from './component';\nimport type { IMark } from './interface/common';\nimport { MarkTypeEnum } from './interface/type';\nimport { TextMark } from './text';\n\nexport class LabelMark extends TextMark implements ILabelMark {\n static readonly type = MarkTypeEnum.text;\n static readonly constructorType = MarkTypeEnum.label;\n\n skipEncode = false;\n\n private _rule: string;\n getRule() {\n return this._rule;\n }\n setRule(rule: string) {\n this._rule = rule;\n }\n\n private _target: IMark;\n getTarget() {\n return this._target;\n }\n setTarget(target: IMark) {\n this._target = target;\n if (!this._rule) {\n // 接入 line/area 图元标签后这里需要改造\n const rule = ['line', 'area'].includes(target.type) ? 'lineData' : target.type;\n this.setRule(rule);\n }\n }\n\n private _component: IMark;\n getComponent() {\n return this._component;\n }\n setComponent(component: IMark) {\n this._component = component;\n }\n}\n\nexport interface ILabelMark extends IMark {\n skipEncode: boolean;\n\n getRule: () => string;\n setRule: (rule: string) => void;\n\n getTarget: () => IMark;\n setTarget: (target: IMark) => void;\n\n getComponent: () => IComponentMark;\n setComponent: (component: IComponentMark) => void;\n}\n"]}
1
+ {"version":3,"sources":["../src/mark/label.ts"],"names":[],"mappings":";;;AAEA,2CAAgD;AAChD,iCAAkC;AAElC,MAAa,SAAU,SAAQ,eAAQ;IAAvC;;QAIE,eAAU,GAAG,KAAK,CAAC;IA4BrB,CAAC;IAzBC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,SAAS,CAAC,MAAa;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC;IAGD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,SAAgB;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;;AA/BH,8BAgCC;AA/BiB,cAAI,GAAG,mBAAY,CAAC,IAAI,CAAC;AACzB,yBAAe,GAAG,mBAAY,CAAC,KAAK,CAAC","file":"label.js","sourcesContent":["import type { IComponentMark } from './component';\nimport type { IMark } from './interface/common';\nimport { MarkTypeEnum } from './interface/type';\nimport { TextMark } from './text';\n\nexport class LabelMark extends TextMark implements ILabelMark {\n static readonly type = MarkTypeEnum.text;\n static readonly constructorType = MarkTypeEnum.label;\n\n skipEncode = false;\n\n private _rule: string;\n getRule() {\n return this._rule;\n }\n setRule(rule: string) {\n this._rule = rule;\n }\n\n private _target: IMark;\n getTarget() {\n return this._target;\n }\n setTarget(target: IMark) {\n this._target = target;\n if (!this._rule) {\n this.setRule(target.type);\n }\n }\n\n private _component: IMark;\n getComponent() {\n return this._component;\n }\n setComponent(component: IMark) {\n this._component = component;\n }\n}\n\nexport interface ILabelMark extends IMark {\n skipEncode: boolean;\n\n getRule: () => string;\n setRule: (rule: string) => void;\n\n getTarget: () => IMark;\n setTarget: (target: IMark) => void;\n\n getComponent: () => IComponentMark;\n setComponent: (component: IComponentMark) => void;\n}\n"]}
@@ -71,7 +71,6 @@ export declare abstract class BaseModel<T extends IModelSpec> extends Compilable
71
71
  protected _getDefaultSpecFromChart(chartSpec: any): Partial<T>;
72
72
  protected _shouldMergeThemeToSpec(): boolean;
73
73
  protected _prepareSpecBeforeMergingTheme(obj?: any): any;
74
- protected _prepareSpecAfterMergingTheme(obj?: any): any;
75
74
  setCurrentTheme(noRender?: boolean): Promise<void>;
76
75
  updateLayoutAttribute(): void;
77
76
  setAttrFromSpec(): void;
@@ -84,5 +83,4 @@ export declare abstract class BaseModel<T extends IModelSpec> extends Compilable
84
83
  protected _createMark<T extends IMark>(markInfo: IModelMarkInfo, option?: Partial<IMarkOption>): T;
85
84
  protected _getDataIdKey(): string | ((datum: Datum) => string) | undefined;
86
85
  getColorScheme(): import("..").IThemeColorScheme;
87
- protected _getChartLevelTheme(): import("../core/interface").IChartLevelTheme;
88
86
  }
@@ -30,7 +30,7 @@ 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"), vutils_1 = require("@visactor/vutils"), factory_1 = require("../core/factory"), mark_set_1 = require("../mark/mark-set"), builtin_1 = require("../theme/builtin"), compilable_base_1 = require("../compile/compilable-base"), base_1 = require("../constant/base");
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
35
  class BaseModel extends compilable_base_1.CompilableBase {
36
36
  getSpec() {
@@ -90,9 +90,13 @@ class BaseModel extends compilable_base_1.CompilableBase {
90
90
  var _a;
91
91
  return !1 !== (null === (_a = this._spec) || void 0 === _a ? void 0 : _a.visible);
92
92
  }
93
- onLayoutStart(layoutRect, viewRect, ctx) {}
93
+ onLayoutStart(layoutRect, viewRect, ctx) {
94
+ var _a;
95
+ null === (_a = this._layout) || void 0 === _a || _a.onLayoutStart(layoutRect, viewRect, ctx);
96
+ }
94
97
  onLayoutEnd(ctx) {
95
- this.getMarks().forEach((m => m.updateLayoutState(!0, !0)));
98
+ var _a;
99
+ null === (_a = this._layout) || void 0 === _a || _a.onLayoutEnd(ctx), this.getMarks().forEach((m => m.updateLayoutState(!0, !0)));
96
100
  }
97
101
  onEvaluateEnd(ctx) {}
98
102
  onDataUpdate() {}
@@ -132,7 +136,6 @@ class BaseModel extends compilable_base_1.CompilableBase {
132
136
  merge_spec_1.mergeSpec)({}, this._theme, this._prepareSpecBeforeMergingTheme(specFromChart), this._prepareSpecBeforeMergingTheme(originalSpec)), baseSpec = this._spec;
133
137
  (0, vutils_1.isArray)(baseSpec) ? this._spec = baseSpec.map((spec => merge(spec))) : this._spec = merge(baseSpec);
134
138
  }
135
- this._prepareSpecAfterMergingTheme();
136
139
  }
137
140
  _getDefaultSpecFromChart(chartSpec) {
138
141
  return {};
@@ -143,11 +146,6 @@ class BaseModel extends compilable_base_1.CompilableBase {
143
146
  _prepareSpecBeforeMergingTheme(obj) {
144
147
  return obj;
145
148
  }
146
- _prepareSpecAfterMergingTheme(obj) {
147
- arguments.length || (obj = this._spec);
148
- const newObj = (0, preprocess_1.preprocessSpecOrTheme)("spec", obj, this.getColorScheme(), "series" === this.modelType ? this._spec : void 0);
149
- return arguments.length || (this._spec = newObj), newObj;
150
- }
151
149
  setCurrentTheme(noRender) {
152
150
  return __awaiter(this, void 0, void 0, (function*() {
153
151
  const modifyConfig = () => (this.reInit(this._getTheme()), {
@@ -202,12 +200,8 @@ class BaseModel extends compilable_base_1.CompilableBase {
202
200
  }
203
201
  _getDataIdKey() {}
204
202
  getColorScheme() {
205
- var _a, _b, _c;
206
- 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;
207
- }
208
- _getChartLevelTheme() {
209
- var _a, _b, _c;
210
- 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;
211
205
  }
212
206
  }
213
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 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 ISeriesSpec,\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 { defaultChartLevelTheme } from '../theme/builtin';\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 }\n onLayoutEnd(ctx: any): void {\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 (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 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.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"]}
@@ -15,7 +15,6 @@ import type { ICompilable, ICompilableInitOption } from '../compile/interface';
15
15
  import type { ICompilableData } from '../compile/data';
16
16
  import type { IGlobalScale } from '../scale/interface';
17
17
  import type { IChart } from '../chart/interface';
18
- import type { IChartLevelTheme } from '../core/interface';
19
18
  import type { IThemeColorScheme } from '../theme/color-scheme/interface';
20
19
  import type { ILayoutItem, ILayoutItemSpec } from '../layout/interface';
21
20
  import type { ILayoutPoint, ILayoutRect } from '../typings/layout';
@@ -73,6 +72,8 @@ export interface IModel extends ICompilable {
73
72
  updateSpec: (spec: any, totalSpec?: any) => IUpdateSpecResult;
74
73
  getSpec?: () => any;
75
74
  getSpecIndex: () => number;
75
+ onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;
76
+ onLayoutEnd: (ctx: IModelLayoutOption) => void;
76
77
  setCurrentTheme: (noRender?: boolean) => void;
77
78
  getColorScheme: () => IThemeColorScheme | undefined;
78
79
  setMarkStyle: <T extends ICommonSpec>(mark?: IMarkRaw<T>, style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>, state?: StateValueType, level?: number) => void;
@@ -85,9 +86,7 @@ export interface ILayoutModel extends IModel {
85
86
  setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>) => void;
86
87
  getLastComputeOutBounds: () => IBoundsLike;
87
88
  getBoundsInRect: (rect: ILayoutRect, fullRect: ILayoutRect) => IBoundsLike;
88
- onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;
89
89
  afterSetLayoutStartPoint: (pos: ILayoutPoint) => void;
90
- onLayoutEnd: (ctx: IModelLayoutOption) => void;
91
90
  }
92
91
  export interface IModelOption extends ICompilableInitOption {
93
92
  eventDispatcher: IEventDispatcher;
@@ -97,12 +96,7 @@ export interface IModelOption extends ICompilableInitOption {
97
96
  globalInstance: VChart;
98
97
  specIndex?: number;
99
98
  specKey?: string;
100
- getThemeConfig?: () => {
101
- globalTheme?: string;
102
- optionTheme?: string | ITheme;
103
- specTheme?: string | ITheme;
104
- chartLevelTheme: IChartLevelTheme;
105
- };
99
+ getTheme?: () => ITheme;
106
100
  getChartLayoutRect: () => IRect;
107
101
  getChartViewRect: () => ILayoutRect;
108
102
  getChart: () => IChart;
@@ -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 { 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 { IChartLevelTheme } from '../core/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 // 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 onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n afterSetLayoutStartPoint: (pos: ILayoutPoint) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => 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"]}
@@ -6,7 +6,7 @@ import type { IModelSpec } from './interface';
6
6
  import type { IPoint } from '../typings/coordinate';
7
7
  import type { ILayoutType, ILayoutPoint, ILayoutRect } from '../typings/layout';
8
8
  export declare abstract class LayoutModel<T extends IModelSpec> extends BaseModel<T> {
9
- protected layoutType: ILayoutType;
9
+ protected layoutType: ILayoutType | 'none';
10
10
  protected layoutLevel?: number;
11
11
  protected layoutZIndex: number;
12
12
  layoutClip: boolean;
@@ -15,16 +15,18 @@ export declare abstract class LayoutModel<T extends IModelSpec> extends BaseMode
15
15
  protected _forceLayoutTag: boolean;
16
16
  protected _layout: ILayoutItem;
17
17
  protected _orient?: IPolarOrientType | IOrientType;
18
+ protected _layoutRect: ILayoutRect;
19
+ protected _layoutStartPos: IPoint;
18
20
  protected _isLayout: boolean;
19
21
  initLayout(): void;
20
22
  onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void;
21
23
  onLayoutEnd(ctx: any): void;
22
24
  afterSetLayoutStartPoint(_pos: ILayoutPoint): void;
23
25
  protected _forceLayout(): void;
24
- getLayoutStartPoint(): ILayoutPoint;
25
- setLayoutStartPosition(pos: Partial<IPoint>): void;
26
+ getLayoutStartPoint(): IPoint;
27
+ setLayoutStartPosition(pos: Partial<IPoint>): any;
26
28
  getLayoutRect(): ILayoutRect;
27
- setLayoutRect(rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>): void;
29
+ setLayoutRect(rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>): any;
28
30
  getLastComputeOutBounds(): IBoundsLike;
29
31
  getGraphicBounds: () => {
30
32
  x1: number;
@@ -9,39 +9,47 @@ const vutils_1 = require("@visactor/vutils"), base_model_1 = require("./base-mod
9
9
  class LayoutModel extends base_model_1.BaseModel {
10
10
  constructor() {
11
11
  super(...arguments), this.layoutType = "normal", this.layoutLevel = 0, this.layoutZIndex = 0,
12
- this._forceLayoutTag = !1, this._layout = null, this._orient = null, this._isLayout = !0,
13
- this.getGraphicBounds = () => ({
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 ? {
14
19
  x1: this._layout.getLayoutStartPoint().x,
15
20
  y1: this._layout.getLayoutStartPoint().y,
16
21
  x2: this._layout.getLayoutStartPoint().x + this._layout.getLayoutRect().width,
17
22
  y2: this._layout.getLayoutStartPoint().y + this._layout.getLayoutRect().height
18
- }), this._transformLayoutRect = null, this._transformLayoutPosition = null;
23
+ } : {
24
+ x1: 0,
25
+ x2: 0,
26
+ y1: 0,
27
+ y2: 0
28
+ }, this._transformLayoutRect = null, this._transformLayoutPosition = null;
19
29
  }
20
30
  get layoutOrient() {
21
31
  return this._orient;
22
32
  }
23
33
  set layoutOrient(v) {
24
- this._orient = v, this._layout.layoutOrient = v;
34
+ this._orient = v, this._layout && (this._layout.layoutOrient = v);
25
35
  }
26
36
  initLayout() {
27
- this._layout = new layout_item_1.LayoutItem(this, {
37
+ "none" !== this.layoutType && (this._layout = new layout_item_1.LayoutItem(this, {
28
38
  layoutType: this.layoutType,
29
39
  layoutLevel: this.layoutLevel,
30
40
  layoutOrient: this._orient,
31
41
  transformLayoutRect: this._transformLayoutRect,
32
42
  transformLayoutPosition: this._transformLayoutPosition
33
- }), this._orient && "radius" !== this._orient && "angle" !== this._orient && (this._layout.layoutOrient = this._orient);
43
+ }), this._orient && "radius" !== this._orient && "angle" !== this._orient && this.layout && (this._layout.layoutOrient = this._orient));
34
44
  }
35
45
  onLayoutStart(layoutRect, viewRect, ctx) {
36
46
  this._isLayout = !0, super.onLayoutStart(layoutRect, viewRect, ctx);
37
47
  }
38
48
  onLayoutEnd(ctx) {
39
- if (this._layout) {
40
- const layoutRect = this._layout.getLayoutRect();
41
- !this._forceLayoutTag && (0, vutils_1.isEqual)(this._lastLayoutRect, layoutRect) || this.updateLayoutAttribute(),
42
- this._forceLayoutTag = !1;
43
- }
44
- super.onLayoutEnd(ctx), this._isLayout = !1;
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;
45
53
  }
46
54
  afterSetLayoutStartPoint(_pos) {}
47
55
  _forceLayout() {
@@ -49,19 +57,22 @@ class LayoutModel extends base_model_1.BaseModel {
49
57
  this._isLayout || (this._forceLayoutTag = !0, null === (_a = this._option.globalInstance.getChart()) || void 0 === _a || _a.setLayoutTag(!0));
50
58
  }
51
59
  getLayoutStartPoint() {
52
- return this._layout.getLayoutStartPoint();
60
+ return this._layout ? this._layout.getLayoutStartPoint() : this._layoutStartPos;
53
61
  }
54
62
  setLayoutStartPosition(pos) {
55
- return this._layout.setLayoutStartPosition(pos);
63
+ return this._layout ? this._layout.setLayoutStartPosition(pos) : this._layoutStartPos = (0,
64
+ vutils_1.merge)(this._layoutStartPos, pos);
56
65
  }
57
66
  getLayoutRect() {
58
- return this._layout.getLayoutRect();
67
+ return this._layout ? this._layout.getLayoutRect() : this._layoutRect;
59
68
  }
60
69
  setLayoutRect(rect, levelMap) {
61
- return this._layout.setLayoutRect(rect, levelMap);
70
+ return this._layout ? this._layout.setLayoutRect(rect) : this._lastLayoutRect = (0,
71
+ vutils_1.merge)(this._layoutRect, rect);
62
72
  }
63
73
  getLastComputeOutBounds() {
64
- return this._layout.getLastComputeOutBounds();
74
+ var _a;
75
+ return null === (_a = this._layout) || void 0 === _a ? void 0 : _a.getLastComputeOutBounds();
65
76
  }
66
77
  setAttrFromSpec() {
67
78
  var _a, _b, _c;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model/layout-model.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAG3C,6CAAyC;AAEzC,uDAAmD;AAInD,MAAsB,WAAkC,SAAQ,sBAAY;IAA5E;;QACY,eAAU,GAAgB,QAAQ,CAAC;QACnC,gBAAW,GAAY,CAAC,CAAC;QACzB,iBAAY,GAAW,CAAC,CAAC;QAWzB,oBAAe,GAAY,KAAK,CAAC;QACjC,YAAO,GAAgB,IAAI,CAAC;QAC5B,YAAO,GAAoC,IAAI,CAAC;QAGhD,cAAS,GAAY,IAAI,CAAC;QA8DpC,qBAAgB,GAAG,GAAG,EAAE;YACtB,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK;gBAC7E,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM;aAC/E,CAAC;QACJ,CAAC,CAAC;QAWQ,yBAAoB,GAAuC,IAAI,CAAC;QAChE,6BAAwB,GAA+C,IAAI,CAAC;IACxF,CAAC;IAhGC,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,OAAsB,CAAC;IACrC,CAAC;IAED,IAAI,YAAY,CAAC,CAAc;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;IAChC,CAAC;IASD,UAAU;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAU,CAAC,IAAI,EAAE;YAClC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,OAAsB;YACzC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;YAC9C,uBAAuB,EAAE,IAAI,CAAC,wBAAwB;SACvD,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;YACzE,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;SAC1C;IACH,CAAC;IAED,aAAa,CAAC,UAAiB,EAAE,QAAqB,EAAE,GAAQ;QAC9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,WAAW,CAAC,GAAQ;QAElB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE;gBACtE,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;YACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAC9B;QACD,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,wBAAwB,CAAC,IAAkB;IAE3C,CAAC;IAES,YAAY;;QACpB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,0CAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAGD,mBAAmB;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAC5C,CAAC;IACD,sBAAsB,CAAC,GAAoB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,IAA0B,EAAE,QAA+B;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAChD,CAAC;IAWD,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,mCAAI,IAAI,CAAC,UAAU,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,mCAAI,IAAI,CAAC,YAAY,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC,UAAU,CAAC;IAC7D,CAAC;CAMF;AArGD,kCAqGC","file":"layout-model.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport { isEqual } 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 = '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.layoutOrient = v;\n }\n\n protected _forceLayoutTag: boolean = false;\n protected _layout: ILayoutItem = null;\n protected _orient?: IPolarOrientType | IOrientType = null;\n\n // TODO: 有些hack,这个tag是为了避免布局逻辑中,轴的数据变化,又由数据变化触发重新布局\n protected _isLayout: boolean = true;\n\n initLayout() {\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') {\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 // diff layoutRect\n if (this._layout) {\n const layoutRect = this._layout.getLayoutRect();\n if (this._forceLayoutTag || !isEqual(this._lastLayoutRect, layoutRect)) {\n this.updateLayoutAttribute();\n }\n this._forceLayoutTag = false;\n }\n super.onLayoutEnd(ctx);\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.getLayoutStartPoint();\n }\n setLayoutStartPosition(pos: Partial<IPoint>) {\n return this._layout.setLayoutStartPosition(pos);\n }\n getLayoutRect() {\n return this._layout.getLayoutRect();\n }\n setLayoutRect(rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>) {\n return this._layout.setLayoutRect(rect, levelMap);\n }\n\n getLastComputeOutBounds() {\n return this._layout.getLastComputeOutBounds();\n }\n\n getGraphicBounds = () => {\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\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
+ {"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"]}
@@ -7,7 +7,7 @@ import type { SeriesMarkMap } from '../interface';
7
7
  import { SeriesTypeEnum } from '../interface/type';
8
8
  import type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';
9
9
  import type { IMark } from '../../mark/interface';
10
- export interface AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec> extends Pick<LineLikeSeriesMixin, 'initLineMark' | 'initSymbolMark' | 'initLabelMarkStyle' | 'initLineMarkStyle' | 'initSymbolMarkStyle' | 'encodeDefined' | '_lineMark' | '_symbolMark' | 'addSamplingCompile' | 'addOverlapCompile' | 'reCompileSampling'>, CartesianSeries<T> {
10
+ export interface AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec> extends Pick<LineLikeSeriesMixin, 'initLineMark' | 'initSymbolMark' | 'initLabelMarkStyle' | 'initLineMarkStyle' | 'initSymbolMarkStyle' | 'encodeDefined' | '_lineMark' | '_symbolMark' | 'addSamplingCompile' | 'addOverlapCompile' | 'reCompileSampling' | 'initLineLabelMarkStyle'>, CartesianSeries<T> {
11
11
  }
12
12
  export declare class AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec> extends CartesianSeries<T> {
13
13
  static readonly type: string;
@@ -28,7 +28,7 @@ class AreaSeries extends cartesian_1.CartesianSeries {
28
28
  areaSpec.visible = !(!isAreaVisible && !isLineVisible);
29
29
  }
30
30
  initMark() {
31
- var _a, _b, _c, _d, _e, _f, _g;
31
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
32
32
  const progressive = {
33
33
  progressiveStep: this._spec.progressiveStep,
34
34
  progressiveThreshold: this._spec.progressiveThreshold,
@@ -40,9 +40,9 @@ class AreaSeries extends cartesian_1.CartesianSeries {
40
40
  defaultMorphElementKey: this.getDimensionField()[0],
41
41
  progressive: progressive,
42
42
  isSeriesMark: isAreaVisible && "point" !== seriesMark
43
- }), !isPointVisible && this._areaMark && this._areaMark.setLabelSpec((0, merge_spec_1.mergeSpec)({
44
- animation: this._spec.animation
45
- }, this._spec.label)), this.initSymbolMark(progressive, "point" === seriesMark);
43
+ }), this._areaMark && (null === (_j = null === (_h = this._spec) || void 0 === _h ? void 0 : _h.areaLabel) || void 0 === _j ? void 0 : _j.visible) && this._areaMark.addLabelSpec(this._preprocessLabelSpec(this._spec.areaLabel, this.initLineLabelMarkStyle), !0),
44
+ !isPointVisible && this._areaMark && (null === (_k = this._spec.label) || void 0 === _k ? void 0 : _k.visible) && this._areaMark.addLabelSpec(this._preprocessLabelSpec(this._spec.label)),
45
+ this.initSymbolMark(progressive, "point" === seriesMark);
46
46
  }
47
47
  initMarkStyle() {
48
48
  var _a, _b, _c, _d, _e;
@@ -75,8 +75,7 @@ class AreaSeries extends cartesian_1.CartesianSeries {
75
75
  }, "normal", constant_1.AttributeLevel.Built_In), this._trigger.registerMark(areaMark),
76
76
  Object.keys(areaMark.stateStyle).forEach((state => {
77
77
  areaMark.stateStyle[state].stroke && areaMark.setPostProcess("stroke", (result => [ result, !1, !1, !1 ]), state);
78
- }))), this.initLineMarkStyle(this._direction, userCurveType), this.initSymbolMarkStyle(),
79
- this.initLabelMarkStyle();
78
+ }))), this.initLineMarkStyle(this._direction, userCurveType), this.initSymbolMarkStyle();
80
79
  }
81
80
  initAnimation() {
82
81
  var _a, _b, _c, _d, _e;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/area/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { isValid, isArray } from '@visactor/vutils';\n/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin } from '../mixin/line-mixin';\nimport type { IAreaMark } from '../../mark/area';\nimport { Direction } from '../../typings/space';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, ConvertToMarkStyleSpec, IAreaMarkSpec, InterpolateType } from '../../typings';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { valueInScaleRange } from '../../util/scale';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport { mixin } from '@visactor/vutils';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\nimport { LineMark } from '../../mark/line';\nimport { AreaMark } from '../../mark/area';\nimport { TextMark } from '../../mark/text';\nimport { SymbolMark } from '../../mark/symbol';\nimport { AreaSeriesTooltipHelper } from './tooltip-helpter';\nimport { areaSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport { registerAreaAnimation } from './animation';\nimport type { IMark } from '../../mark/interface';\nimport { registerSampleTransform, registerMarkOverlapTransform } from '@visactor/vgrammar-core';\n\nexport interface AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec>\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | 'encodeDefined'\n | '_lineMark'\n | '_symbolMark'\n | 'addSamplingCompile'\n | 'addOverlapCompile'\n | 'reCompileSampling'\n >,\n CartesianSeries<T> {}\n\nexport class AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.area;\n type = SeriesTypeEnum.area;\n\n static readonly mark: SeriesMarkMap = areaSeriesMark;\n\n protected declare _theme: Maybe<IAreaSeriesTheme>;\n\n protected _areaMark!: IAreaMark;\n protected _supportStack: boolean = true;\n protected _sortDataByAxis: boolean = false;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const isLineVisible = this._spec.line?.visible !== false && this._spec.line?.style?.visible !== false;\n // merge line to area\n const areaSpec = this._spec.area ?? {};\n const lineSpec = this._spec.line ?? {};\n areaSpec.interactive = areaSpec.interactive || lineSpec.interactive;\n areaSpec.support3d = areaSpec.support3d || lineSpec.support3d;\n areaSpec.zIndex =\n isValid(areaSpec.zIndex) || isValid(lineSpec.zIndex)\n ? Math.max(areaSpec.zIndex ?? 0, lineSpec.zIndex ?? 0)\n : undefined;\n\n // remove area stroke\n if (areaSpec.style) {\n delete areaSpec.style.stroke;\n }\n if (areaSpec.state) {\n Object.keys(areaSpec.state).forEach(state => {\n if ('style' in areaSpec.state[state]) {\n delete areaSpec.state[state].style.stroke;\n } else {\n delete (<ConvertToMarkStyleSpec<IAreaMarkSpec>>areaSpec.state[state]).stroke;\n }\n });\n }\n // check which one is main\n let mainSpec = areaSpec;\n let subSpec = lineSpec;\n const seriesMark = this._spec.seriesMark ?? 'area';\n if (seriesMark === 'line' || (isLineVisible && !isAreaVisible)) {\n mainSpec = lineSpec;\n subSpec = areaSpec;\n }\n areaSpec.style = mergeSpec({}, subSpec.style, mainSpec.style);\n areaSpec.state = mergeSpec({}, subSpec.state, mainSpec.state);\n if (!isAreaVisible) {\n areaSpec.style.fill = false;\n }\n if (!isLineVisible) {\n areaSpec.style.stroke = false;\n }\n areaSpec.visible = !(!isAreaVisible && !isLineVisible);\n }\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const isPointVisible = this._spec.point?.visible !== false && this._spec.point?.style?.visible !== false;\n\n const seriesMark = this._spec.seriesMark ?? 'area';\n // area\n this._areaMark = this._createMark(AreaSeries.mark.area, {\n groupKey: this._seriesField,\n defaultMorphElementKey: this.getDimensionField()[0],\n progressive,\n isSeriesMark: isAreaVisible && seriesMark !== 'point'\n }) as IAreaMark;\n if (!isPointVisible && this._areaMark) {\n this._areaMark.setLabelSpec(mergeSpec({ animation: this._spec.animation }, this._spec.label));\n }\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n // FIXME 是不是应该把curveType提前到上层配置\n // 不允许area和line的curveType不一致\n const userCurveType = (this.getSpec().area?.style?.curveType ??\n this.getSpec().line?.style?.curveType) as InterpolateType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? this._direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n // area\n const areaMark = this._areaMark;\n if (areaMark) {\n if (this._direction === Direction.vertical) {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionY1(datum), this._yAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n x1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionX1(datum), this._xAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null,\n orient: this._direction\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n fill: this.getColorAttribute(),\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined,\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(areaMark);\n\n // change stroke to area stoke = [lineStroke,false,false,false]\n Object.keys(areaMark.stateStyle).forEach(state => {\n if (areaMark.stateStyle[state].stroke) {\n areaMark.setPostProcess(\n 'stroke',\n result => {\n return [result, false, false, false];\n },\n state\n );\n }\n });\n }\n\n this.initLineMarkStyle(this._direction, userCurveType);\n this.initSymbolMarkStyle();\n this.initLabelMarkStyle();\n }\n\n initAnimation() {\n const animationParams = { direction: this.direction };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._lineMark) {\n this._lineMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('line')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.line, this._spec, this._markAttributeContext)\n )\n );\n }\n\n if (this._areaMark) {\n this._areaMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('area')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.area, this._spec, this._markAttributeContext)\n )\n );\n }\n\n if (this._symbolMark) {\n this._symbolMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('scaleInOut')?.(),\n userAnimationConfig(SeriesMarkNameEnum.point, this._spec, this._markAttributeContext)\n )\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new AreaSeriesTooltipHelper(this);\n this._areaMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._areaMark);\n this._lineMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._lineMark);\n this._symbolMark && this._tooltipHelper.activeTriggerSet.mark.add(this._symbolMark);\n }\n\n viewDataStatisticsUpdate(d: DataView) {\n super.viewDataStatisticsUpdate(d);\n this.encodeDefined(this._areaMark, 'defined');\n }\n\n compile(): void {\n super.compile();\n this.addSamplingCompile();\n this.addOverlapCompile();\n }\n\n getDefaultShapeType() {\n return 'square';\n }\n\n getActiveMarks(): IMark[] {\n return [this._areaMark, this._symbolMark, this._lineMark];\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n this.reCompileSampling();\n }\n\n getSeriesStyle(datum: Datum) {\n return (attribute: string) => {\n const seriesMarkType = this._spec.seriesMark ?? 'area';\n\n let result = this._seriesMark?.getAttribute(attribute as any, datum) ?? undefined;\n if (attribute === 'fill' && (!result || seriesMarkType === 'line')) {\n attribute = 'stroke';\n result = this._seriesMark?.getAttribute(attribute, datum) ?? undefined;\n }\n if (attribute === 'stroke' && isArray(result)) {\n return result[0];\n }\n return result;\n };\n }\n}\n\nmixin(AreaSeries, LineLikeSeriesMixin);\n\nexport const registerAreaSeries = () => {\n registerSampleTransform();\n registerMarkOverlapTransform();\n Factory.registerMark(LineMark.type, LineMark);\n Factory.registerMark(AreaMark.type, AreaMark);\n Factory.registerMark(TextMark.type, TextMark);\n Factory.registerMark(SymbolMark.type, SymbolMark);\n Factory.registerSeries(AreaSeries.type, AreaSeries);\n registerAreaAnimation();\n};\n"]}
1
+ {"version":3,"sources":["../src/series/area/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { isValid, isArray } from '@visactor/vutils';\n/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin } from '../mixin/line-mixin';\nimport type { IAreaMark } from '../../mark/area';\nimport { Direction } from '../../typings/space';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, ConvertToMarkStyleSpec, IAreaMarkSpec, InterpolateType } from '../../typings';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { valueInScaleRange } from '../../util/scale';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport { mixin } from '@visactor/vutils';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\nimport { LineMark } from '../../mark/line';\nimport { AreaMark } from '../../mark/area';\nimport { TextMark } from '../../mark/text';\nimport { SymbolMark } from '../../mark/symbol';\nimport { AreaSeriesTooltipHelper } from './tooltip-helpter';\nimport { areaSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport { registerAreaAnimation } from './animation';\nimport type { IMark } from '../../mark/interface';\nimport { registerSampleTransform, registerMarkOverlapTransform } from '@visactor/vgrammar-core';\nimport type { ILabelSpec } from '../../component';\n\nexport interface AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec>\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | 'encodeDefined'\n | '_lineMark'\n | '_symbolMark'\n | 'addSamplingCompile'\n | 'addOverlapCompile'\n | 'reCompileSampling'\n | 'initLineLabelMarkStyle'\n >,\n CartesianSeries<T> {}\n\nexport class AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.area;\n type = SeriesTypeEnum.area;\n\n static readonly mark: SeriesMarkMap = areaSeriesMark;\n\n protected declare _theme: Maybe<IAreaSeriesTheme>;\n\n protected _areaMark!: IAreaMark;\n protected _supportStack: boolean = true;\n protected _sortDataByAxis: boolean = false;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const isLineVisible = this._spec.line?.visible !== false && this._spec.line?.style?.visible !== false;\n // merge line to area\n const areaSpec = this._spec.area ?? {};\n const lineSpec = this._spec.line ?? {};\n areaSpec.interactive = areaSpec.interactive || lineSpec.interactive;\n areaSpec.support3d = areaSpec.support3d || lineSpec.support3d;\n areaSpec.zIndex =\n isValid(areaSpec.zIndex) || isValid(lineSpec.zIndex)\n ? Math.max(areaSpec.zIndex ?? 0, lineSpec.zIndex ?? 0)\n : undefined;\n\n // remove area stroke\n if (areaSpec.style) {\n delete areaSpec.style.stroke;\n }\n if (areaSpec.state) {\n Object.keys(areaSpec.state).forEach(state => {\n if ('style' in areaSpec.state[state]) {\n delete areaSpec.state[state].style.stroke;\n } else {\n delete (<ConvertToMarkStyleSpec<IAreaMarkSpec>>areaSpec.state[state]).stroke;\n }\n });\n }\n // check which one is main\n let mainSpec = areaSpec;\n let subSpec = lineSpec;\n const seriesMark = this._spec.seriesMark ?? 'area';\n if (seriesMark === 'line' || (isLineVisible && !isAreaVisible)) {\n mainSpec = lineSpec;\n subSpec = areaSpec;\n }\n areaSpec.style = mergeSpec({}, subSpec.style, mainSpec.style);\n areaSpec.state = mergeSpec({}, subSpec.state, mainSpec.state);\n if (!isAreaVisible) {\n areaSpec.style.fill = false;\n }\n if (!isLineVisible) {\n areaSpec.style.stroke = false;\n }\n areaSpec.visible = !(!isAreaVisible && !isLineVisible);\n }\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const isPointVisible = this._spec.point?.visible !== false && this._spec.point?.style?.visible !== false;\n\n const seriesMark = this._spec.seriesMark ?? 'area';\n // area\n this._areaMark = this._createMark(AreaSeries.mark.area, {\n groupKey: this._seriesField,\n defaultMorphElementKey: this.getDimensionField()[0],\n progressive,\n isSeriesMark: isAreaVisible && seriesMark !== 'point'\n }) as IAreaMark;\n if (this._areaMark && this._spec?.areaLabel?.visible) {\n this._areaMark.addLabelSpec(\n this._preprocessLabelSpec(this._spec.areaLabel as ILabelSpec, this.initLineLabelMarkStyle),\n true\n );\n }\n if (!isPointVisible && this._areaMark && this._spec.label?.visible) {\n this._areaMark.addLabelSpec(this._preprocessLabelSpec(this._spec.label as ILabelSpec));\n }\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n // FIXME 是不是应该把curveType提前到上层配置\n // 不允许area和line的curveType不一致\n const userCurveType = (this.getSpec().area?.style?.curveType ??\n this.getSpec().line?.style?.curveType) as InterpolateType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? this._direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n // area\n const areaMark = this._areaMark;\n if (areaMark) {\n if (this._direction === Direction.vertical) {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionY1(datum), this._yAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n x1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionX1(datum), this._xAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null,\n orient: this._direction\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n fill: this.getColorAttribute(),\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined,\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(areaMark);\n\n // change stroke to area stoke = [lineStroke,false,false,false]\n Object.keys(areaMark.stateStyle).forEach(state => {\n if (areaMark.stateStyle[state].stroke) {\n areaMark.setPostProcess(\n 'stroke',\n result => {\n return [result, false, false, false];\n },\n state\n );\n }\n });\n }\n\n this.initLineMarkStyle(this._direction, userCurveType);\n this.initSymbolMarkStyle();\n }\n\n initAnimation() {\n const animationParams = { direction: this.direction };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n if (this._lineMark) {\n this._lineMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('line')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.line, this._spec, this._markAttributeContext)\n )\n );\n }\n\n if (this._areaMark) {\n this._areaMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('area')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.area, this._spec, this._markAttributeContext)\n )\n );\n }\n\n if (this._symbolMark) {\n this._symbolMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('scaleInOut')?.(),\n userAnimationConfig(SeriesMarkNameEnum.point, this._spec, this._markAttributeContext)\n )\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new AreaSeriesTooltipHelper(this);\n this._areaMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._areaMark);\n this._lineMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._lineMark);\n this._symbolMark && this._tooltipHelper.activeTriggerSet.mark.add(this._symbolMark);\n }\n\n viewDataStatisticsUpdate(d: DataView) {\n super.viewDataStatisticsUpdate(d);\n this.encodeDefined(this._areaMark, 'defined');\n }\n\n compile(): void {\n super.compile();\n this.addSamplingCompile();\n this.addOverlapCompile();\n }\n\n getDefaultShapeType() {\n return 'square';\n }\n\n getActiveMarks(): IMark[] {\n return [this._areaMark, this._symbolMark, this._lineMark];\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n this.reCompileSampling();\n }\n\n getSeriesStyle(datum: Datum) {\n return (attribute: string) => {\n const seriesMarkType = this._spec.seriesMark ?? 'area';\n\n let result = this._seriesMark?.getAttribute(attribute as any, datum) ?? undefined;\n if (attribute === 'fill' && (!result || seriesMarkType === 'line')) {\n attribute = 'stroke';\n result = this._seriesMark?.getAttribute(attribute, datum) ?? undefined;\n }\n if (attribute === 'stroke' && isArray(result)) {\n return result[0];\n }\n return result;\n };\n }\n}\n\nmixin(AreaSeries, LineLikeSeriesMixin);\n\nexport const registerAreaSeries = () => {\n registerSampleTransform();\n registerMarkOverlapTransform();\n Factory.registerMark(LineMark.type, LineMark);\n Factory.registerMark(AreaMark.type, AreaMark);\n Factory.registerMark(TextMark.type, TextMark);\n Factory.registerMark(SymbolMark.type, SymbolMark);\n Factory.registerSeries(AreaSeries.type, AreaSeries);\n registerAreaAnimation();\n};\n"]}
@@ -6,6 +6,7 @@ import type { ILineLikeLabelSpec, ILineLikeSeriesTheme } from '../mixin/line-mix
6
6
  import type { IAnimationSpec } from '../../animation/spec';
7
7
  import type { AreaAppearPreset } from './animation';
8
8
  import type { IDataSamping, IMarkOverlap, IMarkProgressiveConfig } from '../../mark/interface';
9
+ import type { ILabelSpec } from '../../component';
9
10
  export interface IAreaSeriesSpec extends ICartesianSeriesSpec, IAnimationSpec<string, AreaAppearPreset>, IMarkProgressiveConfig, IDataSamping, IMarkOverlap {
10
11
  type: 'area';
11
12
  xField: string | string[];
@@ -14,6 +15,9 @@ export interface IAreaSeriesSpec extends ICartesianSeriesSpec, IAnimationSpec<st
14
15
  [SeriesMarkNameEnum.line]?: IMarkSpec<ILineMarkSpec>;
15
16
  [SeriesMarkNameEnum.area]?: IMarkSpec<IAreaMarkSpec>;
16
17
  [SeriesMarkNameEnum.label]?: ILineLikeLabelSpec;
18
+ [SeriesMarkNameEnum.areaLabel]?: Omit<ILabelSpec, 'position'> & {
19
+ position?: 'start' | 'end';
20
+ };
17
21
  seriesMark?: 'point' | 'line' | 'area';
18
22
  activePoint?: boolean;
19
23
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/area/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICartesianSeriesSpec } from '../cartesian/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { ISymbolMarkSpec, ILineMarkSpec, IAreaMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { ILineLikeLabelSpec, ILineLikeSeriesTheme } from '../mixin/line-mixin';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { AreaAppearPreset } from './animation';\nimport type { IDataSamping, IMarkOverlap, IMarkProgressiveConfig } from '../../mark/interface';\nexport interface IAreaSeriesSpec\n extends ICartesianSeriesSpec,\n IAnimationSpec<string, AreaAppearPreset>,\n IMarkProgressiveConfig,\n IDataSamping,\n IMarkOverlap {\n /**\n * 系列类型\n */\n type: 'area';\n /**\n * x轴字段\n */\n xField: string | string[];\n /**\n * y轴字段\n */\n yField: string | string[];\n /**\n * 点图元配置\n */\n [SeriesMarkNameEnum.point]?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 线图元配置\n */\n [SeriesMarkNameEnum.line]?: IMarkSpec<ILineMarkSpec>;\n /**\n * 面积图元配置\n */\n [SeriesMarkNameEnum.area]?: IMarkSpec<IAreaMarkSpec>;\n /**\n * 标签配置\n */\n [SeriesMarkNameEnum.label]?: ILineLikeLabelSpec;\n /**\n * 系列主 mark 类型配置,该配置会影响图例的展示\n * @default 'area'\n * @since 1.2.0\n */\n seriesMark?: 'point' | 'line' | 'area';\n /**\n * 是否使用额外的 activePoint 显示交互点,可以在点隐藏时显示被交互的点\n * @default false\n * @since 1.3.0\n */\n activePoint?: boolean;\n}\n\nexport interface IAreaSeriesTheme extends ILineLikeSeriesTheme {\n [SeriesMarkNameEnum.area]?: Partial<IMarkTheme<IAreaMarkSpec>>;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/area/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICartesianSeriesSpec } from '../cartesian/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { ISymbolMarkSpec, ILineMarkSpec, IAreaMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { ILineLikeLabelSpec, ILineLikeSeriesTheme } from '../mixin/line-mixin';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { AreaAppearPreset } from './animation';\nimport type { IDataSamping, IMarkOverlap, IMarkProgressiveConfig } from '../../mark/interface';\nimport type { ILabelSpec } from '../../component';\nexport interface IAreaSeriesSpec\n extends ICartesianSeriesSpec,\n IAnimationSpec<string, AreaAppearPreset>,\n IMarkProgressiveConfig,\n IDataSamping,\n IMarkOverlap {\n /**\n * 系列类型\n */\n type: 'area';\n /**\n * x轴字段\n */\n xField: string | string[];\n /**\n * y轴字段\n */\n yField: string | string[];\n /**\n * 点图元配置\n */\n [SeriesMarkNameEnum.point]?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 线图元配置\n */\n [SeriesMarkNameEnum.line]?: IMarkSpec<ILineMarkSpec>;\n /**\n * 面积图元配置\n */\n [SeriesMarkNameEnum.area]?: IMarkSpec<IAreaMarkSpec>;\n /**\n * 标签配置\n */\n [SeriesMarkNameEnum.label]?: ILineLikeLabelSpec;\n /**\n * 面积图元标签配置\n * @since 1.7.0\n */\n [SeriesMarkNameEnum.areaLabel]?: Omit<ILabelSpec, 'position'> & {\n position?: 'start' | 'end';\n };\n /**\n * 系列主 mark 类型配置,该配置会影响图例的展示\n * @default 'area'\n * @since 1.2.0\n */\n seriesMark?: 'point' | 'line' | 'area';\n /**\n * 是否使用额外的 activePoint 显示交互点,可以在点隐藏时显示被交互的点\n * @default false\n * @since 1.3.0\n */\n activePoint?: boolean;\n}\n\nexport interface IAreaSeriesTheme extends ILineLikeSeriesTheme {\n [SeriesMarkNameEnum.area]?: Partial<IMarkTheme<IAreaMarkSpec>>;\n}\n"]}