@visactor/vchart 1.8.8-alpha.1 → 1.8.10-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +635 -581
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/config.js +1 -1
  6. package/cjs/animation/config.js.map +1 -1
  7. package/cjs/component/axis/base-axis.d.ts +2 -1
  8. package/cjs/component/axis/base-axis.js +11 -1
  9. package/cjs/component/axis/base-axis.js.map +1 -1
  10. package/cjs/component/axis/cartesian/axis.d.ts +9 -2
  11. package/cjs/component/axis/cartesian/axis.js +23 -8
  12. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  13. package/cjs/component/axis/cartesian/interface/spec.d.ts +19 -3
  14. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  15. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +6 -1
  16. package/cjs/component/axis/mixin/band-axis-mixin.js +17 -1
  17. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  18. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +9 -1
  19. package/cjs/component/axis/mixin/linear-axis-mixin.js +18 -5
  20. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  21. package/cjs/component/axis/polar/axis.d.ts +1 -1
  22. package/cjs/component/axis/polar/axis.js +4 -4
  23. package/cjs/component/axis/polar/axis.js.map +1 -1
  24. package/cjs/component/brush/brush.js +3 -3
  25. package/cjs/component/brush/brush.js.map +1 -1
  26. package/cjs/component/crosshair/base.js +5 -4
  27. package/cjs/component/crosshair/base.js.map +1 -1
  28. package/cjs/component/crosshair/cartesian.js +20 -17
  29. package/cjs/component/crosshair/cartesian.js.map +1 -1
  30. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
  31. package/cjs/component/data-zoom/data-filter-base-component.js +6 -3
  32. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  33. package/cjs/component/geo/geo-coordinate.d.ts +1 -0
  34. package/cjs/component/geo/geo-coordinate.js +7 -6
  35. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  36. package/cjs/component/indicator/indicator.js +2 -2
  37. package/cjs/component/indicator/indicator.js.map +1 -1
  38. package/cjs/component/label/label.js +3 -3
  39. package/cjs/component/label/label.js.map +1 -1
  40. package/cjs/component/label/total-label.js +3 -3
  41. package/cjs/component/label/total-label.js.map +1 -1
  42. package/cjs/component/label/util.js.map +1 -1
  43. package/cjs/component/map-label/component.js +1 -1
  44. package/cjs/component/map-label/component.js.map +1 -1
  45. package/cjs/component/marker/mark-line/mark-line.js +3 -3
  46. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  47. package/cjs/component/marker/utils.js +6 -6
  48. package/cjs/component/marker/utils.js.map +1 -1
  49. package/cjs/component/player/player.js +2 -1
  50. package/cjs/component/player/player.js.map +1 -1
  51. package/cjs/component/tooltip/utils/show-tooltip.js +1 -1
  52. package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
  53. package/cjs/constant/event.js +2 -1
  54. package/cjs/constant/scroll-bar.js +1 -2
  55. package/cjs/core/index.d.ts +1 -1
  56. package/cjs/core/index.js +1 -1
  57. package/cjs/core/index.js.map +1 -1
  58. package/cjs/core/vchart.js +1 -1
  59. package/cjs/core/vchart.js.map +1 -1
  60. package/cjs/env/env.js +1 -1
  61. package/cjs/env/index.js +1 -1
  62. package/cjs/event/event-dispatcher.js +4 -6
  63. package/cjs/event/event-dispatcher.js.map +1 -1
  64. package/cjs/event/event.js +1 -1
  65. package/cjs/event/index.js +1 -1
  66. package/cjs/event/interface.js +1 -1
  67. package/cjs/interaction/interface.js +2 -1
  68. package/cjs/interaction/trigger.js +1 -1
  69. package/cjs/interaction/zoom/zoomable.js +9 -9
  70. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  71. package/cjs/layout/base-layout.d.ts +46 -2
  72. package/cjs/layout/base-layout.js +194 -36
  73. package/cjs/layout/base-layout.js.map +1 -1
  74. package/cjs/layout/index.js +1 -1
  75. package/cjs/layout/interface.d.ts +1 -4
  76. package/cjs/layout/interface.js +1 -1
  77. package/cjs/layout/interface.js.map +1 -1
  78. package/cjs/layout/layout-item.d.ts +1 -5
  79. package/cjs/layout/layout-item.js +5 -25
  80. package/cjs/layout/layout-item.js.map +1 -1
  81. package/cjs/layout/layout3d/index.d.ts +1 -8
  82. package/cjs/layout/layout3d/index.js +10 -69
  83. package/cjs/layout/layout3d/index.js.map +1 -1
  84. package/cjs/layout/util.js +27 -69
  85. package/cjs/layout/util.js.map +1 -1
  86. package/cjs/model/base-model-transformer.d.ts +2 -1
  87. package/cjs/model/base-model-transformer.js +6 -2
  88. package/cjs/model/base-model-transformer.js.map +1 -1
  89. package/cjs/model/interface.d.ts +0 -2
  90. package/cjs/model/interface.js.map +1 -1
  91. package/cjs/model/layout-model.d.ts +0 -8
  92. package/cjs/model/layout-model.js +0 -15
  93. package/cjs/model/layout-model.js.map +1 -1
  94. package/cjs/series/area/area-transformer.d.ts +2 -0
  95. package/cjs/series/area/area-transformer.js +18 -1
  96. package/cjs/series/area/area-transformer.js.map +1 -1
  97. package/cjs/series/area/area.d.ts +0 -1
  98. package/cjs/series/area/area.js +1 -17
  99. package/cjs/series/area/area.js.map +1 -1
  100. package/cjs/series/bar/bar.js +1 -1
  101. package/cjs/series/bar/bar.js.map +1 -1
  102. package/cjs/series/base/base-series-transformer.js +1 -2
  103. package/cjs/series/base/base-series-transformer.js.map +1 -1
  104. package/cjs/series/base/base-series.js +14 -13
  105. package/cjs/series/base/base-series.js.map +1 -1
  106. package/cjs/series/cartesian/cartesian.js +4 -3
  107. package/cjs/series/cartesian/cartesian.js.map +1 -1
  108. package/cjs/series/correlation/correlation.js +1 -1
  109. package/cjs/series/correlation/correlation.js.map +1 -1
  110. package/cjs/series/mixin/line-mixin.js +1 -1
  111. package/cjs/series/mixin/line-mixin.js.map +1 -1
  112. package/cjs/series/pie/3d/pie-3d.js +1 -1
  113. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  114. package/cjs/series/pie/pie.js +7 -7
  115. package/cjs/series/pie/pie.js.map +1 -1
  116. package/cjs/series/polar/polar.js +1 -1
  117. package/cjs/series/polar/polar.js.map +1 -1
  118. package/cjs/series/radar/animation.js +1 -1
  119. package/cjs/series/radar/animation.js.map +1 -1
  120. package/cjs/series/sankey/sankey.js +1 -1
  121. package/cjs/series/sankey/sankey.js.map +1 -1
  122. package/cjs/series/sunburst/sunburst.js +2 -2
  123. package/cjs/series/sunburst/sunburst.js.map +1 -1
  124. package/cjs/series/word-cloud/base.js +3 -3
  125. package/cjs/series/word-cloud/base.js.map +1 -1
  126. package/cjs/theme/builtin/index.js +3 -1
  127. package/cjs/theme/builtin/index.js.map +1 -1
  128. package/cjs/typings/layout.d.ts +1 -1
  129. package/cjs/typings/layout.js.map +1 -1
  130. package/esm/animation/config.js +1 -1
  131. package/esm/animation/config.js.map +1 -1
  132. package/esm/component/axis/base-axis.d.ts +2 -1
  133. package/esm/component/axis/base-axis.js +11 -1
  134. package/esm/component/axis/base-axis.js.map +1 -1
  135. package/esm/component/axis/cartesian/axis.d.ts +9 -2
  136. package/esm/component/axis/cartesian/axis.js +23 -8
  137. package/esm/component/axis/cartesian/axis.js.map +1 -1
  138. package/esm/component/axis/cartesian/interface/spec.d.ts +19 -3
  139. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  140. package/esm/component/axis/mixin/band-axis-mixin.d.ts +6 -1
  141. package/esm/component/axis/mixin/band-axis-mixin.js +17 -1
  142. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  143. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +9 -1
  144. package/esm/component/axis/mixin/linear-axis-mixin.js +19 -5
  145. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  146. package/esm/component/axis/polar/axis.d.ts +1 -1
  147. package/esm/component/axis/polar/axis.js +4 -4
  148. package/esm/component/axis/polar/axis.js.map +1 -1
  149. package/esm/component/brush/brush.js +3 -3
  150. package/esm/component/brush/brush.js.map +1 -1
  151. package/esm/component/crosshair/base.js +5 -4
  152. package/esm/component/crosshair/base.js.map +1 -1
  153. package/esm/component/crosshair/cartesian.js +20 -17
  154. package/esm/component/crosshair/cartesian.js.map +1 -1
  155. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
  156. package/esm/component/data-zoom/data-filter-base-component.js +6 -4
  157. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  158. package/esm/component/geo/geo-coordinate.d.ts +1 -0
  159. package/esm/component/geo/geo-coordinate.js +7 -6
  160. package/esm/component/geo/geo-coordinate.js.map +1 -1
  161. package/esm/component/indicator/indicator.js +2 -2
  162. package/esm/component/indicator/indicator.js.map +1 -1
  163. package/esm/component/label/label.js +3 -3
  164. package/esm/component/label/label.js.map +1 -1
  165. package/esm/component/label/total-label.js +3 -3
  166. package/esm/component/label/total-label.js.map +1 -1
  167. package/esm/component/label/util.js.map +1 -1
  168. package/esm/component/map-label/component.js +1 -1
  169. package/esm/component/map-label/component.js.map +1 -1
  170. package/esm/component/marker/mark-line/mark-line.js +3 -3
  171. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  172. package/esm/component/marker/utils.js +6 -6
  173. package/esm/component/marker/utils.js.map +1 -1
  174. package/esm/component/player/player.js +2 -1
  175. package/esm/component/player/player.js.map +1 -1
  176. package/esm/component/tooltip/utils/show-tooltip.js +1 -1
  177. package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
  178. package/esm/constant/event.js +2 -1
  179. package/esm/constant/scroll-bar.js +1 -2
  180. package/esm/core/index.d.ts +1 -1
  181. package/esm/core/index.js +1 -1
  182. package/esm/core/index.js.map +1 -1
  183. package/esm/core/vchart.js +1 -1
  184. package/esm/core/vchart.js.map +1 -1
  185. package/esm/env/env.js +1 -1
  186. package/esm/env/index.js +1 -1
  187. package/esm/event/event-dispatcher.js +4 -6
  188. package/esm/event/event-dispatcher.js.map +1 -1
  189. package/esm/event/event.js +1 -1
  190. package/esm/event/index.js +1 -1
  191. package/esm/event/interface.js +1 -1
  192. package/esm/interaction/interface.js +2 -1
  193. package/esm/interaction/trigger.js +1 -1
  194. package/esm/interaction/zoom/zoomable.js +8 -9
  195. package/esm/interaction/zoom/zoomable.js.map +1 -1
  196. package/esm/layout/base-layout.d.ts +46 -2
  197. package/esm/layout/base-layout.js +192 -36
  198. package/esm/layout/base-layout.js.map +1 -1
  199. package/esm/layout/index.js +1 -1
  200. package/esm/layout/interface.d.ts +1 -4
  201. package/esm/layout/interface.js +1 -1
  202. package/esm/layout/interface.js.map +1 -1
  203. package/esm/layout/layout-item.d.ts +1 -5
  204. package/esm/layout/layout-item.js +5 -24
  205. package/esm/layout/layout-item.js.map +1 -1
  206. package/esm/layout/layout3d/index.d.ts +1 -8
  207. package/esm/layout/layout3d/index.js +10 -69
  208. package/esm/layout/layout3d/index.js.map +1 -1
  209. package/esm/layout/util.js +27 -69
  210. package/esm/layout/util.js.map +1 -1
  211. package/esm/model/base-model-transformer.d.ts +2 -1
  212. package/esm/model/base-model-transformer.js +6 -2
  213. package/esm/model/base-model-transformer.js.map +1 -1
  214. package/esm/model/interface.d.ts +0 -2
  215. package/esm/model/interface.js.map +1 -1
  216. package/esm/model/layout-model.d.ts +0 -8
  217. package/esm/model/layout-model.js +0 -15
  218. package/esm/model/layout-model.js.map +1 -1
  219. package/esm/series/area/area-transformer.d.ts +2 -0
  220. package/esm/series/area/area-transformer.js +19 -0
  221. package/esm/series/area/area-transformer.js.map +1 -1
  222. package/esm/series/area/area.d.ts +0 -1
  223. package/esm/series/area/area.js +1 -18
  224. package/esm/series/area/area.js.map +1 -1
  225. package/esm/series/bar/bar.js +1 -1
  226. package/esm/series/bar/bar.js.map +1 -1
  227. package/esm/series/base/base-series-transformer.js +1 -2
  228. package/esm/series/base/base-series-transformer.js.map +1 -1
  229. package/esm/series/base/base-series.js +13 -12
  230. package/esm/series/base/base-series.js.map +1 -1
  231. package/esm/series/cartesian/cartesian.js +3 -2
  232. package/esm/series/cartesian/cartesian.js.map +1 -1
  233. package/esm/series/correlation/correlation.js +1 -1
  234. package/esm/series/correlation/correlation.js.map +1 -1
  235. package/esm/series/mixin/line-mixin.js +1 -1
  236. package/esm/series/mixin/line-mixin.js.map +1 -1
  237. package/esm/series/pie/3d/pie-3d.js +1 -1
  238. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  239. package/esm/series/pie/pie.js +7 -7
  240. package/esm/series/pie/pie.js.map +1 -1
  241. package/esm/series/polar/polar.js +1 -1
  242. package/esm/series/polar/polar.js.map +1 -1
  243. package/esm/series/radar/animation.js +1 -1
  244. package/esm/series/radar/animation.js.map +1 -1
  245. package/esm/series/sankey/sankey.js +1 -1
  246. package/esm/series/sankey/sankey.js.map +1 -1
  247. package/esm/series/sunburst/sunburst.js +2 -2
  248. package/esm/series/sunburst/sunburst.js.map +1 -1
  249. package/esm/series/word-cloud/base.js +3 -3
  250. package/esm/series/word-cloud/base.js.map +1 -1
  251. package/esm/theme/builtin/index.js +2 -1
  252. package/esm/theme/builtin/index.js.map +1 -1
  253. package/esm/typings/layout.d.ts +1 -1
  254. package/esm/typings/layout.js.map +1 -1
  255. package/package.json +14 -14
  256. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.d.ts +0 -2
  257. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js +0 -22
  258. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js.map +0 -1
  259. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +0 -4
  260. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js +0 -40
  261. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +0 -1
  262. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.d.ts +0 -2
  263. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js +0 -42
  264. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js.map +0 -1
  265. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +0 -2
  266. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js +0 -22
  267. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js.map +0 -1
  268. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +0 -3
  269. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js +0 -25
  270. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js.map +0 -1
  271. package/cjs/theme/builtin/common-mobile/component/crosshair.d.ts +0 -2
  272. package/cjs/theme/builtin/common-mobile/component/crosshair.js +0 -39
  273. package/cjs/theme/builtin/common-mobile/component/crosshair.js.map +0 -1
  274. package/cjs/theme/builtin/common-mobile/component/data-zoom.d.ts +0 -2
  275. package/cjs/theme/builtin/common-mobile/component/data-zoom.js +0 -40
  276. package/cjs/theme/builtin/common-mobile/component/data-zoom.js.map +0 -1
  277. package/cjs/theme/builtin/common-mobile/component/index.d.ts +0 -2
  278. package/cjs/theme/builtin/common-mobile/component/index.js +0 -34
  279. package/cjs/theme/builtin/common-mobile/component/index.js.map +0 -1
  280. package/cjs/theme/builtin/common-mobile/component/indicator.d.ts +0 -2
  281. package/cjs/theme/builtin/common-mobile/component/indicator.js +0 -23
  282. package/cjs/theme/builtin/common-mobile/component/indicator.js.map +0 -1
  283. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.d.ts +0 -2
  284. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js +0 -23
  285. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js.map +0 -1
  286. package/cjs/theme/builtin/common-mobile/component/legend/continuous.d.ts +0 -2
  287. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js +0 -44
  288. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js.map +0 -1
  289. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +0 -2
  290. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js +0 -39
  291. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +0 -1
  292. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.d.ts +0 -2
  293. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js +0 -23
  294. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js.map +0 -1
  295. package/cjs/theme/builtin/common-mobile/component/map-label.d.ts +0 -2
  296. package/cjs/theme/builtin/common-mobile/component/map-label.js +0 -39
  297. package/cjs/theme/builtin/common-mobile/component/map-label.js.map +0 -1
  298. package/cjs/theme/builtin/common-mobile/component/mark-area.d.ts +0 -2
  299. package/cjs/theme/builtin/common-mobile/component/mark-area.js +0 -24
  300. package/cjs/theme/builtin/common-mobile/component/mark-area.js.map +0 -1
  301. package/cjs/theme/builtin/common-mobile/component/mark-line.d.ts +0 -2
  302. package/cjs/theme/builtin/common-mobile/component/mark-line.js +0 -33
  303. package/cjs/theme/builtin/common-mobile/component/mark-line.js.map +0 -1
  304. package/cjs/theme/builtin/common-mobile/component/mark-point.d.ts +0 -2
  305. package/cjs/theme/builtin/common-mobile/component/mark-point.js +0 -19
  306. package/cjs/theme/builtin/common-mobile/component/mark-point.js.map +0 -1
  307. package/cjs/theme/builtin/common-mobile/component/player.d.ts +0 -2
  308. package/cjs/theme/builtin/common-mobile/component/player.js +0 -51
  309. package/cjs/theme/builtin/common-mobile/component/player.js.map +0 -1
  310. package/cjs/theme/builtin/common-mobile/component/poptip.d.ts +0 -2
  311. package/cjs/theme/builtin/common-mobile/component/poptip.js +0 -25
  312. package/cjs/theme/builtin/common-mobile/component/poptip.js.map +0 -1
  313. package/cjs/theme/builtin/common-mobile/component/title.d.ts +0 -2
  314. package/cjs/theme/builtin/common-mobile/component/title.js +0 -23
  315. package/cjs/theme/builtin/common-mobile/component/title.js.map +0 -1
  316. package/cjs/theme/builtin/common-mobile/component/tooltip.d.ts +0 -2
  317. package/cjs/theme/builtin/common-mobile/component/tooltip.js +0 -43
  318. package/cjs/theme/builtin/common-mobile/component/tooltip.js.map +0 -1
  319. package/cjs/theme/builtin/common-mobile/component/total-label.d.ts +0 -2
  320. package/cjs/theme/builtin/common-mobile/component/total-label.js +0 -16
  321. package/cjs/theme/builtin/common-mobile/component/total-label.js.map +0 -1
  322. package/cjs/theme/builtin/common-mobile/constants.d.ts +0 -2
  323. package/cjs/theme/builtin/common-mobile/constants.js +0 -23
  324. package/cjs/theme/builtin/common-mobile/constants.js.map +0 -1
  325. package/cjs/theme/builtin/common-mobile/mark.d.ts +0 -3
  326. package/cjs/theme/builtin/common-mobile/mark.js +0 -35
  327. package/cjs/theme/builtin/common-mobile/mark.js.map +0 -1
  328. package/cjs/theme/builtin/dark-mobile/index.d.ts +0 -2
  329. package/cjs/theme/builtin/dark-mobile/index.js +0 -18
  330. package/cjs/theme/builtin/dark-mobile/index.js.map +0 -1
  331. package/cjs/theme/builtin/light-mobile/index.d.ts +0 -2
  332. package/cjs/theme/builtin/light-mobile/index.js +0 -18
  333. package/cjs/theme/builtin/light-mobile/index.js.map +0 -1
  334. package/esm/theme/builtin/common-mobile/component/axis/band-axis.d.ts +0 -2
  335. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js +0 -18
  336. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js.map +0 -1
  337. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +0 -4
  338. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js +0 -38
  339. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +0 -1
  340. package/esm/theme/builtin/common-mobile/component/axis/common-axis.d.ts +0 -2
  341. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js +0 -36
  342. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js.map +0 -1
  343. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +0 -2
  344. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js +0 -18
  345. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js.map +0 -1
  346. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +0 -3
  347. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js +0 -23
  348. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js.map +0 -1
  349. package/esm/theme/builtin/common-mobile/component/crosshair.d.ts +0 -2
  350. package/esm/theme/builtin/common-mobile/component/crosshair.js +0 -35
  351. package/esm/theme/builtin/common-mobile/component/crosshair.js.map +0 -1
  352. package/esm/theme/builtin/common-mobile/component/data-zoom.d.ts +0 -2
  353. package/esm/theme/builtin/common-mobile/component/data-zoom.js +0 -34
  354. package/esm/theme/builtin/common-mobile/component/data-zoom.js.map +0 -1
  355. package/esm/theme/builtin/common-mobile/component/index.d.ts +0 -2
  356. package/esm/theme/builtin/common-mobile/component/index.js +0 -66
  357. package/esm/theme/builtin/common-mobile/component/index.js.map +0 -1
  358. package/esm/theme/builtin/common-mobile/component/indicator.d.ts +0 -2
  359. package/esm/theme/builtin/common-mobile/component/indicator.js +0 -17
  360. package/esm/theme/builtin/common-mobile/component/indicator.js.map +0 -1
  361. package/esm/theme/builtin/common-mobile/component/legend/color-legend.d.ts +0 -2
  362. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js +0 -17
  363. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js.map +0 -1
  364. package/esm/theme/builtin/common-mobile/component/legend/continuous.d.ts +0 -2
  365. package/esm/theme/builtin/common-mobile/component/legend/continuous.js +0 -38
  366. package/esm/theme/builtin/common-mobile/component/legend/continuous.js.map +0 -1
  367. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +0 -2
  368. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js +0 -33
  369. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +0 -1
  370. package/esm/theme/builtin/common-mobile/component/legend/size-legend.d.ts +0 -2
  371. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js +0 -17
  372. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js.map +0 -1
  373. package/esm/theme/builtin/common-mobile/component/map-label.d.ts +0 -2
  374. package/esm/theme/builtin/common-mobile/component/map-label.js +0 -33
  375. package/esm/theme/builtin/common-mobile/component/map-label.js.map +0 -1
  376. package/esm/theme/builtin/common-mobile/component/mark-area.d.ts +0 -2
  377. package/esm/theme/builtin/common-mobile/component/mark-area.js +0 -18
  378. package/esm/theme/builtin/common-mobile/component/mark-area.js.map +0 -1
  379. package/esm/theme/builtin/common-mobile/component/mark-line.d.ts +0 -2
  380. package/esm/theme/builtin/common-mobile/component/mark-line.js +0 -27
  381. package/esm/theme/builtin/common-mobile/component/mark-line.js.map +0 -1
  382. package/esm/theme/builtin/common-mobile/component/mark-point.d.ts +0 -2
  383. package/esm/theme/builtin/common-mobile/component/mark-point.js +0 -15
  384. package/esm/theme/builtin/common-mobile/component/mark-point.js.map +0 -1
  385. package/esm/theme/builtin/common-mobile/component/player.d.ts +0 -2
  386. package/esm/theme/builtin/common-mobile/component/player.js +0 -47
  387. package/esm/theme/builtin/common-mobile/component/player.js.map +0 -1
  388. package/esm/theme/builtin/common-mobile/component/poptip.d.ts +0 -2
  389. package/esm/theme/builtin/common-mobile/component/poptip.js +0 -19
  390. package/esm/theme/builtin/common-mobile/component/poptip.js.map +0 -1
  391. package/esm/theme/builtin/common-mobile/component/title.d.ts +0 -2
  392. package/esm/theme/builtin/common-mobile/component/title.js +0 -17
  393. package/esm/theme/builtin/common-mobile/component/title.js.map +0 -1
  394. package/esm/theme/builtin/common-mobile/component/tooltip.d.ts +0 -2
  395. package/esm/theme/builtin/common-mobile/component/tooltip.js +0 -37
  396. package/esm/theme/builtin/common-mobile/component/tooltip.js.map +0 -1
  397. package/esm/theme/builtin/common-mobile/component/total-label.d.ts +0 -2
  398. package/esm/theme/builtin/common-mobile/component/total-label.js +0 -10
  399. package/esm/theme/builtin/common-mobile/component/total-label.js.map +0 -1
  400. package/esm/theme/builtin/common-mobile/constants.d.ts +0 -2
  401. package/esm/theme/builtin/common-mobile/constants.js +0 -19
  402. package/esm/theme/builtin/common-mobile/constants.js.map +0 -1
  403. package/esm/theme/builtin/common-mobile/mark.d.ts +0 -3
  404. package/esm/theme/builtin/common-mobile/mark.js +0 -31
  405. package/esm/theme/builtin/common-mobile/mark.js.map +0 -1
  406. package/esm/theme/builtin/dark-mobile/index.d.ts +0 -2
  407. package/esm/theme/builtin/dark-mobile/index.js +0 -16
  408. package/esm/theme/builtin/dark-mobile/index.js.map +0 -1
  409. package/esm/theme/builtin/light-mobile/index.d.ts +0 -2
  410. package/esm/theme/builtin/light-mobile/index.js +0 -16
  411. package/esm/theme/builtin/light-mobile/index.js.map +0 -1
@@ -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;
@@ -19,7 +35,7 @@ export type ICartesianAxisCommonSpec = ICommonAxisSpec & {
19
35
  mode?: '2d' | '3d';
20
36
  depth?: number;
21
37
  unit?: ICartesianAxisUnit;
22
- };
38
+ } & (ICartesianVertical | ICartesianHorizontal | ICartesianZ);
23
39
  export interface ILinearAxisSync {
24
40
  axisId: StringOrNumber;
25
41
  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\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} & (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"]}
@@ -11,7 +11,7 @@ export interface BandAxisMixin {
11
11
  _defaultBandOuterPadding: number;
12
12
  event: IEvent;
13
13
  isSeriesDataEnable: () => boolean;
14
- collectData: (depth: number) => {
14
+ collectData: (depth: number, rawData?: boolean) => {
15
15
  min: number;
16
16
  max: number;
17
17
  values: any[];
@@ -24,6 +24,9 @@ export interface BandAxisMixin {
24
24
  transformScaleDomain: () => void;
25
25
  }
26
26
  export declare class BandAxisMixin {
27
+ protected _rawDomainIndex: {
28
+ [key: string | number | symbol]: number;
29
+ }[];
27
30
  dataToPosition(values: any[], cfg?: IAxisLocationCfg): number;
28
31
  valueToPosition(value: any): number;
29
32
  updateGroupScaleRange(): void;
@@ -38,4 +41,6 @@ export declare class BandAxisMixin {
38
41
  values: any[];
39
42
  }[]): StringOrNumber[];
40
43
  protected updateScaleDomain(): void;
44
+ protected _updateRawDomain(): void;
45
+ protected _clearRawDomain(): void;
41
46
  }
@@ -3,6 +3,9 @@ import { isArray } from "@visactor/vutils";
3
3
  import { ChartEvent } from "../../../constant/event";
4
4
 
5
5
  export class BandAxisMixin {
6
+ constructor() {
7
+ this._rawDomainIndex = [];
8
+ }
6
9
  dataToPosition(values, cfg = {}) {
7
10
  var _a, _b;
8
11
  if (0 === values.length || 0 === this._scales.length) return 0;
@@ -45,11 +48,13 @@ export class BandAxisMixin {
45
48
  return Array.from(tempSet);
46
49
  }
47
50
  updateScaleDomain() {
51
+ var _a;
48
52
  if (!this.isSeriesDataEnable()) return;
53
+ !(null === (_a = this._rawDomainIndex) || void 0 === _a ? void 0 : _a.length) && this._scales.length && this._updateRawDomain();
49
54
  const userDomain = this._spec.domain;
50
55
  for (let i = 0; i < this._scales.length; i++) if (userDomain && userDomain.length && 0 === i) this._scales[i].domain(userDomain); else {
51
56
  const data = this.collectData(i), domain = this.computeDomain(data);
52
- this._scales[i].domain(domain);
57
+ this._scales[i].domain(domain.sort(((a, b) => this._rawDomainIndex[i][a] - this._rawDomainIndex[i][b])));
53
58
  }
54
59
  this.transformScaleDomain(), this.event.emit(ChartEvent.scaleDomainUpdate, {
55
60
  model: this
@@ -58,5 +63,16 @@ export class BandAxisMixin {
58
63
  value: "domain"
59
64
  });
60
65
  }
66
+ _updateRawDomain() {
67
+ this._rawDomainIndex = [];
68
+ const userDomain = this._spec.domain;
69
+ for (let i = 0; i < this._scales.length; i++) if (userDomain && userDomain.length && 0 === i) this._scales[i].domain(userDomain); else {
70
+ const data = this.collectData(i, !0), domain = this.computeDomain(data);
71
+ this._rawDomainIndex[i] = {}, domain.forEach(((d, _i) => this._rawDomainIndex[i][d] = _i));
72
+ }
73
+ }
74
+ _clearRawDomain() {
75
+ this._rawDomainIndex = [];
76
+ }
61
77
  }
62
78
  //# sourceMappingURL=band-axis-mixin.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/mixin/band-axis-mixin.ts"],"names":[],"mappings":"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","file":"band-axis-mixin.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\nimport { isArray } from '@visactor/vutils';\nimport type { StringOrNumber } from '../../../typings';\nimport type { IEvent } from '../../../event/interface';\nimport { ChartEvent } from '../../../constant/event';\nimport type { IModel } from '../../../model/interface';\nimport type { IAxisLocationCfg } from '../interface';\n\nexport interface BandAxisMixin {\n _scale: BandScale;\n _scales: BandScale[];\n _spec: any;\n _defaultBandPosition: number;\n _defaultBandInnerPadding: number;\n _defaultBandOuterPadding: number;\n event: IEvent;\n isSeriesDataEnable: () => boolean;\n collectData: (depth: number) => { min: number; max: number; values: any[] }[];\n computeDomain: (data: { min: number; max: number; values: any[] }[]) => StringOrNumber[];\n transformScaleDomain: () => void;\n}\n\nexport class BandAxisMixin {\n dataToPosition(values: any[], cfg: IAxisLocationCfg = {}): number {\n if (values.length === 0 || this._scales.length === 0) {\n return 0;\n }\n const { position, bandScale } = this.getPosition(values);\n return (\n position + bandScale.bandwidth() * (cfg.bandPosition ?? this._spec.bandPosition ?? this._defaultBandPosition)\n );\n }\n\n valueToPosition(value: any): number {\n const bandStart = this._scale.scale(value);\n return bandStart;\n }\n\n updateGroupScaleRange() {\n let parentScale = this._scale;\n this._scales.forEach((scale, i) => {\n if (i > 0) {\n scale.range([0, parentScale.bandwidth()]);\n parentScale = scale;\n }\n });\n }\n\n getPosition(values: any[]) {\n let position = 0;\n let bandScale = this._scale;\n // 要不要性能优化?\n // 优化有没有用?\n if (this._scales.length === 1 || values.length === 1) {\n position = this.valueToPosition(values[0]);\n } else {\n const max = Math.min(values.length, this._scales.length);\n for (let i = 0; i < max; i++) {\n position += this._scales[i].scale(values[i]);\n }\n bandScale = this._scales[max - 1];\n }\n return { position, bandScale };\n }\n\n calcScales(DEFAULT_BAND_INNER_PADDING: number, DEFAULT_BAND_OUTER_PADDING: number) {\n const { bandPadding, paddingInner, paddingOuter } = this._spec;\n const isBandPaddingArray = isArray(bandPadding);\n const isPaddingInnerArray = isArray(paddingInner);\n const isPaddingOuterArray = isArray(paddingOuter);\n\n for (let i = 0; i < this._scales.length; i++) {\n const _padding = isBandPaddingArray ? bandPadding[i] : bandPadding;\n const _paddingInner = isPaddingInnerArray ? paddingInner[i] : paddingInner;\n const _paddingOuter = isPaddingOuterArray ? paddingOuter[i] : paddingOuter;\n\n this._scales[i]\n .paddingInner(_paddingInner ?? _padding ?? DEFAULT_BAND_INNER_PADDING, true)\n .paddingOuter(_paddingOuter ?? _padding ?? DEFAULT_BAND_OUTER_PADDING, true);\n }\n }\n computeBandDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n // 性能优化 9.13\n if (data.length === 1) {\n return data[0].values;\n }\n const tempSet = new Set();\n for (let i = 0; i < data.length; i++) {\n for (let j = 0; j < data[i].values.length; j++) {\n tempSet.add(data[i].values[j]);\n }\n }\n return Array.from(tempSet) as StringOrNumber[];\n }\n\n protected updateScaleDomain() {\n if (!this.isSeriesDataEnable()) {\n return;\n }\n\n const userDomain = this._spec.domain;\n for (let i = 0; i < this._scales.length; i++) {\n if (userDomain && userDomain.length && i === 0) {\n // 当数字映射字段存在分组时,只作用于第一个分组的domain,如 xField: ['x', 'type']\n this._scales[i].domain(userDomain);\n } else {\n const data = this.collectData(i);\n const domain = this.computeDomain(data);\n this._scales[i].domain(domain);\n }\n }\n this.transformScaleDomain();\n this.event.emit(ChartEvent.scaleDomainUpdate, { model: this as unknown as IModel });\n this.event.emit(ChartEvent.scaleUpdate, { model: this as unknown as IModel, value: 'domain' });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/mixin/band-axis-mixin.ts"],"names":[],"mappings":"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","file":"band-axis-mixin.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\nimport { isArray } from '@visactor/vutils';\nimport type { StringOrNumber } from '../../../typings';\nimport type { IEvent } from '../../../event/interface';\nimport { ChartEvent } from '../../../constant/event';\nimport type { IModel } from '../../../model/interface';\nimport type { IAxisLocationCfg } from '../interface';\n\nexport interface BandAxisMixin {\n _scale: BandScale;\n _scales: BandScale[];\n _spec: any;\n _defaultBandPosition: number;\n _defaultBandInnerPadding: number;\n _defaultBandOuterPadding: number;\n event: IEvent;\n isSeriesDataEnable: () => boolean;\n collectData: (depth: number, rawData?: boolean) => { min: number; max: number; values: any[] }[];\n computeDomain: (data: { min: number; max: number; values: any[] }[]) => StringOrNumber[];\n transformScaleDomain: () => void;\n}\n\nexport class BandAxisMixin {\n protected _rawDomainIndex: { [key: string | number | symbol]: number }[] = [];\n\n dataToPosition(values: any[], cfg: IAxisLocationCfg = {}): number {\n if (values.length === 0 || this._scales.length === 0) {\n return 0;\n }\n const { position, bandScale } = this.getPosition(values);\n return (\n position + bandScale.bandwidth() * (cfg.bandPosition ?? this._spec.bandPosition ?? this._defaultBandPosition)\n );\n }\n\n valueToPosition(value: any): number {\n const bandStart = this._scale.scale(value);\n return bandStart;\n }\n\n updateGroupScaleRange() {\n let parentScale = this._scale;\n this._scales.forEach((scale, i) => {\n if (i > 0) {\n scale.range([0, parentScale.bandwidth()]);\n parentScale = scale;\n }\n });\n }\n\n getPosition(values: any[]) {\n let position = 0;\n let bandScale = this._scale;\n // 要不要性能优化?\n // 优化有没有用?\n if (this._scales.length === 1 || values.length === 1) {\n position = this.valueToPosition(values[0]);\n } else {\n const max = Math.min(values.length, this._scales.length);\n for (let i = 0; i < max; i++) {\n position += this._scales[i].scale(values[i]);\n }\n bandScale = this._scales[max - 1];\n }\n return { position, bandScale };\n }\n\n calcScales(DEFAULT_BAND_INNER_PADDING: number, DEFAULT_BAND_OUTER_PADDING: number) {\n const { bandPadding, paddingInner, paddingOuter } = this._spec;\n const isBandPaddingArray = isArray(bandPadding);\n const isPaddingInnerArray = isArray(paddingInner);\n const isPaddingOuterArray = isArray(paddingOuter);\n\n for (let i = 0; i < this._scales.length; i++) {\n const _padding = isBandPaddingArray ? bandPadding[i] : bandPadding;\n const _paddingInner = isPaddingInnerArray ? paddingInner[i] : paddingInner;\n const _paddingOuter = isPaddingOuterArray ? paddingOuter[i] : paddingOuter;\n\n this._scales[i]\n .paddingInner(_paddingInner ?? _padding ?? DEFAULT_BAND_INNER_PADDING, true)\n .paddingOuter(_paddingOuter ?? _padding ?? DEFAULT_BAND_OUTER_PADDING, true);\n }\n }\n computeBandDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n // 性能优化 9.13\n if (data.length === 1) {\n return data[0].values;\n }\n const tempSet = new Set();\n for (let i = 0; i < data.length; i++) {\n for (let j = 0; j < data[i].values.length; j++) {\n tempSet.add(data[i].values[j]);\n }\n }\n return Array.from(tempSet) as StringOrNumber[];\n }\n\n protected updateScaleDomain() {\n if (!this.isSeriesDataEnable()) {\n return;\n }\n if (!this._rawDomainIndex?.length && this._scales.length) {\n this._updateRawDomain();\n }\n const userDomain = this._spec.domain;\n for (let i = 0; i < this._scales.length; i++) {\n if (userDomain && userDomain.length && i === 0) {\n // 当数字映射字段存在分组时,只作用于第一个分组的domain,如 xField: ['x', 'type']\n this._scales[i].domain(userDomain);\n } else {\n const data = this.collectData(i);\n const domain = this.computeDomain(data);\n this._scales[i].domain(domain.sort((a, b) => this._rawDomainIndex[i][a] - this._rawDomainIndex[i][b]));\n }\n }\n this.transformScaleDomain();\n this.event.emit(ChartEvent.scaleDomainUpdate, { model: this as unknown as IModel });\n this.event.emit(ChartEvent.scaleUpdate, { model: this as unknown as IModel, value: 'domain' });\n }\n\n protected _updateRawDomain() {\n // 默认值设置了无效?\n this._rawDomainIndex = [];\n\n const userDomain = this._spec.domain;\n for (let i = 0; i < this._scales.length; i++) {\n if (userDomain && userDomain.length && i === 0) {\n // 当数字映射字段存在分组时,只作用于第一个分组的domain,如 xField: ['x', 'type']\n this._scales[i].domain(userDomain);\n } else {\n const data = this.collectData(i, true);\n const domain = this.computeDomain(data);\n this._rawDomainIndex[i] = {};\n domain.forEach((d, _i) => (this._rawDomainIndex[i][d] = _i));\n }\n }\n }\n\n protected _clearRawDomain() {\n this._rawDomainIndex = [];\n }\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  import type { LinearScale } from '@visactor/vscale';
2
2
  import type { IAxisLocationCfg, ITick } from '../interface';
3
3
  import type { IEvent } from '../../../event/interface';
4
+ import type { IOrientType } from '../../../typings/space';
5
+ import type { IComponentOption } from '../../interface/common';
4
6
  export declare const e10: number;
5
7
  export declare const e5: number;
6
8
  export declare const e2: number;
@@ -21,8 +23,14 @@ export interface LinearAxisMixin {
21
23
  _tick: ITick | undefined;
22
24
  isSeriesDataEnable: any;
23
25
  computeDomain: any;
24
- collectData: any;
26
+ collectData: (depth?: number) => {
27
+ min: number;
28
+ max: number;
29
+ values: any[];
30
+ }[];
25
31
  event: IEvent;
32
+ _orient: IOrientType;
33
+ _option: IComponentOption;
26
34
  }
27
35
  export declare class LinearAxisMixin {
28
36
  protected _extend: {
@@ -1,4 +1,4 @@
1
- import { isValidNumber, isNil, isValid } from "@visactor/vutils";
1
+ import { isValidNumber, isNil, isValid, isFunction } from "@visactor/vutils";
2
2
 
3
3
  import { maxInArr, minInArr } from "../../../util/array";
4
4
 
@@ -6,6 +6,8 @@ import { getLinearAxisSpecDomain } from "../util";
6
6
 
7
7
  import { ChartEvent } from "../../../constant";
8
8
 
9
+ import { isXAxis } from "../cartesian/util/common";
10
+
9
11
  export const e10 = Math.sqrt(50);
10
12
 
11
13
  export const e5 = Math.sqrt(10);
@@ -26,10 +28,22 @@ export class LinearAxisMixin {
26
28
  this.setScaleNice();
27
29
  }
28
30
  setLinearScaleNice() {
29
- var _a, _b, _c, _d, _e;
30
- let tickCount = null !== (_d = null !== (_b = null === (_a = this._spec.tick) || void 0 === _a ? void 0 : _a.forceTickCount) && void 0 !== _b ? _b : null === (_c = this._spec.tick) || void 0 === _c ? void 0 : _c.tickCount) && void 0 !== _d ? _d : 5;
31
- isValidNumber(tickCount) || (tickCount = 5), "accurateFirst" === this._spec.niceType && (tickCount = Math.max(5, tickCount));
32
- const {min: min, max: max} = null !== (_e = this._domain) && void 0 !== _e ? _e : {};
31
+ var _a;
32
+ let tickCount = 5;
33
+ const tick = this._spec.tick || {};
34
+ if (isValidNumber(tick.forceTickCount)) tickCount = tick.forceTickCount; else if (isFunction(tick.tickCount)) {
35
+ const range = this._scale.range();
36
+ let rangeSize = Math.abs(range[range.length - 1] - range[0]);
37
+ if (1 === rangeSize && this._option) {
38
+ rangeSize = isXAxis(this._orient) ? this._option.getChartViewRect().width : this._option.getChartViewRect().height;
39
+ }
40
+ tickCount = tick.tickCount({
41
+ rangeSize: rangeSize,
42
+ labelStyle: this._spec.label && this._spec.label.style
43
+ });
44
+ } else tickCount = isValidNumber(tick.tickCount) ? tick.tickCount : 5;
45
+ "accurateFirst" === this._spec.niceType && (tickCount = Math.max(5, tickCount));
46
+ const {min: min, max: max} = null !== (_a = this._domain) && void 0 !== _a ? _a : {};
33
47
  isNil(min) && isNil(max) ? this._nice && this._scale.nice(tickCount) : isValid(min) && isNil(max) ? this._nice && this._scale.niceMax(tickCount) : isNil(min) && isValid(max) && this._nice && this._scale.niceMin(tickCount);
34
48
  }
35
49
  setLogScaleNice() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/mixin/linear-axis-mixin.ts"],"names":[],"mappings":"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","file":"linear-axis-mixin.js","sourcesContent":["import { isValidNumber, isNil, isValid } from '@visactor/vutils';\nimport type { LinearScale } from '@visactor/vscale';\nimport { maxInArr, minInArr } from '../../../util/array';\nimport { getLinearAxisSpecDomain } from '../util';\nimport type { IAxisLocationCfg, ITick } from '../interface';\nimport { ChartEvent } from '../../../constant';\nimport type { IEvent } from '../../../event/interface';\n\nexport const e10 = Math.sqrt(50);\nexport const e5 = Math.sqrt(10);\nexport const e2 = Math.sqrt(2);\nconst DEFAULT_TICK_COUNT = 5;\n\nexport interface LinearAxisMixin {\n _scale: LinearScale;\n _scales: LinearScale[];\n _spec: any;\n _nice: boolean;\n _zero: boolean;\n _domain: { min?: number; max?: number };\n _expand?: { max?: number; min?: number };\n _tick: ITick | undefined;\n isSeriesDataEnable: any;\n computeDomain: any;\n collectData: any;\n event: IEvent;\n}\n\nexport class LinearAxisMixin {\n protected _extend: { [key: string]: number } = {};\n\n setExtraAttrFromSpec() {\n isValid(this._spec.nice) && (this._nice = this._spec.nice);\n isValid(this._spec.zero) && (this._zero = this._spec.zero);\n this._expand = this._spec.expand;\n this._domain = getLinearAxisSpecDomain(this._spec);\n }\n transformScaleDomain() {\n this.setScaleNice();\n }\n\n setLinearScaleNice() {\n let tickCount = this._spec.tick?.forceTickCount ?? this._spec.tick?.tickCount ?? DEFAULT_TICK_COUNT;\n if (!isValidNumber(tickCount)) {\n // tickCount 为函数通常是为了通过图表大小动态自适应 tick 数量\n // 这里在计算 nice 的时候可以相对粗略预估,不用精确值\n tickCount = DEFAULT_TICK_COUNT;\n }\n // 如果配置了精度优先,那么最低是 5\n // 否则就直接使用tickCount即可\n if (this._spec.niceType === 'accurateFirst') {\n tickCount = Math.max(DEFAULT_TICK_COUNT, tickCount);\n }\n const { min, max } = this._domain ?? {};\n if (isNil(min) && isNil(max)) {\n this._nice && this._scale.nice(tickCount);\n } else if (isValid(min) && isNil(max)) {\n this._nice && this._scale.niceMax(tickCount);\n } else if (isNil(min) && isValid(max)) {\n this._nice && this._scale.niceMin(tickCount);\n }\n }\n\n setLogScaleNice() {\n const { min, max } = this._domain ?? {};\n if (isNil(min) && isNil(max)) {\n this._nice && this._scale.nice();\n } else if (isValid(min) && isNil(max)) {\n this._nice && this._scale.niceMax();\n } else if (isNil(min) && isValid(max)) {\n this._nice && this._scale.niceMin();\n }\n }\n\n setScaleNice() {\n if (this._spec.type === 'log') {\n this.setLogScaleNice();\n } else {\n this.setLinearScaleNice();\n }\n }\n\n dataToPosition(values: any[], cfg?: IAxisLocationCfg): number {\n return this.valueToPosition(values[0]);\n }\n\n valueToPosition(value: any): number {\n if (this._spec.type === 'log' && !isNil(value) && (value === 0 || value[0] === 0)) {\n return this._scale.range()[0];\n }\n return this._scale.scale(value);\n }\n\n computeLinearDomain(data: { min: number; max: number; values: any[] }[]): number[] {\n const domain: number[] = [];\n data.forEach(d => {\n const { min, max } = d;\n domain[0] = domain[0] === undefined ? min : Math.min(domain[0] as number, min as number);\n domain[1] = domain[1] === undefined ? max : Math.max(domain[1] as number, max as number);\n });\n this.expandDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n return domain;\n }\n\n protected expandDomain(domain: number[]): void {\n if (!this._expand) {\n return;\n }\n\n let domainMin = domain[0];\n let domainMax = domain[domain.length - 1];\n\n if (domainMin === domainMax) {\n if (domainMax === 0) {\n domainMax = 1;\n } else if (domainMax > 0) {\n domainMin = 0;\n } else if (domainMax < 0) {\n domainMax = 0;\n }\n }\n\n if (isValid(this._expand.min)) {\n domain[0] = domainMin - (domainMax - domainMin) * this._expand.min;\n }\n if (isValid(this._expand.max)) {\n domain[domain.length - 1] = domainMax + (domainMax - domainMin) * this._expand.max;\n }\n }\n\n protected niceDomain(domain: number[]) {\n const { min: userMin, max: userMax } = getLinearAxisSpecDomain(this._spec);\n if (isValid(userMin) || isValid(userMax) || this._spec.type !== 'linear') {\n // 如果用户设置了 min 或者 max 则按照用户设置的为准\n // 如果是非 linear 类型也不处理\n return domain;\n }\n if (Math.abs(minInArr(domain) - maxInArr(domain)) <= 1e-12) {\n let num = domain[0];\n const flag = num >= 0 ? 1 : -1;\n num = Math.abs(num);\n if (num < 1) {\n domain[0] = 0;\n domain[1] = 1; // 在[0, 1) 区间变成[0, 1]\n } else {\n let step = num / DEFAULT_TICK_COUNT; // 默认5个ticks\n const power = Math.floor(Math.log(step) / Math.LN10);\n const err = step / Math.pow(10, power);\n step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power);\n\n domain[0] = 0;\n domain[1] = step * 10;\n }\n if (flag < 0) {\n domain.reverse();\n domain[0] *= -1;\n domain[1] *= -1;\n }\n }\n return domain;\n }\n\n protected includeZero(domain: number[]): void {\n if (this._zero) {\n domain[0] = Math.min(domain[0], 0);\n domain[domain.length - 1] = Math.max(domain[domain.length - 1], 0);\n }\n }\n\n // 用户其他模块扩充轴scale的区间\n setExtendDomain(key: string, value: number | undefined) {\n if (value === undefined) {\n delete this._extend[key];\n return;\n }\n this._extend[key] = value;\n const domain = this._scale.domain();\n this.extendDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n this.niceDomain(domain);\n this._scale.domain(domain, this._nice);\n this.setScaleNice();\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this as any, value: 'domain' });\n }\n\n protected extendDomain(domain: number[]) {\n let temp;\n const domainLast = domain.length - 1;\n const reverse = domain[0] - domain[domainLast] > 0;\n const min = reverse ? domainLast : 0;\n const max = reverse ? 0 : domainLast;\n for (const key in this._extend) {\n temp = this._extend[key];\n temp > domain[max] && (domain[max] = temp);\n temp < domain[min] && (domain[min] = temp);\n }\n }\n\n getDomainSpec() {\n return this._domain;\n }\n\n protected setDomainMinMax(domain: number[]): void {\n if (!this._domain) {\n return;\n }\n const { min, max } = this._domain;\n isValid(min) && (domain[0] = min);\n isValid(max) && (domain[1] = max);\n }\n\n setZero(zero: boolean) {\n if (this._zero !== zero) {\n this._zero = zero;\n this.updateScaleDomain();\n }\n }\n /**\n * @override\n * TODO event.emit是否可以考虑用decorator\n */\n protected updateScaleDomain() {\n if (!this.isSeriesDataEnable()) {\n return;\n }\n const data = this.collectData();\n const domain: number[] = this.computeDomain(data) as number[];\n this.updateScaleDomainByModel(domain);\n }\n\n /**\n * TODO event.emit是否可以考虑用decorator\n * 数据逻辑外,模块的设置更新对scale-domain的修改操作\n */\n protected updateScaleDomainByModel(domain?: number[]) {\n domain = domain ?? this._scale.domain();\n // 其他模块的设置 domain\n this.extendDomain(domain);\n this.includeZero(domain);\n // 用户 spec 的 min-max\n this.setDomainMinMax(domain);\n // nice 优先级最高\n this.niceDomain(domain);\n this._scale.domain(domain, this._nice);\n // 设置scale的nice-min-max\n this.setScaleNice();\n this.event.emit(ChartEvent.scaleDomainUpdate, { model: this as any });\n this.event.emit(ChartEvent.scaleUpdate, { model: this as any, value: 'domain' });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/mixin/linear-axis-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAInD,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAmB7B,MAAM,OAAO,eAAe;IAA5B;QACY,YAAO,GAA8B,EAAE,CAAC;IAmPpD,CAAC;IAjPC,oBAAoB;QAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,oBAAoB;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,kBAAkB;;QAChB,IAAI,SAAS,GAAW,kBAAkB,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAEnC,IAAI,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACtC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;SACjC;aAAM,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7D,IAAI,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;gBAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC;aAClG;YAGD,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACzB,SAAS;gBACT,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;aACvD,CAAC,CAAC;SACJ;aAAM,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC5B;aAAM;YACL,SAAS,GAAG,kBAAkB,CAAC;SAChC;QAGD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE;YAC3C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;SACrD;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3C;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC9C;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC9C;IACH,CAAC;IAED,eAAe;;QACb,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAClC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SACrC;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SACrC;IACH,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;IACH,CAAC;IAED,cAAc,CAAC,MAAa,EAAE,GAAsB;QAClD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YACjF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,IAAmD;QACrE,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAW,EAAE,GAAa,CAAC,CAAC;YACzF,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAW,EAAE,GAAa,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,YAAY,CAAC,MAAgB;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;QAED,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE1C,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,IAAI,SAAS,KAAK,CAAC,EAAE;gBACnB,SAAS,GAAG,CAAC,CAAC;aACf;iBAAM,IAAI,SAAS,GAAG,CAAC,EAAE;gBACxB,SAAS,GAAG,CAAC,CAAC;aACf;iBAAM,IAAI,SAAS,GAAG,CAAC,EAAE;gBACxB,SAAS,GAAG,CAAC,CAAC;aACf;SACF;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;SACpE;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;SACpF;IACH,CAAC;IAES,UAAU,CAAC,MAAgB;QACnC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAGxE,OAAO,MAAM,CAAC;SACf;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,EAAE;YAC1D,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,GAAG,GAAG,CAAC,EAAE;gBACX,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACf;iBAAM;gBACL,IAAI,IAAI,GAAG,GAAG,GAAG,kBAAkB,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAEnF,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;aACvB;YACD,IAAI,IAAI,GAAG,CAAC,EAAE;gBACZ,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACjB;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,WAAW,CAAC,MAAgB;QACpC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACpE;IACH,CAAC;IAGD,eAAe,CAAC,GAAW,EAAE,KAAyB;QACpD,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO;SACR;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;IAES,YAAY,CAAC,MAAgB;QACrC,IAAI,IAAI,CAAC;QACT,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3C,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAES,eAAe,CAAC,MAAgB;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,IAAa;QACnB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAKS,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;YAC9B,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAa,CAAC;QAC9D,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAMS,wBAAwB,CAAC,MAAiB;QAClD,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAExC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,IAAW,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;CACF","file":"linear-axis-mixin.js","sourcesContent":["import { isValidNumber, isNil, isValid, isFunction } from '@visactor/vutils';\nimport type { LinearScale } from '@visactor/vscale';\nimport { maxInArr, minInArr } from '../../../util/array';\nimport { getLinearAxisSpecDomain } from '../util';\nimport type { IAxisLocationCfg, ITick } from '../interface';\nimport { ChartEvent } from '../../../constant';\nimport type { IEvent } from '../../../event/interface';\nimport { isXAxis } from '../cartesian/util/common';\nimport type { IOrientType } from '../../../typings/space';\nimport type { IComponentOption } from '../../interface/common';\n\nexport const e10 = Math.sqrt(50);\nexport const e5 = Math.sqrt(10);\nexport const e2 = Math.sqrt(2);\nconst DEFAULT_TICK_COUNT = 5;\n\nexport interface LinearAxisMixin {\n _scale: LinearScale;\n _scales: LinearScale[];\n _spec: any;\n _nice: boolean;\n _zero: boolean;\n _domain: { min?: number; max?: number };\n _expand?: { max?: number; min?: number };\n _tick: ITick | undefined;\n isSeriesDataEnable: any;\n computeDomain: any;\n collectData: (depth?: number) => { min: number; max: number; values: any[] }[];\n event: IEvent;\n _orient: IOrientType;\n _option: IComponentOption;\n}\n\nexport class LinearAxisMixin {\n protected _extend: { [key: string]: number } = {};\n\n setExtraAttrFromSpec() {\n isValid(this._spec.nice) && (this._nice = this._spec.nice);\n isValid(this._spec.zero) && (this._zero = this._spec.zero);\n this._expand = this._spec.expand;\n this._domain = getLinearAxisSpecDomain(this._spec);\n }\n transformScaleDomain() {\n this.setScaleNice();\n }\n\n setLinearScaleNice() {\n let tickCount: number = DEFAULT_TICK_COUNT;\n const tick = this._spec.tick || {};\n\n if (isValidNumber(tick.forceTickCount)) {\n tickCount = tick.forceTickCount;\n } else if (isFunction(tick.tickCount)) {\n const range = this._scale.range();\n let rangeSize = Math.abs(range[range.length - 1] - range[0]);\n\n if (rangeSize === 1 && this._option) {\n // TODO: need to be optimized, when the range is not updated, use the size of view\n const isX = isXAxis(this._orient);\n rangeSize = isX ? this._option.getChartViewRect().width : this._option.getChartViewRect().height;\n }\n\n // tickCount需要一致,不然会导致效果不一致, fix #2050\n tickCount = tick.tickCount({\n rangeSize,\n labelStyle: this._spec.label && this._spec.label.style\n });\n } else if (isValidNumber(tick.tickCount)) {\n tickCount = tick.tickCount;\n } else {\n tickCount = DEFAULT_TICK_COUNT;\n }\n // 如果配置了精度优先,那么最低是 5\n // 否则就直接使用tickCount即可\n if (this._spec.niceType === 'accurateFirst') {\n tickCount = Math.max(DEFAULT_TICK_COUNT, tickCount);\n }\n const { min, max } = this._domain ?? {};\n if (isNil(min) && isNil(max)) {\n this._nice && this._scale.nice(tickCount);\n } else if (isValid(min) && isNil(max)) {\n this._nice && this._scale.niceMax(tickCount);\n } else if (isNil(min) && isValid(max)) {\n this._nice && this._scale.niceMin(tickCount);\n }\n }\n\n setLogScaleNice() {\n const { min, max } = this._domain ?? {};\n if (isNil(min) && isNil(max)) {\n this._nice && this._scale.nice();\n } else if (isValid(min) && isNil(max)) {\n this._nice && this._scale.niceMax();\n } else if (isNil(min) && isValid(max)) {\n this._nice && this._scale.niceMin();\n }\n }\n\n setScaleNice() {\n if (this._spec.type === 'log') {\n this.setLogScaleNice();\n } else {\n this.setLinearScaleNice();\n }\n }\n\n dataToPosition(values: any[], cfg?: IAxisLocationCfg): number {\n return this.valueToPosition(values[0]);\n }\n\n valueToPosition(value: any): number {\n if (this._spec.type === 'log' && !isNil(value) && (value === 0 || value[0] === 0)) {\n return this._scale.range()[0];\n }\n return this._scale.scale(value);\n }\n\n computeLinearDomain(data: { min: number; max: number; values: any[] }[]): number[] {\n const domain: number[] = [];\n data.forEach(d => {\n const { min, max } = d;\n domain[0] = domain[0] === undefined ? min : Math.min(domain[0] as number, min as number);\n domain[1] = domain[1] === undefined ? max : Math.max(domain[1] as number, max as number);\n });\n this.expandDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n return domain;\n }\n\n protected expandDomain(domain: number[]): void {\n if (!this._expand) {\n return;\n }\n\n let domainMin = domain[0];\n let domainMax = domain[domain.length - 1];\n\n if (domainMin === domainMax) {\n if (domainMax === 0) {\n domainMax = 1;\n } else if (domainMax > 0) {\n domainMin = 0;\n } else if (domainMax < 0) {\n domainMax = 0;\n }\n }\n\n if (isValid(this._expand.min)) {\n domain[0] = domainMin - (domainMax - domainMin) * this._expand.min;\n }\n if (isValid(this._expand.max)) {\n domain[domain.length - 1] = domainMax + (domainMax - domainMin) * this._expand.max;\n }\n }\n\n protected niceDomain(domain: number[]) {\n const { min: userMin, max: userMax } = getLinearAxisSpecDomain(this._spec);\n if (isValid(userMin) || isValid(userMax) || this._spec.type !== 'linear') {\n // 如果用户设置了 min 或者 max 则按照用户设置的为准\n // 如果是非 linear 类型也不处理\n return domain;\n }\n if (Math.abs(minInArr(domain) - maxInArr(domain)) <= 1e-12) {\n let num = domain[0];\n const flag = num >= 0 ? 1 : -1;\n num = Math.abs(num);\n if (num < 1) {\n domain[0] = 0;\n domain[1] = 1; // 在[0, 1) 区间变成[0, 1]\n } else {\n let step = num / DEFAULT_TICK_COUNT; // 默认5个ticks\n const power = Math.floor(Math.log(step) / Math.LN10);\n const err = step / Math.pow(10, power);\n step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power);\n\n domain[0] = 0;\n domain[1] = step * 10;\n }\n if (flag < 0) {\n domain.reverse();\n domain[0] *= -1;\n domain[1] *= -1;\n }\n }\n return domain;\n }\n\n protected includeZero(domain: number[]): void {\n if (this._zero) {\n domain[0] = Math.min(domain[0], 0);\n domain[domain.length - 1] = Math.max(domain[domain.length - 1], 0);\n }\n }\n\n // 用户其他模块扩充轴scale的区间\n setExtendDomain(key: string, value: number | undefined) {\n if (value === undefined) {\n delete this._extend[key];\n return;\n }\n this._extend[key] = value;\n const domain = this._scale.domain();\n this.extendDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n this.niceDomain(domain);\n this._scale.domain(domain, this._nice);\n this.setScaleNice();\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this as any, value: 'domain' });\n }\n\n protected extendDomain(domain: number[]) {\n let temp;\n const domainLast = domain.length - 1;\n const reverse = domain[0] - domain[domainLast] > 0;\n const min = reverse ? domainLast : 0;\n const max = reverse ? 0 : domainLast;\n for (const key in this._extend) {\n temp = this._extend[key];\n temp > domain[max] && (domain[max] = temp);\n temp < domain[min] && (domain[min] = temp);\n }\n }\n\n getDomainSpec() {\n return this._domain;\n }\n\n protected setDomainMinMax(domain: number[]): void {\n if (!this._domain) {\n return;\n }\n const { min, max } = this._domain;\n isValid(min) && (domain[0] = min);\n isValid(max) && (domain[1] = max);\n }\n\n setZero(zero: boolean) {\n if (this._zero !== zero) {\n this._zero = zero;\n this.updateScaleDomain();\n }\n }\n /**\n * @override\n * TODO event.emit是否可以考虑用decorator\n */\n protected updateScaleDomain() {\n if (!this.isSeriesDataEnable()) {\n return;\n }\n const data = this.collectData();\n const domain: number[] = this.computeDomain(data) as number[];\n this.updateScaleDomainByModel(domain);\n }\n\n /**\n * TODO event.emit是否可以考虑用decorator\n * 数据逻辑外,模块的设置更新对scale-domain的修改操作\n */\n protected updateScaleDomainByModel(domain?: number[]) {\n domain = domain ?? this._scale.domain();\n // 其他模块的设置 domain\n this.extendDomain(domain);\n this.includeZero(domain);\n // 用户 spec 的 min-max\n this.setDomainMinMax(domain);\n // nice 优先级最高\n this.niceDomain(domain);\n this._scale.domain(domain, this._nice);\n // 设置scale的nice-min-max\n this.setScaleNice();\n this.event.emit(ChartEvent.scaleDomainUpdate, { model: this as any });\n this.event.emit(ChartEvent.scaleUpdate, { model: this as any, value: 'domain' });\n }\n}\n"]}
@@ -44,7 +44,7 @@ export declare abstract class PolarAxis<T extends IPolarAxisCommonSpec = IPolarA
44
44
  protected _tickTransformOption(coordinateType: CoordinateType): IPolarTickDataOpt;
45
45
  afterCompile(): void;
46
46
  protected updateScaleRange(): boolean;
47
- protected collectData(depth: number): {
47
+ protected collectData(depth: number, rawData?: boolean): {
48
48
  min: number;
49
49
  max: number;
50
50
  values: any[];
@@ -56,7 +56,7 @@ export class PolarAxis extends AxisComponent {
56
56
  }, this._transformLayoutPosition = pos => {
57
57
  var _a;
58
58
  const region = null === (_a = this.getRegions()) || void 0 === _a ? void 0 : _a[0];
59
- return region ? region.getLayoutPositionExcludeIndent() : pos;
59
+ return region ? region.getLayoutStartPoint() : pos;
60
60
  };
61
61
  }
62
62
  get center() {
@@ -160,7 +160,7 @@ export class PolarAxis extends AxisComponent {
160
160
  (!prevRange || !newRange || prevRange[0] !== newRange[0] || prevRange[1] !== newRange[1]) && (this._scale.range(newRange),
161
161
  !0);
162
162
  }
163
- collectData(depth) {
163
+ collectData(depth, rawData) {
164
164
  const data = [];
165
165
  return eachSeries(this._regions, (s => {
166
166
  var _a, _b, _c;
@@ -171,7 +171,7 @@ export class PolarAxis extends AxisComponent {
171
171
  const seriesData = null === (_c = s.getViewDataStatistics) || void 0 === _c ? void 0 : _c.call(s);
172
172
  field && field.forEach((f => {
173
173
  var _a;
174
- (null === (_a = null == seriesData ? void 0 : seriesData.latestData) || void 0 === _a ? void 0 : _a[f]) && data.push(seriesData.latestData[f]);
174
+ rawData ? data.push(s.getRawDataStatisticsByField(f, !1)) : (null === (_a = null == seriesData ? void 0 : seriesData.latestData) || void 0 === _a ? void 0 : _a[f]) && data.push(seriesData.latestData[f]);
175
175
  }));
176
176
  }), {
177
177
  userId: this._seriesUserId,
@@ -333,7 +333,7 @@ export class PolarAxis extends AxisComponent {
333
333
  return Math.min(width, height) / 2 * innerRadius;
334
334
  }
335
335
  getRefLayoutRect() {
336
- return this.getRegions()[0].getLayoutRectExcludeIndent();
336
+ return this.getRegions()[0].getLayoutRect();
337
337
  }
338
338
  getRefSeriesRadius() {
339
339
  let outerRadius = POLAR_DEFAULT_RADIUS, innerRadius = 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, IPolarAxisCommonTheme } 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, CoordinateType } 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 { 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 { CompilableData } from '../../../compile/data/compilable-data';\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 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 specIndex: i,\n specPath: [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 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.getLayoutPositionExcludeIndent() : 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 // data\n protected _initData() {\n const tickData = this._initTickDataSet(this._tickTransformOption('polar'));\n tickData.target.addListener('change', this._forceLayout.bind(this));\n this._tickData = new CompilableData(this._option, tickData);\n }\n\n protected _tickTransformOption(coordinateType: CoordinateType) {\n return {\n ...super._tickTransformOption(coordinateType),\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) {\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 (seriesData?.latestData?.[f]) {\n data.push(seriesData.latestData[f]);\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 };\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 if (this._tickData) {\n const latestData = this._tickData.getLatestData();\n\n if (latestData && !isArray(latestData)) {\n // the ticks data of scale has not be calculated\n this.computeData('force');\n }\n\n return this._tickData.getLatestData() || [];\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 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 = isArray(this._tickData.getLatestData())\n ? this._tickData.getLatestData().map((obj: Datum) => {\n const angle = this.dataToPosition([obj.value]);\n return {\n id: obj.value,\n label: obj.value,\n value: (angle - this._startAngle) / angleRange,\n rawValue: obj.value\n };\n })\n : [];\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 };\n if (this._spec.grid.visible) {\n attrs.grid = {\n type: 'line',\n smoothLink: true,\n items,\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 = isArray(this._tickData.getLatestData())\n ? this._tickData.getLatestData().map((obj: Datum) => {\n const value = this.dataToPosition([obj.value]);\n return {\n id: obj.value,\n label: obj.value,\n value: (value - innerRadius) / distance,\n rawValue: obj.value\n };\n })\n : [];\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 };\n if (this._spec.grid?.visible) {\n attrs.grid = {\n items,\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].getLayoutRectExcludeIndent();\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, IPolarAxisCommonTheme } 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, CoordinateType } 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 { 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 { CompilableData } from '../../../compile/data/compilable-data';\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 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 specIndex: i,\n specPath: [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 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 // data\n protected _initData() {\n const tickData = this._initTickDataSet(this._tickTransformOption('polar'));\n tickData.target.addListener('change', this._forceLayout.bind(this));\n this._tickData = new CompilableData(this._option, tickData);\n }\n\n protected _tickTransformOption(coordinateType: CoordinateType) {\n return {\n ...super._tickTransformOption(coordinateType),\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 };\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 if (this._tickData) {\n const latestData = this._tickData.getLatestData();\n\n if (latestData && !isArray(latestData)) {\n // the ticks data of scale has not be calculated\n this.computeData('force');\n }\n\n return this._tickData.getLatestData() || [];\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 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 = isArray(this._tickData.getLatestData())\n ? this._tickData.getLatestData().map((obj: Datum) => {\n const angle = this.dataToPosition([obj.value]);\n return {\n id: obj.value,\n label: obj.value,\n value: (angle - this._startAngle) / angleRange,\n rawValue: obj.value\n };\n })\n : [];\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 };\n if (this._spec.grid.visible) {\n attrs.grid = {\n type: 'line',\n smoothLink: true,\n items,\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 = isArray(this._tickData.getLatestData())\n ? this._tickData.getLatestData().map((obj: Datum) => {\n const value = this.dataToPosition([obj.value]);\n return {\n id: obj.value,\n label: obj.value,\n value: (value - innerRadius) / distance,\n rawValue: obj.value\n };\n })\n : [];\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 };\n if (this._spec.grid?.visible) {\n attrs.grid = {\n items,\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"]}
@@ -56,7 +56,7 @@ export class Brush extends BaseComponent {
56
56
  return data;
57
57
  }
58
58
  _getBrushInteractiveAttr(region) {
59
- const regionLayoutPosition = region.getLayoutPositionExcludeIndent(), regionLayoutRect = region.getLayoutRectExcludeIndent(), seriesRegionStartX = regionLayoutPosition.x, seriesRegionEndX = seriesRegionStartX + regionLayoutRect.width, seriesRegionStartY = regionLayoutPosition.y, seriesRegionEndY = seriesRegionStartY + regionLayoutRect.height;
59
+ const regionLayoutPosition = region.getLayoutStartPoint(), regionLayoutRect = region.getLayoutRect(), seriesRegionStartX = regionLayoutPosition.x, seriesRegionEndX = seriesRegionStartX + regionLayoutRect.width, seriesRegionStartY = regionLayoutPosition.y, seriesRegionEndY = seriesRegionStartY + regionLayoutRect.height;
60
60
  return {
61
61
  interactiveRange: {
62
62
  minY: seriesRegionStartY,
@@ -150,10 +150,10 @@ export class Brush extends BaseComponent {
150
150
  }));
151
151
  }
152
152
  _reconfigLinkedItem(operateMask, region) {
153
- const regionLayoutPos = region.getLayoutPositionExcludeIndent(), seriesId = region.getSeries().map((s => s.id));
153
+ const regionLayoutPos = region.getLayoutStartPoint(), seriesId = region.getSeries().map((s => s.id));
154
154
  this._linkedSeries.forEach((s => {
155
155
  if (!seriesId.includes(s.id)) {
156
- const sRegionLayoutPos = s.getRegion().getLayoutPositionExcludeIndent(), regionOffsetX = sRegionLayoutPos.x - regionLayoutPos.x, regionOffsetY = sRegionLayoutPos.y - regionLayoutPos.y;
156
+ const sRegionLayoutPos = s.getRegion().getLayoutStartPoint(), regionOffsetX = sRegionLayoutPos.x - regionLayoutPos.x, regionOffsetY = sRegionLayoutPos.y - regionLayoutPos.y;
157
157
  this._linkedItemMap[s.id].forEach((mark => {
158
158
  const grammarMark = mark.getProduct();
159
159
  if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) return;