@visactor/vchart 0.0.1-alpha.2 → 1.0.0-alpha.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 (896) hide show
  1. package/README.md +82 -1
  2. package/build/index.js +2680 -2068
  3. package/build/index.min.js +2 -2
  4. package/cjs/animation/utils.d.ts +2 -1
  5. package/cjs/animation/utils.js.map +1 -1
  6. package/cjs/chart/base-chart.js +2 -2
  7. package/cjs/chart/base-chart.js.map +1 -1
  8. package/cjs/chart/{boxplot/boxPlot.js → box-plot/box-plot.js} +1 -1
  9. package/cjs/chart/box-plot/box-plot.js.map +1 -0
  10. package/{esm/chart/boxplot → cjs/chart/box-plot}/index.d.ts +1 -1
  11. package/cjs/chart/{boxplot → box-plot}/index.js +1 -1
  12. package/cjs/chart/box-plot/index.js.map +1 -0
  13. package/cjs/chart/box-plot/interface.js.map +1 -0
  14. package/cjs/chart/index.d.ts +3 -1
  15. package/cjs/chart/index.js +2 -1
  16. package/cjs/chart/index.js.map +1 -1
  17. package/cjs/chart/treemap/treemap.js.map +1 -1
  18. package/cjs/compile/compilable-base.js +1 -1
  19. package/cjs/compile/compiler.d.ts +2 -2
  20. package/cjs/compile/compiler.js +24 -25
  21. package/cjs/compile/compiler.js.map +1 -1
  22. package/cjs/compile/grammar-item.js +1 -1
  23. package/cjs/compile/mark/interface.js.map +1 -1
  24. package/cjs/compile/util.js +1 -1
  25. package/cjs/component/axis/base-axis.d.ts +70 -1
  26. package/cjs/component/axis/base-axis.js +93 -4
  27. package/cjs/component/axis/base-axis.js.map +1 -1
  28. package/cjs/component/axis/cartesian/axis.d.ts +0 -1
  29. package/cjs/component/axis/cartesian/axis.js +3 -6
  30. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  31. package/cjs/component/axis/polar/axis.d.ts +0 -1
  32. package/cjs/component/axis/polar/axis.js +3 -6
  33. package/cjs/component/axis/polar/axis.js.map +1 -1
  34. package/cjs/component/axis/utils.d.ts +13 -70
  35. package/cjs/component/axis/utils.js +23 -109
  36. package/cjs/component/axis/utils.js.map +1 -1
  37. package/cjs/component/base/base-component.d.ts +0 -5
  38. package/cjs/component/base/base-component.js +8 -19
  39. package/cjs/component/base/base-component.js.map +1 -1
  40. package/cjs/component/base/util.d.ts +1 -1
  41. package/cjs/component/base/util.js +20 -9
  42. package/cjs/component/base/util.js.map +1 -1
  43. package/cjs/component/crosshair/base.d.ts +0 -1
  44. package/cjs/component/crosshair/base.js +1 -4
  45. package/cjs/component/crosshair/base.js.map +1 -1
  46. package/cjs/component/custom-mark/custom-mark.js +4 -1
  47. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  48. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
  49. package/cjs/component/data-zoom/data-filter-base-component.js +2 -2
  50. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  51. package/cjs/component/index.js +1 -1
  52. package/cjs/component/interface/index.d.ts +1 -0
  53. package/cjs/component/interface/index.js +1 -1
  54. package/cjs/component/interface/index.js.map +1 -1
  55. package/cjs/component/interface/theme.d.ts +38 -0
  56. package/cjs/component/interface/theme.js +6 -0
  57. package/cjs/component/interface/theme.js.map +1 -0
  58. package/cjs/component/label/label.d.ts +0 -1
  59. package/cjs/component/label/label.js +12 -6
  60. package/cjs/component/label/label.js.map +1 -1
  61. package/cjs/component/legend/base-legend.js +5 -2
  62. package/cjs/component/legend/base-legend.js.map +1 -1
  63. package/cjs/component/legend/continuous/legend.d.ts +1 -1
  64. package/cjs/component/legend/continuous/legend.js +2 -2
  65. package/cjs/component/legend/continuous/legend.js.map +1 -1
  66. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  67. package/cjs/component/legend/discrete/legend.js +2 -2
  68. package/cjs/component/legend/discrete/legend.js.map +1 -1
  69. package/cjs/component/legend/util.d.ts +4 -4
  70. package/cjs/component/map-label/component.js +2 -2
  71. package/cjs/component/map-label/component.js.map +1 -1
  72. package/cjs/component/map-label/interface.d.ts +6 -4
  73. package/cjs/component/map-label/interface.js.map +1 -1
  74. package/cjs/component/marker/utils.js +14 -9
  75. package/cjs/component/marker/utils.js.map +1 -1
  76. package/cjs/component/player/interface/theme.d.ts +2 -1
  77. package/cjs/component/player/interface/theme.js.map +1 -1
  78. package/cjs/component/player/player.d.ts +0 -1
  79. package/cjs/component/player/player.js +0 -3
  80. package/cjs/component/player/player.js.map +1 -1
  81. package/cjs/component/player/utils/transform.js.map +1 -1
  82. package/cjs/component/title/interface/theme.d.ts +4 -2
  83. package/cjs/component/title/interface/theme.js.map +1 -1
  84. package/cjs/component/title/title.d.ts +1 -1
  85. package/cjs/component/title/title.js +4 -6
  86. package/cjs/component/title/title.js.map +1 -1
  87. package/cjs/component/tooltip/handler/base.d.ts +5 -3
  88. package/cjs/component/tooltip/handler/base.js +9 -8
  89. package/cjs/component/tooltip/handler/base.js.map +1 -1
  90. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +4 -5
  91. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js +4 -4
  92. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  93. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +2 -4
  94. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +2 -2
  95. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  96. package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +1 -1
  97. package/cjs/component/tooltip/tooltip.js +1 -1
  98. package/cjs/component/tooltip/tooltip.js.map +1 -1
  99. package/cjs/constant/box-plot.js +1 -2
  100. package/cjs/constant/label.js +2 -1
  101. package/cjs/core/factory.d.ts +1 -0
  102. package/cjs/core/factory.js +3 -0
  103. package/cjs/core/factory.js.map +1 -1
  104. package/cjs/core/instance-manager.d.ts +9 -0
  105. package/cjs/core/instance-manager.js +26 -0
  106. package/cjs/core/instance-manager.js.map +1 -0
  107. package/cjs/core/interface.js +1 -2
  108. package/cjs/core/vchart.d.ts +2 -6
  109. package/cjs/core/vchart.js +10 -23
  110. package/cjs/core/vchart.js.map +1 -1
  111. package/cjs/event/event.js +2 -1
  112. package/cjs/index.d.ts +1 -1
  113. package/cjs/index.js +1 -1
  114. package/cjs/index.js.map +1 -1
  115. package/cjs/mark/arc.d.ts +1 -1
  116. package/cjs/mark/arc.js +4 -3
  117. package/cjs/mark/arc.js.map +1 -1
  118. package/cjs/mark/area.d.ts +3 -2
  119. package/cjs/mark/area.js +8 -4
  120. package/cjs/mark/area.js.map +1 -1
  121. package/cjs/mark/base/base-mark.js +2 -1
  122. package/cjs/mark/base/base-mark.js.map +1 -1
  123. package/cjs/mark/base/index.d.ts +1 -2
  124. package/cjs/mark/base/index.js +1 -10
  125. package/cjs/mark/base/index.js.map +1 -1
  126. package/{esm/mark/boxPlot.d.ts → cjs/mark/box-plot.d.ts} +1 -1
  127. package/cjs/mark/{boxPlot.js → box-plot.js} +3 -3
  128. package/{esm/mark/boxPlot.js.map → cjs/mark/box-plot.js.map} +1 -1
  129. package/cjs/mark/component.d.ts +1 -1
  130. package/cjs/mark/component.js +2 -2
  131. package/cjs/mark/component.js.map +1 -1
  132. package/cjs/mark/line.d.ts +1 -1
  133. package/cjs/mark/line.js +2 -2
  134. package/cjs/mark/line.js.map +1 -1
  135. package/cjs/mark/linkPath.d.ts +1 -1
  136. package/cjs/mark/linkPath.js +4 -3
  137. package/cjs/mark/linkPath.js.map +1 -1
  138. package/cjs/mark/mark-set/index.d.ts +6 -5
  139. package/cjs/mark/mark-set/index.js +15 -12
  140. package/cjs/mark/mark-set/index.js.map +1 -1
  141. package/cjs/mark/path.d.ts +1 -1
  142. package/cjs/mark/path.js +2 -2
  143. package/cjs/mark/path.js.map +1 -1
  144. package/cjs/mark/polygon.d.ts +1 -1
  145. package/cjs/mark/polygon.js +3 -3
  146. package/cjs/mark/polygon.js.map +1 -1
  147. package/cjs/mark/progress-arc.js +1 -1
  148. package/cjs/mark/rect.d.ts +1 -1
  149. package/cjs/mark/rect.js +6 -5
  150. package/cjs/mark/rect.js.map +1 -1
  151. package/cjs/mark/rule.d.ts +1 -1
  152. package/cjs/mark/rule.js +3 -3
  153. package/cjs/mark/rule.js.map +1 -1
  154. package/cjs/mark/symbol.d.ts +1 -1
  155. package/cjs/mark/symbol.js +5 -4
  156. package/cjs/mark/symbol.js.map +1 -1
  157. package/cjs/mark/text.d.ts +1 -1
  158. package/cjs/mark/text.js +5 -4
  159. package/cjs/mark/text.js.map +1 -1
  160. package/cjs/model/base-model.d.ts +12 -5
  161. package/cjs/model/base-model.js +52 -29
  162. package/cjs/model/base-model.js.map +1 -1
  163. package/cjs/model/interface.d.ts +8 -2
  164. package/cjs/model/interface.js.map +1 -1
  165. package/cjs/model/layout-item.js +20 -18
  166. package/cjs/model/layout-item.js.map +1 -1
  167. package/cjs/region/region.d.ts +1 -4
  168. package/cjs/region/region.js +16 -13
  169. package/cjs/region/region.js.map +1 -1
  170. package/cjs/scale/color-ordinal-scale.d.ts +8 -0
  171. package/cjs/scale/color-ordinal-scale.js +24 -0
  172. package/cjs/scale/color-ordinal-scale.js.map +1 -0
  173. package/cjs/scale/global-scale.js +2 -1
  174. package/cjs/scale/global-scale.js.map +1 -1
  175. package/cjs/series/area/area.d.ts +2 -0
  176. package/cjs/series/area/area.js +15 -9
  177. package/cjs/series/area/area.js.map +1 -1
  178. package/cjs/series/area/interface.d.ts +5 -5
  179. package/cjs/series/area/interface.js.map +1 -1
  180. package/cjs/series/bar/bar.d.ts +6 -0
  181. package/cjs/series/bar/bar.js +24 -8
  182. package/cjs/series/bar/bar.js.map +1 -1
  183. package/cjs/series/bar/interface.d.ts +5 -4
  184. package/cjs/series/bar/interface.js.map +1 -1
  185. package/cjs/series/base/base-series.d.ts +10 -11
  186. package/cjs/series/base/base-series.js +53 -31
  187. package/cjs/series/base/base-series.js.map +1 -1
  188. package/{esm/series/box-plot/boxPlot.d.ts → cjs/series/box-plot/box-plot.d.ts} +2 -0
  189. package/cjs/series/box-plot/{boxPlot.js → box-plot.js} +16 -6
  190. package/cjs/series/box-plot/box-plot.js.map +1 -0
  191. package/cjs/series/box-plot/interface.d.ts +3 -2
  192. package/cjs/series/box-plot/interface.js.map +1 -1
  193. package/cjs/series/box-plot/tooltip-helper.js.map +1 -1
  194. package/cjs/series/cartesian/cartesian.d.ts +1 -1
  195. package/cjs/series/circle-packing/circle-packing.d.ts +2 -0
  196. package/cjs/series/circle-packing/circle-packing.js +13 -8
  197. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  198. package/cjs/series/circle-packing/interface.d.ts +5 -4
  199. package/cjs/series/circle-packing/interface.js.map +1 -1
  200. package/cjs/series/dot/dot.d.ts +6 -8
  201. package/cjs/series/dot/dot.js +43 -17
  202. package/cjs/series/dot/dot.js.map +1 -1
  203. package/cjs/series/dot/interface.d.ts +10 -10
  204. package/cjs/series/dot/interface.js.map +1 -1
  205. package/cjs/series/funnel/funnel.d.ts +12 -2
  206. package/cjs/series/funnel/funnel.js +84 -23
  207. package/cjs/series/funnel/funnel.js.map +1 -1
  208. package/cjs/series/funnel/interface.d.ts +16 -15
  209. package/cjs/series/funnel/interface.js.map +1 -1
  210. package/cjs/series/gauge/gauge-pointer.d.ts +2 -0
  211. package/cjs/series/gauge/gauge-pointer.js +22 -6
  212. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  213. package/cjs/series/gauge/gauge.d.ts +3 -2
  214. package/cjs/series/gauge/gauge.js +26 -17
  215. package/cjs/series/gauge/gauge.js.map +1 -1
  216. package/cjs/series/gauge/interface.d.ts +12 -11
  217. package/cjs/series/gauge/interface.js.map +1 -1
  218. package/cjs/series/heatmap/heatmap.d.ts +3 -1
  219. package/cjs/series/heatmap/heatmap.js +18 -9
  220. package/cjs/series/heatmap/heatmap.js.map +1 -1
  221. package/cjs/series/heatmap/interface.d.ts +6 -5
  222. package/cjs/series/heatmap/interface.js.map +1 -1
  223. package/cjs/series/interface/common.d.ts +56 -1
  224. package/cjs/series/interface/common.js +24 -1
  225. package/cjs/series/interface/common.js.map +1 -1
  226. package/cjs/series/interface/series.d.ts +2 -1
  227. package/cjs/series/interface/series.js.map +1 -1
  228. package/cjs/series/line/line.d.ts +2 -0
  229. package/cjs/series/line/line.js +7 -5
  230. package/cjs/series/line/line.js.map +1 -1
  231. package/cjs/series/link/interface.d.ts +4 -4
  232. package/cjs/series/link/interface.js.map +1 -1
  233. package/cjs/series/link/link.d.ts +4 -7
  234. package/cjs/series/link/link.js +20 -14
  235. package/cjs/series/link/link.js.map +1 -1
  236. package/cjs/series/map/map.d.ts +2 -0
  237. package/cjs/series/map/map.js +13 -6
  238. package/cjs/series/map/map.js.map +1 -1
  239. package/cjs/series/mixin/line-mixin.d.ts +4 -3
  240. package/cjs/series/mixin/line-mixin.js +15 -7
  241. package/cjs/series/mixin/line-mixin.js.map +1 -1
  242. package/cjs/series/pie/interface.d.ts +7 -6
  243. package/cjs/series/pie/interface.js.map +1 -1
  244. package/cjs/series/pie/pie.d.ts +8 -3
  245. package/cjs/series/pie/pie.js +61 -33
  246. package/cjs/series/pie/pie.js.map +1 -1
  247. package/cjs/series/progress/circular/circular.d.ts +2 -0
  248. package/cjs/series/progress/circular/circular.js +16 -9
  249. package/cjs/series/progress/circular/circular.js.map +1 -1
  250. package/cjs/series/progress/circular/interface.d.ts +5 -4
  251. package/cjs/series/progress/circular/interface.js.map +1 -1
  252. package/cjs/series/progress/linear/interface.d.ts +6 -5
  253. package/cjs/series/progress/linear/interface.js.map +1 -1
  254. package/cjs/series/progress/linear/linear.d.ts +2 -0
  255. package/cjs/series/progress/linear/linear.js +31 -21
  256. package/cjs/series/progress/linear/linear.js.map +1 -1
  257. package/cjs/series/radar/interface.d.ts +5 -4
  258. package/cjs/series/radar/interface.js.map +1 -1
  259. package/cjs/series/radar/radar.d.ts +2 -0
  260. package/cjs/series/radar/radar.js +9 -4
  261. package/cjs/series/radar/radar.js.map +1 -1
  262. package/cjs/series/range-area/range-area.d.ts +2 -0
  263. package/cjs/series/range-area/range-area.js +4 -3
  264. package/cjs/series/range-area/range-area.js.map +1 -1
  265. package/cjs/series/range-column/interface.d.ts +9 -8
  266. package/cjs/series/range-column/interface.js.map +1 -1
  267. package/cjs/series/range-column/rangeColumn.d.ts +2 -0
  268. package/cjs/series/range-column/rangeColumn.js +28 -19
  269. package/cjs/series/range-column/rangeColumn.js.map +1 -1
  270. package/cjs/series/rose/interface.d.ts +3 -2
  271. package/cjs/series/rose/interface.js.map +1 -1
  272. package/cjs/series/rose/rose.d.ts +2 -0
  273. package/cjs/series/rose/rose.js +14 -13
  274. package/cjs/series/rose/rose.js.map +1 -1
  275. package/cjs/series/sankey/animation.js.map +1 -1
  276. package/cjs/series/sankey/interface.d.ts +7 -6
  277. package/cjs/series/sankey/interface.js.map +1 -1
  278. package/cjs/series/sankey/sankey.d.ts +2 -0
  279. package/cjs/series/sankey/sankey.js +25 -22
  280. package/cjs/series/sankey/sankey.js.map +1 -1
  281. package/cjs/series/scatter/interface.d.ts +6 -5
  282. package/cjs/series/scatter/interface.js.map +1 -1
  283. package/cjs/series/scatter/scatter.d.ts +2 -0
  284. package/cjs/series/scatter/scatter.js +15 -10
  285. package/cjs/series/scatter/scatter.js.map +1 -1
  286. package/cjs/series/sunburst/interface.d.ts +5 -4
  287. package/cjs/series/sunburst/interface.js.map +1 -1
  288. package/cjs/series/sunburst/sunburst.d.ts +3 -1
  289. package/cjs/series/sunburst/sunburst.js +9 -4
  290. package/cjs/series/sunburst/sunburst.js.map +1 -1
  291. package/cjs/series/treemap/interface.d.ts +9 -8
  292. package/cjs/series/treemap/interface.js.map +1 -1
  293. package/cjs/series/treemap/treemap.d.ts +2 -0
  294. package/cjs/series/treemap/treemap.js +19 -6
  295. package/cjs/series/treemap/treemap.js.map +1 -1
  296. package/cjs/series/waterfall/interface.d.ts +6 -5
  297. package/cjs/series/waterfall/interface.js.map +1 -1
  298. package/cjs/series/waterfall/waterfall.d.ts +2 -0
  299. package/cjs/series/waterfall/waterfall.js +15 -5
  300. package/cjs/series/waterfall/waterfall.js.map +1 -1
  301. package/cjs/series/word-cloud/interface.d.ts +7 -6
  302. package/cjs/series/word-cloud/interface.js.map +1 -1
  303. package/cjs/series/word-cloud/word-cloud.d.ts +4 -3
  304. package/cjs/series/word-cloud/word-cloud.js +22 -11
  305. package/cjs/series/word-cloud/word-cloud.js.map +1 -1
  306. package/cjs/theme/buildin-theme/config.d.ts +1 -4
  307. package/cjs/theme/buildin-theme/config.js +2 -18
  308. package/cjs/theme/buildin-theme/config.js.map +1 -1
  309. package/cjs/theme/buildin-theme/dark.js.map +1 -1
  310. package/cjs/theme/buildin-theme/light/color-scheme.js +14 -1
  311. package/cjs/theme/buildin-theme/light/color-scheme.js.map +1 -1
  312. package/cjs/theme/buildin-theme/light/component/axis/band-axis.d.ts +2 -0
  313. package/cjs/theme/buildin-theme/light/component/axis/band-axis.js +22 -0
  314. package/cjs/theme/buildin-theme/light/component/axis/band-axis.js.map +1 -0
  315. package/cjs/theme/buildin-theme/light/component/{cartesian-axis.d.ts → axis/cartesian-axis.d.ts} +1 -1
  316. package/cjs/theme/buildin-theme/light/component/{cartesian-axis.js → axis/cartesian-axis.js} +7 -9
  317. package/cjs/theme/buildin-theme/light/component/axis/cartesian-axis.js.map +1 -0
  318. package/cjs/theme/buildin-theme/light/component/axis/common-axis.d.ts +2 -0
  319. package/cjs/theme/buildin-theme/light/component/{common-axis.js → axis/common-axis.js} +32 -14
  320. package/cjs/theme/buildin-theme/light/component/axis/common-axis.js.map +1 -0
  321. package/cjs/theme/buildin-theme/light/component/axis/linear-axis.d.ts +2 -0
  322. package/cjs/theme/buildin-theme/light/component/axis/linear-axis.js +22 -0
  323. package/cjs/theme/buildin-theme/light/component/axis/linear-axis.js.map +1 -0
  324. package/cjs/theme/buildin-theme/light/component/{polar-axis.d.ts → axis/polar-axis.d.ts} +1 -1
  325. package/cjs/theme/buildin-theme/light/component/axis/polar-axis.js +25 -0
  326. package/cjs/theme/buildin-theme/light/component/axis/polar-axis.js.map +1 -0
  327. package/cjs/theme/buildin-theme/light/component/crosshair.js +9 -5
  328. package/cjs/theme/buildin-theme/light/component/crosshair.js.map +1 -1
  329. package/cjs/theme/buildin-theme/light/component/index.d.ts +2 -0
  330. package/cjs/theme/buildin-theme/light/component/index.js +32 -0
  331. package/cjs/theme/buildin-theme/light/component/index.js.map +1 -0
  332. package/cjs/theme/buildin-theme/light/component/legend/color-legend.d.ts +2 -0
  333. package/cjs/theme/buildin-theme/light/component/{color-legend.js → legend/color-legend.js} +3 -3
  334. package/cjs/theme/buildin-theme/light/component/legend/color-legend.js.map +1 -0
  335. package/cjs/theme/buildin-theme/light/component/legend/continuous.d.ts +2 -0
  336. package/cjs/theme/buildin-theme/light/component/legend/continuous.js +60 -0
  337. package/cjs/theme/buildin-theme/light/component/legend/continuous.js.map +1 -0
  338. package/cjs/theme/buildin-theme/light/component/legend/discrete-legend.d.ts +2 -0
  339. package/cjs/theme/buildin-theme/light/component/{discrete-legend.js → legend/discrete-legend.js} +17 -6
  340. package/cjs/theme/buildin-theme/light/component/legend/discrete-legend.js.map +1 -0
  341. package/cjs/theme/buildin-theme/light/component/legend/size-legend.d.ts +2 -0
  342. package/cjs/theme/buildin-theme/light/component/{size-legend.js → legend/size-legend.js} +3 -3
  343. package/cjs/theme/buildin-theme/light/component/legend/size-legend.js.map +1 -0
  344. package/cjs/theme/buildin-theme/light/component/map-label.d.ts +2 -0
  345. package/cjs/{component/map-label/config.js → theme/buildin-theme/light/component/map-label.js} +8 -8
  346. package/cjs/theme/buildin-theme/light/component/map-label.js.map +1 -0
  347. package/cjs/theme/buildin-theme/light/component/player.js +20 -11
  348. package/cjs/theme/buildin-theme/light/component/player.js.map +1 -1
  349. package/cjs/theme/buildin-theme/light/component/title.js +19 -3
  350. package/cjs/theme/buildin-theme/light/component/title.js.map +1 -1
  351. package/cjs/theme/buildin-theme/light/component/tooltip.js +7 -3
  352. package/cjs/theme/buildin-theme/light/component/tooltip.js.map +1 -1
  353. package/cjs/theme/buildin-theme/light/constants.d.ts +2 -0
  354. package/cjs/theme/buildin-theme/light/constants.js +16 -0
  355. package/cjs/theme/buildin-theme/light/constants.js.map +1 -0
  356. package/cjs/theme/buildin-theme/light/index.js +5 -20
  357. package/cjs/theme/buildin-theme/light/index.js.map +1 -1
  358. package/cjs/theme/buildin-theme/light/mark.d.ts +3 -0
  359. package/cjs/theme/buildin-theme/light/mark.js +72 -0
  360. package/cjs/theme/buildin-theme/light/mark.js.map +1 -0
  361. package/cjs/theme/buildin-theme/light/series/area.js +2 -12
  362. package/cjs/theme/buildin-theme/light/series/area.js.map +1 -1
  363. package/cjs/theme/buildin-theme/light/series/bar.js +2 -2
  364. package/cjs/theme/buildin-theme/light/series/bar.js.map +1 -1
  365. package/cjs/theme/buildin-theme/light/series/bar3d.js +2 -2
  366. package/cjs/theme/buildin-theme/light/series/bar3d.js.map +1 -1
  367. package/cjs/theme/buildin-theme/light/series/box-plot.d.ts +2 -0
  368. package/cjs/theme/buildin-theme/light/series/box-plot.js +12 -0
  369. package/cjs/theme/buildin-theme/light/series/box-plot.js.map +1 -0
  370. package/cjs/theme/buildin-theme/light/series/circular-progress.js +11 -1
  371. package/cjs/theme/buildin-theme/light/series/circular-progress.js.map +1 -1
  372. package/cjs/theme/buildin-theme/light/series/funnel.js +8 -5
  373. package/cjs/theme/buildin-theme/light/series/funnel.js.map +1 -1
  374. package/cjs/theme/buildin-theme/light/series/funnel3d.js +9 -6
  375. package/cjs/theme/buildin-theme/light/series/funnel3d.js.map +1 -1
  376. package/cjs/theme/buildin-theme/light/series/gauge.js +6 -1
  377. package/cjs/theme/buildin-theme/light/series/gauge.js.map +1 -1
  378. package/cjs/theme/buildin-theme/light/series/index.js +5 -2
  379. package/cjs/theme/buildin-theme/light/series/index.js.map +1 -1
  380. package/cjs/theme/buildin-theme/light/series/line.js +2 -7
  381. package/cjs/theme/buildin-theme/light/series/line.js.map +1 -1
  382. package/cjs/theme/buildin-theme/light/series/linear-progress.js +5 -0
  383. package/cjs/theme/buildin-theme/light/series/linear-progress.js.map +1 -1
  384. package/cjs/theme/buildin-theme/light/series/map.js +8 -4
  385. package/cjs/theme/buildin-theme/light/series/map.js.map +1 -1
  386. package/cjs/theme/buildin-theme/light/series/pie.js +9 -2
  387. package/cjs/theme/buildin-theme/light/series/pie.js.map +1 -1
  388. package/cjs/theme/buildin-theme/light/series/pie3d.js +4 -3
  389. package/cjs/theme/buildin-theme/light/series/pie3d.js.map +1 -1
  390. package/cjs/theme/buildin-theme/light/series/radar.js +2 -12
  391. package/cjs/theme/buildin-theme/light/series/radar.js.map +1 -1
  392. package/cjs/theme/buildin-theme/light/series/rangeColumn.js +2 -2
  393. package/cjs/theme/buildin-theme/light/series/rangeColumn.js.map +1 -1
  394. package/cjs/theme/buildin-theme/light/series/rose.d.ts +2 -0
  395. package/cjs/theme/buildin-theme/light/series/rose.js +20 -0
  396. package/cjs/theme/buildin-theme/light/series/rose.js.map +1 -0
  397. package/cjs/theme/buildin-theme/light/series/sankey.d.ts +2 -0
  398. package/cjs/theme/buildin-theme/light/series/sankey.js +14 -0
  399. package/cjs/theme/buildin-theme/light/series/sankey.js.map +1 -0
  400. package/cjs/theme/buildin-theme/light/series/scatter.js +10 -4
  401. package/cjs/theme/buildin-theme/light/series/scatter.js.map +1 -1
  402. package/cjs/theme/buildin-theme/light/series/treemap.js +4 -4
  403. package/cjs/theme/buildin-theme/light/series/treemap.js.map +1 -1
  404. package/cjs/theme/buildin-theme/light/series/waterfall.js +3 -3
  405. package/cjs/theme/buildin-theme/light/series/waterfall.js.map +1 -1
  406. package/cjs/theme/buildin-theme/light/series/word-cloud3d.js +1 -1
  407. package/cjs/theme/buildin-theme/light/series/word-cloud3d.js.map +1 -1
  408. package/cjs/theme/color-scheme/interface.d.ts +16 -8
  409. package/cjs/theme/color-scheme/interface.js.map +1 -1
  410. package/cjs/theme/color-scheme/util.d.ts +6 -3
  411. package/cjs/theme/color-scheme/util.js +39 -10
  412. package/cjs/theme/color-scheme/util.js.map +1 -1
  413. package/cjs/theme/interface.d.ts +22 -38
  414. package/cjs/theme/interface.js.map +1 -1
  415. package/cjs/theme/theme-manager.d.ts +1 -0
  416. package/cjs/theme/theme-manager.js +5 -2
  417. package/cjs/theme/theme-manager.js.map +1 -1
  418. package/cjs/typings/spec/chart.d.ts +1 -1
  419. package/cjs/typings/spec/chart.js.map +1 -1
  420. package/cjs/typings/visual.d.ts +13 -12
  421. package/cjs/typings/visual.js.map +1 -1
  422. package/cjs/util/color.d.ts +0 -3
  423. package/cjs/util/color.js +2 -12
  424. package/cjs/util/color.js.map +1 -1
  425. package/cjs/util/scale.d.ts +12 -1
  426. package/cjs/util/scale.js +4 -2
  427. package/cjs/util/scale.js.map +1 -1
  428. package/cjs/vchart-all.js +4 -4
  429. package/cjs/vchart-all.js.map +1 -1
  430. package/esm/animation/utils.d.ts +2 -1
  431. package/esm/animation/utils.js.map +1 -1
  432. package/esm/chart/base-chart.js +3 -3
  433. package/esm/chart/base-chart.js.map +1 -1
  434. package/esm/chart/{boxplot/boxPlot.js → box-plot/box-plot.js} +1 -1
  435. package/esm/chart/box-plot/box-plot.js.map +1 -0
  436. package/{cjs/chart/boxplot → esm/chart/box-plot}/index.d.ts +1 -1
  437. package/esm/chart/{boxplot → box-plot}/index.js +1 -1
  438. package/esm/chart/box-plot/index.js.map +1 -0
  439. package/esm/chart/box-plot/interface.js.map +1 -0
  440. package/esm/chart/index.d.ts +3 -1
  441. package/esm/chart/index.js +5 -1
  442. package/esm/chart/index.js.map +1 -1
  443. package/esm/chart/treemap/treemap.js.map +1 -1
  444. package/esm/compile/compilable-base.js +1 -1
  445. package/esm/compile/compiler.d.ts +2 -2
  446. package/esm/compile/compiler.js +24 -25
  447. package/esm/compile/compiler.js.map +1 -1
  448. package/esm/compile/grammar-item.js +1 -1
  449. package/esm/compile/mark/interface.js.map +1 -1
  450. package/esm/compile/util.js +1 -1
  451. package/esm/component/axis/base-axis.d.ts +70 -1
  452. package/esm/component/axis/base-axis.js +98 -4
  453. package/esm/component/axis/base-axis.js.map +1 -1
  454. package/esm/component/axis/cartesian/axis.d.ts +0 -1
  455. package/esm/component/axis/cartesian/axis.js +4 -7
  456. package/esm/component/axis/cartesian/axis.js.map +1 -1
  457. package/esm/component/axis/polar/axis.d.ts +0 -1
  458. package/esm/component/axis/polar/axis.js +4 -7
  459. package/esm/component/axis/polar/axis.js.map +1 -1
  460. package/esm/component/axis/utils.d.ts +13 -70
  461. package/esm/component/axis/utils.js +12 -99
  462. package/esm/component/axis/utils.js.map +1 -1
  463. package/esm/component/base/base-component.d.ts +0 -5
  464. package/esm/component/base/base-component.js +7 -20
  465. package/esm/component/base/base-component.js.map +1 -1
  466. package/esm/component/base/util.d.ts +1 -1
  467. package/esm/component/base/util.js +18 -9
  468. package/esm/component/base/util.js.map +1 -1
  469. package/esm/component/crosshair/base.d.ts +0 -1
  470. package/esm/component/crosshair/base.js +1 -4
  471. package/esm/component/crosshair/base.js.map +1 -1
  472. package/esm/component/custom-mark/custom-mark.js +4 -1
  473. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  474. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
  475. package/esm/component/data-zoom/data-filter-base-component.js +2 -2
  476. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  477. package/esm/component/index.js +1 -1
  478. package/esm/component/interface/index.d.ts +1 -0
  479. package/esm/component/interface/index.js +2 -0
  480. package/esm/component/interface/index.js.map +1 -1
  481. package/esm/component/interface/theme.d.ts +38 -0
  482. package/esm/component/interface/theme.js +2 -0
  483. package/esm/component/interface/theme.js.map +1 -0
  484. package/esm/component/label/label.d.ts +0 -1
  485. package/esm/component/label/label.js +12 -6
  486. package/esm/component/label/label.js.map +1 -1
  487. package/esm/component/legend/base-legend.js +5 -2
  488. package/esm/component/legend/base-legend.js.map +1 -1
  489. package/esm/component/legend/continuous/legend.d.ts +1 -1
  490. package/esm/component/legend/continuous/legend.js +2 -2
  491. package/esm/component/legend/continuous/legend.js.map +1 -1
  492. package/esm/component/legend/discrete/legend.d.ts +1 -1
  493. package/esm/component/legend/discrete/legend.js +2 -2
  494. package/esm/component/legend/discrete/legend.js.map +1 -1
  495. package/esm/component/legend/util.d.ts +4 -4
  496. package/esm/component/map-label/component.js +1 -5
  497. package/esm/component/map-label/component.js.map +1 -1
  498. package/esm/component/map-label/interface.d.ts +6 -4
  499. package/esm/component/map-label/interface.js.map +1 -1
  500. package/esm/component/marker/utils.js +14 -9
  501. package/esm/component/marker/utils.js.map +1 -1
  502. package/esm/component/player/interface/theme.d.ts +2 -1
  503. package/esm/component/player/interface/theme.js.map +1 -1
  504. package/esm/component/player/player.d.ts +0 -1
  505. package/esm/component/player/player.js +0 -3
  506. package/esm/component/player/player.js.map +1 -1
  507. package/esm/component/player/utils/transform.js.map +1 -1
  508. package/esm/component/title/interface/theme.d.ts +4 -2
  509. package/esm/component/title/interface/theme.js.map +1 -1
  510. package/esm/component/title/title.d.ts +1 -1
  511. package/esm/component/title/title.js +3 -6
  512. package/esm/component/title/title.js.map +1 -1
  513. package/esm/component/tooltip/handler/base.d.ts +5 -3
  514. package/esm/component/tooltip/handler/base.js +9 -8
  515. package/esm/component/tooltip/handler/base.js.map +1 -1
  516. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +4 -5
  517. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js +6 -6
  518. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  519. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +2 -4
  520. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +2 -3
  521. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  522. package/esm/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +1 -1
  523. package/esm/component/tooltip/tooltip.js +1 -1
  524. package/esm/component/tooltip/tooltip.js.map +1 -1
  525. package/esm/constant/box-plot.js +1 -2
  526. package/esm/constant/label.js +2 -1
  527. package/esm/core/factory.d.ts +1 -0
  528. package/esm/core/factory.js +3 -0
  529. package/esm/core/factory.js.map +1 -1
  530. package/esm/core/instance-manager.d.ts +9 -0
  531. package/esm/core/instance-manager.js +20 -0
  532. package/esm/core/instance-manager.js.map +1 -0
  533. package/esm/core/interface.js +1 -2
  534. package/esm/core/vchart.d.ts +2 -6
  535. package/esm/core/vchart.js +10 -22
  536. package/esm/core/vchart.js.map +1 -1
  537. package/esm/event/event.js +2 -1
  538. package/esm/index.d.ts +1 -1
  539. package/esm/index.js +1 -1
  540. package/esm/index.js.map +1 -1
  541. package/esm/mark/arc.d.ts +1 -1
  542. package/esm/mark/arc.js +3 -2
  543. package/esm/mark/arc.js.map +1 -1
  544. package/esm/mark/area.d.ts +3 -2
  545. package/esm/mark/area.js +7 -3
  546. package/esm/mark/area.js.map +1 -1
  547. package/esm/mark/base/base-mark.js +4 -3
  548. package/esm/mark/base/base-mark.js.map +1 -1
  549. package/esm/mark/base/index.d.ts +1 -2
  550. package/esm/mark/base/index.js +1 -3
  551. package/esm/mark/base/index.js.map +1 -1
  552. package/{cjs/mark/boxPlot.d.ts → esm/mark/box-plot.d.ts} +1 -1
  553. package/esm/mark/{boxPlot.js → box-plot.js} +2 -2
  554. package/esm/mark/box-plot.js.map +1 -0
  555. package/esm/mark/component.d.ts +1 -1
  556. package/esm/mark/component.js +1 -1
  557. package/esm/mark/component.js.map +1 -1
  558. package/esm/mark/line.d.ts +1 -1
  559. package/esm/mark/line.js +1 -1
  560. package/esm/mark/line.js.map +1 -1
  561. package/esm/mark/linkPath.d.ts +1 -1
  562. package/esm/mark/linkPath.js +3 -2
  563. package/esm/mark/linkPath.js.map +1 -1
  564. package/esm/mark/mark-set/index.d.ts +6 -5
  565. package/esm/mark/mark-set/index.js +16 -13
  566. package/esm/mark/mark-set/index.js.map +1 -1
  567. package/esm/mark/path.d.ts +1 -1
  568. package/esm/mark/path.js +1 -1
  569. package/esm/mark/path.js.map +1 -1
  570. package/esm/mark/polygon.d.ts +1 -1
  571. package/esm/mark/polygon.js +2 -2
  572. package/esm/mark/polygon.js.map +1 -1
  573. package/esm/mark/progress-arc.js +1 -1
  574. package/esm/mark/rect.d.ts +1 -1
  575. package/esm/mark/rect.js +4 -3
  576. package/esm/mark/rect.js.map +1 -1
  577. package/esm/mark/rule.d.ts +1 -1
  578. package/esm/mark/rule.js +2 -2
  579. package/esm/mark/rule.js.map +1 -1
  580. package/esm/mark/symbol.d.ts +1 -1
  581. package/esm/mark/symbol.js +4 -3
  582. package/esm/mark/symbol.js.map +1 -1
  583. package/esm/mark/text.d.ts +1 -1
  584. package/esm/mark/text.js +4 -3
  585. package/esm/mark/text.js.map +1 -1
  586. package/esm/model/base-model.d.ts +12 -5
  587. package/esm/model/base-model.js +50 -29
  588. package/esm/model/base-model.js.map +1 -1
  589. package/esm/model/interface.d.ts +8 -2
  590. package/esm/model/interface.js.map +1 -1
  591. package/esm/model/layout-item.js +19 -17
  592. package/esm/model/layout-item.js.map +1 -1
  593. package/esm/region/region.d.ts +1 -4
  594. package/esm/region/region.js +15 -13
  595. package/esm/region/region.js.map +1 -1
  596. package/esm/scale/color-ordinal-scale.d.ts +8 -0
  597. package/esm/scale/color-ordinal-scale.js +18 -0
  598. package/esm/scale/color-ordinal-scale.js.map +1 -0
  599. package/esm/scale/global-scale.js +3 -2
  600. package/esm/scale/global-scale.js.map +1 -1
  601. package/esm/series/area/area.d.ts +2 -0
  602. package/esm/series/area/area.js +15 -6
  603. package/esm/series/area/area.js.map +1 -1
  604. package/esm/series/area/interface.d.ts +5 -5
  605. package/esm/series/area/interface.js.map +1 -1
  606. package/esm/series/bar/bar.d.ts +6 -0
  607. package/esm/series/bar/bar.js +25 -7
  608. package/esm/series/bar/bar.js.map +1 -1
  609. package/esm/series/bar/interface.d.ts +5 -4
  610. package/esm/series/bar/interface.js.map +1 -1
  611. package/esm/series/base/base-series.d.ts +10 -11
  612. package/esm/series/base/base-series.js +59 -30
  613. package/esm/series/base/base-series.js.map +1 -1
  614. package/{cjs/series/box-plot/boxPlot.d.ts → esm/series/box-plot/box-plot.d.ts} +2 -0
  615. package/esm/series/box-plot/{boxPlot.js → box-plot.js} +17 -6
  616. package/esm/series/box-plot/box-plot.js.map +1 -0
  617. package/esm/series/box-plot/interface.d.ts +3 -2
  618. package/esm/series/box-plot/interface.js.map +1 -1
  619. package/esm/series/box-plot/tooltip-helper.js.map +1 -1
  620. package/esm/series/cartesian/cartesian.d.ts +1 -1
  621. package/esm/series/circle-packing/circle-packing.d.ts +2 -0
  622. package/esm/series/circle-packing/circle-packing.js +12 -3
  623. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  624. package/esm/series/circle-packing/interface.d.ts +5 -4
  625. package/esm/series/circle-packing/interface.js.map +1 -1
  626. package/esm/series/dot/dot.d.ts +6 -8
  627. package/esm/series/dot/dot.js +47 -16
  628. package/esm/series/dot/dot.js.map +1 -1
  629. package/esm/series/dot/interface.d.ts +10 -10
  630. package/esm/series/dot/interface.js.map +1 -1
  631. package/esm/series/funnel/funnel.d.ts +12 -2
  632. package/esm/series/funnel/funnel.js +81 -22
  633. package/esm/series/funnel/funnel.js.map +1 -1
  634. package/esm/series/funnel/interface.d.ts +16 -15
  635. package/esm/series/funnel/interface.js.map +1 -1
  636. package/esm/series/gauge/gauge-pointer.d.ts +2 -0
  637. package/esm/series/gauge/gauge-pointer.js +23 -6
  638. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  639. package/esm/series/gauge/gauge.d.ts +3 -2
  640. package/esm/series/gauge/gauge.js +32 -18
  641. package/esm/series/gauge/gauge.js.map +1 -1
  642. package/esm/series/gauge/interface.d.ts +12 -11
  643. package/esm/series/gauge/interface.js.map +1 -1
  644. package/esm/series/heatmap/heatmap.d.ts +3 -1
  645. package/esm/series/heatmap/heatmap.js +19 -9
  646. package/esm/series/heatmap/heatmap.js.map +1 -1
  647. package/esm/series/heatmap/interface.d.ts +6 -5
  648. package/esm/series/heatmap/interface.js.map +1 -1
  649. package/esm/series/interface/common.d.ts +56 -1
  650. package/esm/series/interface/common.js +24 -1
  651. package/esm/series/interface/common.js.map +1 -1
  652. package/esm/series/interface/series.d.ts +2 -1
  653. package/esm/series/interface/series.js.map +1 -1
  654. package/esm/series/line/line.d.ts +2 -0
  655. package/esm/series/line/line.js +9 -4
  656. package/esm/series/line/line.js.map +1 -1
  657. package/esm/series/link/interface.d.ts +4 -4
  658. package/esm/series/link/interface.js.map +1 -1
  659. package/esm/series/link/link.d.ts +4 -7
  660. package/esm/series/link/link.js +22 -15
  661. package/esm/series/link/link.js.map +1 -1
  662. package/esm/series/map/map.d.ts +2 -0
  663. package/esm/series/map/map.js +13 -6
  664. package/esm/series/map/map.js.map +1 -1
  665. package/esm/series/mixin/line-mixin.d.ts +4 -3
  666. package/esm/series/mixin/line-mixin.js +16 -4
  667. package/esm/series/mixin/line-mixin.js.map +1 -1
  668. package/esm/series/pie/interface.d.ts +7 -6
  669. package/esm/series/pie/interface.js.map +1 -1
  670. package/esm/series/pie/pie.d.ts +8 -3
  671. package/esm/series/pie/pie.js +60 -28
  672. package/esm/series/pie/pie.js.map +1 -1
  673. package/esm/series/progress/circular/circular.d.ts +2 -0
  674. package/esm/series/progress/circular/circular.js +16 -6
  675. package/esm/series/progress/circular/circular.js.map +1 -1
  676. package/esm/series/progress/circular/interface.d.ts +5 -4
  677. package/esm/series/progress/circular/interface.js.map +1 -1
  678. package/esm/series/progress/linear/interface.d.ts +6 -5
  679. package/esm/series/progress/linear/interface.js.map +1 -1
  680. package/esm/series/progress/linear/linear.d.ts +2 -0
  681. package/esm/series/progress/linear/linear.js +31 -20
  682. package/esm/series/progress/linear/linear.js.map +1 -1
  683. package/esm/series/radar/interface.d.ts +5 -4
  684. package/esm/series/radar/interface.js.map +1 -1
  685. package/esm/series/radar/radar.d.ts +2 -0
  686. package/esm/series/radar/radar.js +12 -5
  687. package/esm/series/radar/radar.js.map +1 -1
  688. package/esm/series/range-area/range-area.d.ts +2 -0
  689. package/esm/series/range-area/range-area.js +2 -4
  690. package/esm/series/range-area/range-area.js.map +1 -1
  691. package/esm/series/range-column/interface.d.ts +9 -8
  692. package/esm/series/range-column/interface.js.map +1 -1
  693. package/esm/series/range-column/rangeColumn.d.ts +2 -0
  694. package/esm/series/range-column/rangeColumn.js +28 -20
  695. package/esm/series/range-column/rangeColumn.js.map +1 -1
  696. package/esm/series/rose/interface.d.ts +3 -2
  697. package/esm/series/rose/interface.js.map +1 -1
  698. package/esm/series/rose/rose.d.ts +2 -0
  699. package/esm/series/rose/rose.js +16 -14
  700. package/esm/series/rose/rose.js.map +1 -1
  701. package/esm/series/sankey/animation.js.map +1 -1
  702. package/esm/series/sankey/interface.d.ts +7 -6
  703. package/esm/series/sankey/interface.js.map +1 -1
  704. package/esm/series/sankey/sankey.d.ts +2 -0
  705. package/esm/series/sankey/sankey.js +26 -23
  706. package/esm/series/sankey/sankey.js.map +1 -1
  707. package/esm/series/scatter/interface.d.ts +6 -5
  708. package/esm/series/scatter/interface.js.map +1 -1
  709. package/esm/series/scatter/scatter.d.ts +2 -0
  710. package/esm/series/scatter/scatter.js +15 -9
  711. package/esm/series/scatter/scatter.js.map +1 -1
  712. package/esm/series/sunburst/interface.d.ts +5 -4
  713. package/esm/series/sunburst/interface.js.map +1 -1
  714. package/esm/series/sunburst/sunburst.d.ts +3 -1
  715. package/esm/series/sunburst/sunburst.js +11 -4
  716. package/esm/series/sunburst/sunburst.js.map +1 -1
  717. package/esm/series/treemap/interface.d.ts +9 -8
  718. package/esm/series/treemap/interface.js.map +1 -1
  719. package/esm/series/treemap/treemap.d.ts +2 -0
  720. package/esm/series/treemap/treemap.js +21 -6
  721. package/esm/series/treemap/treemap.js.map +1 -1
  722. package/esm/series/waterfall/interface.d.ts +6 -5
  723. package/esm/series/waterfall/interface.js.map +1 -1
  724. package/esm/series/waterfall/waterfall.d.ts +2 -0
  725. package/esm/series/waterfall/waterfall.js +15 -6
  726. package/esm/series/waterfall/waterfall.js.map +1 -1
  727. package/esm/series/word-cloud/interface.d.ts +7 -6
  728. package/esm/series/word-cloud/interface.js.map +1 -1
  729. package/esm/series/word-cloud/word-cloud.d.ts +4 -3
  730. package/esm/series/word-cloud/word-cloud.js +24 -11
  731. package/esm/series/word-cloud/word-cloud.js.map +1 -1
  732. package/esm/theme/buildin-theme/config.d.ts +1 -4
  733. package/esm/theme/buildin-theme/config.js +1 -21
  734. package/esm/theme/buildin-theme/config.js.map +1 -1
  735. package/esm/theme/buildin-theme/dark.js.map +1 -1
  736. package/esm/theme/buildin-theme/light/color-scheme.js +14 -1
  737. package/esm/theme/buildin-theme/light/color-scheme.js.map +1 -1
  738. package/esm/theme/buildin-theme/light/component/axis/band-axis.d.ts +2 -0
  739. package/esm/theme/buildin-theme/light/component/axis/band-axis.js +18 -0
  740. package/esm/theme/buildin-theme/light/component/axis/band-axis.js.map +1 -0
  741. package/esm/theme/buildin-theme/light/component/{cartesian-axis.d.ts → axis/cartesian-axis.d.ts} +1 -1
  742. package/esm/theme/buildin-theme/light/component/{cartesian-axis.js → axis/cartesian-axis.js} +7 -9
  743. package/esm/theme/buildin-theme/light/component/axis/cartesian-axis.js.map +1 -0
  744. package/esm/theme/buildin-theme/light/component/axis/common-axis.d.ts +2 -0
  745. package/esm/theme/buildin-theme/light/component/{common-axis.js → axis/common-axis.js} +32 -14
  746. package/esm/theme/buildin-theme/light/component/axis/common-axis.js.map +1 -0
  747. package/esm/theme/buildin-theme/light/component/axis/linear-axis.d.ts +2 -0
  748. package/esm/theme/buildin-theme/light/component/axis/linear-axis.js +18 -0
  749. package/esm/theme/buildin-theme/light/component/axis/linear-axis.js.map +1 -0
  750. package/esm/theme/buildin-theme/light/component/{polar-axis.d.ts → axis/polar-axis.d.ts} +1 -1
  751. package/esm/theme/buildin-theme/light/component/{polar-axis.js → axis/polar-axis.js} +11 -3
  752. package/esm/theme/buildin-theme/light/component/axis/polar-axis.js.map +1 -0
  753. package/esm/theme/buildin-theme/light/component/crosshair.js +8 -4
  754. package/esm/theme/buildin-theme/light/component/crosshair.js.map +1 -1
  755. package/esm/theme/buildin-theme/light/component/index.d.ts +2 -0
  756. package/esm/theme/buildin-theme/light/component/index.js +62 -0
  757. package/esm/theme/buildin-theme/light/component/index.js.map +1 -0
  758. package/esm/theme/buildin-theme/light/component/legend/color-legend.d.ts +2 -0
  759. package/esm/theme/buildin-theme/light/component/{color-legend.js → legend/color-legend.js} +1 -1
  760. package/esm/theme/buildin-theme/light/component/legend/color-legend.js.map +1 -0
  761. package/esm/theme/buildin-theme/light/component/legend/continuous.d.ts +2 -0
  762. package/esm/theme/buildin-theme/light/component/legend/continuous.js +54 -0
  763. package/esm/theme/buildin-theme/light/component/legend/continuous.js.map +1 -0
  764. package/esm/theme/buildin-theme/light/component/legend/discrete-legend.d.ts +2 -0
  765. package/esm/theme/buildin-theme/light/component/{discrete-legend.js → legend/discrete-legend.js} +14 -5
  766. package/esm/theme/buildin-theme/light/component/legend/discrete-legend.js.map +1 -0
  767. package/esm/theme/buildin-theme/light/component/legend/size-legend.d.ts +2 -0
  768. package/esm/theme/buildin-theme/light/component/{size-legend.js → legend/size-legend.js} +1 -1
  769. package/esm/theme/buildin-theme/light/component/legend/size-legend.js.map +1 -0
  770. package/esm/theme/buildin-theme/light/component/map-label.d.ts +2 -0
  771. package/esm/{component/map-label/config.js → theme/buildin-theme/light/component/map-label.js} +5 -3
  772. package/esm/theme/buildin-theme/light/component/map-label.js.map +1 -0
  773. package/esm/theme/buildin-theme/light/component/player.js +20 -11
  774. package/esm/theme/buildin-theme/light/component/player.js.map +1 -1
  775. package/esm/theme/buildin-theme/light/component/title.js +16 -2
  776. package/esm/theme/buildin-theme/light/component/title.js.map +1 -1
  777. package/esm/theme/buildin-theme/light/component/tooltip.js +6 -2
  778. package/esm/theme/buildin-theme/light/component/tooltip.js.map +1 -1
  779. package/esm/theme/buildin-theme/light/constants.d.ts +2 -0
  780. package/esm/theme/buildin-theme/light/constants.js +10 -0
  781. package/esm/theme/buildin-theme/light/constants.js.map +1 -0
  782. package/esm/theme/buildin-theme/light/index.js +7 -50
  783. package/esm/theme/buildin-theme/light/index.js.map +1 -1
  784. package/esm/theme/buildin-theme/light/mark.d.ts +3 -0
  785. package/esm/theme/buildin-theme/light/mark.js +68 -0
  786. package/esm/theme/buildin-theme/light/mark.js.map +1 -0
  787. package/esm/theme/buildin-theme/light/series/area.js +2 -12
  788. package/esm/theme/buildin-theme/light/series/area.js.map +1 -1
  789. package/esm/theme/buildin-theme/light/series/bar.js +2 -2
  790. package/esm/theme/buildin-theme/light/series/bar.js.map +1 -1
  791. package/esm/theme/buildin-theme/light/series/bar3d.js +2 -2
  792. package/esm/theme/buildin-theme/light/series/bar3d.js.map +1 -1
  793. package/esm/theme/buildin-theme/light/series/box-plot.d.ts +2 -0
  794. package/esm/theme/buildin-theme/light/series/box-plot.js +8 -0
  795. package/esm/theme/buildin-theme/light/series/box-plot.js.map +1 -0
  796. package/esm/theme/buildin-theme/light/series/circular-progress.js +11 -1
  797. package/esm/theme/buildin-theme/light/series/circular-progress.js.map +1 -1
  798. package/esm/theme/buildin-theme/light/series/funnel.js +7 -2
  799. package/esm/theme/buildin-theme/light/series/funnel.js.map +1 -1
  800. package/esm/theme/buildin-theme/light/series/funnel3d.js +8 -3
  801. package/esm/theme/buildin-theme/light/series/funnel3d.js.map +1 -1
  802. package/esm/theme/buildin-theme/light/series/gauge.js +6 -1
  803. package/esm/theme/buildin-theme/light/series/gauge.js.map +1 -1
  804. package/esm/theme/buildin-theme/light/series/index.js +10 -1
  805. package/esm/theme/buildin-theme/light/series/index.js.map +1 -1
  806. package/esm/theme/buildin-theme/light/series/line.js +2 -7
  807. package/esm/theme/buildin-theme/light/series/line.js.map +1 -1
  808. package/esm/theme/buildin-theme/light/series/linear-progress.js +5 -0
  809. package/esm/theme/buildin-theme/light/series/linear-progress.js.map +1 -1
  810. package/esm/theme/buildin-theme/light/series/map.js +8 -4
  811. package/esm/theme/buildin-theme/light/series/map.js.map +1 -1
  812. package/esm/theme/buildin-theme/light/series/pie.js +9 -2
  813. package/esm/theme/buildin-theme/light/series/pie.js.map +1 -1
  814. package/esm/theme/buildin-theme/light/series/pie3d.js +4 -3
  815. package/esm/theme/buildin-theme/light/series/pie3d.js.map +1 -1
  816. package/esm/theme/buildin-theme/light/series/radar.js +2 -12
  817. package/esm/theme/buildin-theme/light/series/radar.js.map +1 -1
  818. package/esm/theme/buildin-theme/light/series/rangeColumn.js +2 -2
  819. package/esm/theme/buildin-theme/light/series/rangeColumn.js.map +1 -1
  820. package/esm/theme/buildin-theme/light/series/rose.d.ts +2 -0
  821. package/esm/theme/buildin-theme/light/series/rose.js +16 -0
  822. package/esm/theme/buildin-theme/light/series/rose.js.map +1 -0
  823. package/esm/theme/buildin-theme/light/series/sankey.d.ts +2 -0
  824. package/esm/theme/buildin-theme/light/series/sankey.js +10 -0
  825. package/esm/theme/buildin-theme/light/series/sankey.js.map +1 -0
  826. package/esm/theme/buildin-theme/light/series/scatter.js +10 -4
  827. package/esm/theme/buildin-theme/light/series/scatter.js.map +1 -1
  828. package/esm/theme/buildin-theme/light/series/treemap.js +3 -1
  829. package/esm/theme/buildin-theme/light/series/treemap.js.map +1 -1
  830. package/esm/theme/buildin-theme/light/series/waterfall.js +3 -1
  831. package/esm/theme/buildin-theme/light/series/waterfall.js.map +1 -1
  832. package/esm/theme/buildin-theme/light/series/word-cloud3d.js +1 -1
  833. package/esm/theme/buildin-theme/light/series/word-cloud3d.js.map +1 -1
  834. package/esm/theme/color-scheme/interface.d.ts +16 -8
  835. package/esm/theme/color-scheme/interface.js.map +1 -1
  836. package/esm/theme/color-scheme/util.d.ts +6 -3
  837. package/esm/theme/color-scheme/util.js +31 -7
  838. package/esm/theme/color-scheme/util.js.map +1 -1
  839. package/esm/theme/interface.d.ts +22 -38
  840. package/esm/theme/interface.js.map +1 -1
  841. package/esm/theme/theme-manager.d.ts +1 -0
  842. package/esm/theme/theme-manager.js +6 -1
  843. package/esm/theme/theme-manager.js.map +1 -1
  844. package/esm/typings/spec/chart.d.ts +1 -1
  845. package/esm/typings/spec/chart.js.map +1 -1
  846. package/esm/typings/visual.d.ts +13 -12
  847. package/esm/typings/visual.js.map +1 -1
  848. package/esm/util/color.d.ts +0 -3
  849. package/esm/util/color.js +0 -10
  850. package/esm/util/color.js.map +1 -1
  851. package/esm/util/scale.d.ts +12 -1
  852. package/esm/util/scale.js +6 -2
  853. package/esm/util/scale.js.map +1 -1
  854. package/esm/vchart-all.js +5 -5
  855. package/esm/vchart-all.js.map +1 -1
  856. package/package.json +1 -1
  857. package/cjs/chart/boxplot/boxPlot.js.map +0 -1
  858. package/cjs/chart/boxplot/index.js.map +0 -1
  859. package/cjs/chart/boxplot/interface.js.map +0 -1
  860. package/cjs/component/map-label/config.d.ts +0 -2
  861. package/cjs/component/map-label/config.js.map +0 -1
  862. package/cjs/mark/boxPlot.js.map +0 -1
  863. package/cjs/series/box-plot/boxPlot.js.map +0 -1
  864. package/cjs/theme/buildin-theme/light/component/cartesian-axis.js.map +0 -1
  865. package/cjs/theme/buildin-theme/light/component/color-legend.d.ts +0 -2
  866. package/cjs/theme/buildin-theme/light/component/color-legend.js.map +0 -1
  867. package/cjs/theme/buildin-theme/light/component/common-axis.d.ts +0 -2
  868. package/cjs/theme/buildin-theme/light/component/common-axis.js.map +0 -1
  869. package/cjs/theme/buildin-theme/light/component/discrete-legend.d.ts +0 -2
  870. package/cjs/theme/buildin-theme/light/component/discrete-legend.js.map +0 -1
  871. package/cjs/theme/buildin-theme/light/component/polar-axis.js +0 -19
  872. package/cjs/theme/buildin-theme/light/component/polar-axis.js.map +0 -1
  873. package/cjs/theme/buildin-theme/light/component/size-legend.d.ts +0 -2
  874. package/cjs/theme/buildin-theme/light/component/size-legend.js.map +0 -1
  875. package/esm/chart/boxplot/boxPlot.js.map +0 -1
  876. package/esm/chart/boxplot/index.js.map +0 -1
  877. package/esm/chart/boxplot/interface.js.map +0 -1
  878. package/esm/component/map-label/config.d.ts +0 -2
  879. package/esm/component/map-label/config.js.map +0 -1
  880. package/esm/series/box-plot/boxPlot.js.map +0 -1
  881. package/esm/theme/buildin-theme/light/component/cartesian-axis.js.map +0 -1
  882. package/esm/theme/buildin-theme/light/component/color-legend.d.ts +0 -2
  883. package/esm/theme/buildin-theme/light/component/color-legend.js.map +0 -1
  884. package/esm/theme/buildin-theme/light/component/common-axis.d.ts +0 -2
  885. package/esm/theme/buildin-theme/light/component/common-axis.js.map +0 -1
  886. package/esm/theme/buildin-theme/light/component/discrete-legend.d.ts +0 -2
  887. package/esm/theme/buildin-theme/light/component/discrete-legend.js.map +0 -1
  888. package/esm/theme/buildin-theme/light/component/polar-axis.js.map +0 -1
  889. package/esm/theme/buildin-theme/light/component/size-legend.d.ts +0 -2
  890. package/esm/theme/buildin-theme/light/component/size-legend.js.map +0 -1
  891. /package/cjs/chart/{boxplot/boxPlot.d.ts → box-plot/box-plot.d.ts} +0 -0
  892. /package/cjs/chart/{boxplot → box-plot}/interface.d.ts +0 -0
  893. /package/cjs/chart/{boxplot → box-plot}/interface.js +0 -0
  894. /package/esm/chart/{boxplot/boxPlot.d.ts → box-plot/box-plot.d.ts} +0 -0
  895. /package/esm/chart/{boxplot → box-plot}/interface.d.ts +0 -0
  896. /package/esm/chart/{boxplot → box-plot}/interface.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/mixin/line-mixin.ts"],"names":[],"mappings":"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","file":"line-mixin.js","sourcesContent":["import type { ITrigger } from '../../interaction/interface';\nimport type { ISeries } from '../interface/series';\nimport { AttributeLevel } from '../../constant';\n\nimport type { IMark, IMarkProgressiveConfig, MarkType } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { ILineMark } from '../../mark/line';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { ITextMark } from '../../mark/text';\nimport type {\n DirectionType,\n IInvalidType,\n InterpolateType,\n ILineMarkSpec,\n ISymbolMarkSpec,\n Maybe,\n Datum,\n IMarkTheme\n} from '../../typings';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport { Direction } from '../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_LINEAR_CLOSED_INTERPOLATE } from '../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { couldBeValidNumber, isValid, merge } from '../../util';\nimport type { ISeriesMarkInitOption, ISeriesTooltipHelper } from '../interface';\nimport type { ILabelSpec } from '../../component/label';\nimport { shouldDoMorph, userAnimationConfig } from '../../animation/utils';\n\nexport interface ILineLikeSeriesTheme {\n line?: Partial<IMarkTheme<ILineMarkSpec>>;\n point?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n label?: Partial<ILabelSpec>;\n}\n\nexport interface LineLikeSeriesMixin extends ISeries {\n _spec: any;\n _seriesField: string;\n _theme: Maybe<ILineLikeSeriesTheme>;\n _trigger: ITrigger;\n _tooltipHelper: ISeriesTooltipHelper;\n _invalidType: IInvalidType;\n\n _lineMark: ILineMark;\n _symbolMark: ISymbolMark;\n _labelMark: ITextMark;\n\n _createMark: (type: MarkType, name: string, option?: ISeriesMarkInitOption) => IMark;\n}\n\nexport class LineLikeSeriesMixin {\n setSeriesField(field: string): void {\n if (isValid(field)) {\n this._seriesField = field;\n this.getMarksInType([MarkTypeEnum.line, MarkTypeEnum.area]).forEach(m => {\n m.setFacet(this._seriesField);\n });\n }\n }\n\n initLineMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean) {\n this._lineMark = this._createMark(MarkTypeEnum.line, 'line', {\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n isSeriesMark: isSeriesMark ?? true,\n progressive\n }) as ILineMark;\n return this._lineMark;\n }\n\n initLineMarkStyle(direction?: DirectionType, areaCurveType?: InterpolateType) {\n const lineMark = this._lineMark;\n if (lineMark) {\n this.setMarkStyle(\n lineMark,\n {\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this.coordinate === 'polar') {\n // 极坐标系下需要关闭\n this.setMarkStyle(\n lineMark,\n {\n lineJoin: DEFAULT_CLOSE_STROKE_JOIN,\n curveType: DEFAULT_LINEAR_CLOSED_INTERPOLATE\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const userCurveType = areaCurveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n this.setMarkStyle(\n lineMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n if (this._invalidType) {\n this.setMarkStyle(\n lineMark,\n {\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n lineMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(lineMark);\n this._tooltipHelper?.activeTriggerSet.dimension.add(lineMark);\n }\n return lineMark;\n }\n\n initSymbolMark(progressive?: IMarkProgressiveConfig) {\n this._symbolMark = this._createMark(MarkTypeEnum.symbol, 'point', {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('point', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: merge({ animation: this._spec.animation }, this._spec.label),\n progressive\n }) as ISymbolMark;\n return this._symbolMark;\n }\n\n initSymbolMarkStyle() {\n const symbolMark = this._symbolMark;\n if (symbolMark) {\n this.setMarkStyle(\n symbolMark,\n {\n fill: this.getColorAttribute(),\n fillOpacity: 1\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType) {\n this.setMarkStyle(\n symbolMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n symbolMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(symbolMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(symbolMark);\n }\n return symbolMark;\n }\n\n initLabelMarkStyle(labelMark?: ITextMark) {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(labelMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this.dataToPositionZ.bind(this)\n });\n if (this._invalidType) {\n this.setMarkStyle(\n labelMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/mixin/line-mixin.ts"],"names":[],"mappings":"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","file":"line-mixin.js","sourcesContent":["import type { ITrigger } from '../../interaction/interface';\nimport type { ISeries } from '../interface/series';\nimport { AttributeLevel } from '../../constant';\n\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { ILineMark } from '../../mark/line';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { ITextMark } from '../../mark/text';\nimport type {\n DirectionType,\n IInvalidType,\n InterpolateType,\n ILineMarkSpec,\n ISymbolMarkSpec,\n Maybe,\n Datum,\n IMarkTheme\n} from '../../typings';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport { Direction } from '../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_LINEAR_CLOSED_INTERPOLATE } from '../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { couldBeValidNumber, isValid, merge } from '../../util';\nimport type { ISeriesMarkInfo, ISeriesMarkInitOption, ISeriesTooltipHelper, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { ILabelSpec } from '../../component/label';\nimport { shouldDoMorph, userAnimationConfig } from '../../animation/utils';\n\nexport interface ILineLikeSeriesTheme {\n line?: Partial<IMarkTheme<ILineMarkSpec>>;\n point?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n label?: Partial<ILabelSpec>;\n}\n\nexport interface LineLikeSeriesMixin extends ISeries {\n _spec: any;\n _seriesField: string;\n _theme: Maybe<ILineLikeSeriesTheme>;\n _trigger: ITrigger;\n _tooltipHelper: ISeriesTooltipHelper;\n _invalidType: IInvalidType;\n\n _lineMark: ILineMark;\n _symbolMark: ISymbolMark;\n _labelMark: ITextMark;\n\n _createMark: (markInfo: ISeriesMarkInfo, option?: ISeriesMarkInitOption) => IMark;\n}\n\nexport class LineLikeSeriesMixin {\n setSeriesField(field: string): void {\n if (isValid(field)) {\n this._seriesField = field;\n this.getMarksInType([MarkTypeEnum.line, MarkTypeEnum.area]).forEach(m => {\n m.setFacet(this._seriesField);\n });\n }\n }\n\n initLineMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean) {\n this._lineMark = this._createMark(lineLikeSeriesMarkMap.line, {\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n isSeriesMark: isSeriesMark ?? true,\n progressive\n }) as ILineMark;\n return this._lineMark;\n }\n\n initLineMarkStyle(direction?: DirectionType, areaCurveType?: InterpolateType) {\n const lineMark = this._lineMark;\n if (lineMark) {\n this.setMarkStyle(\n lineMark,\n {\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this.coordinate === 'polar') {\n // 极坐标系下需要关闭\n this.setMarkStyle(\n lineMark,\n {\n lineJoin: DEFAULT_CLOSE_STROKE_JOIN,\n curveType: DEFAULT_LINEAR_CLOSED_INTERPOLATE\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const userCurveType = areaCurveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n this.setMarkStyle(\n lineMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n if (this._invalidType) {\n this.setMarkStyle(\n lineMark,\n {\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n lineMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(lineMark);\n this._tooltipHelper?.activeTriggerSet.dimension.add(lineMark);\n }\n return lineMark;\n }\n\n initSymbolMark(progressive?: IMarkProgressiveConfig) {\n this._symbolMark = this._createMark(lineLikeSeriesMarkMap.point, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('point', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: merge({ animation: this._spec.animation }, this._spec.label),\n progressive\n }) as ISymbolMark;\n return this._symbolMark;\n }\n\n initSymbolMarkStyle() {\n const symbolMark = this._symbolMark;\n if (symbolMark) {\n this.setMarkStyle(\n symbolMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType) {\n this.setMarkStyle(\n symbolMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n symbolMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(symbolMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(symbolMark);\n }\n return symbolMark;\n }\n\n initLabelMarkStyle(labelMark?: ITextMark) {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(labelMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this.dataToPositionZ.bind(this)\n });\n if (this._invalidType) {\n this.setMarkStyle(\n labelMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n}\n\nexport const lineLikeSeriesMarkMap: SeriesMarkMap = {\n [SeriesMarkNameEnum.point]: { name: SeriesMarkNameEnum.point, type: MarkTypeEnum.symbol },\n [SeriesMarkNameEnum.line]: { name: SeriesMarkNameEnum.line, type: MarkTypeEnum.line }\n};\n"]}
@@ -1,6 +1,7 @@
1
1
  import type { IAnimationSpec } from '../../animation/spec';
2
2
  import type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';
3
3
  import type { IArcMarkSpec, ITextMarkSpec, TextAlign, IPathMarkSpec, IArc3dMarkSpec } from '../../typings/visual';
4
+ import type { SeriesMarkNameEnum } from '../interface';
4
5
  import type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';
5
6
  import type { PieAppearPreset } from './animation/animation';
6
7
  export type PieMarks = 'pie' | 'label' | 'labelLine';
@@ -18,20 +19,20 @@ export interface IPieSeriesSpec extends IPolarSeriesSpec, IAnimationSpec<PieMark
18
19
  startAngle?: number;
19
20
  endAngle?: number;
20
21
  padAngle?: number;
21
- pie?: IMarkSpec<IArcMarkSpec>;
22
- label?: IArcLabelSpec;
22
+ [SeriesMarkNameEnum.pie]?: IMarkSpec<IArcMarkSpec>;
23
+ [SeriesMarkNameEnum.label]?: IArcLabelSpec;
23
24
  }
24
25
  export interface IPieSeriesTheme extends IPolarSeriesTheme {
25
- pie?: Partial<IMarkTheme<IArcMarkSpec>>;
26
- label?: IArcLabelSpec;
26
+ [SeriesMarkNameEnum.pie]?: Partial<IMarkTheme<IArcMarkSpec>>;
27
+ [SeriesMarkNameEnum.label]?: IArcLabelSpec;
27
28
  }
28
29
  export type IPie3dSeriesSpec = {
29
30
  type: 'pie3d';
30
31
  angle3d?: number;
31
32
  } & Omit<IPieSeriesSpec, 'type'>;
32
33
  export interface IPie3dSeriesTheme extends IPolarSeriesTheme {
33
- pie3d?: Partial<IMarkTheme<IArc3dMarkSpec>>;
34
- label?: IArcLabelSpec;
34
+ [SeriesMarkNameEnum.pie3d]?: Partial<IMarkTheme<IArc3dMarkSpec>>;
35
+ [SeriesMarkNameEnum.label]?: IArcLabelSpec;
35
36
  }
36
37
  export interface IArcLabelLineSpec extends IMarkSpec<IPathMarkSpec> {
37
38
  visible?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/pie/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { IArcMarkSpec, ITextMarkSpec, TextAlign, IPathMarkSpec, IArc3dMarkSpec } from '../../typings/visual';\nimport type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';\nimport type { PieAppearPreset } from './animation/animation';\n\nexport type PieMarks = 'pie' | 'label' | 'labelLine';\n\nexport interface IPieSeriesSpec extends IPolarSeriesSpec, IAnimationSpec<PieMarks, PieAppearPreset> {\n type: 'pie';\n /**\n * 分类字段\n * @description 饼图每个扇区为独立的系列\n */\n categoryField: string;\n /** 数值字段 */\n valueField: string;\n /** 饼图中心点 x 坐标 */\n centerX?: number;\n /** 饼图中心点 y 坐标 */\n centerY?: number;\n /** 饼图扇区中心偏移 */\n centerOffset?: number;\n\n /**\n * 饼图扇区半径\n * @default 0.6\n * @deprecated use outerRadius instead\n */\n radius?: number;\n\n /**\n * 饼图扇区外半径\n * @default 0.6\n */\n outerRadius?: number;\n\n /**\n * 饼图扇区内半径\n * @default 0\n */\n innerRadius?: number;\n\n /**\n * 饼图扇区圆角半径\n * @default 0\n */\n cornerRadius?: number;\n /** 扇区起始角度 */\n startAngle?: number;\n /** 扇区结束角度 */\n endAngle?: number;\n /** 扇区间隔角度 */\n padAngle?: number;\n\n /** 扇区样式 */\n pie?: IMarkSpec<IArcMarkSpec>;\n /** 标签配置 */\n label?: IArcLabelSpec;\n}\n\nexport interface IPieSeriesTheme extends IPolarSeriesTheme {\n pie?: Partial<IMarkTheme<IArcMarkSpec>>;\n /** 标签配置 */\n label?: IArcLabelSpec;\n}\n\nexport type IPie3dSeriesSpec = {\n type: 'pie3d';\n // 饼图整体绕x轴的旋转角度\n angle3d?: number;\n} & Omit<IPieSeriesSpec, 'type'>;\n\nexport interface IPie3dSeriesTheme extends IPolarSeriesTheme {\n pie3d?: Partial<IMarkTheme<IArc3dMarkSpec>>;\n /** 标签配置 */\n label?: IArcLabelSpec;\n}\n\nexport interface IArcLabelLineSpec extends IMarkSpec<IPathMarkSpec> {\n /**\n * 是否显示引导线\n * @default true\n */\n visible?: boolean;\n /**\n * 引导线 line1 部分最小长度\n * @default 20\n */\n line1MinLength?: number;\n /**\n * 引导线 line2 部分最小长度\n * @default 10\n */\n line2MinLength?: number;\n}\n\nexport type ArcLabelAlignType = 'arc' | 'labelLine' | 'edge';\n\nexport type ArcLabelStrategyType = 'priority' | 'vertical' | 'none';\n\nexport interface IArcLabelLayoutSpec {\n /**\n * 标签对齐方式\n * @default 'arc'\n */\n textAlign?: ArcLabelAlignType;\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: ArcLabelAlignType;\n /**\n * 标签布局策略\n * @default 'priority'\n */\n strategy?: ArcLabelStrategyType;\n /**\n * 是否启用切线约束\n * @default true\n */\n tangentConstraint?: boolean;\n}\n\nexport interface ILabelTextMarkSpec extends Omit<ITextMarkSpec, 'align' | 'textAlign'> {\n /** text 配置 align 为 auto 时将根据布局逻辑自动处理 align */\n textAlign?: TextAlign | 'auto';\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: TextAlign | 'auto';\n}\n\nexport interface IArcLabelSpec extends Omit<IMarkSpec<ITextMarkSpec>, 'style'> {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside';\n /**\n * 标签内容显示规则\n * @default 'all'\n */\n showRule?: 'all' | 'max' | 'min' | 'minAndMax' | 'headAndTail';\n /**\n * 是否允许标签重叠\n * @default false\n */\n coverEnable?: boolean;\n /**\n * 是否允许标签旋转\n * @default true\n */\n rotate?: boolean;\n\n /**\n * 文字与引导线间隔宽度\n * @default 5\n */\n spaceWidth?: number;\n /**\n * 扇区间标签的间隔\n * @default 6\n */\n layoutArcGap?: number;\n\n /** 标签文字样式 */\n style?: ILabelTextMarkSpec;\n /** 标签引导线样式 */\n line?: IArcLabelLineSpec;\n /** 标签布局配置 */\n layout?: IArcLabelLayoutSpec;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/pie/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { IArcMarkSpec, ITextMarkSpec, TextAlign, IPathMarkSpec, IArc3dMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface';\nimport type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';\nimport type { PieAppearPreset } from './animation/animation';\n\nexport type PieMarks = 'pie' | 'label' | 'labelLine';\n\nexport interface IPieSeriesSpec extends IPolarSeriesSpec, IAnimationSpec<PieMarks, PieAppearPreset> {\n type: 'pie';\n /**\n * 分类字段\n * @description 饼图每个扇区为独立的系列\n */\n categoryField: string;\n /** 数值字段 */\n valueField: string;\n /** 饼图中心点 x 坐标 */\n centerX?: number;\n /** 饼图中心点 y 坐标 */\n centerY?: number;\n /** 饼图扇区中心偏移 */\n centerOffset?: number;\n\n /**\n * 饼图扇区半径\n * @default 0.6\n * @deprecated use outerRadius instead\n */\n radius?: number;\n\n /**\n * 饼图扇区外半径\n * @default 0.6\n */\n outerRadius?: number;\n\n /**\n * 饼图扇区内半径\n * @default 0\n */\n innerRadius?: number;\n\n /**\n * 饼图扇区圆角半径\n * @default 0\n */\n cornerRadius?: number;\n /** 扇区起始角度 */\n startAngle?: number;\n /** 扇区结束角度 */\n endAngle?: number;\n /** 扇区间隔角度 */\n padAngle?: number;\n\n /** 扇区样式 */\n [SeriesMarkNameEnum.pie]?: IMarkSpec<IArcMarkSpec>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n}\n\nexport interface IPieSeriesTheme extends IPolarSeriesTheme {\n [SeriesMarkNameEnum.pie]?: Partial<IMarkTheme<IArcMarkSpec>>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n}\n\nexport type IPie3dSeriesSpec = {\n type: 'pie3d';\n // 饼图整体绕x轴的旋转角度\n angle3d?: number;\n} & Omit<IPieSeriesSpec, 'type'>;\n\nexport interface IPie3dSeriesTheme extends IPolarSeriesTheme {\n [SeriesMarkNameEnum.pie3d]?: Partial<IMarkTheme<IArc3dMarkSpec>>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n}\n\nexport interface IArcLabelLineSpec extends IMarkSpec<IPathMarkSpec> {\n /**\n * 是否显示引导线\n * @default true\n */\n visible?: boolean;\n /**\n * 引导线 line1 部分最小长度\n * @default 20\n */\n line1MinLength?: number;\n /**\n * 引导线 line2 部分最小长度\n * @default 10\n */\n line2MinLength?: number;\n}\n\nexport type ArcLabelAlignType = 'arc' | 'labelLine' | 'edge';\n\nexport type ArcLabelStrategyType = 'priority' | 'vertical' | 'none';\n\nexport interface IArcLabelLayoutSpec {\n /**\n * 标签对齐方式\n * @default 'arc'\n */\n textAlign?: ArcLabelAlignType;\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: ArcLabelAlignType;\n /**\n * 标签布局策略\n * @default 'priority'\n */\n strategy?: ArcLabelStrategyType;\n /**\n * 是否启用切线约束\n * @default true\n */\n tangentConstraint?: boolean;\n}\n\nexport interface ILabelTextMarkSpec extends Omit<ITextMarkSpec, 'align' | 'textAlign'> {\n /** text 配置 align 为 auto 时将根据布局逻辑自动处理 align */\n textAlign?: TextAlign | 'auto';\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: TextAlign | 'auto';\n}\n\nexport interface IArcLabelSpec extends Omit<IMarkSpec<ITextMarkSpec>, 'style'> {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside';\n /**\n * 标签内容显示规则\n * @default 'all'\n */\n showRule?: 'all' | 'max' | 'min' | 'minAndMax' | 'headAndTail';\n /**\n * 是否允许标签重叠\n * @default false\n */\n coverEnable?: boolean;\n /**\n * 是否允许标签旋转\n * @default true\n */\n rotate?: boolean;\n\n /**\n * 文字与引导线间隔宽度\n * @default 5\n */\n spaceWidth?: number;\n /**\n * 扇区间标签的间隔\n * @default 6\n */\n layoutArcGap?: number;\n\n /** 标签文字样式 */\n style?: ILabelTextMarkSpec;\n /** 标签引导线样式 */\n line?: IArcLabelLineSpec;\n /** 标签布局配置 */\n layout?: IArcLabelLayoutSpec;\n}\n"]}
@@ -5,7 +5,8 @@ import { MarkTypeEnum } from '../../mark/interface';
5
5
  import type { IArcMark } from '../../mark/arc';
6
6
  import type { ITextMark } from '../../mark/text';
7
7
  import type { IPathMark } from '../../mark/path';
8
- import type { IArcSeries } from '../interface';
8
+ import type { IArcSeries, SeriesMarkMap } from '../interface';
9
+ import { SeriesMarkNameEnum } from '../interface';
9
10
  import { SeriesTypeEnum } from '../interface/type';
10
11
  import type { IArcLabelSpec, IPie3dSeriesSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';
11
12
  import { SeriesData } from '../base/series-data';
@@ -13,7 +14,9 @@ type IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & {
13
14
  type: string;
14
15
  };
15
16
  export declare class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {
16
- protected _arcMarkType: MarkTypeEnum;
17
+ protected _pieMarkName: SeriesMarkNameEnum;
18
+ protected _pieMarkType: MarkTypeEnum;
19
+ static readonly mark: SeriesMarkMap;
17
20
  protected _viewDataLabel: SeriesData;
18
21
  protected _center: IPoint | null;
19
22
  get center(): IPoint;
@@ -73,7 +76,9 @@ export declare class PieSeries extends BasePieSeries<IPieSeriesSpec> implements
73
76
  export declare class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {
74
77
  static readonly type: string;
75
78
  type: SeriesTypeEnum;
76
- protected _arcMarkType: MarkTypeEnum;
79
+ protected _pieMarkName: SeriesMarkNameEnum;
80
+ protected _pieMarkType: MarkTypeEnum;
81
+ static readonly mark: SeriesMarkMap;
77
82
  protected _angle3d: number;
78
83
  setAttrFromSpec(): void;
79
84
  initMarkStyle(): void;
@@ -10,6 +10,8 @@ import { PolarSeries } from "../polar/polar";
10
10
 
11
11
  import { MarkTypeEnum } from "../../mark/interface";
12
12
 
13
+ import { SeriesMarkNameEnum } from "../interface";
14
+
13
15
  import { SeriesTypeEnum } from "../interface/type";
14
16
 
15
17
  import { pie } from "../../data/transforms/pie";
@@ -28,11 +30,13 @@ import { SeriesData } from "../base/series-data";
28
30
 
29
31
  import { centerOffsetConfig } from "./animation/centerOffset";
30
32
 
33
+ import { BaseSeries } from "../base/base-series";
34
+
31
35
  export class BasePieSeries extends PolarSeries {
32
36
  constructor() {
33
- super(...arguments), this._arcMarkType = MarkTypeEnum.arc, this._startAngle = POLAR_START_RADIAN,
34
- this._endAngle = POLAR_END_RADIAN, this._pieMark = null, this._labelMark = null,
35
- this._labelLineMark = null, this.dataToCentralPosition = datum => {
37
+ super(...arguments), this._pieMarkName = SeriesMarkNameEnum.pie, this._pieMarkType = MarkTypeEnum.arc,
38
+ this._startAngle = POLAR_START_RADIAN, this._endAngle = POLAR_END_RADIAN, this._pieMark = null,
39
+ this._labelMark = null, this._labelLineMark = null, this.dataToCentralPosition = datum => {
36
40
  const angle = datum[ARC_MIDDLE_ANGLE];
37
41
  if (isNil(angle)) return null;
38
42
  const radius = this.computeDatumRadius(datum), innerRadius = this.computeDatumInnerRadius(datum), center = this.computeCenter(datum), delta = polarToCartesian({
@@ -93,8 +97,11 @@ export class BasePieSeries extends PolarSeries {
93
97
  }, !1), this._viewDataLabel = new SeriesData(this._option, viewDataLabel);
94
98
  }
95
99
  initMark() {
96
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
97
- if (this._pieMark = this._createMark(this._arcMarkType, this.type, {
100
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
101
+ if (this._pieMark = this._createMark(Object.assign(Object.assign({}, BasePieSeries.mark.pie), {
102
+ name: this._pieMarkName,
103
+ type: this._pieMarkType
104
+ }), {
98
105
  morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),
99
106
  defaultMorphElementKey: this._seriesField,
100
107
  key: this._seriesField,
@@ -103,7 +110,7 @@ export class BasePieSeries extends PolarSeries {
103
110
  isSeriesMark: !0
104
111
  }), null === (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.label) || void 0 === _b ? void 0 : _b.visible) {
105
112
  const spec = this.getSpec();
106
- this._labelMark = this._createMark(MarkTypeEnum.text, "label", {
113
+ this._labelMark = this._createMark(BasePieSeries.mark.label, {
107
114
  dataView: this._viewDataLabel.getDataView(),
108
115
  dataProductId: this._viewDataLabel.getProductId(),
109
116
  skipBeforeLayouted: !0,
@@ -112,19 +119,20 @@ export class BasePieSeries extends PolarSeries {
112
119
  markSpec: Object.assign({
113
120
  visible: !0
114
121
  }, null === (_e = this.getSpec()) || void 0 === _e ? void 0 : _e.label)
115
- }), this._labelLineMark = this._createMark(MarkTypeEnum.path, "labelLine", {
122
+ }), this._labelLineMark = this._createMark(BasePieSeries.mark.labelLine, {
116
123
  dataView: this._viewDataLabel.getDataView(),
117
124
  dataProductId: this._viewDataLabel.getProductId(),
118
125
  skipBeforeLayouted: !0,
119
126
  themeSpec: null === (_g = null === (_f = this._theme) || void 0 === _f ? void 0 : _f.label) || void 0 === _g ? void 0 : _g.line,
127
+ support3d: null === (_h = null == spec ? void 0 : spec.label) || void 0 === _h ? void 0 : _h.support3d,
120
128
  markSpec: Object.assign({
121
129
  visible: !0
122
- }, null === (_j = null === (_h = this.getSpec()) || void 0 === _h ? void 0 : _h.label) || void 0 === _j ? void 0 : _j.line)
130
+ }, null === (_k = null === (_j = this.getSpec()) || void 0 === _j ? void 0 : _j.label) || void 0 === _k ? void 0 : _k.line)
123
131
  });
124
132
  }
125
133
  }
126
134
  initMarkStyle() {
127
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
135
+ var _a, _b, _c, _d, _e, _f, _g;
128
136
  const pieMark = this._pieMark;
129
137
  if (pieMark) {
130
138
  this.setMarkStyle(pieMark, {
@@ -137,7 +145,6 @@ export class BasePieSeries extends PolarSeries {
137
145
  return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : this._region.getLayoutRect().height / 2;
138
146
  },
139
147
  fill: this.getColorAttribute(),
140
- fillOpacity: null !== (_d = null === (_c = null === (_b = null === (_a = this._theme) || void 0 === _a ? void 0 : _a.pie) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.fillOpacity) && void 0 !== _d ? _d : 1,
141
148
  outerRadius: isSpecValueWithScale(this._outerRadius) ? this._outerRadius : () => this.computeLayoutRadius() * this._outerRadius,
142
149
  innerRadius: isSpecValueWithScale(this._innerRadius) ? this._innerRadius : () => this.computeLayoutRadius() * this._innerRadius,
143
150
  cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,
@@ -148,7 +155,7 @@ export class BasePieSeries extends PolarSeries {
148
155
  }, "normal", AttributeLevel.Series);
149
156
  const pieSpec = this.getSpec()[pieMark.name];
150
157
  if (pieSpec) for (const state in pieSpec.state || {}) this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);
151
- this._trigger.registerMark(pieMark), null === (_e = this._tooltipHelper) || void 0 === _e || _e.activeTriggerSet.mark.add(pieMark);
158
+ this._trigger.registerMark(pieMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(pieMark);
152
159
  }
153
160
  const labelMark = this._labelMark;
154
161
  labelMark && (this.setMarkStyle(labelMark, {
@@ -156,9 +163,9 @@ export class BasePieSeries extends PolarSeries {
156
163
  x: field(DEFAULT_LABEL_X).bind(this),
157
164
  y: field(DEFAULT_LABEL_Y).bind(this),
158
165
  text: field(DEFAULT_LABEL_TEXT).bind(this),
159
- fill: (null === (_g = null === (_f = this._spec.label) || void 0 === _f ? void 0 : _f.style) || void 0 === _g ? void 0 : _g.fill) || this.getColorAttribute(),
166
+ fill: (null === (_c = null === (_b = this._spec.label) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.fill) || this.getColorAttribute(),
160
167
  textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),
161
- textBaseline: "inside" === (null === (_h = this._spec.label) || void 0 === _h ? void 0 : _h.position) ? "middle" : "top",
168
+ textBaseline: "inside" === (null === (_d = this._spec.label) || void 0 === _d ? void 0 : _d.position) ? "middle" : "top",
162
169
  angle: datum => {
163
170
  var _a;
164
171
  const angle = datum[ARC_MIDDLE_ANGLE];
@@ -169,7 +176,7 @@ export class BasePieSeries extends PolarSeries {
169
176
  const labelLineMark = this._labelLineMark;
170
177
  labelLineMark && (this.setMarkStyle(labelLineMark, Object.assign({
171
178
  visible: field(DEFAULT_LABEL_VISIBLE).bind(this),
172
- stroke: (null === (_l = null === (_k = null === (_j = this._spec.label) || void 0 === _j ? void 0 : _j.line) || void 0 === _k ? void 0 : _k.style) || void 0 === _l ? void 0 : _l.stroke) || this.getColorAttribute(),
179
+ stroke: (null === (_g = null === (_f = null === (_e = this._spec.label) || void 0 === _e ? void 0 : _e.line) || void 0 === _f ? void 0 : _f.style) || void 0 === _g ? void 0 : _g.stroke) || this.getColorAttribute(),
173
180
  lineWidth: 1
174
181
  }, this.generateLinePath("normal"))), this.setMarkStyle(labelLineMark, this.generateLinePath("hover"), "hover"),
175
182
  this.setMarkStyle(labelLineMark, this.generateLinePath("selected"), "selected"),
@@ -307,12 +314,12 @@ export class BasePieSeries extends PolarSeries {
307
314
  }
308
315
  }, appearPreset = null === (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.animationAppear) || void 0 === _b ? void 0 : _b.preset;
309
316
  if (this._pieMark) {
310
- const pieAnimationConfig = animationConfig(DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset), userAnimationConfig("pie", this._spec));
317
+ const pieAnimationConfig = animationConfig(DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset), userAnimationConfig(SeriesMarkNameEnum.pie, this._spec));
311
318
  pieAnimationConfig.normal && pieAnimationConfig.normal.type && (pieAnimationConfig.normal = centerOffsetConfig(this._pieMark, pieAnimationConfig.normal)),
312
319
  this._pieMark.setAnimationConfig(pieAnimationConfig);
313
320
  }
314
- this._labelMark && (this._labelMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig("label", this._spec))),
315
- this._labelLineMark && this._labelLineMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig("labelLine", this._spec))));
321
+ this._labelMark && (this._labelMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))),
322
+ this._labelLineMark && this._labelLineMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.labelLine, this._spec))));
316
323
  }
317
324
  getDefaultShapeType() {
318
325
  return "square";
@@ -330,6 +337,17 @@ export class BasePieSeries extends PolarSeries {
330
337
  setValueFieldToPercent() {}
331
338
  }
332
339
 
340
+ BasePieSeries.mark = Object.assign(Object.assign({}, BaseSeries.mark), {
341
+ [SeriesMarkNameEnum.pie]: {
342
+ name: SeriesMarkNameEnum.pie,
343
+ type: MarkTypeEnum.arc
344
+ },
345
+ [SeriesMarkNameEnum.labelLine]: {
346
+ name: SeriesMarkNameEnum.labelLine,
347
+ type: MarkTypeEnum.path
348
+ }
349
+ });
350
+
333
351
  export class PieSeries extends BasePieSeries {
334
352
  constructor() {
335
353
  super(...arguments), this.type = SeriesTypeEnum.pie;
@@ -340,14 +358,15 @@ PieSeries.type = SeriesTypeEnum.pie;
340
358
 
341
359
  export class Pie3dSeries extends BasePieSeries {
342
360
  constructor() {
343
- super(...arguments), this.type = SeriesTypeEnum.pie3d, this._arcMarkType = MarkTypeEnum.arc3d;
361
+ super(...arguments), this.type = SeriesTypeEnum.pie3d, this._pieMarkName = SeriesMarkNameEnum.pie3d,
362
+ this._pieMarkType = MarkTypeEnum.arc3d;
344
363
  }
345
364
  setAttrFromSpec() {
346
365
  var _a, _b;
347
366
  super.setAttrFromSpec(), this._angle3d = null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.angle3d) && void 0 !== _b ? _b : -Math.PI / 3;
348
367
  }
349
368
  initMarkStyle() {
350
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
369
+ var _a, _b, _c, _d, _e, _f, _g, _h;
351
370
  const pieMark = this._pieMark;
352
371
  if (pieMark) {
353
372
  this.setMarkStyle(pieMark, {
@@ -361,7 +380,6 @@ export class Pie3dSeries extends BasePieSeries {
361
380
  },
362
381
  beta: () => this._angle3d,
363
382
  fill: this.getColorAttribute(),
364
- fillOpacity: null !== (_d = null === (_c = null === (_b = null === (_a = this._theme) || void 0 === _a ? void 0 : _a.pie) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.fillOpacity) && void 0 !== _d ? _d : 1,
365
383
  outerRadius: () => this.computeLayoutRadius() * this._outerRadius,
366
384
  innerRadius: () => this.computeLayoutRadius() * this._innerRadius,
367
385
  cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,
@@ -372,10 +390,10 @@ export class Pie3dSeries extends BasePieSeries {
372
390
  }, "normal", AttributeLevel.Series);
373
391
  const pieSpec = this.getSpec()[pieMark.name];
374
392
  if (pieSpec) for (const state in pieSpec.state || {}) this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);
375
- this._trigger.registerMark(pieMark), null === (_e = this._tooltipHelper) || void 0 === _e || _e.activeTriggerSet.mark.add(pieMark);
393
+ this._trigger.registerMark(pieMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(pieMark);
376
394
  }
377
395
  const labelMark = this._labelMark, spec = this.getSpec(), params3d = {};
378
- (null === (_f = null == spec ? void 0 : spec.label) || void 0 === _f ? void 0 : _f.support3d) && (params3d.beta = -Math.PI / 3,
396
+ (null === (_b = null == spec ? void 0 : spec.label) || void 0 === _b ? void 0 : _b.support3d) && (params3d.beta = -Math.PI / 3,
379
397
  params3d.anchor3d = datum => {
380
398
  var _a, _b, _c, _d;
381
399
  return [ (null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2) - field(DEFAULT_LABEL_X).bind(this)(datum), (null !== (_d = null === (_c = this._center) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2) - field(DEFAULT_LABEL_Y).bind(this)(datum) ];
@@ -384,9 +402,9 @@ export class Pie3dSeries extends BasePieSeries {
384
402
  x: field(DEFAULT_LABEL_X).bind(this),
385
403
  y: field(DEFAULT_LABEL_Y).bind(this),
386
404
  text: field(DEFAULT_LABEL_TEXT).bind(this),
387
- fill: (null === (_h = null === (_g = this._spec.label) || void 0 === _g ? void 0 : _g.style) || void 0 === _h ? void 0 : _h.fill) || this.getColorAttribute(),
405
+ fill: (null === (_d = null === (_c = this._spec.label) || void 0 === _c ? void 0 : _c.style) || void 0 === _d ? void 0 : _d.fill) || this.getColorAttribute(),
388
406
  textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),
389
- textBaseline: "inside" === (null === (_j = this._spec.label) || void 0 === _j ? void 0 : _j.position) ? "middle" : "top",
407
+ textBaseline: "inside" === (null === (_e = this._spec.label) || void 0 === _e ? void 0 : _e.position) ? "middle" : "top",
390
408
  angle: datum => {
391
409
  var _a;
392
410
  const angle = datum[ARC_MIDDLE_ANGLE];
@@ -395,15 +413,29 @@ export class Pie3dSeries extends BasePieSeries {
395
413
  limit: field(DEFAULT_LABEL_LIMIT).bind(this)
396
414
  }, params3d), void 0, AttributeLevel.User_Mark), this._trigger.registerMark(labelMark));
397
415
  const labelLineMark = this._labelLineMark;
398
- labelLineMark && (this.setMarkStyle(labelLineMark, Object.assign({
416
+ labelLineMark && (this.setMarkStyle(labelLineMark, Object.assign(Object.assign(Object.assign({
399
417
  visible: field(DEFAULT_LABEL_VISIBLE).bind(this),
400
- stroke: (null === (_m = null === (_l = null === (_k = this._spec.label) || void 0 === _k ? void 0 : _k.line) || void 0 === _l ? void 0 : _l.style) || void 0 === _m ? void 0 : _m.stroke) || this.getColorAttribute(),
418
+ stroke: (null === (_h = null === (_g = null === (_f = this._spec.label) || void 0 === _f ? void 0 : _f.line) || void 0 === _g ? void 0 : _g.style) || void 0 === _h ? void 0 : _h.stroke) || this.getColorAttribute(),
401
419
  lineWidth: 1
402
- }, this.generateLinePath("normal"))), this.setMarkStyle(labelLineMark, this.generateLinePath("hover"), "hover"),
420
+ }, this.generateLinePath("normal")), params3d), {
421
+ anchor3d: () => {
422
+ var _a, _b, _c, _d;
423
+ return [ null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2, null !== (_d = null === (_c = this._center) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2 ];
424
+ }
425
+ })), this.setMarkStyle(labelLineMark, this.generateLinePath("hover"), "hover"),
403
426
  this.setMarkStyle(labelLineMark, this.generateLinePath("selected"), "selected"),
404
427
  this._trigger.registerMark(labelLineMark));
405
428
  }
406
429
  }
407
430
 
408
- Pie3dSeries.type = SeriesTypeEnum.pie3d;
431
+ Pie3dSeries.type = SeriesTypeEnum.pie3d, Pie3dSeries.mark = Object.assign(Object.assign({}, BaseSeries.mark), {
432
+ [SeriesMarkNameEnum.pie3d]: {
433
+ name: SeriesMarkNameEnum.pie3d,
434
+ type: MarkTypeEnum.arc3d
435
+ },
436
+ [SeriesMarkNameEnum.labelLine]: {
437
+ name: SeriesMarkNameEnum.labelLine,
438
+ type: MarkTypeEnum.path
439
+ }
440
+ });
409
441
  //# sourceMappingURL=pie.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_RATIO,\n ARC_MIDDLE_ANGLE,\n ARC_RADIAN,\n ARC_QUADRANT,\n ARC_K,\n PREFIX,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n ARC_LABEL_POINT_BX,\n ARC_LABEL_POINT_BY,\n ARC_LABEL_POINT_CX,\n ARC_LABEL_POINT_CY,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent\n} from '../../constant';\nimport type { Maybe, IPoint, Datum, StateValueType } from '../../typings';\nimport {\n degrees,\n field,\n isNil,\n isSpecValueWithScale,\n normalizeStartEndAngle,\n polarToCartesian,\n radians\n} from '../../util';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\nimport type { IPieOpt } from '../../data/transforms/pie';\n// eslint-disable-next-line no-duplicate-imports\nimport { pie } from '../../data/transforms/pie';\n\nimport { arcLabel } from '../../layout/label/arc-label';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IArcLabelSpec, IPie3dSeriesSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar';\nimport { centerOffsetConfig } from './animation/centerOffset';\n\ntype IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n protected _arcMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n protected _center!: IPoint | null;\n public get center(): IPoint {\n return {\n x: this._spec?.centerX ?? this._region.getLayoutRect().width / 2,\n y: this._spec?.centerY ?? this._region.getLayoutRect().height / 2\n };\n }\n protected _centerOffset!: number;\n\n protected _cornerRadius!: number;\n\n protected _startAngle: number = POLAR_START_RADIAN;\n protected _endAngle: number = POLAR_END_RADIAN;\n protected _padAngle!: number;\n\n protected _pieMark: IArcMark | null = null;\n protected _labelMark: ITextMark | null = null;\n protected _labelLineMark: IPathMark | null = null;\n\n protected declare _theme: Maybe<IPieSeriesTheme>;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._centerOffset = this._spec?.centerOffset ?? 0;\n this._cornerRadius = this._spec?.cornerRadius ?? 0;\n\n const normalized = normalizeStartEndAngle(\n isValid(this._spec?.startAngle) ? radians(this._spec.startAngle) : this._startAngle,\n isValid(this._spec?.endAngle) ? radians(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec?.padAngle) ? radians(this._spec.padAngle) : 0;\n\n // 值信息给角度,angleField 是为了兼容小组件用法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n if (this._spec.categoryField) {\n this.setSeriesField(this._spec.categoryField);\n }\n this._radiusField = [];\n }\n\n initData() {\n super.initData();\n\n const viewData = this.getViewData();\n if (!viewData) {\n return;\n }\n\n registerDataSetInstanceTransform(this._dataSet, 'pie', pie);\n registerDataSetInstanceTransform(this._dataSet, 'arcLabel', arcLabel);\n\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n asStartAngle: ARC_START_ANGLE,\n asEndAngle: ARC_END_ANGLE,\n asRatio: ARC_RATIO,\n asMiddleAngle: ARC_MIDDLE_ANGLE,\n asRadian: ARC_RADIAN,\n asQuadrant: ARC_QUADRANT,\n asK: ARC_K\n } as IPieOpt\n },\n false\n );\n\n const viewDataLabel = new DataView(this._dataSet);\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\n });\n viewDataLabel.name = `${PREFIX}_series_${this.id}_viewDataLabel`;\n viewDataLabel.transform(\n {\n type: 'arcLabel',\n options: { series: this }\n },\n false\n );\n\n this._viewDataLabel = new SeriesData(this._option, viewDataLabel);\n }\n\n initMark(): void {\n this._pieMark = this._createMark(this._arcMarkType, this.type, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this._seriesField,\n key: this._seriesField,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true\n }) as IArcMark;\n\n if (this._spec?.label?.visible) {\n const spec = this.getSpec();\n this._labelMark = this._createMark(MarkTypeEnum.text, 'label', {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label\n }\n }) as ITextMark;\n\n this._labelLineMark = this._createMark(MarkTypeEnum.path, 'labelLine', {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label?.line,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label?.line\n }\n }) as ITextMark;\n }\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n fill: this.getColorAttribute(),\n fillOpacity: this._theme?.pie?.style?.fillOpacity ?? 1,\n outerRadius: isSpecValueWithScale(this._outerRadius)\n ? this._outerRadius\n : () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: isSpecValueWithScale(this._innerRadius)\n ? this._innerRadius\n : () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this)\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this._trigger.setStateKeys([this._seriesField as string, ...this._radiusField]);\n }\n\n initEvent(): void {\n super.initEvent();\n this._viewDataLabel.getDataView()?.target.addListener('change', this.viewDataLabelUpdate.bind(this));\n }\n\n // 饼图不支持分组\n initGroups() {\n return;\n }\n\n /**\n * @override\n * @param ctx\n */\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this._viewDataLabel.getDataView().reRunAllTransform();\n this.onMarkPositionUpdate();\n super.onLayoutEnd(ctx);\n }\n\n getDimensionField(): string[] {\n return this._seriesField ? [this._seriesField] : [];\n }\n getMeasureField(): string[] {\n return this._angleField;\n }\n\n private viewDataLabelUpdate() {\n this.event.emit(ChartEvent.viewDataLabelUpdate, { model: this });\n this._viewDataLabel.updateData();\n }\n\n protected generateRadiusStyle(spec: any) {\n const style: any = {};\n spec?.outerRadius && (style.outerRadius = () => this.computeLayoutRadius() * spec?.outerRadius);\n spec?.innerRadius && (style.innerRadius = () => this.computeLayoutRadius() * spec?.innerRadius);\n spec?.cornerRadius && (style.cornerRadius = () => this.computeLayoutRadius() * spec?.cornerRadius);\n return style;\n }\n\n protected computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n computeCenter(datum: Datum): IPoint {\n return {\n x: this._pieMark.getAttribute('x', datum, 'normal') as number,\n y: this._pieMark.getAttribute('y', datum, 'normal') as number\n };\n }\n\n protected generateLinePath(state: StateValueType) {\n const key = state === 'normal' ? 'POINT' : state.toUpperCase();\n return {\n path: (datum: Datum) => {\n return (\n `M${Math.round(datum[`${PREFIX}_ARC_LABEL_${key}_AX`])},${Math.round(\n datum[`${PREFIX}_ARC_LABEL_${key}_AY`]\n )}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_BX])},${Math.round(datum[ARC_LABEL_POINT_BY])}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_CX])},${Math.round(datum[ARC_LABEL_POINT_CY])}`\n );\n }\n };\n }\n\n getRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.outerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.outerRadius;\n return styleRadius ?? this._outerRadius;\n }\n\n getInnerRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.innerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.innerRadius;\n return styleRadius ?? this._innerRadius;\n }\n\n getLabelConfig(): IArcLabelSpec {\n // TODO: 转换 series spec\n return {\n visible: true,\n position: 'outside',\n showRule: 'all',\n rotate: true,\n coverEnable: false,\n spaceWidth: 5,\n layoutArcGap: 6,\n ...this._spec.label,\n\n style: {\n visible: true,\n ...this._spec.label?.style\n },\n line: {\n visible: true,\n line1MinLength: this._spec.label?.line?.line1MinLength ?? 20,\n line2MinLength: this._spec.label?.line?.line2MinLength ?? 10,\n ...this._spec.label?.line\n },\n layout: {\n align: 'arc',\n strategy: 'priority',\n tangentConstraint: true,\n ...this._spec.label?.layout\n }\n };\n }\n\n computeRadius(r: number, k?: number): number {\n return this.computeLayoutRadius() * r * (isNil(k) ? 1 : k) + this._centerOffset;\n }\n\n computeDatumRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getRadius(state) + this._centerOffset;\n }\n\n updateSpec(spec: any) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const originalSpec = this._originalSpec;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.centerX !== centerX ||\n spec?.centerY !== centerY ||\n spec?.centerOffset !== centerOffset ||\n spec?.radius !== radius ||\n spec?.innerRadius !== innerRadius ||\n spec?.cornerRadius !== cornerRadius ||\n spec?.startAngle !== startAngle ||\n spec?.endAngle !== endAngle ||\n spec?.padAngle !== padAngle\n ) {\n result.reRender = true;\n result.change = true;\n }\n return result;\n }\n\n computeDatumInnerRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getInnerRadius(state) + this._centerOffset;\n }\n\n dataToPosition(datum: Datum): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius });\n return { x: center.x + delta.x, y: center.y + delta.y };\n }\n\n dataToCentralPosition = (datum: Datum): IPoint | null => {\n // 和 PieSeries.dataToPosition 实现不同,这里考虑了美观性,返回的位置是曲边梯形的中心\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const innerRadius = this.computeDatumInnerRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius: (radius + innerRadius) / 2 });\n return { x: center.x + delta.x, y: center.y + delta.y };\n };\n\n initAnimation() {\n const animationParams: IPieAnimationParams = {\n growFrom: (datum, element, state) => {\n if (state === AnimationStateEnum.appear) {\n return this._startAngle;\n }\n if (state === AnimationStateEnum.disappear) {\n return this._endAngle;\n }\n\n const outState = [AnimationStateEnum.disappear, AnimationStateEnum.exit];\n const markElements = element.mark.elements;\n\n const data = datum;\n const dataIndex = data?.[DEFAULT_DATA_INDEX];\n\n // 当前 mark 在上个状态是否处于第一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex) === undefined) {\n return this._startAngle;\n }\n // 当前 mark 在上个状态是否处于最后一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] > dataIndex) === undefined) {\n return this._endAngle;\n }\n\n // 扇形不在边缘时,获取扇形生长点:获取相邻状态下相邻扇形的边缘\n // @ts-ignore\n // TODO: findLast is a new prototype function, we will later polyfill it in v-util.\n const prevMarkElement = markElements.findLast(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n if (outState.includes(state)) {\n return prevMarkElement?.getGraphicItem().nextAttrs?.endAngle;\n }\n return prevMarkElement?.getGraphicItem().prevAttrs?.endAngle;\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset),\n userAnimationConfig('pie', this._spec)\n );\n\n if (pieAnimationConfig.normal && (pieAnimationConfig.normal as IAnimationTypeConfig).type) {\n pieAnimationConfig.normal = centerOffsetConfig(\n this._pieMark,\n pieAnimationConfig.normal as IAnimationTypeConfig\n );\n }\n\n this._pieMark.setAnimationConfig(pieAnimationConfig);\n }\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig('label', this._spec))\n );\n\n if (this._labelLineMark) {\n this._labelLineMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig('labelLine', this._spec))\n );\n }\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n\n setValueFieldToStack(): void {\n // do nothing\n }\n\n setValueFieldToPercent(): void {\n //do nothing\n }\n}\n\nexport class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n\nexport class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie3d;\n type = SeriesTypeEnum.pie3d;\n protected _arcMarkType: MarkTypeEnum = MarkTypeEnum.arc3d;\n protected _angle3d: number;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._angle3d = this._spec?.angle3d ?? -Math.PI / 3;\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n beta: () => this._angle3d,\n fill: this.getColorAttribute(),\n fillOpacity: this._theme?.pie?.style?.fillOpacity ?? 1,\n outerRadius: () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n const spec = this.getSpec();\n const params3d: {\n beta?: number;\n anchor3d?: (datum: Datum) => any;\n } = {};\n if (spec?.label?.support3d) {\n params3d.beta = -Math.PI / 3;\n params3d.anchor3d = (datum: Datum) => {\n const anchor = [\n (this._center?.x ?? this._region.getLayoutRect().width / 2) - field(DEFAULT_LABEL_X).bind(this)(datum),\n (this._center?.y ?? this._region.getLayoutRect().height / 2) - field(DEFAULT_LABEL_Y).bind(this)(datum)\n ];\n return anchor;\n };\n }\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this),\n ...params3d\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_RATIO,\n ARC_MIDDLE_ANGLE,\n ARC_RADIAN,\n ARC_QUADRANT,\n ARC_K,\n PREFIX,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n ARC_LABEL_POINT_BX,\n ARC_LABEL_POINT_BY,\n ARC_LABEL_POINT_CX,\n ARC_LABEL_POINT_CY,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent\n} from '../../constant';\nimport type { Maybe, IPoint, Datum, StateValueType } from '../../typings';\nimport {\n degrees,\n field,\n isNil,\n isSpecValueWithScale,\n normalizeStartEndAngle,\n polarToCartesian,\n radians\n} from '../../util';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\nimport type { IPieOpt } from '../../data/transforms/pie';\n// eslint-disable-next-line no-duplicate-imports\nimport { pie } from '../../data/transforms/pie';\n\nimport { arcLabel } from '../../layout/label/arc-label';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IArcLabelSpec, IPie3dSeriesSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar';\nimport { centerOffsetConfig } from './animation/centerOffset';\nimport { BaseSeries } from '../base/base-series';\n\ntype IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie]: { name: SeriesMarkNameEnum.pie, type: MarkTypeEnum.arc },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n protected _center!: IPoint | null;\n public get center(): IPoint {\n return {\n x: this._spec?.centerX ?? this._region.getLayoutRect().width / 2,\n y: this._spec?.centerY ?? this._region.getLayoutRect().height / 2\n };\n }\n protected _centerOffset!: number;\n\n protected _cornerRadius!: number;\n\n protected _startAngle: number = POLAR_START_RADIAN;\n protected _endAngle: number = POLAR_END_RADIAN;\n protected _padAngle!: number;\n\n protected _pieMark: IArcMark | null = null;\n protected _labelMark: ITextMark | null = null;\n protected _labelLineMark: IPathMark | null = null;\n\n protected declare _theme: Maybe<IPieSeriesTheme>;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._centerOffset = this._spec?.centerOffset ?? 0;\n this._cornerRadius = this._spec?.cornerRadius ?? 0;\n\n const normalized = normalizeStartEndAngle(\n isValid(this._spec?.startAngle) ? radians(this._spec.startAngle) : this._startAngle,\n isValid(this._spec?.endAngle) ? radians(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec?.padAngle) ? radians(this._spec.padAngle) : 0;\n\n // 值信息给角度,angleField 是为了兼容小组件用法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n if (this._spec.categoryField) {\n this.setSeriesField(this._spec.categoryField);\n }\n this._radiusField = [];\n }\n\n initData() {\n super.initData();\n\n const viewData = this.getViewData();\n if (!viewData) {\n return;\n }\n\n registerDataSetInstanceTransform(this._dataSet, 'pie', pie);\n registerDataSetInstanceTransform(this._dataSet, 'arcLabel', arcLabel);\n\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n asStartAngle: ARC_START_ANGLE,\n asEndAngle: ARC_END_ANGLE,\n asRatio: ARC_RATIO,\n asMiddleAngle: ARC_MIDDLE_ANGLE,\n asRadian: ARC_RADIAN,\n asQuadrant: ARC_QUADRANT,\n asK: ARC_K\n } as IPieOpt\n },\n false\n );\n\n const viewDataLabel = new DataView(this._dataSet);\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\n });\n viewDataLabel.name = `${PREFIX}_series_${this.id}_viewDataLabel`;\n viewDataLabel.transform(\n {\n type: 'arcLabel',\n options: { series: this }\n },\n false\n );\n\n this._viewDataLabel = new SeriesData(this._option, viewDataLabel);\n }\n\n initMark(): void {\n this._pieMark = this._createMark(\n {\n ...BasePieSeries.mark.pie,\n name: this._pieMarkName,\n type: this._pieMarkType\n },\n {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this._seriesField,\n key: this._seriesField,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true\n }\n ) as IArcMark;\n\n if (this._spec?.label?.visible) {\n const spec = this.getSpec();\n this._labelMark = this._createMark(BasePieSeries.mark.label, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label\n }\n }) as ITextMark;\n\n this._labelLineMark = this._createMark(BasePieSeries.mark.labelLine, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label?.line,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label?.line\n }\n }) as ITextMark;\n }\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n fill: this.getColorAttribute(),\n outerRadius: isSpecValueWithScale(this._outerRadius)\n ? this._outerRadius\n : () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: isSpecValueWithScale(this._innerRadius)\n ? this._innerRadius\n : () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this)\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this._trigger.setStateKeys([this._seriesField as string, ...this._radiusField]);\n }\n\n initEvent(): void {\n super.initEvent();\n this._viewDataLabel.getDataView()?.target.addListener('change', this.viewDataLabelUpdate.bind(this));\n }\n\n // 饼图不支持分组\n initGroups() {\n return;\n }\n\n /**\n * @override\n * @param ctx\n */\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this._viewDataLabel.getDataView().reRunAllTransform();\n this.onMarkPositionUpdate();\n super.onLayoutEnd(ctx);\n }\n\n getDimensionField(): string[] {\n return this._seriesField ? [this._seriesField] : [];\n }\n getMeasureField(): string[] {\n return this._angleField;\n }\n\n private viewDataLabelUpdate() {\n this.event.emit(ChartEvent.viewDataLabelUpdate, { model: this });\n this._viewDataLabel.updateData();\n }\n\n protected generateRadiusStyle(spec: any) {\n const style: any = {};\n spec?.outerRadius && (style.outerRadius = () => this.computeLayoutRadius() * spec?.outerRadius);\n spec?.innerRadius && (style.innerRadius = () => this.computeLayoutRadius() * spec?.innerRadius);\n spec?.cornerRadius && (style.cornerRadius = () => this.computeLayoutRadius() * spec?.cornerRadius);\n return style;\n }\n\n protected computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n computeCenter(datum: Datum): IPoint {\n return {\n x: this._pieMark.getAttribute('x', datum, 'normal') as number,\n y: this._pieMark.getAttribute('y', datum, 'normal') as number\n };\n }\n\n protected generateLinePath(state: StateValueType) {\n const key = state === 'normal' ? 'POINT' : state.toUpperCase();\n return {\n path: (datum: Datum) => {\n return (\n `M${Math.round(datum[`${PREFIX}_ARC_LABEL_${key}_AX`])},${Math.round(\n datum[`${PREFIX}_ARC_LABEL_${key}_AY`]\n )}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_BX])},${Math.round(datum[ARC_LABEL_POINT_BY])}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_CX])},${Math.round(datum[ARC_LABEL_POINT_CY])}`\n );\n }\n };\n }\n\n getRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.outerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.outerRadius;\n return styleRadius ?? this._outerRadius;\n }\n\n getInnerRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.innerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.innerRadius;\n return styleRadius ?? this._innerRadius;\n }\n\n getLabelConfig(): IArcLabelSpec {\n // TODO: 转换 series spec\n return {\n visible: true,\n position: 'outside',\n showRule: 'all',\n rotate: true,\n coverEnable: false,\n spaceWidth: 5,\n layoutArcGap: 6,\n ...this._spec.label,\n\n style: {\n visible: true,\n ...this._spec.label?.style\n },\n line: {\n visible: true,\n line1MinLength: this._spec.label?.line?.line1MinLength ?? 20,\n line2MinLength: this._spec.label?.line?.line2MinLength ?? 10,\n ...this._spec.label?.line\n },\n layout: {\n align: 'arc',\n strategy: 'priority',\n tangentConstraint: true,\n ...this._spec.label?.layout\n }\n };\n }\n\n computeRadius(r: number, k?: number): number {\n return this.computeLayoutRadius() * r * (isNil(k) ? 1 : k) + this._centerOffset;\n }\n\n computeDatumRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getRadius(state) + this._centerOffset;\n }\n\n updateSpec(spec: any) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const originalSpec = this._originalSpec;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.centerX !== centerX ||\n spec?.centerY !== centerY ||\n spec?.centerOffset !== centerOffset ||\n spec?.radius !== radius ||\n spec?.innerRadius !== innerRadius ||\n spec?.cornerRadius !== cornerRadius ||\n spec?.startAngle !== startAngle ||\n spec?.endAngle !== endAngle ||\n spec?.padAngle !== padAngle\n ) {\n result.reRender = true;\n result.change = true;\n }\n return result;\n }\n\n computeDatumInnerRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getInnerRadius(state) + this._centerOffset;\n }\n\n dataToPosition(datum: Datum): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius });\n return { x: center.x + delta.x, y: center.y + delta.y };\n }\n\n dataToCentralPosition = (datum: Datum): IPoint | null => {\n // 和 PieSeries.dataToPosition 实现不同,这里考虑了美观性,返回的位置是曲边梯形的中心\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const innerRadius = this.computeDatumInnerRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius: (radius + innerRadius) / 2 });\n return { x: center.x + delta.x, y: center.y + delta.y };\n };\n\n initAnimation() {\n const animationParams: IPieAnimationParams = {\n growFrom: (datum, element, state) => {\n if (state === AnimationStateEnum.appear) {\n return this._startAngle;\n }\n if (state === AnimationStateEnum.disappear) {\n return this._endAngle;\n }\n\n const outState = [AnimationStateEnum.disappear, AnimationStateEnum.exit];\n const markElements = element.mark.elements;\n\n const data = datum;\n const dataIndex = data?.[DEFAULT_DATA_INDEX];\n\n // 当前 mark 在上个状态是否处于第一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex) === undefined) {\n return this._startAngle;\n }\n // 当前 mark 在上个状态是否处于最后一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] > dataIndex) === undefined) {\n return this._endAngle;\n }\n\n // 扇形不在边缘时,获取扇形生长点:获取相邻状态下相邻扇形的边缘\n // @ts-ignore\n // TODO: findLast is a new prototype function, we will later polyfill it in v-util.\n const prevMarkElement = markElements.findLast(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n if (outState.includes(state)) {\n return prevMarkElement?.getGraphicItem().nextAttrs?.endAngle;\n }\n return prevMarkElement?.getGraphicItem().prevAttrs?.endAngle;\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.pie, this._spec)\n );\n\n if (pieAnimationConfig.normal && (pieAnimationConfig.normal as IAnimationTypeConfig).type) {\n pieAnimationConfig.normal = centerOffsetConfig(\n this._pieMark,\n pieAnimationConfig.normal as IAnimationTypeConfig\n );\n }\n\n this._pieMark.setAnimationConfig(pieAnimationConfig);\n }\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n\n if (this._labelLineMark) {\n this._labelLineMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.labelLine, this._spec))\n );\n }\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n\n setValueFieldToStack(): void {\n // do nothing\n }\n\n setValueFieldToPercent(): void {\n //do nothing\n }\n}\n\nexport class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n\nexport class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie3d;\n type = SeriesTypeEnum.pie3d;\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie3d;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc3d;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie3d]: { name: SeriesMarkNameEnum.pie3d, type: MarkTypeEnum.arc3d },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _angle3d: number;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._angle3d = this._spec?.angle3d ?? -Math.PI / 3;\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n beta: () => this._angle3d,\n fill: this.getColorAttribute(),\n outerRadius: () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n const spec = this.getSpec();\n const params3d: {\n beta?: number;\n anchor3d?: (datum: Datum) => any;\n } = {};\n if (spec?.label?.support3d) {\n params3d.beta = -Math.PI / 3;\n params3d.anchor3d = (datum: Datum) => {\n const anchor = [\n (this._center?.x ?? this._region.getLayoutRect().width / 2) - field(DEFAULT_LABEL_X).bind(this)(datum),\n (this._center?.y ?? this._region.getLayoutRect().height / 2) - field(DEFAULT_LABEL_Y).bind(this)(datum)\n ];\n return anchor;\n };\n }\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this),\n ...params3d\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal'),\n ...params3d,\n anchor3d: () => {\n return [\n this._center?.x ?? this._region.getLayoutRect().width / 2,\n this._center?.y ?? this._region.getLayoutRect().height / 2\n ];\n }\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n}\n"]}