@visactor/vchart 1.10.0-alpha.8 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +775 -509
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/area/area-transformer.js +1 -2
  6. package/cjs/chart/area/area-transformer.js.map +1 -1
  7. package/cjs/chart/base/base-chart-transformer.js +6 -8
  8. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  9. package/cjs/chart/base/base-chart.js +3 -5
  10. package/cjs/chart/base/base-chart.js.map +1 -1
  11. package/cjs/chart/base/util.d.ts +2 -2
  12. package/cjs/chart/base/util.js.map +1 -1
  13. package/cjs/chart/interface/chart.js.map +1 -1
  14. package/cjs/chart/interface/common.d.ts +1 -5
  15. package/cjs/chart/interface/common.js.map +1 -1
  16. package/cjs/chart/map/map-transformer.js.map +1 -1
  17. package/cjs/chart/sequence/interface.d.ts +2 -2
  18. package/cjs/chart/sequence/interface.js.map +1 -1
  19. package/cjs/chart/sequence/sequence-transformer.js.map +1 -1
  20. package/cjs/compile/compilable-base.js +1 -1
  21. package/cjs/compile/compilable-base.js.map +1 -1
  22. package/cjs/compile/compiler.d.ts +1 -0
  23. package/cjs/compile/compiler.js +11 -9
  24. package/cjs/compile/compiler.js.map +1 -1
  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 +71 -16
  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 +2 -0
  51. package/cjs/component/data-zoom/data-zoom/data-zoom.js +20 -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 +4 -1
  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/area/interface.d.ts +6 -1
  146. package/cjs/series/area/interface.js.map +1 -1
  147. package/cjs/series/bar/bar-transformer.d.ts +1 -0
  148. package/cjs/series/bar/bar-transformer.js +3 -0
  149. package/cjs/series/bar/bar-transformer.js.map +1 -1
  150. package/cjs/series/bar/bar.d.ts +0 -1
  151. package/cjs/series/bar/bar.js +2 -2
  152. package/cjs/series/bar/bar.js.map +1 -1
  153. package/cjs/series/base/base-series-transformer.d.ts +5 -3
  154. package/cjs/series/base/base-series-transformer.js +9 -2
  155. package/cjs/series/base/base-series-transformer.js.map +1 -1
  156. package/cjs/series/base/base-series.d.ts +0 -4
  157. package/cjs/series/base/base-series.js +12 -17
  158. package/cjs/series/base/base-series.js.map +1 -1
  159. package/cjs/series/cartesian/cartesian.js +3 -3
  160. package/cjs/series/cartesian/cartesian.js.map +1 -1
  161. package/cjs/series/funnel/funnel.js +2 -1
  162. package/cjs/series/funnel/funnel.js.map +1 -1
  163. package/cjs/series/gauge/gauge-pointer-transformer.d.ts +5 -0
  164. package/cjs/series/gauge/gauge-pointer-transformer.js +16 -0
  165. package/cjs/series/gauge/gauge-pointer-transformer.js.map +1 -0
  166. package/cjs/series/gauge/gauge-pointer.d.ts +3 -1
  167. package/cjs/series/gauge/gauge-pointer.js +4 -4
  168. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  169. package/cjs/series/gauge/gauge-transformer.d.ts +1 -0
  170. package/cjs/series/gauge/gauge-transformer.js +3 -0
  171. package/cjs/series/gauge/gauge-transformer.js.map +1 -1
  172. package/cjs/series/gauge/gauge.d.ts +0 -1
  173. package/cjs/series/gauge/gauge.js +1 -1
  174. package/cjs/series/gauge/gauge.js.map +1 -1
  175. package/cjs/series/interface/common.d.ts +6 -2
  176. package/cjs/series/interface/common.js.map +1 -1
  177. package/cjs/series/map/geo-source.d.ts +1 -1
  178. package/cjs/series/map/geo-source.js.map +1 -1
  179. package/cjs/series/polar/progress-like/progress-like.d.ts +0 -1
  180. package/cjs/series/polar/progress-like/progress-like.js +5 -5
  181. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  182. package/cjs/series/polar/rose-like/rose-like.js +1 -1
  183. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  184. package/cjs/series/progress/circular/circular-transformer.d.ts +5 -0
  185. package/cjs/series/progress/circular/circular-transformer.js +16 -0
  186. package/cjs/series/progress/circular/circular-transformer.js.map +1 -0
  187. package/cjs/series/progress/circular/circular.d.ts +3 -0
  188. package/cjs/series/progress/circular/circular.js +6 -6
  189. package/cjs/series/progress/circular/circular.js.map +1 -1
  190. package/cjs/series/radar/radar.js +2 -2
  191. package/cjs/series/radar/radar.js.map +1 -1
  192. package/cjs/series/range-column/range-column-transformer.d.ts +1 -0
  193. package/cjs/series/range-column/range-column-transformer.js +3 -0
  194. package/cjs/series/range-column/range-column-transformer.js.map +1 -1
  195. package/cjs/series/range-column/range-column.d.ts +0 -1
  196. package/cjs/series/range-column/range-column.js +1 -2
  197. package/cjs/series/range-column/range-column.js.map +1 -1
  198. package/cjs/series/rose/rose-transformer.d.ts +1 -0
  199. package/cjs/series/rose/rose-transformer.js +3 -0
  200. package/cjs/series/rose/rose-transformer.js.map +1 -1
  201. package/cjs/series/rose/rose.d.ts +0 -1
  202. package/cjs/series/rose/rose.js +2 -2
  203. package/cjs/series/rose/rose.js.map +1 -1
  204. package/cjs/series/waterfall/waterfall-transformer.d.ts +1 -0
  205. package/cjs/series/waterfall/waterfall-transformer.js +3 -0
  206. package/cjs/series/waterfall/waterfall-transformer.js.map +1 -1
  207. package/cjs/series/waterfall/waterfall.d.ts +0 -1
  208. package/cjs/series/waterfall/waterfall.js +1 -1
  209. package/cjs/series/waterfall/waterfall.js.map +1 -1
  210. package/cjs/theme/builtin/common/series/area.js +2 -1
  211. package/cjs/theme/builtin/common/series/area.js.map +1 -1
  212. package/cjs/typings/spec/common.d.ts +2 -2
  213. package/cjs/typings/spec/common.js.map +1 -1
  214. package/cjs/typings/spec/index.d.ts +1 -1
  215. package/cjs/typings/spec/index.js.map +1 -1
  216. package/cjs/vchart-all.js +2 -2
  217. package/cjs/vchart-all.js.map +1 -1
  218. package/cjs/vchart-simple.js +2 -2
  219. package/cjs/vchart-simple.js.map +1 -1
  220. package/esm/chart/area/area-transformer.js +1 -2
  221. package/esm/chart/area/area-transformer.js.map +1 -1
  222. package/esm/chart/base/base-chart-transformer.js +6 -8
  223. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  224. package/esm/chart/base/base-chart.js +3 -5
  225. package/esm/chart/base/base-chart.js.map +1 -1
  226. package/esm/chart/base/util.d.ts +2 -2
  227. package/esm/chart/base/util.js.map +1 -1
  228. package/esm/chart/interface/chart.js.map +1 -1
  229. package/esm/chart/interface/common.d.ts +1 -5
  230. package/esm/chart/interface/common.js.map +1 -1
  231. package/esm/chart/map/map-transformer.js.map +1 -1
  232. package/esm/chart/sequence/interface.d.ts +2 -2
  233. package/esm/chart/sequence/interface.js.map +1 -1
  234. package/esm/chart/sequence/sequence-transformer.js.map +1 -1
  235. package/esm/compile/compilable-base.js +1 -1
  236. package/esm/compile/compilable-base.js.map +1 -1
  237. package/esm/compile/compiler.d.ts +1 -0
  238. package/esm/compile/compiler.js +11 -9
  239. package/esm/compile/compiler.js.map +1 -1
  240. package/esm/component/axis/base-axis.js +2 -2
  241. package/esm/component/axis/base-axis.js.map +1 -1
  242. package/esm/component/axis/polar/axis.js.map +1 -1
  243. package/esm/component/base/base-component.js +1 -1
  244. package/esm/component/base/base-component.js.map +1 -1
  245. package/esm/component/brush/brush.d.ts +8 -0
  246. package/esm/component/brush/brush.js +71 -16
  247. package/esm/component/brush/brush.js.map +1 -1
  248. package/esm/component/brush/interface.d.ts +4 -0
  249. package/esm/component/brush/interface.js.map +1 -1
  250. package/esm/component/crosshair/base.js +1 -1
  251. package/esm/component/crosshair/base.js.map +1 -1
  252. package/esm/component/crosshair/cartesian.js +8 -4
  253. package/esm/component/crosshair/cartesian.js.map +1 -1
  254. package/esm/component/crosshair/polar.js +4 -2
  255. package/esm/component/crosshair/polar.js.map +1 -1
  256. package/esm/component/crosshair/utils/cartesian.d.ts +2 -0
  257. package/esm/component/crosshair/utils/cartesian.js +4 -0
  258. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  259. package/esm/component/custom-mark/custom-mark.d.ts +1 -0
  260. package/esm/component/custom-mark/custom-mark.js +13 -0
  261. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  262. package/esm/component/data-zoom/data-filter-base-component.d.ts +2 -2
  263. package/esm/component/data-zoom/data-filter-base-component.js +12 -10
  264. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  265. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +2 -0
  266. package/esm/component/data-zoom/data-zoom/data-zoom.js +21 -10
  267. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  268. package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -0
  269. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  270. package/esm/component/data-zoom/interface.d.ts +2 -0
  271. package/esm/component/data-zoom/interface.js.map +1 -1
  272. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +3 -2
  273. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  274. package/esm/component/data-zoom/util.js +5 -1
  275. package/esm/component/data-zoom/util.js.map +1 -1
  276. package/esm/component/geo/geo-coordinate.js.map +1 -1
  277. package/esm/component/indicator/indicator.js.map +1 -1
  278. package/esm/component/label/base-label.d.ts +2 -1
  279. package/esm/component/label/base-label.js +3 -0
  280. package/esm/component/label/base-label.js.map +1 -1
  281. package/esm/component/label/label.d.ts +1 -2
  282. package/esm/component/label/label.js +8 -9
  283. package/esm/component/label/label.js.map +1 -1
  284. package/esm/component/label/total-label.d.ts +1 -0
  285. package/esm/component/label/total-label.js +10 -0
  286. package/esm/component/label/total-label.js.map +1 -1
  287. package/esm/component/tooltip/constant.d.ts +5 -0
  288. package/esm/component/tooltip/constant.js +8 -0
  289. package/esm/component/tooltip/constant.js.map +1 -0
  290. package/esm/component/tooltip/index.d.ts +1 -0
  291. package/esm/component/tooltip/index.js +2 -0
  292. package/esm/component/tooltip/index.js.map +1 -1
  293. package/esm/component/tooltip/interface/spec.d.ts +4 -3
  294. package/esm/component/tooltip/interface/spec.js.map +1 -1
  295. package/esm/component/tooltip/tooltip-transformer.d.ts +2 -0
  296. package/esm/component/tooltip/tooltip-transformer.js +16 -1
  297. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  298. package/esm/component/tooltip/tooltip.d.ts +3 -3
  299. package/esm/component/tooltip/tooltip.js +29 -45
  300. package/esm/component/tooltip/tooltip.js.map +1 -1
  301. package/esm/core/index.d.ts +1 -1
  302. package/esm/core/index.js +1 -1
  303. package/esm/core/index.js.map +1 -1
  304. package/esm/core/vchart.d.ts +4 -1
  305. package/esm/core/vchart.js +50 -49
  306. package/esm/core/vchart.js.map +1 -1
  307. package/esm/event/event-dispatcher.d.ts +1 -0
  308. package/esm/event/event-dispatcher.js +4 -1
  309. package/esm/event/event-dispatcher.js.map +1 -1
  310. package/esm/event/event.js +1 -1
  311. package/esm/event/event.js.map +1 -1
  312. package/esm/event/interface.d.ts +2 -1
  313. package/esm/event/interface.js.map +1 -1
  314. package/esm/interaction/index.d.ts +1 -0
  315. package/esm/interaction/index.js +2 -0
  316. package/esm/interaction/index.js.map +1 -0
  317. package/esm/interaction/interface.js +1 -1
  318. package/esm/interaction/zoom/zoomable.js +4 -6
  319. package/esm/interaction/zoom/zoomable.js.map +1 -1
  320. package/esm/model/interface.d.ts +3 -8
  321. package/esm/model/interface.js.map +1 -1
  322. package/esm/plugin/base/base-plugin-service.d.ts +2 -2
  323. package/esm/plugin/base/base-plugin-service.js +5 -5
  324. package/esm/plugin/base/base-plugin-service.js.map +1 -1
  325. package/esm/plugin/base/base-plugin.d.ts +1 -0
  326. package/esm/plugin/base/base-plugin.js +3 -0
  327. package/esm/plugin/base/base-plugin.js.map +1 -1
  328. package/esm/plugin/base/interface.d.ts +3 -3
  329. package/esm/plugin/base/interface.js.map +1 -1
  330. package/esm/plugin/chart/formatter/formatter.d.ts +2 -2
  331. package/esm/plugin/chart/formatter/formatter.js +5 -7
  332. package/esm/plugin/chart/formatter/formatter.js.map +1 -1
  333. package/esm/plugin/chart/media-query/media-query.d.ts +1 -1
  334. package/esm/plugin/chart/media-query/media-query.js +4 -4
  335. package/esm/plugin/chart/media-query/media-query.js.map +1 -1
  336. package/esm/plugin/chart/plugin-service.d.ts +1 -0
  337. package/esm/plugin/chart/plugin-service.js +3 -0
  338. package/esm/plugin/chart/plugin-service.js.map +1 -1
  339. package/esm/plugin/components/plugin-service.d.ts +1 -0
  340. package/esm/plugin/components/plugin-service.js +3 -0
  341. package/esm/plugin/components/plugin-service.js.map +1 -1
  342. package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +2 -2
  343. package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
  344. package/esm/plugin/components/tooltip-handler/constants.d.ts +0 -5
  345. package/esm/plugin/components/tooltip-handler/constants.js +0 -8
  346. package/esm/plugin/components/tooltip-handler/constants.js.map +1 -1
  347. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -1
  348. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  349. package/esm/plugin/components/tooltip-handler/utils/position.d.ts +1 -0
  350. package/esm/region/interface.d.ts +2 -1
  351. package/esm/region/interface.js.map +1 -1
  352. package/esm/region/region.js +1 -1
  353. package/esm/region/region.js.map +1 -1
  354. package/esm/series/area/area-transformer.d.ts +1 -0
  355. package/esm/series/area/area-transformer.js +4 -1
  356. package/esm/series/area/area-transformer.js.map +1 -1
  357. package/esm/series/area/area.d.ts +0 -1
  358. package/esm/series/area/area.js +1 -1
  359. package/esm/series/area/area.js.map +1 -1
  360. package/esm/series/area/interface.d.ts +6 -1
  361. package/esm/series/area/interface.js.map +1 -1
  362. package/esm/series/bar/bar-transformer.d.ts +1 -0
  363. package/esm/series/bar/bar-transformer.js +3 -0
  364. package/esm/series/bar/bar-transformer.js.map +1 -1
  365. package/esm/series/bar/bar.d.ts +0 -1
  366. package/esm/series/bar/bar.js +2 -2
  367. package/esm/series/bar/bar.js.map +1 -1
  368. package/esm/series/base/base-series-transformer.d.ts +5 -3
  369. package/esm/series/base/base-series-transformer.js +10 -3
  370. package/esm/series/base/base-series-transformer.js.map +1 -1
  371. package/esm/series/base/base-series.d.ts +0 -4
  372. package/esm/series/base/base-series.js +11 -15
  373. package/esm/series/base/base-series.js.map +1 -1
  374. package/esm/series/cartesian/cartesian.js +3 -2
  375. package/esm/series/cartesian/cartesian.js.map +1 -1
  376. package/esm/series/funnel/funnel.js +2 -1
  377. package/esm/series/funnel/funnel.js.map +1 -1
  378. package/esm/series/gauge/gauge-pointer-transformer.d.ts +5 -0
  379. package/esm/series/gauge/gauge-pointer-transformer.js +8 -0
  380. package/esm/series/gauge/gauge-pointer-transformer.js.map +1 -0
  381. package/esm/series/gauge/gauge-pointer.d.ts +3 -1
  382. package/esm/series/gauge/gauge-pointer.js +6 -3
  383. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  384. package/esm/series/gauge/gauge-transformer.d.ts +1 -0
  385. package/esm/series/gauge/gauge-transformer.js +3 -0
  386. package/esm/series/gauge/gauge-transformer.js.map +1 -1
  387. package/esm/series/gauge/gauge.d.ts +0 -1
  388. package/esm/series/gauge/gauge.js +1 -1
  389. package/esm/series/gauge/gauge.js.map +1 -1
  390. package/esm/series/interface/common.d.ts +6 -2
  391. package/esm/series/interface/common.js.map +1 -1
  392. package/esm/series/map/geo-source.d.ts +1 -1
  393. package/esm/series/map/geo-source.js.map +1 -1
  394. package/esm/series/polar/progress-like/progress-like.d.ts +0 -1
  395. package/esm/series/polar/progress-like/progress-like.js +5 -5
  396. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  397. package/esm/series/polar/rose-like/rose-like.js +1 -1
  398. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  399. package/esm/series/progress/circular/circular-transformer.d.ts +5 -0
  400. package/esm/series/progress/circular/circular-transformer.js +8 -0
  401. package/esm/series/progress/circular/circular-transformer.js.map +1 -0
  402. package/esm/series/progress/circular/circular.d.ts +3 -0
  403. package/esm/series/progress/circular/circular.js +8 -5
  404. package/esm/series/progress/circular/circular.js.map +1 -1
  405. package/esm/series/radar/radar.js +2 -2
  406. package/esm/series/radar/radar.js.map +1 -1
  407. package/esm/series/range-column/range-column-transformer.d.ts +1 -0
  408. package/esm/series/range-column/range-column-transformer.js +3 -0
  409. package/esm/series/range-column/range-column-transformer.js.map +1 -1
  410. package/esm/series/range-column/range-column.d.ts +0 -1
  411. package/esm/series/range-column/range-column.js +1 -2
  412. package/esm/series/range-column/range-column.js.map +1 -1
  413. package/esm/series/rose/rose-transformer.d.ts +1 -0
  414. package/esm/series/rose/rose-transformer.js +3 -0
  415. package/esm/series/rose/rose-transformer.js.map +1 -1
  416. package/esm/series/rose/rose.d.ts +0 -1
  417. package/esm/series/rose/rose.js +2 -2
  418. package/esm/series/rose/rose.js.map +1 -1
  419. package/esm/series/waterfall/waterfall-transformer.d.ts +1 -0
  420. package/esm/series/waterfall/waterfall-transformer.js +3 -0
  421. package/esm/series/waterfall/waterfall-transformer.js.map +1 -1
  422. package/esm/series/waterfall/waterfall.d.ts +0 -1
  423. package/esm/series/waterfall/waterfall.js +1 -1
  424. package/esm/series/waterfall/waterfall.js.map +1 -1
  425. package/esm/theme/builtin/common/series/area.js +2 -1
  426. package/esm/theme/builtin/common/series/area.js.map +1 -1
  427. package/esm/typings/spec/common.d.ts +2 -2
  428. package/esm/typings/spec/common.js.map +1 -1
  429. package/esm/typings/spec/index.d.ts +1 -1
  430. package/esm/typings/spec/index.js.map +1 -1
  431. package/esm/vchart-all.js +2 -2
  432. package/esm/vchart-all.js.map +1 -1
  433. package/esm/vchart-simple.js +1 -3
  434. package/esm/vchart-simple.js.map +1 -1
  435. package/package.json +15 -14
@@ -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":"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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';\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,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/radar/radar.ts"],"names":[],"mappings":"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","file":"radar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin } from '../mixin/line-mixin';\nimport type { ILineMark } from '../../mark/line';\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\nimport { AttributeLevel, ChartEvent, POLAR_START_RADIAN } from '../../constant';\nimport { DEFAULT_LINEAR_INTERPOLATE } from '../../typings/interpolate';\nimport type { Datum, IPoint, IPolarPoint } from '../../typings';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport { degreeToRadian, isArray, mixin, isValid } from '@visactor/vutils';\nimport type { IRadarSeriesSpec } from './interface';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { IRadarAnimationParams, RadarAppearPreset } from './animation';\nimport { registerRadarAnimation } from './animation';\nimport { RoseLikeSeries } from '../polar/rose-like';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAreaMark } from '../../mark/area';\nimport { registerAreaMark } from '../../mark/area';\nimport { registerLineMark } from '../../mark/line';\nimport { registerSymbolMark } from '../../mark/symbol';\nimport { radarSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport { registerMarkOverlapTransform } from '@visactor/vgrammar-core';\nimport { LineLikeSeriesSpecTransformer } from '../mixin/line-mixin-transformer';\n\nexport interface RadarSeries<T extends IRadarSeriesSpec>\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | 'encodeDefined'\n | '_lineMark'\n | '_symbolMark'\n | 'addOverlapCompile'\n >,\n RoseLikeSeries<T> {}\n\nexport class RadarSeries<T extends IRadarSeriesSpec = IRadarSeriesSpec> extends RoseLikeSeries<T> {\n static readonly type: string = SeriesTypeEnum.radar;\n type = SeriesTypeEnum.radar;\n\n static readonly mark: SeriesMarkMap = radarSeriesMark;\n static readonly transformerConstructor = LineLikeSeriesSpecTransformer as any;\n readonly transformerConstructor = LineLikeSeriesSpecTransformer;\n\n private _areaMark: ILineMark;\n protected _sortDataByAxis: boolean = false;\n\n initGroups() {\n // do nothing\n }\n\n compile(): void {\n super.compile();\n this.addOverlapCompile();\n }\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n this.initAreaMark(progressive, isAreaVisible && seriesMark === 'area');\n this.initLineMark(progressive, seriesMark === 'line' || (seriesMark === 'area' && !isAreaVisible));\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n this.initAreaMarkStyle();\n this.initLineMarkStyle();\n this.initSymbolMarkStyle();\n }\n\n initAreaMark(progressive: IMarkProgressiveConfig, isSeriesMark: boolean) {\n this._areaMark = this._createMark(RadarSeries.mark.area, {\n progressive,\n isSeriesMark,\n customShape: this._spec.area?.customShape,\n stateSort: this._spec.area?.stateSort\n }) as IAreaMark;\n }\n\n initAreaMarkStyle() {\n const areaMark = this._areaMark;\n if (areaMark) {\n this.setMarkStyle(\n areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n x1: (datum: Datum) => {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return Number.NaN;\n }\n return this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]\n ).x;\n },\n y1: (datum: Datum) => {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return Number.NaN;\n }\n\n const value = this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this._stack ? this.getDatumPositionValues(datum, this._innerRadiusField) : this.radiusScale.domain()[0]\n ).y;\n return value;\n },\n fill: this.getColorAttribute(),\n curveType: DEFAULT_LINEAR_INTERPOLATE,\n closePath: true\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined,\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.event.on(ChartEvent.viewDataStatisticsUpdate, { filter: param => param.model === this }, () => {\n this.encodeDefined(areaMark, 'defined');\n });\n }\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._lineMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._lineMark);\n this._symbolMark && this._tooltipHelper.activeTriggerSet.mark.add(this._symbolMark);\n this._areaMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._areaMark);\n }\n\n initAnimation() {\n const animationParams: IRadarAnimationParams = {\n center: () => this.angleAxisHelper?.center(),\n radius: () => {\n const rect = this.getLayoutRect();\n return Math.min(rect.width, rect.height);\n },\n startAngle: isValid(this._spec.startAngle) ? degreeToRadian(this._spec.startAngle) : POLAR_START_RADIAN,\n pointToCoord: (point: IPoint) => this.angleAxisHelper?.pointToCoord(point),\n coordToPoint: (coord: IPolarPoint) => this.angleAxisHelper.coordToPoint(coord)\n };\n const appearPreset = ((this._spec?.animationAppear as IStateAnimateSpec<RadarAppearPreset>)?.preset ??\n 'clipIn') as RadarAppearPreset;\n\n if (appearPreset === 'clipIn') {\n if (this._rootMark) {\n this._rootMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('radarGroup')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.group, this._spec, this._markAttributeContext)\n )\n );\n }\n }\n\n // TODO: animationType\n const markAnimationMap: [IMark, string][] = [\n [this._areaMark, 'radar'],\n [this._lineMark, 'radar'],\n [this._symbolMark, 'radarSymbol']\n ];\n\n // 为 mark 添加动画\n markAnimationMap.forEach(([mark, animation]) => {\n if (isValid(mark)) {\n const getAnimation = Factory.getAnimationInKey(animation);\n mark.setAnimationConfig(\n animationConfig(\n getAnimation?.(animationParams, appearPreset),\n userAnimationConfig(mark.name, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDefaultShapeType() {\n return 'square';\n }\n\n getActiveMarks(): IMark[] {\n return [this._areaMark, this._symbolMark, this._lineMark];\n }\n\n getSeriesStyle(datum: Datum) {\n return (attribute: string) => {\n let result = this._seriesMark?.getAttribute(attribute as any, datum) ?? undefined;\n if (attribute === 'fill' && !result) {\n attribute = 'stroke';\n result = this._seriesMark?.getAttribute(attribute, datum) ?? undefined;\n }\n if (attribute === 'stroke' && isArray(result)) {\n return result[0];\n }\n return result;\n };\n }\n}\n\nmixin(RadarSeries, LineLikeSeriesMixin);\n\nexport const registerRadarSeries = () => {\n registerMarkOverlapTransform();\n registerAreaMark();\n registerLineMark();\n registerSymbolMark();\n registerRadarAnimation();\n Factory.registerSeries(RadarSeries.type, RadarSeries);\n};\n"]}
1
+ {"version":3,"sources":["../src/series/radar/radar.ts"],"names":[],"mappings":"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","file":"radar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin } from '../mixin/line-mixin';\nimport type { ILineMark } from '../../mark/line';\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\nimport { AttributeLevel, ChartEvent, POLAR_START_RADIAN } from '../../constant';\nimport { DEFAULT_LINEAR_INTERPOLATE } from '../../typings/interpolate';\nimport type { Datum, IPoint, IPolarPoint } from '../../typings';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\nimport { degreeToRadian, isArray, mixin, isValid } from '@visactor/vutils';\nimport type { IRadarSeriesSpec } from './interface';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { IRadarAnimationParams, RadarAppearPreset } from './animation';\nimport { registerRadarAnimation } from './animation';\nimport { RoseLikeSeries } from '../polar/rose-like';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAreaMark } from '../../mark/area';\nimport { registerAreaMark } from '../../mark/area';\nimport { registerLineMark } from '../../mark/line';\nimport { registerSymbolMark } from '../../mark/symbol';\nimport { radarSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport { registerMarkOverlapTransform } from '@visactor/vgrammar-core';\nimport { LineLikeSeriesSpecTransformer } from '../mixin/line-mixin-transformer';\n\nexport interface RadarSeries<T extends IRadarSeriesSpec>\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | 'encodeDefined'\n | '_lineMark'\n | '_symbolMark'\n | 'addOverlapCompile'\n >,\n RoseLikeSeries<T> {}\n\nexport class RadarSeries<T extends IRadarSeriesSpec = IRadarSeriesSpec> extends RoseLikeSeries<T> {\n static readonly type: string = SeriesTypeEnum.radar;\n type = SeriesTypeEnum.radar;\n\n static readonly mark: SeriesMarkMap = radarSeriesMark;\n static readonly transformerConstructor = LineLikeSeriesSpecTransformer as any;\n readonly transformerConstructor = LineLikeSeriesSpecTransformer;\n\n private _areaMark: ILineMark;\n protected _sortDataByAxis: boolean = false;\n\n initGroups() {\n // do nothing\n }\n\n compile(): void {\n super.compile();\n this.addOverlapCompile();\n }\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n this.initAreaMark(progressive, isAreaVisible && seriesMark === 'area');\n this.initLineMark(progressive, seriesMark === 'line' || (seriesMark === 'area' && !isAreaVisible));\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n this.initAreaMarkStyle();\n this.initLineMarkStyle();\n this.initSymbolMarkStyle();\n }\n\n initAreaMark(progressive: IMarkProgressiveConfig, isSeriesMark: boolean) {\n this._areaMark = this._createMark(RadarSeries.mark.area, {\n progressive,\n isSeriesMark,\n customShape: this._spec.area?.customShape,\n stateSort: this._spec.area?.stateSort\n }) as IAreaMark;\n }\n\n initAreaMarkStyle() {\n const areaMark = this._areaMark;\n if (areaMark) {\n this.setMarkStyle(\n areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n x1: (datum: Datum) => {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return Number.NaN;\n }\n return this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this.getStack()\n ? this.getDatumPositionValues(datum, this._innerRadiusField)\n : this.radiusScale.domain()[0]\n ).x;\n },\n y1: (datum: Datum) => {\n if (!datum || !this.angleAxisHelper || !this.radiusAxisHelper) {\n return Number.NaN;\n }\n\n const value = this.valueToPosition(\n this.getDatumPositionValues(datum, this._angleField),\n this.getStack()\n ? this.getDatumPositionValues(datum, this._innerRadiusField)\n : this.radiusScale.domain()[0]\n ).y;\n return value;\n },\n fill: this.getColorAttribute(),\n curveType: DEFAULT_LINEAR_INTERPOLATE,\n closePath: true\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined,\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.event.on(ChartEvent.viewDataStatisticsUpdate, { filter: param => param.model === this }, () => {\n this.encodeDefined(areaMark, 'defined');\n });\n }\n }\n\n protected initTooltip() {\n super.initTooltip();\n\n this._lineMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._lineMark);\n this._symbolMark && this._tooltipHelper.activeTriggerSet.mark.add(this._symbolMark);\n this._areaMark && this._tooltipHelper.activeTriggerSet.dimension.add(this._areaMark);\n }\n\n initAnimation() {\n const animationParams: IRadarAnimationParams = {\n center: () => this.angleAxisHelper?.center(),\n radius: () => {\n const rect = this.getLayoutRect();\n return Math.min(rect.width, rect.height);\n },\n startAngle: isValid(this._spec.startAngle) ? degreeToRadian(this._spec.startAngle) : POLAR_START_RADIAN,\n pointToCoord: (point: IPoint) => this.angleAxisHelper?.pointToCoord(point),\n coordToPoint: (coord: IPolarPoint) => this.angleAxisHelper.coordToPoint(coord)\n };\n const appearPreset = ((this._spec?.animationAppear as IStateAnimateSpec<RadarAppearPreset>)?.preset ??\n 'clipIn') as RadarAppearPreset;\n\n if (appearPreset === 'clipIn') {\n if (this._rootMark) {\n this._rootMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('radarGroup')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.group, this._spec, this._markAttributeContext)\n )\n );\n }\n }\n\n // TODO: animationType\n const markAnimationMap: [IMark, string][] = [\n [this._areaMark, 'radar'],\n [this._lineMark, 'radar'],\n [this._symbolMark, 'radarSymbol']\n ];\n\n // 为 mark 添加动画\n markAnimationMap.forEach(([mark, animation]) => {\n if (isValid(mark)) {\n const getAnimation = Factory.getAnimationInKey(animation);\n mark.setAnimationConfig(\n animationConfig(\n getAnimation?.(animationParams, appearPreset),\n userAnimationConfig(mark.name, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDefaultShapeType() {\n return 'square';\n }\n\n getActiveMarks(): IMark[] {\n return [this._areaMark, this._symbolMark, this._lineMark];\n }\n\n getSeriesStyle(datum: Datum) {\n return (attribute: string) => {\n let result = this._seriesMark?.getAttribute(attribute as any, datum) ?? undefined;\n if (attribute === 'fill' && !result) {\n attribute = 'stroke';\n result = this._seriesMark?.getAttribute(attribute, datum) ?? undefined;\n }\n if (attribute === 'stroke' && isArray(result)) {\n return result[0];\n }\n return result;\n };\n }\n}\n\nmixin(RadarSeries, LineLikeSeriesMixin);\n\nexport const registerRadarSeries = () => {\n registerMarkOverlapTransform();\n registerAreaMark();\n registerLineMark();\n registerSymbolMark();\n registerRadarAnimation();\n Factory.registerSeries(RadarSeries.type, RadarSeries);\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  import { BarSeriesSpecTransformer } from '../bar/bar-transformer';
2
2
  import type { IRangeColumnSeriesSpec, IRangeColumnSeriesTheme } from './interface';
3
3
  export declare class RangeColumnSeriesSpecTransformer<T extends IRangeColumnSeriesSpec = IRangeColumnSeriesSpec, K extends IRangeColumnSeriesTheme = IRangeColumnSeriesTheme> extends BarSeriesSpecTransformer<any, K> {
4
+ protected _supportStack: boolean;
4
5
  protected _transformLabelSpec(spec: T): void;
5
6
  }
@@ -1,6 +1,9 @@
1
1
  import { BarSeriesSpecTransformer } from "../bar/bar-transformer";
2
2
 
3
3
  export class RangeColumnSeriesSpecTransformer extends BarSeriesSpecTransformer {
4
+ constructor() {
5
+ super(...arguments), this._supportStack = !1;
6
+ }
4
7
  _transformLabelSpec(spec) {
5
8
  var _a;
6
9
  "bothEnd" !== (null === (_a = spec.label) || void 0 === _a ? void 0 : _a.position) && this._addMarkLabelSpec(spec, "bar");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/range-column/range-column-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAMlE,MAAM,OAAO,gCAGX,SAAQ,wBAAgC;IAC9B,mBAAmB,CAAC,IAAO;;QACnC,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC;QAC3C,IAAI,aAAa,cAAyB,EAAE;YAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,QAAyB,CAAC;SACtD;IACH,CAAC;CACF","file":"range-column-transformer.js","sourcesContent":["import { BarSeriesSpecTransformer } from '../bar/bar-transformer';\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { IRangeColumnSeriesSpec, IRangeColumnSeriesTheme } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { PositionEnum } from './interface';\n\nexport class RangeColumnSeriesSpecTransformer<\n T extends IRangeColumnSeriesSpec = IRangeColumnSeriesSpec,\n K extends IRangeColumnSeriesTheme = IRangeColumnSeriesTheme\n> extends BarSeriesSpecTransformer<any, K> {\n protected _transformLabelSpec(spec: T): void {\n const labelPosition = spec.label?.position;\n if (labelPosition !== PositionEnum.bothEnd) {\n this._addMarkLabelSpec(spec, SeriesMarkNameEnum.bar);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/range-column/range-column-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAMlE,MAAM,OAAO,gCAGX,SAAQ,wBAAgC;IAH1C;;QAIY,kBAAa,GAAY,KAAK,CAAC;IAQ3C,CAAC;IANW,mBAAmB,CAAC,IAAO;;QACnC,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC;QAC3C,IAAI,aAAa,cAAyB,EAAE;YAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,QAAyB,CAAC;SACtD;IACH,CAAC;CACF","file":"range-column-transformer.js","sourcesContent":["import { BarSeriesSpecTransformer } from '../bar/bar-transformer';\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { IRangeColumnSeriesSpec, IRangeColumnSeriesTheme } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { PositionEnum } from './interface';\n\nexport class RangeColumnSeriesSpecTransformer<\n T extends IRangeColumnSeriesSpec = IRangeColumnSeriesSpec,\n K extends IRangeColumnSeriesTheme = IRangeColumnSeriesTheme\n> extends BarSeriesSpecTransformer<any, K> {\n protected _supportStack: boolean = false;\n\n protected _transformLabelSpec(spec: T): void {\n const labelPosition = spec.label?.position;\n if (labelPosition !== PositionEnum.bothEnd) {\n this._addMarkLabelSpec(spec, SeriesMarkNameEnum.bar);\n }\n }\n}\n"]}
@@ -15,7 +15,6 @@ export declare class RangeColumnSeries<T extends IRangeColumnSeriesSpec = IRange
15
15
  static readonly mark: SeriesMarkMap;
16
16
  static readonly transformerConstructor: any;
17
17
  readonly transformerConstructor: any;
18
- protected _stack: boolean;
19
18
  private _minLabelMark?;
20
19
  private _maxLabelMark?;
21
20
  private _labelMark?;
@@ -29,8 +29,7 @@ export const DefaultBandWidth = 6;
29
29
  export class RangeColumnSeries extends BarSeries {
30
30
  constructor() {
31
31
  super(...arguments), this.type = SeriesTypeEnum.rangeColumn, this._barMarkType = "rect",
32
- this._barName = SeriesTypeEnum.bar, this.transformerConstructor = RangeColumnSeriesSpecTransformer,
33
- this._stack = !1;
32
+ this._barName = SeriesTypeEnum.bar, this.transformerConstructor = RangeColumnSeriesSpecTransformer;
34
33
  }
35
34
  initMark() {
36
35
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;