@visactor/vchart 1.10.0-alpha.7 → 1.10.0-alpha.9

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 (433) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +520 -281
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base/base-chart-transformer.js +6 -8
  6. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  7. package/cjs/chart/base/base-chart.js +3 -5
  8. package/cjs/chart/base/base-chart.js.map +1 -1
  9. package/cjs/chart/base/util.d.ts +2 -2
  10. package/cjs/chart/base/util.js.map +1 -1
  11. package/cjs/chart/interface/chart.js.map +1 -1
  12. package/cjs/chart/interface/common.d.ts +1 -5
  13. package/cjs/chart/interface/common.js.map +1 -1
  14. package/cjs/chart/map/map-transformer.js.map +1 -1
  15. package/cjs/chart/sequence/interface.d.ts +2 -2
  16. package/cjs/chart/sequence/interface.js.map +1 -1
  17. package/cjs/chart/sequence/sequence-transformer.js.map +1 -1
  18. package/cjs/chart/stack.js +2 -1
  19. package/cjs/compile/compilable-base.js +1 -1
  20. package/cjs/compile/compilable-base.js.map +1 -1
  21. package/cjs/compile/compiler.d.ts +1 -0
  22. package/cjs/compile/compiler.js +11 -9
  23. package/cjs/compile/compiler.js.map +1 -1
  24. package/cjs/compile/grammar-item.js +1 -2
  25. package/cjs/component/axis/base-axis.js +2 -2
  26. package/cjs/component/axis/base-axis.js.map +1 -1
  27. package/cjs/component/axis/polar/axis.js.map +1 -1
  28. package/cjs/component/base/base-component.js +1 -1
  29. package/cjs/component/base/base-component.js.map +1 -1
  30. package/cjs/component/brush/brush.d.ts +8 -0
  31. package/cjs/component/brush/brush.js +64 -11
  32. package/cjs/component/brush/brush.js.map +1 -1
  33. package/cjs/component/brush/interface.d.ts +4 -0
  34. package/cjs/component/brush/interface.js.map +1 -1
  35. package/cjs/component/crosshair/base.js +1 -1
  36. package/cjs/component/crosshair/base.js.map +1 -1
  37. package/cjs/component/crosshair/cartesian.js +8 -4
  38. package/cjs/component/crosshair/cartesian.js.map +1 -1
  39. package/cjs/component/crosshair/polar.js +4 -2
  40. package/cjs/component/crosshair/polar.js.map +1 -1
  41. package/cjs/component/crosshair/utils/cartesian.d.ts +2 -0
  42. package/cjs/component/crosshair/utils/cartesian.js +4 -0
  43. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  44. package/cjs/component/custom-mark/custom-mark.d.ts +1 -0
  45. package/cjs/component/custom-mark/custom-mark.js +12 -1
  46. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  47. package/cjs/component/data-zoom/data-filter-base-component.d.ts +2 -2
  48. package/cjs/component/data-zoom/data-filter-base-component.js +12 -10
  49. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  50. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  51. package/cjs/component/data-zoom/data-zoom/data-zoom.js +12 -9
  52. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  53. package/cjs/component/data-zoom/data-zoom/interface.d.ts +1 -0
  54. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  55. package/cjs/component/data-zoom/interface.d.ts +2 -0
  56. package/cjs/component/data-zoom/interface.js.map +1 -1
  57. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +2 -1
  58. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  59. package/cjs/component/data-zoom/util.js +5 -1
  60. package/cjs/component/data-zoom/util.js.map +1 -1
  61. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  62. package/cjs/component/indicator/indicator.js.map +1 -1
  63. package/cjs/component/label/base-label.d.ts +2 -1
  64. package/cjs/component/label/base-label.js +3 -0
  65. package/cjs/component/label/base-label.js.map +1 -1
  66. package/cjs/component/label/label.d.ts +1 -2
  67. package/cjs/component/label/label.js +7 -10
  68. package/cjs/component/label/label.js.map +1 -1
  69. package/cjs/component/label/total-label.d.ts +1 -0
  70. package/cjs/component/label/total-label.js +9 -1
  71. package/cjs/component/label/total-label.js.map +1 -1
  72. package/cjs/component/tooltip/constant.d.ts +5 -0
  73. package/cjs/component/tooltip/constant.js +13 -0
  74. package/cjs/component/tooltip/constant.js.map +1 -0
  75. package/cjs/component/tooltip/index.d.ts +1 -0
  76. package/cjs/component/tooltip/index.js +1 -1
  77. package/cjs/component/tooltip/index.js.map +1 -1
  78. package/cjs/component/tooltip/interface/spec.d.ts +4 -3
  79. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  80. package/cjs/component/tooltip/tooltip-transformer.d.ts +2 -0
  81. package/cjs/component/tooltip/tooltip-transformer.js +14 -1
  82. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  83. package/cjs/component/tooltip/tooltip.d.ts +3 -3
  84. package/cjs/component/tooltip/tooltip.js +28 -48
  85. package/cjs/component/tooltip/tooltip.js.map +1 -1
  86. package/cjs/core/index.d.ts +1 -1
  87. package/cjs/core/index.js +1 -1
  88. package/cjs/core/index.js.map +1 -1
  89. package/cjs/core/vchart.d.ts +4 -1
  90. package/cjs/core/vchart.js +47 -49
  91. package/cjs/core/vchart.js.map +1 -1
  92. package/cjs/event/event-dispatcher.d.ts +1 -0
  93. package/cjs/event/event-dispatcher.js +4 -1
  94. package/cjs/event/event-dispatcher.js.map +1 -1
  95. package/cjs/event/event.js +1 -1
  96. package/cjs/event/event.js.map +1 -1
  97. package/cjs/event/interface.d.ts +2 -1
  98. package/cjs/event/interface.js.map +1 -1
  99. package/cjs/interaction/index.d.ts +1 -0
  100. package/cjs/interaction/index.js +50 -0
  101. package/cjs/interaction/index.js.map +1 -0
  102. package/cjs/interaction/interface.js +1 -1
  103. package/cjs/interaction/zoom/zoomable.js +4 -6
  104. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  105. package/cjs/model/interface.d.ts +3 -8
  106. package/cjs/model/interface.js.map +1 -1
  107. package/cjs/plugin/base/base-plugin-service.d.ts +2 -2
  108. package/cjs/plugin/base/base-plugin-service.js +5 -5
  109. package/cjs/plugin/base/base-plugin-service.js.map +1 -1
  110. package/cjs/plugin/base/base-plugin.d.ts +1 -0
  111. package/cjs/plugin/base/base-plugin.js +3 -0
  112. package/cjs/plugin/base/base-plugin.js.map +1 -1
  113. package/cjs/plugin/base/interface.d.ts +3 -3
  114. package/cjs/plugin/base/interface.js.map +1 -1
  115. package/cjs/plugin/chart/formatter/formatter.d.ts +2 -2
  116. package/cjs/plugin/chart/formatter/formatter.js +5 -7
  117. package/cjs/plugin/chart/formatter/formatter.js.map +1 -1
  118. package/cjs/plugin/chart/media-query/media-query.d.ts +1 -1
  119. package/cjs/plugin/chart/media-query/media-query.js +4 -4
  120. package/cjs/plugin/chart/media-query/media-query.js.map +1 -1
  121. package/cjs/plugin/chart/plugin-service.d.ts +1 -0
  122. package/cjs/plugin/chart/plugin-service.js +3 -0
  123. package/cjs/plugin/chart/plugin-service.js.map +1 -1
  124. package/cjs/plugin/components/plugin-service.d.ts +1 -0
  125. package/cjs/plugin/components/plugin-service.js +3 -0
  126. package/cjs/plugin/components/plugin-service.js.map +1 -1
  127. package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +3 -3
  128. package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
  129. package/cjs/plugin/components/tooltip-handler/constants.d.ts +0 -5
  130. package/cjs/plugin/components/tooltip-handler/constants.js +4 -9
  131. package/cjs/plugin/components/tooltip-handler/constants.js.map +1 -1
  132. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -3
  133. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  134. package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +1 -0
  135. package/cjs/region/interface.d.ts +2 -1
  136. package/cjs/region/interface.js.map +1 -1
  137. package/cjs/region/region.js +1 -1
  138. package/cjs/region/region.js.map +1 -1
  139. package/cjs/series/area/area-transformer.d.ts +1 -0
  140. package/cjs/series/area/area-transformer.js +3 -0
  141. package/cjs/series/area/area-transformer.js.map +1 -1
  142. package/cjs/series/area/area.d.ts +0 -1
  143. package/cjs/series/area/area.js +1 -1
  144. package/cjs/series/area/area.js.map +1 -1
  145. package/cjs/series/bar/bar-transformer.d.ts +1 -0
  146. package/cjs/series/bar/bar-transformer.js +3 -0
  147. package/cjs/series/bar/bar-transformer.js.map +1 -1
  148. package/cjs/series/bar/bar.d.ts +0 -1
  149. package/cjs/series/bar/bar.js +2 -2
  150. package/cjs/series/bar/bar.js.map +1 -1
  151. package/cjs/series/base/base-series-transformer.d.ts +5 -3
  152. package/cjs/series/base/base-series-transformer.js +9 -2
  153. package/cjs/series/base/base-series-transformer.js.map +1 -1
  154. package/cjs/series/base/base-series.d.ts +0 -4
  155. package/cjs/series/base/base-series.js +12 -17
  156. package/cjs/series/base/base-series.js.map +1 -1
  157. package/cjs/series/cartesian/cartesian.js +3 -3
  158. package/cjs/series/cartesian/cartesian.js.map +1 -1
  159. package/cjs/series/funnel/funnel.js +2 -1
  160. package/cjs/series/funnel/funnel.js.map +1 -1
  161. package/cjs/series/gauge/gauge-pointer-transformer.d.ts +5 -0
  162. package/cjs/series/gauge/gauge-pointer-transformer.js +16 -0
  163. package/cjs/series/gauge/gauge-pointer-transformer.js.map +1 -0
  164. package/cjs/series/gauge/gauge-pointer.d.ts +3 -1
  165. package/cjs/series/gauge/gauge-pointer.js +4 -4
  166. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  167. package/cjs/series/gauge/gauge-transformer.d.ts +1 -0
  168. package/cjs/series/gauge/gauge-transformer.js +3 -0
  169. package/cjs/series/gauge/gauge-transformer.js.map +1 -1
  170. package/cjs/series/gauge/gauge.d.ts +0 -1
  171. package/cjs/series/gauge/gauge.js +1 -1
  172. package/cjs/series/gauge/gauge.js.map +1 -1
  173. package/cjs/series/interface/common.d.ts +6 -2
  174. package/cjs/series/interface/common.js.map +1 -1
  175. package/cjs/series/map/geo-source.d.ts +1 -1
  176. package/cjs/series/map/geo-source.js.map +1 -1
  177. package/cjs/series/polar/progress-like/progress-like.d.ts +0 -1
  178. package/cjs/series/polar/progress-like/progress-like.js +5 -5
  179. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  180. package/cjs/series/polar/rose-like/rose-like.js +1 -1
  181. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  182. package/cjs/series/progress/circular/circular-transformer.d.ts +5 -0
  183. package/cjs/series/progress/circular/circular-transformer.js +16 -0
  184. package/cjs/series/progress/circular/circular-transformer.js.map +1 -0
  185. package/cjs/series/progress/circular/circular.d.ts +3 -0
  186. package/cjs/series/progress/circular/circular.js +6 -6
  187. package/cjs/series/progress/circular/circular.js.map +1 -1
  188. package/cjs/series/radar/radar.js +2 -2
  189. package/cjs/series/radar/radar.js.map +1 -1
  190. package/cjs/series/range-column/range-column-transformer.d.ts +1 -0
  191. package/cjs/series/range-column/range-column-transformer.js +3 -0
  192. package/cjs/series/range-column/range-column-transformer.js.map +1 -1
  193. package/cjs/series/range-column/range-column.d.ts +0 -1
  194. package/cjs/series/range-column/range-column.js +1 -2
  195. package/cjs/series/range-column/range-column.js.map +1 -1
  196. package/cjs/series/rose/rose-transformer.d.ts +1 -0
  197. package/cjs/series/rose/rose-transformer.js +3 -0
  198. package/cjs/series/rose/rose-transformer.js.map +1 -1
  199. package/cjs/series/rose/rose.d.ts +0 -1
  200. package/cjs/series/rose/rose.js +2 -2
  201. package/cjs/series/rose/rose.js.map +1 -1
  202. package/cjs/series/waterfall/waterfall-transformer.d.ts +1 -0
  203. package/cjs/series/waterfall/waterfall-transformer.js +3 -0
  204. package/cjs/series/waterfall/waterfall-transformer.js.map +1 -1
  205. package/cjs/series/waterfall/waterfall.d.ts +0 -1
  206. package/cjs/series/waterfall/waterfall.js +1 -1
  207. package/cjs/series/waterfall/waterfall.js.map +1 -1
  208. package/cjs/theme/index.d.ts +1 -0
  209. package/cjs/theme/index.js +2 -1
  210. package/cjs/theme/index.js.map +1 -1
  211. package/cjs/typings/spec/common.d.ts +2 -2
  212. package/cjs/typings/spec/common.js.map +1 -1
  213. package/cjs/typings/spec/index.d.ts +1 -1
  214. package/cjs/typings/spec/index.js.map +1 -1
  215. package/cjs/vchart-all.js +2 -2
  216. package/cjs/vchart-all.js.map +1 -1
  217. package/cjs/vchart-simple.js +2 -2
  218. package/cjs/vchart-simple.js.map +1 -1
  219. package/esm/chart/base/base-chart-transformer.js +6 -8
  220. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  221. package/esm/chart/base/base-chart.js +3 -5
  222. package/esm/chart/base/base-chart.js.map +1 -1
  223. package/esm/chart/base/util.d.ts +2 -2
  224. package/esm/chart/base/util.js.map +1 -1
  225. package/esm/chart/interface/chart.js.map +1 -1
  226. package/esm/chart/interface/common.d.ts +1 -5
  227. package/esm/chart/interface/common.js.map +1 -1
  228. package/esm/chart/map/map-transformer.js.map +1 -1
  229. package/esm/chart/sequence/interface.d.ts +2 -2
  230. package/esm/chart/sequence/interface.js.map +1 -1
  231. package/esm/chart/sequence/sequence-transformer.js.map +1 -1
  232. package/esm/chart/stack.js +2 -1
  233. package/esm/compile/compilable-base.js +1 -1
  234. package/esm/compile/compilable-base.js.map +1 -1
  235. package/esm/compile/compiler.d.ts +1 -0
  236. package/esm/compile/compiler.js +11 -9
  237. package/esm/compile/compiler.js.map +1 -1
  238. package/esm/compile/grammar-item.js +1 -2
  239. package/esm/component/axis/base-axis.js +2 -2
  240. package/esm/component/axis/base-axis.js.map +1 -1
  241. package/esm/component/axis/polar/axis.js.map +1 -1
  242. package/esm/component/base/base-component.js +1 -1
  243. package/esm/component/base/base-component.js.map +1 -1
  244. package/esm/component/brush/brush.d.ts +8 -0
  245. package/esm/component/brush/brush.js +64 -11
  246. package/esm/component/brush/brush.js.map +1 -1
  247. package/esm/component/brush/interface.d.ts +4 -0
  248. package/esm/component/brush/interface.js.map +1 -1
  249. package/esm/component/crosshair/base.js +1 -1
  250. package/esm/component/crosshair/base.js.map +1 -1
  251. package/esm/component/crosshair/cartesian.js +8 -4
  252. package/esm/component/crosshair/cartesian.js.map +1 -1
  253. package/esm/component/crosshair/polar.js +4 -2
  254. package/esm/component/crosshair/polar.js.map +1 -1
  255. package/esm/component/crosshair/utils/cartesian.d.ts +2 -0
  256. package/esm/component/crosshair/utils/cartesian.js +4 -0
  257. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  258. package/esm/component/custom-mark/custom-mark.d.ts +1 -0
  259. package/esm/component/custom-mark/custom-mark.js +13 -0
  260. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  261. package/esm/component/data-zoom/data-filter-base-component.d.ts +2 -2
  262. package/esm/component/data-zoom/data-filter-base-component.js +12 -10
  263. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  264. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  265. package/esm/component/data-zoom/data-zoom/data-zoom.js +13 -10
  266. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  267. package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -0
  268. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  269. package/esm/component/data-zoom/interface.d.ts +2 -0
  270. package/esm/component/data-zoom/interface.js.map +1 -1
  271. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +3 -2
  272. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  273. package/esm/component/data-zoom/util.js +5 -1
  274. package/esm/component/data-zoom/util.js.map +1 -1
  275. package/esm/component/geo/geo-coordinate.js.map +1 -1
  276. package/esm/component/indicator/indicator.js.map +1 -1
  277. package/esm/component/label/base-label.d.ts +2 -1
  278. package/esm/component/label/base-label.js +3 -0
  279. package/esm/component/label/base-label.js.map +1 -1
  280. package/esm/component/label/label.d.ts +1 -2
  281. package/esm/component/label/label.js +8 -9
  282. package/esm/component/label/label.js.map +1 -1
  283. package/esm/component/label/total-label.d.ts +1 -0
  284. package/esm/component/label/total-label.js +10 -0
  285. package/esm/component/label/total-label.js.map +1 -1
  286. package/esm/component/tooltip/constant.d.ts +5 -0
  287. package/esm/component/tooltip/constant.js +8 -0
  288. package/esm/component/tooltip/constant.js.map +1 -0
  289. package/esm/component/tooltip/index.d.ts +1 -0
  290. package/esm/component/tooltip/index.js +2 -0
  291. package/esm/component/tooltip/index.js.map +1 -1
  292. package/esm/component/tooltip/interface/spec.d.ts +4 -3
  293. package/esm/component/tooltip/interface/spec.js.map +1 -1
  294. package/esm/component/tooltip/tooltip-transformer.d.ts +2 -0
  295. package/esm/component/tooltip/tooltip-transformer.js +16 -1
  296. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  297. package/esm/component/tooltip/tooltip.d.ts +3 -3
  298. package/esm/component/tooltip/tooltip.js +29 -45
  299. package/esm/component/tooltip/tooltip.js.map +1 -1
  300. package/esm/core/index.d.ts +1 -1
  301. package/esm/core/index.js +1 -1
  302. package/esm/core/index.js.map +1 -1
  303. package/esm/core/vchart.d.ts +4 -1
  304. package/esm/core/vchart.js +50 -49
  305. package/esm/core/vchart.js.map +1 -1
  306. package/esm/event/event-dispatcher.d.ts +1 -0
  307. package/esm/event/event-dispatcher.js +4 -1
  308. package/esm/event/event-dispatcher.js.map +1 -1
  309. package/esm/event/event.js +1 -1
  310. package/esm/event/event.js.map +1 -1
  311. package/esm/event/interface.d.ts +2 -1
  312. package/esm/event/interface.js.map +1 -1
  313. package/esm/interaction/index.d.ts +1 -0
  314. package/esm/interaction/index.js +2 -0
  315. package/esm/interaction/index.js.map +1 -0
  316. package/esm/interaction/interface.js +1 -1
  317. package/esm/interaction/zoom/zoomable.js +4 -6
  318. package/esm/interaction/zoom/zoomable.js.map +1 -1
  319. package/esm/model/interface.d.ts +3 -8
  320. package/esm/model/interface.js.map +1 -1
  321. package/esm/plugin/base/base-plugin-service.d.ts +2 -2
  322. package/esm/plugin/base/base-plugin-service.js +5 -5
  323. package/esm/plugin/base/base-plugin-service.js.map +1 -1
  324. package/esm/plugin/base/base-plugin.d.ts +1 -0
  325. package/esm/plugin/base/base-plugin.js +3 -0
  326. package/esm/plugin/base/base-plugin.js.map +1 -1
  327. package/esm/plugin/base/interface.d.ts +3 -3
  328. package/esm/plugin/base/interface.js.map +1 -1
  329. package/esm/plugin/chart/formatter/formatter.d.ts +2 -2
  330. package/esm/plugin/chart/formatter/formatter.js +5 -7
  331. package/esm/plugin/chart/formatter/formatter.js.map +1 -1
  332. package/esm/plugin/chart/media-query/media-query.d.ts +1 -1
  333. package/esm/plugin/chart/media-query/media-query.js +4 -4
  334. package/esm/plugin/chart/media-query/media-query.js.map +1 -1
  335. package/esm/plugin/chart/plugin-service.d.ts +1 -0
  336. package/esm/plugin/chart/plugin-service.js +3 -0
  337. package/esm/plugin/chart/plugin-service.js.map +1 -1
  338. package/esm/plugin/components/plugin-service.d.ts +1 -0
  339. package/esm/plugin/components/plugin-service.js +3 -0
  340. package/esm/plugin/components/plugin-service.js.map +1 -1
  341. package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +2 -2
  342. package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
  343. package/esm/plugin/components/tooltip-handler/constants.d.ts +0 -5
  344. package/esm/plugin/components/tooltip-handler/constants.js +0 -8
  345. package/esm/plugin/components/tooltip-handler/constants.js.map +1 -1
  346. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -1
  347. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  348. package/esm/plugin/components/tooltip-handler/utils/position.d.ts +1 -0
  349. package/esm/region/interface.d.ts +2 -1
  350. package/esm/region/interface.js.map +1 -1
  351. package/esm/region/region.js +1 -1
  352. package/esm/region/region.js.map +1 -1
  353. package/esm/series/area/area-transformer.d.ts +1 -0
  354. package/esm/series/area/area-transformer.js +3 -0
  355. package/esm/series/area/area-transformer.js.map +1 -1
  356. package/esm/series/area/area.d.ts +0 -1
  357. package/esm/series/area/area.js +1 -1
  358. package/esm/series/area/area.js.map +1 -1
  359. package/esm/series/bar/bar-transformer.d.ts +1 -0
  360. package/esm/series/bar/bar-transformer.js +3 -0
  361. package/esm/series/bar/bar-transformer.js.map +1 -1
  362. package/esm/series/bar/bar.d.ts +0 -1
  363. package/esm/series/bar/bar.js +2 -2
  364. package/esm/series/bar/bar.js.map +1 -1
  365. package/esm/series/base/base-series-transformer.d.ts +5 -3
  366. package/esm/series/base/base-series-transformer.js +10 -3
  367. package/esm/series/base/base-series-transformer.js.map +1 -1
  368. package/esm/series/base/base-series.d.ts +0 -4
  369. package/esm/series/base/base-series.js +11 -15
  370. package/esm/series/base/base-series.js.map +1 -1
  371. package/esm/series/cartesian/cartesian.js +3 -2
  372. package/esm/series/cartesian/cartesian.js.map +1 -1
  373. package/esm/series/funnel/funnel.js +2 -1
  374. package/esm/series/funnel/funnel.js.map +1 -1
  375. package/esm/series/gauge/gauge-pointer-transformer.d.ts +5 -0
  376. package/esm/series/gauge/gauge-pointer-transformer.js +8 -0
  377. package/esm/series/gauge/gauge-pointer-transformer.js.map +1 -0
  378. package/esm/series/gauge/gauge-pointer.d.ts +3 -1
  379. package/esm/series/gauge/gauge-pointer.js +6 -3
  380. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  381. package/esm/series/gauge/gauge-transformer.d.ts +1 -0
  382. package/esm/series/gauge/gauge-transformer.js +3 -0
  383. package/esm/series/gauge/gauge-transformer.js.map +1 -1
  384. package/esm/series/gauge/gauge.d.ts +0 -1
  385. package/esm/series/gauge/gauge.js +1 -1
  386. package/esm/series/gauge/gauge.js.map +1 -1
  387. package/esm/series/interface/common.d.ts +6 -2
  388. package/esm/series/interface/common.js.map +1 -1
  389. package/esm/series/map/geo-source.d.ts +1 -1
  390. package/esm/series/map/geo-source.js.map +1 -1
  391. package/esm/series/polar/progress-like/progress-like.d.ts +0 -1
  392. package/esm/series/polar/progress-like/progress-like.js +5 -5
  393. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  394. package/esm/series/polar/rose-like/rose-like.js +1 -1
  395. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  396. package/esm/series/progress/circular/circular-transformer.d.ts +5 -0
  397. package/esm/series/progress/circular/circular-transformer.js +8 -0
  398. package/esm/series/progress/circular/circular-transformer.js.map +1 -0
  399. package/esm/series/progress/circular/circular.d.ts +3 -0
  400. package/esm/series/progress/circular/circular.js +8 -5
  401. package/esm/series/progress/circular/circular.js.map +1 -1
  402. package/esm/series/radar/radar.js +2 -2
  403. package/esm/series/radar/radar.js.map +1 -1
  404. package/esm/series/range-column/range-column-transformer.d.ts +1 -0
  405. package/esm/series/range-column/range-column-transformer.js +3 -0
  406. package/esm/series/range-column/range-column-transformer.js.map +1 -1
  407. package/esm/series/range-column/range-column.d.ts +0 -1
  408. package/esm/series/range-column/range-column.js +1 -2
  409. package/esm/series/range-column/range-column.js.map +1 -1
  410. package/esm/series/rose/rose-transformer.d.ts +1 -0
  411. package/esm/series/rose/rose-transformer.js +3 -0
  412. package/esm/series/rose/rose-transformer.js.map +1 -1
  413. package/esm/series/rose/rose.d.ts +0 -1
  414. package/esm/series/rose/rose.js +2 -2
  415. package/esm/series/rose/rose.js.map +1 -1
  416. package/esm/series/waterfall/waterfall-transformer.d.ts +1 -0
  417. package/esm/series/waterfall/waterfall-transformer.js +3 -0
  418. package/esm/series/waterfall/waterfall-transformer.js.map +1 -1
  419. package/esm/series/waterfall/waterfall.d.ts +0 -1
  420. package/esm/series/waterfall/waterfall.js +1 -1
  421. package/esm/series/waterfall/waterfall.js.map +1 -1
  422. package/esm/theme/index.d.ts +1 -0
  423. package/esm/theme/index.js +2 -0
  424. package/esm/theme/index.js.map +1 -1
  425. package/esm/typings/spec/common.d.ts +2 -2
  426. package/esm/typings/spec/common.js.map +1 -1
  427. package/esm/typings/spec/index.d.ts +1 -1
  428. package/esm/typings/spec/index.js.map +1 -1
  429. package/esm/vchart-all.js +2 -2
  430. package/esm/vchart-all.js.map +1 -1
  431. package/esm/vchart-simple.js +1 -3
  432. package/esm/vchart-simple.js.map +1 -1
  433. package/package.json +13 -13
@@ -1,5 +1,6 @@
1
1
  import { BaseSeriesSpecTransformer } from '../base';
2
2
  import type { IGaugeSeriesSpec, IGaugeSeriesTheme } from './interface';
3
3
  export declare class GaugeSeriesSpecTransformer<T extends IGaugeSeriesSpec = IGaugeSeriesSpec, K extends IGaugeSeriesTheme = IGaugeSeriesTheme> extends BaseSeriesSpecTransformer<T, K> {
4
+ protected _supportStack: boolean;
4
5
  protected _transformLabelSpec(spec: T): void;
5
6
  }
@@ -1,6 +1,9 @@
1
1
  import { BaseSeriesSpecTransformer } from "../base";
2
2
 
3
3
  export class GaugeSeriesSpecTransformer extends BaseSeriesSpecTransformer {
4
+ constructor() {
5
+ super(...arguments), this._supportStack = !1;
6
+ }
4
7
  _transformLabelSpec(spec) {
5
8
  this._addMarkLabelSpec(spec, "segment");
6
9
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/gauge/gauge-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIpD,MAAM,OAAO,0BAGX,SAAQ,yBAA+B;IAC7B,mBAAmB,CAAC,IAAO;QACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,YAA6B,CAAC;IAC3D,CAAC;CACF","file":"gauge-transformer.js","sourcesContent":["import { BaseSeriesSpecTransformer } from '../base';\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { IGaugeSeriesSpec, IGaugeSeriesTheme } from './interface';\n\nexport class GaugeSeriesSpecTransformer<\n T extends IGaugeSeriesSpec = IGaugeSeriesSpec,\n K extends IGaugeSeriesTheme = IGaugeSeriesTheme\n> extends BaseSeriesSpecTransformer<T, K> {\n protected _transformLabelSpec(spec: T): void {\n this._addMarkLabelSpec(spec, SeriesMarkNameEnum.segment);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/gauge/gauge-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIpD,MAAM,OAAO,0BAGX,SAAQ,yBAA+B;IAHzC;;QAIY,kBAAa,GAAY,KAAK,CAAC;IAK3C,CAAC;IAHW,mBAAmB,CAAC,IAAO;QACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,YAA6B,CAAC;IAC3D,CAAC;CACF","file":"gauge-transformer.js","sourcesContent":["import { BaseSeriesSpecTransformer } from '../base';\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { IGaugeSeriesSpec, IGaugeSeriesTheme } from './interface';\n\nexport class GaugeSeriesSpecTransformer<\n T extends IGaugeSeriesSpec = IGaugeSeriesSpec,\n K extends IGaugeSeriesTheme = IGaugeSeriesTheme\n> extends BaseSeriesSpecTransformer<T, K> {\n protected _supportStack: boolean = false;\n\n protected _transformLabelSpec(spec: T): void {\n this._addMarkLabelSpec(spec, SeriesMarkNameEnum.segment);\n }\n}\n"]}
@@ -13,7 +13,6 @@ export declare class GaugeSeries<T extends IGaugeSeriesSpec = IGaugeSeriesSpec>
13
13
  readonly transformerConstructor: typeof GaugeSeriesSpecTransformer;
14
14
  private _segmentMark;
15
15
  private _trackMark;
16
- protected _stack: boolean;
17
16
  protected _padAngle: number;
18
17
  setAttrFromSpec(): void;
19
18
  initData(): void;
@@ -23,7 +23,7 @@ import { registerArcMark } from "../../mark/arc";
23
23
  export class GaugeSeries extends ProgressLikeSeries {
24
24
  constructor() {
25
25
  super(...arguments), this.type = SeriesTypeEnum.gauge, this.transformerConstructor = GaugeSeriesSpecTransformer,
26
- this._segmentMark = null, this._trackMark = null, this._stack = !1, this._padAngle = 0;
26
+ this._segmentMark = null, this._trackMark = null, this._padAngle = 0;
27
27
  }
28
28
  setAttrFromSpec() {
29
29
  var _a;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/gauge/gauge.ts"],"names":[],"mappings":"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","file":"gauge.js","sourcesContent":["import type { SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport type { IGaugeSeriesSpec } from './interface';\nimport { ProgressLikeSeries } from '../polar/progress-like/progress-like';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { SEGMENT_FIELD_END, SEGMENT_FIELD_START } from '../../constant';\nimport type { Datum } from '@visactor/vgrammar-core';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { gaugeSeriesMark } from './constant';\nimport { degreeToRadian, isValid } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { registerProgressLikeAnimation } from '../polar/progress-like';\nimport type { IMark } from '../../mark/interface';\nimport { GaugeSeriesSpecTransformer } from './gauge-transformer';\nimport { registerArcMark, type IArcMark } from '../../mark/arc';\n\nexport class GaugeSeries<T extends IGaugeSeriesSpec = IGaugeSeriesSpec> extends ProgressLikeSeries<T> {\n static readonly type: string = SeriesTypeEnum.gauge;\n type = SeriesTypeEnum.gauge;\n\n static readonly mark: SeriesMarkMap = gaugeSeriesMark;\n static readonly transformerConstructor = GaugeSeriesSpecTransformer as any;\n readonly transformerConstructor = GaugeSeriesSpecTransformer;\n\n private _segmentMark: IArcMark | null = null;\n private _trackMark: IArcMark | null = null;\n\n protected _stack: boolean = false;\n protected _padAngle: number = 0;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._padAngle = degreeToRadian(this._spec.padAngle ?? 0);\n }\n\n initData(): void {\n super.initData();\n\n /**\n * @description 将数据排序并调整图元的起始点为上一个数据的终点,但是终点维持不变\n */\n const spiltSegment = (data: Datum[], op: string) => {\n // 数据处理\n const dataCollect = data.slice();\n dataCollect.sort((a, b) => a[this._angleField[0]] - b[this._angleField[0]]);\n dataCollect.forEach((datum: any, i) => {\n datum[SEGMENT_FIELD_END] = datum[this._angleField[0]];\n if (i > 0) {\n datum[SEGMENT_FIELD_START] = dataCollect[i - 1][SEGMENT_FIELD_END];\n } else {\n datum[SEGMENT_FIELD_START] = undefined;\n }\n });\n return dataCollect;\n };\n\n registerDataSetInstanceTransform(this._option.dataSet, 'spiltSegment', spiltSegment);\n this.getViewData()?.transform(\n {\n type: 'spiltSegment'\n },\n false\n );\n }\n\n initMark(): void {\n super.initMark();\n this._trackMark = this._createMark(GaugeSeries.mark.track, {\n parent: this._arcGroupMark,\n dataView: false\n }) as IArcMark;\n this._segmentMark = this._createMark(GaugeSeries.mark.segment, {\n parent: this._arcGroupMark,\n isSeriesMark: true\n }) as IArcMark;\n }\n\n initMarkStyle(): void {\n super.initMarkStyle();\n this.initTrackMarkStyle();\n this.initSegmentMarkStyle();\n }\n\n private initSegmentMarkStyle() {\n const segmentMark = this._segmentMark;\n if (segmentMark) {\n this.setMarkStyle(segmentMark, {\n x: () => this.angleAxisHelper.center().x,\n y: () => this.angleAxisHelper.center().y,\n startAngle: this._getAngleValueStart.bind(this),\n endAngle: this._getAngleValueEnd.bind(this),\n innerRadius: () => this._computeLayoutRadius() * (this._spec.innerRadius ?? 0),\n outerRadius: () => this._computeLayoutRadius() * (this._spec.radius ?? this._spec.outerRadius ?? 1), // 需要优先兼容this._spec.radius\n cap: this._spec.roundCap ?? false,\n boundsMode: 'imprecise',\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute(),\n zIndex: 200,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // forceShowCap 是内部属性,不在接口中暴露\n forceShowCap: true\n });\n }\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._segmentMark && this._tooltipHelper.activeTriggerSet.mark.add(this._segmentMark);\n }\n\n private initTrackMarkStyle() {\n const trackMark = this._trackMark;\n if (trackMark) {\n this.setMarkStyle(trackMark, {\n x: () => this.angleAxisHelper.center().x,\n y: () => this.angleAxisHelper.center().y,\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n innerRadius: () => this._computeLayoutRadius() * (this._spec.innerRadius ?? 0),\n outerRadius: () => this._computeLayoutRadius() * (this._spec.radius ?? this._spec.outerRadius ?? 1), // 需要优先兼容this._spec.radius\n cap: this._spec.roundCap ?? false,\n boundsMode: 'imprecise',\n cornerRadius: this._spec.cornerRadius,\n zIndex: 100\n });\n }\n }\n\n protected _getAngleValueStartWithoutMask(datum: Datum) {\n const startAngle = this._getAngleValueStartWithoutPadAngle(datum);\n const endAngle = this._getAngleValueEndWithoutPadAngle(datum);\n return Math.min(startAngle + this._padAngle / 2, (startAngle + endAngle) / 2);\n }\n\n protected _getAngleValueEndWithoutMask(datum: Datum) {\n const startAngle = this._getAngleValueStartWithoutPadAngle(datum);\n const endAngle = this._getAngleValueEndWithoutPadAngle(datum);\n return Math.max(endAngle - this._padAngle / 2, (startAngle + endAngle) / 2);\n }\n\n protected _getAngleValueStartWithoutPadAngle(datum: Datum) {\n return isValid(datum[SEGMENT_FIELD_START])\n ? this.angleAxisHelper.dataToPosition([datum[SEGMENT_FIELD_START]])\n : this._startAngle;\n }\n\n protected _getAngleValueEndWithoutPadAngle(datum: Datum) {\n return this.angleAxisHelper.dataToPosition([datum[SEGMENT_FIELD_END]]);\n }\n\n initAnimation() {\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<any>)?.preset;\n\n this._segmentMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('circularProgress')?.(\n {\n startAngle: this._startAngle\n },\n appearPreset\n ),\n userAnimationConfig(SeriesMarkNameEnum.segment, this._spec, this._markAttributeContext)\n )\n );\n }\n\n getDefaultShapeType() {\n return 'circle';\n }\n\n getActiveMarks(): IMark[] {\n return [];\n }\n}\n\nexport const registerGaugeSeries = () => {\n registerArcMark();\n registerProgressLikeAnimation();\n Factory.registerSeries(GaugeSeries.type, GaugeSeries);\n};\n"]}
1
+ {"version":3,"sources":["../src/series/gauge/gauge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAiB,MAAM,gBAAgB,CAAC;AAEhE,MAAM,OAAO,WAA2D,SAAQ,kBAAqB;IAArG;;QAEE,SAAI,GAAG,cAAc,CAAC,KAAK,CAAC;QAInB,2BAAsB,GAAG,0BAA0B,CAAC;QAErD,iBAAY,GAAoB,IAAI,CAAC;QACrC,eAAU,GAAoB,IAAI,CAAC;QAEjC,cAAS,GAAW,CAAC,CAAC;IAmJlC,CAAC;IAjJC,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,mCAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,QAAQ;;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QAKjB,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAU,EAAE,EAAE;YAEjD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,WAAW,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,CAAC,EAAE,EAAE;gBACpC,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,GAAG,CAAC,EAAE;oBACT,KAAK,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;iBACpE;qBAAM;oBACL,KAAK,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEF,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QACrF,MAAA,IAAI,CAAC,WAAW,EAAE,0CAAE,SAAS,CAC3B;YACE,IAAI,EAAE,cAAc;SACrB,EACD,KAAK,CACN,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;YACzD,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,QAAQ,EAAE,KAAK;SAChB,CAAa,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7D,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,YAAY,EAAE,IAAI;SACnB,CAAa,CAAC;IACjB,CAAC;IAED,aAAa;QACX,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,oBAAoB;;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;gBAC7B,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC/C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3C,WAAW,EAAE,GAAG,EAAE,WAAC,OAAA,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAA,EAAA;gBAC9E,WAAW,EAAE,GAAG,EAAE,eAAC,OAAA,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,mCAAI,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAA,EAAA;gBACnG,GAAG,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,mCAAI,KAAK;gBACjC,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;gBACrC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,MAAM,EAAE,GAAG;gBAIX,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;SACJ;IACH,CAAC;IAES,WAAW;QACnB,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxF,CAAC;IAEO,kBAAkB;;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC3B,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,WAAW,EAAE,GAAG,EAAE,WAAC,OAAA,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAA,EAAA;gBAC9E,WAAW,EAAE,GAAG,EAAE,eAAC,OAAA,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,mCAAI,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAA,EAAA;gBACnG,GAAG,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,mCAAI,KAAK;gBACjC,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;gBACrC,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;SACJ;IACH,CAAC;IAES,8BAA8B,CAAC,KAAY;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;IAES,4BAA4B,CAAC,KAAY;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAES,kCAAkC,CAAC,KAAY;QACvD,OAAO,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACvB,CAAC;IAES,gCAAgC,CAAC,KAAY;QACrD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,aAAa;;QACX,MAAM,YAAY,GAAG,MAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,eAA0C,0CAAE,MAAM,CAAC;QAErF,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAClC,eAAe,CACb,MAAA,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,0CAC3C;YACE,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B,EACD,YAAY,CACb,EACD,mBAAmB,YAA6B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,CACxF,CACF,CAAC;IACJ,CAAC;IAED,mBAAmB;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;;AA5Je,gBAAI,GAAW,cAAc,CAAC,KAAK,CAAC;AAGpC,gBAAI,GAAkB,eAAe,CAAC;AACtC,kCAAsB,GAAG,0BAAiC,CAAC;AA2J7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,eAAe,EAAE,CAAC;IAClB,6BAA6B,EAAE,CAAC;IAChC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC,CAAC","file":"gauge.js","sourcesContent":["import type { SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport type { IGaugeSeriesSpec } from './interface';\nimport { ProgressLikeSeries } from '../polar/progress-like/progress-like';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { SEGMENT_FIELD_END, SEGMENT_FIELD_START } from '../../constant';\nimport type { Datum } from '@visactor/vgrammar-core';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { gaugeSeriesMark } from './constant';\nimport { degreeToRadian, isValid } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { registerProgressLikeAnimation } from '../polar/progress-like';\nimport type { IMark } from '../../mark/interface';\nimport { GaugeSeriesSpecTransformer } from './gauge-transformer';\nimport { registerArcMark, type IArcMark } from '../../mark/arc';\n\nexport class GaugeSeries<T extends IGaugeSeriesSpec = IGaugeSeriesSpec> extends ProgressLikeSeries<T> {\n static readonly type: string = SeriesTypeEnum.gauge;\n type = SeriesTypeEnum.gauge;\n\n static readonly mark: SeriesMarkMap = gaugeSeriesMark;\n static readonly transformerConstructor = GaugeSeriesSpecTransformer as any;\n readonly transformerConstructor = GaugeSeriesSpecTransformer;\n\n private _segmentMark: IArcMark | null = null;\n private _trackMark: IArcMark | null = null;\n\n protected _padAngle: number = 0;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._padAngle = degreeToRadian(this._spec.padAngle ?? 0);\n }\n\n initData(): void {\n super.initData();\n\n /**\n * @description 将数据排序并调整图元的起始点为上一个数据的终点,但是终点维持不变\n */\n const spiltSegment = (data: Datum[], op: string) => {\n // 数据处理\n const dataCollect = data.slice();\n dataCollect.sort((a, b) => a[this._angleField[0]] - b[this._angleField[0]]);\n dataCollect.forEach((datum: any, i) => {\n datum[SEGMENT_FIELD_END] = datum[this._angleField[0]];\n if (i > 0) {\n datum[SEGMENT_FIELD_START] = dataCollect[i - 1][SEGMENT_FIELD_END];\n } else {\n datum[SEGMENT_FIELD_START] = undefined;\n }\n });\n return dataCollect;\n };\n\n registerDataSetInstanceTransform(this._option.dataSet, 'spiltSegment', spiltSegment);\n this.getViewData()?.transform(\n {\n type: 'spiltSegment'\n },\n false\n );\n }\n\n initMark(): void {\n super.initMark();\n this._trackMark = this._createMark(GaugeSeries.mark.track, {\n parent: this._arcGroupMark,\n dataView: false\n }) as IArcMark;\n this._segmentMark = this._createMark(GaugeSeries.mark.segment, {\n parent: this._arcGroupMark,\n isSeriesMark: true\n }) as IArcMark;\n }\n\n initMarkStyle(): void {\n super.initMarkStyle();\n this.initTrackMarkStyle();\n this.initSegmentMarkStyle();\n }\n\n private initSegmentMarkStyle() {\n const segmentMark = this._segmentMark;\n if (segmentMark) {\n this.setMarkStyle(segmentMark, {\n x: () => this.angleAxisHelper.center().x,\n y: () => this.angleAxisHelper.center().y,\n startAngle: this._getAngleValueStart.bind(this),\n endAngle: this._getAngleValueEnd.bind(this),\n innerRadius: () => this._computeLayoutRadius() * (this._spec.innerRadius ?? 0),\n outerRadius: () => this._computeLayoutRadius() * (this._spec.radius ?? this._spec.outerRadius ?? 1), // 需要优先兼容this._spec.radius\n cap: this._spec.roundCap ?? false,\n boundsMode: 'imprecise',\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute(),\n zIndex: 200,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // forceShowCap 是内部属性,不在接口中暴露\n forceShowCap: true\n });\n }\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._segmentMark && this._tooltipHelper.activeTriggerSet.mark.add(this._segmentMark);\n }\n\n private initTrackMarkStyle() {\n const trackMark = this._trackMark;\n if (trackMark) {\n this.setMarkStyle(trackMark, {\n x: () => this.angleAxisHelper.center().x,\n y: () => this.angleAxisHelper.center().y,\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n innerRadius: () => this._computeLayoutRadius() * (this._spec.innerRadius ?? 0),\n outerRadius: () => this._computeLayoutRadius() * (this._spec.radius ?? this._spec.outerRadius ?? 1), // 需要优先兼容this._spec.radius\n cap: this._spec.roundCap ?? false,\n boundsMode: 'imprecise',\n cornerRadius: this._spec.cornerRadius,\n zIndex: 100\n });\n }\n }\n\n protected _getAngleValueStartWithoutMask(datum: Datum) {\n const startAngle = this._getAngleValueStartWithoutPadAngle(datum);\n const endAngle = this._getAngleValueEndWithoutPadAngle(datum);\n return Math.min(startAngle + this._padAngle / 2, (startAngle + endAngle) / 2);\n }\n\n protected _getAngleValueEndWithoutMask(datum: Datum) {\n const startAngle = this._getAngleValueStartWithoutPadAngle(datum);\n const endAngle = this._getAngleValueEndWithoutPadAngle(datum);\n return Math.max(endAngle - this._padAngle / 2, (startAngle + endAngle) / 2);\n }\n\n protected _getAngleValueStartWithoutPadAngle(datum: Datum) {\n return isValid(datum[SEGMENT_FIELD_START])\n ? this.angleAxisHelper.dataToPosition([datum[SEGMENT_FIELD_START]])\n : this._startAngle;\n }\n\n protected _getAngleValueEndWithoutPadAngle(datum: Datum) {\n return this.angleAxisHelper.dataToPosition([datum[SEGMENT_FIELD_END]]);\n }\n\n initAnimation() {\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<any>)?.preset;\n\n this._segmentMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('circularProgress')?.(\n {\n startAngle: this._startAngle\n },\n appearPreset\n ),\n userAnimationConfig(SeriesMarkNameEnum.segment, this._spec, this._markAttributeContext)\n )\n );\n }\n\n getDefaultShapeType() {\n return 'circle';\n }\n\n getActiveMarks(): IMark[] {\n return [];\n }\n}\n\nexport const registerGaugeSeries = () => {\n registerArcMark();\n registerProgressLikeAnimation();\n Factory.registerSeries(GaugeSeries.type, GaugeSeries);\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { DataView } from '@visactor/vdataset';
2
2
  import type { IGrammarItem } from '../../compile/interface';
3
3
  import type { IGroupMark } from '../../mark/group';
4
- import type { IModelConstructor, IModelMarkInfo, IModelOption, IModelSpecInfo } from '../../model/interface';
4
+ import type { IBaseModelSpecTransformerResult, IModelConstructor, IModelMarkInfo, IModelOption, IModelSpecInfo } from '../../model/interface';
5
5
  import type { IRegion } from '../../region/interface';
6
6
  import type { RenderMode } from '../../typings/spec/common';
7
7
  import type { ISeries } from './series';
@@ -76,8 +76,12 @@ export interface ISeriesMarkInfo extends IModelMarkInfo {
76
76
  name: SeriesMarkNameEnum | string;
77
77
  }
78
78
  export type SeriesMarkMap = Partial<Record<SeriesMarkNameEnum, ISeriesMarkInfo>>;
79
- export interface ISeriesSpecInfo<T extends ISeriesSpec = ISeriesSpec> extends IModelSpecInfo {
79
+ export interface ISeriesSpecInfo<T extends ISeriesSpec = ISeriesSpec> extends IModelSpecInfo, ISeriesSpecTransformerResult<T, any> {
80
80
  type: string | SeriesTypeEnum;
81
81
  spec: T;
82
+ theme: any;
83
+ }
84
+ export interface ISeriesSpecTransformerResult<T, K> extends IBaseModelSpecTransformerResult<T, K> {
82
85
  markLabelSpec?: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>>;
86
+ stack?: boolean;
83
87
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IGrammarItem } from '../../compile/interface';\nimport type { IGroupMark } from '../../mark/group';\nimport type { IModelConstructor, IModelMarkInfo, IModelOption, IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec/common';\nimport type { ISeries } from './series';\nimport type { IMarkProgressiveConfig } from '../../mark/interface';\nimport type { ISeriesSpec, StringOrNumber } from '../../typings';\nimport type { TransformedLabelSpec } from '../../component/label';\nimport type { SeriesMarkNameEnum, SeriesTypeEnum } from './type';\nimport type { ICustomPath2D } from '@visactor/vrender-core';\nimport type { MarkClip } from '../../compile/mark';\n\n// export type SeriesStyle = 'color' | 'size' | 'shape';\n\nexport interface ISeriesSeriesInfo {\n key: string;\n index?: number;\n // 样式的值类型可能是 StringOrNumber | number[] | xxxx\n style: (attribute: string) => any;\n /** series 对应的缩略图类型 */\n shapeType: string;\n}\n\nexport interface ISeriesOption extends IModelOption {\n mode: RenderMode;\n region: IRegion;\n sourceDataList: DataView[];\n getSeriesData: (id: StringOrNumber | undefined, index: number | undefined) => DataView | undefined;\n}\n\nexport interface ISeriesConstructor extends IModelConstructor {\n readonly type: string;\n mark?: SeriesMarkMap;\n new (spec: any, options: ISeriesOption): ISeries;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ISeriesInitOption {}\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ISeriesUpdateDataOption {}\n\nexport interface ISeriesStackDataNode {\n nodes: {\n [key: string]: ISeriesStackDataMeta;\n };\n}\nexport interface ISeriesStackDataLeaf {\n values: any[];\n total?: number;\n}\n\nexport type ISeriesStackDataMeta = ISeriesStackDataNode | ISeriesStackDataLeaf;\nexport type ISeriesStackData = ISeriesStackDataNode;\n\nexport type ISeriesStyle = ISeriesStyleItem[];\nexport type ISeriesStyleItem = {\n name: string;\n} & {\n [markName: string]: {\n style?: any;\n };\n};\n\nexport interface ISeriesMarkInitOption {\n /** theme spec */\n themeSpec?: any;\n\n /** mark spec */\n markSpec?: any;\n\n /** 是否在编译时更新实际数据 */\n skipBeforeLayouted?: boolean;\n\n /** 父级 mark(如果是 undefined 则默认是系列的 root mark,如果是 false 则不配置父级 mark) */\n parent?: IGroupMark | false;\n\n /** 是否是 series field 所作用的 mark(用于 tooltip shape 取色等) */\n isSeriesMark?: boolean;\n\n /** 该 mark 依赖于哪些语法元素 */\n depend?: IGrammarItem | IGrammarItem[];\n\n /** 数据 key 值 */\n key?: string | ((datum: any) => string);\n\n /** 分组 key 值 */\n groupKey?: string;\n\n /** morph 配置开关 */\n morph?: boolean;\n\n /** morph元素的唯一key */\n defaultMorphElementKey?: string;\n\n /** 绑定系列数据(如果是 undefined 则默认是系列的 data,如果是 false 则不配置数据) */\n dataView?: DataView | false;\n /** 系列数据编译产物的名称 */\n dataProductId?: string;\n /** mark scale 如果需要使用统计信息设置domain的话,使用的series对应的统计数据 */\n seriesId?: number;\n\n /** 渐进渲染相关配置 */\n progressive?: IMarkProgressiveConfig;\n\n /** 是否支持 3d */\n support3d?: boolean;\n /* customized shape of mark */\n customShape?: (datum: any[], attrs: any, path: ICustomPath2D) => ICustomPath2D;\n /**\n * 状态排序方法,默认状态都是按照添加的顺序处理的,如果有特殊的需求,需要指定状态顺序,可以通过这个方法实现\n * @since 1.9.0\n */\n stateSort?: (stateA: string, stateB: string) => number;\n /**\n * use component in extension mark\n * @since 1.9.0\n */\n componentType?: string;\n /**\n * 裁剪配置\n * @since 1.10.0\n */\n clip?: MarkClip;\n}\n\nexport interface ISeriesMarkInfo extends IModelMarkInfo {\n /** mark 名称 */\n name: SeriesMarkNameEnum | string;\n}\n\nexport type SeriesMarkMap = Partial<Record<SeriesMarkNameEnum, ISeriesMarkInfo>>;\n\nexport interface ISeriesSpecInfo<T extends ISeriesSpec = ISeriesSpec> extends IModelSpecInfo {\n /** model 具体类型 */\n type: string | SeriesTypeEnum;\n /** model spec */\n spec: T;\n /** 当前的 mark 标签 spec */\n markLabelSpec?: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>>;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IGrammarItem } from '../../compile/interface';\nimport type { IGroupMark } from '../../mark/group';\nimport type {\n IBaseModelSpecTransformerResult,\n IModelConstructor,\n IModelMarkInfo,\n IModelOption,\n IModelSpecInfo\n} from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec/common';\nimport type { ISeries } from './series';\nimport type { IMarkProgressiveConfig } from '../../mark/interface';\nimport type { ISeriesSpec, StringOrNumber } from '../../typings';\nimport type { TransformedLabelSpec } from '../../component/label';\nimport type { SeriesMarkNameEnum, SeriesTypeEnum } from './type';\nimport type { ICustomPath2D } from '@visactor/vrender-core';\nimport type { MarkClip } from '../../compile/mark';\n\n// export type SeriesStyle = 'color' | 'size' | 'shape';\n\nexport interface ISeriesSeriesInfo {\n key: string;\n index?: number;\n // 样式的值类型可能是 StringOrNumber | number[] | xxxx\n style: (attribute: string) => any;\n /** series 对应的缩略图类型 */\n shapeType: string;\n}\n\nexport interface ISeriesOption extends IModelOption {\n mode: RenderMode;\n region: IRegion;\n sourceDataList: DataView[];\n getSeriesData: (id: StringOrNumber | undefined, index: number | undefined) => DataView | undefined;\n}\n\nexport interface ISeriesConstructor extends IModelConstructor {\n readonly type: string;\n mark?: SeriesMarkMap;\n new (spec: any, options: ISeriesOption): ISeries;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ISeriesInitOption {}\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ISeriesUpdateDataOption {}\n\nexport interface ISeriesStackDataNode {\n nodes: {\n [key: string]: ISeriesStackDataMeta;\n };\n}\nexport interface ISeriesStackDataLeaf {\n values: any[];\n total?: number;\n}\n\nexport type ISeriesStackDataMeta = ISeriesStackDataNode | ISeriesStackDataLeaf;\nexport type ISeriesStackData = ISeriesStackDataNode;\n\nexport type ISeriesStyle = ISeriesStyleItem[];\nexport type ISeriesStyleItem = {\n name: string;\n} & {\n [markName: string]: {\n style?: any;\n };\n};\n\nexport interface ISeriesMarkInitOption {\n /** theme spec */\n themeSpec?: any;\n\n /** mark spec */\n markSpec?: any;\n\n /** 是否在编译时更新实际数据 */\n skipBeforeLayouted?: boolean;\n\n /** 父级 mark(如果是 undefined 则默认是系列的 root mark,如果是 false 则不配置父级 mark) */\n parent?: IGroupMark | false;\n\n /** 是否是 series field 所作用的 mark(用于 tooltip shape 取色等) */\n isSeriesMark?: boolean;\n\n /** 该 mark 依赖于哪些语法元素 */\n depend?: IGrammarItem | IGrammarItem[];\n\n /** 数据 key 值 */\n key?: string | ((datum: any) => string);\n\n /** 分组 key 值 */\n groupKey?: string;\n\n /** morph 配置开关 */\n morph?: boolean;\n\n /** morph元素的唯一key */\n defaultMorphElementKey?: string;\n\n /** 绑定系列数据(如果是 undefined 则默认是系列的 data,如果是 false 则不配置数据) */\n dataView?: DataView | false;\n /** 系列数据编译产物的名称 */\n dataProductId?: string;\n /** mark scale 如果需要使用统计信息设置domain的话,使用的series对应的统计数据 */\n seriesId?: number;\n\n /** 渐进渲染相关配置 */\n progressive?: IMarkProgressiveConfig;\n\n /** 是否支持 3d */\n support3d?: boolean;\n /* customized shape of mark */\n customShape?: (datum: any[], attrs: any, path: ICustomPath2D) => ICustomPath2D;\n /**\n * 状态排序方法,默认状态都是按照添加的顺序处理的,如果有特殊的需求,需要指定状态顺序,可以通过这个方法实现\n * @since 1.9.0\n */\n stateSort?: (stateA: string, stateB: string) => number;\n /**\n * use component in extension mark\n * @since 1.9.0\n */\n componentType?: string;\n /**\n * 裁剪配置\n * @since 1.10.0\n */\n clip?: MarkClip;\n}\n\nexport interface ISeriesMarkInfo extends IModelMarkInfo {\n /** mark 名称 */\n name: SeriesMarkNameEnum | string;\n}\n\nexport type SeriesMarkMap = Partial<Record<SeriesMarkNameEnum, ISeriesMarkInfo>>;\n\nexport interface ISeriesSpecInfo<T extends ISeriesSpec = ISeriesSpec>\n extends IModelSpecInfo,\n ISeriesSpecTransformerResult<T, any> {\n /** model 具体类型 */\n type: string | SeriesTypeEnum;\n /** model spec */\n spec: T;\n /** model theme */\n theme: any;\n}\n\nexport interface ISeriesSpecTransformerResult<T, K> extends IBaseModelSpecTransformerResult<T, K> {\n /** 当前的 mark 标签 spec */\n markLabelSpec?: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>>;\n /** 是否堆叠 */\n stack?: boolean;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { DataView } from '@visactor/vdataset';
2
2
  import type { GeoSourceType } from '../../typings/geo';
3
3
  export interface IGeoJsonOption {
4
- type: 'geojson';
4
+ type?: 'geojson';
5
5
  centroid?: boolean;
6
6
  simplify?: boolean;
7
7
  rewind?: boolean | {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/map/geo-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA4BzC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;AAExD,IAAI,UAA0B,CAAC;AAE/B,SAAS,cAAc;IACrB,IAAI,UAAU,EAAE;QACd,OAAO;KACR;IACD,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACpE,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACtE,gCAAgC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,MAAqB,EACrB,SAA0B,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAE7D,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACzB,IAAI,CAAC,gBAAgB,GAAG,wCAAwC,CAAC,CAAC;KACnE;IACD,cAAc,EAAE,CAAC;IACjB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAoB,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACxF,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;QAC9B,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,IAAI,EAAE,UAAU;YAChB,OAAO;SACR,CAAC,CAAC;KACJ;SAAM;QACL,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,IAAI,EAAE,SAAS;YACf,OAAO;SACR,CAAC,CAAC;KACJ;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;QAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;KAC1C;IAED,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC1B,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,CAAC;QAC9C,OAAO;KACR;IACD,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,YAAY,CAAC,KAAK,EAAE,CAAC;IACrB,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC","file":"geo-source.js","sourcesContent":["import { DataSet, DataView, geoJSONParser, simplify, topoJSONParser } from '@visactor/vdataset';\nimport { warn } from '../../util/debug';\nimport type { GeoSourceType } from '../../typings/geo';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../data/register';\nimport { merge } from '@visactor/vutils';\n\nexport interface IGeoJsonOption {\n type: 'geojson';\n /** 计算中心点 */\n /** @default true */\n centroid?: boolean;\n /** 地图简化 */\n /** @default false */\n simplify?: boolean;\n /** 逆时针回绕(Multi)LineString或(Multi)Polygon的外部环,内部环顺时针。*/\n /** @default false */\n rewind?:\n | boolean\n | {\n /** 启用反向绕行 */\n /** @default false */\n reverse?: boolean;\n };\n}\n\nexport interface ITopoJsonOption extends Omit<IGeoJsonOption, 'type'> {\n type: 'topojson';\n object: string;\n}\n\nexport type GeoSourceOption = IGeoJsonOption | ITopoJsonOption;\n\nexport const geoSourceMap = new Map<string, DataView>();\n\nlet mapDataSet: DataSet | null;\n\nfunction initMapDataSet() {\n if (mapDataSet) {\n return;\n }\n mapDataSet = new DataSet();\n registerDataSetInstanceParser(mapDataSet, 'geojson', geoJSONParser);\n registerDataSetInstanceParser(mapDataSet, 'topojson', topoJSONParser);\n registerDataSetInstanceTransform(mapDataSet, 'simplify', simplify);\n}\n\n/**\n * 1. 这个和mapSeries强绑定,后续可以考虑动态注册API\n * 2. 存成dataView而不是原始数据,是考虑减少parser的开销\n */\nexport function registerMapSource(\n key: string,\n source: GeoSourceType,\n option: GeoSourceOption = { type: 'geojson', centroid: true }\n) {\n if (geoSourceMap.has(key)) {\n warn(`map type of '${key}' already exists, will be overwritten.`);\n }\n initMapDataSet();\n const dataView = new DataView(mapDataSet!);\n const options: GeoSourceOption = merge({}, { centroid: true, simplify: false }, option);\n if (option.type === 'topojson') {\n dataView.parse(source, {\n type: 'topojson',\n options\n });\n } else {\n dataView.parse(source, {\n type: 'geojson',\n options\n });\n }\n\n if (option.simplify === true) {\n dataView.transform({ type: 'simplify' });\n }\n\n geoSourceMap.set(key, dataView);\n}\n\nexport function unregisterMapSource(key: string) {\n if (!geoSourceMap.has(key)) {\n warn(`map type of '${key}' does not exists.`);\n return;\n }\n geoSourceMap.delete(key);\n}\n\nexport function getMapSource(type: string) {\n return geoSourceMap.get(type);\n}\n\nexport function clearMapSource() {\n geoSourceMap.clear();\n mapDataSet = null;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/map/geo-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA4BzC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;AAExD,IAAI,UAA0B,CAAC;AAE/B,SAAS,cAAc;IACrB,IAAI,UAAU,EAAE;QACd,OAAO;KACR;IACD,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACpE,6BAA6B,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACtE,gCAAgC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,MAAqB,EACrB,SAA0B,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IAE7D,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACzB,IAAI,CAAC,gBAAgB,GAAG,wCAAwC,CAAC,CAAC;KACnE;IACD,cAAc,EAAE,CAAC;IACjB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAoB,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACxF,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;QAC9B,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,IAAI,EAAE,UAAU;YAChB,OAAO;SACR,CAAC,CAAC;KACJ;SAAM;QACL,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,IAAI,EAAE,SAAS;YACf,OAAO;SACR,CAAC,CAAC;KACJ;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;QAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;KAC1C;IAED,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC1B,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,CAAC;QAC9C,OAAO;KACR;IACD,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,YAAY,CAAC,KAAK,EAAE,CAAC;IACrB,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC","file":"geo-source.js","sourcesContent":["import { DataSet, DataView, geoJSONParser, simplify, topoJSONParser } from '@visactor/vdataset';\nimport { warn } from '../../util/debug';\nimport type { GeoSourceType } from '../../typings/geo';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../data/register';\nimport { merge } from '@visactor/vutils';\n\nexport interface IGeoJsonOption {\n type?: 'geojson';\n /** 计算中心点 */\n /** @default true */\n centroid?: boolean;\n /** 地图简化 */\n /** @default false */\n simplify?: boolean;\n /** 逆时针回绕(Multi)LineString或(Multi)Polygon的外部环,内部环顺时针。*/\n /** @default false */\n rewind?:\n | boolean\n | {\n /** 启用反向绕行 */\n /** @default false */\n reverse?: boolean;\n };\n}\n\nexport interface ITopoJsonOption extends Omit<IGeoJsonOption, 'type'> {\n type: 'topojson';\n object: string;\n}\n\nexport type GeoSourceOption = IGeoJsonOption | ITopoJsonOption;\n\nexport const geoSourceMap = new Map<string, DataView>();\n\nlet mapDataSet: DataSet | null;\n\nfunction initMapDataSet() {\n if (mapDataSet) {\n return;\n }\n mapDataSet = new DataSet();\n registerDataSetInstanceParser(mapDataSet, 'geojson', geoJSONParser);\n registerDataSetInstanceParser(mapDataSet, 'topojson', topoJSONParser);\n registerDataSetInstanceTransform(mapDataSet, 'simplify', simplify);\n}\n\n/**\n * 1. 这个和mapSeries强绑定,后续可以考虑动态注册API\n * 2. 存成dataView而不是原始数据,是考虑减少parser的开销\n */\nexport function registerMapSource(\n key: string,\n source: GeoSourceType,\n option: GeoSourceOption = { type: 'geojson', centroid: true }\n) {\n if (geoSourceMap.has(key)) {\n warn(`map type of '${key}' already exists, will be overwritten.`);\n }\n initMapDataSet();\n const dataView = new DataView(mapDataSet!);\n const options: GeoSourceOption = merge({}, { centroid: true, simplify: false }, option);\n if (option.type === 'topojson') {\n dataView.parse(source, {\n type: 'topojson',\n options\n });\n } else {\n dataView.parse(source, {\n type: 'geojson',\n options\n });\n }\n\n if (option.simplify === true) {\n dataView.transform({ type: 'simplify' });\n }\n\n geoSourceMap.set(key, dataView);\n}\n\nexport function unregisterMapSource(key: string) {\n if (!geoSourceMap.has(key)) {\n warn(`map type of '${key}' does not exists.`);\n return;\n }\n geoSourceMap.delete(key);\n}\n\nexport function getMapSource(type: string) {\n return geoSourceMap.get(type);\n}\n\nexport function clearMapSource() {\n geoSourceMap.clear();\n mapDataSet = null;\n}\n"]}
@@ -8,7 +8,6 @@ import type { IGroupMark } from '../../../mark/group';
8
8
  import type { SeriesMarkMap } from '../../interface';
9
9
  export declare abstract class ProgressLikeSeries<T extends IProgressLikeSeriesSpec> extends PolarSeries<T> {
10
10
  static readonly mark: SeriesMarkMap;
11
- protected _supportStack: boolean;
12
11
  protected _startAngle: number;
13
12
  protected _endAngle: number;
14
13
  protected _arcGroupMark: IGroupMark | null;
@@ -14,10 +14,10 @@ import { binaryFuzzySearch } from "@visactor/vutils-extension";
14
14
 
15
15
  export class ProgressLikeSeries extends PolarSeries {
16
16
  constructor() {
17
- super(...arguments), this._supportStack = !0, this._arcGroupMark = null, this._getAngleValueStart = datum => {
17
+ super(...arguments), this._arcGroupMark = null, this._getAngleValueStart = datum => {
18
18
  const axis = this._getAngleAxis(), {tickMask: tickMask} = this._spec;
19
19
  if ((null == tickMask ? void 0 : tickMask.forceAlign) && this._isTickMaskVisible(axis)) {
20
- const originValue = datum[this._stack ? STACK_FIELD_START : SEGMENT_FIELD_START], subTickData = this._getAngleAxisSubTickData(axis), step = subTickData[1].value - subTickData[0].value, offsetAngle = degreeToRadian(tickMask.offsetAngle);
20
+ const originValue = datum[this.getStack() ? STACK_FIELD_START : SEGMENT_FIELD_START], subTickData = this._getAngleAxisSubTickData(axis), step = subTickData[1].value - subTickData[0].value, offsetAngle = degreeToRadian(tickMask.offsetAngle);
21
21
  let pos;
22
22
  if (isValid(originValue)) {
23
23
  const index = binaryFuzzySearch(subTickData, (tick => tick.value - originValue)), targetIndex = originValue > subTickData[index].value - step / 2 ? Math.min(index, subTickData.length - 1) : index > 0 ? index - 1 : void 0;
@@ -30,7 +30,7 @@ export class ProgressLikeSeries extends PolarSeries {
30
30
  }, this._getAngleValueEnd = datum => {
31
31
  const axis = this._getAngleAxis(), {tickMask: tickMask} = this._spec;
32
32
  if ((null == tickMask ? void 0 : tickMask.forceAlign) && this._isTickMaskVisible(axis)) {
33
- const originValue = datum[this._stack ? STACK_FIELD_END : this._angleField[0]], subTickData = this._getAngleAxisSubTickData(axis), step = subTickData[1].value - subTickData[0].value, offsetAngle = degreeToRadian(tickMask.offsetAngle), index = binaryFuzzySearch(subTickData, (tick => tick.value - originValue)), targetIndex = originValue > subTickData[index].value - step / 2 ? Math.min(index, subTickData.length - 1) : index > 0 ? index - 1 : void 0;
33
+ const originValue = datum[this.getStack() ? STACK_FIELD_END : this._angleField[0]], subTickData = this._getAngleAxisSubTickData(axis), step = subTickData[1].value - subTickData[0].value, offsetAngle = degreeToRadian(tickMask.offsetAngle), index = binaryFuzzySearch(subTickData, (tick => tick.value - originValue)), targetIndex = originValue > subTickData[index].value - step / 2 ? Math.min(index, subTickData.length - 1) : index > 0 ? index - 1 : void 0;
34
34
  let pos;
35
35
  return pos = void 0 !== targetIndex ? this.angleAxisHelper.dataToPosition([ subTickData[targetIndex].value + step / 2 ]) : this.angleAxisHelper.dataToPosition([ subTickData[0].value - step / 2 ]),
36
36
  pos + offsetAngle;
@@ -70,14 +70,14 @@ export class ProgressLikeSeries extends PolarSeries {
70
70
  return newStyle;
71
71
  }
72
72
  _getAngleValueStartWithoutMask(datum) {
73
- if (this._stack) {
73
+ if (this.getStack()) {
74
74
  const value = valueInScaleRange(this.angleAxisHelper.dataToPosition([ datum[STACK_FIELD_START] ]), this.angleAxisHelper.getScale(0));
75
75
  if (isValidNumber(value)) return value;
76
76
  }
77
77
  return this._startAngle;
78
78
  }
79
79
  _getAngleValueEndWithoutMask(datum) {
80
- if (this._stack) {
80
+ if (this.getStack()) {
81
81
  const value = valueInScaleRange(this.angleAxisHelper.dataToPosition([ datum[STACK_FIELD_END] ]), this.angleAxisHelper.getScale(0));
82
82
  if (isValidNumber(value)) return value;
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/polar/progress-like/progress-like.ts"],"names":[],"mappings":"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","file":"progress-like.js","sourcesContent":["import type { Datum } from '@visactor/vgrammar-core';\nimport { degreeToRadian, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport {\n AttributeLevel,\n POLAR_END_RADIAN,\n POLAR_START_RADIAN,\n SEGMENT_FIELD_START,\n STACK_FIELD_END,\n STACK_FIELD_START\n} from '../../../constant';\nimport type { IMarkStyle } from '../../../mark/interface';\nimport type { ConvertToMarkStyleSpec, ICommonSpec } from '../../../typings';\nimport { valueInScaleRange } from '../../../util/scale';\nimport { PolarSeries } from '../polar';\nimport type { IContinuousTickData, IProgressLikeSeriesSpec } from './interface';\nimport type { IPolarAxis, IPolarAxisSpec } from '../../../component/axis';\nimport type { IGroupMark } from '../../../mark/group';\nimport { createArc, createRect } from '@visactor/vrender-core';\nimport type { SeriesMarkMap } from '../../interface';\nimport { progressLikeSeriesMark } from './constant';\nimport { binaryFuzzySearch } from '@visactor/vutils-extension';\n\nexport abstract class ProgressLikeSeries<T extends IProgressLikeSeriesSpec> extends PolarSeries<T> {\n static readonly mark: SeriesMarkMap = progressLikeSeriesMark;\n\n protected _supportStack: boolean = true;\n\n protected _startAngle: number;\n protected _endAngle: number;\n\n protected _arcGroupMark: IGroupMark | null = null;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const chartSpec = this._option.globalInstance.getChart()?.getSpec() as any;\n const startAngle = this._spec.startAngle ?? chartSpec?.startAngle;\n this._startAngle = isValid(startAngle) ? degreeToRadian(startAngle) : POLAR_START_RADIAN;\n const endAngle = this._spec.endAngle ?? chartSpec?.endAngle;\n this._endAngle = isValid(endAngle) ? degreeToRadian(endAngle) : POLAR_END_RADIAN;\n\n // 值信息给角度\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n // 分类信息给半径\n this.setRadiusField(this._spec.categoryField || this._spec.radiusField);\n\n this._specAngleField = this._angleField.slice();\n this._specRadiusField = this._radiusField.slice();\n }\n\n getStackGroupFields(): string[] {\n return this._radiusField;\n }\n\n getStackValueField() {\n return this._angleField?.[0];\n }\n\n getGroupFields() {\n return this._angleField;\n }\n\n /** 重载 mark style 赋值前转换逻辑 */\n protected _convertMarkStyle<T extends ICommonSpec = ICommonSpec>(\n style: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>\n ): Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>> {\n const newStyle = super._convertMarkStyle(style) as unknown as any;\n\n const fillKey = 'fill';\n if (newStyle[fillKey]) {\n const value = style[fillKey] as unknown as any;\n // 为环形渐变色自动加 startAngle 和 endAngle\n if (value?.gradient === 'conical' && !isValid(value?.startAngle) && !isValid(value?.endAngle)) {\n newStyle[fillKey] = {\n ...value,\n startAngle: this._startAngle,\n endAngle: this._endAngle\n };\n }\n }\n\n return newStyle;\n }\n\n protected _getAngleValueStart = (datum: Datum) => {\n const axis = this._getAngleAxis();\n const { tickMask } = this._spec;\n\n if (tickMask?.forceAlign && this._isTickMaskVisible(axis)) {\n const field = this._stack ? STACK_FIELD_START : SEGMENT_FIELD_START;\n const originValue = datum[field];\n const subTickData = this._getAngleAxisSubTickData(axis);\n const step = subTickData[1].value - subTickData[0].value;\n const offsetAngle = degreeToRadian(tickMask.offsetAngle);\n\n let pos: number | undefined;\n if (isValid(originValue)) {\n // 找到第一个大于等于数据值的 tick\n const index = binaryFuzzySearch(subTickData, tick => tick.value - originValue);\n // 对齐\n const targetIndex =\n originValue > subTickData[index].value - step / 2\n ? Math.min(index, subTickData.length - 1)\n : index > 0\n ? index - 1\n : undefined;\n if (targetIndex !== undefined) {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[targetIndex].value - step / 2 // 确保占满整个 tick mask\n ]);\n }\n }\n if (isNil(pos)) {\n pos = this.angleAxisHelper.dataToPosition(\n [subTickData[0].value - step / 2] // 确保空出整个 tick mask\n );\n }\n return pos + offsetAngle;\n }\n return this._getAngleValueStartWithoutMask(datum);\n };\n\n protected _getAngleValueEnd = (datum: Datum) => {\n const axis = this._getAngleAxis();\n const { tickMask } = this._spec;\n\n if (tickMask?.forceAlign && this._isTickMaskVisible(axis)) {\n const field = this._stack ? STACK_FIELD_END : this._angleField[0];\n const originValue = datum[field];\n const subTickData = this._getAngleAxisSubTickData(axis);\n const step = subTickData[1].value - subTickData[0].value;\n const offsetAngle = degreeToRadian(tickMask.offsetAngle);\n\n // 找到第一个大于等于数据值的 tick\n const index = binaryFuzzySearch(subTickData, tick => tick.value - originValue);\n // 对齐\n const targetIndex =\n originValue > subTickData[index].value - step / 2\n ? Math.min(index, subTickData.length - 1)\n : index > 0\n ? index - 1\n : undefined;\n let pos: number;\n if (targetIndex !== undefined) {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[targetIndex].value + step / 2 // 确保占满整个 tick mask\n ]);\n } else {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[0].value - step / 2 // 确保空出整个 tick mask\n ]);\n }\n return pos + offsetAngle;\n }\n return this._getAngleValueEndWithoutMask(datum);\n };\n\n protected _getAngleValueStartWithoutMask(datum: Datum) {\n if (this._stack) {\n const value = valueInScaleRange(\n this.angleAxisHelper.dataToPosition([datum[STACK_FIELD_START]]),\n this.angleAxisHelper.getScale(0)\n );\n if (isValidNumber(value)) {\n return value;\n }\n }\n return this._startAngle;\n }\n\n protected _getAngleValueEndWithoutMask(datum: Datum) {\n if (this._stack) {\n const value = valueInScaleRange(\n this.angleAxisHelper.dataToPosition([datum[STACK_FIELD_END]]),\n this.angleAxisHelper.getScale(0)\n );\n if (isValidNumber(value)) {\n return value;\n }\n }\n return this.angleAxisHelper.dataToPosition([datum[this._angleField[0]]]);\n }\n\n getDimensionField(): string[] {\n return this._specRadiusField;\n }\n\n getMeasureField(): string[] {\n return this._specAngleField;\n }\n\n initMark(): void {\n this._initArcGroupMark();\n }\n\n initMarkStyle(): void {\n this._initArcGroupMarkStyle();\n }\n\n protected _initArcGroupMark() {\n // FIXME: disable group mark layout to prevent reevaluate after layout end\n this._arcGroupMark = this._createMark(ProgressLikeSeries.mark.group, {\n skipBeforeLayouted: false\n }) as IGroupMark;\n return this._arcGroupMark;\n }\n\n protected _initArcGroupMarkStyle() {\n const groupMark = this._arcGroupMark;\n groupMark.setZIndex(this.layoutZIndex);\n groupMark.created();\n this.setMarkStyle(\n groupMark,\n {\n x: 0,\n y: 0\n },\n 'normal',\n AttributeLevel.Series\n );\n groupMark.setClip(() => {\n const axis = this._getAngleAxis();\n if (this._isTickMaskVisible(axis)) {\n const { tickMask } = this._spec;\n const { angle, offsetAngle, style = {} } = tickMask;\n const subTickData = this._getAngleAxisSubTickData(axis);\n const { x, y } = this.angleAxisHelper.center();\n const radius = this._computeLayoutRadius();\n const markStyle = style as any;\n return subTickData.map(({ value }) => {\n const pos = this.angleAxisHelper.dataToPosition([value]) + degreeToRadian(offsetAngle);\n const angleUnit = degreeToRadian(angle) / 2;\n return createArc({\n ...markStyle,\n x,\n y,\n startAngle: pos - angleUnit,\n endAngle: pos + angleUnit,\n innerRadius: radius * this._innerRadius,\n outerRadius: radius * this._outerRadius,\n fill: true\n });\n });\n }\n const { width, height } = this.getLayoutRect();\n return [\n createRect({\n width,\n height,\n fill: true\n })\n ];\n });\n this._arcGroupMark.setInteractive(false);\n }\n\n protected _getAngleAxis() {\n if (!this.angleAxisHelper) {\n return undefined;\n }\n const angleAxisId = this.angleAxisHelper.getAxisId();\n const angleAxis = this._option\n .getChart()\n .getAllComponents()\n .find(component => component.id === angleAxisId) as IPolarAxis;\n return angleAxis;\n }\n\n protected _getAngleAxisTickData(angleAxis?: IPolarAxis): IContinuousTickData[] {\n const tickData = angleAxis?.getTickData()?.getLatestData();\n return tickData;\n }\n\n protected _isTickMaskVisible(angleAxis?: IPolarAxis) {\n const tickData = this._getAngleAxisTickData(angleAxis);\n const { tickMask } = this._spec;\n return tickMask && tickMask.visible !== false && tickData?.length > 1;\n }\n\n protected _getAngleAxisSubTickData(angleAxis: IPolarAxis) {\n const tickData = this._getAngleAxisTickData(angleAxis);\n // TODO: 这块照搬了 vrender-components 的计算方法,需要抽出这块的公用逻辑\n const subTickData: IContinuousTickData[] = [];\n const { subTick = {}, tick = {} } = (angleAxis?.getSpec() ?? {}) as IPolarAxisSpec;\n const { tickCount: subTickCount = 4 } = subTick;\n const { alignWithLabel } = tick;\n // 刻度线的数量大于 2 时,才绘制子刻度\n if (tickData?.length >= 2) {\n const tickSegment = tickData[1].value - tickData[0].value;\n for (let i = 0; i < tickData.length - 1; i++) {\n const pre = tickData[i];\n const next = tickData[i + 1];\n subTickData.push(pre);\n for (let j = 0; j < subTickCount; j++) {\n const percent = (j + 1) / (subTickCount + 1);\n const value =\n (1 - percent) * pre.value + percent * (next ? next.value : alignWithLabel ? 1 : pre.value + tickSegment);\n subTickData.push({\n value\n });\n }\n }\n subTickData.push(tickData[tickData.length - 1]);\n return subTickData;\n }\n return tickData;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/polar/progress-like/progress-like.ts"],"names":[],"mappings":"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","file":"progress-like.js","sourcesContent":["import type { Datum } from '@visactor/vgrammar-core';\nimport { degreeToRadian, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport {\n AttributeLevel,\n POLAR_END_RADIAN,\n POLAR_START_RADIAN,\n SEGMENT_FIELD_START,\n STACK_FIELD_END,\n STACK_FIELD_START\n} from '../../../constant';\nimport type { IMarkStyle } from '../../../mark/interface';\nimport type { ConvertToMarkStyleSpec, ICommonSpec } from '../../../typings';\nimport { valueInScaleRange } from '../../../util/scale';\nimport { PolarSeries } from '../polar';\nimport type { IContinuousTickData, IProgressLikeSeriesSpec } from './interface';\nimport type { IPolarAxis, IPolarAxisSpec } from '../../../component/axis';\nimport type { IGroupMark } from '../../../mark/group';\nimport { createArc, createRect } from '@visactor/vrender-core';\nimport type { SeriesMarkMap } from '../../interface';\nimport { progressLikeSeriesMark } from './constant';\nimport { binaryFuzzySearch } from '@visactor/vutils-extension';\n\nexport abstract class ProgressLikeSeries<T extends IProgressLikeSeriesSpec> extends PolarSeries<T> {\n static readonly mark: SeriesMarkMap = progressLikeSeriesMark;\n\n protected _startAngle: number;\n protected _endAngle: number;\n\n protected _arcGroupMark: IGroupMark | null = null;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const chartSpec = this._option.globalInstance.getChart()?.getSpec() as any;\n const startAngle = this._spec.startAngle ?? chartSpec?.startAngle;\n this._startAngle = isValid(startAngle) ? degreeToRadian(startAngle) : POLAR_START_RADIAN;\n const endAngle = this._spec.endAngle ?? chartSpec?.endAngle;\n this._endAngle = isValid(endAngle) ? degreeToRadian(endAngle) : POLAR_END_RADIAN;\n\n // 值信息给角度\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n // 分类信息给半径\n this.setRadiusField(this._spec.categoryField || this._spec.radiusField);\n\n this._specAngleField = this._angleField.slice();\n this._specRadiusField = this._radiusField.slice();\n }\n\n getStackGroupFields(): string[] {\n return this._radiusField;\n }\n\n getStackValueField() {\n return this._angleField?.[0];\n }\n\n getGroupFields() {\n return this._angleField;\n }\n\n /** 重载 mark style 赋值前转换逻辑 */\n protected _convertMarkStyle<T extends ICommonSpec = ICommonSpec>(\n style: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>\n ): Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>> {\n const newStyle = super._convertMarkStyle(style) as unknown as any;\n\n const fillKey = 'fill';\n if (newStyle[fillKey]) {\n const value = style[fillKey] as unknown as any;\n // 为环形渐变色自动加 startAngle 和 endAngle\n if (value?.gradient === 'conical' && !isValid(value?.startAngle) && !isValid(value?.endAngle)) {\n newStyle[fillKey] = {\n ...value,\n startAngle: this._startAngle,\n endAngle: this._endAngle\n };\n }\n }\n\n return newStyle;\n }\n\n protected _getAngleValueStart = (datum: Datum) => {\n const axis = this._getAngleAxis();\n const { tickMask } = this._spec;\n\n if (tickMask?.forceAlign && this._isTickMaskVisible(axis)) {\n const field = this.getStack() ? STACK_FIELD_START : SEGMENT_FIELD_START;\n const originValue = datum[field];\n const subTickData = this._getAngleAxisSubTickData(axis);\n const step = subTickData[1].value - subTickData[0].value;\n const offsetAngle = degreeToRadian(tickMask.offsetAngle);\n\n let pos: number | undefined;\n if (isValid(originValue)) {\n // 找到第一个大于等于数据值的 tick\n const index = binaryFuzzySearch(subTickData, tick => tick.value - originValue);\n // 对齐\n const targetIndex =\n originValue > subTickData[index].value - step / 2\n ? Math.min(index, subTickData.length - 1)\n : index > 0\n ? index - 1\n : undefined;\n if (targetIndex !== undefined) {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[targetIndex].value - step / 2 // 确保占满整个 tick mask\n ]);\n }\n }\n if (isNil(pos)) {\n pos = this.angleAxisHelper.dataToPosition(\n [subTickData[0].value - step / 2] // 确保空出整个 tick mask\n );\n }\n return pos + offsetAngle;\n }\n return this._getAngleValueStartWithoutMask(datum);\n };\n\n protected _getAngleValueEnd = (datum: Datum) => {\n const axis = this._getAngleAxis();\n const { tickMask } = this._spec;\n\n if (tickMask?.forceAlign && this._isTickMaskVisible(axis)) {\n const field = this.getStack() ? STACK_FIELD_END : this._angleField[0];\n const originValue = datum[field];\n const subTickData = this._getAngleAxisSubTickData(axis);\n const step = subTickData[1].value - subTickData[0].value;\n const offsetAngle = degreeToRadian(tickMask.offsetAngle);\n\n // 找到第一个大于等于数据值的 tick\n const index = binaryFuzzySearch(subTickData, tick => tick.value - originValue);\n // 对齐\n const targetIndex =\n originValue > subTickData[index].value - step / 2\n ? Math.min(index, subTickData.length - 1)\n : index > 0\n ? index - 1\n : undefined;\n let pos: number;\n if (targetIndex !== undefined) {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[targetIndex].value + step / 2 // 确保占满整个 tick mask\n ]);\n } else {\n pos = this.angleAxisHelper.dataToPosition([\n subTickData[0].value - step / 2 // 确保空出整个 tick mask\n ]);\n }\n return pos + offsetAngle;\n }\n return this._getAngleValueEndWithoutMask(datum);\n };\n\n protected _getAngleValueStartWithoutMask(datum: Datum) {\n if (this.getStack()) {\n const value = valueInScaleRange(\n this.angleAxisHelper.dataToPosition([datum[STACK_FIELD_START]]),\n this.angleAxisHelper.getScale(0)\n );\n if (isValidNumber(value)) {\n return value;\n }\n }\n return this._startAngle;\n }\n\n protected _getAngleValueEndWithoutMask(datum: Datum) {\n if (this.getStack()) {\n const value = valueInScaleRange(\n this.angleAxisHelper.dataToPosition([datum[STACK_FIELD_END]]),\n this.angleAxisHelper.getScale(0)\n );\n if (isValidNumber(value)) {\n return value;\n }\n }\n return this.angleAxisHelper.dataToPosition([datum[this._angleField[0]]]);\n }\n\n getDimensionField(): string[] {\n return this._specRadiusField;\n }\n\n getMeasureField(): string[] {\n return this._specAngleField;\n }\n\n initMark(): void {\n this._initArcGroupMark();\n }\n\n initMarkStyle(): void {\n this._initArcGroupMarkStyle();\n }\n\n protected _initArcGroupMark() {\n // FIXME: disable group mark layout to prevent reevaluate after layout end\n this._arcGroupMark = this._createMark(ProgressLikeSeries.mark.group, {\n skipBeforeLayouted: false\n }) as IGroupMark;\n return this._arcGroupMark;\n }\n\n protected _initArcGroupMarkStyle() {\n const groupMark = this._arcGroupMark;\n groupMark.setZIndex(this.layoutZIndex);\n groupMark.created();\n this.setMarkStyle(\n groupMark,\n {\n x: 0,\n y: 0\n },\n 'normal',\n AttributeLevel.Series\n );\n groupMark.setClip(() => {\n const axis = this._getAngleAxis();\n if (this._isTickMaskVisible(axis)) {\n const { tickMask } = this._spec;\n const { angle, offsetAngle, style = {} } = tickMask;\n const subTickData = this._getAngleAxisSubTickData(axis);\n const { x, y } = this.angleAxisHelper.center();\n const radius = this._computeLayoutRadius();\n const markStyle = style as any;\n return subTickData.map(({ value }) => {\n const pos = this.angleAxisHelper.dataToPosition([value]) + degreeToRadian(offsetAngle);\n const angleUnit = degreeToRadian(angle) / 2;\n return createArc({\n ...markStyle,\n x,\n y,\n startAngle: pos - angleUnit,\n endAngle: pos + angleUnit,\n innerRadius: radius * this._innerRadius,\n outerRadius: radius * this._outerRadius,\n fill: true\n });\n });\n }\n const { width, height } = this.getLayoutRect();\n return [\n createRect({\n width,\n height,\n fill: true\n })\n ];\n });\n this._arcGroupMark.setInteractive(false);\n }\n\n protected _getAngleAxis() {\n if (!this.angleAxisHelper) {\n return undefined;\n }\n const angleAxisId = this.angleAxisHelper.getAxisId();\n const angleAxis = this._option\n .getChart()\n .getAllComponents()\n .find(component => component.id === angleAxisId) as IPolarAxis;\n return angleAxis;\n }\n\n protected _getAngleAxisTickData(angleAxis?: IPolarAxis): IContinuousTickData[] {\n const tickData = angleAxis?.getTickData()?.getLatestData();\n return tickData;\n }\n\n protected _isTickMaskVisible(angleAxis?: IPolarAxis) {\n const tickData = this._getAngleAxisTickData(angleAxis);\n const { tickMask } = this._spec;\n return tickMask && tickMask.visible !== false && tickData?.length > 1;\n }\n\n protected _getAngleAxisSubTickData(angleAxis: IPolarAxis) {\n const tickData = this._getAngleAxisTickData(angleAxis);\n // TODO: 这块照搬了 vrender-components 的计算方法,需要抽出这块的公用逻辑\n const subTickData: IContinuousTickData[] = [];\n const { subTick = {}, tick = {} } = (angleAxis?.getSpec() ?? {}) as IPolarAxisSpec;\n const { tickCount: subTickCount = 4 } = subTick;\n const { alignWithLabel } = tick;\n // 刻度线的数量大于 2 时,才绘制子刻度\n if (tickData?.length >= 2) {\n const tickSegment = tickData[1].value - tickData[0].value;\n for (let i = 0; i < tickData.length - 1; i++) {\n const pre = tickData[i];\n const next = tickData[i + 1];\n subTickData.push(pre);\n for (let j = 0; j < subTickCount; j++) {\n const percent = (j + 1) / (subTickCount + 1);\n const value =\n (1 - percent) * pre.value + percent * (next ? next.value : alignWithLabel ? 1 : pre.value + tickSegment);\n subTickData.push({\n value\n });\n }\n }\n subTickData.push(tickData[tickData.length - 1]);\n return subTickData;\n }\n return tickData;\n }\n}\n"]}
@@ -18,7 +18,7 @@ export class RoseLikeSeries extends PolarSeries {
18
18
  super.setAttrFromSpec(), this.setAngleField(this._spec.categoryField || this._spec.angleField),
19
19
  this.setRadiusField(this._spec.valueField || this._spec.radiusField), this._specAngleField = this._angleField.slice(),
20
20
  this._specRadiusField = this._radiusField.slice(), this.setInnerRadiusField(this._spec.valueField || this._spec.radiusField),
21
- this._stack && this.setValueFieldToStack(), this._percent && this.setValueFieldToPercent();
21
+ this.getStack() && this.setValueFieldToStack(), this.getPercent() && this.setValueFieldToPercent();
22
22
  }
23
23
  setValueFieldToStack() {
24
24
  this.setRadiusField(STACK_FIELD_END), this.setInnerRadiusField(STACK_FIELD_START);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/polar/rose-like/rose-like.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,OAAgB,cAA8C,SAAQ,WAAc;IACxF,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IACtD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,mBAAmB;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF","file":"rose-like.js","sourcesContent":["import { array } from '@visactor/vutils';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_START,\n STACK_FIELD_START_PERCENT\n} from '../../../constant';\nimport { PolarSeries } from '../polar';\nimport type { IRoseLikeSeriesSpec } from './interface';\n\nexport abstract class RoseLikeSeries<T extends IRoseLikeSeriesSpec> extends PolarSeries<T> {\n getStackGroupFields(): string[] {\n return this._angleField;\n }\n\n getStackValueField() {\n return array(this._spec.valueField)[0] || array(this._spec.radiusField)[0];\n }\n\n getGroupFields() {\n return this._angleField;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n // 兼容小组件写法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.categoryField || this._spec.angleField);\n this.setRadiusField(this._spec.valueField || this._spec.radiusField);\n this._specAngleField = this._angleField.slice();\n this._specRadiusField = this._radiusField.slice();\n this.setInnerRadiusField(this._spec.valueField || this._spec.radiusField);\n if (this._stack) {\n this.setValueFieldToStack();\n }\n if (this._percent) {\n this.setValueFieldToPercent();\n }\n }\n\n setValueFieldToStack(): void {\n this.setRadiusField(STACK_FIELD_END);\n this.setInnerRadiusField(STACK_FIELD_START);\n }\n\n setValueFieldToPercent(): void {\n this.setRadiusField(STACK_FIELD_END_PERCENT);\n this.setInnerRadiusField(STACK_FIELD_START_PERCENT);\n }\n\n getDimensionField(): string[] {\n return this._specAngleField;\n }\n getMeasureField(): string[] {\n return this._specRadiusField;\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/polar/rose-like/rose-like.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,OAAgB,cAA8C,SAAQ,WAAc;IACxF,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IACtD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,mBAAmB;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF","file":"rose-like.js","sourcesContent":["import { array } from '@visactor/vutils';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_START,\n STACK_FIELD_START_PERCENT\n} from '../../../constant';\nimport { PolarSeries } from '../polar';\nimport type { IRoseLikeSeriesSpec } from './interface';\n\nexport abstract class RoseLikeSeries<T extends IRoseLikeSeriesSpec> extends PolarSeries<T> {\n getStackGroupFields(): string[] {\n return this._angleField;\n }\n\n getStackValueField() {\n return array(this._spec.valueField)[0] || array(this._spec.radiusField)[0];\n }\n\n getGroupFields() {\n return this._angleField;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n // 兼容小组件写法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.categoryField || this._spec.angleField);\n this.setRadiusField(this._spec.valueField || this._spec.radiusField);\n this._specAngleField = this._angleField.slice();\n this._specRadiusField = this._radiusField.slice();\n this.setInnerRadiusField(this._spec.valueField || this._spec.radiusField);\n if (this.getStack()) {\n this.setValueFieldToStack();\n }\n if (this.getPercent()) {\n this.setValueFieldToPercent();\n }\n }\n\n setValueFieldToStack(): void {\n this.setRadiusField(STACK_FIELD_END);\n this.setInnerRadiusField(STACK_FIELD_START);\n }\n\n setValueFieldToPercent(): void {\n this.setRadiusField(STACK_FIELD_END_PERCENT);\n this.setInnerRadiusField(STACK_FIELD_START_PERCENT);\n }\n\n getDimensionField(): string[] {\n return this._specAngleField;\n }\n getMeasureField(): string[] {\n return this._specRadiusField;\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { BaseSeriesSpecTransformer } from '../../base';
2
+ import type { ICircularProgressSeriesSpec, ICircularProgressSeriesTheme } from './interface';
3
+ export declare class CircularProgressSeriesSpecTransformer<T extends ICircularProgressSeriesSpec = ICircularProgressSeriesSpec, K extends ICircularProgressSeriesTheme = ICircularProgressSeriesTheme> extends BaseSeriesSpecTransformer<T, K> {
4
+ protected _supportStack: boolean;
5
+ }
@@ -0,0 +1,8 @@
1
+ import { BaseSeriesSpecTransformer } from "../../base";
2
+
3
+ export class CircularProgressSeriesSpecTransformer extends BaseSeriesSpecTransformer {
4
+ constructor() {
5
+ super(...arguments), this._supportStack = !0;
6
+ }
7
+ }
8
+ //# sourceMappingURL=circular-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/series/progress/circular/circular-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,OAAO,qCAGX,SAAQ,yBAA+B;IAHzC;;QAIY,kBAAa,GAAY,IAAI,CAAC;IAC1C,CAAC;CAAA","file":"circular-transformer.js","sourcesContent":["import { BaseSeriesSpecTransformer } from '../../base';\nimport type { ICircularProgressSeriesSpec, ICircularProgressSeriesTheme } from './interface';\n\nexport class CircularProgressSeriesSpecTransformer<\n T extends ICircularProgressSeriesSpec = ICircularProgressSeriesSpec,\n K extends ICircularProgressSeriesTheme = ICircularProgressSeriesTheme\n> extends BaseSeriesSpecTransformer<T, K> {\n protected _supportStack: boolean = true;\n}\n"]}
@@ -4,10 +4,13 @@ import { SeriesTypeEnum } from '../../interface/type';
4
4
  import type { ICircularProgressSeriesSpec } from './interface';
5
5
  import { ProgressLikeSeries } from '../../polar/progress-like/progress-like';
6
6
  import type { IMark } from '../../../mark/interface';
7
+ import { CircularProgressSeriesSpecTransformer } from './circular-transformer';
7
8
  export declare class CircularProgressSeries<T extends ICircularProgressSeriesSpec = ICircularProgressSeriesSpec> extends ProgressLikeSeries<T> {
8
9
  static readonly type: string;
9
10
  type: SeriesTypeEnum;
10
11
  static readonly mark: SeriesMarkMap;
12
+ static readonly transformerConstructor: any;
13
+ readonly transformerConstructor: typeof CircularProgressSeriesSpecTransformer;
11
14
  private _progressMark;
12
15
  private _trackMark;
13
16
  getStackGroupFields(): string[];
@@ -18,10 +18,12 @@ import { registerProgressLikeAnimation } from "../../polar/progress-like";
18
18
 
19
19
  import { registerFadeInOutAnimation } from "../../../animation/config";
20
20
 
21
+ import { CircularProgressSeriesSpecTransformer } from "./circular-transformer";
22
+
21
23
  export class CircularProgressSeries extends ProgressLikeSeries {
22
24
  constructor() {
23
- super(...arguments), this.type = SeriesTypeEnum.circularProgress, this._progressMark = null,
24
- this._trackMark = null, this._getRadiusValueStart = datum => {
25
+ super(...arguments), this.type = SeriesTypeEnum.circularProgress, this.transformerConstructor = CircularProgressSeriesSpecTransformer,
26
+ this._progressMark = null, this._trackMark = null, this._getRadiusValueStart = datum => {
25
27
  if (this.getGroupFields().length > 1) {
26
28
  const value = this.radiusAxisHelper.dataToPosition(this.getDatumPositionValues(datum, this.getGroupFields()));
27
29
  if (isValidNumber(value)) return value;
@@ -101,13 +103,13 @@ export class CircularProgressSeries extends ProgressLikeSeries {
101
103
  x: () => this.angleAxisHelper.center().x,
102
104
  y: () => this.angleAxisHelper.center().y,
103
105
  startAngle: () => {
104
- const fieldName = this._stack ? STACK_FIELD_START : this._angleField[0], domain = this.angleAxisHelper.getScale(0).domain();
106
+ const fieldName = this.getStack() ? STACK_FIELD_START : this._angleField[0], domain = this.angleAxisHelper.getScale(0).domain();
105
107
  return this._getAngleValueStart({
106
108
  [fieldName]: domain[0]
107
109
  });
108
110
  },
109
111
  endAngle: () => {
110
- const fieldName = this._stack ? STACK_FIELD_END : this._angleField[0], domain = this.angleAxisHelper.getScale(0).domain();
112
+ const fieldName = this.getStack() ? STACK_FIELD_END : this._angleField[0], domain = this.angleAxisHelper.getScale(0).domain();
111
113
  return this._getAngleValueEnd({
112
114
  [fieldName]: domain[domain.length - 1]
113
115
  });
@@ -132,7 +134,8 @@ export class CircularProgressSeries extends ProgressLikeSeries {
132
134
  }
133
135
  }
134
136
 
135
- CircularProgressSeries.type = SeriesTypeEnum.circularProgress, CircularProgressSeries.mark = circularProgressSeriesMark;
137
+ CircularProgressSeries.type = SeriesTypeEnum.circularProgress, CircularProgressSeries.mark = circularProgressSeriesMark,
138
+ CircularProgressSeries.transformerConstructor = CircularProgressSeriesSpecTransformer;
136
139
 
137
140
  export const registerCircularProgressSeries = () => {
138
141
  registerArcMark(), registerProgressLikeAnimation(), registerFadeInOutAnimation(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/progress/circular/circular.ts"],"names":[],"mappings":"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","file":"circular.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { BandScale } from '@visactor/vscale';\nimport type { IArcMark } from '../../../mark/arc';\nimport type { Datum } from '../../../typings';\nimport { isValidNumber } from '@visactor/vutils';\nimport type { SeriesMarkMap } from '../../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../../interface/type';\nimport { animationConfig, userAnimationConfig } from '../../../animation/utils';\nimport type { ICircularProgressSeriesSpec } from './interface';\nimport { ProgressLikeSeries } from '../../polar/progress-like/progress-like';\nimport type { IStateAnimateSpec } from '../../../animation/spec';\nimport { registerArcMark } from '../../../mark/arc';\nimport { circularProgressSeriesMark } from './constant';\nimport { STACK_FIELD_END, STACK_FIELD_START, AttributeLevel } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport { registerProgressLikeAnimation } from '../../polar/progress-like';\nimport { registerFadeInOutAnimation } from '../../../animation/config';\nimport type { IMark } from '../../../mark/interface';\n\nexport class CircularProgressSeries<\n T extends ICircularProgressSeriesSpec = ICircularProgressSeriesSpec\n> extends ProgressLikeSeries<T> {\n static readonly type: string = SeriesTypeEnum.circularProgress;\n type = SeriesTypeEnum.circularProgress;\n\n static readonly mark: SeriesMarkMap = circularProgressSeriesMark;\n\n private _progressMark: IArcMark | null = null;\n private _trackMark: IArcMark | null = null;\n\n getStackGroupFields(): string[] {\n return this.getGroupFields();\n }\n\n getGroupFields() {\n return this._radiusField;\n }\n\n initMark(): void {\n super.initMark();\n this._initTrackMark();\n this._initProgressMark();\n }\n\n initMarkStyle(): void {\n super.initMarkStyle();\n this._initTrackMarkStyle();\n this._initProgressMarkStyle();\n }\n\n private _initProgressMark() {\n this._progressMark = this._createMark(CircularProgressSeries.mark.progress, {\n parent: this._arcGroupMark,\n isSeriesMark: true,\n customShape: this._spec.progress?.customShape,\n stateSort: this._spec.progress?.stateSort\n }) as IArcMark;\n return this._progressMark;\n }\n\n private _initProgressMarkStyle() {\n const progressMark = this._progressMark;\n if (progressMark) {\n this.setMarkStyle(\n progressMark,\n {\n x: () => this.angleAxisHelper.center().x,\n y: () => this.angleAxisHelper.center().y,\n startAngle: this._getAngleValueStart,\n endAngle: this._getAngleValueEnd,\n innerRadius: this._getRadiusValueStart,\n outerRadius: this._getRadiusValueEnd,\n cap: this._spec.roundCap ?? false,\n boundsMode: 'imprecise',\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute(),\n zIndex: 200,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // forceShowCap 是内部属性,不在接口中暴露\n forceShowCap: true\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initInteraction(): void {\n const marks: IMark[] = [];\n\n if (this._trackMark) {\n marks.push(this._trackMark);\n }\n\n if (this._progressMark) {\n marks.push(this._progressMark);\n }\n this._parseInteractionConfig(marks);\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._progressMark && this._tooltipHelper.activeTriggerSet.mark.add(this._progressMark);\n }\n\n private _initTrackMark() {\n this._trackMark = this._createMark(CircularProgressSeries.mark.track, {\n parent: this._arcGroupMark,\n customShape: this._spec.track?.customShape,\n stateSort: this._spec.track?.stateSort\n }) as IArcMark;\n return this._trackMark;\n }\n\n private _initTrackMarkStyle() {\n const trackMark = this._trackMark;\n if (trackMark) {\n this.setMarkStyle(\n trackMark,\n {\n visible: (datum: Datum) => {\n const scale = this.angleAxisHelper.getScale(0);\n const range = scale.range();\n const min = Math.min(range[0], range[range.length - 1]);\n const startValue = this._getAngleValueStartWithoutMask(datum);\n // 堆叠情况只显示第一组的背景\n return Math.abs(startValue - min) <= 1e-14;\n },\n x: () => this.angleAxisHelper.center().x,\n y: () => this.angleAxisHelper.center().y,\n startAngle: () => {\n const fieldName = this._stack ? STACK_FIELD_START : this._angleField[0];\n const scale = this.angleAxisHelper.getScale(0);\n const domain = scale.domain();\n return this._getAngleValueStart({ [fieldName]: domain[0] });\n },\n endAngle: () => {\n const fieldName = this._stack ? STACK_FIELD_END : this._angleField[0];\n const scale = this.angleAxisHelper.getScale(0);\n const domain = scale.domain();\n return this._getAngleValueEnd({ [fieldName]: domain[domain.length - 1] });\n },\n innerRadius: this._getRadiusValueStart,\n outerRadius: this._getRadiusValueEnd,\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute(),\n zIndex: 100\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected _getRadiusValueStart = (datum: Datum) => {\n if (this.getGroupFields().length > 1) {\n const value = this.radiusAxisHelper.dataToPosition(this.getDatumPositionValues(datum, this.getGroupFields()));\n if (isValidNumber(value)) {\n return value;\n }\n }\n return this.radiusAxisHelper.dataToPosition([datum[this._radiusField[0]]]);\n };\n\n protected _getRadiusValueEnd = (datum: Datum) => {\n if (this.getGroupFields().length > 1) {\n const value =\n this.radiusAxisHelper.dataToPosition(this.getDatumPositionValues(datum, this.getGroupFields())) +\n this.radiusAxisHelper.getBandwidth?.(this._groups ? this._groups.fields.length - 1 : 0);\n if (isValidNumber(value)) {\n return value;\n }\n }\n return (\n this.radiusAxisHelper.dataToPosition([datum[this._radiusField[0]]]) +\n (this.radiusAxisHelper.getScale(0) as BandScale).step()\n );\n };\n\n initAnimation() {\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<any>)?.preset;\n\n this._progressMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('circularProgress')?.({ startAngle: this._startAngle }, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.progress, this._spec, this._markAttributeContext)\n )\n );\n\n this._trackMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('fadeInOut')?.(),\n userAnimationConfig(SeriesMarkNameEnum.track, this._spec, this._markAttributeContext)\n )\n );\n }\n\n getActiveMarks(): IMark[] {\n return [this._progressMark];\n }\n}\n\nexport const registerCircularProgressSeries = () => {\n registerArcMark();\n registerProgressLikeAnimation();\n registerFadeInOutAnimation();\n Factory.registerSeries(CircularProgressSeries.type, CircularProgressSeries);\n};\n"]}
1
+ {"version":3,"sources":["../src/series/progress/circular/circular.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAsB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,qCAAqC,EAAE,MAAM,wBAAwB,CAAC;AAE/E,MAAM,OAAO,sBAEX,SAAQ,kBAAqB;IAF/B;;QAIE,SAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC;QAI9B,2BAAsB,GAAG,qCAAqC,CAAC;QAEhE,kBAAa,GAAoB,IAAI,CAAC;QACtC,eAAU,GAAoB,IAAI,CAAC;QAgIjC,yBAAoB,GAAG,CAAC,KAAY,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC9G,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;oBACxB,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC;QAEQ,uBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE;;YAC9C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,MAAM,KAAK,GACT,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;qBAC/F,MAAA,MAAA,IAAI,CAAC,gBAAgB,EAAC,YAAY,mDAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;gBAC1F,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;oBACxB,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,CACL,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC,IAAI,EAAE,CACxD,CAAC;QACJ,CAAC,CAAC;IAuBJ,CAAC;IA5KC,mBAAmB;QACjB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAEO,iBAAiB;;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1E,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,0CAAE,WAAW;YAC7C,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,0CAAE,SAAS;SAC1C,CAAa,CAAC;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEO,sBAAsB;;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,YAAY,CACf,YAAY,EACZ;gBACE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,UAAU,EAAE,IAAI,CAAC,mBAAmB;gBACpC,QAAQ,EAAE,IAAI,CAAC,iBAAiB;gBAChC,WAAW,EAAE,IAAI,CAAC,oBAAoB;gBACtC,WAAW,EAAE,IAAI,CAAC,kBAAkB;gBACpC,GAAG,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,mCAAI,KAAK;gBACjC,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;gBACrC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,MAAM,EAAE,GAAG;gBAIX,YAAY,EAAE,IAAI;aACnB,EACD,QAAQ,EACR,cAAc,CAAC,MAAM,CACtB,CAAC;SACH;IACH,CAAC;IAED,eAAe;QACb,MAAM,KAAK,GAAY,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAES,WAAW;QACnB,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1F,CAAC;IAEO,cAAc;;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE;YACpE,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,WAAW;YAC1C,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,SAAS;SACvC,CAAa,CAAC;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,mBAAmB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,YAAY,CACf,SAAS,EACT;gBACE,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;oBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBACxD,MAAM,UAAU,GAAG,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;oBAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC;gBAC7C,CAAC;gBACD,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxC,UAAU,EAAE,GAAG,EAAE;oBACf,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,QAAQ,EAAE,GAAG,EAAE;oBACb,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5E,CAAC;gBACD,WAAW,EAAE,IAAI,CAAC,oBAAoB;gBACtC,WAAW,EAAE,IAAI,CAAC,kBAAkB;gBACpC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;gBACrC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,MAAM,EAAE,GAAG;aACZ,EACD,QAAQ,EACR,cAAc,CAAC,MAAM,CACtB,CAAC;SACH;IACH,CAAC;IA2BD,aAAa;;QACX,MAAM,YAAY,GAAG,MAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,eAA0C,0CAAE,MAAM,CAAC;QAErF,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnC,eAAe,CACb,MAAA,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,0CAAG,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,EAC/F,mBAAmB,aAA8B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,CACzF,CACF,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAChC,eAAe,CACb,MAAA,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,2CAAI,EAC1C,mBAAmB,UAA2B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,CACtF,CACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;;AArLe,2BAAI,GAAW,cAAc,CAAC,gBAAgB,CAAC;AAG/C,2BAAI,GAAkB,0BAA0B,CAAC;AACjD,6CAAsB,GAAG,qCAA4C,CAAC;AAoLxF,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,EAAE;IACjD,eAAe,EAAE,CAAC;IAClB,6BAA6B,EAAE,CAAC;IAChC,0BAA0B,EAAE,CAAC;IAC7B,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAC9E,CAAC,CAAC","file":"circular.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { BandScale } from '@visactor/vscale';\nimport type { IArcMark } from '../../../mark/arc';\nimport type { Datum } from '../../../typings';\nimport { isValidNumber } from '@visactor/vutils';\nimport type { SeriesMarkMap } from '../../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../../interface/type';\nimport { animationConfig, userAnimationConfig } from '../../../animation/utils';\nimport type { ICircularProgressSeriesSpec } from './interface';\nimport { ProgressLikeSeries } from '../../polar/progress-like/progress-like';\nimport type { IStateAnimateSpec } from '../../../animation/spec';\nimport { registerArcMark } from '../../../mark/arc';\nimport { circularProgressSeriesMark } from './constant';\nimport { STACK_FIELD_END, STACK_FIELD_START, AttributeLevel } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport { registerProgressLikeAnimation } from '../../polar/progress-like';\nimport { registerFadeInOutAnimation } from '../../../animation/config';\nimport type { IMark } from '../../../mark/interface';\nimport { CircularProgressSeriesSpecTransformer } from './circular-transformer';\n\nexport class CircularProgressSeries<\n T extends ICircularProgressSeriesSpec = ICircularProgressSeriesSpec\n> extends ProgressLikeSeries<T> {\n static readonly type: string = SeriesTypeEnum.circularProgress;\n type = SeriesTypeEnum.circularProgress;\n\n static readonly mark: SeriesMarkMap = circularProgressSeriesMark;\n static readonly transformerConstructor = CircularProgressSeriesSpecTransformer as any;\n readonly transformerConstructor = CircularProgressSeriesSpecTransformer;\n\n private _progressMark: IArcMark | null = null;\n private _trackMark: IArcMark | null = null;\n\n getStackGroupFields(): string[] {\n return this.getGroupFields();\n }\n\n getGroupFields() {\n return this._radiusField;\n }\n\n initMark(): void {\n super.initMark();\n this._initTrackMark();\n this._initProgressMark();\n }\n\n initMarkStyle(): void {\n super.initMarkStyle();\n this._initTrackMarkStyle();\n this._initProgressMarkStyle();\n }\n\n private _initProgressMark() {\n this._progressMark = this._createMark(CircularProgressSeries.mark.progress, {\n parent: this._arcGroupMark,\n isSeriesMark: true,\n customShape: this._spec.progress?.customShape,\n stateSort: this._spec.progress?.stateSort\n }) as IArcMark;\n return this._progressMark;\n }\n\n private _initProgressMarkStyle() {\n const progressMark = this._progressMark;\n if (progressMark) {\n this.setMarkStyle(\n progressMark,\n {\n x: () => this.angleAxisHelper.center().x,\n y: () => this.angleAxisHelper.center().y,\n startAngle: this._getAngleValueStart,\n endAngle: this._getAngleValueEnd,\n innerRadius: this._getRadiusValueStart,\n outerRadius: this._getRadiusValueEnd,\n cap: this._spec.roundCap ?? false,\n boundsMode: 'imprecise',\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute(),\n zIndex: 200,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // forceShowCap 是内部属性,不在接口中暴露\n forceShowCap: true\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initInteraction(): void {\n const marks: IMark[] = [];\n\n if (this._trackMark) {\n marks.push(this._trackMark);\n }\n\n if (this._progressMark) {\n marks.push(this._progressMark);\n }\n this._parseInteractionConfig(marks);\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._progressMark && this._tooltipHelper.activeTriggerSet.mark.add(this._progressMark);\n }\n\n private _initTrackMark() {\n this._trackMark = this._createMark(CircularProgressSeries.mark.track, {\n parent: this._arcGroupMark,\n customShape: this._spec.track?.customShape,\n stateSort: this._spec.track?.stateSort\n }) as IArcMark;\n return this._trackMark;\n }\n\n private _initTrackMarkStyle() {\n const trackMark = this._trackMark;\n if (trackMark) {\n this.setMarkStyle(\n trackMark,\n {\n visible: (datum: Datum) => {\n const scale = this.angleAxisHelper.getScale(0);\n const range = scale.range();\n const min = Math.min(range[0], range[range.length - 1]);\n const startValue = this._getAngleValueStartWithoutMask(datum);\n // 堆叠情况只显示第一组的背景\n return Math.abs(startValue - min) <= 1e-14;\n },\n x: () => this.angleAxisHelper.center().x,\n y: () => this.angleAxisHelper.center().y,\n startAngle: () => {\n const fieldName = this.getStack() ? STACK_FIELD_START : this._angleField[0];\n const scale = this.angleAxisHelper.getScale(0);\n const domain = scale.domain();\n return this._getAngleValueStart({ [fieldName]: domain[0] });\n },\n endAngle: () => {\n const fieldName = this.getStack() ? STACK_FIELD_END : this._angleField[0];\n const scale = this.angleAxisHelper.getScale(0);\n const domain = scale.domain();\n return this._getAngleValueEnd({ [fieldName]: domain[domain.length - 1] });\n },\n innerRadius: this._getRadiusValueStart,\n outerRadius: this._getRadiusValueEnd,\n cornerRadius: this._spec.cornerRadius,\n fill: this.getColorAttribute(),\n zIndex: 100\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected _getRadiusValueStart = (datum: Datum) => {\n if (this.getGroupFields().length > 1) {\n const value = this.radiusAxisHelper.dataToPosition(this.getDatumPositionValues(datum, this.getGroupFields()));\n if (isValidNumber(value)) {\n return value;\n }\n }\n return this.radiusAxisHelper.dataToPosition([datum[this._radiusField[0]]]);\n };\n\n protected _getRadiusValueEnd = (datum: Datum) => {\n if (this.getGroupFields().length > 1) {\n const value =\n this.radiusAxisHelper.dataToPosition(this.getDatumPositionValues(datum, this.getGroupFields())) +\n this.radiusAxisHelper.getBandwidth?.(this._groups ? this._groups.fields.length - 1 : 0);\n if (isValidNumber(value)) {\n return value;\n }\n }\n return (\n this.radiusAxisHelper.dataToPosition([datum[this._radiusField[0]]]) +\n (this.radiusAxisHelper.getScale(0) as BandScale).step()\n );\n };\n\n initAnimation() {\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<any>)?.preset;\n\n this._progressMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('circularProgress')?.({ startAngle: this._startAngle }, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.progress, this._spec, this._markAttributeContext)\n )\n );\n\n this._trackMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('fadeInOut')?.(),\n userAnimationConfig(SeriesMarkNameEnum.track, this._spec, this._markAttributeContext)\n )\n );\n }\n\n getActiveMarks(): IMark[] {\n return [this._progressMark];\n }\n}\n\nexport const registerCircularProgressSeries = () => {\n registerArcMark();\n registerProgressLikeAnimation();\n registerFadeInOutAnimation();\n Factory.registerSeries(CircularProgressSeries.type, CircularProgressSeries);\n};\n"]}
@@ -65,10 +65,10 @@ export class RadarSeries extends RoseLikeSeries {
65
65
  areaMark && (this.setMarkStyle(areaMark, {
66
66
  x: this.dataToPositionX.bind(this),
67
67
  y: this.dataToPositionY.bind(this),
68
- x1: datum => datum && this.angleAxisHelper && this.radiusAxisHelper ? this.valueToPosition(this.getDatumPositionValues(datum, this._angleField), this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]).x : Number.NaN,
68
+ x1: datum => datum && this.angleAxisHelper && this.radiusAxisHelper ? this.valueToPosition(this.getDatumPositionValues(datum, this._angleField), this.getStack() ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]).x : Number.NaN,
69
69
  y1: datum => {
70
70
  if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) return Number.NaN;
71
- return this.valueToPosition(this.getDatumPositionValues(datum, this._angleField), this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]).y;
71
+ return this.valueToPosition(this.getDatumPositionValues(datum, this._angleField), this.getStack() ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]).y;
72
72
  },
73
73
  fill: this.getColorAttribute(),
74
74
  curveType: DEFAULT_LINEAR_INTERPOLATE,