@visactor/vchart 1.12.0-alpha.8 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (768) hide show
  1. package/build/es5/index.js +12 -12
  2. package/build/index.js +37732 -38851
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/animate-manager.js +2 -2
  6. package/cjs/animation/animate-manager.js.map +1 -1
  7. package/cjs/animation/config.d.ts +4 -0
  8. package/cjs/animation/config.js +4 -0
  9. package/cjs/animation/config.js.map +1 -1
  10. package/cjs/animation/spec.d.ts +2 -1
  11. package/cjs/animation/spec.js.map +1 -1
  12. package/cjs/animation/utils.js +13 -9
  13. package/cjs/animation/utils.js.map +1 -1
  14. package/cjs/chart/bar/3d/bar-3d.js +2 -2
  15. package/cjs/chart/bar/3d/bar-3d.js.map +1 -1
  16. package/cjs/chart/base/base-chart-transformer.js +1 -0
  17. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  18. package/cjs/chart/base/base-chart.js +12 -10
  19. package/cjs/chart/base/base-chart.js.map +1 -1
  20. package/cjs/chart/funnel/3d/funnel-3d.js +2 -2
  21. package/cjs/chart/funnel/3d/funnel-3d.js.map +1 -1
  22. package/cjs/chart/gauge/gauge-transformer.js +3 -3
  23. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  24. package/cjs/chart/histogram/3d/histogram-3d.js +2 -2
  25. package/cjs/chart/histogram/3d/histogram-3d.js.map +1 -1
  26. package/cjs/chart/liquid/liquid-transformer.js +1 -0
  27. package/cjs/chart/liquid/liquid-transformer.js.map +1 -1
  28. package/cjs/chart/pie/3d/pie-3d.js +2 -2
  29. package/cjs/chart/pie/3d/pie-3d.js.map +1 -1
  30. package/cjs/chart/pie/base/pie-transformer.js +4 -1
  31. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  32. package/cjs/chart/polar/interface.d.ts +3 -2
  33. package/cjs/chart/polar/interface.js.map +1 -1
  34. package/cjs/chart/range-column/3d/range-column-3d.js +3 -2
  35. package/cjs/chart/range-column/3d/range-column-3d.js.map +1 -1
  36. package/cjs/chart/rose/rose-transformer.js +4 -4
  37. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  38. package/cjs/chart/stack.js +4 -3
  39. package/cjs/chart/stack.js.map +1 -1
  40. package/cjs/chart/sunburst/sunburst-transformer.js +2 -2
  41. package/cjs/chart/sunburst/sunburst-transformer.js.map +1 -1
  42. package/cjs/chart/util.js +4 -3
  43. package/cjs/chart/util.js.map +1 -1
  44. package/cjs/chart/word-cloud/3d/word-cloud-3d.js +5 -3
  45. package/cjs/chart/word-cloud/3d/word-cloud-3d.js.map +1 -1
  46. package/cjs/chart/word-cloud/word-cloud-transformer.js +2 -1
  47. package/cjs/chart/word-cloud/word-cloud-transformer.js.map +1 -1
  48. package/cjs/compile/compilable-base.js +1 -2
  49. package/cjs/compile/compiler.js +7 -7
  50. package/cjs/compile/compiler.js.map +1 -1
  51. package/cjs/compile/mark/compilable-mark.js +6 -6
  52. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  53. package/cjs/compile/mark/mark-data.js +2 -2
  54. package/cjs/compile/mark/mark-data.js.map +1 -1
  55. package/cjs/compile/mark/mark-state-manager.js +3 -3
  56. package/cjs/compile/mark/mark-state-manager.js.map +1 -1
  57. package/cjs/component/axis/base-axis.d.ts +1 -0
  58. package/cjs/component/axis/base-axis.js +18 -16
  59. package/cjs/component/axis/base-axis.js.map +1 -1
  60. package/cjs/component/axis/cartesian/axis.js +10 -10
  61. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  62. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -0
  63. package/cjs/component/axis/cartesian/band-axis.js +7 -1
  64. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  65. package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -0
  66. package/cjs/component/axis/cartesian/linear-axis.js +7 -1
  67. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  68. package/cjs/component/axis/cartesian/log-axis.d.ts +1 -0
  69. package/cjs/component/axis/cartesian/log-axis.js +7 -1
  70. package/cjs/component/axis/cartesian/log-axis.js.map +1 -1
  71. package/cjs/component/axis/cartesian/symlog-axis.d.ts +1 -0
  72. package/cjs/component/axis/cartesian/symlog-axis.js +7 -1
  73. package/cjs/component/axis/cartesian/symlog-axis.js.map +1 -1
  74. package/cjs/component/axis/cartesian/time-axis.d.ts +1 -0
  75. package/cjs/component/axis/cartesian/time-axis.js +8 -2
  76. package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
  77. package/cjs/component/axis/interface/common.d.ts +2 -2
  78. package/cjs/component/axis/interface/common.js.map +1 -1
  79. package/cjs/component/axis/mixin/linear-axis-mixin.js +5 -5
  80. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  81. package/cjs/component/axis/polar/axis.d.ts +2 -2
  82. package/cjs/component/axis/polar/axis.js +21 -25
  83. package/cjs/component/axis/polar/axis.js.map +1 -1
  84. package/cjs/component/axis/polar/band-axis.d.ts +1 -0
  85. package/cjs/component/axis/polar/band-axis.js +8 -1
  86. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  87. package/cjs/component/axis/polar/interface/spec.d.ts +3 -2
  88. package/cjs/component/axis/polar/interface/spec.js.map +1 -1
  89. package/cjs/component/axis/polar/linear-axis.d.ts +1 -0
  90. package/cjs/component/axis/polar/linear-axis.js +8 -1
  91. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  92. package/cjs/component/axis/polar/util/common.d.ts +3 -0
  93. package/cjs/component/axis/polar/util/common.js +14 -5
  94. package/cjs/component/axis/polar/util/common.js.map +1 -1
  95. package/cjs/component/base/base-component.js +2 -2
  96. package/cjs/component/base/base-component.js.map +1 -1
  97. package/cjs/component/brush/brush.js +18 -17
  98. package/cjs/component/brush/brush.js.map +1 -1
  99. package/cjs/component/crosshair/base.d.ts +1 -0
  100. package/cjs/component/crosshair/base.js +28 -31
  101. package/cjs/component/crosshair/base.js.map +1 -1
  102. package/cjs/component/crosshair/utils/common.js +6 -5
  103. package/cjs/component/crosshair/utils/common.js.map +1 -1
  104. package/cjs/component/custom-mark/custom-mark.js +4 -4
  105. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  106. package/cjs/component/data-zoom/data-filter-base-component.js +3 -3
  107. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  108. package/cjs/component/data-zoom/data-zoom/data-zoom.js +3 -3
  109. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  110. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +4 -4
  111. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  112. package/cjs/component/geo/geo-coordinate.js +10 -7
  113. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  114. package/cjs/component/geo/interface.d.ts +4 -0
  115. package/cjs/component/geo/interface.js.map +1 -1
  116. package/cjs/component/indicator/indicator.js +3 -3
  117. package/cjs/component/indicator/indicator.js.map +1 -1
  118. package/cjs/component/indicator/interface.d.ts +3 -1
  119. package/cjs/component/indicator/interface.js.map +1 -1
  120. package/cjs/component/label/base-label.js +2 -2
  121. package/cjs/component/label/base-label.js.map +1 -1
  122. package/cjs/component/label/label.js +7 -7
  123. package/cjs/component/label/label.js.map +1 -1
  124. package/cjs/component/label/total-label.js +5 -5
  125. package/cjs/component/label/total-label.js.map +1 -1
  126. package/cjs/component/legend/base-legend.js +8 -7
  127. package/cjs/component/legend/base-legend.js.map +1 -1
  128. package/cjs/component/legend/continuous/legend.js +2 -2
  129. package/cjs/component/legend/continuous/legend.js.map +1 -1
  130. package/cjs/component/legend/discrete/legend.js +4 -4
  131. package/cjs/component/legend/discrete/legend.js.map +1 -1
  132. package/cjs/component/legend/util.d.ts +1 -1
  133. package/cjs/component/map-label/component.d.ts +1 -1
  134. package/cjs/component/map-label/component.js +5 -5
  135. package/cjs/component/map-label/component.js.map +1 -1
  136. package/cjs/component/marker/interface.d.ts +2 -1
  137. package/cjs/component/marker/interface.js.map +1 -1
  138. package/cjs/component/marker/mark-area/base-mark-area.js +2 -2
  139. package/cjs/component/marker/mark-area/base-mark-area.js.map +1 -1
  140. package/cjs/component/marker/mark-line/base-mark-line.js +2 -2
  141. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  142. package/cjs/component/marker/mark-point/base-mark-point.js +2 -2
  143. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  144. package/cjs/component/marker/utils.js +2 -1
  145. package/cjs/component/marker/utils.js.map +1 -1
  146. package/cjs/component/player/player.js +9 -9
  147. package/cjs/component/player/player.js.map +1 -1
  148. package/cjs/component/title/title.js +2 -2
  149. package/cjs/component/title/title.js.map +1 -1
  150. package/cjs/component/tooltip/constant.js +3 -3
  151. package/cjs/component/tooltip/constant.js.map +1 -1
  152. package/cjs/component/tooltip/processor/base.js +2 -2
  153. package/cjs/component/tooltip/processor/base.js.map +1 -1
  154. package/cjs/component/tooltip/tooltip-transformer.js +3 -3
  155. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  156. package/cjs/component/tooltip/tooltip.d.ts +1 -0
  157. package/cjs/component/tooltip/tooltip.js +17 -13
  158. package/cjs/component/tooltip/tooltip.js.map +1 -1
  159. package/cjs/component/tooltip/utils/show-tooltip.js +3 -3
  160. package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
  161. package/cjs/constant/attribute.d.ts +13 -0
  162. package/cjs/constant/attribute.js +15 -0
  163. package/cjs/constant/attribute.js.map +1 -0
  164. package/cjs/constant/data.d.ts +22 -0
  165. package/cjs/constant/data.js +23 -0
  166. package/cjs/constant/data.js.map +1 -0
  167. package/cjs/constant/gradient.d.ts +43 -0
  168. package/cjs/constant/gradient.js +28 -0
  169. package/cjs/constant/gradient.js.map +1 -0
  170. package/cjs/constant/layout.d.ts +33 -0
  171. package/cjs/constant/layout.js +22 -3
  172. package/cjs/constant/layout.js.map +1 -1
  173. package/cjs/constant/scroll-bar.js +2 -1
  174. package/cjs/core/index.d.ts +2 -2
  175. package/cjs/core/index.js +2 -2
  176. package/cjs/core/index.js.map +1 -1
  177. package/cjs/core/interface.d.ts +15 -3
  178. package/cjs/core/interface.js.map +1 -1
  179. package/cjs/core/vchart.d.ts +9 -1
  180. package/cjs/core/vchart.js +80 -56
  181. package/cjs/core/vchart.js.map +1 -1
  182. package/cjs/data/register.js +1 -2
  183. package/cjs/data/transforms/correlation-center.js +3 -3
  184. package/cjs/data/transforms/correlation-center.js.map +1 -1
  185. package/cjs/data/transforms/correlation.js +4 -4
  186. package/cjs/data/transforms/correlation.js.map +1 -1
  187. package/cjs/data/transforms/data-key.js +3 -3
  188. package/cjs/data/transforms/data-key.js.map +1 -1
  189. package/cjs/data/transforms/legend-data/discrete/discrete.js +2 -2
  190. package/cjs/data/transforms/legend-data/discrete/discrete.js.map +1 -1
  191. package/cjs/data/transforms/map.js +3 -3
  192. package/cjs/data/transforms/map.js.map +1 -1
  193. package/cjs/data/transforms/pie.d.ts +6 -4
  194. package/cjs/data/transforms/pie.js +14 -7
  195. package/cjs/data/transforms/pie.js.map +1 -1
  196. package/cjs/data/transforms/waterfall.js +2 -2
  197. package/cjs/data/transforms/waterfall.js.map +1 -1
  198. package/cjs/event/bubble.d.ts +3 -0
  199. package/cjs/event/bubble.js +13 -4
  200. package/cjs/event/bubble.js.map +1 -1
  201. package/cjs/event/event-dispatcher.d.ts +3 -1
  202. package/cjs/event/event-dispatcher.js +29 -27
  203. package/cjs/event/event-dispatcher.js.map +1 -1
  204. package/cjs/event/event.d.ts +2 -0
  205. package/cjs/event/event.js +6 -0
  206. package/cjs/event/event.js.map +1 -1
  207. package/cjs/event/events/dimension/dimension-click.js +2 -2
  208. package/cjs/event/events/dimension/dimension-click.js.map +1 -1
  209. package/cjs/event/events/dimension/dimension-hover.js +4 -4
  210. package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
  211. package/cjs/event/events/dimension/util/cartesian.js +1 -2
  212. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  213. package/cjs/event/events/dimension/util/polar.js +1 -2
  214. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  215. package/cjs/event/interface.d.ts +6 -1
  216. package/cjs/event/interface.js.map +1 -1
  217. package/cjs/index-lark.js +2 -2
  218. package/cjs/index-lark.js.map +1 -1
  219. package/cjs/index-wx-simple.js +2 -2
  220. package/cjs/index-wx-simple.js.map +1 -1
  221. package/cjs/index-wx.d.ts +3 -1
  222. package/cjs/index-wx.js +4 -3
  223. package/cjs/index-wx.js.map +1 -1
  224. package/cjs/index.d.ts +1 -0
  225. package/cjs/index.js +1 -1
  226. package/cjs/index.js.map +1 -1
  227. package/cjs/interaction/config.js +1 -1
  228. package/cjs/interaction/dimension-trigger.js +1 -1
  229. package/cjs/interaction/drill/drillable.js +3 -3
  230. package/cjs/interaction/drill/drillable.js.map +1 -1
  231. package/cjs/interaction/index.js +1 -1
  232. package/cjs/interaction/interaction.js +1 -1
  233. package/cjs/interaction/zoom/zoomable.d.ts +10 -33
  234. package/cjs/interaction/zoom/zoomable.js +29 -25
  235. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  236. package/cjs/layout/base-layout.js +3 -2
  237. package/cjs/layout/base-layout.js.map +1 -1
  238. package/cjs/layout/layout-item.js +17 -18
  239. package/cjs/layout/layout-item.js.map +1 -1
  240. package/cjs/mark/arc.js +2 -2
  241. package/cjs/mark/arc.js.map +1 -1
  242. package/cjs/mark/base/base-line.js +1 -2
  243. package/cjs/mark/base/base-line.js.map +1 -1
  244. package/cjs/mark/base/base-mark.js +12 -8
  245. package/cjs/mark/base/base-mark.js.map +1 -1
  246. package/cjs/mark/utils/common.d.ts +1 -0
  247. package/cjs/mark/utils/common.js +7 -2
  248. package/cjs/mark/utils/common.js.map +1 -1
  249. package/cjs/model/interface.d.ts +1 -0
  250. package/cjs/model/interface.js.map +1 -1
  251. package/cjs/plugin/components/axis-sync/tick-align-transform.js +1 -1
  252. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  253. package/cjs/plugin/other.d.ts +6 -0
  254. package/cjs/plugin/other.js +47 -0
  255. package/cjs/plugin/other.js.map +1 -0
  256. package/cjs/region/region.js +12 -12
  257. package/cjs/region/region.js.map +1 -1
  258. package/cjs/series/area/area.js +7 -7
  259. package/cjs/series/area/area.js.map +1 -1
  260. package/cjs/series/bar/bar.js +26 -25
  261. package/cjs/series/bar/bar.js.map +1 -1
  262. package/cjs/series/base/base-series-transformer.js +1 -2
  263. package/cjs/series/base/base-series-transformer.js.map +1 -1
  264. package/cjs/series/base/base-series.js +16 -16
  265. package/cjs/series/base/base-series.js.map +1 -1
  266. package/cjs/series/base/constant.js +3 -3
  267. package/cjs/series/base/constant.js.map +1 -1
  268. package/cjs/series/box-plot/box-plot.js +8 -9
  269. package/cjs/series/box-plot/box-plot.js.map +1 -1
  270. package/cjs/series/cartesian/cartesian.js +11 -11
  271. package/cjs/series/cartesian/cartesian.js.map +1 -1
  272. package/cjs/series/circle-packing/circle-packing.js +5 -5
  273. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  274. package/cjs/series/correlation/correlation.js +13 -13
  275. package/cjs/series/correlation/correlation.js.map +1 -1
  276. package/cjs/series/dot/dot.js +12 -12
  277. package/cjs/series/dot/dot.js.map +1 -1
  278. package/cjs/series/funnel/3d/funnel-3d.js +4 -4
  279. package/cjs/series/funnel/3d/funnel-3d.js.map +1 -1
  280. package/cjs/series/funnel/funnel.js +11 -11
  281. package/cjs/series/funnel/funnel.js.map +1 -1
  282. package/cjs/series/gauge/gauge.js +7 -7
  283. package/cjs/series/gauge/gauge.js.map +1 -1
  284. package/cjs/series/geo/geo.js +2 -2
  285. package/cjs/series/geo/geo.js.map +1 -1
  286. package/cjs/series/heatmap/heatmap.js +4 -4
  287. package/cjs/series/heatmap/heatmap.js.map +1 -1
  288. package/cjs/series/interface/type.d.ts +2 -0
  289. package/cjs/series/interface/type.js +5 -4
  290. package/cjs/series/interface/type.js.map +1 -1
  291. package/cjs/series/link/link.js +6 -6
  292. package/cjs/series/link/link.js.map +1 -1
  293. package/cjs/series/liquid/animation.d.ts +2 -1
  294. package/cjs/series/liquid/animation.js +32 -4
  295. package/cjs/series/liquid/animation.js.map +1 -1
  296. package/cjs/series/liquid/constant.js +5 -1
  297. package/cjs/series/liquid/constant.js.map +1 -1
  298. package/cjs/series/liquid/interface.d.ts +1 -0
  299. package/cjs/series/liquid/interface.js.map +1 -1
  300. package/cjs/series/liquid/liquid.d.ts +9 -2
  301. package/cjs/series/liquid/liquid.js +97 -65
  302. package/cjs/series/liquid/liquid.js.map +1 -1
  303. package/cjs/series/liquid/util.js +1 -1
  304. package/cjs/series/liquid/util.js.map +1 -1
  305. package/cjs/series/map/map.js +7 -7
  306. package/cjs/series/map/map.js.map +1 -1
  307. package/cjs/series/mixin/line-mixin.js +18 -18
  308. package/cjs/series/mixin/line-mixin.js.map +1 -1
  309. package/cjs/series/mosaic/mosaic.js +6 -6
  310. package/cjs/series/mosaic/mosaic.js.map +1 -1
  311. package/cjs/series/pie/3d/pie-3d.js +5 -5
  312. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  313. package/cjs/series/pie/animation/centerOffset.js +5 -5
  314. package/cjs/series/pie/animation/centerOffset.js.map +1 -1
  315. package/cjs/series/pie/interface.d.ts +8 -1
  316. package/cjs/series/pie/interface.js.map +1 -1
  317. package/cjs/series/pie/pie.d.ts +4 -1
  318. package/cjs/series/pie/pie.js +57 -49
  319. package/cjs/series/pie/pie.js.map +1 -1
  320. package/cjs/series/polar/polar.js +2 -2
  321. package/cjs/series/polar/polar.js.map +1 -1
  322. package/cjs/series/polar/progress-like/progress-like.js +10 -10
  323. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  324. package/cjs/series/polar/rose-like/rose-like.js +3 -3
  325. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  326. package/cjs/series/progress/circular/circular.js +5 -5
  327. package/cjs/series/progress/circular/circular.js.map +1 -1
  328. package/cjs/series/progress/linear/linear.js +6 -6
  329. package/cjs/series/progress/linear/linear.js.map +1 -1
  330. package/cjs/series/radar/radar.js +7 -7
  331. package/cjs/series/radar/radar.js.map +1 -1
  332. package/cjs/series/range-area/range-area.js +5 -5
  333. package/cjs/series/range-area/range-area.js.map +1 -1
  334. package/cjs/series/sankey/sankey.js +6 -6
  335. package/cjs/series/sankey/sankey.js.map +1 -1
  336. package/cjs/series/scatter/scatter.js +9 -9
  337. package/cjs/series/scatter/scatter.js.map +1 -1
  338. package/cjs/series/sunburst/sunburst.js +5 -5
  339. package/cjs/series/sunburst/sunburst.js.map +1 -1
  340. package/cjs/series/treemap/treemap.js +12 -11
  341. package/cjs/series/treemap/treemap.js.map +1 -1
  342. package/cjs/series/util/label-mark.js +2 -2
  343. package/cjs/series/util/label-mark.js.map +1 -1
  344. package/cjs/series/venn/venn.js +8 -8
  345. package/cjs/series/venn/venn.js.map +1 -1
  346. package/cjs/series/waterfall/waterfall.js +8 -8
  347. package/cjs/series/waterfall/waterfall.js.map +1 -1
  348. package/cjs/series/word-cloud/base.d.ts +11 -11
  349. package/cjs/series/word-cloud/base.js +98 -122
  350. package/cjs/series/word-cloud/base.js.map +1 -1
  351. package/cjs/series/word-cloud/constant.js +4 -0
  352. package/cjs/series/word-cloud/constant.js.map +1 -1
  353. package/cjs/series/word-cloud/interface.d.ts +5 -2
  354. package/cjs/series/word-cloud/interface.js.map +1 -1
  355. package/cjs/series/word-cloud/word-cloud-3d.js +2 -2
  356. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  357. package/cjs/theme/builtin/common/series/sunburst.js +3 -3
  358. package/cjs/theme/builtin/common/series/sunburst.js.map +1 -1
  359. package/cjs/theme/interface.d.ts +2 -0
  360. package/cjs/theme/interface.js.map +1 -1
  361. package/cjs/typings/interpolate.d.ts +1 -3
  362. package/cjs/typings/interpolate.js +2 -3
  363. package/cjs/typings/interpolate.js.map +1 -1
  364. package/cjs/util/data.js +21 -21
  365. package/cjs/util/data.js.map +1 -1
  366. package/cjs/util/env.js +1 -1
  367. package/cjs/util/env.js.map +1 -1
  368. package/cjs/util/math.d.ts +1 -2
  369. package/cjs/util/math.js +5 -10
  370. package/cjs/util/math.js.map +1 -1
  371. package/cjs/vchart-all.js +2 -2
  372. package/cjs/vchart-all.js.map +1 -1
  373. package/cjs/vchart-empty.d.ts +4 -0
  374. package/cjs/{plugin/index.js → vchart-empty.js} +11 -2
  375. package/cjs/vchart-empty.js.map +1 -0
  376. package/cjs/vchart-pie.d.ts +4 -0
  377. package/cjs/vchart-pie.js +35 -0
  378. package/cjs/vchart-pie.js.map +1 -0
  379. package/cjs/vchart-simple.js +2 -2
  380. package/cjs/vchart-simple.js.map +1 -1
  381. package/esm/animation/animate-manager.js +1 -1
  382. package/esm/animation/animate-manager.js.map +1 -1
  383. package/esm/animation/config.d.ts +4 -0
  384. package/esm/animation/config.js +4 -0
  385. package/esm/animation/config.js.map +1 -1
  386. package/esm/animation/spec.d.ts +2 -1
  387. package/esm/animation/spec.js.map +1 -1
  388. package/esm/animation/utils.js +9 -4
  389. package/esm/animation/utils.js.map +1 -1
  390. package/esm/chart/bar/3d/bar-3d.js +3 -1
  391. package/esm/chart/bar/3d/bar-3d.js.map +1 -1
  392. package/esm/chart/base/base-chart-transformer.js +1 -0
  393. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  394. package/esm/chart/base/base-chart.js +6 -4
  395. package/esm/chart/base/base-chart.js.map +1 -1
  396. package/esm/chart/funnel/3d/funnel-3d.js +3 -1
  397. package/esm/chart/funnel/3d/funnel-3d.js.map +1 -1
  398. package/esm/chart/gauge/gauge-transformer.js +1 -1
  399. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  400. package/esm/chart/histogram/3d/histogram-3d.js +3 -1
  401. package/esm/chart/histogram/3d/histogram-3d.js.map +1 -1
  402. package/esm/chart/liquid/liquid-transformer.js +1 -0
  403. package/esm/chart/liquid/liquid-transformer.js.map +1 -1
  404. package/esm/chart/pie/3d/pie-3d.js +3 -1
  405. package/esm/chart/pie/3d/pie-3d.js.map +1 -1
  406. package/esm/chart/pie/base/pie-transformer.js +4 -1
  407. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  408. package/esm/chart/polar/interface.d.ts +3 -2
  409. package/esm/chart/polar/interface.js.map +1 -1
  410. package/esm/chart/range-column/3d/range-column-3d.js +3 -1
  411. package/esm/chart/range-column/3d/range-column-3d.js.map +1 -1
  412. package/esm/chart/rose/rose-transformer.js +1 -1
  413. package/esm/chart/rose/rose-transformer.js.map +1 -1
  414. package/esm/chart/stack.js +3 -2
  415. package/esm/chart/stack.js.map +1 -1
  416. package/esm/chart/sunburst/sunburst-transformer.js +1 -1
  417. package/esm/chart/sunburst/sunburst-transformer.js.map +1 -1
  418. package/esm/chart/util.js +5 -2
  419. package/esm/chart/util.js.map +1 -1
  420. package/esm/chart/word-cloud/3d/word-cloud-3d.js +5 -2
  421. package/esm/chart/word-cloud/3d/word-cloud-3d.js.map +1 -1
  422. package/esm/chart/word-cloud/word-cloud-transformer.js +2 -1
  423. package/esm/chart/word-cloud/word-cloud-transformer.js.map +1 -1
  424. package/esm/compile/compilable-base.js +1 -2
  425. package/esm/compile/compiler.js +1 -3
  426. package/esm/compile/compiler.js.map +1 -1
  427. package/esm/compile/mark/compilable-mark.js +5 -1
  428. package/esm/compile/mark/compilable-mark.js.map +1 -1
  429. package/esm/compile/mark/mark-data.js +1 -1
  430. package/esm/compile/mark/mark-data.js.map +1 -1
  431. package/esm/compile/mark/mark-state-manager.js +1 -1
  432. package/esm/compile/mark/mark-state-manager.js.map +1 -1
  433. package/esm/component/axis/base-axis.d.ts +1 -0
  434. package/esm/component/axis/base-axis.js +18 -14
  435. package/esm/component/axis/base-axis.js.map +1 -1
  436. package/esm/component/axis/cartesian/axis.js +3 -3
  437. package/esm/component/axis/cartesian/axis.js.map +1 -1
  438. package/esm/component/axis/cartesian/band-axis.d.ts +1 -0
  439. package/esm/component/axis/cartesian/band-axis.js +12 -1
  440. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  441. package/esm/component/axis/cartesian/linear-axis.d.ts +1 -0
  442. package/esm/component/axis/cartesian/linear-axis.js +12 -1
  443. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  444. package/esm/component/axis/cartesian/log-axis.d.ts +1 -0
  445. package/esm/component/axis/cartesian/log-axis.js +12 -1
  446. package/esm/component/axis/cartesian/log-axis.js.map +1 -1
  447. package/esm/component/axis/cartesian/symlog-axis.d.ts +1 -0
  448. package/esm/component/axis/cartesian/symlog-axis.js +12 -1
  449. package/esm/component/axis/cartesian/symlog-axis.js.map +1 -1
  450. package/esm/component/axis/cartesian/time-axis.d.ts +1 -0
  451. package/esm/component/axis/cartesian/time-axis.js +13 -2
  452. package/esm/component/axis/cartesian/time-axis.js.map +1 -1
  453. package/esm/component/axis/interface/common.d.ts +2 -2
  454. package/esm/component/axis/interface/common.js.map +1 -1
  455. package/esm/component/axis/mixin/linear-axis-mixin.js +2 -2
  456. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  457. package/esm/component/axis/polar/axis.d.ts +2 -2
  458. package/esm/component/axis/polar/axis.js +21 -24
  459. package/esm/component/axis/polar/axis.js.map +1 -1
  460. package/esm/component/axis/polar/band-axis.d.ts +1 -0
  461. package/esm/component/axis/polar/band-axis.js +12 -0
  462. package/esm/component/axis/polar/band-axis.js.map +1 -1
  463. package/esm/component/axis/polar/interface/spec.d.ts +3 -2
  464. package/esm/component/axis/polar/interface/spec.js.map +1 -1
  465. package/esm/component/axis/polar/linear-axis.d.ts +1 -0
  466. package/esm/component/axis/polar/linear-axis.js +12 -0
  467. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  468. package/esm/component/axis/polar/util/common.d.ts +3 -0
  469. package/esm/component/axis/polar/util/common.js +9 -2
  470. package/esm/component/axis/polar/util/common.js.map +1 -1
  471. package/esm/component/base/base-component.js +1 -1
  472. package/esm/component/base/base-component.js.map +1 -1
  473. package/esm/component/brush/brush.js +8 -3
  474. package/esm/component/brush/brush.js.map +1 -1
  475. package/esm/component/crosshair/base.d.ts +1 -0
  476. package/esm/component/crosshair/base.js +21 -23
  477. package/esm/component/crosshair/base.js.map +1 -1
  478. package/esm/component/crosshair/utils/common.js +6 -5
  479. package/esm/component/crosshair/utils/common.js.map +1 -1
  480. package/esm/component/custom-mark/custom-mark.js +3 -1
  481. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  482. package/esm/component/data-zoom/data-filter-base-component.js +2 -2
  483. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  484. package/esm/component/data-zoom/data-zoom/data-zoom.js +3 -1
  485. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  486. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +3 -1
  487. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  488. package/esm/component/geo/geo-coordinate.js +10 -5
  489. package/esm/component/geo/geo-coordinate.js.map +1 -1
  490. package/esm/component/geo/interface.d.ts +4 -0
  491. package/esm/component/geo/interface.js.map +1 -1
  492. package/esm/component/indicator/indicator.js +1 -1
  493. package/esm/component/indicator/indicator.js.map +1 -1
  494. package/esm/component/indicator/interface.d.ts +3 -1
  495. package/esm/component/indicator/interface.js.map +1 -1
  496. package/esm/component/label/base-label.js +1 -1
  497. package/esm/component/label/base-label.js.map +1 -1
  498. package/esm/component/label/label.js +7 -1
  499. package/esm/component/label/label.js.map +1 -1
  500. package/esm/component/label/total-label.js +5 -1
  501. package/esm/component/label/total-label.js.map +1 -1
  502. package/esm/component/legend/base-legend.js +5 -2
  503. package/esm/component/legend/base-legend.js.map +1 -1
  504. package/esm/component/legend/continuous/legend.js +1 -1
  505. package/esm/component/legend/continuous/legend.js.map +1 -1
  506. package/esm/component/legend/discrete/legend.js +1 -1
  507. package/esm/component/legend/discrete/legend.js.map +1 -1
  508. package/esm/component/legend/util.d.ts +1 -1
  509. package/esm/component/map-label/component.d.ts +1 -1
  510. package/esm/component/map-label/component.js +1 -1
  511. package/esm/component/map-label/component.js.map +1 -1
  512. package/esm/component/marker/interface.d.ts +2 -1
  513. package/esm/component/marker/interface.js.map +1 -1
  514. package/esm/component/marker/mark-area/base-mark-area.js +1 -1
  515. package/esm/component/marker/mark-area/base-mark-area.js.map +1 -1
  516. package/esm/component/marker/mark-line/base-mark-line.js +1 -1
  517. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  518. package/esm/component/marker/mark-point/base-mark-point.js +1 -1
  519. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  520. package/esm/component/marker/utils.js +2 -1
  521. package/esm/component/marker/utils.js.map +1 -1
  522. package/esm/component/player/player.js +3 -1
  523. package/esm/component/player/player.js.map +1 -1
  524. package/esm/component/title/title.js +1 -1
  525. package/esm/component/title/title.js.map +1 -1
  526. package/esm/component/tooltip/constant.js +1 -1
  527. package/esm/component/tooltip/constant.js.map +1 -1
  528. package/esm/component/tooltip/processor/base.js +1 -1
  529. package/esm/component/tooltip/processor/base.js.map +1 -1
  530. package/esm/component/tooltip/tooltip-transformer.js +4 -2
  531. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  532. package/esm/component/tooltip/tooltip.d.ts +1 -0
  533. package/esm/component/tooltip/tooltip.js +11 -7
  534. package/esm/component/tooltip/tooltip.js.map +1 -1
  535. package/esm/component/tooltip/utils/show-tooltip.js +1 -1
  536. package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
  537. package/esm/constant/attribute.d.ts +13 -0
  538. package/esm/constant/attribute.js +11 -0
  539. package/esm/constant/attribute.js.map +1 -0
  540. package/esm/constant/data.d.ts +22 -0
  541. package/esm/constant/data.js +46 -0
  542. package/esm/constant/data.js.map +1 -0
  543. package/esm/constant/gradient.d.ts +43 -0
  544. package/esm/constant/gradient.js +31 -0
  545. package/esm/constant/gradient.js.map +1 -0
  546. package/esm/constant/layout.d.ts +33 -0
  547. package/esm/constant/layout.js +25 -1
  548. package/esm/constant/layout.js.map +1 -1
  549. package/esm/constant/scroll-bar.js +2 -1
  550. package/esm/core/index.d.ts +2 -2
  551. package/esm/core/index.js +3 -3
  552. package/esm/core/index.js.map +1 -1
  553. package/esm/core/interface.d.ts +15 -3
  554. package/esm/core/interface.js.map +1 -1
  555. package/esm/core/vchart.d.ts +9 -1
  556. package/esm/core/vchart.js +76 -54
  557. package/esm/core/vchart.js.map +1 -1
  558. package/esm/data/register.js +1 -2
  559. package/esm/data/transforms/correlation-center.js +1 -1
  560. package/esm/data/transforms/correlation-center.js.map +1 -1
  561. package/esm/data/transforms/correlation.js +1 -1
  562. package/esm/data/transforms/correlation.js.map +1 -1
  563. package/esm/data/transforms/data-key.js +1 -1
  564. package/esm/data/transforms/data-key.js.map +1 -1
  565. package/esm/data/transforms/legend-data/discrete/discrete.js +1 -1
  566. package/esm/data/transforms/legend-data/discrete/discrete.js.map +1 -1
  567. package/esm/data/transforms/map.js +3 -1
  568. package/esm/data/transforms/map.js.map +1 -1
  569. package/esm/data/transforms/pie.d.ts +6 -4
  570. package/esm/data/transforms/pie.js +15 -6
  571. package/esm/data/transforms/pie.js.map +1 -1
  572. package/esm/data/transforms/waterfall.js +1 -1
  573. package/esm/data/transforms/waterfall.js.map +1 -1
  574. package/esm/event/bubble.d.ts +3 -0
  575. package/esm/event/bubble.js +10 -1
  576. package/esm/event/bubble.js.map +1 -1
  577. package/esm/event/event-dispatcher.d.ts +3 -1
  578. package/esm/event/event-dispatcher.js +29 -27
  579. package/esm/event/event-dispatcher.js.map +1 -1
  580. package/esm/event/event.d.ts +2 -0
  581. package/esm/event/event.js +6 -0
  582. package/esm/event/event.js.map +1 -1
  583. package/esm/event/events/dimension/dimension-click.js +1 -1
  584. package/esm/event/events/dimension/dimension-click.js.map +1 -1
  585. package/esm/event/events/dimension/dimension-hover.js +1 -1
  586. package/esm/event/events/dimension/dimension-hover.js.map +1 -1
  587. package/esm/event/events/dimension/util/cartesian.js +0 -3
  588. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  589. package/esm/event/events/dimension/util/polar.js +0 -3
  590. package/esm/event/events/dimension/util/polar.js.map +1 -1
  591. package/esm/event/interface.d.ts +6 -1
  592. package/esm/event/interface.js.map +1 -1
  593. package/esm/index-lark.js +3 -1
  594. package/esm/index-lark.js.map +1 -1
  595. package/esm/index-wx-simple.js +3 -1
  596. package/esm/index-wx-simple.js.map +1 -1
  597. package/esm/index-wx.d.ts +3 -1
  598. package/esm/index-wx.js +6 -2
  599. package/esm/index-wx.js.map +1 -1
  600. package/esm/index.d.ts +1 -0
  601. package/esm/index.js +2 -0
  602. package/esm/index.js.map +1 -1
  603. package/esm/interaction/config.js +1 -1
  604. package/esm/interaction/dimension-trigger.js +1 -1
  605. package/esm/interaction/drill/drillable.js +1 -1
  606. package/esm/interaction/drill/drillable.js.map +1 -1
  607. package/esm/interaction/index.js +1 -1
  608. package/esm/interaction/interaction.js +1 -1
  609. package/esm/interaction/zoom/zoomable.d.ts +10 -33
  610. package/esm/interaction/zoom/zoomable.js +12 -8
  611. package/esm/interaction/zoom/zoomable.js.map +1 -1
  612. package/esm/layout/base-layout.js +3 -2
  613. package/esm/layout/base-layout.js.map +1 -1
  614. package/esm/layout/layout-item.js +1 -1
  615. package/esm/layout/layout-item.js.map +1 -1
  616. package/esm/mark/arc.js +1 -1
  617. package/esm/mark/arc.js.map +1 -1
  618. package/esm/mark/base/base-line.js +1 -2
  619. package/esm/mark/base/base-line.js.map +1 -1
  620. package/esm/mark/base/base-mark.js +10 -2
  621. package/esm/mark/base/base-mark.js.map +1 -1
  622. package/esm/mark/utils/common.d.ts +1 -0
  623. package/esm/mark/utils/common.js +4 -0
  624. package/esm/mark/utils/common.js.map +1 -1
  625. package/esm/model/interface.d.ts +1 -0
  626. package/esm/model/interface.js.map +1 -1
  627. package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
  628. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  629. package/esm/plugin/other.d.ts +6 -0
  630. package/esm/plugin/other.js +18 -0
  631. package/esm/plugin/other.js.map +1 -0
  632. package/esm/region/region.js +5 -1
  633. package/esm/region/region.js.map +1 -1
  634. package/esm/series/area/area.js +1 -1
  635. package/esm/series/area/area.js.map +1 -1
  636. package/esm/series/bar/bar.js +3 -1
  637. package/esm/series/bar/bar.js.map +1 -1
  638. package/esm/series/base/base-series-transformer.js +1 -2
  639. package/esm/series/base/base-series-transformer.js.map +1 -1
  640. package/esm/series/base/base-series.js +7 -3
  641. package/esm/series/base/base-series.js.map +1 -1
  642. package/esm/series/base/constant.js +1 -1
  643. package/esm/series/base/constant.js.map +1 -1
  644. package/esm/series/box-plot/box-plot.js +5 -1
  645. package/esm/series/box-plot/box-plot.js.map +1 -1
  646. package/esm/series/cartesian/cartesian.js +5 -1
  647. package/esm/series/cartesian/cartesian.js.map +1 -1
  648. package/esm/series/circle-packing/circle-packing.js +3 -1
  649. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  650. package/esm/series/correlation/correlation.js +6 -2
  651. package/esm/series/correlation/correlation.js.map +1 -1
  652. package/esm/series/dot/dot.js +3 -1
  653. package/esm/series/dot/dot.js.map +1 -1
  654. package/esm/series/funnel/3d/funnel-3d.js +1 -1
  655. package/esm/series/funnel/3d/funnel-3d.js.map +1 -1
  656. package/esm/series/funnel/funnel.js +6 -2
  657. package/esm/series/funnel/funnel.js.map +1 -1
  658. package/esm/series/gauge/gauge.js +4 -4
  659. package/esm/series/gauge/gauge.js.map +1 -1
  660. package/esm/series/geo/geo.js +1 -1
  661. package/esm/series/geo/geo.js.map +1 -1
  662. package/esm/series/heatmap/heatmap.js +1 -1
  663. package/esm/series/heatmap/heatmap.js.map +1 -1
  664. package/esm/series/interface/type.d.ts +2 -0
  665. package/esm/series/interface/type.js +5 -4
  666. package/esm/series/interface/type.js.map +1 -1
  667. package/esm/series/link/link.js +3 -1
  668. package/esm/series/link/link.js.map +1 -1
  669. package/esm/series/liquid/animation.d.ts +2 -1
  670. package/esm/series/liquid/animation.js +30 -2
  671. package/esm/series/liquid/animation.js.map +1 -1
  672. package/esm/series/liquid/constant.js +5 -1
  673. package/esm/series/liquid/constant.js.map +1 -1
  674. package/esm/series/liquid/interface.d.ts +1 -0
  675. package/esm/series/liquid/interface.js.map +1 -1
  676. package/esm/series/liquid/liquid.d.ts +9 -2
  677. package/esm/series/liquid/liquid.js +95 -62
  678. package/esm/series/liquid/liquid.js.map +1 -1
  679. package/esm/series/liquid/util.js +1 -1
  680. package/esm/series/liquid/util.js.map +1 -1
  681. package/esm/series/map/map.js +3 -1
  682. package/esm/series/map/map.js.map +1 -1
  683. package/esm/series/mixin/line-mixin.js +1 -1
  684. package/esm/series/mixin/line-mixin.js.map +1 -1
  685. package/esm/series/mosaic/mosaic.js +1 -1
  686. package/esm/series/mosaic/mosaic.js.map +1 -1
  687. package/esm/series/pie/3d/pie-3d.js +3 -1
  688. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  689. package/esm/series/pie/animation/centerOffset.js +1 -1
  690. package/esm/series/pie/animation/centerOffset.js.map +1 -1
  691. package/esm/series/pie/interface.d.ts +8 -1
  692. package/esm/series/pie/interface.js.map +1 -1
  693. package/esm/series/pie/pie.d.ts +4 -1
  694. package/esm/series/pie/pie.js +44 -25
  695. package/esm/series/pie/pie.js.map +1 -1
  696. package/esm/series/polar/polar.js +1 -1
  697. package/esm/series/polar/polar.js.map +1 -1
  698. package/esm/series/polar/progress-like/progress-like.js +5 -1
  699. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  700. package/esm/series/polar/rose-like/rose-like.js +1 -1
  701. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  702. package/esm/series/progress/circular/circular.js +3 -1
  703. package/esm/series/progress/circular/circular.js.map +1 -1
  704. package/esm/series/progress/linear/linear.js +1 -1
  705. package/esm/series/progress/linear/linear.js.map +1 -1
  706. package/esm/series/radar/radar.js +5 -1
  707. package/esm/series/radar/radar.js.map +1 -1
  708. package/esm/series/range-area/range-area.js +1 -1
  709. package/esm/series/range-area/range-area.js.map +1 -1
  710. package/esm/series/sankey/sankey.js +5 -1
  711. package/esm/series/sankey/sankey.js.map +1 -1
  712. package/esm/series/scatter/scatter.js +1 -1
  713. package/esm/series/scatter/scatter.js.map +1 -1
  714. package/esm/series/sunburst/sunburst.js +3 -1
  715. package/esm/series/sunburst/sunburst.js.map +1 -1
  716. package/esm/series/treemap/treemap.js +10 -3
  717. package/esm/series/treemap/treemap.js.map +1 -1
  718. package/esm/series/util/label-mark.js +1 -1
  719. package/esm/series/util/label-mark.js.map +1 -1
  720. package/esm/series/venn/venn.js +3 -1
  721. package/esm/series/venn/venn.js.map +1 -1
  722. package/esm/series/waterfall/waterfall.js +7 -1
  723. package/esm/series/waterfall/waterfall.js.map +1 -1
  724. package/esm/series/word-cloud/base.d.ts +11 -11
  725. package/esm/series/word-cloud/base.js +96 -122
  726. package/esm/series/word-cloud/base.js.map +1 -1
  727. package/esm/series/word-cloud/constant.js +4 -0
  728. package/esm/series/word-cloud/constant.js.map +1 -1
  729. package/esm/series/word-cloud/interface.d.ts +5 -2
  730. package/esm/series/word-cloud/interface.js.map +1 -1
  731. package/esm/series/word-cloud/word-cloud-3d.js +1 -1
  732. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  733. package/esm/theme/builtin/common/series/sunburst.js +1 -1
  734. package/esm/theme/builtin/common/series/sunburst.js.map +1 -1
  735. package/esm/theme/interface.d.ts +2 -0
  736. package/esm/theme/interface.js.map +1 -1
  737. package/esm/typings/interpolate.d.ts +1 -3
  738. package/esm/typings/interpolate.js +0 -4
  739. package/esm/typings/interpolate.js.map +1 -1
  740. package/esm/util/data.js +1 -1
  741. package/esm/util/data.js.map +1 -1
  742. package/esm/util/env.js +1 -1
  743. package/esm/util/env.js.map +1 -1
  744. package/esm/util/math.d.ts +1 -2
  745. package/esm/util/math.js +0 -4
  746. package/esm/util/math.js.map +1 -1
  747. package/esm/vchart-all.js +6 -2
  748. package/esm/vchart-all.js.map +1 -1
  749. package/esm/vchart-empty.d.ts +4 -0
  750. package/esm/vchart-empty.js +8 -0
  751. package/esm/vchart-empty.js.map +1 -0
  752. package/esm/vchart-pie.d.ts +4 -0
  753. package/esm/vchart-pie.js +20 -0
  754. package/esm/vchart-pie.js.map +1 -0
  755. package/esm/vchart-simple.js +3 -1
  756. package/esm/vchart-simple.js.map +1 -1
  757. package/package.json +20 -18
  758. package/cjs/constant/index.d.ts +0 -117
  759. package/cjs/constant/index.js +0 -89
  760. package/cjs/constant/index.js.map +0 -1
  761. package/cjs/plugin/index.d.ts +0 -2
  762. package/cjs/plugin/index.js.map +0 -1
  763. package/esm/constant/index.d.ts +0 -117
  764. package/esm/constant/index.js +0 -126
  765. package/esm/constant/index.js.map +0 -1
  766. package/esm/plugin/index.d.ts +0 -2
  767. package/esm/plugin/index.js +0 -4
  768. package/esm/plugin/index.js.map +0 -1
@@ -17,8 +17,7 @@ class BaseLineMark extends base_mark_1.BaseMark {
17
17
  if ((0, vutils_1.isNil)(attrStyle) || ignoreAttributes.includes(attr)) return;
18
18
  isUserLevel && segmentAttributes.includes(attr) && ((0, vscale_1.isValidScaleType)(null == attrStyle ? void 0 : attrStyle.type) || (null == attrStyle ? void 0 : attrStyle.scale) || (0,
19
19
  vutils_1.isFunction)(attrStyle)) && (enableSegments = !0);
20
- let styleConverter = this._styleConvert(attrStyle);
21
- isUserLevel && "angle" === attr && (styleConverter = this.convertAngleToRadian(styleConverter)),
20
+ const styleConverter = this._filterAttribute(attr, attrStyle, state, level, isUserLevel, stateStyle);
22
21
  this.setAttribute(attr, styleConverter, state, level, stateStyle);
23
22
  })), enableSegments && this.setEnableSegments(enableSegments);
24
23
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/base/base-line.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAGpD,6CAAqD;AACrD,2CAAuC;AAGvC,MAAsB,YAA8D,SAAQ,oBAAW;IAWrG,QAAQ,CACN,KAAkE,EAClE,QAAwB,QAAQ,EAChC,QAAgB,CAAC,EACjB,UAAU,GAAG,IAAI,CAAC,UAAU;QAE5B,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,EAAE;YAChB,OAAO;SACR;QAED,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YACnC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACxB;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,MAAM,iBAAiB,GAAG;YACxB,aAAa;YACb,WAAW;YACX,UAAU;YACV,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,eAAe;YACf,SAAS;YACT,MAAM;YACN,aAAa;YACb,SAAS;YACT,gBAAgB;YAChB,aAAa;YACb,cAAc;SACf,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvD,OAAO;aACR;YACD,IACE,WAAW;gBACX,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC,IAAA,yBAAgB,EAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,KAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAA,IAAI,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC,EAChF;gBACA,cAAc,GAAG,IAAI,CAAC;aACvB;YAED,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEnD,IAAI,WAAW,IAAI,IAAI,KAAK,OAAO,EAAE;gBACnC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAsC,CAAC,CAAC;aACpF;YAED,IAAI,CAAC,YAAY,CAAC,IAAW,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;SACxC;IACH,CAAC;CACF;AArED,oCAqEC","file":"base-line.js","sourcesContent":["import { isValidScaleType } from '@visactor/vscale';\nimport type { StateValueType } from '../../compile/mark';\nimport type { ConvertToMarkStyleSpec, ILineLikeMarkSpec } from '../../typings/visual';\nimport { isFunction, isNil } from '@visactor/vutils';\nimport { BaseMark } from './base-mark';\nimport type { IMarkStyle, StyleConvert } from '../interface';\n\nexport abstract class BaseLineMark<T extends ILineLikeMarkSpec = ILineLikeMarkSpec> extends BaseMark<T> {\n protected abstract _getIgnoreAttributes(): string[];\n\n /**\n * @override\n * 之所以覆写是因为 vgrammar 侧默认都会处理 lineSegments,非常耗性能,所以需要 VChart 给一个标志位用于是否执行。\n * 由外部series调用,设置markStyle的接口。\n * @param style\n * @param level\n * @param state\n */\n setStyle<T>(\n style: Partial<ConvertToMarkStyleSpec<T>> | Partial<IMarkStyle<T>>,\n state: StateValueType = 'normal',\n level: number = 0,\n stateStyle = this.stateStyle\n ): void {\n if (isNil(style)) {\n return;\n }\n\n if (stateStyle[state] === undefined) {\n stateStyle[state] = {};\n }\n\n const ignoreAttributes = this._getIgnoreAttributes();\n const segmentAttributes = [\n 'strokeWidth',\n 'lineWidth',\n 'lineDash',\n 'strokeDash',\n 'lineJoin',\n 'stroke',\n 'strokeOpacity',\n 'opacity',\n 'fill',\n 'fillOpacity',\n 'texture',\n 'texturePadding',\n 'textureSize',\n 'textureColor'\n ];\n const isUserLevel = this.isUserLevel(level);\n let enableSegments = false;\n Object.keys(style).forEach(attr => {\n const attrStyle = style[attr];\n if (isNil(attrStyle) || ignoreAttributes.includes(attr)) {\n return;\n }\n if (\n isUserLevel &&\n segmentAttributes.includes(attr) &&\n (isValidScaleType(attrStyle?.type) || attrStyle?.scale || isFunction(attrStyle))\n ) {\n enableSegments = true;\n }\n\n let styleConverter = this._styleConvert(attrStyle);\n\n if (isUserLevel && attr === 'angle') {\n styleConverter = this.convertAngleToRadian(styleConverter as StyleConvert<number>);\n }\n\n this.setAttribute(attr as any, styleConverter, state, level, stateStyle);\n });\n if (enableSegments) {\n this.setEnableSegments(enableSegments);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/mark/base/base-line.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAGpD,6CAA8D;AAC9D,2CAAsD;AAItD,MAAsB,YAA8D,SAAQ,oBAAW;IAWrG,QAAQ,CACN,KAAkE,EAClE,QAAwB,QAAQ,EAChC,QAAgB,CAAC,EACjB,UAAU,GAAG,IAAI,CAAC,UAAU;QAE5B,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,EAAE;YAChB,OAAO;SACR;QAED,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YACnC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACxB;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,MAAM,iBAAiB,GAAG;YACxB,aAAa;YACb,WAAW;YACX,UAAU;YACV,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,eAAe;YACf,SAAS;YACT,MAAM;YACN,aAAa;YACb,SAAS;YACT,gBAAgB;YAChB,aAAa;YACb,cAAc;SACf,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvD,OAAO;aACR;YACD,IACE,WAAW;gBACX,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChC,CAAC,IAAA,yBAAgB,EAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,KAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAA,IAAI,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC,EAChF;gBACA,cAAc,GAAG,IAAI,CAAC;aACvB;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAW,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAE5G,IAAI,CAAC,YAAY,CAAC,IAAW,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;SACxC;IACH,CAAC;CACF;AAjED,oCAiEC","file":"base-line.js","sourcesContent":["import { isValidScaleType } from '@visactor/vscale';\nimport type { StateValueType } from '../../compile/mark';\nimport type { ConvertToMarkStyleSpec, ILineLikeMarkSpec } from '../../typings/visual';\nimport { isFunction, isNil, isValid } from '@visactor/vutils';\nimport { BaseMark, ExChannelCall } from './base-mark';\nimport type { IMarkOption, IMarkStyle, StyleConvert } from '../interface';\nimport { Datum } from '../../typings';\n\nexport abstract class BaseLineMark<T extends ILineLikeMarkSpec = ILineLikeMarkSpec> extends BaseMark<T> {\n protected abstract _getIgnoreAttributes(): string[];\n\n /**\n * @override\n * 之所以覆写是因为 vgrammar 侧默认都会处理 lineSegments,非常耗性能,所以需要 VChart 给一个标志位用于是否执行。\n * 由外部series调用,设置markStyle的接口。\n * @param style\n * @param level\n * @param state\n */\n setStyle<T>(\n style: Partial<ConvertToMarkStyleSpec<T>> | Partial<IMarkStyle<T>>,\n state: StateValueType = 'normal',\n level: number = 0,\n stateStyle = this.stateStyle\n ): void {\n if (isNil(style)) {\n return;\n }\n\n if (stateStyle[state] === undefined) {\n stateStyle[state] = {};\n }\n\n const ignoreAttributes = this._getIgnoreAttributes();\n const segmentAttributes = [\n 'strokeWidth',\n 'lineWidth',\n 'lineDash',\n 'strokeDash',\n 'lineJoin',\n 'stroke',\n 'strokeOpacity',\n 'opacity',\n 'fill',\n 'fillOpacity',\n 'texture',\n 'texturePadding',\n 'textureSize',\n 'textureColor'\n ];\n const isUserLevel = this.isUserLevel(level);\n let enableSegments = false;\n Object.keys(style).forEach(attr => {\n const attrStyle = style[attr];\n if (isNil(attrStyle) || ignoreAttributes.includes(attr)) {\n return;\n }\n if (\n isUserLevel &&\n segmentAttributes.includes(attr) &&\n (isValidScaleType(attrStyle?.type) || attrStyle?.scale || isFunction(attrStyle))\n ) {\n enableSegments = true;\n }\n\n const styleConverter = this._filterAttribute(attr as any, attrStyle, state, level, isUserLevel, stateStyle);\n\n this.setAttribute(attr as any, styleConverter, state, level, stateStyle);\n });\n if (enableSegments) {\n this.setEnableSegments(enableSegments);\n }\n }\n}\n"]}
@@ -14,7 +14,7 @@ Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.BaseMark = void 0;
16
16
 
17
- const vutils_extension_1 = require("@visactor/vutils-extension"), color_1 = require("../../util/color"), scale_1 = require("../../util/scale"), constant_1 = require("../../constant"), vscale_1 = require("@visactor/vscale"), util_1 = require("../../theme/color-scheme/util"), compilable_mark_1 = require("../../compile/mark/compilable-mark"), vutils_1 = require("@visactor/vutils");
17
+ const vutils_extension_1 = require("@visactor/vutils-extension"), color_1 = require("../../util/color"), scale_1 = require("../../util/scale"), gradient_1 = require("../../constant/gradient"), attribute_1 = require("../../constant/attribute"), vscale_1 = require("@visactor/vscale"), util_1 = require("../../theme/color-scheme/util"), compilable_mark_1 = require("../../compile/mark/compilable-mark"), vutils_1 = require("@visactor/vutils"), utils_1 = require("../utils");
18
18
 
19
19
  class BaseMark extends compilable_mark_1.CompilableMark {
20
20
  constructor(name, option) {
@@ -41,7 +41,7 @@ class BaseMark extends compilable_mark_1.CompilableMark {
41
41
  return this._transformStyleValue(styleConverter, vutils_1.degreeToRadian);
42
42
  }
43
43
  isUserLevel(level) {
44
- return [ constant_1.AttributeLevel.User_Mark, constant_1.AttributeLevel.User_Series, constant_1.AttributeLevel.User_Chart ].includes(level);
44
+ return [ attribute_1.AttributeLevel.User_Mark, attribute_1.AttributeLevel.User_Series, attribute_1.AttributeLevel.User_Chart, attribute_1.AttributeLevel.User_SeriesStyle ].includes(level);
45
45
  }
46
46
  setStyle(style, state = "normal", level = 0, stateStyle = this.stateStyle) {
47
47
  if ((0, vutils_1.isNil)(style)) return;
@@ -67,6 +67,10 @@ class BaseMark extends compilable_mark_1.CompilableMark {
67
67
  case "innerPadding":
68
68
  case "outerPadding":
69
69
  newStyle = this._transformStyleValue(newStyle, (value => -value));
70
+ break;
71
+
72
+ case "curveType":
73
+ newStyle = this._transformStyleValue(newStyle, (value => (0, utils_1.curveTypeTransform)(value, this._option.model.direction)));
70
74
  }
71
75
  return newStyle;
72
76
  }
@@ -152,7 +156,7 @@ class BaseMark extends compilable_mark_1.CompilableMark {
152
156
  }
153
157
  _computeStateAttribute(stateStyle, key, state) {
154
158
  var _a;
155
- return stateStyle ? stateStyle.referer ? stateStyle.referer._computeAttribute(key, state) : stateStyle.style ? "function" == typeof stateStyle.style ? (datum, opt) => stateStyle.style(datum, this._attributeContext, opt, this.getDataView()) : constant_1.GradientType.includes(stateStyle.style.gradient) ? this._computeGradientAttr(stateStyle.style) : [ "outerBorder", "innerBorder" ].includes(key) ? this._computeBorderAttr(stateStyle.style) : (0,
159
+ return stateStyle ? stateStyle.referer ? stateStyle.referer._computeAttribute(key, state) : stateStyle.style ? "function" == typeof stateStyle.style ? (datum, opt) => stateStyle.style(datum, this._attributeContext, opt, this.getDataView()) : gradient_1.GradientType.includes(stateStyle.style.gradient) ? this._computeGradientAttr(stateStyle.style) : [ "outerBorder", "innerBorder" ].includes(key) ? this._computeBorderAttr(stateStyle.style) : (0,
156
160
  vscale_1.isValidScaleType)(null === (_a = stateStyle.style.scale) || void 0 === _a ? void 0 : _a.type) ? (datum, opt) => stateStyle.style.scale.scale(datum[stateStyle.style.field]) : (datum, opt) => stateStyle.style : (datum, opt) => stateStyle.style : (datum, opt) => {};
157
161
  }
158
162
  _initStyle() {
@@ -160,7 +164,7 @@ class BaseMark extends compilable_mark_1.CompilableMark {
160
164
  this.setStyle(defaultStyle, "normal", 0);
161
165
  }
162
166
  _initSpecStyle(spec, stateStyle, key) {
163
- spec.style && this.setStyle(spec.style, "normal", constant_1.AttributeLevel.User_Mark, stateStyle);
167
+ spec.style && this.setStyle(spec.style, "normal", attribute_1.AttributeLevel.User_Mark, stateStyle);
164
168
  const state = spec.state;
165
169
  state && Object.keys(state).forEach((key => {
166
170
  const stateTemp = state[key];
@@ -173,8 +177,8 @@ class BaseMark extends compilable_mark_1.CompilableMark {
173
177
  vutils_1.isFunction)(stateTemp.filter) ? Object.assign({
174
178
  filter: stateTemp.filter
175
179
  }, stateInfo) : Object.assign(Object.assign({}, stateTemp.filter), stateInfo)),
176
- this.state.addStateInfo(stateInfo), this.setStyle(style, key, constant_1.AttributeLevel.User_Mark, stateStyle);
177
- } else this.setStyle(stateTemp, key, constant_1.AttributeLevel.User_Mark, stateStyle);
180
+ this.state.addStateInfo(stateInfo), this.setStyle(style, key, attribute_1.AttributeLevel.User_Mark, stateStyle);
181
+ } else this.setStyle(stateTemp, key, attribute_1.AttributeLevel.User_Mark, stateStyle);
178
182
  }));
179
183
  }
180
184
  _computeGradientAttr(gradientStyle) {
@@ -185,7 +189,7 @@ class BaseMark extends compilable_mark_1.CompilableMark {
185
189
  const {scale: globalColorScale, field: globalField} = this.model.getColorAttribute();
186
190
  scale || (colorScale = globalColorScale), colorField || (colorField = globalField);
187
191
  }
188
- const themeColor = (0, util_1.computeActualDataScheme)((0, util_1.getDataScheme)(this.model.getColorScheme(), "series" === this.model.modelType ? null === (_b = (_a = this.model).getSpec) || void 0 === _b ? void 0 : _b.call(_a) : void 0), this.model.getDefaultColorDomain()), mergedStyle = Object.assign(Object.assign({}, constant_1.DEFAULT_GRADIENT_CONFIG[gradient]), rest);
192
+ const themeColor = (0, util_1.computeActualDataScheme)((0, util_1.getDataScheme)(this.model.getColorScheme(), "series" === this.model.modelType ? null === (_b = (_a = this.model).getSpec) || void 0 === _b ? void 0 : _b.call(_a) : void 0), this.model.getDefaultColorDomain()), mergedStyle = Object.assign(Object.assign({}, gradient_1.DEFAULT_GRADIENT_CONFIG[gradient]), rest);
189
193
  return (data, opt) => {
190
194
  const computeStyle = {}, markData = this.getDataView();
191
195
  return Object.keys(mergedStyle).forEach((key => {
@@ -211,7 +215,7 @@ class BaseMark extends compilable_mark_1.CompilableMark {
211
215
  if (Object.keys(mergedStyle).forEach((key => {
212
216
  const value = mergedStyle[key];
213
217
  (0, vutils_1.isFunction)(value) ? computeStyle[key] = value(data, this._attributeContext, opt, this.getDataView()) : computeStyle[key] = value;
214
- })), "stroke" in computeStyle) constant_1.GradientType.includes(null === (_c = mergedStyle.stroke) || void 0 === _c ? void 0 : _c.gradient) && (computeStyle.stroke = this._computeGradientAttr(mergedStyle.stroke)(data, opt)); else {
218
+ })), "stroke" in computeStyle) gradient_1.GradientType.includes(null === (_c = mergedStyle.stroke) || void 0 === _c ? void 0 : _c.gradient) && (computeStyle.stroke = this._computeGradientAttr(mergedStyle.stroke)(data, opt)); else {
215
219
  const themeColor = (0, util_1.computeActualDataScheme)((0, util_1.getDataScheme)(this.model.getColorScheme(), "series" === this.model.modelType ? null === (_b = (_a = this.model).getSpec) || void 0 === _b ? void 0 : _b.call(_a) : void 0), this.model.getDefaultColorDomain());
216
220
  let colorScale = scale, colorField = field;
217
221
  if (!(scale && field || "series" !== this.model.modelType)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/base/base-mark.ts"],"names":[],"mappings":"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","file":"base-mark.js","sourcesContent":["import type { IStateInfo, IAttributeOpt, IModelMarkAttributeContext } from '../../compile/mark/interface';\nimport type { BaseSeries } from '../../series/base/base-series';\nimport type {\n Datum,\n IMarkSpec,\n ConvertToMarkStyleSpec,\n GradientStop,\n IVisual,\n IVisualScale,\n IVisualSpecStyle,\n ICommonSpec,\n FunctionType,\n ValueType\n} from '../../typings';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { Color } from '../../util/color';\nimport { createScaleWithSpec } from '../../util/scale';\nimport type {\n IMarkRaw,\n IMarkStateStyle,\n IMarkStyle,\n IMark,\n IMarkOption,\n StyleConvert,\n VisualScaleType,\n MarkInputStyle\n} from '../interface';\nimport { AttributeLevel, GradientType, DEFAULT_GRADIENT_CONFIG } from '../../constant';\nimport { isValidScaleType } from '@visactor/vscale';\nimport { computeActualDataScheme, getDataScheme } from '../../theme/color-scheme/util';\nimport type { ISeries } from '../../series/interface';\nimport { CompilableMark } from '../../compile/mark/compilable-mark';\nimport type { StateValueType } from '../../compile/mark';\nimport { degreeToRadian, isBoolean, isFunction, isNil, isValid } from '@visactor/vutils';\n\nexport type ExChannelCall = (\n key: string | number | symbol,\n datum: Datum,\n states: StateValueType,\n opt: unknown,\n baseValue: unknown\n) => unknown;\n\nexport class BaseMark<T extends ICommonSpec> extends CompilableMark implements IMarkRaw<T> {\n declare stateStyle: IMarkStateStyle<T>;\n\n protected declare _option: IMarkOption;\n\n protected _attributeContext: IModelMarkAttributeContext;\n\n /** by _unCompileChannel, some channel need add default channel to make sure update available */\n _extensionChannel: {\n [key: string | number | symbol]: string[];\n } = {};\n /** same as _extensionChannel. when compute channel, add extension channel effect */\n _computeExChannel: {\n [key: string | number | symbol]: ExChannelCall;\n } = {};\n\n constructor(name: string, option: IMarkOption) {\n super(option, name, option.model);\n // 这里的上下文多数情况下与 mark 是什么是没有关系的,与mark的使用者,也就是series,component有的逻辑有关。\n this._attributeContext = option.attributeContext;\n option.map?.set(this.id, this as unknown as IMark);\n }\n\n created(): void {\n this._initStyle();\n }\n\n /**\n * 外部调用,根据 spec 初始化 style(如果由 IModel 派生类调用,请使用 IModel.initMarkStyleWithSpec)\n * @param spec\n * @param key\n * @returns\n */\n initStyleWithSpec(spec: IMarkSpec<T>, key?: string) {\n if (!spec) {\n return;\n }\n\n if (isValid(spec.id)) {\n this._userId = spec.id;\n }\n\n // interactive\n if (isBoolean(spec.interactive)) {\n this._interactive = spec.interactive;\n }\n // zIndex\n if (isValid(spec.zIndex)) {\n this.setZIndex(spec.zIndex);\n }\n // visible\n if (isBoolean(spec.visible)) {\n this.setVisible(spec.visible);\n }\n // style\n this._initSpecStyle(spec, this.stateStyle, key);\n }\n\n protected _transformStyleValue<T>(\n styleConverter: StyleConvert<T>,\n transform: (value: ValueType<T>) => ValueType<T>\n ): StyleConvert<any> {\n if ((styleConverter as VisualScaleType).scale) {\n const scale = (styleConverter as VisualScaleType).scale;\n const range = scale.range();\n scale.range(range.map(transform));\n return styleConverter as StyleConvert<T>;\n } else if (typeof styleConverter === 'function') {\n return ((...args) => {\n return transform((styleConverter as FunctionType<number>)(...args) as ValueType<T>);\n }) as StyleConvert<T>;\n }\n return transform(styleConverter as ValueType<T>);\n }\n\n convertAngleToRadian(styleConverter: StyleConvert<number>) {\n // 用户传入的角度配置,需要做一层转换\n return this._transformStyleValue(styleConverter, degreeToRadian);\n }\n\n isUserLevel(level: number) {\n return [AttributeLevel.User_Mark, AttributeLevel.User_Series, AttributeLevel.User_Chart].includes(level);\n }\n\n /**\n * 由外部series调用,设置markStyle的接口(如果由 IModel 派生类调用,请使用 IModel.setMarkStyle)\n * @param style\n * @param level\n * @param state\n */\n setStyle<U extends keyof T>(\n style: Partial<IMarkStyle<T>>,\n state: StateValueType = 'normal',\n level: number = 0,\n stateStyle = this.stateStyle\n ): void {\n if (isNil(style)) {\n return;\n }\n\n if (stateStyle[state] === undefined) {\n stateStyle[state] = {};\n }\n\n const isUserLevel = this.isUserLevel(level);\n\n Object.keys(style).forEach((attr: string) => {\n let attrStyle = style[attr] as MarkInputStyle<T[U]>;\n if (isNil(attrStyle)) {\n return;\n }\n\n attrStyle = this._filterAttribute(attr as any, attrStyle, state, level, isUserLevel, stateStyle);\n\n this.setAttribute(attr as any, attrStyle, state, level, stateStyle);\n });\n }\n\n getStyle(key: string, state: StateValueType = 'normal'): any {\n return this.stateStyle[state][key]?.style;\n }\n\n /** 过滤单个 attribute */\n protected _filterAttribute<U extends keyof T>(\n attr: U,\n style: MarkInputStyle<T[U]>,\n state: StateValueType,\n level: number,\n isUserLevel: boolean,\n stateStyle = this.stateStyle\n ): StyleConvert<T[U]> {\n let newStyle = this._styleConvert(style);\n if (isUserLevel) {\n switch (attr) {\n case 'angle':\n newStyle = this.convertAngleToRadian(newStyle);\n break;\n case 'innerPadding':\n case 'outerPadding':\n // VRender 的 padding 定义基于 centent-box 盒模型,默认正方向是向外扩,与 VChart 不一致。这里将 padding 符号取反\n newStyle = this._transformStyleValue(newStyle, (value: number) => -value);\n break;\n }\n }\n return newStyle;\n }\n\n /**\n * TODO: 没有外部调用\n * 设置mark样式所参考的图元\n */\n setReferer<U extends keyof T>(mark: IMarkRaw<T>, styleKey?: U, state?: StateValueType, stateStyle = this.stateStyle) {\n if (!mark) {\n return;\n }\n if (styleKey && state) {\n const style = stateStyle[state] ?? { [styleKey]: {} };\n stateStyle[state][styleKey] = {\n ...(style[styleKey] as unknown as any),\n ...{ referer: mark }\n };\n return;\n }\n\n Object.entries(stateStyle).forEach(([state, style]) => {\n Object.entries(style).forEach(([styleKey, style]) => {\n stateStyle[state][styleKey].referer = mark;\n });\n });\n }\n\n setPostProcess<U extends keyof T>(key: U, postProcessFunc: any, state: StateValueType = 'normal') {\n if (this.stateStyle[state]?.[key]) {\n this.stateStyle[state][key].postProcess = postProcessFunc;\n }\n }\n\n getAttribute<U extends keyof T>(key: U, datum: Datum, state: StateValueType = 'normal', opt?: IAttributeOpt) {\n return this._computeAttribute(key, state)(datum, opt);\n }\n\n setAttribute<U extends keyof T>(\n attr: U,\n style: MarkInputStyle<T[U]>,\n state: StateValueType = 'normal',\n level: number = 0,\n stateStyle = this.stateStyle\n ) {\n if (stateStyle[state] === undefined) {\n stateStyle[state] = {};\n }\n\n if (stateStyle[state][attr] === undefined) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n stateStyle[state][attr] = {\n level,\n style,\n referer: undefined\n };\n }\n const attrLevel = stateStyle[state][attr]?.level;\n if (isValid(attrLevel) && attrLevel <= level) {\n mergeSpec(stateStyle[state][attr], { style, level });\n }\n\n // some attr has extension channel in VChart to make some effect\n if (state !== 'normal') {\n if (attr in this._extensionChannel) {\n this._extensionChannel[attr].forEach(key => {\n if (stateStyle[state][key] === undefined) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n stateStyle[state][key as keyof T] = stateStyle.normal[key];\n }\n });\n }\n }\n }\n\n /**\n * 与 vgrammar 默认值一致的样式可以不设置默认值或设置为undefined, 减少encode属性\n */\n protected _getDefaultStyle() {\n return {\n visible: true,\n // mark的层级应该在mark层 不在encode属性层\n // zIndex: LayoutZIndex.Mark,\n x: 0,\n y: 0\n } as IMarkStyle<T>;\n }\n\n // /**\n // * 获取该 mark 不支持的图形属性,由子类覆写\n // * @returns\n // */\n // protected getIgnoreAttributes(): string[] {\n // return [];\n // }\n\n protected _styleConvert<U extends keyof T>(style?: MarkInputStyle<T[U]>): StyleConvert<T[U]> | undefined {\n if (!style) {\n return style as undefined;\n }\n // visual spec 转换为 scale 类型的mark style\n if (isValidScaleType((style as IVisualSpecStyle<unknown, T[U]>).type) || (style as IVisualScale).scale) {\n // const _style = style as IVisual<T[U]>;\n const scale = createScaleWithSpec(style as IVisual<T[U]>, {\n globalScale: this._option.globalScale,\n seriesId: this._option.seriesId\n });\n if (scale) {\n return {\n scale,\n field: (style as IVisual<T[U]>).field,\n changeDomain: (style as IVisualScale).changeDomain\n };\n }\n }\n return style as StyleConvert<T[U]>;\n }\n\n protected _computeAttribute<U extends keyof T>(key: U, state: StateValueType) {\n let stateStyle = this.stateStyle[state]?.[key];\n if (!stateStyle) {\n stateStyle = this.stateStyle.normal[key];\n }\n const baseValueFunctor = this._computeStateAttribute(stateStyle, key, state);\n const hasPostProcess = isFunction(stateStyle?.postProcess);\n const hasExCompute = key in this._computeExChannel;\n\n if (hasPostProcess && hasExCompute) {\n const exCompute = this._computeExChannel[key];\n return (datum: Datum, opt: IAttributeOpt) => {\n let baseValue = baseValueFunctor(datum, opt);\n\n baseValue = stateStyle.postProcess(baseValue, datum, this._attributeContext, opt, this.getDataView());\n\n return exCompute(key, datum, state, opt, baseValue);\n };\n } else if (hasPostProcess) {\n return (datum: Datum, opt: IAttributeOpt) => {\n return stateStyle.postProcess(\n baseValueFunctor(datum, opt),\n datum,\n this._attributeContext,\n opt,\n this.getDataView()\n );\n };\n } else if (hasExCompute) {\n const exCompute = this._computeExChannel[key];\n return (datum: Datum, opt: IAttributeOpt) => {\n return exCompute(key, datum, state, opt, baseValueFunctor(datum, opt));\n };\n }\n return baseValueFunctor;\n }\n\n protected _computeStateAttribute<U extends keyof T>(stateStyle: any, key: U, state: StateValueType) {\n if (!stateStyle) {\n return (datum: Datum, opt: IAttributeOpt) => undefined as any;\n }\n if (stateStyle.referer) {\n return stateStyle.referer._computeAttribute(key, state);\n }\n if (!stateStyle.style) {\n return (datum: Datum, opt: IAttributeOpt) => stateStyle.style;\n }\n\n if (typeof stateStyle.style === 'function') {\n return (datum: Datum, opt: IAttributeOpt) =>\n stateStyle.style(datum, this._attributeContext, opt, this.getDataView());\n }\n\n if (GradientType.includes(stateStyle.style.gradient)) {\n // 渐变色处理,支持各个属性回调\n return this._computeGradientAttr(stateStyle.style);\n }\n\n if (['outerBorder', 'innerBorder'].includes(key as string)) {\n // 内外描边处理,支持各个属性回调\n return this._computeBorderAttr(stateStyle.style);\n }\n\n if (isValidScaleType(stateStyle.style.scale?.type)) {\n return (datum: Datum, opt: IAttributeOpt) => stateStyle.style.scale.scale(datum[stateStyle.style.field]);\n }\n return (datum: Datum, opt: IAttributeOpt) => {\n return stateStyle.style;\n };\n }\n\n private _initStyle(): void {\n const defaultStyle = this._getDefaultStyle();\n this.setStyle(defaultStyle, 'normal', 0);\n }\n\n private _initSpecStyle(spec: IMarkSpec<T>, stateStyle: IMarkStateStyle<T>, key?: string) {\n // style\n if (spec.style) {\n this.setStyle(spec.style, 'normal', AttributeLevel.User_Mark, stateStyle);\n }\n const state = spec.state;\n if (state) {\n Object.keys(state).forEach(key => {\n const stateTemp = state[key];\n if ('style' in stateTemp) {\n const style = stateTemp.style;\n let stateInfo: IStateInfo = { stateValue: key };\n if ('level' in stateTemp) {\n stateInfo.level = stateTemp.level as number;\n }\n if ('filter' in stateTemp) {\n if (isFunction(stateTemp.filter)) {\n stateInfo = {\n filter: stateTemp.filter as (datum: any, options: Record<string, any>) => boolean,\n ...stateInfo\n };\n } else {\n stateInfo = { ...stateTemp.filter, ...stateInfo };\n }\n }\n this.state.addStateInfo(stateInfo);\n this.setStyle(style as ConvertToMarkStyleSpec<T>, key, AttributeLevel.User_Mark, stateStyle);\n } else {\n this.setStyle(stateTemp, key, AttributeLevel.User_Mark, stateStyle);\n }\n });\n }\n }\n\n private _computeGradientAttr(gradientStyle: any) {\n const { gradient, scale, field, ...rest } = gradientStyle;\n\n let colorScale = scale;\n let colorField = field;\n if ((!scale || !field) && this.model.modelType === 'series') {\n // 目前只有series有这个属性\n const { scale: globalColorScale, field: globalField } = (this.model as BaseSeries<any>).getColorAttribute();\n if (!scale) {\n // 获取全局的 colorScale\n colorScale = globalColorScale;\n }\n if (!colorField) {\n colorField = globalField;\n }\n }\n\n const themeColor = computeActualDataScheme(\n getDataScheme(\n this.model.getColorScheme(),\n this.model.modelType === 'series' ? this.model.getSpec?.() : undefined\n ),\n (this.model as ISeries).getDefaultColorDomain()\n );\n // 默认配置处理\n const mergedStyle = {\n ...DEFAULT_GRADIENT_CONFIG[gradient],\n ...rest\n };\n return (data: Datum, opt: IAttributeOpt) => {\n const computeStyle: any = {};\n const markData = this.getDataView();\n Object.keys(mergedStyle).forEach(key => {\n const value = mergedStyle[key];\n if (key === 'stops') {\n computeStyle.stops = value.map((stop: GradientStop) => {\n const { opacity, color, offset } = stop;\n let computeColor = color ?? colorScale?.scale(data[colorField]);\n if (isFunction(color)) {\n computeColor = color(data, this._attributeContext, opt, markData);\n }\n\n if (isValid(opacity)) {\n computeColor = Color.SetOpacity(computeColor as string, opacity);\n }\n\n return {\n offset: isFunction(offset) ? offset(data, this._attributeContext, opt, markData) : offset,\n color: computeColor || themeColor[0]\n };\n });\n } else if (isFunction(value)) {\n computeStyle[key] = value(data, this._attributeContext, opt, markData);\n } else {\n computeStyle[key] = value;\n }\n });\n\n computeStyle.gradient = gradient;\n\n return computeStyle;\n };\n }\n\n private _computeBorderAttr(borderStyle: any) {\n const { scale, field, ...mergedStyle } = borderStyle;\n\n return (data: Datum, opt: IAttributeOpt) => {\n const computeStyle: any = {};\n\n Object.keys(mergedStyle).forEach(key => {\n const value = mergedStyle[key];\n if (isFunction(value)) {\n computeStyle[key] = value(data, this._attributeContext, opt, this.getDataView());\n } else {\n computeStyle[key] = value;\n }\n });\n if (!('stroke' in computeStyle)) {\n const themeColor = computeActualDataScheme(\n getDataScheme(\n this.model.getColorScheme(),\n this.model.modelType === 'series' ? this.model.getSpec?.() : undefined\n ),\n (this.model as ISeries).getDefaultColorDomain()\n );\n let colorScale = scale;\n let colorField = field;\n if ((!scale || !field) && this.model.modelType === 'series') {\n // 目前只有series有这个属性\n const { scale: globalColorScale, field: globalField } = (this.model as BaseSeries<any>).getColorAttribute();\n if (!scale) {\n // 获取全局的 colorScale\n colorScale = globalColorScale;\n }\n if (!colorField) {\n colorField = globalField;\n }\n computeStyle.stroke = colorScale?.scale(data[colorField]) || themeColor[0];\n }\n } else if (GradientType.includes(mergedStyle.stroke?.gradient)) {\n computeStyle.stroke = this._computeGradientAttr(mergedStyle.stroke)(data, opt);\n }\n return computeStyle;\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/mark/base/base-mark.ts"],"names":[],"mappings":"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","file":"base-mark.js","sourcesContent":["import type { IStateInfo, IAttributeOpt, IModelMarkAttributeContext } from '../../compile/mark/interface';\nimport type { BaseSeries } from '../../series/base/base-series';\nimport type {\n Datum,\n IMarkSpec,\n ConvertToMarkStyleSpec,\n GradientStop,\n IVisual,\n IVisualScale,\n IVisualSpecStyle,\n ICommonSpec,\n FunctionType,\n ValueType\n} from '../../typings';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { Color } from '../../util/color';\nimport { createScaleWithSpec } from '../../util/scale';\nimport type {\n IMarkRaw,\n IMarkStateStyle,\n IMarkStyle,\n IMark,\n IMarkOption,\n StyleConvert,\n VisualScaleType,\n MarkInputStyle\n} from '../interface';\nimport { GradientType, DEFAULT_GRADIENT_CONFIG } from '../../constant/gradient';\nimport { AttributeLevel } from '../../constant/attribute';\nimport { isValidScaleType } from '@visactor/vscale';\nimport { computeActualDataScheme, getDataScheme } from '../../theme/color-scheme/util';\nimport type { ISeries } from '../../series/interface';\nimport { CompilableMark } from '../../compile/mark/compilable-mark';\nimport type { StateValueType } from '../../compile/mark';\nimport { degreeToRadian, isBoolean, isFunction, isNil, isValid } from '@visactor/vutils';\nimport { curveTypeTransform } from '../utils';\n\nexport type ExChannelCall = (\n key: string | number | symbol,\n datum: Datum,\n states: StateValueType,\n opt: unknown,\n baseValue: unknown\n) => unknown;\n\nexport class BaseMark<T extends ICommonSpec> extends CompilableMark implements IMarkRaw<T> {\n declare stateStyle: IMarkStateStyle<T>;\n\n protected declare _option: IMarkOption;\n\n protected _attributeContext: IModelMarkAttributeContext;\n\n /** by _unCompileChannel, some channel need add default channel to make sure update available */\n _extensionChannel: {\n [key: string | number | symbol]: string[];\n } = {};\n /** same as _extensionChannel. when compute channel, add extension channel effect */\n _computeExChannel: {\n [key: string | number | symbol]: ExChannelCall;\n } = {};\n\n constructor(name: string, option: IMarkOption) {\n super(option, name, option.model);\n // 这里的上下文多数情况下与 mark 是什么是没有关系的,与mark的使用者,也就是series,component有的逻辑有关。\n this._attributeContext = option.attributeContext;\n option.map?.set(this.id, this as unknown as IMark);\n }\n\n created(): void {\n this._initStyle();\n }\n\n /**\n * 外部调用,根据 spec 初始化 style(如果由 IModel 派生类调用,请使用 IModel.initMarkStyleWithSpec)\n * @param spec\n * @param key\n * @returns\n */\n initStyleWithSpec(spec: IMarkSpec<T>, key?: string) {\n if (!spec) {\n return;\n }\n\n if (isValid(spec.id)) {\n this._userId = spec.id;\n }\n\n // interactive\n if (isBoolean(spec.interactive)) {\n this._interactive = spec.interactive;\n }\n // zIndex\n if (isValid(spec.zIndex)) {\n this.setZIndex(spec.zIndex);\n }\n // visible\n if (isBoolean(spec.visible)) {\n this.setVisible(spec.visible);\n }\n // style\n this._initSpecStyle(spec, this.stateStyle, key);\n }\n\n protected _transformStyleValue<T>(\n styleConverter: StyleConvert<T>,\n transform: (value: ValueType<T>) => ValueType<T>\n ): StyleConvert<any> {\n if ((styleConverter as VisualScaleType).scale) {\n const scale = (styleConverter as VisualScaleType).scale;\n const range = scale.range();\n scale.range(range.map(transform));\n return styleConverter as StyleConvert<T>;\n } else if (typeof styleConverter === 'function') {\n return ((...args) => {\n return transform((styleConverter as FunctionType<number>)(...args) as ValueType<T>);\n }) as StyleConvert<T>;\n }\n return transform(styleConverter as ValueType<T>);\n }\n\n convertAngleToRadian(styleConverter: StyleConvert<number>) {\n // 用户传入的角度配置,需要做一层转换\n return this._transformStyleValue(styleConverter, degreeToRadian);\n }\n\n isUserLevel(level: number) {\n return [\n AttributeLevel.User_Mark,\n AttributeLevel.User_Series,\n AttributeLevel.User_Chart,\n AttributeLevel.User_SeriesStyle\n ].includes(level);\n }\n\n /**\n * 由外部series调用,设置markStyle的接口(如果由 IModel 派生类调用,请使用 IModel.setMarkStyle)\n * @param style\n * @param level\n * @param state\n */\n setStyle<U extends keyof T>(\n style: Partial<IMarkStyle<T>>,\n state: StateValueType = 'normal',\n level: number = 0,\n stateStyle = this.stateStyle\n ): void {\n if (isNil(style)) {\n return;\n }\n\n if (stateStyle[state] === undefined) {\n stateStyle[state] = {};\n }\n\n const isUserLevel = this.isUserLevel(level);\n\n Object.keys(style).forEach((attr: string) => {\n let attrStyle = style[attr] as MarkInputStyle<T[U]>;\n if (isNil(attrStyle)) {\n return;\n }\n\n attrStyle = this._filterAttribute(attr as any, attrStyle, state, level, isUserLevel, stateStyle);\n\n this.setAttribute(attr as any, attrStyle, state, level, stateStyle);\n });\n }\n\n getStyle(key: string, state: StateValueType = 'normal'): any {\n return this.stateStyle[state][key]?.style;\n }\n\n /** 过滤单个 attribute */\n protected _filterAttribute<U extends keyof T>(\n attr: U,\n style: MarkInputStyle<T[U]>,\n state: StateValueType,\n level: number,\n isUserLevel: boolean,\n stateStyle = this.stateStyle\n ): StyleConvert<T[U]> {\n let newStyle = this._styleConvert(style);\n if (isUserLevel) {\n switch (attr) {\n case 'angle':\n newStyle = this.convertAngleToRadian(newStyle);\n break;\n case 'innerPadding':\n case 'outerPadding':\n // VRender 的 padding 定义基于 centent-box 盒模型,默认正方向是向外扩,与 VChart 不一致。这里将 padding 符号取反\n newStyle = this._transformStyleValue(newStyle, (value: number) => -value);\n break;\n case 'curveType':\n newStyle = this._transformStyleValue(newStyle, (value: string) =>\n curveTypeTransform(value, (this._option.model as any).direction)\n );\n break;\n }\n }\n return newStyle;\n }\n\n /**\n * TODO: 没有外部调用\n * 设置mark样式所参考的图元\n */\n setReferer<U extends keyof T>(mark: IMarkRaw<T>, styleKey?: U, state?: StateValueType, stateStyle = this.stateStyle) {\n if (!mark) {\n return;\n }\n if (styleKey && state) {\n const style = stateStyle[state] ?? { [styleKey]: {} };\n stateStyle[state][styleKey] = {\n ...(style[styleKey] as unknown as any),\n ...{ referer: mark }\n };\n return;\n }\n\n Object.entries(stateStyle).forEach(([state, style]) => {\n Object.entries(style).forEach(([styleKey, style]) => {\n stateStyle[state][styleKey].referer = mark;\n });\n });\n }\n\n setPostProcess<U extends keyof T>(key: U, postProcessFunc: any, state: StateValueType = 'normal') {\n if (this.stateStyle[state]?.[key]) {\n this.stateStyle[state][key].postProcess = postProcessFunc;\n }\n }\n\n getAttribute<U extends keyof T>(key: U, datum: Datum, state: StateValueType = 'normal', opt?: IAttributeOpt) {\n return this._computeAttribute(key, state)(datum, opt);\n }\n\n setAttribute<U extends keyof T>(\n attr: U,\n style: MarkInputStyle<T[U]>,\n state: StateValueType = 'normal',\n level: number = 0,\n stateStyle = this.stateStyle\n ) {\n if (stateStyle[state] === undefined) {\n stateStyle[state] = {};\n }\n\n if (stateStyle[state][attr] === undefined) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n stateStyle[state][attr] = {\n level,\n style,\n referer: undefined\n };\n }\n const attrLevel = stateStyle[state][attr]?.level;\n if (isValid(attrLevel) && attrLevel <= level) {\n mergeSpec(stateStyle[state][attr], { style, level });\n }\n\n // some attr has extension channel in VChart to make some effect\n if (state !== 'normal') {\n if (attr in this._extensionChannel) {\n this._extensionChannel[attr].forEach(key => {\n if (stateStyle[state][key] === undefined) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n stateStyle[state][key as keyof T] = stateStyle.normal[key];\n }\n });\n }\n }\n }\n\n /**\n * 与 vgrammar 默认值一致的样式可以不设置默认值或设置为undefined, 减少encode属性\n */\n protected _getDefaultStyle() {\n return {\n visible: true,\n // mark的层级应该在mark层 不在encode属性层\n // zIndex: LayoutZIndex.Mark,\n x: 0,\n y: 0\n } as IMarkStyle<T>;\n }\n\n // /**\n // * 获取该 mark 不支持的图形属性,由子类覆写\n // * @returns\n // */\n // protected getIgnoreAttributes(): string[] {\n // return [];\n // }\n\n protected _styleConvert<U extends keyof T>(style?: MarkInputStyle<T[U]>): StyleConvert<T[U]> | undefined {\n if (!style) {\n return style as undefined;\n }\n // visual spec 转换为 scale 类型的mark style\n if (isValidScaleType((style as IVisualSpecStyle<unknown, T[U]>).type) || (style as IVisualScale).scale) {\n // const _style = style as IVisual<T[U]>;\n const scale = createScaleWithSpec(style as IVisual<T[U]>, {\n globalScale: this._option.globalScale,\n seriesId: this._option.seriesId\n });\n if (scale) {\n return {\n scale,\n field: (style as IVisual<T[U]>).field,\n changeDomain: (style as IVisualScale).changeDomain\n };\n }\n }\n return style as StyleConvert<T[U]>;\n }\n\n protected _computeAttribute<U extends keyof T>(key: U, state: StateValueType) {\n let stateStyle = this.stateStyle[state]?.[key];\n if (!stateStyle) {\n stateStyle = this.stateStyle.normal[key];\n }\n const baseValueFunctor = this._computeStateAttribute(stateStyle, key, state);\n const hasPostProcess = isFunction(stateStyle?.postProcess);\n const hasExCompute = key in this._computeExChannel;\n\n if (hasPostProcess && hasExCompute) {\n const exCompute = this._computeExChannel[key];\n return (datum: Datum, opt: IAttributeOpt) => {\n let baseValue = baseValueFunctor(datum, opt);\n\n baseValue = stateStyle.postProcess(baseValue, datum, this._attributeContext, opt, this.getDataView());\n\n return exCompute(key, datum, state, opt, baseValue);\n };\n } else if (hasPostProcess) {\n return (datum: Datum, opt: IAttributeOpt) => {\n return stateStyle.postProcess(\n baseValueFunctor(datum, opt),\n datum,\n this._attributeContext,\n opt,\n this.getDataView()\n );\n };\n } else if (hasExCompute) {\n const exCompute = this._computeExChannel[key];\n return (datum: Datum, opt: IAttributeOpt) => {\n return exCompute(key, datum, state, opt, baseValueFunctor(datum, opt));\n };\n }\n return baseValueFunctor;\n }\n\n protected _computeStateAttribute<U extends keyof T>(stateStyle: any, key: U, state: StateValueType) {\n if (!stateStyle) {\n return (datum: Datum, opt: IAttributeOpt) => undefined as any;\n }\n if (stateStyle.referer) {\n return stateStyle.referer._computeAttribute(key, state);\n }\n if (!stateStyle.style) {\n return (datum: Datum, opt: IAttributeOpt) => stateStyle.style;\n }\n\n if (typeof stateStyle.style === 'function') {\n return (datum: Datum, opt: IAttributeOpt) =>\n stateStyle.style(datum, this._attributeContext, opt, this.getDataView());\n }\n\n if (GradientType.includes(stateStyle.style.gradient)) {\n // 渐变色处理,支持各个属性回调\n return this._computeGradientAttr(stateStyle.style);\n }\n\n if (['outerBorder', 'innerBorder'].includes(key as string)) {\n // 内外描边处理,支持各个属性回调\n return this._computeBorderAttr(stateStyle.style);\n }\n\n if (isValidScaleType(stateStyle.style.scale?.type)) {\n return (datum: Datum, opt: IAttributeOpt) => stateStyle.style.scale.scale(datum[stateStyle.style.field]);\n }\n return (datum: Datum, opt: IAttributeOpt) => {\n return stateStyle.style;\n };\n }\n\n private _initStyle(): void {\n const defaultStyle = this._getDefaultStyle();\n this.setStyle(defaultStyle, 'normal', 0);\n }\n\n private _initSpecStyle(spec: IMarkSpec<T>, stateStyle: IMarkStateStyle<T>, key?: string) {\n // style\n if (spec.style) {\n this.setStyle(spec.style, 'normal', AttributeLevel.User_Mark, stateStyle);\n }\n const state = spec.state;\n if (state) {\n Object.keys(state).forEach(key => {\n const stateTemp = state[key];\n if ('style' in stateTemp) {\n const style = stateTemp.style;\n let stateInfo: IStateInfo = { stateValue: key };\n if ('level' in stateTemp) {\n stateInfo.level = stateTemp.level as number;\n }\n if ('filter' in stateTemp) {\n if (isFunction(stateTemp.filter)) {\n stateInfo = {\n filter: stateTemp.filter as (datum: any, options: Record<string, any>) => boolean,\n ...stateInfo\n };\n } else {\n stateInfo = { ...stateTemp.filter, ...stateInfo };\n }\n }\n this.state.addStateInfo(stateInfo);\n this.setStyle(style as ConvertToMarkStyleSpec<T>, key, AttributeLevel.User_Mark, stateStyle);\n } else {\n this.setStyle(stateTemp, key, AttributeLevel.User_Mark, stateStyle);\n }\n });\n }\n }\n\n private _computeGradientAttr(gradientStyle: any) {\n const { gradient, scale, field, ...rest } = gradientStyle;\n\n let colorScale = scale;\n let colorField = field;\n if ((!scale || !field) && this.model.modelType === 'series') {\n // 目前只有series有这个属性\n const { scale: globalColorScale, field: globalField } = (this.model as BaseSeries<any>).getColorAttribute();\n if (!scale) {\n // 获取全局的 colorScale\n colorScale = globalColorScale;\n }\n if (!colorField) {\n colorField = globalField;\n }\n }\n\n const themeColor = computeActualDataScheme(\n getDataScheme(\n this.model.getColorScheme(),\n this.model.modelType === 'series' ? this.model.getSpec?.() : undefined\n ),\n (this.model as ISeries).getDefaultColorDomain()\n );\n // 默认配置处理\n const mergedStyle = {\n ...DEFAULT_GRADIENT_CONFIG[gradient],\n ...rest\n };\n return (data: Datum, opt: IAttributeOpt) => {\n const computeStyle: any = {};\n const markData = this.getDataView();\n Object.keys(mergedStyle).forEach(key => {\n const value = mergedStyle[key];\n if (key === 'stops') {\n computeStyle.stops = value.map((stop: GradientStop) => {\n const { opacity, color, offset } = stop;\n let computeColor = color ?? colorScale?.scale(data[colorField]);\n if (isFunction(color)) {\n computeColor = color(data, this._attributeContext, opt, markData);\n }\n\n if (isValid(opacity)) {\n computeColor = Color.SetOpacity(computeColor as string, opacity);\n }\n\n return {\n offset: isFunction(offset) ? offset(data, this._attributeContext, opt, markData) : offset,\n color: computeColor || themeColor[0]\n };\n });\n } else if (isFunction(value)) {\n computeStyle[key] = value(data, this._attributeContext, opt, markData);\n } else {\n computeStyle[key] = value;\n }\n });\n\n computeStyle.gradient = gradient;\n\n return computeStyle;\n };\n }\n\n private _computeBorderAttr(borderStyle: any) {\n const { scale, field, ...mergedStyle } = borderStyle;\n\n return (data: Datum, opt: IAttributeOpt) => {\n const computeStyle: any = {};\n\n Object.keys(mergedStyle).forEach(key => {\n const value = mergedStyle[key];\n if (isFunction(value)) {\n computeStyle[key] = value(data, this._attributeContext, opt, this.getDataView());\n } else {\n computeStyle[key] = value;\n }\n });\n if (!('stroke' in computeStyle)) {\n const themeColor = computeActualDataScheme(\n getDataScheme(\n this.model.getColorScheme(),\n this.model.modelType === 'series' ? this.model.getSpec?.() : undefined\n ),\n (this.model as ISeries).getDefaultColorDomain()\n );\n let colorScale = scale;\n let colorField = field;\n if ((!scale || !field) && this.model.modelType === 'series') {\n // 目前只有series有这个属性\n const { scale: globalColorScale, field: globalField } = (this.model as BaseSeries<any>).getColorAttribute();\n if (!scale) {\n // 获取全局的 colorScale\n colorScale = globalColorScale;\n }\n if (!colorField) {\n colorField = globalField;\n }\n computeStyle.stroke = colorScale?.scale(data[colorField]) || themeColor[0];\n }\n } else if (GradientType.includes(mergedStyle.stroke?.gradient)) {\n computeStyle.stroke = this._computeGradientAttr(mergedStyle.stroke)(data, opt);\n }\n return computeStyle;\n };\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
1
  import { MarkTypeEnum } from '../interface/type';
2
2
  export declare const MultiDatumMark: string[];
3
3
  export declare function isMultiDatumMark(type: MarkTypeEnum): boolean;
4
+ export declare function curveTypeTransform(type: string, direction: string): string;
@@ -4,8 +4,13 @@ function isMultiDatumMark(type) {
4
4
  return exports.MultiDatumMark.includes(type);
5
5
  }
6
6
 
7
+ function curveTypeTransform(type, direction) {
8
+ return "monotone" === type ? "horizontal" === direction ? "monotoneY" : "monotoneX" : type;
9
+ }
10
+
7
11
  Object.defineProperty(exports, "__esModule", {
8
12
  value: !0
9
- }), exports.isMultiDatumMark = exports.MultiDatumMark = void 0, exports.MultiDatumMark = [ "line", "area", "trail" ],
10
- exports.isMultiDatumMark = isMultiDatumMark;
13
+ }), exports.curveTypeTransform = exports.isMultiDatumMark = exports.MultiDatumMark = void 0,
14
+ exports.MultiDatumMark = [ "line", "area", "trail" ], exports.isMultiDatumMark = isMultiDatumMark,
15
+ exports.curveTypeTransform = curveTypeTransform;
11
16
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/utils/common.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAG,iBAAuC,OAAO,CAAC,CAAC;AAE9E,SAAgB,gBAAgB,CAAC,IAAkB;IACjD,OAAO,sBAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAFD,4CAEC","file":"common.js","sourcesContent":["import { MarkTypeEnum } from '../interface/type';\n\nexport const MultiDatumMark = [MarkTypeEnum.line, MarkTypeEnum.area, 'trail'];\n\nexport function isMultiDatumMark(type: MarkTypeEnum) {\n return MultiDatumMark.includes(type);\n}\n"]}
1
+ {"version":3,"sources":["../src/mark/utils/common.ts"],"names":[],"mappings":";;;AAGa,QAAA,cAAc,GAAG,iBAAuC,OAAO,CAAC,CAAC;AAE9E,SAAgB,gBAAgB,CAAC,IAAkB;IACjD,OAAO,sBAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAFD,4CAEC;AAED,SAAgB,kBAAkB,CAAC,IAAY,EAAE,SAAiB;IAChE,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,OAAO,SAAS,iBAAyB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;KACvE;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AALD,gDAKC","file":"common.js","sourcesContent":["import { MarkTypeEnum } from '../interface/type';\nimport { Direction } from '../../typings';\n\nexport const MultiDatumMark = [MarkTypeEnum.line, MarkTypeEnum.area, 'trail'];\n\nexport function isMultiDatumMark(type: MarkTypeEnum) {\n return MultiDatumMark.includes(type);\n}\n\nexport function curveTypeTransform(type: string, direction: string) {\n if (type === 'monotone') {\n return direction === Direction.horizontal ? 'monotoneY' : 'monotoneX';\n }\n return type;\n}\n"]}
@@ -46,6 +46,7 @@ export interface IUpdateSpecResult {
46
46
  reTransformSpec?: boolean;
47
47
  reAnimate?: boolean;
48
48
  changeTheme?: boolean;
49
+ changeBackground?: boolean;
49
50
  }
50
51
  export interface IUpdateDataResult {
51
52
  reAnimate?: boolean;
@@ -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, DataView } 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, IChartSpecInfo, IChartSpecTransformerOption } 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';\nimport type { ComponentTypeEnum } from '../component/interface';\nimport type { SeriesTypeEnum } from '../series';\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 reTransformSpec?: boolean;\n reAnimate?: boolean;\n changeTheme?: boolean;\n}\n\nexport interface IUpdateDataResult {\n reAnimate?: 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 readonly transformerConstructor: new (option: IBaseModelSpecTransformerOption) => IBaseModelSpecTransformer;\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\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n /** updateSpec 或者切换主题后,根据新 spec 执行的初始化过程 */\n reInit: (spec?: 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 getSpecPath: () => Array<string | number>;\n\n //布局周期\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n\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 getSpecInfo: () => IModelSpecInfo;\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 type: string;\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n regionIndexes?: Array<number>;\n specKey?: string;\n specPath?: Array<string | number>;\n specInfoPath?: Array<string | number>;\n\n getTheme?: () => ITheme;\n getSpecInfo?: () => IChartSpecInfo;\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n getSeriesData: (id: StringOrNumber | undefined, index: number | undefined) => DataView | undefined;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n\n /**\n * 是否关闭交互效果\n */\n disableTriggerEvent?: boolean;\n}\n\nexport interface IModelSpecInfo<T extends Record<string, unknown> = any> {\n /** model 具体类型 */\n type: string | ComponentTypeEnum | SeriesTypeEnum;\n /** model spec */\n spec: T;\n /** 该 spec 在图表 spec 上的路径 */\n specPath?: Array<string | number>;\n /** 该 spec 在图表 spec info 上的路径 */\n specInfoPath?: Array<string | number>;\n /** model 当前主题 */\n theme?: any;\n /** model 对应的 region 索引 */\n regionIndexes?: number[];\n /** model 对应的 series 索引 */\n seriesIndexes?: number[];\n}\n\nexport interface IModelConstructor {\n readonly transformerConstructor: new (option: IBaseModelSpecTransformerOption) => IBaseModelSpecTransformer;\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\nexport type IBaseModelSpecTransformerOption = IChartSpecTransformerOption;\n\nexport interface IBaseModelSpecTransformerResult<T, K> {\n spec: T;\n theme: K;\n}\n\nexport interface IBaseModelSpecTransformer {\n getTheme: (spec: any, chartSpec: any) => any;\n transformSpec: (\n spec: any,\n chartSpec: any,\n chartSpecInfo?: IChartSpecInfo\n ) => IBaseModelSpecTransformerResult<any, any>;\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, DataView } 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, IChartSpecInfo, IChartSpecTransformerOption } 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';\nimport type { ComponentTypeEnum } from '../component/interface';\nimport type { SeriesTypeEnum } from '../series';\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 reTransformSpec?: boolean;\n reAnimate?: boolean;\n changeTheme?: boolean;\n changeBackground?: boolean;\n}\n\nexport interface IUpdateDataResult {\n reAnimate?: 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 readonly transformerConstructor: new (option: IBaseModelSpecTransformerOption) => IBaseModelSpecTransformer;\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\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n /** updateSpec 或者切换主题后,根据新 spec 执行的初始化过程 */\n reInit: (spec?: 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 getSpecPath: () => Array<string | number>;\n\n //布局周期\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n\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 getSpecInfo: () => IModelSpecInfo;\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 type: string;\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n regionIndexes?: Array<number>;\n specKey?: string;\n specPath?: Array<string | number>;\n specInfoPath?: Array<string | number>;\n\n getTheme?: () => ITheme;\n getSpecInfo?: () => IChartSpecInfo;\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n getSeriesData: (id: StringOrNumber | undefined, index: number | undefined) => DataView | undefined;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n\n /**\n * 是否关闭交互效果\n */\n disableTriggerEvent?: boolean;\n}\n\nexport interface IModelSpecInfo<T extends Record<string, unknown> = any> {\n /** model 具体类型 */\n type: string | ComponentTypeEnum | SeriesTypeEnum;\n /** model spec */\n spec: T;\n /** 该 spec 在图表 spec 上的路径 */\n specPath?: Array<string | number>;\n /** 该 spec 在图表 spec info 上的路径 */\n specInfoPath?: Array<string | number>;\n /** model 当前主题 */\n theme?: any;\n /** model 对应的 region 索引 */\n regionIndexes?: number[];\n /** model 对应的 series 索引 */\n seriesIndexes?: number[];\n}\n\nexport interface IModelConstructor {\n readonly transformerConstructor: new (option: IBaseModelSpecTransformerOption) => IBaseModelSpecTransformer;\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\nexport type IBaseModelSpecTransformerOption = IChartSpecTransformerOption;\n\nexport interface IBaseModelSpecTransformerResult<T, K> {\n spec: T;\n theme: K;\n}\n\nexport interface IBaseModelSpecTransformer {\n getTheme: (spec: any, chartSpec: any) => any;\n transformSpec: (\n spec: any,\n chartSpec: any,\n chartSpecInfo?: IChartSpecInfo\n ) => IBaseModelSpecTransformerResult<any, any>;\n}\n"]}
@@ -13,7 +13,7 @@ const vrender_components_1 = require("@visactor/vrender-components"), tickAlign
13
13
  if (!currentAxis) return data;
14
14
  const currentData = null === (_c = currentAxis.getTickData()) || void 0 === _c ? void 0 : _c.getDataView();
15
15
  if (!currentData) return data;
16
- if (!currentData.transformsArr.find((t => "ticks" === t.type))) return data;
16
+ if (!currentData.transformsArr.find((t => t.type.includes("ticks")))) return data;
17
17
  const currentScale = currentAxis.getScale();
18
18
  if (!currentScale) return data;
19
19
  const targetData = null === (_e = null === (_d = targetAxis.getTickData()) || void 0 === _d ? void 0 : _d.getDataView()) || void 0 === _e ? void 0 : _e.latestData;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugin/components/axis-sync/tick-align-transform.ts"],"names":[],"mappings":";;;AAEA,qEAAuE;AAOhE,MAAM,SAAS,GAAG,CAAC,IAAkB,EAAE,EAAiB,EAAE,EAAE;;IACjE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,kDAAI,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,kDAAI,CAAC;IACxC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,WAAW,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,oBAAoB,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACrF,IAAI,CAAC,oBAAoB,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,MAAA,MAAA,UAAU,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,0CAAE,UAAU,CAAC;IACvE,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,QAAQ,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;QAC1D,OAAO,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,IAAA,4CAAuB,EAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AAjDW,QAAA,SAAS,aAiDpB","file":"tick-align-transform.js","sourcesContent":["import type { Datum } from '../../../typings';\nimport type { CartesianAxis } from '../../../component';\nimport { convertDomainToTickData } from '@visactor/vrender-components';\n\nexport interface ITickAlignOpt {\n targetAxis: () => CartesianAxis;\n currentAxis: () => CartesianAxis;\n}\n\nexport const tickAlign = (data: Array<Datum>, op: ITickAlignOpt) => {\n if (!data) {\n return data;\n }\n // check align enable\n const targetAxis = op?.targetAxis?.();\n if (!targetAxis) {\n return data;\n }\n const currentAxis = op?.currentAxis?.();\n if (!currentAxis) {\n return data;\n }\n const currentData = currentAxis.getTickData()?.getDataView();\n if (!currentData) {\n return data;\n }\n const currentTickTransform = currentData.transformsArr.find(t => t.type === 'ticks');\n if (!currentTickTransform) {\n return data;\n }\n const currentScale = currentAxis.getScale();\n if (!currentScale) {\n return data;\n }\n const targetData = targetAxis.getTickData()?.getDataView()?.latestData;\n if (!targetData?.length) {\n return data;\n }\n const targetScale = targetAxis.getScale();\n if (!targetScale) {\n return data;\n }\n const targetDomain = targetScale.domain();\n const targetRange = targetDomain[1] - targetDomain[0];\n if (targetRange === 0) {\n return data;\n }\n const currentDomain = currentScale.domain();\n const currentRange = currentDomain[1] - currentDomain[0];\n if (targetRange === 0) {\n return data;\n }\n // make the tickData of the current axis consistent with the tickData of the target axis\n const newTicks: number[] = targetData.map((d: { value: number }) => {\n const percent = (d.value - targetDomain[0]) / targetRange;\n return currentRange * percent + currentDomain[0];\n });\n return convertDomainToTickData(newTicks);\n};\n"]}
1
+ {"version":3,"sources":["../src/plugin/components/axis-sync/tick-align-transform.ts"],"names":[],"mappings":";;;AAEA,qEAAuE;AAOhE,MAAM,SAAS,GAAG,CAAC,IAAkB,EAAE,EAAiB,EAAE,EAAE;;IACjE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,kDAAI,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,kDAAI,CAAC;IACxC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,WAAW,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,oBAAoB,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,MAAA,MAAA,UAAU,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,0CAAE,UAAU,CAAC;IACvE,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,QAAQ,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;QAC1D,OAAO,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,IAAA,4CAAuB,EAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AAlDW,QAAA,SAAS,aAkDpB","file":"tick-align-transform.js","sourcesContent":["import type { Datum } from '../../../typings';\nimport type { CartesianAxis } from '../../../component';\nimport { convertDomainToTickData } from '@visactor/vrender-components';\n\nexport interface ITickAlignOpt {\n targetAxis: () => CartesianAxis;\n currentAxis: () => CartesianAxis;\n}\n\nexport const tickAlign = (data: Array<Datum>, op: ITickAlignOpt) => {\n if (!data) {\n return data;\n }\n // check align enable\n const targetAxis = op?.targetAxis?.();\n if (!targetAxis) {\n return data;\n }\n const currentAxis = op?.currentAxis?.();\n if (!currentAxis) {\n return data;\n }\n const currentData = currentAxis.getTickData()?.getDataView();\n if (!currentData) {\n return data;\n }\n // TODO 这种方法有点hack\n const currentTickTransform = currentData.transformsArr.find(t => t.type.includes('ticks'));\n if (!currentTickTransform) {\n return data;\n }\n const currentScale = currentAxis.getScale();\n if (!currentScale) {\n return data;\n }\n const targetData = targetAxis.getTickData()?.getDataView()?.latestData;\n if (!targetData?.length) {\n return data;\n }\n const targetScale = targetAxis.getScale();\n if (!targetScale) {\n return data;\n }\n const targetDomain = targetScale.domain();\n const targetRange = targetDomain[1] - targetDomain[0];\n if (targetRange === 0) {\n return data;\n }\n const currentDomain = currentScale.domain();\n const currentRange = currentDomain[1] - currentDomain[0];\n if (targetRange === 0) {\n return data;\n }\n // make the tickData of the current axis consistent with the tickData of the target axis\n const newTicks: number[] = targetData.map((d: { value: number }) => {\n const percent = (d.value - targetDomain[0]) / targetRange;\n return currentRange * percent + currentDomain[0];\n });\n return convertDomainToTickData(newTicks);\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import { registerHtmlAttributePlugin, registerReactAttributePlugin } from '@visactor/vrender-core';
2
+ import { registerDragPlugin, registerGesturePlugin } from '@visactor/vgrammar-core';
3
+ export declare const register3DPlugin: () => void;
4
+ export declare const registerAnimate: () => void;
5
+ export { registerReactAttributePlugin, registerHtmlAttributePlugin, registerDragPlugin, registerGesturePlugin };
6
+ export declare const registerMorph: () => void;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.registerMorph = exports.registerGesturePlugin = exports.registerDragPlugin = exports.registerHtmlAttributePlugin = exports.registerReactAttributePlugin = exports.registerAnimate = exports.register3DPlugin = void 0;
6
+
7
+ const vrender_core_1 = require("@visactor/vrender-core");
8
+
9
+ Object.defineProperty(exports, "registerHtmlAttributePlugin", {
10
+ enumerable: !0,
11
+ get: function() {
12
+ return vrender_core_1.registerHtmlAttributePlugin;
13
+ }
14
+ }), Object.defineProperty(exports, "registerReactAttributePlugin", {
15
+ enumerable: !0,
16
+ get: function() {
17
+ return vrender_core_1.registerReactAttributePlugin;
18
+ }
19
+ });
20
+
21
+ const vgrammar_core_1 = require("@visactor/vgrammar-core");
22
+
23
+ Object.defineProperty(exports, "registerDragPlugin", {
24
+ enumerable: !0,
25
+ get: function() {
26
+ return vgrammar_core_1.registerDragPlugin;
27
+ }
28
+ }), Object.defineProperty(exports, "registerGesturePlugin", {
29
+ enumerable: !0,
30
+ get: function() {
31
+ return vgrammar_core_1.registerGesturePlugin;
32
+ }
33
+ });
34
+
35
+ const config_1 = require("../animation/config"), register3DPlugin = () => {
36
+ (0, vrender_core_1.registerDirectionalLight)(), (0, vrender_core_1.registerOrthoCamera)(),
37
+ (0, vrender_core_1.registerViewTransform3dPlugin)();
38
+ };
39
+
40
+ exports.register3DPlugin = register3DPlugin;
41
+
42
+ const registerAnimate = () => {
43
+ (0, vgrammar_core_1.registerAnimate)(), (0, config_1.registerVGrammarCommonAnimation)();
44
+ };
45
+
46
+ exports.registerAnimate = registerAnimate, exports.registerMorph = vgrammar_core_1.registerViewMorphAPI;
47
+ //# sourceMappingURL=other.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/plugin/other.ts"],"names":[],"mappings":";;;AAAA,yDAMgC;AAqBO,4GAxBrC,0CAA2B,OAwBqC;AAAzD,6GAvBP,2CAA4B,OAuBO;AAnBrC,2DAKiC;AAcmC,mGAhBlE,kCAAkB,OAgBkE;AAAE,sGAftF,qCAAqB,OAesF;AAb7G,gDAAsE;AAE/D,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAA,uCAAwB,GAAE,CAAC;IAC3B,IAAA,kCAAmB,GAAE,CAAC;IACtB,IAAA,4CAA6B,GAAE,CAAC;AAClC,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B;AAEK,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,IAAA,+BAAkB,GAAE,CAAC;IACrB,IAAA,wCAA+B,GAAE,CAAC;AACpC,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B;AAGW,QAAA,aAAa,GAAG,oCAAoB,CAAC","file":"other.js","sourcesContent":["import {\n registerDirectionalLight,\n registerOrthoCamera,\n registerHtmlAttributePlugin,\n registerReactAttributePlugin,\n registerViewTransform3dPlugin\n} from '@visactor/vrender-core';\n\nimport {\n registerViewMorphAPI,\n registerAnimate as registerAnimateAPI,\n registerDragPlugin,\n registerGesturePlugin\n} from '@visactor/vgrammar-core';\nimport { registerVGrammarCommonAnimation } from '../animation/config';\n\nexport const register3DPlugin = () => {\n registerDirectionalLight();\n registerOrthoCamera();\n registerViewTransform3dPlugin();\n};\n\nexport const registerAnimate = () => {\n registerAnimateAPI();\n registerVGrammarCommonAnimation();\n};\n\nexport { registerReactAttributePlugin, registerHtmlAttributePlugin, registerDragPlugin, registerGesturePlugin };\nexport const registerMorph = registerViewMorphAPI;\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Region = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), interface_1 = require("../compile/mark/interface"), dimension_trigger_1 = require("../interaction/dimension-trigger"), interaction_1 = require("../interaction/interaction"), constant_1 = require("../constant"), animate_manager_1 = require("../animation/animate-manager"), layout_model_1 = require("../model/layout-model"), region_transformer_1 = require("./region-transformer");
7
+ const vutils_1 = require("@visactor/vutils"), interface_1 = require("../compile/mark/interface"), dimension_trigger_1 = require("../interaction/dimension-trigger"), interaction_1 = require("../interaction/interaction"), event_1 = require("../constant/event"), layout_1 = require("../constant/layout"), attribute_1 = require("../constant/attribute"), animate_manager_1 = require("../animation/animate-manager"), layout_model_1 = require("../model/layout-model"), region_transformer_1 = require("./region-transformer");
8
8
 
9
9
  class Region extends layout_model_1.LayoutModel {
10
10
  getMaxWidth() {
@@ -35,9 +35,9 @@ class Region extends layout_model_1.LayoutModel {
35
35
  var _a;
36
36
  super(spec, ctx), this.transformerConstructor = region_transformer_1.RegionSpecTransformer,
37
37
  this.modelType = "region", this.specKey = "region", this.type = Region.type, this._series = [],
38
- this.layoutType = "region", this.layoutZIndex = constant_1.LayoutZIndex.Region,
39
- this.interaction = new interaction_1.Interaction, this.seriesDataFilterOver = () => {
40
- this.event.emit(constant_1.ChartEvent.regionSeriesDataFilterOver, {
38
+ this.layoutType = "region", this.layoutZIndex = layout_1.LayoutZIndex.Region, this.interaction = new interaction_1.Interaction,
39
+ this.seriesDataFilterOver = () => {
40
+ this.event.emit(event_1.ChartEvent.regionSeriesDataFilterOver, {
41
41
  model: this,
42
42
  chart: this.getChart()
43
43
  }), this._series.forEach((s => {
@@ -69,7 +69,7 @@ class Region extends layout_model_1.LayoutModel {
69
69
  this.initLayout(), super.created();
70
70
  const clip = null !== (_a = this._spec.clip) && void 0 !== _a ? _a : this._getClipDefaultValue();
71
71
  this._groupMark = this._createGroupMark("regionGroup", this.userId, this.layoutZIndex),
72
- this._interactionMark = this._createGroupMark("regionInteractionGroup", this.userId + "_interaction", constant_1.LayoutZIndex.Interaction),
72
+ this._interactionMark = this._createGroupMark("regionInteractionGroup", this.userId + "_interaction", layout_1.LayoutZIndex.Interaction),
73
73
  (0, vutils_1.isEmpty)(this._spec.style) || (this._backgroundMark = this._createMark({
74
74
  type: "rect",
75
75
  name: "regionBackground"
@@ -80,8 +80,8 @@ class Region extends layout_model_1.LayoutModel {
80
80
  mark && (mark.created(), this.setMarkStyle(mark, {
81
81
  width: () => this.getLayoutRect().width,
82
82
  height: () => this.getLayoutRect().height
83
- }, "normal", constant_1.AttributeLevel.Built_In), this._groupMark.addMark(mark));
84
- })), this._backgroundMark && this._backgroundMark.setZIndex(0), this._foregroundMark && this._foregroundMark.setZIndex(constant_1.LayoutZIndex.Mark + 1)),
83
+ }, "normal", attribute_1.AttributeLevel.Built_In), this._groupMark.addMark(mark));
84
+ })), this._backgroundMark && this._backgroundMark.setZIndex(0), this._foregroundMark && this._foregroundMark.setZIndex(layout_1.LayoutZIndex.Mark + 1)),
85
85
  this.createTrigger();
86
86
  }
87
87
  _createGroupMark(name, userId, zIndex) {
@@ -98,9 +98,9 @@ class Region extends layout_model_1.LayoutModel {
98
98
  width: () => this.getLayoutRect().width,
99
99
  height: () => this.getLayoutRect().height,
100
100
  clip: clip
101
- }, "normal", constant_1.AttributeLevel.Built_In), this.setMarkStyle(groupMark, {
101
+ }, "normal", attribute_1.AttributeLevel.Built_In), this.setMarkStyle(groupMark, {
102
102
  cornerRadius: null === (_b = this._spec.style) || void 0 === _b ? void 0 : _b.cornerRadius
103
- }, "normal", constant_1.AttributeLevel.User_Mark), this._marks.addMark(groupMark),
103
+ }, "normal", attribute_1.AttributeLevel.User_Mark), this._marks.addMark(groupMark),
104
104
  groupMark;
105
105
  }
106
106
  init(option) {
@@ -114,14 +114,14 @@ class Region extends layout_model_1.LayoutModel {
114
114
  var _a, _b;
115
115
  this._backgroundMark && (this.setMarkStyle(this._backgroundMark, Object.assign({
116
116
  fillOpacity: (null === (_a = this._spec.style) || void 0 === _a ? void 0 : _a.fill) ? 1 : 0
117
- }, this._spec.style), "normal", constant_1.AttributeLevel.User_Mark), (null !== (_b = this._spec.clip) && void 0 !== _b ? _b : this._getClipDefaultValue()) && this.setMarkStyle(this._backgroundMark, {
117
+ }, this._spec.style), "normal", attribute_1.AttributeLevel.User_Mark), (null !== (_b = this._spec.clip) && void 0 !== _b ? _b : this._getClipDefaultValue()) && this.setMarkStyle(this._backgroundMark, {
118
118
  strokeOpacity: 0
119
- }, "normal", constant_1.AttributeLevel.Built_In));
119
+ }, "normal", attribute_1.AttributeLevel.Built_In));
120
120
  }
121
121
  _initForegroundMarkStyle() {
122
122
  this._foregroundMark && this.setMarkStyle(this._foregroundMark, Object.assign(Object.assign({}, this._spec.style), {
123
123
  fillOpacity: 0
124
- }), "normal", constant_1.AttributeLevel.User_Mark);
124
+ }), "normal", attribute_1.AttributeLevel.User_Mark);
125
125
  }
126
126
  _compareSpec(spec, prevSpec) {
127
127
  const result = super._compareSpec(spec, prevSpec);