@visactor/vchart 1.9.0-alpha.1 → 1.9.0-alpha.2

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 (948) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +1744 -1442
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.js +6 -1
  6. package/cjs/animation/utils.js.map +1 -1
  7. package/cjs/chart/area/area.js +3 -4
  8. package/cjs/chart/area/area.js.map +1 -1
  9. package/cjs/chart/bar/3d/bar-3d.js +3 -3
  10. package/cjs/chart/bar/3d/bar-3d.js.map +1 -1
  11. package/cjs/chart/bar/bar.js +3 -4
  12. package/cjs/chart/bar/bar.js.map +1 -1
  13. package/cjs/chart/base/base-chart.js +4 -4
  14. package/cjs/chart/base/base-chart.js.map +1 -1
  15. package/cjs/chart/box-plot/box-plot-transformer.js +3 -3
  16. package/cjs/chart/box-plot/box-plot-transformer.js.map +1 -1
  17. package/cjs/chart/box-plot/box-plot.js +4 -5
  18. package/cjs/chart/box-plot/box-plot.js.map +1 -1
  19. package/cjs/chart/circle-packing/circle-packing.js +3 -3
  20. package/cjs/chart/circle-packing/circle-packing.js.map +1 -1
  21. package/cjs/chart/common/common.js +4 -4
  22. package/cjs/chart/common/common.js.map +1 -1
  23. package/cjs/chart/correlation/correlation.js +4 -4
  24. package/cjs/chart/correlation/correlation.js.map +1 -1
  25. package/cjs/chart/funnel/3d/funnel-3d.js +4 -5
  26. package/cjs/chart/funnel/3d/funnel-3d.js.map +1 -1
  27. package/cjs/chart/funnel/funnel.js +4 -5
  28. package/cjs/chart/funnel/funnel.js.map +1 -1
  29. package/cjs/chart/gauge/gauge.js +3 -3
  30. package/cjs/chart/gauge/gauge.js.map +1 -1
  31. package/cjs/chart/heatmap/heatmap.js +4 -5
  32. package/cjs/chart/heatmap/heatmap.js.map +1 -1
  33. package/cjs/chart/histogram/3d/histogram-3d.js +3 -3
  34. package/cjs/chart/histogram/3d/histogram-3d.js.map +1 -1
  35. package/cjs/chart/histogram/histogram.js +4 -5
  36. package/cjs/chart/histogram/histogram.js.map +1 -1
  37. package/cjs/chart/interface/type.d.ts +1 -1
  38. package/cjs/chart/interface/type.js.map +1 -1
  39. package/cjs/chart/line/line.js +3 -4
  40. package/cjs/chart/line/line.js.map +1 -1
  41. package/cjs/chart/liquid/liquid.js +4 -5
  42. package/cjs/chart/liquid/liquid.js.map +1 -1
  43. package/cjs/chart/map/map.js +3 -3
  44. package/cjs/chart/map/map.js.map +1 -1
  45. package/cjs/chart/pie/3d/pie-3d.js +3 -3
  46. package/cjs/chart/pie/3d/pie-3d.js.map +1 -1
  47. package/cjs/chart/pie/pie.js +3 -3
  48. package/cjs/chart/pie/pie.js.map +1 -1
  49. package/cjs/chart/polar/polar-transformer.js +2 -2
  50. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  51. package/cjs/chart/progress/circular/circular.js +3 -3
  52. package/cjs/chart/progress/circular/circular.js.map +1 -1
  53. package/cjs/chart/progress/linear/linear.js +3 -3
  54. package/cjs/chart/progress/linear/linear.js.map +1 -1
  55. package/cjs/chart/radar/radar.js +3 -4
  56. package/cjs/chart/radar/radar.js.map +1 -1
  57. package/cjs/chart/range-area/range-area-transformer.js +2 -2
  58. package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
  59. package/cjs/chart/range-area/range-area.js +4 -5
  60. package/cjs/chart/range-area/range-area.js.map +1 -1
  61. package/cjs/chart/range-column/3d/range-column-3d-transformer.js +2 -2
  62. package/cjs/chart/range-column/3d/range-column-3d-transformer.js.map +1 -1
  63. package/cjs/chart/range-column/3d/range-column-3d.js +4 -4
  64. package/cjs/chart/range-column/3d/range-column-3d.js.map +1 -1
  65. package/cjs/chart/range-column/range-column-transformer.js +2 -2
  66. package/cjs/chart/range-column/range-column-transformer.js.map +1 -1
  67. package/cjs/chart/range-column/range-column.js +4 -4
  68. package/cjs/chart/range-column/range-column.js.map +1 -1
  69. package/cjs/chart/rose/rose.js +3 -4
  70. package/cjs/chart/rose/rose.js.map +1 -1
  71. package/cjs/chart/sankey/sankey.js +4 -5
  72. package/cjs/chart/sankey/sankey.js.map +1 -1
  73. package/cjs/chart/scatter/scatter.js +4 -6
  74. package/cjs/chart/scatter/scatter.js.map +1 -1
  75. package/cjs/chart/sequence/sequence-transformer.js +3 -3
  76. package/cjs/chart/sequence/sequence-transformer.js.map +1 -1
  77. package/cjs/chart/sequence/sequence.js +4 -4
  78. package/cjs/chart/sequence/sequence.js.map +1 -1
  79. package/cjs/chart/sunburst/sunburst.js +4 -5
  80. package/cjs/chart/sunburst/sunburst.js.map +1 -1
  81. package/cjs/chart/treemap/treemap.js +4 -5
  82. package/cjs/chart/treemap/treemap.js.map +1 -1
  83. package/cjs/chart/util.js +2 -2
  84. package/cjs/chart/util.js.map +1 -1
  85. package/cjs/chart/waterfall/waterfall.js +4 -5
  86. package/cjs/chart/waterfall/waterfall.js.map +1 -1
  87. package/cjs/chart/word-cloud/3d/word-cloud-3d.js +3 -3
  88. package/cjs/chart/word-cloud/3d/word-cloud-3d.js.map +1 -1
  89. package/cjs/chart/word-cloud/base/base.js +2 -2
  90. package/cjs/chart/word-cloud/base/base.js.map +1 -1
  91. package/cjs/chart/word-cloud/word-cloud.js +4 -5
  92. package/cjs/chart/word-cloud/word-cloud.js.map +1 -1
  93. package/cjs/compile/grammar-item.js +1 -2
  94. package/cjs/compile/interface/compiler.d.ts +2 -0
  95. package/cjs/compile/interface/compiler.js.map +1 -1
  96. package/cjs/compile/mark/interface.d.ts +0 -9
  97. package/cjs/compile/mark/interface.js +3 -10
  98. package/cjs/compile/mark/interface.js.map +1 -1
  99. package/cjs/component/axis/cartesian/axis.d.ts +8 -1
  100. package/cjs/component/axis/cartesian/axis.js +24 -9
  101. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  102. package/cjs/component/axis/cartesian/interface/spec.d.ts +19 -3
  103. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  104. package/cjs/component/axis/cartesian/util/common.js +3 -3
  105. package/cjs/component/axis/cartesian/util/common.js.map +1 -1
  106. package/cjs/component/axis/polar/axis.js +4 -2
  107. package/cjs/component/axis/polar/axis.js.map +1 -1
  108. package/cjs/component/crosshair/cartesian.js +7 -7
  109. package/cjs/component/crosshair/cartesian.js.map +1 -1
  110. package/cjs/component/crosshair/config.d.ts +1 -1
  111. package/cjs/component/crosshair/config.js.map +1 -1
  112. package/cjs/component/crosshair/polar.js +9 -9
  113. package/cjs/component/crosshair/polar.js.map +1 -1
  114. package/cjs/component/custom-mark/custom-mark.js +2 -1
  115. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  116. package/cjs/component/data-zoom/constant.d.ts +1 -1
  117. package/cjs/component/data-zoom/constant.js.map +1 -1
  118. package/cjs/component/data-zoom/data-filter-base-component.js +8 -8
  119. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  120. package/cjs/component/data-zoom/data-zoom/data-zoom.js +3 -3
  121. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  122. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +3 -3
  123. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  124. package/cjs/component/data-zoom/util.js +2 -3
  125. package/cjs/component/data-zoom/util.js.map +1 -1
  126. package/cjs/component/label/label.js +4 -4
  127. package/cjs/component/label/label.js.map +1 -1
  128. package/cjs/component/label/total-label.js +4 -4
  129. package/cjs/component/label/total-label.js.map +1 -1
  130. package/cjs/component/label/util.js +4 -4
  131. package/cjs/component/label/util.js.map +1 -1
  132. package/cjs/component/marker/base-marker.d.ts +5 -1
  133. package/cjs/component/marker/base-marker.js.map +1 -1
  134. package/cjs/component/marker/mark-area/mark-area.js +7 -3
  135. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  136. package/cjs/component/marker/mark-line/mark-line.js +6 -2
  137. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  138. package/cjs/component/marker/mark-point/mark-point.js +6 -2
  139. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  140. package/cjs/component/marker/utils.js +2 -2
  141. package/cjs/component/marker/utils.js.map +1 -1
  142. package/cjs/component/tooltip/interface/theme.d.ts +1 -0
  143. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  144. package/cjs/component/tooltip/tooltip.d.ts +2 -1
  145. package/cjs/component/tooltip/tooltip.js +12 -8
  146. package/cjs/component/tooltip/tooltip.js.map +1 -1
  147. package/cjs/constant/base.js +2 -1
  148. package/cjs/constant/scroll-bar.js +1 -2
  149. package/cjs/core/expression-function.js +2 -1
  150. package/cjs/core/factory.js +2 -3
  151. package/cjs/core/factory.js.map +1 -1
  152. package/cjs/core/index.d.ts +1 -1
  153. package/cjs/core/index.js +1 -1
  154. package/cjs/core/index.js.map +1 -1
  155. package/cjs/data/transforms/marker-filter.d.ts +5 -0
  156. package/cjs/data/transforms/marker-filter.js +17 -0
  157. package/cjs/data/transforms/marker-filter.js.map +1 -0
  158. package/cjs/event/event-dispatcher.js +1 -2
  159. package/cjs/event/events/dimension/util/cartesian.js +2 -2
  160. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  161. package/cjs/event/index.js +2 -1
  162. package/cjs/index-lark.js +2 -2
  163. package/cjs/index-lark.js.map +1 -1
  164. package/cjs/index-wx.js +2 -2
  165. package/cjs/index-wx.js.map +1 -1
  166. package/cjs/interaction/drill/drillable.d.ts +1 -1
  167. package/cjs/interaction/drill/drillable.js +2 -2
  168. package/cjs/interaction/drill/drillable.js.map +1 -1
  169. package/cjs/interaction/zoom/zoomable.d.ts +1 -1
  170. package/cjs/interaction/zoom/zoomable.js +10 -10
  171. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  172. package/cjs/layout/interface.d.ts +0 -1
  173. package/cjs/layout/interface.js.map +1 -1
  174. package/cjs/mark/arc-3d.js +2 -2
  175. package/cjs/mark/arc-3d.js.map +1 -1
  176. package/cjs/mark/arc.js +2 -2
  177. package/cjs/mark/arc.js.map +1 -1
  178. package/cjs/mark/area.js +2 -2
  179. package/cjs/mark/area.js.map +1 -1
  180. package/cjs/mark/box-plot.js +2 -2
  181. package/cjs/mark/box-plot.js.map +1 -1
  182. package/cjs/mark/cell.js +2 -2
  183. package/cjs/mark/cell.js.map +1 -1
  184. package/cjs/mark/component.js +2 -2
  185. package/cjs/mark/component.js.map +1 -1
  186. package/cjs/mark/group.js +2 -2
  187. package/cjs/mark/group.js.map +1 -1
  188. package/cjs/mark/image.js +2 -2
  189. package/cjs/mark/image.js.map +1 -1
  190. package/cjs/mark/interface/type.d.ts +1 -1
  191. package/cjs/mark/interface/type.js.map +1 -1
  192. package/cjs/mark/label.js +2 -2
  193. package/cjs/mark/label.js.map +1 -1
  194. package/cjs/mark/line.js +2 -2
  195. package/cjs/mark/line.js.map +1 -1
  196. package/cjs/mark/link-path.js +2 -2
  197. package/cjs/mark/link-path.js.map +1 -1
  198. package/cjs/mark/liquid.js +2 -2
  199. package/cjs/mark/liquid.js.map +1 -1
  200. package/cjs/mark/path.js +2 -2
  201. package/cjs/mark/path.js.map +1 -1
  202. package/cjs/mark/polygon/polygon.js +2 -2
  203. package/cjs/mark/polygon/polygon.js.map +1 -1
  204. package/cjs/mark/polygon/pyramid-3d.js +2 -2
  205. package/cjs/mark/polygon/pyramid-3d.js.map +1 -1
  206. package/cjs/mark/progress-arc.js +2 -3
  207. package/cjs/mark/progress-arc.js.map +1 -1
  208. package/cjs/mark/rect-3d.js +2 -2
  209. package/cjs/mark/rect-3d.js.map +1 -1
  210. package/cjs/mark/rect.js +2 -2
  211. package/cjs/mark/rect.js.map +1 -1
  212. package/cjs/mark/ripple.js +2 -2
  213. package/cjs/mark/ripple.js.map +1 -1
  214. package/cjs/mark/rule.js +2 -2
  215. package/cjs/mark/rule.js.map +1 -1
  216. package/cjs/mark/symbol.js +3 -3
  217. package/cjs/mark/symbol.js.map +1 -1
  218. package/cjs/mark/text.js +2 -2
  219. package/cjs/mark/text.js.map +1 -1
  220. package/cjs/mark/utils/common.js +3 -7
  221. package/cjs/mark/utils/common.js.map +1 -1
  222. package/cjs/plugin/components/tooltip-handler/base.d.ts +3 -2
  223. package/cjs/plugin/components/tooltip-handler/base.js +15 -15
  224. package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
  225. package/cjs/plugin/components/tooltip-handler/dom/constant.d.ts +1 -0
  226. package/cjs/plugin/components/tooltip-handler/dom/constant.js +6 -0
  227. package/cjs/plugin/components/tooltip-handler/dom/constant.js.map +1 -0
  228. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +6 -5
  229. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  230. package/cjs/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js.map +1 -1
  231. package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js +5 -4
  232. package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
  233. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.d.ts +2 -1
  234. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js +18 -2
  235. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js.map +1 -1
  236. package/cjs/plugin/components/tooltip-handler/dom/model/interface.d.ts +3 -2
  237. package/cjs/plugin/components/tooltip-handler/dom/model/interface.js.map +1 -1
  238. package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js +16 -11
  239. package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js.map +1 -1
  240. package/cjs/plugin/components/tooltip-handler/dom/model/style-constants.d.ts +0 -1
  241. package/cjs/plugin/components/tooltip-handler/dom/model/style-constants.js +3 -8
  242. package/cjs/plugin/components/tooltip-handler/dom/model/style-constants.js.map +1 -1
  243. package/cjs/plugin/components/tooltip-handler/dom/model/tooltip-model.d.ts +1 -1
  244. package/cjs/plugin/components/tooltip-handler/dom/model/tooltip-model.js +5 -5
  245. package/cjs/plugin/components/tooltip-handler/dom/model/tooltip-model.js.map +1 -1
  246. package/cjs/plugin/components/tooltip-handler/dom/utils/common.d.ts +3 -0
  247. package/cjs/plugin/components/tooltip-handler/dom/utils/common.js +33 -0
  248. package/cjs/plugin/components/tooltip-handler/dom/utils/common.js.map +1 -0
  249. package/cjs/plugin/components/tooltip-handler/dom/utils/index.d.ts +2 -0
  250. package/cjs/plugin/components/tooltip-handler/dom/utils/index.js +21 -0
  251. package/cjs/plugin/components/tooltip-handler/dom/utils/index.js.map +1 -0
  252. package/cjs/plugin/components/tooltip-handler/dom/utils/style.d.ts +4 -0
  253. package/cjs/plugin/components/tooltip-handler/dom/utils/style.js +87 -0
  254. package/cjs/plugin/components/tooltip-handler/dom/utils/style.js.map +1 -0
  255. package/cjs/plugin/components/tooltip-handler/interface/style.d.ts +5 -0
  256. package/cjs/plugin/components/tooltip-handler/interface/style.js.map +1 -1
  257. package/cjs/plugin/components/tooltip-handler/utils/attribute.d.ts +3 -3
  258. package/cjs/plugin/components/tooltip-handler/utils/attribute.js +15 -11
  259. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  260. package/cjs/plugin/components/tooltip-handler/utils/common.d.ts +3 -2
  261. package/cjs/plugin/components/tooltip-handler/utils/common.js +12 -13
  262. package/cjs/plugin/components/tooltip-handler/utils/common.js.map +1 -1
  263. package/cjs/plugin/components/tooltip-handler/utils/compose.js +1 -1
  264. package/cjs/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
  265. package/cjs/plugin/components/tooltip-handler/utils/get-spec.js +5 -25
  266. package/cjs/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
  267. package/cjs/plugin/components/tooltip-handler/utils/position.js +14 -14
  268. package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  269. package/cjs/region/region.js +6 -6
  270. package/cjs/region/region.js.map +1 -1
  271. package/cjs/series/area/animation.js +3 -3
  272. package/cjs/series/area/animation.js.map +1 -1
  273. package/cjs/series/area/area-transformer.js +3 -3
  274. package/cjs/series/area/area-transformer.js.map +1 -1
  275. package/cjs/series/area/area.js +6 -6
  276. package/cjs/series/area/area.js.map +1 -1
  277. package/cjs/series/area/constant.js +4 -4
  278. package/cjs/series/area/constant.js.map +1 -1
  279. package/cjs/series/bar/animation.js +3 -3
  280. package/cjs/series/bar/animation.js.map +1 -1
  281. package/cjs/series/bar/bar-3d.js +4 -4
  282. package/cjs/series/bar/bar-3d.js.map +1 -1
  283. package/cjs/series/bar/bar-transformer.js +2 -2
  284. package/cjs/series/bar/bar-transformer.js.map +1 -1
  285. package/cjs/series/bar/bar.js +19 -19
  286. package/cjs/series/bar/bar.js.map +1 -1
  287. package/cjs/series/bar/constant.js +10 -10
  288. package/cjs/series/bar/constant.js.map +1 -1
  289. package/cjs/series/base/base-series.d.ts +1 -0
  290. package/cjs/series/base/base-series.js +18 -9
  291. package/cjs/series/base/base-series.js.map +1 -1
  292. package/cjs/series/base/constant.js +4 -4
  293. package/cjs/series/base/constant.js.map +1 -1
  294. package/cjs/series/base/tooltip-helper.d.ts +3 -1
  295. package/cjs/series/base/tooltip-helper.js +19 -6
  296. package/cjs/series/base/tooltip-helper.js.map +1 -1
  297. package/cjs/series/box-plot/box-plot.js +7 -7
  298. package/cjs/series/box-plot/box-plot.js.map +1 -1
  299. package/cjs/series/box-plot/constant.js +7 -7
  300. package/cjs/series/box-plot/constant.js.map +1 -1
  301. package/cjs/series/cartesian/cartesian.js +10 -11
  302. package/cjs/series/cartesian/cartesian.js.map +1 -1
  303. package/cjs/series/circle-packing/circle-packing.js +3 -3
  304. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  305. package/cjs/series/circle-packing/constant.js +4 -4
  306. package/cjs/series/circle-packing/constant.js.map +1 -1
  307. package/cjs/series/correlation/constant.js +13 -13
  308. package/cjs/series/correlation/constant.js.map +1 -1
  309. package/cjs/series/correlation/correlation-transformer.js +2 -2
  310. package/cjs/series/correlation/correlation-transformer.js.map +1 -1
  311. package/cjs/series/correlation/correlation.js +1 -1
  312. package/cjs/series/correlation/correlation.js.map +1 -1
  313. package/cjs/series/dot/constant.js +22 -22
  314. package/cjs/series/dot/constant.js.map +1 -1
  315. package/cjs/series/dot/dot.js +4 -4
  316. package/cjs/series/dot/dot.js.map +1 -1
  317. package/cjs/series/funnel/3d/funnel-3d-transformer.js +2 -2
  318. package/cjs/series/funnel/3d/funnel-3d-transformer.js.map +1 -1
  319. package/cjs/series/funnel/3d/funnel-3d.js +5 -5
  320. package/cjs/series/funnel/3d/funnel-3d.js.map +1 -1
  321. package/cjs/series/funnel/constant.js +31 -31
  322. package/cjs/series/funnel/constant.js.map +1 -1
  323. package/cjs/series/funnel/funnel-transformer.js +2 -2
  324. package/cjs/series/funnel/funnel-transformer.js.map +1 -1
  325. package/cjs/series/funnel/funnel.js +7 -7
  326. package/cjs/series/funnel/funnel.js.map +1 -1
  327. package/cjs/series/funnel/tooltip-helper.js +4 -4
  328. package/cjs/series/funnel/tooltip-helper.js.map +1 -1
  329. package/cjs/series/gauge/constant.js +16 -16
  330. package/cjs/series/gauge/constant.js.map +1 -1
  331. package/cjs/series/gauge/gauge-pointer.js +6 -6
  332. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  333. package/cjs/series/gauge/gauge-transformer.js +2 -2
  334. package/cjs/series/gauge/gauge-transformer.js.map +1 -1
  335. package/cjs/series/gauge/gauge.js +1 -1
  336. package/cjs/series/gauge/gauge.js.map +1 -1
  337. package/cjs/series/heatmap/constant.js +7 -7
  338. package/cjs/series/heatmap/constant.js.map +1 -1
  339. package/cjs/series/heatmap/heatmap-transformer.js +2 -2
  340. package/cjs/series/heatmap/heatmap-transformer.js.map +1 -1
  341. package/cjs/series/heatmap/heatmap.js +1 -1
  342. package/cjs/series/heatmap/heatmap.js.map +1 -1
  343. package/cjs/series/interface/common.d.ts +1 -0
  344. package/cjs/series/interface/common.js.map +1 -1
  345. package/cjs/series/interface/type.d.ts +1 -2
  346. package/cjs/series/interface/type.js +2 -4
  347. package/cjs/series/interface/type.js.map +1 -1
  348. package/cjs/series/line/animation.js +3 -3
  349. package/cjs/series/line/animation.js.map +1 -1
  350. package/cjs/series/line/line.js +2 -2
  351. package/cjs/series/line/line.js.map +1 -1
  352. package/cjs/series/link/constant.js +10 -10
  353. package/cjs/series/link/constant.js.map +1 -1
  354. package/cjs/series/link/link.js +2 -2
  355. package/cjs/series/link/link.js.map +1 -1
  356. package/cjs/series/liquid/constant.js +10 -10
  357. package/cjs/series/liquid/constant.js.map +1 -1
  358. package/cjs/series/liquid/liquid.js +1 -1
  359. package/cjs/series/liquid/liquid.js.map +1 -1
  360. package/cjs/series/map/constant.js +4 -4
  361. package/cjs/series/map/constant.js.map +1 -1
  362. package/cjs/series/map/map-transformer.js +2 -2
  363. package/cjs/series/map/map-transformer.js.map +1 -1
  364. package/cjs/series/map/map.js +1 -1
  365. package/cjs/series/map/map.js.map +1 -1
  366. package/cjs/series/mixin/constant.js +7 -11
  367. package/cjs/series/mixin/constant.js.map +1 -1
  368. package/cjs/series/mixin/line-mixin-transformer.js +3 -3
  369. package/cjs/series/mixin/line-mixin-transformer.js.map +1 -1
  370. package/cjs/series/mixin/line-mixin.js +6 -6
  371. package/cjs/series/mixin/line-mixin.js.map +1 -1
  372. package/cjs/series/pie/3d/pie-3d-transformer.js +2 -2
  373. package/cjs/series/pie/3d/pie-3d-transformer.js.map +1 -1
  374. package/cjs/series/pie/3d/pie-3d.js +4 -4
  375. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  376. package/cjs/series/pie/constant.js +13 -13
  377. package/cjs/series/pie/constant.js.map +1 -1
  378. package/cjs/series/pie/pie-transformer.js +2 -2
  379. package/cjs/series/pie/pie-transformer.js.map +1 -1
  380. package/cjs/series/pie/pie.js +7 -7
  381. package/cjs/series/pie/pie.js.map +1 -1
  382. package/cjs/series/polar/progress-like/constant.js +4 -4
  383. package/cjs/series/polar/progress-like/constant.js.map +1 -1
  384. package/cjs/series/progress/circular/circular.js +2 -2
  385. package/cjs/series/progress/circular/circular.js.map +1 -1
  386. package/cjs/series/progress/circular/constant.js +7 -7
  387. package/cjs/series/progress/circular/constant.js.map +1 -1
  388. package/cjs/series/progress/linear/animation.js +3 -3
  389. package/cjs/series/progress/linear/animation.js.map +1 -1
  390. package/cjs/series/progress/linear/constant.js +10 -10
  391. package/cjs/series/progress/linear/constant.js.map +1 -1
  392. package/cjs/series/progress/linear/linear.js +2 -2
  393. package/cjs/series/progress/linear/linear.js.map +1 -1
  394. package/cjs/series/radar/constant.js +4 -4
  395. package/cjs/series/radar/constant.js.map +1 -1
  396. package/cjs/series/radar/radar.js +1 -1
  397. package/cjs/series/radar/radar.js.map +1 -1
  398. package/cjs/series/range-area/range-area.js +3 -3
  399. package/cjs/series/range-area/range-area.js.map +1 -1
  400. package/cjs/series/range-area/tooltip-helper.js +2 -2
  401. package/cjs/series/range-area/tooltip-helper.js.map +1 -1
  402. package/cjs/series/range-column/3d/range-column-3d-transformer.js +2 -2
  403. package/cjs/series/range-column/3d/range-column-3d-transformer.js.map +1 -1
  404. package/cjs/series/range-column/3d/range-column-3d.js +4 -4
  405. package/cjs/series/range-column/3d/range-column-3d.js.map +1 -1
  406. package/cjs/series/range-column/constant.js +13 -13
  407. package/cjs/series/range-column/constant.js.map +1 -1
  408. package/cjs/series/range-column/interface.d.ts +2 -2
  409. package/cjs/series/range-column/interface.js.map +1 -1
  410. package/cjs/series/range-column/range-column-transformer.js +2 -2
  411. package/cjs/series/range-column/range-column-transformer.js.map +1 -1
  412. package/cjs/series/range-column/range-column.js +11 -11
  413. package/cjs/series/range-column/range-column.js.map +1 -1
  414. package/cjs/series/range-column/tooltip-helper.js +2 -2
  415. package/cjs/series/range-column/tooltip-helper.js.map +1 -1
  416. package/cjs/series/rose/constant.js +4 -4
  417. package/cjs/series/rose/constant.js.map +1 -1
  418. package/cjs/series/rose/rose-transformer.js +2 -2
  419. package/cjs/series/rose/rose-transformer.js.map +1 -1
  420. package/cjs/series/rose/rose.js +1 -1
  421. package/cjs/series/rose/rose.js.map +1 -1
  422. package/cjs/series/sankey/animation.js +5 -5
  423. package/cjs/series/sankey/animation.js.map +1 -1
  424. package/cjs/series/sankey/constant.js +7 -7
  425. package/cjs/series/sankey/constant.js.map +1 -1
  426. package/cjs/series/sankey/sankey.js +3 -3
  427. package/cjs/series/sankey/sankey.js.map +1 -1
  428. package/cjs/series/scatter/constant.js +4 -4
  429. package/cjs/series/scatter/constant.js.map +1 -1
  430. package/cjs/series/scatter/scatter-transformer.js +2 -2
  431. package/cjs/series/scatter/scatter-transformer.js.map +1 -1
  432. package/cjs/series/scatter/scatter.js +1 -1
  433. package/cjs/series/scatter/scatter.js.map +1 -1
  434. package/cjs/series/sunburst/constant.js +4 -4
  435. package/cjs/series/sunburst/constant.js.map +1 -1
  436. package/cjs/series/sunburst/sunburst.js +3 -3
  437. package/cjs/series/sunburst/sunburst.js.map +1 -1
  438. package/cjs/series/treemap/constant.js +10 -10
  439. package/cjs/series/treemap/constant.js.map +1 -1
  440. package/cjs/series/treemap/treemap-transform.js +3 -3
  441. package/cjs/series/treemap/treemap-transform.js.map +1 -1
  442. package/cjs/series/treemap/treemap.js +7 -7
  443. package/cjs/series/treemap/treemap.js.map +1 -1
  444. package/cjs/series/util/label-mark.js +5 -5
  445. package/cjs/series/util/label-mark.js.map +1 -1
  446. package/cjs/series/waterfall/constant.js +7 -7
  447. package/cjs/series/waterfall/constant.js.map +1 -1
  448. package/cjs/series/waterfall/waterfall-transformer.js +2 -2
  449. package/cjs/series/waterfall/waterfall-transformer.js.map +1 -1
  450. package/cjs/series/waterfall/waterfall.js +6 -6
  451. package/cjs/series/waterfall/waterfall.js.map +1 -1
  452. package/cjs/series/word-cloud/base.js +2 -2
  453. package/cjs/series/word-cloud/base.js.map +1 -1
  454. package/cjs/series/word-cloud/constant.js +7 -7
  455. package/cjs/series/word-cloud/constant.js.map +1 -1
  456. package/cjs/series/word-cloud/interface.d.ts +2 -11
  457. package/cjs/series/word-cloud/interface.js +1 -8
  458. package/cjs/series/word-cloud/interface.js.map +1 -1
  459. package/cjs/series/word-cloud/word-cloud-3d.js +1 -1
  460. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  461. package/cjs/theme/builtin/common/series/rangeColumn.js +3 -7
  462. package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
  463. package/cjs/typings/shape.d.ts +0 -21
  464. package/cjs/typings/shape.js +1 -12
  465. package/cjs/typings/shape.js.map +1 -1
  466. package/cjs/typings/space.d.ts +1 -1
  467. package/cjs/typings/space.js.map +1 -1
  468. package/cjs/typings/spec/common.d.ts +2 -0
  469. package/cjs/typings/spec/common.js.map +1 -1
  470. package/cjs/typings/tooltip/position.d.ts +2 -2
  471. package/cjs/typings/tooltip/position.js.map +1 -1
  472. package/cjs/vchart-all.js +2 -2
  473. package/cjs/vchart-all.js.map +1 -1
  474. package/esm/animation/utils.js +6 -1
  475. package/esm/animation/utils.js.map +1 -1
  476. package/esm/chart/area/area.js +3 -5
  477. package/esm/chart/area/area.js.map +1 -1
  478. package/esm/chart/bar/3d/bar-3d.js +3 -5
  479. package/esm/chart/bar/3d/bar-3d.js.map +1 -1
  480. package/esm/chart/bar/bar.js +2 -4
  481. package/esm/chart/bar/bar.js.map +1 -1
  482. package/esm/chart/base/base-chart.js +1 -3
  483. package/esm/chart/base/base-chart.js.map +1 -1
  484. package/esm/chart/box-plot/box-plot-transformer.js +2 -4
  485. package/esm/chart/box-plot/box-plot-transformer.js.map +1 -1
  486. package/esm/chart/box-plot/box-plot.js +2 -4
  487. package/esm/chart/box-plot/box-plot.js.map +1 -1
  488. package/esm/chart/circle-packing/circle-packing.js +2 -4
  489. package/esm/chart/circle-packing/circle-packing.js.map +1 -1
  490. package/esm/chart/common/common.js +2 -4
  491. package/esm/chart/common/common.js.map +1 -1
  492. package/esm/chart/correlation/correlation.js +2 -4
  493. package/esm/chart/correlation/correlation.js.map +1 -1
  494. package/esm/chart/funnel/3d/funnel-3d.js +2 -4
  495. package/esm/chart/funnel/3d/funnel-3d.js.map +1 -1
  496. package/esm/chart/funnel/funnel.js +3 -5
  497. package/esm/chart/funnel/funnel.js.map +1 -1
  498. package/esm/chart/gauge/gauge.js +2 -4
  499. package/esm/chart/gauge/gauge.js.map +1 -1
  500. package/esm/chart/heatmap/heatmap.js +2 -4
  501. package/esm/chart/heatmap/heatmap.js.map +1 -1
  502. package/esm/chart/histogram/3d/histogram-3d.js +2 -4
  503. package/esm/chart/histogram/3d/histogram-3d.js.map +1 -1
  504. package/esm/chart/histogram/histogram.js +2 -4
  505. package/esm/chart/histogram/histogram.js.map +1 -1
  506. package/esm/chart/interface/type.d.ts +1 -1
  507. package/esm/chart/interface/type.js.map +1 -1
  508. package/esm/chart/line/line.js +3 -5
  509. package/esm/chart/line/line.js.map +1 -1
  510. package/esm/chart/liquid/liquid.js +3 -5
  511. package/esm/chart/liquid/liquid.js.map +1 -1
  512. package/esm/chart/map/map.js +2 -4
  513. package/esm/chart/map/map.js.map +1 -1
  514. package/esm/chart/pie/3d/pie-3d.js +3 -5
  515. package/esm/chart/pie/3d/pie-3d.js.map +1 -1
  516. package/esm/chart/pie/pie.js +2 -4
  517. package/esm/chart/pie/pie.js.map +1 -1
  518. package/esm/chart/polar/polar-transformer.js +1 -3
  519. package/esm/chart/polar/polar-transformer.js.map +1 -1
  520. package/esm/chart/progress/circular/circular.js +2 -4
  521. package/esm/chart/progress/circular/circular.js.map +1 -1
  522. package/esm/chart/progress/linear/linear.js +2 -5
  523. package/esm/chart/progress/linear/linear.js.map +1 -1
  524. package/esm/chart/radar/radar.js +3 -5
  525. package/esm/chart/radar/radar.js.map +1 -1
  526. package/esm/chart/range-area/range-area-transformer.js +1 -3
  527. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  528. package/esm/chart/range-area/range-area.js +2 -4
  529. package/esm/chart/range-area/range-area.js.map +1 -1
  530. package/esm/chart/range-column/3d/range-column-3d-transformer.js +1 -3
  531. package/esm/chart/range-column/3d/range-column-3d-transformer.js.map +1 -1
  532. package/esm/chart/range-column/3d/range-column-3d.js +2 -4
  533. package/esm/chart/range-column/3d/range-column-3d.js.map +1 -1
  534. package/esm/chart/range-column/range-column-transformer.js +1 -3
  535. package/esm/chart/range-column/range-column-transformer.js.map +1 -1
  536. package/esm/chart/range-column/range-column.js +2 -4
  537. package/esm/chart/range-column/range-column.js.map +1 -1
  538. package/esm/chart/rose/rose.js +3 -5
  539. package/esm/chart/rose/rose.js.map +1 -1
  540. package/esm/chart/sankey/sankey.js +3 -5
  541. package/esm/chart/sankey/sankey.js.map +1 -1
  542. package/esm/chart/scatter/scatter.js +2 -4
  543. package/esm/chart/scatter/scatter.js.map +1 -1
  544. package/esm/chart/sequence/sequence-transformer.js +2 -4
  545. package/esm/chart/sequence/sequence-transformer.js.map +1 -1
  546. package/esm/chart/sequence/sequence.js +2 -5
  547. package/esm/chart/sequence/sequence.js.map +1 -1
  548. package/esm/chart/sunburst/sunburst.js +2 -4
  549. package/esm/chart/sunburst/sunburst.js.map +1 -1
  550. package/esm/chart/treemap/treemap.js +2 -4
  551. package/esm/chart/treemap/treemap.js.map +1 -1
  552. package/esm/chart/util.js +1 -3
  553. package/esm/chart/util.js.map +1 -1
  554. package/esm/chart/waterfall/waterfall.js +2 -4
  555. package/esm/chart/waterfall/waterfall.js.map +1 -1
  556. package/esm/chart/word-cloud/3d/word-cloud-3d.js +2 -4
  557. package/esm/chart/word-cloud/3d/word-cloud-3d.js.map +1 -1
  558. package/esm/chart/word-cloud/base/base.js +1 -3
  559. package/esm/chart/word-cloud/base/base.js.map +1 -1
  560. package/esm/chart/word-cloud/word-cloud.js +2 -4
  561. package/esm/chart/word-cloud/word-cloud.js.map +1 -1
  562. package/esm/compile/grammar-item.js +1 -2
  563. package/esm/compile/interface/compiler.d.ts +2 -0
  564. package/esm/compile/interface/compiler.js.map +1 -1
  565. package/esm/compile/mark/interface.d.ts +0 -9
  566. package/esm/compile/mark/interface.js +0 -9
  567. package/esm/compile/mark/interface.js.map +1 -1
  568. package/esm/component/axis/cartesian/axis.d.ts +8 -1
  569. package/esm/component/axis/cartesian/axis.js +22 -9
  570. package/esm/component/axis/cartesian/axis.js.map +1 -1
  571. package/esm/component/axis/cartesian/interface/spec.d.ts +19 -3
  572. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  573. package/esm/component/axis/cartesian/util/common.js +1 -3
  574. package/esm/component/axis/cartesian/util/common.js.map +1 -1
  575. package/esm/component/axis/polar/axis.js +4 -2
  576. package/esm/component/axis/polar/axis.js.map +1 -1
  577. package/esm/component/crosshair/cartesian.js +6 -8
  578. package/esm/component/crosshair/cartesian.js.map +1 -1
  579. package/esm/component/crosshair/config.d.ts +1 -1
  580. package/esm/component/crosshair/config.js.map +1 -1
  581. package/esm/component/crosshair/polar.js +7 -9
  582. package/esm/component/crosshair/polar.js.map +1 -1
  583. package/esm/component/custom-mark/custom-mark.js +2 -1
  584. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  585. package/esm/component/data-zoom/constant.d.ts +1 -1
  586. package/esm/component/data-zoom/constant.js.map +1 -1
  587. package/esm/component/data-zoom/data-filter-base-component.js +5 -9
  588. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  589. package/esm/component/data-zoom/data-zoom/data-zoom.js +2 -4
  590. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  591. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +2 -4
  592. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  593. package/esm/component/data-zoom/util.js +1 -4
  594. package/esm/component/data-zoom/util.js.map +1 -1
  595. package/esm/component/label/label.js +3 -5
  596. package/esm/component/label/label.js.map +1 -1
  597. package/esm/component/label/total-label.js +3 -5
  598. package/esm/component/label/total-label.js.map +1 -1
  599. package/esm/component/label/util.js +3 -5
  600. package/esm/component/label/util.js.map +1 -1
  601. package/esm/component/marker/base-marker.d.ts +5 -1
  602. package/esm/component/marker/base-marker.js.map +1 -1
  603. package/esm/component/marker/mark-area/mark-area.js +8 -2
  604. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  605. package/esm/component/marker/mark-line/mark-line.js +7 -1
  606. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  607. package/esm/component/marker/mark-point/mark-point.js +7 -1
  608. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  609. package/esm/component/marker/utils.js +2 -2
  610. package/esm/component/marker/utils.js.map +1 -1
  611. package/esm/component/tooltip/interface/theme.d.ts +1 -0
  612. package/esm/component/tooltip/interface/theme.js.map +1 -1
  613. package/esm/component/tooltip/tooltip.d.ts +2 -1
  614. package/esm/component/tooltip/tooltip.js +12 -8
  615. package/esm/component/tooltip/tooltip.js.map +1 -1
  616. package/esm/constant/base.js +2 -1
  617. package/esm/constant/scroll-bar.js +1 -2
  618. package/esm/core/expression-function.js +2 -1
  619. package/esm/core/factory.js +1 -4
  620. package/esm/core/factory.js.map +1 -1
  621. package/esm/core/index.d.ts +1 -1
  622. package/esm/core/index.js +1 -1
  623. package/esm/core/index.js.map +1 -1
  624. package/esm/data/transforms/marker-filter.d.ts +5 -0
  625. package/esm/data/transforms/marker-filter.js +11 -0
  626. package/esm/data/transforms/marker-filter.js.map +1 -0
  627. package/esm/event/event-dispatcher.js +1 -2
  628. package/esm/event/events/dimension/util/cartesian.js +1 -3
  629. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  630. package/esm/event/index.js +2 -1
  631. package/esm/index-lark.js +1 -3
  632. package/esm/index-lark.js.map +1 -1
  633. package/esm/index-wx.js +1 -3
  634. package/esm/index-wx.js.map +1 -1
  635. package/esm/interaction/drill/drillable.d.ts +1 -1
  636. package/esm/interaction/drill/drillable.js +2 -2
  637. package/esm/interaction/drill/drillable.js.map +1 -1
  638. package/esm/interaction/zoom/zoomable.d.ts +1 -1
  639. package/esm/interaction/zoom/zoomable.js +10 -10
  640. package/esm/interaction/zoom/zoomable.js.map +1 -1
  641. package/esm/layout/interface.d.ts +0 -1
  642. package/esm/layout/interface.js.map +1 -1
  643. package/esm/mark/arc-3d.js +1 -3
  644. package/esm/mark/arc-3d.js.map +1 -1
  645. package/esm/mark/arc.js +1 -3
  646. package/esm/mark/arc.js.map +1 -1
  647. package/esm/mark/area.js +1 -3
  648. package/esm/mark/area.js.map +1 -1
  649. package/esm/mark/box-plot.js +1 -3
  650. package/esm/mark/box-plot.js.map +1 -1
  651. package/esm/mark/cell.js +1 -3
  652. package/esm/mark/cell.js.map +1 -1
  653. package/esm/mark/component.js +1 -3
  654. package/esm/mark/component.js.map +1 -1
  655. package/esm/mark/group.js +1 -3
  656. package/esm/mark/group.js.map +1 -1
  657. package/esm/mark/image.js +1 -3
  658. package/esm/mark/image.js.map +1 -1
  659. package/esm/mark/interface/type.d.ts +1 -1
  660. package/esm/mark/interface/type.js.map +1 -1
  661. package/esm/mark/label.js +1 -3
  662. package/esm/mark/label.js.map +1 -1
  663. package/esm/mark/line.js +1 -3
  664. package/esm/mark/line.js.map +1 -1
  665. package/esm/mark/link-path.js +1 -3
  666. package/esm/mark/link-path.js.map +1 -1
  667. package/esm/mark/liquid.js +1 -3
  668. package/esm/mark/liquid.js.map +1 -1
  669. package/esm/mark/path.js +1 -3
  670. package/esm/mark/path.js.map +1 -1
  671. package/esm/mark/polygon/polygon.js +1 -3
  672. package/esm/mark/polygon/polygon.js.map +1 -1
  673. package/esm/mark/polygon/pyramid-3d.js +1 -3
  674. package/esm/mark/polygon/pyramid-3d.js.map +1 -1
  675. package/esm/mark/progress-arc.js +1 -3
  676. package/esm/mark/progress-arc.js.map +1 -1
  677. package/esm/mark/rect-3d.js +1 -3
  678. package/esm/mark/rect-3d.js.map +1 -1
  679. package/esm/mark/rect.js +1 -3
  680. package/esm/mark/rect.js.map +1 -1
  681. package/esm/mark/ripple.js +1 -3
  682. package/esm/mark/ripple.js.map +1 -1
  683. package/esm/mark/rule.js +1 -3
  684. package/esm/mark/rule.js.map +1 -1
  685. package/esm/mark/symbol.js +2 -6
  686. package/esm/mark/symbol.js.map +1 -1
  687. package/esm/mark/text.js +1 -3
  688. package/esm/mark/text.js.map +1 -1
  689. package/esm/mark/utils/common.js +1 -3
  690. package/esm/mark/utils/common.js.map +1 -1
  691. package/esm/plugin/components/tooltip-handler/base.d.ts +3 -2
  692. package/esm/plugin/components/tooltip-handler/base.js +1 -3
  693. package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
  694. package/esm/plugin/components/tooltip-handler/dom/constant.d.ts +1 -0
  695. package/esm/plugin/components/tooltip-handler/dom/constant.js +2 -0
  696. package/esm/plugin/components/tooltip-handler/dom/constant.js.map +1 -0
  697. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +7 -4
  698. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  699. package/esm/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js.map +1 -1
  700. package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js +5 -4
  701. package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
  702. package/esm/plugin/components/tooltip-handler/dom/model/content-model.d.ts +2 -1
  703. package/esm/plugin/components/tooltip-handler/dom/model/content-model.js +20 -3
  704. package/esm/plugin/components/tooltip-handler/dom/model/content-model.js.map +1 -1
  705. package/esm/plugin/components/tooltip-handler/dom/model/interface.d.ts +3 -2
  706. package/esm/plugin/components/tooltip-handler/dom/model/interface.js.map +1 -1
  707. package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js +13 -9
  708. package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js.map +1 -1
  709. package/esm/plugin/components/tooltip-handler/dom/model/style-constants.d.ts +0 -1
  710. package/esm/plugin/components/tooltip-handler/dom/model/style-constants.js +2 -9
  711. package/esm/plugin/components/tooltip-handler/dom/model/style-constants.js.map +1 -1
  712. package/esm/plugin/components/tooltip-handler/dom/model/tooltip-model.d.ts +1 -1
  713. package/esm/plugin/components/tooltip-handler/dom/model/tooltip-model.js +6 -4
  714. package/esm/plugin/components/tooltip-handler/dom/model/tooltip-model.js.map +1 -1
  715. package/esm/plugin/components/tooltip-handler/dom/utils/common.d.ts +3 -0
  716. package/esm/plugin/components/tooltip-handler/dom/utils/common.js +22 -0
  717. package/esm/plugin/components/tooltip-handler/dom/utils/common.js.map +1 -0
  718. package/esm/plugin/components/tooltip-handler/dom/utils/index.d.ts +2 -0
  719. package/esm/plugin/components/tooltip-handler/dom/utils/index.js +4 -0
  720. package/esm/plugin/components/tooltip-handler/dom/utils/index.js.map +1 -0
  721. package/esm/plugin/components/tooltip-handler/dom/utils/style.d.ts +4 -0
  722. package/esm/plugin/components/tooltip-handler/dom/{util.js → utils/style.js} +11 -19
  723. package/esm/plugin/components/tooltip-handler/dom/utils/style.js.map +1 -0
  724. package/esm/plugin/components/tooltip-handler/interface/style.d.ts +5 -0
  725. package/esm/plugin/components/tooltip-handler/interface/style.js.map +1 -1
  726. package/esm/plugin/components/tooltip-handler/utils/attribute.d.ts +3 -3
  727. package/esm/plugin/components/tooltip-handler/utils/attribute.js +15 -11
  728. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  729. package/esm/plugin/components/tooltip-handler/utils/common.d.ts +3 -2
  730. package/esm/plugin/components/tooltip-handler/utils/common.js +8 -12
  731. package/esm/plugin/components/tooltip-handler/utils/common.js.map +1 -1
  732. package/esm/plugin/components/tooltip-handler/utils/compose.js +3 -3
  733. package/esm/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
  734. package/esm/plugin/components/tooltip-handler/utils/get-spec.js +5 -24
  735. package/esm/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
  736. package/esm/plugin/components/tooltip-handler/utils/position.js +13 -15
  737. package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  738. package/esm/region/region.js +5 -9
  739. package/esm/region/region.js.map +1 -1
  740. package/esm/series/area/animation.js +2 -4
  741. package/esm/series/area/animation.js.map +1 -1
  742. package/esm/series/area/area-transformer.js +2 -4
  743. package/esm/series/area/area-transformer.js.map +1 -1
  744. package/esm/series/area/area.js +6 -8
  745. package/esm/series/area/area.js.map +1 -1
  746. package/esm/series/area/constant.js +3 -7
  747. package/esm/series/area/constant.js.map +1 -1
  748. package/esm/series/bar/animation.js +2 -4
  749. package/esm/series/bar/animation.js.map +1 -1
  750. package/esm/series/bar/bar-3d.js +3 -5
  751. package/esm/series/bar/bar-3d.js.map +1 -1
  752. package/esm/series/bar/bar-transformer.js +1 -3
  753. package/esm/series/bar/bar-transformer.js.map +1 -1
  754. package/esm/series/bar/bar.js +14 -18
  755. package/esm/series/bar/bar.js.map +1 -1
  756. package/esm/series/bar/constant.js +9 -13
  757. package/esm/series/bar/constant.js.map +1 -1
  758. package/esm/series/base/base-series.d.ts +1 -0
  759. package/esm/series/base/base-series.js +16 -10
  760. package/esm/series/base/base-series.js.map +1 -1
  761. package/esm/series/base/constant.js +3 -7
  762. package/esm/series/base/constant.js.map +1 -1
  763. package/esm/series/base/tooltip-helper.d.ts +3 -1
  764. package/esm/series/base/tooltip-helper.js +13 -4
  765. package/esm/series/base/tooltip-helper.js.map +1 -1
  766. package/esm/series/box-plot/box-plot.js +7 -9
  767. package/esm/series/box-plot/box-plot.js.map +1 -1
  768. package/esm/series/box-plot/constant.js +6 -10
  769. package/esm/series/box-plot/constant.js.map +1 -1
  770. package/esm/series/cartesian/cartesian.js +9 -12
  771. package/esm/series/cartesian/cartesian.js.map +1 -1
  772. package/esm/series/circle-packing/circle-packing.js +2 -4
  773. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  774. package/esm/series/circle-packing/constant.js +3 -7
  775. package/esm/series/circle-packing/constant.js.map +1 -1
  776. package/esm/series/correlation/constant.js +12 -16
  777. package/esm/series/correlation/constant.js.map +1 -1
  778. package/esm/series/correlation/correlation-transformer.js +1 -3
  779. package/esm/series/correlation/correlation-transformer.js.map +1 -1
  780. package/esm/series/correlation/correlation.js +2 -2
  781. package/esm/series/correlation/correlation.js.map +1 -1
  782. package/esm/series/dot/constant.js +21 -25
  783. package/esm/series/dot/constant.js.map +1 -1
  784. package/esm/series/dot/dot.js +1 -3
  785. package/esm/series/dot/dot.js.map +1 -1
  786. package/esm/series/funnel/3d/funnel-3d-transformer.js +1 -3
  787. package/esm/series/funnel/3d/funnel-3d-transformer.js.map +1 -1
  788. package/esm/series/funnel/3d/funnel-3d.js +4 -6
  789. package/esm/series/funnel/3d/funnel-3d.js.map +1 -1
  790. package/esm/series/funnel/constant.js +30 -34
  791. package/esm/series/funnel/constant.js.map +1 -1
  792. package/esm/series/funnel/funnel-transformer.js +1 -3
  793. package/esm/series/funnel/funnel-transformer.js.map +1 -1
  794. package/esm/series/funnel/funnel.js +7 -11
  795. package/esm/series/funnel/funnel.js.map +1 -1
  796. package/esm/series/funnel/tooltip-helper.js +3 -5
  797. package/esm/series/funnel/tooltip-helper.js.map +1 -1
  798. package/esm/series/gauge/constant.js +15 -19
  799. package/esm/series/gauge/constant.js.map +1 -1
  800. package/esm/series/gauge/gauge-pointer.js +4 -6
  801. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  802. package/esm/series/gauge/gauge-transformer.js +1 -3
  803. package/esm/series/gauge/gauge-transformer.js.map +1 -1
  804. package/esm/series/gauge/gauge.js +2 -2
  805. package/esm/series/gauge/gauge.js.map +1 -1
  806. package/esm/series/heatmap/constant.js +6 -10
  807. package/esm/series/heatmap/constant.js.map +1 -1
  808. package/esm/series/heatmap/heatmap-transformer.js +1 -3
  809. package/esm/series/heatmap/heatmap-transformer.js.map +1 -1
  810. package/esm/series/heatmap/heatmap.js +2 -2
  811. package/esm/series/heatmap/heatmap.js.map +1 -1
  812. package/esm/series/interface/common.d.ts +1 -0
  813. package/esm/series/interface/common.js.map +1 -1
  814. package/esm/series/interface/type.d.ts +1 -2
  815. package/esm/series/interface/type.js +0 -2
  816. package/esm/series/interface/type.js.map +1 -1
  817. package/esm/series/line/animation.js +2 -4
  818. package/esm/series/line/animation.js.map +1 -1
  819. package/esm/series/line/line.js +3 -3
  820. package/esm/series/line/line.js.map +1 -1
  821. package/esm/series/link/constant.js +9 -13
  822. package/esm/series/link/constant.js.map +1 -1
  823. package/esm/series/link/link.js +1 -3
  824. package/esm/series/link/link.js.map +1 -1
  825. package/esm/series/liquid/constant.js +9 -13
  826. package/esm/series/liquid/constant.js.map +1 -1
  827. package/esm/series/liquid/liquid.js +2 -2
  828. package/esm/series/liquid/liquid.js.map +1 -1
  829. package/esm/series/map/constant.js +3 -7
  830. package/esm/series/map/constant.js.map +1 -1
  831. package/esm/series/map/map-transformer.js +1 -3
  832. package/esm/series/map/map-transformer.js.map +1 -1
  833. package/esm/series/map/map.js +2 -2
  834. package/esm/series/map/map.js.map +1 -1
  835. package/esm/series/mixin/constant.js +6 -10
  836. package/esm/series/mixin/constant.js.map +1 -1
  837. package/esm/series/mixin/line-mixin-transformer.js +2 -4
  838. package/esm/series/mixin/line-mixin-transformer.js.map +1 -1
  839. package/esm/series/mixin/line-mixin.js +5 -9
  840. package/esm/series/mixin/line-mixin.js.map +1 -1
  841. package/esm/series/pie/3d/pie-3d-transformer.js +1 -3
  842. package/esm/series/pie/3d/pie-3d-transformer.js.map +1 -1
  843. package/esm/series/pie/3d/pie-3d.js +3 -5
  844. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  845. package/esm/series/pie/constant.js +12 -16
  846. package/esm/series/pie/constant.js.map +1 -1
  847. package/esm/series/pie/pie-transformer.js +1 -3
  848. package/esm/series/pie/pie-transformer.js.map +1 -1
  849. package/esm/series/pie/pie.js +4 -6
  850. package/esm/series/pie/pie.js.map +1 -1
  851. package/esm/series/polar/progress-like/constant.js +3 -7
  852. package/esm/series/polar/progress-like/constant.js.map +1 -1
  853. package/esm/series/progress/circular/circular.js +3 -3
  854. package/esm/series/progress/circular/circular.js.map +1 -1
  855. package/esm/series/progress/circular/constant.js +6 -10
  856. package/esm/series/progress/circular/constant.js.map +1 -1
  857. package/esm/series/progress/linear/animation.js +2 -4
  858. package/esm/series/progress/linear/animation.js.map +1 -1
  859. package/esm/series/progress/linear/constant.js +9 -13
  860. package/esm/series/progress/linear/constant.js.map +1 -1
  861. package/esm/series/progress/linear/linear.js +3 -3
  862. package/esm/series/progress/linear/linear.js.map +1 -1
  863. package/esm/series/radar/constant.js +3 -7
  864. package/esm/series/radar/constant.js.map +1 -1
  865. package/esm/series/radar/radar.js +2 -2
  866. package/esm/series/radar/radar.js.map +1 -1
  867. package/esm/series/range-area/range-area.js +2 -4
  868. package/esm/series/range-area/range-area.js.map +1 -1
  869. package/esm/series/range-area/tooltip-helper.js +1 -3
  870. package/esm/series/range-area/tooltip-helper.js.map +1 -1
  871. package/esm/series/range-column/3d/range-column-3d-transformer.js +1 -5
  872. package/esm/series/range-column/3d/range-column-3d-transformer.js.map +1 -1
  873. package/esm/series/range-column/3d/range-column-3d.js +1 -3
  874. package/esm/series/range-column/3d/range-column-3d.js.map +1 -1
  875. package/esm/series/range-column/constant.js +12 -16
  876. package/esm/series/range-column/constant.js.map +1 -1
  877. package/esm/series/range-column/interface.d.ts +2 -2
  878. package/esm/series/range-column/interface.js.map +1 -1
  879. package/esm/series/range-column/range-column-transformer.js +1 -5
  880. package/esm/series/range-column/range-column-transformer.js.map +1 -1
  881. package/esm/series/range-column/range-column.js +9 -15
  882. package/esm/series/range-column/range-column.js.map +1 -1
  883. package/esm/series/range-column/tooltip-helper.js +1 -3
  884. package/esm/series/range-column/tooltip-helper.js.map +1 -1
  885. package/esm/series/rose/constant.js +3 -7
  886. package/esm/series/rose/constant.js.map +1 -1
  887. package/esm/series/rose/rose-transformer.js +1 -3
  888. package/esm/series/rose/rose-transformer.js.map +1 -1
  889. package/esm/series/rose/rose.js +2 -2
  890. package/esm/series/rose/rose.js.map +1 -1
  891. package/esm/series/sankey/animation.js +4 -6
  892. package/esm/series/sankey/animation.js.map +1 -1
  893. package/esm/series/sankey/constant.js +6 -10
  894. package/esm/series/sankey/constant.js.map +1 -1
  895. package/esm/series/sankey/sankey.js +4 -4
  896. package/esm/series/sankey/sankey.js.map +1 -1
  897. package/esm/series/scatter/constant.js +3 -7
  898. package/esm/series/scatter/constant.js.map +1 -1
  899. package/esm/series/scatter/scatter-transformer.js +1 -3
  900. package/esm/series/scatter/scatter-transformer.js.map +1 -1
  901. package/esm/series/scatter/scatter.js +2 -2
  902. package/esm/series/scatter/scatter.js.map +1 -1
  903. package/esm/series/sunburst/constant.js +3 -7
  904. package/esm/series/sunburst/constant.js.map +1 -1
  905. package/esm/series/sunburst/sunburst.js +2 -4
  906. package/esm/series/sunburst/sunburst.js.map +1 -1
  907. package/esm/series/treemap/constant.js +9 -13
  908. package/esm/series/treemap/constant.js.map +1 -1
  909. package/esm/series/treemap/treemap-transform.js +2 -4
  910. package/esm/series/treemap/treemap-transform.js.map +1 -1
  911. package/esm/series/treemap/treemap.js +4 -6
  912. package/esm/series/treemap/treemap.js.map +1 -1
  913. package/esm/series/util/label-mark.js +4 -6
  914. package/esm/series/util/label-mark.js.map +1 -1
  915. package/esm/series/waterfall/constant.js +6 -10
  916. package/esm/series/waterfall/constant.js.map +1 -1
  917. package/esm/series/waterfall/waterfall-transformer.js +1 -3
  918. package/esm/series/waterfall/waterfall-transformer.js.map +1 -1
  919. package/esm/series/waterfall/waterfall.js +6 -8
  920. package/esm/series/waterfall/waterfall.js.map +1 -1
  921. package/esm/series/word-cloud/base.js +1 -3
  922. package/esm/series/word-cloud/base.js.map +1 -1
  923. package/esm/series/word-cloud/constant.js +6 -10
  924. package/esm/series/word-cloud/constant.js.map +1 -1
  925. package/esm/series/word-cloud/interface.d.ts +2 -11
  926. package/esm/series/word-cloud/interface.js +1 -8
  927. package/esm/series/word-cloud/interface.js.map +1 -1
  928. package/esm/series/word-cloud/word-cloud-3d.js +2 -2
  929. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  930. package/esm/theme/builtin/common/series/rangeColumn.js +2 -4
  931. package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
  932. package/esm/typings/shape.d.ts +0 -21
  933. package/esm/typings/shape.js +1 -14
  934. package/esm/typings/shape.js.map +1 -1
  935. package/esm/typings/space.d.ts +1 -1
  936. package/esm/typings/space.js.map +1 -1
  937. package/esm/typings/spec/common.d.ts +2 -0
  938. package/esm/typings/spec/common.js.map +1 -1
  939. package/esm/typings/tooltip/position.d.ts +2 -2
  940. package/esm/typings/tooltip/position.js.map +1 -1
  941. package/esm/vchart-all.js +1 -3
  942. package/esm/vchart-all.js.map +1 -1
  943. package/package.json +17 -16
  944. package/cjs/plugin/components/tooltip-handler/dom/util.d.ts +0 -6
  945. package/cjs/plugin/components/tooltip-handler/dom/util.js +0 -96
  946. package/cjs/plugin/components/tooltip-handler/dom/util.js.map +0 -1
  947. package/esm/plugin/components/tooltip-handler/dom/util.d.ts +0 -6
  948. package/esm/plugin/components/tooltip-handler/dom/util.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/cartesian/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import type { IBounds, IBoundsLike, Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IEffect, IModelInitOption, IModelSpecInfo } from '../../../model/interface';\nimport type { ICartesianSeries } from '../../../series/interface';\nimport type { IRegion } from '../../../region/interface';\nimport type { ICartesianAxisCommonSpec, IAxisHelper } from './interface';\nimport { isArray, isValid, isValidNumber, mergeSpec, eachSeries, isNil, isUndefined } from '../../../util';\nimport type { IOrientType } from '../../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../typings/space';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { Factory } from '../../../core/factory';\nimport { isXAxis, getOrient, isZAxis, isYAxis, getCartesianAxisInfo, transformInverse } from './util/common';\nimport { ChartEvent, DEFAULT_LAYOUT_RECT_LEVEL, LayoutZIndex, USER_LAYOUT_RECT_LEVEL } from '../../../constant';\nimport { LayoutLevel } from '../../../constant/index';\nimport pluginMap from '../../../plugin/components';\nimport type { Datum, StringOrNumber } from '../../../typings/common';\nimport type { IPoint } from '../../../typings/coordinate';\nimport type { ILayoutRect, ILayoutType } from '../../../typings/layout';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\nimport type { AxisItem, LineAxisAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { getAxisItem, isValidCartesianAxis } from '../util';\nimport type { IAxis, ITick } from '../interface';\nimport type { ICartesianTickDataOpt } from '@visactor/vutils-extension';\n// eslint-disable-next-line no-duplicate-imports\nimport type { DataSet } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { AxisComponent } from '../base-axis';\nimport type { IGraphic, IText } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { createText } from '@visactor/vrender-core';\nimport type { ICartesianChartSpec } from '../../../chart';\n\nconst CartesianAxisPlugin = [pluginMap.AxisSyncPlugin];\n\nexport abstract class CartesianAxis<T extends ICartesianAxisCommonSpec = ICartesianAxisCommonSpec>\n extends AxisComponent<T>\n implements IAxis\n{\n static type = ComponentTypeEnum.cartesianAxis;\n type = ComponentTypeEnum.cartesianAxis;\n name: string = ComponentTypeEnum.cartesianAxis;\n\n static specKey = 'axes';\n\n protected readonly _defaultBandPosition = 0.5;\n protected readonly _defaultBandInnerPadding = 0.1;\n protected readonly _defaultBandOuterPadding = 0.3;\n\n // 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n declare directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n\n layoutType: ILayoutType = 'region-relative';\n layoutZIndex: number = LayoutZIndex.Axis;\n layoutLevel: number = LayoutLevel.Axis;\n\n protected _dataSet: DataSet;\n\n layout3dBox?: { width: number; height: number; length: number };\n\n protected _orient: IOrientType = 'left';\n getOrient() {\n return this._orient;\n }\n\n protected _autoIndentOnce: boolean = false;\n protected _hasAutoIndent: boolean = false;\n set autoIndentOnce(v: boolean) {\n this._autoIndentOnce = v;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected _tick: ITick | undefined = undefined;\n\n private _axisStyle: Partial<LineAxisAttributes>;\n private _latestBounds: IBounds;\n private _verticalLimitSize: number;\n private _unitText: IText;\n\n protected _layoutCache: {\n width: number;\n height: number;\n _lastComputeOutBounds: IBoundsLike;\n } = { width: 0, height: 0, _lastComputeOutBounds: { x1: 0, x2: 0, y1: 0, y2: 0 } };\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._orient = getOrient(spec, ['z']);\n if (isZAxis(this._orient)) {\n this.layoutType = 'absolute';\n }\n this._dataSet = options.dataSet;\n this._coordinateType = 'cartesian';\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const axesSpec = chartSpec[this.specKey];\n if (!axesSpec) {\n return null;\n }\n\n const isHorizontal = chartSpec.direction === Direction.horizontal;\n\n if (!isArray(axesSpec)) {\n // 如果非法,或者只有一个z轴就不创建\n if (!isValidCartesianAxis(axesSpec)) {\n return null;\n }\n const { axisType, componentName } = getCartesianAxisInfo(axesSpec, isHorizontal);\n axesSpec.type = axisType;\n return [\n {\n spec: axesSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: componentName\n }\n ];\n }\n // 处理spec\n const zAxis = axesSpec.filter(s => s.orient === 'z')[0];\n let valid = true;\n if (zAxis) {\n const xAxis = axesSpec.filter(s => s.orient === 'bottom')[0];\n const yAxis = axesSpec.filter(s => isYAxis(s.orient))[0];\n // 必须有x和y,且x必须是bottom\n valid = axesSpec.length === 3 && xAxis && yAxis;\n }\n\n let axesSpecList = axesSpec.map((spec, index) => ({ spec, index }));\n if (!valid) {\n axesSpecList = axesSpecList.filter(({ spec }) => spec.orient !== 'z');\n }\n const specInfos: IModelSpecInfo[] = [];\n axesSpecList.forEach(({ spec, index }) => {\n if (!isValidCartesianAxis(spec)) {\n return;\n }\n const { axisType, componentName } = getCartesianAxisInfo(spec, isHorizontal);\n spec.type = axisType;\n specInfos.push({\n spec,\n specPath: [this.specKey, index],\n specInfoPath: ['component', this.specKey, index],\n type: componentName\n });\n });\n return specInfos;\n }\n\n static createComponent(specInfo: IModelSpecInfo, options: IComponentOption) {\n const { spec, ...others } = specInfo;\n const C = Factory.getComponentInKey(others.type);\n if (C) {\n return new C(spec, {\n ...options,\n ...others\n }) as IAxis;\n }\n options.onError(`Component ${others.type} not found`);\n return null;\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout.autoIndent = this._spec.autoIndent !== false;\n this._layout.layoutOrient = this._orient;\n }\n\n setLayout3dBox(box3d: { width: number; height: number; length: number }) {\n this.layout3dBox = box3d;\n }\n\n effect: IEffect = {\n scaleUpdate: params => {\n this.computeData(params?.value);\n eachSeries(\n this._regions,\n s => {\n const orient = this.getOrient();\n\n if (isXAxis(orient)) {\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(orient)) {\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(orient)) {\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n\n protected updateScaleRange() {\n let isScaleChange = false;\n const { width, height } = this.getLayoutRect();\n let newRange: number[] = [];\n if (isXAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = this._inverse ? [width, 0] : [0, width];\n }\n } else if (isZAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = this._inverse ? [width, 0] : [0, width];\n this._scale.range(newRange);\n }\n } else {\n if (isValidNumber(height)) {\n newRange = this._inverse ? [0, height] : [height, 0];\n }\n }\n\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n isScaleChange = true;\n this._scale.range(newRange);\n }\n\n return isScaleChange;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.pluginService?.load(CartesianAxisPlugin.map(P => new P()));\n this.callPlugin(plugin => {\n this.pluginService && plugin.onInit && plugin.onInit(this.pluginService, this);\n });\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this.visible) {\n const isX = isXAxis(this.getOrient());\n if (isX) {\n if (isUndefined(this._spec.maxHeight)) {\n this._spec.maxHeight = '30%';\n }\n } else if (isUndefined(this._spec.maxWidth)) {\n this._spec.maxWidth = '30%';\n }\n\n const axisStyle: any = this._getAxisAttributes();\n axisStyle.label.formatMethod = this.getLabelFormatMethod();\n axisStyle.verticalFactor = this.getOrient() === 'top' || this.getOrient() === 'right' ? -1 : 1;\n this._axisStyle = axisStyle;\n }\n this._tick = this._spec.tick;\n const chartSpec = this._option.getChart()?.getSpec() as ICartesianChartSpec;\n this._inverse = transformInverse(this._spec, chartSpec?.direction === Direction.horizontal);\n }\n\n protected getSeriesStatisticsField(s: ICartesianSeries) {\n let f: string[];\n if (isXAxis(this.getOrient())) {\n f = s.fieldX;\n } else if (isZAxis(this.getOrient())) {\n f = s.fieldZ;\n } else {\n f = s.fieldY;\n }\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected _tickTransformOption() {\n return {\n ...super._tickTransformOption(),\n noDecimals: this._tick.noDecimals,\n labelLastVisible: this._spec.label?.lastVisible,\n labelFlush: this._spec.label?.flush\n } as ICartesianTickDataOpt;\n }\n\n protected axisHelper(): IAxisHelper {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n return {\n isContinuous: isContinuous(this._scale.type),\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._inverse === true,\n getSpec: () => this._spec\n };\n }\n\n /** LifeCycle API**/\n afterCompile() {\n const product = this._axisMark?.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n // 布局结束之后再进行插件的调用\n // 插件在布局后\n if (isXAxis(this.getOrient())) {\n this.callPlugin(plugin => {\n this.pluginService &&\n plugin.onDidLayoutHorizontal &&\n plugin.onDidLayoutHorizontal(this.pluginService, this);\n });\n } else {\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidLayoutVertical && plugin.onDidLayoutVertical(this.pluginService, this);\n });\n }\n this._delegateAxisContainerEvent(product.getGroupGraphicItem());\n\n // 更新单位的显示位置\n if (this._unitText) {\n const bounds = product.graphicItem.AABBBounds;\n const pos = isXAxis(this._orient)\n ? {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n }\n : {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n\n this._unitText.setAttributes(pos);\n }\n }\n });\n }\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidCompile && plugin.onDidCompile(this.pluginService, this);\n });\n }\n\n onLayoutEnd(ctx: any): void {\n const isRangeChange = this.updateScaleRange();\n if (isRangeChange) {\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n // 这里会执行 computeData ,会执行系列scale更新\n } else {\n this.updateSeriesScale();\n }\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n update(ctx: IComponentOption) {\n // TODO\n }\n\n resize(ctx: IComponentOption) {\n // TODO\n }\n\n protected collectScale() {\n const scales: IBaseScale[] = [];\n eachSeries(\n this._regions,\n s => {\n scales.push(\n this.getOrient() === 'left' || this.getOrient() === 'right'\n ? (s as ICartesianSeries).scaleY\n : (s as ICartesianSeries).scaleX\n );\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return scales;\n }\n\n protected collectData(depth?: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n if (isXAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldX2\n ? [...(s as ICartesianSeries).fieldX, (s as ICartesianSeries).fieldX2]\n : (s as ICartesianSeries).fieldX;\n } else if (isZAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldZ;\n } else {\n field = (s as ICartesianSeries).fieldY;\n }\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (rawData) {\n data.push(s.getRawDataStatisticsByField(f, false) as { min: number; max: number; values: any[] });\n } else {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected updateSeriesScale() {\n const orient = this.getOrient();\n eachSeries(\n this._regions,\n s => {\n if (isXAxis(orient)) {\n (s as ICartesianSeries).setScaleX(this._scale);\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(orient)) {\n (s as ICartesianSeries).setScaleY(this._scale);\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(orient)) {\n (s as ICartesianSeries).setScaleZ(this._scale);\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n // protected _seriesUpdateAfterScaleChange(updateInfo: { domain?: boolean; range?: boolean; type?: boolean }) {\n // const orient = this.getOrient();\n // eachSeries(\n // this._regions,\n // s => {\n // if (isXAxis(orient)) {\n // (s as ICartesianSeries).xAxisUpdated(updateInfo);\n // } else if (isYAxis(orient)) {\n // (s as ICartesianSeries).yAxisUpdated(updateInfo);\n // } else if (isZAxis(orient)) {\n // (s as ICartesianSeries).zAxisUpdated(updateInfo);\n // }\n // },\n // {\n // userId: this._seriesUserId,\n // specIndex: this._seriesIndex\n // }\n // );\n // }\n\n _transformLayoutPosition = (pos: Partial<IPoint>) => {\n let { x, y } = pos;\n if (isValidNumber(x)) {\n x += Number(this._orient === 'left') * this.getLayoutRect().width;\n }\n if (isValidNumber(y)) {\n y += Number(this._orient === 'top') * this.getLayoutRect().height;\n }\n return { x, y };\n };\n\n _transformLayoutRect = (result: ILayoutRect) => {\n if (!this._visible) {\n return result;\n }\n const bounds = this._latestBounds.clone().translate(-this.getLayoutStartPoint().x, -this.getLayoutStartPoint().y);\n switch (this._layout.layoutOrient) {\n case 'left':\n if (this._layout.layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x1 < 0 ? -bounds.x1 : 0;\n }\n break;\n case 'right':\n if (this._layout.layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x2 > 0 ? bounds.x2 : 0;\n }\n break;\n case 'top':\n if (this._layout.layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y1 < 0 ? -bounds.y1 : 0;\n }\n break;\n case 'bottom':\n if (this._layout.layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y2 > 0 ? bounds.y2 : 0;\n }\n break;\n default:\n break;\n }\n result.width = Math.ceil(result.width);\n result.height = Math.ceil(result.height);\n return this._layout.setRectInSpec(this._layoutCacheProcessing(result));\n };\n /**\n * bounds 预计算\n * @param rect\n * @returns\n */\n getBoundsInRect(rect: ILayoutRect): IBoundsLike {\n let result: IBoundsLike = { x1: 0, y1: 0, x2: 0, y2: 0 };\n if (!this._visible) {\n return result;\n }\n this._verticalLimitSize = isXAxis(this.getOrient()) ? rect.height : rect.width;\n\n this.setLayoutRect(rect);\n const isChanged = this.updateScaleRange();\n // 防止一直没有计算latestData\n if (isChanged || !isArray(this.getTickData().getLatestData())) {\n this.computeData('range');\n }\n const context = { skipLayout: false };\n const isX = isXAxis(this.getOrient());\n if (this.pluginService) {\n isX\n ? this.callPlugin(plugin => {\n plugin.onWillLayoutHorizontal && plugin.onWillLayoutHorizontal(this.pluginService, context, this);\n })\n : this.callPlugin(plugin => {\n plugin.onWillLayoutVertical && plugin.onWillLayoutVertical(this.pluginService, context, this);\n });\n }\n const product = this._axisMark.getProduct();\n let hasBounds = false;\n\n if (!context.skipLayout) {\n const attrs = this._getUpdateAttribute(true);\n const axisComponent = product.getGroupGraphicItem();\n\n const spec = mergeSpec({ ...this.getLayoutStartPoint() }, this._axisStyle, attrs, { line: { visible: false } });\n const updateBounds = axisComponent.getBoundsWithoutRender(spec);\n\n hasBounds = true;\n this._latestBounds = updateBounds;\n if (isFinite(updateBounds.width())) {\n // 因为轴单位在某些区域显示的时候,是不参与轴某个方向的包围盒计算的,\n // 所以不太合适放在轴组件内支持,所以就在 VChart 层的轴组件上通过添加 text 图元支持\n result = this._appendAxisUnit(updateBounds, isX);\n }\n }\n\n if (!hasBounds) {\n this._latestBounds = product.getBounds();\n }\n return result;\n }\n\n updateLayoutAttribute(): void {\n if (!this.visible) {\n return;\n }\n const startPoint = this.getLayoutStartPoint();\n // 正式的更新布局属性\n const { grid: updateGridAttrs, ...updateAxisAttrs } = this._getUpdateAttribute(false);\n const axisProduct = this._axisMark.getProduct(); // 获取语法元素\n const axisAttrs = mergeSpec({ x: startPoint.x, y: startPoint.y }, this._axisStyle, updateAxisAttrs);\n axisProduct.encode(axisAttrs);\n\n if (this._gridMark) {\n const gridProduct = this._gridMark.getProduct(); // 获取语法元素\n gridProduct.encode(mergeSpec({ x: startPoint.x, y: startPoint.y }, this._getGridAttributes(), updateGridAttrs));\n }\n\n super.updateLayoutAttribute();\n }\n\n private _getTitleLimit(isX: boolean) {\n if (this._spec.title.visible && isNil(this._spec.title.style?.maxLineWidth)) {\n const angle = this._axisStyle.title?.angle ?? this._spec.title.style?.angle ?? 0;\n if (isX) {\n const width = this.getLayoutRect().width;\n const cosValue = Math.abs(Math.cos(angle));\n // VRender 接收到的limit是考虑角度计算后的宽度\n // TODO:还需要考虑angle后,高度是否太高,综合计算一个limit,比如高度不能超过图表整体高度的1/4\n return cosValue < 1e-6 ? Infinity : width / cosValue;\n }\n const height = this.getLayoutRect().height;\n const sinValue = Math.abs(Math.sin(angle));\n\n // TODO:还需要考虑angle后,宽度是否太宽,综合计算一个limit,比如宽度度不能超过图表整体宽度的1/4\n return sinValue < 1e-6 ? Infinity : height / sinValue;\n }\n\n return null;\n }\n\n private _getUpdateAttribute(ignoreGrid: boolean) {\n // 获取更新的坐标轴属性\n let regionHeight = 0;\n let regionWidth = 0;\n\n if (!ignoreGrid) {\n const regions = this.getRegions();\n let { x: minX, y: minY } = regions[0].getLayoutStartPoint();\n let maxX = minX + regions[0].getLayoutRect().width;\n let maxY = minY + regions[0].getLayoutRect().height;\n\n for (let index = 1; index < regions.length; index++) {\n const region = regions[index];\n const { x, y } = region.getLayoutStartPoint();\n const { width, height } = region.getLayoutRect();\n\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, width + x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, height + y);\n }\n regionHeight = Math.abs(maxY - minY);\n regionWidth = Math.abs(maxX - minX);\n }\n\n const { width, height } = this.getLayoutRect();\n const isX = isXAxis(this._orient);\n const isY = isYAxis(this._orient);\n const isZ = isZAxis(this._orient);\n let end = { x: 0, y: 0 };\n let gridLength = 0;\n let axisLength = 0;\n const depth = this.layout3dBox ? this.layout3dBox.length : 0;\n if (isX) {\n end = { x: width, y: 0 };\n gridLength = regionHeight;\n axisLength = width;\n } else if (isY) {\n end = { x: 0, y: height };\n gridLength = regionWidth;\n axisLength = height;\n }\n if (isZ) {\n const directionStr = this.directionStr ?? 'r2l';\n const depthZ = this.layout3dBox ? this.layout3dBox.width : 0;\n let anchor3d = [0, 0];\n let alpha = -Math.PI / 2;\n let z = 0;\n if (directionStr === 'l2r') {\n z = this.layout3dBox.length;\n anchor3d = [0, 0, 0];\n alpha = Math.PI / 2;\n }\n const items = this.getLabelItems(width);\n const axisAttrs: any = {\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n z: z,\n alpha,\n anchor3d,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items\n };\n if (!ignoreGrid) {\n axisAttrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth: depthZ,\n length: regionHeight,\n z: z,\n alpha,\n anchor3d\n };\n }\n return axisAttrs;\n }\n let verticalMinSize = isX ? this.layout.minHeight : this.layout.minWidth;\n if (\n (isX && this._layout.layoutRectLevelMap.height === USER_LAYOUT_RECT_LEVEL) ||\n (isY && this._layout.layoutRectLevelMap.width === USER_LAYOUT_RECT_LEVEL)\n ) {\n verticalMinSize = this._verticalLimitSize;\n }\n const items = this.getLabelItems(axisLength);\n const attrs: any = {\n start: { x: 0, y: 0 },\n end,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items,\n verticalLimitSize: this._verticalLimitSize,\n verticalMinSize\n };\n if (!ignoreGrid) {\n attrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end,\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth,\n length: gridLength\n };\n }\n\n return attrs;\n }\n\n protected getLabelItems(length: number) {\n const tickData = this.getTickData();\n const tickLatestData = tickData.getLatestData();\n if (tickLatestData && tickLatestData.length) {\n return [\n tickLatestData\n .map((obj: Datum) => {\n const normalizedValue = this._getNormalizedValue([obj.value], length);\n return getAxisItem(obj.value, normalizedValue);\n })\n .filter((entry: AxisItem) => entry.value >= 0 && entry.value <= 1)\n ];\n }\n return [];\n }\n\n protected initEvent() {\n super.initEvent();\n\n if (this.visible) {\n // 布局结束之后处理 0 基线问题\n this.event.on(ChartEvent.layoutEnd, this._fixAxisOnZero);\n // 图表resize后,需要正常布局,清除布局缓存\n this.event.on(ChartEvent.layoutRectUpdate, () => {\n this._clearLayoutCache();\n });\n }\n }\n\n protected _getNormalizedValue(values: any[], length: number) {\n return length === 0 ? 0 : this.dataToPosition(values) / length;\n }\n\n private _fixAxisOnZero = () => {\n // 在布局结束之后调整坐标轴零基线\n const { onZero, visible } = this._spec.domainLine;\n if (this.visible && onZero && visible !== false) {\n const { onZeroAxisId, onZeroAxisIndex } = this._spec.domainLine;\n const axesComponents = this._option.getComponentsByKey('axes') as IAxis[];\n const isX = isXAxis(this.getOrient());\n\n // 判断坐标轴是否可用\n const isValidAxis = (item: any) => {\n return (\n (isX ? !isXAxis(item.orient) : isXAxis(item.orient)) &&\n isContinuous(item.getScale().type) &&\n item\n .getTickData()\n .getLatestData()\n ?.find((d: any) => d.value === 0)\n );\n };\n const relativeAxes = axesComponents.filter(item => isValidAxis(item));\n if (relativeAxes.length) {\n let bindAxis;\n if (isValid(onZeroAxisId)) {\n bindAxis = relativeAxes.find(axis => axis.id === onZeroAxisId);\n } else if (isValid(onZeroAxisIndex)) {\n const indexAxis = axesComponents[onZeroAxisIndex];\n if (isValidAxis(indexAxis)) {\n bindAxis = indexAxis;\n }\n } else {\n // 默认绑定第一条的相对坐标轴\n bindAxis = relativeAxes[0];\n }\n if (bindAxis) {\n const axisMark = this._axisMark.getProduct();\n // 找到了绑定的 axis,获取基线的位置\n const position = bindAxis.valueToPosition(0);\n // 获取偏移量\n if (isX) {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dy: this._orient === 'bottom' ? -(bindAxis.getScale().range()[0] - position) : position\n }\n });\n } else {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dx: this._orient === 'left' ? position : -(bindAxis.getScale().range()[1] - position)\n }\n });\n }\n }\n }\n }\n };\n\n protected _layoutCacheProcessing(rect: ILayoutRect) {\n ['width', 'height'].forEach(key => {\n if (rect[key] < this._layoutCache[key]) {\n rect[key] = this._layoutCache[key];\n } else {\n this._layoutCache[key] = rect[key];\n }\n });\n\n // outBounds\n if (this._autoIndentOnce && this._hasAutoIndent) {\n // use cache\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n });\n } else {\n this._hasAutoIndent = true;\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n if (this.layout.getLastComputeOutBounds()[key] < this._layoutCache._lastComputeOutBounds[key]) {\n this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n } else {\n this._layoutCache._lastComputeOutBounds[key] = this.layout.getLastComputeOutBounds()[key];\n }\n });\n }\n\n return rect;\n }\n\n _clearLayoutCache() {\n this._hasAutoIndent = false;\n this._layoutCache.width = 0;\n this._layoutCache.height = 0;\n this._layoutCache._lastComputeOutBounds = { x1: 0, x2: 0, y1: 0, y2: 0 };\n }\n\n onDataUpdate(): void {\n // clear layout cache\n this._clearLayoutCache();\n }\n\n private _appendAxisUnit(bounds: IBounds, isX: boolean) {\n if (this._spec.unit && this._spec.unit.visible) {\n const { text, style } = this._spec.unit;\n let pos;\n let unitTextStyle: any;\n if (isX) {\n pos = {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n };\n unitTextStyle = {\n textAlign: 'left',\n textBaseline: 'middle'\n };\n } else {\n pos = {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n unitTextStyle = {\n textAlign: this._orient === 'left' ? 'left' : 'right',\n textBaseline: 'bottom'\n };\n }\n\n unitTextStyle = {\n ...unitTextStyle,\n ...style,\n x: pos.x,\n y: pos.y,\n text\n };\n if (this._unitText) {\n this._unitText.setAttributes(unitTextStyle);\n } else {\n this._unitText = createText(unitTextStyle);\n this._unitText.name = 'axis-unit';\n this.getContainer()?.add(this._unitText);\n }\n\n // 左轴\n const textBounds = this._unitText.AABBBounds;\n if (!isX) {\n bounds.x1 += textBounds.x1 < bounds.x1 ? textBounds.x1 - bounds.x1 : 0;\n bounds.y1 += textBounds.y1 < bounds.y1 ? textBounds.y1 - bounds.y1 : 0;\n } else {\n bounds.x2 += textBounds.x2 > bounds.x2 ? textBounds.x2 - bounds.x2 : 0;\n bounds.y2 += textBounds.y2 > bounds.y2 ? textBounds.y2 - bounds.y2 : 0;\n }\n }\n\n return bounds;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return this._unitText ? [this._unitText] : [];\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/cartesian/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import type { ICartesianHorizontal } from './interface/spec';\nimport type { IBounds, IBoundsLike, Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IEffect, IModelInitOption, IModelSpecInfo } from '../../../model/interface';\nimport type { ICartesianSeries } from '../../../series/interface';\nimport type { IRegion } from '../../../region/interface';\nimport type { ICartesianAxisCommonSpec, IAxisHelper, ICartesianVertical } from './interface';\nimport {\n isArray,\n isValid,\n isValidNumber,\n mergeSpec,\n eachSeries,\n isNil,\n isUndefined,\n calcLayoutNumber\n} from '../../../util';\nimport type { IOrientType, IRect } from '../../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../typings/space';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { Factory } from '../../../core/factory';\nimport { isXAxis, getOrient, isZAxis, isYAxis, getCartesianAxisInfo, transformInverse } from './util/common';\nimport { ChartEvent, DEFAULT_LAYOUT_RECT_LEVEL, LayoutZIndex, USER_LAYOUT_RECT_LEVEL } from '../../../constant';\nimport { LayoutLevel } from '../../../constant/index';\nimport pluginMap from '../../../plugin/components';\nimport type { Datum, StringOrNumber } from '../../../typings/common';\nimport type { IPoint } from '../../../typings/coordinate';\nimport type { ILayoutRect, ILayoutType } from '../../../typings/layout';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\nimport type { AxisItem, LineAxisAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { getAxisItem, isValidCartesianAxis } from '../util';\nimport type { IAxis, ITick } from '../interface';\nimport type { ICartesianTickDataOpt } from '@visactor/vutils-extension';\n// eslint-disable-next-line no-duplicate-imports\nimport type { DataSet } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { AxisComponent } from '../base-axis';\nimport type { IGraphic, IText } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { createText } from '@visactor/vrender-core';\nimport type { ICartesianChartSpec } from '../../../chart';\n\nconst CartesianAxisPlugin = [pluginMap.AxisSyncPlugin];\n\nexport abstract class CartesianAxis<T extends ICartesianAxisCommonSpec = ICartesianAxisCommonSpec>\n extends AxisComponent<T>\n implements IAxis\n{\n static type = ComponentTypeEnum.cartesianAxis;\n type = ComponentTypeEnum.cartesianAxis;\n name: string = ComponentTypeEnum.cartesianAxis;\n\n static specKey = 'axes';\n\n protected readonly _defaultBandPosition = 0.5;\n protected readonly _defaultBandInnerPadding = 0.1;\n protected readonly _defaultBandOuterPadding = 0.3;\n\n // 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n declare directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n\n layoutType: ILayoutType = 'region-relative';\n layoutZIndex: number = LayoutZIndex.Axis;\n layoutLevel: number = LayoutLevel.Axis;\n\n protected _dataSet: DataSet;\n\n layout3dBox?: { width: number; height: number; length: number };\n\n protected _orient: IOrientType = 'left';\n getOrient() {\n return this._orient;\n }\n\n protected _autoIndentOnce: boolean = false;\n protected _hasAutoIndent: boolean = false;\n set autoIndentOnce(v: boolean) {\n this._autoIndentOnce = v;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected _tick: ITick | undefined = undefined;\n\n private _axisStyle: Partial<LineAxisAttributes>;\n private _latestBounds: IBounds;\n private _verticalLimitSize: number;\n private _unitText: IText;\n\n protected _layoutCache: {\n width: number;\n height: number;\n _lastComputeOutBounds: IBoundsLike;\n } = { width: 0, height: 0, _lastComputeOutBounds: { x1: 0, x2: 0, y1: 0, y2: 0 } };\n\n // 内padding\n protected _innerOffset: { top: number; bottom: number; left: number; right: number } = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._orient = getOrient(spec, ['z']);\n if (isZAxis(this._orient)) {\n this.layoutType = 'absolute';\n }\n this._dataSet = options.dataSet;\n this._coordinateType = 'cartesian';\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const axesSpec = chartSpec[this.specKey];\n if (!axesSpec) {\n return null;\n }\n\n const isHorizontal = chartSpec.direction === Direction.horizontal;\n\n if (!isArray(axesSpec)) {\n // 如果非法,或者只有一个z轴就不创建\n if (!isValidCartesianAxis(axesSpec)) {\n return null;\n }\n const { axisType, componentName } = getCartesianAxisInfo(axesSpec, isHorizontal);\n axesSpec.type = axisType;\n return [\n {\n spec: axesSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: componentName\n }\n ];\n }\n // 处理spec\n const zAxis = axesSpec.filter(s => s.orient === 'z')[0];\n let valid = true;\n if (zAxis) {\n const xAxis = axesSpec.filter(s => s.orient === 'bottom')[0];\n const yAxis = axesSpec.filter(s => isYAxis(s.orient))[0];\n // 必须有x和y,且x必须是bottom\n valid = axesSpec.length === 3 && xAxis && yAxis;\n }\n\n let axesSpecList = axesSpec.map((spec, index) => ({ spec, index }));\n if (!valid) {\n axesSpecList = axesSpecList.filter(({ spec }) => spec.orient !== 'z');\n }\n const specInfos: IModelSpecInfo[] = [];\n axesSpecList.forEach(({ spec, index }) => {\n if (!isValidCartesianAxis(spec)) {\n return;\n }\n const { axisType, componentName } = getCartesianAxisInfo(spec, isHorizontal);\n spec.type = axisType;\n specInfos.push({\n spec,\n specPath: [this.specKey, index],\n specInfoPath: ['component', this.specKey, index],\n type: componentName\n });\n });\n return specInfos;\n }\n\n static createComponent(specInfo: IModelSpecInfo, options: IComponentOption) {\n const { spec, ...others } = specInfo;\n const C = Factory.getComponentInKey(others.type);\n if (C) {\n return new C(spec, {\n ...options,\n ...others\n }) as IAxis;\n }\n options.onError(`Component ${others.type} not found`);\n return null;\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout.autoIndent = this._spec.autoIndent !== false;\n this._layout.layoutOrient = this._orient;\n }\n\n setLayout3dBox(box3d: { width: number; height: number; length: number }) {\n this.layout3dBox = box3d;\n }\n\n effect: IEffect = {\n scaleUpdate: params => {\n this.computeData(params?.value);\n eachSeries(\n this._regions,\n s => {\n const orient = this.getOrient();\n\n if (isXAxis(orient)) {\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(orient)) {\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(orient)) {\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n\n protected updateScaleRange() {\n let isScaleChange = false;\n const { width, height } = this.getLayoutRect();\n const { left, right, top, bottom } = this._innerOffset;\n let newRange: number[] = [];\n if (isXAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = this._inverse ? [width - right, left] : [left, width - right];\n }\n } else if (isZAxis(this.getOrient())) {\n if (isValidNumber(width)) {\n newRange = this._inverse ? [width - right, left] : [left, width - right];\n this._scale.range(newRange);\n }\n } else {\n if (isValidNumber(height)) {\n newRange = this._inverse ? [top, height - bottom] : [height - bottom, top];\n }\n }\n const [start, end] = this._scale.range();\n if (newRange[0] !== start || newRange[1] !== end) {\n isScaleChange = true;\n this._scale.range(newRange);\n }\n\n return isScaleChange;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.pluginService?.load(CartesianAxisPlugin.map(P => new P()));\n this.callPlugin(plugin => {\n this.pluginService && plugin.onInit && plugin.onInit(this.pluginService, this);\n });\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this.visible) {\n const isX = isXAxis(this.getOrient());\n if (isX) {\n if (isUndefined(this._spec.maxHeight)) {\n this._spec.maxHeight = '30%';\n }\n } else if (isUndefined(this._spec.maxWidth)) {\n this._spec.maxWidth = '30%';\n }\n\n const axisStyle: any = this._getAxisAttributes();\n axisStyle.label.formatMethod = this.getLabelFormatMethod();\n axisStyle.verticalFactor = this.getOrient() === 'top' || this.getOrient() === 'right' ? -1 : 1;\n this._axisStyle = axisStyle;\n }\n this._tick = this._spec.tick;\n const chartSpec = this._option.getChart()?.getSpec() as ICartesianChartSpec;\n this._inverse = transformInverse(this._spec, chartSpec?.direction === Direction.horizontal);\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void {\n super.onLayoutStart(layoutRect, viewRect, ctx);\n // 计算innerOffset\n if (!isZAxis(this.getOrient()) && (this._spec as ICartesianVertical | ICartesianHorizontal).innerOffset) {\n const spec = this._spec as ICartesianVertical | ICartesianHorizontal;\n if (isYAxis(this.getOrient())) {\n ['top', 'bottom'].forEach(orient => {\n this._innerOffset[orient] = calcLayoutNumber(\n (spec as ICartesianVertical).innerOffset[orient],\n viewRect.height,\n viewRect\n );\n });\n } else {\n ['left', 'right'].forEach(orient => {\n this._innerOffset[orient] = calcLayoutNumber(\n (spec as ICartesianHorizontal).innerOffset[orient],\n viewRect.width,\n viewRect\n );\n });\n }\n }\n }\n\n protected getSeriesStatisticsField(s: ICartesianSeries) {\n let f: string[];\n if (isXAxis(this.getOrient())) {\n f = s.fieldX;\n } else if (isZAxis(this.getOrient())) {\n f = s.fieldZ;\n } else {\n f = s.fieldY;\n }\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected _tickTransformOption() {\n return {\n ...super._tickTransformOption(),\n noDecimals: this._tick.noDecimals,\n labelLastVisible: this._spec.label?.lastVisible,\n labelFlush: this._spec.label?.flush\n } as ICartesianTickDataOpt;\n }\n\n protected axisHelper(): IAxisHelper {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n return {\n isContinuous: isContinuous(this._scale.type),\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._inverse === true,\n getSpec: () => this._spec\n };\n }\n\n /** LifeCycle API**/\n afterCompile() {\n const product = this._axisMark?.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n // 布局结束之后再进行插件的调用\n // 插件在布局后\n if (isXAxis(this.getOrient())) {\n this.callPlugin(plugin => {\n this.pluginService &&\n plugin.onDidLayoutHorizontal &&\n plugin.onDidLayoutHorizontal(this.pluginService, this);\n });\n } else {\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidLayoutVertical && plugin.onDidLayoutVertical(this.pluginService, this);\n });\n }\n this._delegateAxisContainerEvent(product.getGroupGraphicItem());\n\n // 更新单位的显示位置\n if (this._unitText) {\n const bounds = product.graphicItem.AABBBounds;\n const pos = isXAxis(this._orient)\n ? {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n }\n : {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n\n this._unitText.setAttributes(pos);\n }\n }\n });\n }\n this.callPlugin(plugin => {\n this.pluginService && plugin.onDidCompile && plugin.onDidCompile(this.pluginService, this);\n });\n }\n\n onLayoutEnd(ctx: any): void {\n const isRangeChange = this.updateScaleRange();\n if (isRangeChange) {\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n // 这里会执行 computeData ,会执行系列scale更新\n } else {\n this.updateSeriesScale();\n }\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n update(ctx: IComponentOption) {\n // TODO\n }\n\n resize(ctx: IComponentOption) {\n // TODO\n }\n\n protected collectScale() {\n const scales: IBaseScale[] = [];\n eachSeries(\n this._regions,\n s => {\n scales.push(\n this.getOrient() === 'left' || this.getOrient() === 'right'\n ? (s as ICartesianSeries).scaleY\n : (s as ICartesianSeries).scaleX\n );\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return scales;\n }\n\n protected collectData(depth?: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n if (isXAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldX2\n ? [...(s as ICartesianSeries).fieldX, (s as ICartesianSeries).fieldX2]\n : (s as ICartesianSeries).fieldX;\n } else if (isZAxis(this.getOrient())) {\n field = (s as ICartesianSeries).fieldZ;\n } else {\n field = (s as ICartesianSeries).fieldY;\n }\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (rawData) {\n data.push(s.getRawDataStatisticsByField(f, false) as { min: number; max: number; values: any[] });\n } else {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected updateSeriesScale() {\n const orient = this.getOrient();\n eachSeries(\n this._regions,\n s => {\n if (isXAxis(orient)) {\n (s as ICartesianSeries).setScaleX(this._scale);\n (s as ICartesianSeries).setXAxisHelper(this.axisHelper());\n } else if (isYAxis(orient)) {\n (s as ICartesianSeries).setScaleY(this._scale);\n (s as ICartesianSeries).setYAxisHelper(this.axisHelper());\n } else if (isZAxis(orient)) {\n (s as ICartesianSeries).setScaleZ(this._scale);\n (s as ICartesianSeries).setZAxisHelper(this.axisHelper());\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n // protected _seriesUpdateAfterScaleChange(updateInfo: { domain?: boolean; range?: boolean; type?: boolean }) {\n // const orient = this.getOrient();\n // eachSeries(\n // this._regions,\n // s => {\n // if (isXAxis(orient)) {\n // (s as ICartesianSeries).xAxisUpdated(updateInfo);\n // } else if (isYAxis(orient)) {\n // (s as ICartesianSeries).yAxisUpdated(updateInfo);\n // } else if (isZAxis(orient)) {\n // (s as ICartesianSeries).zAxisUpdated(updateInfo);\n // }\n // },\n // {\n // userId: this._seriesUserId,\n // specIndex: this._seriesIndex\n // }\n // );\n // }\n\n _transformLayoutPosition = (pos: Partial<IPoint>) => {\n let { x, y } = pos;\n if (isValidNumber(x)) {\n x += Number(this._orient === 'left') * this.getLayoutRect().width;\n }\n if (isValidNumber(y)) {\n y += Number(this._orient === 'top') * this.getLayoutRect().height;\n }\n return { x, y };\n };\n\n _transformLayoutRect = (result: ILayoutRect) => {\n if (!this._visible) {\n return result;\n }\n const bounds = this._latestBounds.clone().translate(-this.getLayoutStartPoint().x, -this.getLayoutStartPoint().y);\n switch (this._layout.layoutOrient) {\n case 'left':\n if (this._layout.layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x1 < 0 ? -bounds.x1 : 0;\n }\n break;\n case 'right':\n if (this._layout.layoutRectLevelMap.width === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.width = bounds.x2 > 0 ? bounds.x2 : 0;\n }\n break;\n case 'top':\n if (this._layout.layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y1 < 0 ? -bounds.y1 : 0;\n }\n break;\n case 'bottom':\n if (this._layout.layoutRectLevelMap.height === DEFAULT_LAYOUT_RECT_LEVEL) {\n result.height = bounds.y2 > 0 ? bounds.y2 : 0;\n }\n break;\n default:\n break;\n }\n result.width = Math.ceil(result.width);\n result.height = Math.ceil(result.height);\n return this._layout.setRectInSpec(this._layoutCacheProcessing(result));\n };\n /**\n * bounds 预计算\n * @param rect\n * @returns\n */\n getBoundsInRect(rect: ILayoutRect): IBoundsLike {\n let result: IBoundsLike = { x1: 0, y1: 0, x2: 0, y2: 0 };\n if (!this._visible) {\n return result;\n }\n this._verticalLimitSize = isXAxis(this.getOrient()) ? rect.height : rect.width;\n\n this.setLayoutRect(rect);\n const isChanged = this.updateScaleRange();\n // 防止一直没有计算latestData\n if (isChanged || !isArray(this.getTickData().getLatestData())) {\n this.computeData('range');\n }\n const context = { skipLayout: false };\n const isX = isXAxis(this.getOrient());\n if (this.pluginService) {\n isX\n ? this.callPlugin(plugin => {\n plugin.onWillLayoutHorizontal && plugin.onWillLayoutHorizontal(this.pluginService, context, this);\n })\n : this.callPlugin(plugin => {\n plugin.onWillLayoutVertical && plugin.onWillLayoutVertical(this.pluginService, context, this);\n });\n }\n const product = this._axisMark.getProduct();\n let hasBounds = false;\n\n if (!context.skipLayout) {\n const attrs = this._getUpdateAttribute(true);\n const axisComponent = product.getGroupGraphicItem();\n\n const spec = mergeSpec({ ...this.getLayoutStartPoint() }, this._axisStyle, attrs, { line: { visible: false } });\n const updateBounds = axisComponent.getBoundsWithoutRender(spec);\n\n hasBounds = true;\n this._latestBounds = updateBounds;\n if (isFinite(updateBounds.width())) {\n // 因为轴单位在某些区域显示的时候,是不参与轴某个方向的包围盒计算的,\n // 所以不太合适放在轴组件内支持,所以就在 VChart 层的轴组件上通过添加 text 图元支持\n result = this._appendAxisUnit(updateBounds, isX);\n }\n }\n\n if (!hasBounds) {\n this._latestBounds = product.getBounds();\n }\n return result;\n }\n\n updateLayoutAttribute(): void {\n if (!this.visible) {\n return;\n }\n const startPoint = this.getLayoutStartPoint();\n // 正式的更新布局属性\n const { grid: updateGridAttrs, ...updateAxisAttrs } = this._getUpdateAttribute(false);\n const axisProduct = this._axisMark.getProduct(); // 获取语法元素\n const axisAttrs = mergeSpec({ x: startPoint.x, y: startPoint.y }, this._axisStyle, updateAxisAttrs);\n axisProduct.encode(axisAttrs);\n\n if (this._gridMark) {\n const gridProduct = this._gridMark.getProduct(); // 获取语法元素\n gridProduct.encode(mergeSpec({ x: startPoint.x, y: startPoint.y }, this._getGridAttributes(), updateGridAttrs));\n }\n\n super.updateLayoutAttribute();\n }\n\n private _getTitleLimit(isX: boolean) {\n if (this._spec.title.visible && isNil(this._spec.title.style?.maxLineWidth)) {\n const angle = this._axisStyle.title?.angle ?? this._spec.title.style?.angle ?? 0;\n if (isX) {\n const width = this.getLayoutRect().width;\n const cosValue = Math.abs(Math.cos(angle));\n // VRender 接收到的limit是考虑角度计算后的宽度\n // TODO:还需要考虑angle后,高度是否太高,综合计算一个limit,比如高度不能超过图表整体高度的1/4\n return cosValue < 1e-6 ? Infinity : width / cosValue;\n }\n const height = this.getLayoutRect().height;\n const sinValue = Math.abs(Math.sin(angle));\n\n // TODO:还需要考虑angle后,宽度是否太宽,综合计算一个limit,比如宽度度不能超过图表整体宽度的1/4\n return sinValue < 1e-6 ? Infinity : height / sinValue;\n }\n\n return null;\n }\n\n private _getUpdateAttribute(ignoreGrid: boolean) {\n // 获取更新的坐标轴属性\n let regionHeight = 0;\n let regionWidth = 0;\n\n if (!ignoreGrid) {\n const regions = this.getRegions();\n let { x: minX, y: minY } = regions[0].getLayoutStartPoint();\n let maxX = minX + regions[0].getLayoutRect().width;\n let maxY = minY + regions[0].getLayoutRect().height;\n\n for (let index = 1; index < regions.length; index++) {\n const region = regions[index];\n const { x, y } = region.getLayoutStartPoint();\n const { width, height } = region.getLayoutRect();\n\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, width + x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, height + y);\n }\n regionHeight = Math.abs(maxY - minY);\n regionWidth = Math.abs(maxX - minX);\n }\n\n const { width, height } = this.getLayoutRect();\n const isX = isXAxis(this._orient);\n const isY = isYAxis(this._orient);\n const isZ = isZAxis(this._orient);\n let end = { x: 0, y: 0 };\n let gridLength = 0;\n let axisLength = 0;\n const depth = this.layout3dBox ? this.layout3dBox.length : 0;\n if (isX) {\n end = { x: width, y: 0 };\n gridLength = regionHeight;\n axisLength = width;\n } else if (isY) {\n end = { x: 0, y: height };\n gridLength = regionWidth;\n axisLength = height;\n }\n if (isZ) {\n const directionStr = this.directionStr ?? 'r2l';\n const depthZ = this.layout3dBox ? this.layout3dBox.width : 0;\n let anchor3d = [0, 0];\n let alpha = -Math.PI / 2;\n let z = 0;\n if (directionStr === 'l2r') {\n z = this.layout3dBox.length;\n anchor3d = [0, 0, 0];\n alpha = Math.PI / 2;\n }\n const items = this.getLabelItems(width);\n const axisAttrs: any = {\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n z: z,\n alpha,\n anchor3d,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items\n };\n if (!ignoreGrid) {\n axisAttrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end: { x: depth, y: 0 },\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth: depthZ,\n length: regionHeight,\n z: z,\n alpha,\n anchor3d\n };\n }\n return axisAttrs;\n }\n let verticalMinSize = isX ? this.layout.minHeight : this.layout.minWidth;\n if (\n (isX && this._layout.layoutRectLevelMap.height === USER_LAYOUT_RECT_LEVEL) ||\n (isY && this._layout.layoutRectLevelMap.width === USER_LAYOUT_RECT_LEVEL)\n ) {\n verticalMinSize = this._verticalLimitSize;\n }\n const items = this.getLabelItems(axisLength);\n const attrs: any = {\n start: { x: 0, y: 0 },\n end,\n title: {\n text: this._spec.title.text || this._dataFieldText,\n maxWidth: this._getTitleLimit(isX)\n },\n items,\n verticalLimitSize: this._verticalLimitSize,\n verticalMinSize\n };\n if (!ignoreGrid) {\n attrs.grid = {\n type: 'line',\n start: { x: 0, y: 0 },\n end,\n items: items[0],\n verticalFactor: this._axisStyle.verticalFactor,\n depth,\n length: gridLength\n };\n }\n\n return attrs;\n }\n\n protected getLabelItems(length: number) {\n const tickData = this.getTickData();\n const tickLatestData = tickData.getLatestData();\n if (tickLatestData && tickLatestData.length) {\n return [\n tickLatestData\n .map((obj: Datum) => {\n const normalizedValue = this._getNormalizedValue([obj.value], length);\n return getAxisItem(obj.value, normalizedValue);\n })\n .filter((entry: AxisItem) => entry.value >= 0 && entry.value <= 1)\n ];\n }\n return [];\n }\n\n protected initEvent() {\n super.initEvent();\n\n if (this.visible) {\n // 布局结束之后处理 0 基线问题\n this.event.on(ChartEvent.layoutEnd, this._fixAxisOnZero);\n // 图表resize后,需要正常布局,清除布局缓存\n this.event.on(ChartEvent.layoutRectUpdate, () => {\n this._clearLayoutCache();\n });\n }\n }\n\n protected _getNormalizedValue(values: any[], length: number) {\n return length === 0 ? 0 : this.dataToPosition(values) / length;\n }\n\n private _fixAxisOnZero = () => {\n // 在布局结束之后调整坐标轴零基线\n const { onZero, visible } = this._spec.domainLine;\n if (this.visible && onZero && visible !== false) {\n const { onZeroAxisId, onZeroAxisIndex } = this._spec.domainLine;\n const axesComponents = this._option.getComponentsByKey('axes') as IAxis[];\n const isX = isXAxis(this.getOrient());\n\n // 判断坐标轴是否可用\n const isValidAxis = (item: any) => {\n return (isX ? !isXAxis(item.getOrient()) : isXAxis(item.getOrient())) &&\n isContinuous(item.getScale().type) &&\n item.getTickData()\n ? item\n .getTickData()\n .getLatestData()\n ?.find((d: any) => d.value === 0)\n : item.getScale().ticks().includes(0);\n };\n const relativeAxes = axesComponents.filter(item => isValidAxis(item));\n if (relativeAxes.length) {\n let bindAxis;\n if (isValid(onZeroAxisId)) {\n bindAxis = relativeAxes.find(axis => axis.id === onZeroAxisId);\n } else if (isValid(onZeroAxisIndex)) {\n const indexAxis = axesComponents[onZeroAxisIndex];\n if (isValidAxis(indexAxis)) {\n bindAxis = indexAxis;\n }\n } else {\n // 默认绑定第一条的相对坐标轴\n bindAxis = relativeAxes[0];\n }\n if (bindAxis) {\n const axisMark = this._axisMark.getProduct();\n // 找到了绑定的 axis,获取基线的位置\n const position = bindAxis.valueToPosition(0);\n // 获取偏移量\n if (isX) {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dy: this._orient === 'bottom' ? -(bindAxis.getScale().range()[0] - position) : position\n }\n });\n } else {\n axisMark.encode({\n line: {\n ...this._axisStyle.line,\n dx: this._orient === 'left' ? position : -(bindAxis.getScale().range()[1] - position)\n }\n });\n }\n }\n }\n }\n };\n\n protected _layoutCacheProcessing(rect: ILayoutRect) {\n ['width', 'height'].forEach(key => {\n if (rect[key] < this._layoutCache[key]) {\n rect[key] = this._layoutCache[key];\n } else {\n this._layoutCache[key] = rect[key];\n }\n });\n\n // outBounds\n if (this._autoIndentOnce && this._hasAutoIndent) {\n // use cache\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n });\n } else {\n this._hasAutoIndent = true;\n ['x1', 'x2', 'y1', 'y2'].forEach(key => {\n if (this.layout.getLastComputeOutBounds()[key] < this._layoutCache._lastComputeOutBounds[key]) {\n this.layout.getLastComputeOutBounds()[key] = this._layoutCache._lastComputeOutBounds[key];\n } else {\n this._layoutCache._lastComputeOutBounds[key] = this.layout.getLastComputeOutBounds()[key];\n }\n });\n }\n\n return rect;\n }\n\n _clearLayoutCache() {\n this._hasAutoIndent = false;\n this._layoutCache.width = 0;\n this._layoutCache.height = 0;\n this._layoutCache._lastComputeOutBounds = { x1: 0, x2: 0, y1: 0, y2: 0 };\n }\n\n onDataUpdate(): void {\n // clear layout cache\n this._clearLayoutCache();\n }\n\n private _appendAxisUnit(bounds: IBounds, isX: boolean) {\n if (this._spec.unit && this._spec.unit.visible) {\n const { text, style } = this._spec.unit;\n let pos;\n let unitTextStyle: any;\n if (isX) {\n pos = {\n x: bounds.x2,\n y: this.getLayoutStartPoint().y\n };\n unitTextStyle = {\n textAlign: 'left',\n textBaseline: 'middle'\n };\n } else {\n pos = {\n x: this.getLayoutStartPoint().x,\n y: bounds.y1\n };\n unitTextStyle = {\n textAlign: this._orient === 'left' ? 'left' : 'right',\n textBaseline: 'bottom'\n };\n }\n\n unitTextStyle = {\n ...unitTextStyle,\n ...style,\n x: pos.x,\n y: pos.y,\n text\n };\n if (this._unitText) {\n this._unitText.setAttributes(unitTextStyle);\n } else {\n this._unitText = createText(unitTextStyle);\n this._unitText.name = 'axis-unit';\n this.getContainer()?.add(this._unitText);\n }\n\n // 左轴\n const textBounds = this._unitText.AABBBounds;\n if (!isX) {\n bounds.x1 += textBounds.x1 < bounds.x1 ? textBounds.x1 - bounds.x1 : 0;\n bounds.y1 += textBounds.y1 < bounds.y1 ? textBounds.y1 - bounds.y1 : 0;\n } else {\n bounds.x2 += textBounds.x2 > bounds.x2 ? textBounds.x2 - bounds.x2 : 0;\n bounds.y2 += textBounds.y2 > bounds.y2 ? textBounds.y2 - bounds.y2 : 0;\n }\n }\n\n return bounds;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return this._unitText ? [this._unitText] : [];\n }\n}\n"]}
@@ -1,10 +1,26 @@
1
- import type { IOrientType, IRectMarkSpec, StringOrNumber } from '../../../../typings';
1
+ import type { ILayoutNumber, IRectMarkSpec, StringOrNumber } from '../../../../typings';
2
2
  import type { IBandAxisSpec, ILinearAxisSpec, IGrid, ICommonAxisSpec } from '../../interface';
3
3
  import type { ICartesianDomainLine, ICartesianLabel, ITimeLayerType, ICartesianTitle, ICartesianAxisUnit } from './common';
4
4
  import type { AxisItemStateStyle } from '@visactor/vrender-components';
5
5
  export type ICartesianAxisSpec = ICartesianLinearAxisSpec | ICartesianBandAxisSpec | ICartesianTimeAxisSpec | ICartesianLogAxisSpec | ICartesianSymlogAxisSpec;
6
+ export type ICartesianVertical = {
7
+ orient: 'left' | 'right';
8
+ innerOffset?: {
9
+ top?: ILayoutNumber;
10
+ bottom?: ILayoutNumber;
11
+ };
12
+ };
13
+ export type ICartesianHorizontal = {
14
+ orient: 'top' | 'bottom';
15
+ innerOffset?: {
16
+ left?: ILayoutNumber;
17
+ right?: ILayoutNumber;
18
+ };
19
+ };
20
+ export type ICartesianZ = {
21
+ orient: 'z';
22
+ };
6
23
  export type ICartesianAxisCommonSpec = ICommonAxisSpec & {
7
- orient: IOrientType;
8
24
  grid?: IGrid;
9
25
  subGrid?: IGrid;
10
26
  domainLine?: ICartesianDomainLine;
@@ -20,7 +36,7 @@ export type ICartesianAxisCommonSpec = ICommonAxisSpec & {
20
36
  depth?: number;
21
37
  unit?: ICartesianAxisUnit;
22
38
  hasDimensionTooltip?: boolean;
23
- };
39
+ } & (ICartesianVertical | ICartesianHorizontal | ICartesianZ);
24
40
  export interface ILinearAxisSync {
25
41
  axisId: StringOrNumber;
26
42
  zeroAlign?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/cartesian/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IOrientType, IRectMarkSpec, StringOrNumber } from '../../../../typings';\nimport type { IBandAxisSpec, ILinearAxisSpec, IGrid, ICommonAxisSpec } from '../../interface';\nimport type {\n ICartesianDomainLine,\n ICartesianLabel,\n ITimeLayerType,\n ICartesianTitle,\n ICartesianAxisUnit\n} from './common';\nimport type { AxisItemStateStyle } from '@visactor/vrender-components';\n\n/** spec */\nexport type ICartesianAxisSpec =\n | ICartesianLinearAxisSpec\n | ICartesianBandAxisSpec\n | ICartesianTimeAxisSpec\n | ICartesianLogAxisSpec\n | ICartesianSymlogAxisSpec;\n\nexport type ICartesianAxisCommonSpec = ICommonAxisSpec & {\n /** 轴位置 */\n orient: IOrientType;\n /**\n * 网格线配置\n */\n grid?: IGrid;\n /**\n * 子网格线配置\n */\n subGrid?: IGrid;\n /**\n * 轴线配置\n */\n domainLine?: ICartesianDomainLine;\n /**\n * 轴标签配置\n */\n label?: ICartesianLabel;\n /**\n * 轴标题配置\n */\n title?: ICartesianTitle;\n /**\n * 是否进行自动缩进\n * 设置为 true 时,当轴元素超出绘图区会被裁剪时,会对图表增加额外的padding,使轴可以显示完整\n */\n autoIndent?: boolean;\n /**\n * 坐标轴背景配置\n */\n background?: {\n /**\n * 是否绘制坐标轴背景\n * @default false\n */\n visible: boolean;\n /**\n * 背景样式\n */\n style?: Partial<IRectMarkSpec>;\n /**\n * 背景在交互状态下的样式配置\n */\n state?: AxisItemStateStyle<Partial<IRectMarkSpec>>;\n };\n /**\n * 是否是3d模式的轴\n */\n mode?: '2d' | '3d';\n /**\n * 轴的z方向深度\n */\n depth?: number;\n /**\n * 轴单位配置,仅支持直角坐标系下的坐标轴\n * @since 1.5.1\n */\n unit?: ICartesianAxisUnit;\n /**\n * 是否在此轴上指定显示 dimension tooltip\n * (离散轴默认不需要配置)\n * @since 1.9.0\n */\n hasDimensionTooltip?: boolean;\n};\n\nexport interface ILinearAxisSync {\n /**\n * 配置参照的轴 id\n */\n axisId: StringOrNumber;\n /**\n * 是否保持 2 个轴的 0 值对齐\n * @default false\n */\n zeroAlign?: boolean;\n /**\n * 是否使这个轴的 tick 与目标轴保持比例对齐\n * @default false\n */\n tickAlign?: boolean;\n}\n\nexport type ICartesianLinearAxisSpec = ICartesianAxisCommonSpec &\n ILinearAxisSpec & {\n sync?: ILinearAxisSync;\n };\n\nexport type ICartesianBandAxisSpec = ICartesianAxisCommonSpec &\n IBandAxisSpec & {\n /**\n * 轴组宽设置\n * @since 1.4.0\n */\n bandSize?: number;\n /**\n * 轴最大组宽设置\n * @since 1.4.0\n */\n maxBandSize?: number;\n /**\n * 轴最小组宽设置\n * @since 1.4.0\n */\n minBandSize?: number;\n /**\n * 是否根据组宽自动计算 region 宽度或高度,仅当 `bandSize` 或 `maxBandSize` 配置时生效\n * @since 1.4.0\n */\n autoRegionSize?: boolean;\n };\n\nexport type ICartesianTimeAxisSpec = Omit<ICartesianAxisCommonSpec, 'inverse'> & {\n /**\n * 轴的层级配置。\n * layer[0] 为主轴,即离坐标轴线最近的轴\n * @description 目前仅支持单层 / 双层,即layers.length <= 2\n */\n layers?: ITimeLayerType[];\n};\n\nexport type ICartesianLogAxisSpec = ICartesianLinearAxisSpec & {\n /**\n * 底数\n * @default 10\n */\n base?: number;\n};\n\nexport type ICartesianSymlogAxisSpec = ICartesianLinearAxisSpec & {\n /**\n * 底数\n * @default 10\n */\n constant?: number;\n};\n"]}
1
+ {"version":3,"sources":["../src/component/axis/cartesian/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { ILayoutNumber, IOrientType, IRectMarkSpec, StringOrNumber } from '../../../../typings';\nimport type { IBandAxisSpec, ILinearAxisSpec, IGrid, ICommonAxisSpec } from '../../interface';\nimport type {\n ICartesianDomainLine,\n ICartesianLabel,\n ITimeLayerType,\n ICartesianTitle,\n ICartesianAxisUnit\n} from './common';\nimport type { AxisItemStateStyle } from '@visactor/vrender-components';\n\n/** spec */\nexport type ICartesianAxisSpec =\n | ICartesianLinearAxisSpec\n | ICartesianBandAxisSpec\n | ICartesianTimeAxisSpec\n | ICartesianLogAxisSpec\n | ICartesianSymlogAxisSpec;\n\nexport type ICartesianVertical = {\n orient: 'left' | 'right';\n /**\n * 内padding/留白\n * @since 1.8.10\n */\n innerOffset?: {\n top?: ILayoutNumber;\n bottom?: ILayoutNumber;\n };\n};\nexport type ICartesianHorizontal = {\n orient: 'top' | 'bottom';\n /**\n * 内padding/留白\n * @since 1.8.10\n */\n innerOffset?: {\n left?: ILayoutNumber;\n right?: ILayoutNumber;\n };\n};\nexport type ICartesianZ = {\n orient: 'z';\n};\n\nexport type ICartesianAxisCommonSpec = ICommonAxisSpec & {\n /**\n * 网格线配置\n */\n grid?: IGrid;\n /**\n * 子网格线配置\n */\n subGrid?: IGrid;\n /**\n * 轴线配置\n */\n domainLine?: ICartesianDomainLine;\n /**\n * 轴标签配置\n */\n label?: ICartesianLabel;\n /**\n * 轴标题配置\n */\n title?: ICartesianTitle;\n /**\n * 是否进行自动缩进\n * 设置为 true 时,当轴元素超出绘图区会被裁剪时,会对图表增加额外的padding,使轴可以显示完整\n */\n autoIndent?: boolean;\n /**\n * 坐标轴背景配置\n */\n background?: {\n /**\n * 是否绘制坐标轴背景\n * @default false\n */\n visible: boolean;\n /**\n * 背景样式\n */\n style?: Partial<IRectMarkSpec>;\n /**\n * 背景在交互状态下的样式配置\n */\n state?: AxisItemStateStyle<Partial<IRectMarkSpec>>;\n };\n /**\n * 是否是3d模式的轴\n */\n mode?: '2d' | '3d';\n /**\n * 轴的z方向深度\n */\n depth?: number;\n /**\n * 轴单位配置,仅支持直角坐标系下的坐标轴\n * @since 1.5.1\n */\n unit?: ICartesianAxisUnit;\n /**\n * 是否在此轴上指定显示 dimension tooltip\n * (离散轴默认不需要配置)\n * @since 1.9.0\n */\n hasDimensionTooltip?: boolean;\n} & (ICartesianVertical | ICartesianHorizontal | ICartesianZ);\n\nexport interface ILinearAxisSync {\n /**\n * 配置参照的轴 id\n */\n axisId: StringOrNumber;\n /**\n * 是否保持 2 个轴的 0 值对齐\n * @default false\n */\n zeroAlign?: boolean;\n /**\n * 是否使这个轴的 tick 与目标轴保持比例对齐\n * @default false\n */\n tickAlign?: boolean;\n}\n\nexport type ICartesianLinearAxisSpec = ICartesianAxisCommonSpec &\n ILinearAxisSpec & {\n sync?: ILinearAxisSync;\n };\n\nexport type ICartesianBandAxisSpec = ICartesianAxisCommonSpec &\n IBandAxisSpec & {\n /**\n * 轴组宽设置\n * @since 1.4.0\n */\n bandSize?: number;\n /**\n * 轴最大组宽设置\n * @since 1.4.0\n */\n maxBandSize?: number;\n /**\n * 轴最小组宽设置\n * @since 1.4.0\n */\n minBandSize?: number;\n /**\n * 是否根据组宽自动计算 region 宽度或高度,仅当 `bandSize` 或 `maxBandSize` 配置时生效\n * @since 1.4.0\n */\n autoRegionSize?: boolean;\n };\n\nexport type ICartesianTimeAxisSpec = Omit<ICartesianAxisCommonSpec, 'inverse'> & {\n /**\n * 轴的层级配置。\n * layer[0] 为主轴,即离坐标轴线最近的轴\n * @description 目前仅支持单层 / 双层,即layers.length <= 2\n */\n layers?: ITimeLayerType[];\n};\n\nexport type ICartesianLogAxisSpec = ICartesianLinearAxisSpec & {\n /**\n * 底数\n * @default 10\n */\n base?: number;\n};\n\nexport type ICartesianSymlogAxisSpec = ICartesianLinearAxisSpec & {\n /**\n * 底数\n * @default 10\n */\n constant?: number;\n};\n"]}
@@ -1,5 +1,3 @@
1
- import { Direction } from "../../../../typings/space";
2
-
3
1
  import { isValid } from "@visactor/vutils";
4
2
 
5
3
  import { isValidOrient } from "../../../../util/space";
@@ -27,7 +25,7 @@ export function getOrient(spec, whiteList) {
27
25
  }
28
26
 
29
27
  export function getDirectionByOrient(orient) {
30
- return "top" === orient || "bottom" === orient ? Direction.horizontal : Direction.vertical;
28
+ return "top" === orient || "bottom" === orient ? "horizontal" : "vertical";
31
29
  }
32
30
 
33
31
  export function isOrientInSameDirection(orient1, orient2) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/cartesian/util/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,GAAG,CAAC;AACxB,CAAC;AAID,MAAM,UAAU,YAAY,CAAC,MAAmB,EAAE,YAAqB;IACrE,IAAI,YAAY,EAAE;QAChB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;KAC5C;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAA8B,EAAE,SAAoB;IAC5E,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IACtD,OAAO,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAoB,EAAE,OAAoB;IAChF,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAA8B,EAAE,YAAqB;IAIpF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACzC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;KACxD;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA8B,EAAE,YAAsB;;IACzF,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,GAAG,iBAAiB,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;IACvE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACrC,CAAC","file":"common.js","sourcesContent":["import type { IOrientType } from '../../../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../../typings/space';\nimport { isValid } from '@visactor/vutils';\nimport { isValidOrient } from '../../../../util/space';\nimport type { ICartesianAxisCommonSpec } from '../interface';\nimport { ComponentTypeEnum } from '../../../interface';\n\nexport function isXAxis(orient: IOrientType) {\n return orient === 'bottom' || orient === 'top';\n}\n\nexport function isYAxis(orient: IOrientType) {\n return orient === 'left' || orient === 'right';\n}\n\nexport function isZAxis(orient: IOrientType) {\n return orient === 'z';\n}\n\n// 自动推断轴类型,现在根据orient来判断\n// TODO:后续可以根据数据特征推断\nexport function autoAxisType(orient: IOrientType, isHorizontal: boolean) {\n if (isHorizontal) {\n return isXAxis(orient) ? 'linear' : 'band';\n }\n return isXAxis(orient) ? 'band' : 'linear';\n}\n\nexport function getOrient(spec: ICartesianAxisCommonSpec, whiteList?: string[]): IOrientType {\n return isValidOrient(spec.orient) || (whiteList && whiteList.includes(spec.orient)) ? spec.orient : 'left';\n}\n\nexport function getDirectionByOrient(orient: IOrientType) {\n return orient === 'top' || orient === 'bottom' ? Direction.horizontal : Direction.vertical;\n}\n\nexport function isOrientInSameDirection(orient1: IOrientType, orient2: IOrientType) {\n return getDirectionByOrient(orient1) === getDirectionByOrient(orient2);\n}\n\nexport function transformInverse(spec: ICartesianAxisCommonSpec, isHorizontal: boolean) {\n // 这里处理下 direction === 'horizontal' 下的 Y 轴\n // 因为 Y 轴绘制的时候默认是从下至上绘制的,但是在 direction === 'horizontal' 场景下,图表应该是按照从上至下阅读的\n // 所以这里在这种场景下坐标轴会默认 inverse 已达到效果\n let inverse = spec.inverse;\n if (isHorizontal && !isXAxis(spec.orient)) {\n inverse = isValid(spec.inverse) ? !spec.inverse : true;\n }\n return inverse;\n}\n\nexport function getCartesianAxisInfo(spec: ICartesianAxisCommonSpec, isHorizontal?: boolean) {\n const axisType = spec.type ?? autoAxisType(spec.orient, isHorizontal);\n const componentName = `${ComponentTypeEnum.cartesianAxis}-${axisType}`;\n return { axisType, componentName };\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/cartesian/util/common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAmB;IACzC,OAAO,MAAM,KAAK,GAAG,CAAC;AACxB,CAAC;AAID,MAAM,UAAU,YAAY,CAAC,MAAmB,EAAE,YAAqB;IACrE,IAAI,YAAY,EAAE;QAChB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;KAC5C;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAA8B,EAAE,SAAoB;IAC5E,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IACtD,OAAO,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,cAAsB,CAAC,WAAmB,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAoB,EAAE,OAAoB;IAChF,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAA8B,EAAE,YAAqB;IAIpF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACzC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;KACxD;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA8B,EAAE,YAAsB;;IACzF,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,GAAG,iBAAiB,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;IACvE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACrC,CAAC","file":"common.js","sourcesContent":["import type { IOrientType } from '../../../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../../../typings/space';\nimport { isValid } from '@visactor/vutils';\nimport { isValidOrient } from '../../../../util/space';\nimport type { ICartesianAxisCommonSpec } from '../interface';\nimport { ComponentTypeEnum } from '../../../interface';\n\nexport function isXAxis(orient: IOrientType) {\n return orient === 'bottom' || orient === 'top';\n}\n\nexport function isYAxis(orient: IOrientType) {\n return orient === 'left' || orient === 'right';\n}\n\nexport function isZAxis(orient: IOrientType) {\n return orient === 'z';\n}\n\n// 自动推断轴类型,现在根据orient来判断\n// TODO:后续可以根据数据特征推断\nexport function autoAxisType(orient: IOrientType, isHorizontal: boolean) {\n if (isHorizontal) {\n return isXAxis(orient) ? 'linear' : 'band';\n }\n return isXAxis(orient) ? 'band' : 'linear';\n}\n\nexport function getOrient(spec: ICartesianAxisCommonSpec, whiteList?: string[]): IOrientType {\n return isValidOrient(spec.orient) || (whiteList && whiteList.includes(spec.orient)) ? spec.orient : 'left';\n}\n\nexport function getDirectionByOrient(orient: IOrientType) {\n return orient === 'top' || orient === 'bottom' ? Direction.horizontal : Direction.vertical;\n}\n\nexport function isOrientInSameDirection(orient1: IOrientType, orient2: IOrientType) {\n return getDirectionByOrient(orient1) === getDirectionByOrient(orient2);\n}\n\nexport function transformInverse(spec: ICartesianAxisCommonSpec, isHorizontal: boolean) {\n // 这里处理下 direction === 'horizontal' 下的 Y 轴\n // 因为 Y 轴绘制的时候默认是从下至上绘制的,但是在 direction === 'horizontal' 场景下,图表应该是按照从上至下阅读的\n // 所以这里在这种场景下坐标轴会默认 inverse 已达到效果\n let inverse = spec.inverse;\n if (isHorizontal && !isXAxis(spec.orient)) {\n inverse = isValid(spec.inverse) ? !spec.inverse : true;\n }\n return inverse;\n}\n\nexport function getCartesianAxisInfo(spec: ICartesianAxisCommonSpec, isHorizontal?: boolean) {\n const axisType = spec.type ?? autoAxisType(spec.orient, isHorizontal);\n const componentName = `${ComponentTypeEnum.cartesianAxis}-${axisType}`;\n return { axisType, componentName };\n}\n"]}
@@ -274,7 +274,8 @@ export class PolarAxis extends AxisComponent {
274
274
  title: {
275
275
  text: this._spec.title.text || this._dataFieldText
276
276
  },
277
- items: items
277
+ items: items.length ? [ items ] : [],
278
+ orient: "angle"
278
279
  });
279
280
  this._spec.grid.visible && (attrs.grid = Object.assign({
280
281
  type: "line",
@@ -298,7 +299,8 @@ export class PolarAxis extends AxisComponent {
298
299
  title: {
299
300
  text: this._spec.title.text || this._dataFieldText
300
301
  },
301
- items: items
302
+ items: items.length ? [ items ] : [],
303
+ orient: "radius"
302
304
  });
303
305
  (null === (_a = this._spec.grid) || void 0 === _a ? void 0 : _a.visible) && (attrs.grid = Object.assign({
304
306
  items: items[0],
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/polar/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import { POLAR_DEFAULT_RADIUS, POLAR_END_ANGLE, POLAR_END_RADIAN } from '../../../constant/polar';\nimport type { IBaseScale, BandScale, LinearScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { ChartEvent, LayoutZIndex, POLAR_START_ANGLE, POLAR_START_RADIAN } from '../../../constant';\nimport type { IPolarAxis, IPolarAxisCommonSpec } from './interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { Factory } from '../../../core/factory';\nimport { mergeSpec } from '../../../util/spec/merge-spec';\nimport { eachSeries } from '../../../util/model';\nimport { polarToCartesian } from '../../../util/math';\nimport type { IPolarTickDataOpt } from '@visactor/vutils-extension';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IPolarSeries } from '../../../series/interface';\nimport type { IPoint, IPolarOrientType, IPolarPoint, Datum, StringOrNumber, ILayoutType } from '../../../typings';\nimport { isPolarAxisSeries } from '../../../series/util/utils';\nimport { getAxisItem, getAxisLabelOffset, isValidPolarAxis } from '../util';\n\nimport type { Dict, Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { PointService, degreeToRadian, isValid, isArray, isValidNumber } from '@visactor/vutils';\nimport type { IEffect, IModelSpecInfo } from '../../../model/interface';\nimport { AxisComponent } from '../base-axis';\nimport type { IBandAxisSpec, ITick } from '../interface';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\nimport { getPolarAxisInfo } from './util';\n\nexport abstract class PolarAxis<T extends IPolarAxisCommonSpec = IPolarAxisCommonSpec>\n extends AxisComponent<T>\n implements IPolarAxis\n{\n static type = ComponentTypeEnum.polarAxis;\n type = ComponentTypeEnum.polarAxis;\n name: string = ComponentTypeEnum.polarAxis;\n\n static specKey = 'axes';\n\n protected readonly _defaultBandPosition = 0;\n protected readonly _defaultBandInnerPadding = 0;\n protected readonly _defaultBandOuterPadding = 0;\n\n layoutType: ILayoutType = 'absolute';\n layoutZIndex: number = LayoutZIndex.Axis;\n protected _tick: ITick | undefined = undefined;\n\n protected _center: IPoint | null = null;\n get center() {\n return this._center;\n }\n\n protected _startAngle: number = POLAR_START_RADIAN;\n get startAngle() {\n return this._startAngle;\n }\n\n protected _endAngle: number = POLAR_END_RADIAN;\n get endAngle() {\n return this._endAngle;\n }\n\n protected _orient: IPolarOrientType = 'radius';\n getOrient() {\n return this._orient;\n }\n\n protected _groupScales: IBaseScale[] = [];\n getGroupScales() {\n return this._groupScales;\n }\n\n private _axisStyle: any;\n private _gridStyle: any;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const axesSpec = chartSpec[this.specKey];\n if (!axesSpec) {\n return null;\n }\n\n if (!isArray(axesSpec)) {\n if (!isValidPolarAxis(axesSpec)) {\n return null;\n }\n const { axisType, componentName } = getPolarAxisInfo(axesSpec);\n axesSpec.center = chartSpec.center;\n axesSpec.startAngle = chartSpec.startAngle ?? POLAR_START_ANGLE;\n axesSpec.endAngle =\n chartSpec.endAngle ?? (isValid(chartSpec.startAngle) ? chartSpec.startAngle + 360 : POLAR_END_ANGLE);\n axesSpec.type = axisType;\n return [\n {\n spec: axesSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: componentName\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n let angleAxisIndex: number;\n const radiusAxisSpecInfos: IModelSpecInfo[] = [];\n axesSpec.forEach((s: any, i: number) => {\n if (!isValidPolarAxis(s)) {\n return;\n }\n const { axisType, componentName } = getPolarAxisInfo(s);\n s.center = chartSpec.center;\n s.startAngle = chartSpec.startAngle ?? POLAR_START_ANGLE;\n s.endAngle = chartSpec.endAngle ?? (isValid(chartSpec.startAngle) ? chartSpec.startAngle + 360 : POLAR_END_ANGLE);\n // 优先使用outerRadius, 但要兼容s.radius, spec.radius\n s.outerRadius = s.radius ?? chartSpec.outerRadius ?? chartSpec.radius ?? POLAR_DEFAULT_RADIUS;\n s.type = axisType;\n const info = {\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: componentName\n };\n specInfos.push(info);\n if (s.orient === 'radius') {\n radiusAxisSpecInfos.push(info);\n } else {\n angleAxisIndex = i;\n }\n });\n radiusAxisSpecInfos.forEach(info => {\n (info as any).angleAxisIndex = angleAxisIndex;\n });\n return specInfos;\n }\n\n static createComponent(specInfo: IModelSpecInfo, options: IComponentOption) {\n const { spec, ...others } = specInfo;\n const C = Factory.getComponentInKey(others.type);\n if (C) {\n return new C(spec, {\n ...options,\n ...others\n }) as IPolarAxis;\n }\n options.onError(`Component ${others.type} not found`);\n return null;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._coordinateType = 'polar';\n }\n\n effect: IEffect = {\n scaleUpdate: param => {\n this.computeData(param?.value);\n eachSeries(\n this._regions,\n s => {\n if (this.getOrient() === 'radius') {\n (s as IPolarSeries).radiusAxisHelper = this.axisHelper();\n } else {\n (s as IPolarSeries).angleAxisHelper = this.axisHelper();\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this.visible) {\n this._axisStyle = this._getAxisAttributes();\n this._gridStyle = this._getGridAttributes();\n }\n\n this._tick = this._spec.tick;\n this._orient = this._spec.orient === 'angle' ? 'angle' : 'radius';\n this._center = this._spec.center;\n const chartSpec = this.getChart().getSpec() as any;\n const startAngle = this._spec.startAngle ?? chartSpec.startAngle;\n const endAngle = this._spec.endAngle ?? chartSpec.endAngle;\n this._startAngle = degreeToRadian(startAngle ?? POLAR_START_ANGLE);\n this._endAngle = degreeToRadian(endAngle ?? (isValid(startAngle) ? startAngle + 360 : POLAR_END_ANGLE));\n this._inverse = this._spec.inverse;\n }\n\n _transformLayoutPosition = (pos: Partial<IPoint>) => {\n const region = this.getRegions()?.[0];\n return region ? region.getLayoutStartPoint() : pos;\n };\n\n onLayoutEnd(ctx: any): void {\n const isChanged = this.updateScaleRange();\n\n if (isChanged) {\n this.updateSeriesScale();\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n }\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(/** regions: IRegion[] */): void {\n // do nothing\n }\n\n protected _tickTransformOption() {\n return {\n ...super._tickTransformOption(),\n noDecimal: this._tick.noDecimals,\n startAngle: this.startAngle,\n labelOffset: getAxisLabelOffset(this._spec),\n getRadius: () => this.getOuterRadius()\n } as IPolarTickDataOpt;\n }\n\n afterCompile() {\n const product = this._axisMark?.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n // 布局结束之后再进行插件的调用\n this._delegateAxisContainerEvent(product.getGroupGraphicItem());\n }\n });\n }\n }\n\n protected updateScaleRange() {\n const prevRange = this._scale.range();\n let newRange: [number, number];\n\n if (this.getOrient() === 'radius') {\n newRange = this._inverse\n ? [this.computeLayoutOuterRadius(), this.computeLayoutInnerRadius()]\n : [this.computeLayoutInnerRadius(), this.computeLayoutOuterRadius()];\n } else {\n newRange = this._inverse ? [this._endAngle, this._startAngle] : [this._startAngle, this._endAngle];\n }\n\n if (prevRange && newRange && prevRange[0] === newRange[0] && prevRange[1] === newRange[1]) {\n return false;\n }\n\n this._scale.range(newRange);\n\n return true;\n }\n\n protected collectData(depth: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n field =\n this.getOrient() === 'radius' ? (s as IPolarSeries).getRadiusField() : (s as IPolarSeries).getAngleField();\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (rawData) {\n data.push(s.getRawDataStatisticsByField(f, false) as { min: number; max: number; values: any[] });\n } else {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n\n protected updateSeriesScale(): void {\n eachSeries(\n this._regions,\n s => {\n if (this.getOrient() === 'radius') {\n (s as IPolarSeries).setRadiusScale(this._scale);\n (s as IPolarSeries).radiusAxisHelper = this.axisHelper();\n } else {\n (s as IPolarSeries).setAngleScale(this._scale);\n (s as IPolarSeries).angleAxisHelper = this.axisHelper();\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected getSeriesStatisticsField(s: IPolarSeries) {\n const f = this.getOrient() === 'radius' ? s.getRadiusField() : s.getAngleField();\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected initGroupScales() {\n // do nothing\n }\n\n // axisHelper\n protected axisHelper() {\n const getScale = (depth: number) => {\n return this._scales[depth];\n };\n\n const helper = {\n isContinuous: isContinuous(this._scale.type),\n dataToPosition: this.dataToPosition.bind(this),\n coordToPoint: this.coordToPoint.bind(this),\n pointToCoord: this.pointToCoord.bind(this),\n center: this.getCenter.bind(this),\n getScale,\n getAxisId: () => this.id,\n getSpec: () => this._spec\n };\n return helper;\n }\n\n positionToData(position: IPoint) {\n const coord = this.pointToCoord(position);\n if (this.getOrient() === 'radius') {\n return this.invert(coord.radius);\n }\n return this.invert(coord.angle);\n }\n\n /**\n * 将半径和角度转换为笛卡尔坐标点\n * @param point 角度 & 弧度信息\n * @returns 笛卡尔坐标点 { x, y }\n */\n coordToPoint(point: IPolarPoint): IPoint {\n // center & startAngle 都是坐标系转换的配置,在 scale 中不生效,仅在最终转换时生效\n const angle = point.angle;\n const { x: centerX, y: centerY } = this.getCenter();\n const p = polarToCartesian({ angle, radius: point.radius });\n return {\n x: p.x + centerX,\n y: p.y + centerY\n };\n }\n\n /**\n * 将笛卡尔坐标转换为对应的半径和弧度\n * @param point 笛卡尔坐标点 { x, y }\n * @returns 角度 & 弧度信息 { radius, angle }\n */\n pointToCoord(point: IPoint): IPolarPoint {\n const { x: centerX, y: centerY } = this.getCenter();\n let dx = point.x - centerX;\n let dy = point.y - centerY;\n const startAngle = this._startAngle;\n const endAngle = this._endAngle;\n const radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n\n let radian = Math.atan2(dy, dx);\n if (radian < startAngle) {\n while (radian <= startAngle) {\n radian += Math.PI * 2;\n }\n }\n if (radian > endAngle) {\n while (radian >= endAngle) {\n radian -= Math.PI * 2;\n }\n }\n return {\n radius,\n angle: radian\n };\n }\n\n /**\n * 获取坐标轴圆心位置\n * @returns 圆心位置\n */\n getCenter(): IPoint {\n return {\n x: this._center?.x || this.getRefLayoutRect().width / 2,\n y: this._center?.y || this.getRefLayoutRect().height / 2\n };\n }\n\n /**\n * 获取极坐标半径值\n * @returns 半径数值\n */\n getOuterRadius(): number {\n return this.computeLayoutOuterRadius();\n }\n\n /**\n * 获取极坐标内半径值\n * @returns 内半径数值\n */\n getInnerRadius(): number {\n return this.computeLayoutInnerRadius();\n }\n\n tickValues(): number[] {\n const tickData = this.getTickData();\n if (tickData) {\n const latestData = tickData.getLatestData();\n\n if (latestData && !isArray(latestData)) {\n // the ticks data of scale has not be calculated\n this.computeData('force');\n } else {\n return latestData || [];\n }\n }\n\n return (this._scale as BandScale | LinearScale).ticks();\n }\n\n updateLayoutAttribute(): void {\n if (this._visible) {\n if (this.getOrient() === 'radius') {\n this._layoutRadiusAxis();\n } else {\n this._layoutAngleAxis();\n }\n }\n\n super.updateLayoutAttribute();\n }\n\n protected _getNormalizedValue(values: any[], length: number) {\n return length === 0 ? 0 : (this.dataToPosition(values) - this._getStartValue()) / length;\n }\n\n protected getLabelItems(length: number) {\n const tickData = this.getTickData();\n const tickLatestData = tickData.getLatestData();\n if (tickLatestData && tickLatestData.length) {\n return [\n tickLatestData.map((obj: Datum) => {\n return getAxisItem(obj.value, this._getNormalizedValue([obj.value], length));\n })\n ];\n }\n return [];\n }\n protected _getStartValue() {\n if (this.getOrient() === 'radius') {\n return this.computeLayoutInnerRadius();\n }\n\n return this._startAngle;\n }\n\n private _layoutAngleAxis(): void {\n const center = this.getCenter();\n const radius = this.computeLayoutOuterRadius();\n const innerRadius = this.computeLayoutInnerRadius();\n const angleRange = this._endAngle - this._startAngle;\n const items = this.getLabelItems(angleRange);\n const commonAttrs = {\n ...this.getLayoutStartPoint(),\n inside: this._spec.inside,\n center,\n radius,\n innerRadius,\n startAngle: this._startAngle,\n endAngle: this._endAngle\n };\n const attrs: any = {\n ...commonAttrs,\n title: {\n text: this._spec.title.text || this._dataFieldText\n },\n items\n };\n if (this._spec.grid.visible) {\n attrs.grid = {\n type: 'line',\n smoothLink: true,\n items: items[0],\n ...commonAttrs\n };\n }\n this._update(attrs);\n }\n\n private _layoutRadiusAxis(): void {\n const center = this.getCenter();\n const radius = this.computeLayoutOuterRadius();\n const innerRadius = this.computeLayoutInnerRadius();\n const endPoint = this.coordToPoint({ angle: this._startAngle, radius });\n const startPoint = this.coordToPoint({ angle: this._startAngle, radius: innerRadius });\n const distance = PointService.distancePP(startPoint, endPoint);\n const items = this.getLabelItems(distance);\n const commonAttrs = {\n ...this.getLayoutStartPoint(),\n start: startPoint,\n end: endPoint,\n verticalFactor: -1\n };\n const attrs: any = {\n ...commonAttrs,\n title: {\n text: this._spec.title.text || this._dataFieldText\n },\n items\n };\n if (this._spec.grid?.visible) {\n attrs.grid = {\n items: items[0],\n type: this._spec.grid?.smooth ? 'circle' : 'polygon',\n center,\n closed: true,\n sides: this._getRelatedAngleAxis()?.tickValues().length,\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n ...commonAttrs\n };\n }\n this._update(attrs);\n }\n\n protected _getRelatedAngleAxis(): IPolarAxis | undefined {\n const index = (this._option as any).angleAxisIndex;\n if (isValid(index)) {\n return this._option.getComponentByIndex(this.specKey, index) as IPolarAxis;\n }\n return undefined;\n }\n\n private computeLayoutOuterRadius() {\n /**\n * 兼容radius旧配置\n * @deprecated use outerRadius instead\n */\n const radius = this._spec.outerRadius ?? this._spec.radius;\n const outerRadius = radius ?? this.getRefSeriesRadius().outerRadius;\n const { width, height } = this.getRefLayoutRect();\n return (Math.min(width, height) / 2) * outerRadius;\n }\n\n private computeLayoutInnerRadius() {\n const innerRadius = this._spec.innerRadius ?? this.getRefSeriesRadius().innerRadius;\n const { width, height } = this.getRefLayoutRect();\n return (Math.min(width, height) / 2) * innerRadius;\n }\n\n private getRefLayoutRect() {\n return this.getRegions()[0].getLayoutRect();\n }\n\n private getRefSeriesRadius() {\n let outerRadius: number = POLAR_DEFAULT_RADIUS;\n let innerRadius: number = 0;\n const chartSpec = this.getChart().getSpec() as any;\n // FIXME: 为了保证 common 图表能够应用系列的 radius 配置,当前从相应的 region 中取到 radius 信息\n eachSeries(\n this.getRegions(),\n s => {\n const series = s as IPolarSeries;\n if (isPolarAxisSeries(series.type)) {\n const {\n outerRadius: seriesRadius = chartSpec.outerRadius,\n innerRadius: seriesInnerRadius = chartSpec.innerRadius\n } = series;\n if (isValidNumber(seriesRadius)) {\n outerRadius = seriesRadius;\n }\n if (isValidNumber(seriesInnerRadius)) {\n innerRadius = seriesInnerRadius;\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return { outerRadius, innerRadius };\n }\n\n private _update(attrs: Dict<unknown>) {\n const { grid: gridAttrs, ...axisAttrs } = attrs;\n const axisProduct = this._axisMark.getProduct(); // 获取语法元素并更新\n axisProduct.encode(mergeSpec({}, this._axisStyle, axisAttrs));\n\n if (this._gridMark) {\n const gridProduct = this._gridMark.getProduct(); // 获取语法元素并更新\n gridProduct.encode(mergeSpec({}, this._gridStyle, gridAttrs));\n }\n }\n\n invert(value: number): number {\n if (this.getOrient() === 'angle' && this._scale.type === 'band') {\n //极坐标轴需要手动取模,超出range时默认会截断\n const range = this._scale.range();\n const rangeValue = range[range.length - 1] - range[0];\n const bandPosition = (this.getSpec() as IBandAxisSpec).bandPosition ?? this._defaultBandPosition;\n const offset = bandPosition === 0.5 ? 0 : (this._scale as BandScale).bandwidth() / 2;\n if (range[0] < 0) {\n const angle = value + offset;\n const transformedAngle = ((angle + Math.abs(range[0])) % rangeValue) - Math.abs(range[0]);\n return this._scale.invert(transformedAngle);\n }\n return this._scale.invert((value + offset) % rangeValue);\n }\n\n return this._scale.invert(value);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/polar/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import { POLAR_DEFAULT_RADIUS, POLAR_END_ANGLE, POLAR_END_RADIAN } from '../../../constant/polar';\nimport type { IBaseScale, BandScale, LinearScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport { ChartEvent, LayoutZIndex, POLAR_START_ANGLE, POLAR_START_RADIAN } from '../../../constant';\nimport type { IPolarAxis, IPolarAxisCommonSpec } from './interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { Factory } from '../../../core/factory';\nimport { mergeSpec } from '../../../util/spec/merge-spec';\nimport { eachSeries } from '../../../util/model';\nimport { polarToCartesian } from '../../../util/math';\nimport type { IPolarTickDataOpt } from '@visactor/vutils-extension';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IPolarSeries } from '../../../series/interface';\nimport type { IPoint, IPolarOrientType, IPolarPoint, Datum, StringOrNumber, ILayoutType } from '../../../typings';\nimport { isPolarAxisSeries } from '../../../series/util/utils';\nimport { getAxisItem, getAxisLabelOffset, isValidPolarAxis } from '../util';\n\nimport type { Dict, Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { PointService, degreeToRadian, isValid, isArray, isValidNumber } from '@visactor/vutils';\nimport type { IEffect, IModelSpecInfo } from '../../../model/interface';\nimport { AxisComponent } from '../base-axis';\nimport type { IBandAxisSpec, ITick } from '../interface';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\nimport { getPolarAxisInfo } from './util';\n\nexport abstract class PolarAxis<T extends IPolarAxisCommonSpec = IPolarAxisCommonSpec>\n extends AxisComponent<T>\n implements IPolarAxis\n{\n static type = ComponentTypeEnum.polarAxis;\n type = ComponentTypeEnum.polarAxis;\n name: string = ComponentTypeEnum.polarAxis;\n\n static specKey = 'axes';\n\n protected readonly _defaultBandPosition = 0;\n protected readonly _defaultBandInnerPadding = 0;\n protected readonly _defaultBandOuterPadding = 0;\n\n layoutType: ILayoutType = 'absolute';\n layoutZIndex: number = LayoutZIndex.Axis;\n protected _tick: ITick | undefined = undefined;\n\n protected _center: IPoint | null = null;\n get center() {\n return this._center;\n }\n\n protected _startAngle: number = POLAR_START_RADIAN;\n get startAngle() {\n return this._startAngle;\n }\n\n protected _endAngle: number = POLAR_END_RADIAN;\n get endAngle() {\n return this._endAngle;\n }\n\n protected _orient: IPolarOrientType = 'radius';\n getOrient() {\n return this._orient;\n }\n\n protected _groupScales: IBaseScale[] = [];\n getGroupScales() {\n return this._groupScales;\n }\n\n private _axisStyle: any;\n private _gridStyle: any;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const axesSpec = chartSpec[this.specKey];\n if (!axesSpec) {\n return null;\n }\n\n if (!isArray(axesSpec)) {\n if (!isValidPolarAxis(axesSpec)) {\n return null;\n }\n const { axisType, componentName } = getPolarAxisInfo(axesSpec);\n axesSpec.center = chartSpec.center;\n axesSpec.startAngle = chartSpec.startAngle ?? POLAR_START_ANGLE;\n axesSpec.endAngle =\n chartSpec.endAngle ?? (isValid(chartSpec.startAngle) ? chartSpec.startAngle + 360 : POLAR_END_ANGLE);\n axesSpec.type = axisType;\n return [\n {\n spec: axesSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: componentName\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n let angleAxisIndex: number;\n const radiusAxisSpecInfos: IModelSpecInfo[] = [];\n axesSpec.forEach((s: any, i: number) => {\n if (!isValidPolarAxis(s)) {\n return;\n }\n const { axisType, componentName } = getPolarAxisInfo(s);\n s.center = chartSpec.center;\n s.startAngle = chartSpec.startAngle ?? POLAR_START_ANGLE;\n s.endAngle = chartSpec.endAngle ?? (isValid(chartSpec.startAngle) ? chartSpec.startAngle + 360 : POLAR_END_ANGLE);\n // 优先使用outerRadius, 但要兼容s.radius, spec.radius\n s.outerRadius = s.radius ?? chartSpec.outerRadius ?? chartSpec.radius ?? POLAR_DEFAULT_RADIUS;\n s.type = axisType;\n const info = {\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: componentName\n };\n specInfos.push(info);\n if (s.orient === 'radius') {\n radiusAxisSpecInfos.push(info);\n } else {\n angleAxisIndex = i;\n }\n });\n radiusAxisSpecInfos.forEach(info => {\n (info as any).angleAxisIndex = angleAxisIndex;\n });\n return specInfos;\n }\n\n static createComponent(specInfo: IModelSpecInfo, options: IComponentOption) {\n const { spec, ...others } = specInfo;\n const C = Factory.getComponentInKey(others.type);\n if (C) {\n return new C(spec, {\n ...options,\n ...others\n }) as IPolarAxis;\n }\n options.onError(`Component ${others.type} not found`);\n return null;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._coordinateType = 'polar';\n }\n\n effect: IEffect = {\n scaleUpdate: param => {\n this.computeData(param?.value);\n eachSeries(\n this._regions,\n s => {\n if (this.getOrient() === 'radius') {\n (s as IPolarSeries).radiusAxisHelper = this.axisHelper();\n } else {\n (s as IPolarSeries).angleAxisHelper = this.axisHelper();\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (this.visible) {\n this._axisStyle = this._getAxisAttributes();\n this._gridStyle = this._getGridAttributes();\n }\n\n this._tick = this._spec.tick;\n this._orient = this._spec.orient === 'angle' ? 'angle' : 'radius';\n this._center = this._spec.center;\n const chartSpec = this.getChart().getSpec() as any;\n const startAngle = this._spec.startAngle ?? chartSpec.startAngle;\n const endAngle = this._spec.endAngle ?? chartSpec.endAngle;\n this._startAngle = degreeToRadian(startAngle ?? POLAR_START_ANGLE);\n this._endAngle = degreeToRadian(endAngle ?? (isValid(startAngle) ? startAngle + 360 : POLAR_END_ANGLE));\n this._inverse = this._spec.inverse;\n }\n\n _transformLayoutPosition = (pos: Partial<IPoint>) => {\n const region = this.getRegions()?.[0];\n return region ? region.getLayoutStartPoint() : pos;\n };\n\n onLayoutEnd(ctx: any): void {\n const isChanged = this.updateScaleRange();\n\n if (isChanged) {\n this.updateSeriesScale();\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n }\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: any): void {\n // do nothing\n }\n\n changeRegions(/** regions: IRegion[] */): void {\n // do nothing\n }\n\n protected _tickTransformOption() {\n return {\n ...super._tickTransformOption(),\n noDecimal: this._tick.noDecimals,\n startAngle: this.startAngle,\n labelOffset: getAxisLabelOffset(this._spec),\n getRadius: () => this.getOuterRadius()\n } as IPolarTickDataOpt;\n }\n\n afterCompile() {\n const product = this._axisMark?.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n // 布局结束之后再进行插件的调用\n this._delegateAxisContainerEvent(product.getGroupGraphicItem());\n }\n });\n }\n }\n\n protected updateScaleRange() {\n const prevRange = this._scale.range();\n let newRange: [number, number];\n\n if (this.getOrient() === 'radius') {\n newRange = this._inverse\n ? [this.computeLayoutOuterRadius(), this.computeLayoutInnerRadius()]\n : [this.computeLayoutInnerRadius(), this.computeLayoutOuterRadius()];\n } else {\n newRange = this._inverse ? [this._endAngle, this._startAngle] : [this._startAngle, this._endAngle];\n }\n\n if (prevRange && newRange && prevRange[0] === newRange[0] && prevRange[1] === newRange[1]) {\n return false;\n }\n\n this._scale.range(newRange);\n\n return true;\n }\n\n protected collectData(depth: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n let field: string | string[];\n if (depth > 0) {\n field = s.getGroups()?.fields?.[depth];\n } else {\n field =\n this.getOrient() === 'radius' ? (s as IPolarSeries).getRadiusField() : (s as IPolarSeries).getAngleField();\n }\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n const seriesData = s.getViewDataStatistics?.();\n if (field) {\n field.forEach(f => {\n if (rawData) {\n data.push(s.getRawDataStatisticsByField(f, false) as { min: number; max: number; values: any[] });\n } else {\n if (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n\n protected updateSeriesScale(): void {\n eachSeries(\n this._regions,\n s => {\n if (this.getOrient() === 'radius') {\n (s as IPolarSeries).setRadiusScale(this._scale);\n (s as IPolarSeries).radiusAxisHelper = this.axisHelper();\n } else {\n (s as IPolarSeries).setAngleScale(this._scale);\n (s as IPolarSeries).angleAxisHelper = this.axisHelper();\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected getSeriesStatisticsField(s: IPolarSeries) {\n const f = this.getOrient() === 'radius' ? s.getRadiusField() : s.getAngleField();\n if (isContinuous(this._scale.type)) {\n return f;\n }\n return [f[0]];\n }\n\n protected initGroupScales() {\n // do nothing\n }\n\n // axisHelper\n protected axisHelper() {\n const getScale = (depth: number) => {\n return this._scales[depth];\n };\n\n const helper = {\n isContinuous: isContinuous(this._scale.type),\n dataToPosition: this.dataToPosition.bind(this),\n coordToPoint: this.coordToPoint.bind(this),\n pointToCoord: this.pointToCoord.bind(this),\n center: this.getCenter.bind(this),\n getScale,\n getAxisId: () => this.id,\n getSpec: () => this._spec\n };\n return helper;\n }\n\n positionToData(position: IPoint) {\n const coord = this.pointToCoord(position);\n if (this.getOrient() === 'radius') {\n return this.invert(coord.radius);\n }\n return this.invert(coord.angle);\n }\n\n /**\n * 将半径和角度转换为笛卡尔坐标点\n * @param point 角度 & 弧度信息\n * @returns 笛卡尔坐标点 { x, y }\n */\n coordToPoint(point: IPolarPoint): IPoint {\n // center & startAngle 都是坐标系转换的配置,在 scale 中不生效,仅在最终转换时生效\n const angle = point.angle;\n const { x: centerX, y: centerY } = this.getCenter();\n const p = polarToCartesian({ angle, radius: point.radius });\n return {\n x: p.x + centerX,\n y: p.y + centerY\n };\n }\n\n /**\n * 将笛卡尔坐标转换为对应的半径和弧度\n * @param point 笛卡尔坐标点 { x, y }\n * @returns 角度 & 弧度信息 { radius, angle }\n */\n pointToCoord(point: IPoint): IPolarPoint {\n const { x: centerX, y: centerY } = this.getCenter();\n let dx = point.x - centerX;\n let dy = point.y - centerY;\n const startAngle = this._startAngle;\n const endAngle = this._endAngle;\n const radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n\n let radian = Math.atan2(dy, dx);\n if (radian < startAngle) {\n while (radian <= startAngle) {\n radian += Math.PI * 2;\n }\n }\n if (radian > endAngle) {\n while (radian >= endAngle) {\n radian -= Math.PI * 2;\n }\n }\n return {\n radius,\n angle: radian\n };\n }\n\n /**\n * 获取坐标轴圆心位置\n * @returns 圆心位置\n */\n getCenter(): IPoint {\n return {\n x: this._center?.x || this.getRefLayoutRect().width / 2,\n y: this._center?.y || this.getRefLayoutRect().height / 2\n };\n }\n\n /**\n * 获取极坐标半径值\n * @returns 半径数值\n */\n getOuterRadius(): number {\n return this.computeLayoutOuterRadius();\n }\n\n /**\n * 获取极坐标内半径值\n * @returns 内半径数值\n */\n getInnerRadius(): number {\n return this.computeLayoutInnerRadius();\n }\n\n tickValues(): number[] {\n const tickData = this.getTickData();\n if (tickData) {\n const latestData = tickData.getLatestData();\n\n if (latestData && !isArray(latestData)) {\n // the ticks data of scale has not be calculated\n this.computeData('force');\n } else {\n return latestData || [];\n }\n }\n\n return (this._scale as BandScale | LinearScale).ticks();\n }\n\n updateLayoutAttribute(): void {\n if (this._visible) {\n if (this.getOrient() === 'radius') {\n this._layoutRadiusAxis();\n } else {\n this._layoutAngleAxis();\n }\n }\n\n super.updateLayoutAttribute();\n }\n\n protected _getNormalizedValue(values: any[], length: number) {\n return length === 0 ? 0 : (this.dataToPosition(values) - this._getStartValue()) / length;\n }\n\n protected getLabelItems(length: number) {\n const tickData = this.getTickData();\n const tickLatestData = tickData.getLatestData();\n if (tickLatestData && tickLatestData.length) {\n return [\n tickLatestData.map((obj: Datum) => {\n return getAxisItem(obj.value, this._getNormalizedValue([obj.value], length));\n })\n ];\n }\n return [];\n }\n protected _getStartValue() {\n if (this.getOrient() === 'radius') {\n return this.computeLayoutInnerRadius();\n }\n\n return this._startAngle;\n }\n\n private _layoutAngleAxis(): void {\n const center = this.getCenter();\n const radius = this.computeLayoutOuterRadius();\n const innerRadius = this.computeLayoutInnerRadius();\n const angleRange = this._endAngle - this._startAngle;\n const items = this.getLabelItems(angleRange);\n const commonAttrs = {\n ...this.getLayoutStartPoint(),\n inside: this._spec.inside,\n center,\n radius,\n innerRadius,\n startAngle: this._startAngle,\n endAngle: this._endAngle\n };\n const attrs: any = {\n ...commonAttrs,\n title: {\n text: this._spec.title.text || this._dataFieldText\n },\n items: items.length ? [items] : [],\n orient: 'angle'\n };\n if (this._spec.grid.visible) {\n attrs.grid = {\n type: 'line',\n smoothLink: true,\n items: items[0],\n ...commonAttrs\n };\n }\n this._update(attrs);\n }\n\n private _layoutRadiusAxis(): void {\n const center = this.getCenter();\n const radius = this.computeLayoutOuterRadius();\n const innerRadius = this.computeLayoutInnerRadius();\n const endPoint = this.coordToPoint({ angle: this._startAngle, radius });\n const startPoint = this.coordToPoint({ angle: this._startAngle, radius: innerRadius });\n const distance = PointService.distancePP(startPoint, endPoint);\n const items = this.getLabelItems(distance);\n const commonAttrs = {\n ...this.getLayoutStartPoint(),\n start: startPoint,\n end: endPoint,\n verticalFactor: -1\n };\n const attrs: any = {\n ...commonAttrs,\n title: {\n text: this._spec.title.text || this._dataFieldText\n },\n items: items.length ? [items] : [],\n orient: 'radius'\n };\n if (this._spec.grid?.visible) {\n attrs.grid = {\n items: items[0],\n type: this._spec.grid?.smooth ? 'circle' : 'polygon',\n center,\n closed: true,\n sides: this._getRelatedAngleAxis()?.tickValues().length,\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n ...commonAttrs\n };\n }\n this._update(attrs);\n }\n\n protected _getRelatedAngleAxis(): IPolarAxis | undefined {\n const index = (this._option as any).angleAxisIndex;\n if (isValid(index)) {\n return this._option.getComponentByIndex(this.specKey, index) as IPolarAxis;\n }\n return undefined;\n }\n\n private computeLayoutOuterRadius() {\n /**\n * 兼容radius旧配置\n * @deprecated use outerRadius instead\n */\n const radius = this._spec.outerRadius ?? this._spec.radius;\n const outerRadius = radius ?? this.getRefSeriesRadius().outerRadius;\n const { width, height } = this.getRefLayoutRect();\n return (Math.min(width, height) / 2) * outerRadius;\n }\n\n private computeLayoutInnerRadius() {\n const innerRadius = this._spec.innerRadius ?? this.getRefSeriesRadius().innerRadius;\n const { width, height } = this.getRefLayoutRect();\n return (Math.min(width, height) / 2) * innerRadius;\n }\n\n private getRefLayoutRect() {\n return this.getRegions()[0].getLayoutRect();\n }\n\n private getRefSeriesRadius() {\n let outerRadius: number = POLAR_DEFAULT_RADIUS;\n let innerRadius: number = 0;\n const chartSpec = this.getChart().getSpec() as any;\n // FIXME: 为了保证 common 图表能够应用系列的 radius 配置,当前从相应的 region 中取到 radius 信息\n eachSeries(\n this.getRegions(),\n s => {\n const series = s as IPolarSeries;\n if (isPolarAxisSeries(series.type)) {\n const {\n outerRadius: seriesRadius = chartSpec.outerRadius,\n innerRadius: seriesInnerRadius = chartSpec.innerRadius\n } = series;\n if (isValidNumber(seriesRadius)) {\n outerRadius = seriesRadius;\n }\n if (isValidNumber(seriesInnerRadius)) {\n innerRadius = seriesInnerRadius;\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return { outerRadius, innerRadius };\n }\n\n private _update(attrs: Dict<unknown>) {\n const { grid: gridAttrs, ...axisAttrs } = attrs;\n const axisProduct = this._axisMark.getProduct(); // 获取语法元素并更新\n axisProduct.encode(mergeSpec({}, this._axisStyle, axisAttrs));\n\n if (this._gridMark) {\n const gridProduct = this._gridMark.getProduct(); // 获取语法元素并更新\n gridProduct.encode(mergeSpec({}, this._gridStyle, gridAttrs));\n }\n }\n\n invert(value: number): number {\n if (this.getOrient() === 'angle' && this._scale.type === 'band') {\n //极坐标轴需要手动取模,超出range时默认会截断\n const range = this._scale.range();\n const rangeValue = range[range.length - 1] - range[0];\n const bandPosition = (this.getSpec() as IBandAxisSpec).bandPosition ?? this._defaultBandPosition;\n const offset = bandPosition === 0.5 ? 0 : (this._scale as BandScale).bandwidth() / 2;\n if (range[0] < 0) {\n const angle = value + offset;\n const transformedAngle = ((angle + Math.abs(range[0])) % rangeValue) - Math.abs(range[0]);\n return this._scale.invert(transformedAngle);\n }\n return this._scale.invert((value + offset) % rangeValue);\n }\n\n return this._scale.invert(value);\n }\n}\n"]}