@visactor/vchart 2.1.0-alpha.17 → 2.1.0-alpha.18

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 (696) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +63796 -59964
  3. package/build/index.js +63798 -59966
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/callback-disappear.d.ts +1 -1
  7. package/cjs/animation/callback-disappear.js +2 -2
  8. package/cjs/animation/callback-disappear.js.map +1 -1
  9. package/cjs/animation/config.js +34 -34
  10. package/cjs/animation/config.js.map +1 -1
  11. package/cjs/animation/index.js +2 -1
  12. package/cjs/chart/base/base-chart-transformer.d.ts +3 -0
  13. package/cjs/chart/base/base-chart-transformer.js +23 -3
  14. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  15. package/cjs/chart/base/base-chart.d.ts +27 -9
  16. package/cjs/chart/base/base-chart.js +209 -28
  17. package/cjs/chart/base/base-chart.js.map +1 -1
  18. package/cjs/chart/gauge/gauge-transformer.js +3 -2
  19. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  20. package/cjs/chart/interface/chart.d.ts +1 -0
  21. package/cjs/chart/interface/chart.js.map +1 -1
  22. package/cjs/chart/pie/base/pie-transformer.js +2 -2
  23. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  24. package/cjs/chart/polar/polar-transformer.js +1 -1
  25. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  26. package/cjs/chart/polar/progress-like/progress-like-transformer.js +1 -1
  27. package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  28. package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -1
  29. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  30. package/cjs/chart/progress/linear/linear-progress-transformer.js +1 -1
  31. package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  32. package/cjs/chart/radar/radar-transformer.js +3 -2
  33. package/cjs/chart/radar/radar-transformer.js.map +1 -1
  34. package/cjs/chart/range-area/range-area-transformer.js +2 -2
  35. package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
  36. package/cjs/chart/rose/rose-transformer.js +2 -1
  37. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  38. package/cjs/chart/util.d.ts +4 -1
  39. package/cjs/chart/util.js +40 -4
  40. package/cjs/chart/util.js.map +1 -1
  41. package/cjs/chart/waterfall/waterfall-transformer.js +2 -1
  42. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  43. package/cjs/compile/compiler.d.ts +2 -0
  44. package/cjs/compile/compiler.js +68 -48
  45. package/cjs/compile/compiler.js.map +1 -1
  46. package/cjs/compile/data/compilable-data.d.ts +1 -1
  47. package/cjs/compile/data/compilable-data.js +1 -1
  48. package/cjs/compile/data/compilable-data.js.map +1 -1
  49. package/cjs/compile/grammar-item.d.ts +1 -1
  50. package/cjs/compile/grammar-item.js.map +1 -1
  51. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  52. package/cjs/compile/interface/compilable-item.js.map +1 -1
  53. package/cjs/compile/interface/compiler.d.ts +2 -1
  54. package/cjs/compile/interface/compiler.js.map +1 -1
  55. package/cjs/compile/morph.js +5 -6
  56. package/cjs/compile/morph.js.map +1 -1
  57. package/cjs/compile/stage-app.d.ts +17 -0
  58. package/cjs/compile/stage-app.js +82 -0
  59. package/cjs/compile/stage-app.js.map +1 -0
  60. package/cjs/component/axis/base-axis.d.ts +3 -8
  61. package/cjs/component/axis/base-axis.js +27 -7
  62. package/cjs/component/axis/base-axis.js.map +1 -1
  63. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -7
  64. package/cjs/component/axis/cartesian/band-axis.js +4 -4
  65. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  66. package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -1
  67. package/cjs/component/axis/cartesian/linear-axis.js +4 -4
  68. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  69. package/cjs/component/axis/mixin/linear-axis-mixin.js +7 -10
  70. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  71. package/cjs/component/axis/polar/band-axis.d.ts +2 -0
  72. package/cjs/component/axis/polar/band-axis.js +3 -0
  73. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  74. package/cjs/component/axis/polar/linear-axis.js +3 -0
  75. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  76. package/cjs/component/base/base-component.d.ts +7 -7
  77. package/cjs/component/base/base-component.js +41 -6
  78. package/cjs/component/base/base-component.js.map +1 -1
  79. package/cjs/component/base/release-vrender-component.d.ts +10 -0
  80. package/cjs/component/base/release-vrender-component.js +37 -0
  81. package/cjs/component/base/release-vrender-component.js.map +1 -0
  82. package/cjs/component/brush/brush.d.ts +3 -7
  83. package/cjs/component/brush/brush.js +34 -16
  84. package/cjs/component/brush/brush.js.map +1 -1
  85. package/cjs/component/crosshair/base.d.ts +5 -8
  86. package/cjs/component/crosshair/base.js +33 -5
  87. package/cjs/component/crosshair/base.js.map +1 -1
  88. package/cjs/component/crosshair/cartesian.js +3 -3
  89. package/cjs/component/crosshair/cartesian.js.map +1 -1
  90. package/cjs/component/custom-mark/custom-mark.d.ts +4 -7
  91. package/cjs/component/custom-mark/custom-mark.js +27 -3
  92. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  93. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -7
  94. package/cjs/component/data-zoom/data-filter-base-component.js +15 -2
  95. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  96. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  97. package/cjs/component/data-zoom/data-zoom/data-zoom.js +19 -1
  98. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  99. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  100. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
  101. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  102. package/cjs/component/geo/geo-coordinate.d.ts +1 -7
  103. package/cjs/component/indicator/indicator.d.ts +1 -0
  104. package/cjs/component/indicator/indicator.js +11 -2
  105. package/cjs/component/indicator/indicator.js.map +1 -1
  106. package/cjs/component/indicator/util.d.ts +4 -3
  107. package/cjs/component/indicator/util.js +1 -1
  108. package/cjs/component/indicator/util.js.map +1 -1
  109. package/cjs/component/label/base-label.d.ts +1 -7
  110. package/cjs/component/label/base-label.js +6 -2
  111. package/cjs/component/label/base-label.js.map +1 -1
  112. package/cjs/component/label/label.js +3 -3
  113. package/cjs/component/label/label.js.map +1 -1
  114. package/cjs/component/legend/base-legend.d.ts +2 -7
  115. package/cjs/component/legend/base-legend.js +20 -3
  116. package/cjs/component/legend/base-legend.js.map +1 -1
  117. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  118. package/cjs/component/legend/discrete/legend.js +7 -7
  119. package/cjs/component/legend/discrete/legend.js.map +1 -1
  120. package/cjs/component/marker/base-marker.d.ts +14 -7
  121. package/cjs/component/marker/base-marker.js +112 -12
  122. package/cjs/component/marker/base-marker.js.map +1 -1
  123. package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
  124. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  125. package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
  126. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  127. package/cjs/component/marker/mark-line/base-mark-line.js +2 -4
  128. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  129. package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
  130. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  131. package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
  132. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  133. package/cjs/component/marker/mark-point/base-mark-point.js +26 -11
  134. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  135. package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
  136. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  137. package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
  138. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  139. package/cjs/component/marker/utils.d.ts +4 -4
  140. package/cjs/component/marker/utils.js +27 -23
  141. package/cjs/component/marker/utils.js.map +1 -1
  142. package/cjs/component/player/player.d.ts +1 -0
  143. package/cjs/component/player/player.js +10 -0
  144. package/cjs/component/player/player.js.map +1 -1
  145. package/cjs/component/title/title.d.ts +1 -7
  146. package/cjs/component/title/title.js +6 -2
  147. package/cjs/component/title/title.js.map +1 -1
  148. package/cjs/component/tooltip/tooltip.d.ts +1 -0
  149. package/cjs/component/tooltip/tooltip.js +8 -0
  150. package/cjs/component/tooltip/tooltip.js.map +1 -1
  151. package/cjs/component/util.js +2 -1
  152. package/cjs/constant/correlation.js +1 -2
  153. package/cjs/constant/marker.js +1 -1
  154. package/cjs/constant/polar.js +1 -1
  155. package/cjs/constant/scatter.js +1 -1
  156. package/cjs/constant/scroll-bar.js +2 -1
  157. package/cjs/constant/sunburst.js +1 -1
  158. package/cjs/constant/waterfall.js +1 -1
  159. package/cjs/constant/word-cloud.js +1 -1
  160. package/cjs/core/expression-function.js +1 -2
  161. package/cjs/core/index.d.ts +2 -1
  162. package/cjs/core/index.js +9 -5
  163. package/cjs/core/index.js.map +1 -1
  164. package/cjs/core/instance-manager.js +1 -1
  165. package/cjs/core/interface.js +1 -1
  166. package/cjs/core/util.js +1 -1
  167. package/cjs/core/vchart.d.ts +5 -1
  168. package/cjs/core/vchart.js +38 -21
  169. package/cjs/core/vchart.js.map +1 -1
  170. package/cjs/data/data-view-utils.d.ts +5 -0
  171. package/cjs/data/data-view-utils.js +58 -0
  172. package/cjs/data/data-view-utils.js.map +1 -0
  173. package/cjs/data/initialize.js +1 -1
  174. package/cjs/data/register.js +1 -1
  175. package/cjs/data/transforms/box-plot.d.ts +4 -1
  176. package/cjs/data/transforms/box-plot.js +3 -3
  177. package/cjs/data/transforms/box-plot.js.map +1 -1
  178. package/cjs/data/transforms/correlation-center.d.ts +11 -4
  179. package/cjs/data/transforms/correlation-center.js +3 -2
  180. package/cjs/data/transforms/correlation-center.js.map +1 -1
  181. package/cjs/data/transforms/correlation.d.ts +18 -15
  182. package/cjs/data/transforms/correlation.js +22 -17
  183. package/cjs/data/transforms/correlation.js.map +1 -1
  184. package/cjs/data/transforms/funnel.d.ts +10 -8
  185. package/cjs/data/transforms/funnel.js +4 -3
  186. package/cjs/data/transforms/funnel.js.map +1 -1
  187. package/cjs/data/transforms/lookup.d.ts +3 -3
  188. package/cjs/data/transforms/lookup.js +12 -7
  189. package/cjs/data/transforms/lookup.js.map +1 -1
  190. package/cjs/data/transforms/map.d.ts +8 -2
  191. package/cjs/data/transforms/map.js +9 -6
  192. package/cjs/data/transforms/map.js.map +1 -1
  193. package/cjs/data/transforms/sankey.d.ts +12 -4
  194. package/cjs/data/transforms/sankey.js +18 -13
  195. package/cjs/data/transforms/sankey.js.map +1 -1
  196. package/cjs/data/transforms/stack-split.d.ts +2 -1
  197. package/cjs/data/transforms/stack-split.js +1 -1
  198. package/cjs/data/transforms/stack-split.js.map +1 -1
  199. package/cjs/data/transforms/treemap.d.ts +5 -3
  200. package/cjs/data/transforms/treemap.js +7 -6
  201. package/cjs/data/transforms/treemap.js.map +1 -1
  202. package/cjs/data/transforms/venn.d.ts +4 -2
  203. package/cjs/data/transforms/venn.js +4 -4
  204. package/cjs/data/transforms/venn.js.map +1 -1
  205. package/cjs/data/transforms/waterfall.d.ts +4 -2
  206. package/cjs/data/transforms/waterfall.js +7 -7
  207. package/cjs/data/transforms/waterfall.js.map +1 -1
  208. package/cjs/env/env.js +11 -11
  209. package/cjs/env/env.js.map +1 -1
  210. package/cjs/env/index.js +1 -1
  211. package/cjs/event/event.d.ts +4 -0
  212. package/cjs/event/event.js +26 -7
  213. package/cjs/event/event.js.map +1 -1
  214. package/cjs/interaction/interaction.js +11 -8
  215. package/cjs/interaction/interaction.js.map +1 -1
  216. package/cjs/interaction/triggers/element-active-by-legend.js +3 -2
  217. package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
  218. package/cjs/interaction/triggers/element-active.js +4 -3
  219. package/cjs/interaction/triggers/element-active.js.map +1 -1
  220. package/cjs/interaction/triggers/element-highlight-by-group.js +3 -2
  221. package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
  222. package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
  223. package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  224. package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
  225. package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
  226. package/cjs/interaction/triggers/element-highlight.js +2 -2
  227. package/cjs/interaction/triggers/element-highlight.js.map +1 -1
  228. package/cjs/interaction/triggers/element-select.js +3 -3
  229. package/cjs/interaction/triggers/element-select.js.map +1 -1
  230. package/cjs/mark/arc.js +4 -4
  231. package/cjs/mark/arc.js.map +1 -1
  232. package/cjs/mark/area.js +4 -5
  233. package/cjs/mark/area.js.map +1 -1
  234. package/cjs/mark/base/base-mark.d.ts +12 -2
  235. package/cjs/mark/base/base-mark.js +98 -29
  236. package/cjs/mark/base/base-mark.js.map +1 -1
  237. package/cjs/mark/component.d.ts +9 -0
  238. package/cjs/mark/component.js +51 -3
  239. package/cjs/mark/component.js.map +1 -1
  240. package/cjs/mark/glyph.js +1 -1
  241. package/cjs/mark/glyph.js.map +1 -1
  242. package/cjs/mark/group.js +6 -6
  243. package/cjs/mark/group.js.map +1 -1
  244. package/cjs/mark/interface/common.js.map +1 -1
  245. package/cjs/mark/interface/mark.d.ts +2 -0
  246. package/cjs/mark/interface/mark.js.map +1 -1
  247. package/cjs/mark/line.js +4 -5
  248. package/cjs/mark/line.js.map +1 -1
  249. package/cjs/mark/rect.js +3 -3
  250. package/cjs/mark/rect.js.map +1 -1
  251. package/cjs/mark/symbol.js +3 -3
  252. package/cjs/mark/symbol.js.map +1 -1
  253. package/cjs/mark/text.js +4 -4
  254. package/cjs/mark/text.js.map +1 -1
  255. package/cjs/mark/utils/glyph.js +3 -2
  256. package/cjs/mark/utils/glyph.js.map +1 -1
  257. package/cjs/model/base-model.d.ts +3 -15
  258. package/cjs/model/base-model.js.map +1 -1
  259. package/cjs/model/interface.d.ts +13 -0
  260. package/cjs/model/interface.js.map +1 -1
  261. package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
  262. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  263. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  264. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js +2 -2
  265. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  266. package/cjs/plugin/other.js +5 -5
  267. package/cjs/plugin/other.js.map +1 -1
  268. package/cjs/region/region.d.ts +1 -7
  269. package/cjs/scale/color-ordinal-scale.d.ts +1 -0
  270. package/cjs/scale/color-ordinal-scale.js +3 -0
  271. package/cjs/scale/color-ordinal-scale.js.map +1 -1
  272. package/cjs/scale/global-scale.js +9 -2
  273. package/cjs/scale/global-scale.js.map +1 -1
  274. package/cjs/series/area/area.d.ts +2 -0
  275. package/cjs/series/area/area.js +6 -0
  276. package/cjs/series/area/area.js.map +1 -1
  277. package/cjs/series/bar/bar.d.ts +3 -0
  278. package/cjs/series/bar/bar.js +30 -4
  279. package/cjs/series/bar/bar.js.map +1 -1
  280. package/cjs/series/base/base-series.d.ts +11 -7
  281. package/cjs/series/base/base-series.js +93 -23
  282. package/cjs/series/base/base-series.js.map +1 -1
  283. package/cjs/series/base/constant.d.ts +3 -0
  284. package/cjs/series/base/constant.js +9 -1
  285. package/cjs/series/base/constant.js.map +1 -1
  286. package/cjs/series/box-plot/box-plot.d.ts +2 -0
  287. package/cjs/series/box-plot/box-plot.js +16 -4
  288. package/cjs/series/box-plot/box-plot.js.map +1 -1
  289. package/cjs/series/correlation/correlation.js +13 -11
  290. package/cjs/series/correlation/correlation.js.map +1 -1
  291. package/cjs/series/dot/dot.d.ts +12 -0
  292. package/cjs/series/dot/dot.js +16 -1
  293. package/cjs/series/dot/dot.js.map +1 -1
  294. package/cjs/series/funnel/funnel.js +5 -8
  295. package/cjs/series/funnel/funnel.js.map +1 -1
  296. package/cjs/series/heatmap/heatmap.d.ts +2 -0
  297. package/cjs/series/heatmap/heatmap.js +10 -0
  298. package/cjs/series/heatmap/heatmap.js.map +1 -1
  299. package/cjs/series/line/line.d.ts +2 -0
  300. package/cjs/series/line/line.js +9 -3
  301. package/cjs/series/line/line.js.map +1 -1
  302. package/cjs/series/map/map.js +3 -3
  303. package/cjs/series/map/map.js.map +1 -1
  304. package/cjs/series/mixin/line-mixin.d.ts +1 -0
  305. package/cjs/series/mixin/line-mixin.js +6 -1
  306. package/cjs/series/mixin/line-mixin.js.map +1 -1
  307. package/cjs/series/pie/pie.d.ts +3 -7
  308. package/cjs/series/pie/pie.js +16 -1
  309. package/cjs/series/pie/pie.js.map +1 -1
  310. package/cjs/series/polar/progress-like/progress-like.d.ts +2 -0
  311. package/cjs/series/polar/progress-like/progress-like.js +16 -1
  312. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  313. package/cjs/series/polar/rose-like/rose-like.d.ts +2 -0
  314. package/cjs/series/polar/rose-like/rose-like.js +15 -1
  315. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  316. package/cjs/series/progress/circular/circular.d.ts +2 -0
  317. package/cjs/series/progress/circular/circular.js +10 -1
  318. package/cjs/series/progress/circular/circular.js.map +1 -1
  319. package/cjs/series/progress/linear/linear.d.ts +2 -0
  320. package/cjs/series/progress/linear/linear.js +19 -1
  321. package/cjs/series/progress/linear/linear.js.map +1 -1
  322. package/cjs/series/sankey/sankey.js +67 -57
  323. package/cjs/series/sankey/sankey.js.map +1 -1
  324. package/cjs/series/scatter/scatter.d.ts +2 -0
  325. package/cjs/series/scatter/scatter.js +9 -1
  326. package/cjs/series/scatter/scatter.js.map +1 -1
  327. package/cjs/series/treemap/treemap.js +23 -20
  328. package/cjs/series/treemap/treemap.js.map +1 -1
  329. package/cjs/series/venn/venn.js +2 -2
  330. package/cjs/series/venn/venn.js.map +1 -1
  331. package/cjs/series/waterfall/waterfall.d.ts +2 -0
  332. package/cjs/series/waterfall/waterfall.js +36 -20
  333. package/cjs/series/waterfall/waterfall.js.map +1 -1
  334. package/cjs/series/word-cloud/animation.js +3 -0
  335. package/cjs/series/word-cloud/animation.js.map +1 -1
  336. package/cjs/theme/builtin/common/series/word-cloud.js +2 -6
  337. package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -1
  338. package/cjs/util/graphic-state.d.ts +4 -0
  339. package/cjs/util/graphic-state.js +40 -0
  340. package/cjs/util/graphic-state.js.map +1 -0
  341. package/cjs/util/mark.js +7 -3
  342. package/cjs/util/mark.js.map +1 -1
  343. package/cjs/util/math.d.ts +1 -1
  344. package/cjs/util/math.js +2 -2
  345. package/cjs/util/math.js.map +1 -1
  346. package/cjs/util/text.js +2 -2
  347. package/cjs/util/text.js.map +1 -1
  348. package/cjs/vchart-line.d.ts +4 -0
  349. package/cjs/vchart-line.js +35 -0
  350. package/cjs/vchart-line.js.map +1 -0
  351. package/esm/animation/callback-disappear.d.ts +1 -1
  352. package/esm/animation/callback-disappear.js +1 -1
  353. package/esm/animation/callback-disappear.js.map +1 -1
  354. package/esm/animation/config.js +33 -1
  355. package/esm/animation/config.js.map +1 -1
  356. package/esm/animation/index.js +2 -1
  357. package/esm/chart/base/base-chart-transformer.d.ts +3 -0
  358. package/esm/chart/base/base-chart-transformer.js +24 -2
  359. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  360. package/esm/chart/base/base-chart.d.ts +27 -9
  361. package/esm/chart/base/base-chart.js +202 -27
  362. package/esm/chart/base/base-chart.js.map +1 -1
  363. package/esm/chart/gauge/gauge-transformer.js +3 -2
  364. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  365. package/esm/chart/interface/chart.d.ts +1 -0
  366. package/esm/chart/interface/chart.js.map +1 -1
  367. package/esm/chart/pie/base/pie-transformer.js +2 -2
  368. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  369. package/esm/chart/polar/polar-transformer.js +1 -1
  370. package/esm/chart/polar/polar-transformer.js.map +1 -1
  371. package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
  372. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  373. package/esm/chart/progress/circular/circular-progress-transformer.js +2 -1
  374. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  375. package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
  376. package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  377. package/esm/chart/radar/radar-transformer.js +3 -2
  378. package/esm/chart/radar/radar-transformer.js.map +1 -1
  379. package/esm/chart/range-area/range-area-transformer.js +2 -2
  380. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  381. package/esm/chart/rose/rose-transformer.js +2 -1
  382. package/esm/chart/rose/rose-transformer.js.map +1 -1
  383. package/esm/chart/util.d.ts +4 -1
  384. package/esm/chart/util.js +34 -1
  385. package/esm/chart/util.js.map +1 -1
  386. package/esm/chart/waterfall/waterfall-transformer.js +2 -1
  387. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  388. package/esm/compile/compiler.d.ts +2 -0
  389. package/esm/compile/compiler.js +69 -47
  390. package/esm/compile/compiler.js.map +1 -1
  391. package/esm/compile/data/compilable-data.d.ts +1 -1
  392. package/esm/compile/data/compilable-data.js +1 -1
  393. package/esm/compile/data/compilable-data.js.map +1 -1
  394. package/esm/compile/grammar-item.d.ts +1 -1
  395. package/esm/compile/grammar-item.js.map +1 -1
  396. package/esm/compile/interface/compilable-item.d.ts +1 -1
  397. package/esm/compile/interface/compilable-item.js.map +1 -1
  398. package/esm/compile/interface/compiler.d.ts +2 -1
  399. package/esm/compile/interface/compiler.js.map +1 -1
  400. package/esm/compile/morph.js +2 -3
  401. package/esm/compile/morph.js.map +1 -1
  402. package/esm/compile/stage-app.d.ts +17 -0
  403. package/esm/compile/stage-app.js +77 -0
  404. package/esm/compile/stage-app.js.map +1 -0
  405. package/esm/component/axis/base-axis.d.ts +3 -8
  406. package/esm/component/axis/base-axis.js +27 -6
  407. package/esm/component/axis/base-axis.js.map +1 -1
  408. package/esm/component/axis/cartesian/band-axis.d.ts +1 -7
  409. package/esm/component/axis/cartesian/band-axis.js +4 -2
  410. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  411. package/esm/component/axis/cartesian/linear-axis.d.ts +1 -1
  412. package/esm/component/axis/cartesian/linear-axis.js +5 -1
  413. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  414. package/esm/component/axis/mixin/linear-axis-mixin.js +7 -10
  415. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  416. package/esm/component/axis/polar/band-axis.d.ts +2 -0
  417. package/esm/component/axis/polar/band-axis.js +3 -0
  418. package/esm/component/axis/polar/band-axis.js.map +1 -1
  419. package/esm/component/axis/polar/linear-axis.js +3 -0
  420. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  421. package/esm/component/base/base-component.d.ts +7 -7
  422. package/esm/component/base/base-component.js +41 -5
  423. package/esm/component/base/base-component.js.map +1 -1
  424. package/esm/component/base/release-vrender-component.d.ts +10 -0
  425. package/esm/component/base/release-vrender-component.js +24 -0
  426. package/esm/component/base/release-vrender-component.js.map +1 -0
  427. package/esm/component/brush/brush.d.ts +3 -7
  428. package/esm/component/brush/brush.js +29 -11
  429. package/esm/component/brush/brush.js.map +1 -1
  430. package/esm/component/crosshair/base.d.ts +5 -8
  431. package/esm/component/crosshair/base.js +27 -3
  432. package/esm/component/crosshair/base.js.map +1 -1
  433. package/esm/component/crosshair/cartesian.js +3 -1
  434. package/esm/component/crosshair/cartesian.js.map +1 -1
  435. package/esm/component/custom-mark/custom-mark.d.ts +4 -7
  436. package/esm/component/custom-mark/custom-mark.js +27 -2
  437. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  438. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -7
  439. package/esm/component/data-zoom/data-filter-base-component.js +14 -2
  440. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  441. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  442. package/esm/component/data-zoom/data-zoom/data-zoom.js +20 -0
  443. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  444. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  445. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
  446. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  447. package/esm/component/geo/geo-coordinate.d.ts +1 -7
  448. package/esm/component/indicator/indicator.d.ts +1 -0
  449. package/esm/component/indicator/indicator.js +11 -2
  450. package/esm/component/indicator/indicator.js.map +1 -1
  451. package/esm/component/indicator/util.d.ts +4 -3
  452. package/esm/component/indicator/util.js +2 -2
  453. package/esm/component/indicator/util.js.map +1 -1
  454. package/esm/component/label/base-label.d.ts +1 -7
  455. package/esm/component/label/base-label.js +5 -1
  456. package/esm/component/label/base-label.js.map +1 -1
  457. package/esm/component/label/label.js +2 -2
  458. package/esm/component/label/label.js.map +1 -1
  459. package/esm/component/legend/base-legend.d.ts +2 -7
  460. package/esm/component/legend/base-legend.js +20 -2
  461. package/esm/component/legend/base-legend.js.map +1 -1
  462. package/esm/component/legend/discrete/legend.d.ts +1 -1
  463. package/esm/component/legend/discrete/legend.js +2 -2
  464. package/esm/component/legend/discrete/legend.js.map +1 -1
  465. package/esm/component/marker/base-marker.d.ts +14 -7
  466. package/esm/component/marker/base-marker.js +113 -11
  467. package/esm/component/marker/base-marker.js.map +1 -1
  468. package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
  469. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  470. package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
  471. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  472. package/esm/component/marker/mark-line/base-mark-line.js +2 -4
  473. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  474. package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
  475. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  476. package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
  477. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  478. package/esm/component/marker/mark-point/base-mark-point.js +24 -11
  479. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  480. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  481. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  482. package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
  483. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  484. package/esm/component/marker/utils.d.ts +4 -4
  485. package/esm/component/marker/utils.js +27 -23
  486. package/esm/component/marker/utils.js.map +1 -1
  487. package/esm/component/player/player.d.ts +1 -0
  488. package/esm/component/player/player.js +10 -0
  489. package/esm/component/player/player.js.map +1 -1
  490. package/esm/component/title/title.d.ts +1 -7
  491. package/esm/component/title/title.js +6 -2
  492. package/esm/component/title/title.js.map +1 -1
  493. package/esm/component/tooltip/tooltip.d.ts +1 -0
  494. package/esm/component/tooltip/tooltip.js +9 -1
  495. package/esm/component/tooltip/tooltip.js.map +1 -1
  496. package/esm/component/util.js +2 -1
  497. package/esm/constant/correlation.js +1 -2
  498. package/esm/constant/marker.js +1 -1
  499. package/esm/constant/polar.js +1 -1
  500. package/esm/constant/scatter.js +1 -1
  501. package/esm/constant/scroll-bar.js +2 -1
  502. package/esm/constant/sunburst.js +1 -1
  503. package/esm/constant/waterfall.js +1 -1
  504. package/esm/constant/word-cloud.js +1 -1
  505. package/esm/core/expression-function.js +1 -2
  506. package/esm/core/index.d.ts +2 -1
  507. package/esm/core/index.js +4 -2
  508. package/esm/core/index.js.map +1 -1
  509. package/esm/core/instance-manager.js +1 -1
  510. package/esm/core/interface.js +1 -1
  511. package/esm/core/util.js +1 -1
  512. package/esm/core/vchart.d.ts +5 -1
  513. package/esm/core/vchart.js +39 -21
  514. package/esm/core/vchart.js.map +1 -1
  515. package/esm/data/data-view-utils.d.ts +5 -0
  516. package/esm/data/data-view-utils.js +46 -0
  517. package/esm/data/data-view-utils.js.map +1 -0
  518. package/esm/data/initialize.js +1 -1
  519. package/esm/data/register.js +1 -1
  520. package/esm/data/transforms/box-plot.d.ts +4 -1
  521. package/esm/data/transforms/box-plot.js +4 -4
  522. package/esm/data/transforms/box-plot.js.map +1 -1
  523. package/esm/data/transforms/correlation-center.d.ts +11 -4
  524. package/esm/data/transforms/correlation-center.js +4 -2
  525. package/esm/data/transforms/correlation-center.js.map +1 -1
  526. package/esm/data/transforms/correlation.d.ts +18 -15
  527. package/esm/data/transforms/correlation.js +13 -8
  528. package/esm/data/transforms/correlation.js.map +1 -1
  529. package/esm/data/transforms/funnel.d.ts +10 -8
  530. package/esm/data/transforms/funnel.js +5 -3
  531. package/esm/data/transforms/funnel.js.map +1 -1
  532. package/esm/data/transforms/lookup.d.ts +3 -3
  533. package/esm/data/transforms/lookup.js +12 -6
  534. package/esm/data/transforms/lookup.js.map +1 -1
  535. package/esm/data/transforms/map.d.ts +8 -2
  536. package/esm/data/transforms/map.js +11 -6
  537. package/esm/data/transforms/map.js.map +1 -1
  538. package/esm/data/transforms/sankey.d.ts +12 -4
  539. package/esm/data/transforms/sankey.js +19 -14
  540. package/esm/data/transforms/sankey.js.map +1 -1
  541. package/esm/data/transforms/stack-split.d.ts +2 -1
  542. package/esm/data/transforms/stack-split.js +2 -2
  543. package/esm/data/transforms/stack-split.js.map +1 -1
  544. package/esm/data/transforms/treemap.d.ts +5 -3
  545. package/esm/data/transforms/treemap.js +8 -5
  546. package/esm/data/transforms/treemap.js.map +1 -1
  547. package/esm/data/transforms/venn.d.ts +4 -2
  548. package/esm/data/transforms/venn.js +5 -3
  549. package/esm/data/transforms/venn.js.map +1 -1
  550. package/esm/data/transforms/waterfall.d.ts +4 -2
  551. package/esm/data/transforms/waterfall.js +7 -8
  552. package/esm/data/transforms/waterfall.js.map +1 -1
  553. package/esm/env/env.js +2 -2
  554. package/esm/env/env.js.map +1 -1
  555. package/esm/env/index.js +1 -1
  556. package/esm/event/event.d.ts +4 -0
  557. package/esm/event/event.js +26 -7
  558. package/esm/event/event.js.map +1 -1
  559. package/esm/interaction/interaction.js +10 -8
  560. package/esm/interaction/interaction.js.map +1 -1
  561. package/esm/interaction/triggers/element-active-by-legend.js +3 -1
  562. package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
  563. package/esm/interaction/triggers/element-active.js +4 -2
  564. package/esm/interaction/triggers/element-active.js.map +1 -1
  565. package/esm/interaction/triggers/element-highlight-by-group.js +4 -1
  566. package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
  567. package/esm/interaction/triggers/element-highlight-by-legend.js +3 -1
  568. package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  569. package/esm/interaction/triggers/element-highlight-by-name.js +3 -1
  570. package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
  571. package/esm/interaction/triggers/element-highlight.js +3 -1
  572. package/esm/interaction/triggers/element-highlight.js.map +1 -1
  573. package/esm/interaction/triggers/element-select.js +4 -2
  574. package/esm/interaction/triggers/element-select.js.map +1 -1
  575. package/esm/mark/arc.js +4 -2
  576. package/esm/mark/arc.js.map +1 -1
  577. package/esm/mark/area.js +6 -2
  578. package/esm/mark/area.js.map +1 -1
  579. package/esm/mark/base/base-mark.d.ts +12 -2
  580. package/esm/mark/base/base-mark.js +99 -28
  581. package/esm/mark/base/base-mark.js.map +1 -1
  582. package/esm/mark/component.d.ts +9 -0
  583. package/esm/mark/component.js +51 -2
  584. package/esm/mark/component.js.map +1 -1
  585. package/esm/mark/glyph.js +1 -1
  586. package/esm/mark/glyph.js.map +1 -1
  587. package/esm/mark/group.js +6 -5
  588. package/esm/mark/group.js.map +1 -1
  589. package/esm/mark/interface/common.js.map +1 -1
  590. package/esm/mark/interface/mark.d.ts +2 -0
  591. package/esm/mark/interface/mark.js.map +1 -1
  592. package/esm/mark/line.js +6 -2
  593. package/esm/mark/line.js.map +1 -1
  594. package/esm/mark/rect.js +4 -2
  595. package/esm/mark/rect.js.map +1 -1
  596. package/esm/mark/symbol.js +4 -2
  597. package/esm/mark/symbol.js.map +1 -1
  598. package/esm/mark/text.js +5 -1
  599. package/esm/mark/text.js.map +1 -1
  600. package/esm/mark/utils/glyph.js +3 -1
  601. package/esm/mark/utils/glyph.js.map +1 -1
  602. package/esm/model/base-model.d.ts +3 -15
  603. package/esm/model/base-model.js.map +1 -1
  604. package/esm/model/interface.d.ts +13 -0
  605. package/esm/model/interface.js.map +1 -1
  606. package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
  607. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  608. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  609. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js +1 -1
  610. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  611. package/esm/plugin/other.js +2 -2
  612. package/esm/plugin/other.js.map +1 -1
  613. package/esm/region/region.d.ts +1 -7
  614. package/esm/scale/color-ordinal-scale.d.ts +1 -0
  615. package/esm/scale/color-ordinal-scale.js +3 -0
  616. package/esm/scale/color-ordinal-scale.js.map +1 -1
  617. package/esm/scale/global-scale.js +9 -1
  618. package/esm/scale/global-scale.js.map +1 -1
  619. package/esm/series/area/area.d.ts +2 -0
  620. package/esm/series/area/area.js +7 -1
  621. package/esm/series/area/area.js.map +1 -1
  622. package/esm/series/bar/bar.d.ts +3 -0
  623. package/esm/series/bar/bar.js +30 -4
  624. package/esm/series/bar/bar.js.map +1 -1
  625. package/esm/series/base/base-series.d.ts +11 -7
  626. package/esm/series/base/base-series.js +89 -21
  627. package/esm/series/base/base-series.js.map +1 -1
  628. package/esm/series/base/constant.d.ts +3 -0
  629. package/esm/series/base/constant.js +10 -0
  630. package/esm/series/base/constant.js.map +1 -1
  631. package/esm/series/box-plot/box-plot.d.ts +2 -0
  632. package/esm/series/box-plot/box-plot.js +15 -4
  633. package/esm/series/box-plot/box-plot.js.map +1 -1
  634. package/esm/series/correlation/correlation.js +13 -11
  635. package/esm/series/correlation/correlation.js.map +1 -1
  636. package/esm/series/dot/dot.d.ts +12 -0
  637. package/esm/series/dot/dot.js +17 -0
  638. package/esm/series/dot/dot.js.map +1 -1
  639. package/esm/series/funnel/funnel.js +5 -8
  640. package/esm/series/funnel/funnel.js.map +1 -1
  641. package/esm/series/heatmap/heatmap.d.ts +2 -0
  642. package/esm/series/heatmap/heatmap.js +10 -0
  643. package/esm/series/heatmap/heatmap.js.map +1 -1
  644. package/esm/series/line/line.d.ts +2 -0
  645. package/esm/series/line/line.js +10 -2
  646. package/esm/series/line/line.js.map +1 -1
  647. package/esm/series/map/map.js +3 -3
  648. package/esm/series/map/map.js.map +1 -1
  649. package/esm/series/mixin/line-mixin.d.ts +1 -0
  650. package/esm/series/mixin/line-mixin.js +5 -0
  651. package/esm/series/mixin/line-mixin.js.map +1 -1
  652. package/esm/series/pie/pie.d.ts +3 -7
  653. package/esm/series/pie/pie.js +17 -0
  654. package/esm/series/pie/pie.js.map +1 -1
  655. package/esm/series/polar/progress-like/progress-like.d.ts +2 -0
  656. package/esm/series/polar/progress-like/progress-like.js +17 -0
  657. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  658. package/esm/series/polar/rose-like/rose-like.d.ts +2 -0
  659. package/esm/series/polar/rose-like/rose-like.js +16 -0
  660. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  661. package/esm/series/progress/circular/circular.d.ts +2 -0
  662. package/esm/series/progress/circular/circular.js +11 -0
  663. package/esm/series/progress/circular/circular.js.map +1 -1
  664. package/esm/series/progress/linear/linear.d.ts +2 -0
  665. package/esm/series/progress/linear/linear.js +20 -0
  666. package/esm/series/progress/linear/linear.js.map +1 -1
  667. package/esm/series/sankey/sankey.js +60 -54
  668. package/esm/series/sankey/sankey.js.map +1 -1
  669. package/esm/series/scatter/scatter.d.ts +2 -0
  670. package/esm/series/scatter/scatter.js +10 -0
  671. package/esm/series/scatter/scatter.js.map +1 -1
  672. package/esm/series/treemap/treemap.js +23 -20
  673. package/esm/series/treemap/treemap.js.map +1 -1
  674. package/esm/series/venn/venn.js +2 -2
  675. package/esm/series/venn/venn.js.map +1 -1
  676. package/esm/series/waterfall/waterfall.d.ts +2 -0
  677. package/esm/series/waterfall/waterfall.js +36 -20
  678. package/esm/series/waterfall/waterfall.js.map +1 -1
  679. package/esm/series/word-cloud/animation.js +3 -0
  680. package/esm/series/word-cloud/animation.js.map +1 -1
  681. package/esm/theme/builtin/common/series/word-cloud.js +2 -6
  682. package/esm/theme/builtin/common/series/word-cloud.js.map +1 -1
  683. package/esm/util/graphic-state.d.ts +4 -0
  684. package/esm/util/graphic-state.js +30 -0
  685. package/esm/util/graphic-state.js.map +1 -0
  686. package/esm/util/mark.js +8 -2
  687. package/esm/util/mark.js.map +1 -1
  688. package/esm/util/math.d.ts +1 -1
  689. package/esm/util/math.js +1 -1
  690. package/esm/util/math.js.map +1 -1
  691. package/esm/util/text.js +1 -1
  692. package/esm/util/text.js.map +1 -1
  693. package/esm/vchart-line.d.ts +4 -0
  694. package/esm/vchart-line.js +28 -0
  695. package/esm/vchart-line.js.map +1 -0
  696. package/package.json +11 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/morph.ts"],"names":[],"mappings":"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","file":"morph.js","sourcesContent":["import { morphPath, multiToOneMorph, oneToMultiMorph } from '@visactor/vrender-animate';\nimport { isNil, isNumber, isValid, isValidNumber } from '@visactor/vutils';\nimport type { IMark, IMarkGraphic } from '../mark/interface';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { Datum } from '../typings';\n\n/** Morph data for animation */\ninterface MorphData {\n prev: Datum[];\n next: Datum[];\n}\n\n/** Elements to morph */\ninterface MorphElements {\n prev: IMarkGraphic[];\n next: IMarkGraphic[];\n}\n\n/** Type to allow either a static value or a function that returns a value */\ntype MorphFunctionValueType<T> = T | ((params: any, morphData: MorphData, morphElements: MorphElements) => T);\n\n/**\n * Apply a function value or return the static value\n */\nconst invokeFunctionType = <T>(\n value: MorphFunctionValueType<T>,\n params: any,\n morphData: MorphData,\n morphElements: MorphElements\n): T => {\n if (typeof value === 'function') {\n return (value as Function)(params, morphData, morphElements) as T;\n }\n return value;\n};\n\n/**\n * Execute the morphing animation between previous and next elements\n */\nconst doMorph = (\n prev: IMarkGraphic[],\n next: IMarkGraphic[],\n config: IMorphConfig,\n onEnd: () => void,\n parameters: any\n) => {\n const morphData: MorphData = {\n prev: prev.map(element => element.context?.data?.[0]),\n next: next.map(element => element.context?.data?.[0])\n };\n\n const morphElements: MorphElements = {\n prev: prev.slice(),\n next: next.slice()\n };\n\n const animation = config.animation ?? {};\n const easing = animation.easing;\n const delay = invokeFunctionType(animation.delay as any, parameters, morphData, morphElements);\n const duration = invokeFunctionType(animation.duration as any, parameters, morphData, morphElements);\n const oneByOne = invokeFunctionType(animation.oneByOne as any, parameters, morphData, morphElements);\n const splitPath = invokeFunctionType(animation.splitPath as any, parameters, morphData, morphElements);\n\n const individualDelay =\n isValidNumber(oneByOne) && (oneByOne as number) > 0\n ? (index: number) => {\n if (isNumber(oneByOne)) {\n return index * (oneByOne as number);\n } else if (oneByOne === true) {\n return index * duration;\n }\n return 0;\n }\n : undefined;\n\n // if no previous item or just one, still execute morph animation\n if ((prev.length === 1 || prev.length === 0) && next.length === 1) {\n morphPath(prev[0], next[0], { delay, duration, easing, onEnd });\n } else if (prev.length === 1 && next.length > 1) {\n oneToMultiMorph(prev[0], next, { delay, duration, easing, onEnd, individualDelay, splitPath });\n } else if (prev.length > 1 && next.length === 1) {\n multiToOneMorph(prev, next[0], { delay, duration, easing, onEnd, individualDelay, splitPath });\n }\n};\n\n/**\n * Divide elements into specified number of groups\n */\nconst divideElements = (elements: IMarkGraphic[], count: number) => {\n const divideLength = Math.floor(elements.length / count);\n return new Array(count).fill(0).map((_, index) => {\n return elements.slice(divideLength * index, index === count - 1 ? elements.length : divideLength * (index + 1));\n });\n};\n\n/**\n * Add morphKey to each mark's graphics based on mark's morphConfig\n */\nconst appendMorphKeyToGraphics = (mark: IMark) => {\n const config = mark.getMarkConfig();\n\n if (isValid(config.morphElementKey)) {\n const graphics = mark.getGraphics();\n graphics.forEach(graphic => {\n const data = graphic.context?.data?.[0];\n if (data) {\n (graphic.context as any).morphKey = data[config.morphElementKey];\n }\n });\n }\n};\n\n/**\n * Execute morphing animation between two sets of marks\n */\nexport const morph = (prevMarks: IMark[], nextMarks: IMark[], morphConfig: IMorphConfig = {}) => {\n // Get all graphics from previous and next marks\n const prevGraphics: IMarkGraphic[] = [];\n const nextGraphics: IMarkGraphic[] = [];\n\n // Get graphics and append morph keys\n prevMarks.forEach(mark => {\n appendMorphKeyToGraphics(mark);\n prevGraphics.push(...mark.getGraphics());\n });\n\n nextMarks.forEach(mark => {\n appendMorphKeyToGraphics(mark);\n nextGraphics.push(...mark.getGraphics());\n });\n\n // Group graphics by morphKey if available\n const getKey = (graphic: IMarkGraphic) => (graphic.context as any)?.morphKey ?? graphic.context?.key;\n\n // Group graphics by their keys\n const prevByKey = new Map<string, IMarkGraphic[]>();\n const nextByKey = new Map<string, IMarkGraphic[]>();\n\n prevGraphics.forEach(graphic => {\n const key = getKey(graphic);\n if (key) {\n if (!prevByKey.has(key)) {\n prevByKey.set(key, []);\n }\n prevByKey.get(key).push(graphic);\n }\n });\n\n nextGraphics.forEach(graphic => {\n const key = getKey(graphic);\n if (key) {\n if (!nextByKey.has(key)) {\n nextByKey.set(key, []);\n }\n nextByKey.get(key).push(graphic);\n }\n });\n\n // TODO 这里逻辑有问题,无法实现一对多和多对一的morphing效果。所以如果无法执行一对一动画的话,直接不走morphing了\n if (!(prevByKey.size === nextByKey.size && Array.from(prevByKey.keys()).every(k => nextByKey.has(k)))) {\n return false;\n }\n\n // Find matching keys for update animation\n const updateKeys = [...new Set([...prevByKey.keys()].filter(key => nextByKey.has(key)))];\n\n // Find enter keys (in next but not in prev)\n const enterKeys = [...nextByKey.keys()].filter(key => !prevByKey.has(key));\n\n // Track morph operations to know when all are complete\n let morphCount = 0;\n const onMorphEnd = () => {\n morphCount -= 1;\n if (morphCount === 0) {\n // Enable animations for next marks after all morphs complete\n nextMarks.forEach(mark => {\n // If mark has any animation states that were disabled, re-enable them\n // This is placeholder logic - actual implementation depends on animation system\n });\n }\n };\n\n // Handle enter animations\n enterKeys.forEach(key => {\n const nextElements = nextByKey.get(key);\n doMorph([], nextElements, morphConfig, onMorphEnd, {});\n morphCount += 1;\n });\n\n // Handle update animations\n updateKeys.forEach(key => {\n const prevElements = prevByKey.get(key);\n const nextElements = nextByKey.get(key);\n\n // Handle different count scenarios\n const divideCount = Math.min(prevElements.length, nextElements.length);\n if (divideCount > 0) {\n const prevDivide = divideElements(prevElements, divideCount);\n const nextDivide = divideElements(nextElements, divideCount);\n\n for (let i = 0; i < divideCount; i++) {\n doMorph(prevDivide[i], nextDivide[i], morphConfig, onMorphEnd, {});\n morphCount += 1;\n }\n }\n });\n\n // Handle exit animations if needed (not in original sample but might be needed)\n // This would be similar to enter but with empty next elements\n\n // If no morphs were started, call onMorphEnd to ensure animations are re-enabled\n if (morphCount === 0) {\n onMorphEnd();\n }\n return true;\n};\n"]}
1
+ {"version":3,"sources":["../src/compile/morph.ts"],"names":[],"mappings":"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","file":"morph.js","sourcesContent":["import { morphPath, multiToOneMorph, oneToMultiMorph } from '@visactor/vrender-animate/custom/morphing';\nimport { isNil, isNumber, isValid, isValidNumber } from '@visactor/vutils';\nimport type { IMark, IMarkGraphic } from '../mark/interface';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { Datum } from '../typings';\n\n/** Morph data for animation */\ninterface MorphData {\n prev: Datum[];\n next: Datum[];\n}\n\n/** Elements to morph */\ninterface MorphElements {\n prev: IMarkGraphic[];\n next: IMarkGraphic[];\n}\n\n/** Type to allow either a static value or a function that returns a value */\ntype MorphFunctionValueType<T> = T | ((params: any, morphData: MorphData, morphElements: MorphElements) => T);\n\n/**\n * Apply a function value or return the static value\n */\nconst invokeFunctionType = <T>(\n value: MorphFunctionValueType<T>,\n params: any,\n morphData: MorphData,\n morphElements: MorphElements\n): T => {\n if (typeof value === 'function') {\n return (value as Function)(params, morphData, morphElements) as T;\n }\n return value;\n};\n\n/**\n * Execute the morphing animation between previous and next elements\n */\nconst doMorph = (\n prev: IMarkGraphic[],\n next: IMarkGraphic[],\n config: IMorphConfig,\n onEnd: () => void,\n parameters: any\n) => {\n const morphData: MorphData = {\n prev: prev.map(element => element.context?.data?.[0]),\n next: next.map(element => element.context?.data?.[0])\n };\n\n const morphElements: MorphElements = {\n prev: prev.slice(),\n next: next.slice()\n };\n\n const animation = config.animation ?? {};\n const easing = animation.easing;\n const delay = invokeFunctionType(animation.delay as any, parameters, morphData, morphElements);\n const duration = invokeFunctionType(animation.duration as any, parameters, morphData, morphElements);\n const oneByOne = invokeFunctionType(animation.oneByOne as any, parameters, morphData, morphElements);\n const splitPath = invokeFunctionType(animation.splitPath as any, parameters, morphData, morphElements);\n\n const individualDelay =\n isValidNumber(oneByOne) && (oneByOne as number) > 0\n ? (index: number) => {\n if (isNumber(oneByOne)) {\n return index * (oneByOne as number);\n } else if (oneByOne === true) {\n return index * duration;\n }\n return 0;\n }\n : undefined;\n\n // if no previous item or just one, still execute morph animation\n if ((prev.length === 1 || prev.length === 0) && next.length === 1) {\n morphPath(prev[0], next[0], { delay, duration, easing, onEnd });\n } else if (prev.length === 1 && next.length > 1) {\n oneToMultiMorph(prev[0], next, { delay, duration, easing, onEnd, individualDelay, splitPath });\n } else if (prev.length > 1 && next.length === 1) {\n multiToOneMorph(prev, next[0], { delay, duration, easing, onEnd, individualDelay, splitPath });\n }\n};\n\n/**\n * Divide elements into specified number of groups\n */\nconst divideElements = (elements: IMarkGraphic[], count: number) => {\n const divideLength = Math.floor(elements.length / count);\n return new Array(count).fill(0).map((_, index) => {\n return elements.slice(divideLength * index, index === count - 1 ? elements.length : divideLength * (index + 1));\n });\n};\n\n/**\n * Add morphKey to each mark's graphics based on mark's morphConfig\n */\nconst appendMorphKeyToGraphics = (mark: IMark) => {\n const config = mark.getMarkConfig();\n\n if (isValid(config.morphElementKey)) {\n const graphics = mark.getGraphics();\n graphics.forEach(graphic => {\n const data = graphic.context?.data?.[0];\n if (data) {\n (graphic.context as any).morphKey = data[config.morphElementKey];\n }\n });\n }\n};\n\n/**\n * Execute morphing animation between two sets of marks\n */\nexport const morph = (prevMarks: IMark[], nextMarks: IMark[], morphConfig: IMorphConfig = {}) => {\n // Get all graphics from previous and next marks\n const prevGraphics: IMarkGraphic[] = [];\n const nextGraphics: IMarkGraphic[] = [];\n\n // Get graphics and append morph keys\n prevMarks.forEach(mark => {\n appendMorphKeyToGraphics(mark);\n prevGraphics.push(...mark.getGraphics());\n });\n\n nextMarks.forEach(mark => {\n appendMorphKeyToGraphics(mark);\n nextGraphics.push(...mark.getGraphics());\n });\n\n // Group graphics by morphKey if available\n const getKey = (graphic: IMarkGraphic) => (graphic.context as any)?.morphKey ?? graphic.context?.key;\n\n // Group graphics by their keys\n const prevByKey = new Map<string, IMarkGraphic[]>();\n const nextByKey = new Map<string, IMarkGraphic[]>();\n\n prevGraphics.forEach(graphic => {\n const key = getKey(graphic);\n if (key) {\n if (!prevByKey.has(key)) {\n prevByKey.set(key, []);\n }\n prevByKey.get(key).push(graphic);\n }\n });\n\n nextGraphics.forEach(graphic => {\n const key = getKey(graphic);\n if (key) {\n if (!nextByKey.has(key)) {\n nextByKey.set(key, []);\n }\n nextByKey.get(key).push(graphic);\n }\n });\n\n // TODO 这里逻辑有问题,无法实现一对多和多对一的morphing效果。所以如果无法执行一对一动画的话,直接不走morphing了\n if (!(prevByKey.size === nextByKey.size && Array.from(prevByKey.keys()).every(k => nextByKey.has(k)))) {\n return false;\n }\n\n // Find matching keys for update animation\n const updateKeys = [...new Set([...prevByKey.keys()].filter(key => nextByKey.has(key)))];\n\n // Find enter keys (in next but not in prev)\n const enterKeys = [...nextByKey.keys()].filter(key => !prevByKey.has(key));\n\n // Track morph operations to know when all are complete\n let morphCount = 0;\n const onMorphEnd = () => {\n morphCount -= 1;\n if (morphCount === 0) {\n // Enable animations for next marks after all morphs complete\n nextMarks.forEach(mark => {\n // If mark has any animation states that were disabled, re-enable them\n // This is placeholder logic - actual implementation depends on animation system\n });\n }\n };\n\n // Handle enter animations\n enterKeys.forEach(key => {\n const nextElements = nextByKey.get(key);\n doMorph([], nextElements, morphConfig, onMorphEnd, {});\n morphCount += 1;\n });\n\n // Handle update animations\n updateKeys.forEach(key => {\n const prevElements = prevByKey.get(key);\n const nextElements = nextByKey.get(key);\n\n // Handle different count scenarios\n const divideCount = Math.min(prevElements.length, nextElements.length);\n if (divideCount > 0) {\n const prevDivide = divideElements(prevElements, divideCount);\n const nextDivide = divideElements(nextElements, divideCount);\n\n for (let i = 0; i < divideCount; i++) {\n doMorph(prevDivide[i], nextDivide[i], morphConfig, onMorphEnd, {});\n morphCount += 1;\n }\n }\n });\n\n // Handle exit animations if needed (not in original sample but might be needed)\n // This would be similar to enter but with empty next elements\n\n // If no morphs were started, call onMorphEnd to ensure animations are re-enabled\n if (morphCount === 0) {\n onMorphEnd();\n }\n return true;\n};\n"]}
@@ -0,0 +1,17 @@
1
+ import type { IApp, IStage, IStageParams } from '@visactor/vrender-core';
2
+ import { type RenderMode } from '../typings/spec/common';
3
+ type VRenderAppEnv = 'browser' | 'node' | 'feishu' | 'tt' | 'wx' | 'lynx' | 'harmony';
4
+ export type ResolveVRenderAppOptions = {
5
+ app?: IApp;
6
+ mode?: RenderMode;
7
+ modeParams?: unknown;
8
+ };
9
+ export type ResolvedVRenderApp = {
10
+ app: IApp;
11
+ releaseAppRef?: () => void;
12
+ };
13
+ export declare const getVRenderAppEnv: (mode?: RenderMode) => VRenderAppEnv;
14
+ export declare const getVRenderAppEnvParams: (mode?: RenderMode, modeParams?: unknown) => unknown;
15
+ export declare const resolveVRenderApp: (appOrOptions?: IApp | ResolveVRenderAppOptions, mode?: RenderMode) => ResolvedVRenderApp;
16
+ export declare const createStageFromApp: (app: IApp, params: Partial<IStageParams>) => IStage;
17
+ export {};
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.createStageFromApp = exports.resolveVRenderApp = exports.getVRenderAppEnvParams = exports.getVRenderAppEnv = void 0;
6
+
7
+ const shared_1 = require("@visactor/vrender/entries/shared"), common_1 = require("../typings/spec/common"), getVRenderAppEnv = mode => {
8
+ switch (mode) {
9
+ case common_1.RenderModeEnum.node:
10
+ case common_1.RenderModeEnum.worker:
11
+ return "node";
12
+
13
+ case common_1.RenderModeEnum.miniApp:
14
+ case common_1.RenderModeEnum["desktop-miniApp"]:
15
+ return "feishu";
16
+
17
+ case common_1.RenderModeEnum.wx:
18
+ return "wx";
19
+
20
+ case common_1.RenderModeEnum.tt:
21
+ return "tt";
22
+
23
+ case common_1.RenderModeEnum.harmony:
24
+ return "harmony";
25
+
26
+ case common_1.RenderModeEnum.lynx:
27
+ return "lynx";
28
+
29
+ default:
30
+ return "browser";
31
+ }
32
+ };
33
+
34
+ exports.getVRenderAppEnv = getVRenderAppEnv;
35
+
36
+ const isObjectLike = value => null != value && ("object" == typeof value || "function" == typeof value), APP_ENV_PARAM_KEYS_BY_ENV = {
37
+ lynx: [ "pixelRatio", "lynx", "runtime", "canvasFactory" ],
38
+ harmony: [ "pixelRatio", "harmony", "runtime", "canvasFactory" ]
39
+ }, getVRenderAppEnvParams = (mode, modeParams) => {
40
+ const env = (0, exports.getVRenderAppEnv)(mode), appEnvParamKeys = APP_ENV_PARAM_KEYS_BY_ENV[env];
41
+ if (!appEnvParamKeys) return modeParams;
42
+ if (null == (value = modeParams) || "object" != typeof value && "function" != typeof value) return;
43
+ var value;
44
+ const envParams = {};
45
+ return appEnvParamKeys.forEach((key => {
46
+ void 0 !== modeParams[key] && (envParams[key] = modeParams[key]);
47
+ })), Object.keys(envParams).length ? envParams : void 0;
48
+ };
49
+
50
+ exports.getVRenderAppEnvParams = getVRenderAppEnvParams;
51
+
52
+ const isIApp = value => !!value && "function" == typeof value.createStage, normalizeResolveOptions = (appOrOptions, mode) => {
53
+ return !appOrOptions || (value = appOrOptions) && "function" == typeof value.createStage ? {
54
+ app: appOrOptions,
55
+ mode: mode
56
+ } : appOrOptions;
57
+ var value;
58
+ }, acquireDefaultVRenderApp = (env, envParams) => {
59
+ const handle = (0, shared_1.acquireSharedVRenderApp)(Object.assign({
60
+ env: env
61
+ }, void 0 === envParams ? {} : {
62
+ envParams: envParams
63
+ }));
64
+ return {
65
+ app: handle.app,
66
+ releaseAppRef: () => handle.release()
67
+ };
68
+ }, resolveVRenderApp = (appOrOptions, mode) => {
69
+ const options = normalizeResolveOptions(appOrOptions, mode);
70
+ if (options.app) return {
71
+ app: options.app
72
+ };
73
+ const env = (0, exports.getVRenderAppEnv)(options.mode), envParams = (0, exports.getVRenderAppEnvParams)(options.mode, options.modeParams);
74
+ return acquireDefaultVRenderApp(env, envParams);
75
+ };
76
+
77
+ exports.resolveVRenderApp = resolveVRenderApp;
78
+
79
+ const createStageFromApp = (app, params) => app.createStage(params);
80
+
81
+ exports.createStageFromApp = createStageFromApp;
82
+ //# sourceMappingURL=stage-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/compile/stage-app.ts"],"names":[],"mappings":"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","file":"stage-app.js","sourcesContent":["import { acquireSharedVRenderApp } from '@visactor/vrender/entries/shared';\nimport type { IApp, IStage, IStageParams } from '@visactor/vrender-core';\nimport { RenderModeEnum, type RenderMode } from '../typings/spec/common';\n\ntype VRenderAppEnv = 'browser' | 'node' | 'feishu' | 'tt' | 'wx' | 'lynx' | 'harmony';\n\nexport type ResolveVRenderAppOptions = {\n app?: IApp;\n mode?: RenderMode;\n modeParams?: unknown;\n};\n\nexport type ResolvedVRenderApp = {\n app: IApp;\n releaseAppRef?: () => void;\n};\n\nexport const getVRenderAppEnv = (mode?: RenderMode): VRenderAppEnv => {\n switch (mode) {\n case RenderModeEnum.node:\n case RenderModeEnum.worker:\n return 'node';\n case RenderModeEnum.miniApp:\n case RenderModeEnum['desktop-miniApp']:\n return 'feishu';\n case RenderModeEnum.wx:\n return 'wx';\n case RenderModeEnum.tt:\n return 'tt';\n case RenderModeEnum.harmony:\n return 'harmony';\n case RenderModeEnum.lynx:\n return 'lynx';\n default:\n return 'browser';\n }\n};\n\nconst isObjectLike = (value: unknown): value is Record<string, unknown> =>\n value != null && (typeof value === 'object' || typeof value === 'function');\n\nconst APP_ENV_PARAM_KEYS_BY_ENV = {\n lynx: ['pixelRatio', 'lynx', 'runtime', 'canvasFactory'],\n harmony: ['pixelRatio', 'harmony', 'runtime', 'canvasFactory']\n} as const;\n\n/**\n * App envParams carry only app-scope environment capabilities. Concrete canvas\n * view binding, including Lynx domref/canvasIdLists/freeCanvasIdx, belongs to\n * app.createStage({ canvas, width, height, dpr }).\n */\nexport const getVRenderAppEnvParams = (mode?: RenderMode, modeParams?: unknown): unknown => {\n const env = getVRenderAppEnv(mode);\n const appEnvParamKeys = APP_ENV_PARAM_KEYS_BY_ENV[env as keyof typeof APP_ENV_PARAM_KEYS_BY_ENV];\n if (!appEnvParamKeys) {\n return modeParams;\n }\n if (!isObjectLike(modeParams)) {\n return undefined;\n }\n\n const envParams: Record<string, unknown> = {};\n appEnvParamKeys.forEach(key => {\n if (modeParams[key] !== undefined) {\n envParams[key] = modeParams[key];\n }\n });\n\n return Object.keys(envParams).length ? envParams : undefined;\n};\n\nconst isIApp = (value: unknown): value is IApp => !!value && typeof (value as IApp).createStage === 'function';\n\nconst normalizeResolveOptions = (\n appOrOptions?: IApp | ResolveVRenderAppOptions,\n mode?: RenderMode\n): ResolveVRenderAppOptions => {\n if (!appOrOptions || isIApp(appOrOptions)) {\n return {\n app: appOrOptions as IApp | undefined,\n mode\n };\n }\n\n return appOrOptions;\n};\n\nconst acquireDefaultVRenderApp = (env: VRenderAppEnv, envParams?: unknown): ResolvedVRenderApp => {\n const handle = acquireSharedVRenderApp({\n env,\n ...(envParams === undefined ? {} : { envParams })\n });\n\n return {\n app: handle.app,\n releaseAppRef: () => handle.release()\n };\n};\n\nexport const resolveVRenderApp = (\n appOrOptions?: IApp | ResolveVRenderAppOptions,\n mode?: RenderMode\n): ResolvedVRenderApp => {\n const options = normalizeResolveOptions(appOrOptions, mode);\n\n if (options.app) {\n return { app: options.app };\n }\n\n const env = getVRenderAppEnv(options.mode);\n const envParams = getVRenderAppEnvParams(options.mode, options.modeParams);\n return acquireDefaultVRenderApp(env, envParams);\n};\n\nexport const createStageFromApp = (app: IApp, params: Partial<IStageParams>): IStage => app.createStage(params);\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { IGroup } from '@visactor/vrender-core';
2
- import type { ITickDataOpt } from '@visactor/vrender-components';
2
+ import type { ITickDataOpt } from '@visactor/vrender-components/axis/type';
3
3
  import type { IBaseScale } from '@visactor/vscale';
4
4
  import type { IGraphic } from '@visactor/vrender-core';
5
5
  import type { IOrientType, IPolarOrientType, StringOrNumber, CoordinateType } from '../../typings';
@@ -82,13 +82,8 @@ export declare abstract class AxisComponent<T extends ICommonAxisSpec & Record<s
82
82
  protected computeData(updateType?: 'domain' | 'range' | 'force'): void;
83
83
  protected _updateTickDataMarks(m: ICompilableMark): void;
84
84
  protected initScales(): void;
85
- _compareSpec(spec: T, prevSpec: T): {
86
- change: boolean;
87
- reMake: boolean;
88
- reRender: boolean;
89
- reSize: boolean;
90
- reCompile: boolean;
91
- };
85
+ _compareSpec(spec: T, prevSpec: T): import("../..").IUpdateSpecResult;
86
+ private _isComponentOnlySpecChange;
92
87
  protected _getAxisAttributes(): any;
93
88
  protected _getGridAttributes(): {
94
89
  alternateColor: any;
@@ -14,7 +14,19 @@ Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.registerAxis = exports.AxisComponent = void 0;
16
16
 
17
- const vscale_1 = require("@visactor/vscale"), base_component_1 = require("../base/base-component"), data_1 = require("../../compile/data"), interface_1 = require("./interface"), interface_2 = require("../interface"), model_1 = require("../../util/model"), vutils_extension_1 = require("@visactor/vutils-extension"), event_1 = require("../../constant/event"), layout_1 = require("../../constant/layout"), utils_1 = require("../../animation/utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("./util"), style_1 = require("../../util/style"), vdataset_1 = require("@visactor/vdataset"), component_1 = require("../../mark/component"), factory_1 = require("../../core/factory"), vrender_components_1 = require("@visactor/vrender-components"), scale_1 = require("../../data/parser/scale"), register_1 = require("../../data/register"), util_2 = require("../util"), transform_1 = require("../../util/spec/transform");
17
+ const vscale_1 = require("@visactor/vscale"), base_component_1 = require("../base/base-component"), data_1 = require("../../compile/data"), interface_1 = require("./interface"), interface_2 = require("../interface"), model_1 = require("../../util/model"), vutils_extension_1 = require("@visactor/vutils-extension"), event_1 = require("../../constant/event"), layout_1 = require("../../constant/layout"), utils_1 = require("../../animation/utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("./util"), style_1 = require("../../util/style"), vdataset_1 = require("@visactor/vdataset"), component_1 = require("../../mark/component"), factory_1 = require("../../core/factory"), constant_1 = require("@visactor/vrender-components/axis/constant"), scale_1 = require("../../data/parser/scale"), register_1 = require("../../data/register"), util_2 = require("../util"), transform_1 = require("../../util/spec/transform"), AXIS_COMPONENT_ONLY_CHANGE_KEYS = {
18
+ grid: !0,
19
+ subGrid: !0,
20
+ tick: !0,
21
+ subTick: !0,
22
+ label: !0,
23
+ domainLine: !0,
24
+ title: !0,
25
+ maxWidth: !0,
26
+ minWidth: !0,
27
+ maxHeight: !0,
28
+ minHeight: !0
29
+ };
18
30
 
19
31
  class AxisComponent extends base_component_1.BaseComponent {
20
32
  getOrient() {
@@ -264,12 +276,20 @@ class AxisComponent extends base_component_1.BaseComponent {
264
276
  }
265
277
  }
266
278
  _compareSpec(spec, prevSpec) {
279
+ var _a, _b;
267
280
  const result = super._compareSpec(spec, prevSpec);
268
- return result.reMake ? result : (result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) || (null == prevSpec ? void 0 : prevSpec.visible) !== (null == spec ? void 0 : spec.visible) ? (result.reMake = !0,
269
- result) : (result.reMake = [ "grid", "subGrid", "tick", "subTick", "label", "domainLine", "title" ].some((k => {
270
- var _a, _b;
271
- return (null === (_a = null == prevSpec ? void 0 : prevSpec[k]) || void 0 === _a ? void 0 : _a.visible) !== (null === (_b = null == spec ? void 0 : spec[k]) || void 0 === _b ? void 0 : _b.visible);
272
- })), result));
281
+ if (result.reMake) return result;
282
+ const specChanged = !(0, vutils_1.isEqual)(prevSpec, spec);
283
+ return result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) || (null == prevSpec ? void 0 : prevSpec.visible) !== (null == spec ? void 0 : spec.visible) ? (result.reMake = !0,
284
+ result) : !0 !== (null === (_a = null == spec ? void 0 : spec.grid) || void 0 === _a ? void 0 : _a.visible) || !0 === (null === (_b = null == prevSpec ? void 0 : prevSpec.grid) || void 0 === _b ? void 0 : _b.visible) || this._gridMark ? (specChanged && !result.reMake && this._isComponentOnlySpecChange(spec, prevSpec) && (result.effects = Object.assign(Object.assign({}, result.effects), {
285
+ component: !0,
286
+ layout: !0,
287
+ render: !0
288
+ })), result) : (result.reMake = !0, result);
289
+ }
290
+ _isComponentOnlySpecChange(spec, prevSpec) {
291
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every((key => (0,
292
+ vutils_1.isEqual)(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || AXIS_COMPONENT_ONLY_CHANGE_KEYS[key]));
273
293
  }
274
294
  _getAxisAttributes() {
275
295
  const spec = this._spec, axisAttrs = {
@@ -413,7 +433,7 @@ class AxisComponent extends base_component_1.BaseComponent {
413
433
  }
414
434
  getDatum(childGraphic) {
415
435
  var _a;
416
- return childGraphic && childGraphic.name === vrender_components_1.AXIS_ELEMENT_NAME.label ? childGraphic.data : this._axisMark ? null === (_a = this._axisMark.getComponent()) || void 0 === _a ? void 0 : _a.attribute.items : void 0;
436
+ return childGraphic && childGraphic.name === constant_1.AXIS_ELEMENT_NAME.label ? childGraphic.data : this._axisMark ? null === (_a = this._axisMark.getComponent()) || void 0 === _a ? void 0 : _a.attribute.items : void 0;
417
437
  }
418
438
  scaleRangeFactor(_, slience, clear) {
419
439
  return this._onTickDataChange(this.getTickData()), this.getScale().rangeFactor(_, slience, clear);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":"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","file":"base-axis.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ITickDataOpt, AxisItem } from '@visactor/vrender-components';\nimport type { IBandLikeScale, IBaseScale, IContinuousScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { IGraphic } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type {\n IOrientType,\n IPolarOrientType,\n Datum,\n StringOrNumber,\n IGroup as ISeriesGroup,\n CoordinateType\n} from '../../typings';\nimport { BaseComponent } from '../base/base-component';\nimport { CompilableData } from '../../compile/data';\nimport { AxisEnum, GridEnum, type IAxis, type ICommonAxisSpec, type ITick } from './interface';\nimport { ComponentTypeEnum, type IComponentOption } from '../interface';\nimport { eachSeries, getSeries } from '../../util/model';\n// eslint-disable-next-line no-duplicate-imports\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeries } from '../../series/interface';\nimport { ChartEvent } from '../../constant/event';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { animationConfig } from '../../animation/utils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n degreeToRadian,\n pickWithout,\n isEqual,\n array,\n get,\n isArray,\n isFunction,\n isNil,\n isValid,\n maxInArray\n} from '@visactor/vutils';\nimport { DEFAULT_TITLE_STYLE, transformAxisLineStyle } from './util';\nimport { transformAxisLabelStateStyle, transformStateStyle, transformToGraphic } from '../../util/style';\nimport type { ITransformOptions } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport { AXIS_ELEMENT_NAME, GroupTransition } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { GroupFadeOut, GroupFadeIn } from '@visactor/vrender-animate';\nimport { scaleParser } from '../../data/parser/scale';\nimport { registerDataSetInstanceParser } from '../../data/register';\nimport { getFormatFunction } from '../util';\nimport type { IComponentMark } from '../../mark/interface/mark';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { ICompilableData } from './../../compile/data/interface';\nimport { transformFunctionAttribute } from '../../util/spec/transform';\n\nexport abstract class AxisComponent<T extends ICommonAxisSpec & Record<string, any> = any> // FIXME: 补充公共类型,去掉 Record<string, any>\n extends BaseComponent<T>\n implements IAxis\n{\n static specKey = 'axes';\n specKey = 'axes';\n\n protected _orient: IPolarOrientType | IOrientType;\n getOrient() {\n return this._orient;\n }\n\n protected _scale!: IBaseScale;\n getScale() {\n return this._scale;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected _tickData: CompilableData[] = [];\n getTickData(index = 0) {\n return this._tickData[index];\n }\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionIndex?: number[];\n\n /**\n * if axis will be shown\n */\n protected _visible: boolean = true;\n getVisible() {\n return this._visible;\n }\n get visible() {\n return this._visible;\n }\n\n protected _specVisible: boolean = true;\n protected _hideWhenEmpty: boolean = false;\n\n /** 轴是否产生反转的真实值,在横向图表的竖轴上可能和用户在 spec 上配的值相反 */\n protected _inverse: boolean;\n getInverse() {\n return this._inverse;\n }\n\n protected _tick: ITick | undefined = undefined;\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n protected abstract axisHelper(): any;\n protected abstract getSeriesStatisticsField(s: ISeries): string[];\n protected abstract updateSeriesScale(): void;\n protected abstract collectSeriesField(depth: number, series: ISeries): string | string[];\n abstract transformScaleDomain(): void;\n abstract updateScaleRange(): boolean;\n protected abstract getDefaultInteractive(): boolean;\n\n protected _dataFieldText: string;\n protected _axisMark: IComponentMark;\n\n protected _gridMark: IComponentMark;\n\n protected _coordinateType: CoordinateType;\n getCoordinateType() {\n return this._coordinateType;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._specVisible = spec.visible ?? true;\n this._hideWhenEmpty = spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n this._coordinateType = 'none';\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._specVisible = this._spec.visible ?? true;\n this._hideWhenEmpty = this._spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n\n if (this._scale) {\n this._refreshVisibilityByData();\n }\n }\n\n getVRenderComponents() {\n return [this._axisMark?.getProduct(), this._gridMark?.getProduct()].filter(isValid);\n }\n\n created() {\n super.created();\n //series and regions\n this.setSeriesAndRegionsFromSpec();\n // event\n this.initEvent();\n // scales\n this.initScales();\n this.updateSeriesScale();\n this._refreshVisibilityByData();\n // data\n this._shouldComputeTickData() && this._initData();\n\n if (this._specVisible) {\n // 创建语法元素\n const axisMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}` },\n {\n componentType: this.getOrient() === 'angle' ? AxisEnum.circleAxis : AxisEnum.lineAxis,\n mode: this._spec.mode\n },\n {\n skipTheme: true // skip theme of vgrammar to avoid merge\n }\n );\n this._updateTickDataMarks(axisMark);\n this._axisMark = axisMark as IComponentMark;\n axisMark.setMarkConfig({ zIndex: this.layoutZIndex });\n if (isValid(this._spec.id)) {\n axisMark.setUserId(this._spec.id);\n }\n axisMark.setMarkConfig({ interactive: this._spec.interactive ?? this.getDefaultInteractive() });\n this._marks.addMark(axisMark);\n\n if (this._spec.grid?.visible) {\n const gridMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}-grid` },\n {\n componentType: this.getOrient() === 'angle' ? GridEnum.circleAxisGrid : GridEnum.lineAxisGrid,\n mode: this._spec.mode\n },\n {\n skipTheme: true\n }\n );\n\n this._updateTickDataMarks(gridMark);\n gridMark.setMarkConfig({\n zIndex: this._spec.grid?.style?.zIndex ?? this._spec.grid?.zIndex ?? LayoutZIndex.Axis_Grid,\n interactive: false // 轴网格线关闭交互\n });\n this._marks.addMark(gridMark);\n this._gridMark = gridMark as IComponentMark;\n }\n\n this._syncComponentVisibility();\n\n // Tip: 支持 spec.animationAppear.axis,并且坐标轴默认关闭动画\n if (\n this._option.globalInstance?.isAnimationEnable() &&\n get(this._option.getChart().getSpec(), 'animation') !== false &&\n this._spec.animation === true\n ) {\n const axisAnimateConfig = animationConfig(Factory.getAnimationInKey('axis')?.(), {\n appear:\n this._spec.animationAppear ??\n get(this._option.getChart().getSpec(), 'animationAppear.axis') ??\n get(this._option.getChart().getSpec(), 'animationAppear'),\n disappear:\n this._spec.animationDisappear ??\n get(this._option.getChart().getSpec(), 'animationDisappear.axis') ??\n get(this._option.getChart().getSpec(), 'animationDisappear'),\n enter:\n this._spec.animationEnter ??\n get(this._option.getChart().getSpec(), 'animationEnter.axis') ??\n get(this._option.getChart().getSpec(), 'animationEnter'),\n exit:\n this._spec.animationExit ??\n get(this._option.getChart().getSpec(), 'animationExit.axis') ??\n get(this._option.getChart().getSpec(), 'animationExit'),\n update:\n this._spec.animationUpdate ??\n get(this._option.getChart().getSpec(), 'animationUpdate.axis') ??\n get(this._option.getChart().getSpec(), 'animationUpdate')\n });\n // 因为坐标轴的更新动画中处理了 enter,所以需要将 enter 的参数传入\n if (axisAnimateConfig.enter) {\n axisAnimateConfig.update[0].customParameters = {\n enter: axisAnimateConfig.enter[0]\n };\n }\n this._marks.forEach(m => m.setAnimationConfig(axisAnimateConfig));\n }\n }\n }\n\n protected _shouldComputeTickData() {\n // 当轴被展示、或者强制要求计算 data 时再计算 data\n return this._specVisible && (this.getVisible() || this._spec.forceInitTick || this._hideWhenEmpty);\n }\n\n protected _onTickDataChange = (tickData?: ICompilableData) => {\n this._forceLayout();\n tickData?.updateData();\n };\n\n // data\n protected _initData() {\n const tickData = this._initTickDataSet(this._tickTransformOption());\n const tickDataCompile = new CompilableData(this._option, tickData);\n this._tickData = [tickDataCompile];\n tickData.target.addListener('change', () => {\n this._onTickDataChange(tickDataCompile);\n });\n }\n\n protected collectData(depth: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n this._regions &&\n eachSeries(\n this._regions,\n s => {\n let field = this.collectSeriesField(depth, s);\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\n if (field) {\n const viewData = s.getViewData();\n if (rawData) {\n field.forEach(f => {\n data.push(\n s.getRawDataStatisticsByField(f, !!isContinuous(this._scale.type)) as {\n min: number;\n max: number;\n values: any[];\n }\n );\n });\n } else if (viewData && viewData.latestData && viewData.latestData.length) {\n const seriesData = s.getViewDataStatistics?.();\n const userSetBreaks =\n this.type === ComponentTypeEnum.cartesianLinearAxis && this._spec.breaks && this._spec.breaks.length;\n\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n if (userSetBreaks) {\n data.push({\n ...seriesData.latestData[f],\n values: viewData.latestData.map((obj: Datum) => obj[f])\n });\n } else {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected isSeriesDataEnable() {\n let enable = true;\n eachSeries(\n this._regions,\n s => {\n if (isArray(s.getViewDataStatistics()?.latestData)) {\n enable = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return enable;\n }\n\n protected setSeriesAndRegionsFromSpec() {\n const { seriesId, seriesIndex, regionId, regionIndex } = this._spec;\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId as string[], this._regionIndex);\n // _regions 被更新了,layoutBindRegionID 也要更新\n this.layout.layoutBindRegionID = this._regions.map(x => x.id);\n }\n\n getBindSeriesFilter() {\n return {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n };\n }\n\n protected initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n const viewStatistics = getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n })\n .map(s => s.getViewDataStatistics())\n .filter(v => !!v);\n\n if (viewStatistics.length > 1) {\n this._option.dataSet.multipleDataViewAddListener(viewStatistics, 'change', () => {\n this.updateScaleDomain();\n });\n } else if (viewStatistics.length === 1) {\n viewStatistics[0].target.addListener('change', () => {\n this.updateScaleDomain();\n });\n }\n\n eachSeries(\n this._regions,\n s => {\n s.event.on(ChartEvent.rawDataUpdate, { filter: ({ model }) => model?.id === s.id }, () => {\n // 只清除,不更新,在需要时,更新一次。避免多系列下多次更新\n this._clearRawDomain();\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected updateScaleDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n protected _hasCollectedSeriesData() {\n return this.collectData(0).length > 0;\n }\n\n protected _refreshVisibilityByData() {\n const nextVisible = this._specVisible && (!this._hideWhenEmpty || this._hasCollectedSeriesData());\n const changed = this._visible !== nextVisible;\n this._visible = nextVisible;\n\n if (this._axisMark || this._gridMark) {\n this._syncComponentVisibility();\n }\n\n if (changed) {\n this._forceLayout();\n }\n\n return changed;\n }\n\n protected _syncComponentVisibility() {\n this._axisMark?.setVisible(this._visible);\n this._gridMark?.setVisible(this._visible && this._spec.grid?.visible !== false);\n\n (this._axisMark?.getComponent?.() as IGroup)?.setAttributes?.({ visibleAll: this._visible });\n (this._gridMark?.getComponent?.() as IGroup)?.setAttributes?.({\n visibleAll: this._visible && this._spec.grid?.visible !== false\n });\n }\n\n protected _clearRawDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n onLayoutEnd(): void {\n const changed = this.updateScaleRange();\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n\n super.onLayoutEnd();\n }\n\n protected computeData(updateType?: 'domain' | 'range' | 'force'): void {\n // 对应问题#3287: 轴隐藏(tickData为[])时, dataZoom/scrollBar无法触发视图更新\n // 解决方式: dataZoom/scrollBar更新时, 使用force, 此时即使没有tickData也要触发视图更新\n // ps:\n // 1. 其他逻辑没有使用force更新, 所以不会带来额外影响\n // 2. force更新时, 如果有tickData仍然走老逻辑, 这里只考虑force && 无tickData的情况\n if (updateType === 'force' && (!this._tickData || !this._tickData.length)) {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.reRunAllTransform();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n } else if (\n this._tickData &&\n this._tickData.length &&\n (updateType === 'force' || !isEqual(this._scale.range(), [0, 1]))\n ) {\n this._tickData.forEach(tickData => {\n tickData.getDataView().reRunAllTransform({\n skipEqual: true\n });\n });\n }\n }\n\n protected _updateTickDataMarks(m: ICompilableMark) {\n if (this._tickData) {\n this._tickData.forEach(d => {\n d.addRelatedMark(m);\n });\n }\n }\n\n protected initScales() {\n this._scales = [this._scale];\n const groups: ISeriesGroup[] = [];\n eachSeries(\n this._regions,\n s => {\n const g = s.getGroups();\n g && groups.push(g);\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n if (groups.length !== 0) {\n const depth = maxInArray(groups.map(g => g.fields.length));\n for (let i = 1; i < depth; i++) {\n const scale = this._scale.clone();\n this._scales.push(scale);\n }\n }\n // this.updateScaleDomain();\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n\n result.reRender = true;\n /**\n * 存在轴同步相关配置的时候,暂时通过`reMake`触发更新\n */\n if (prevSpec?.type !== spec?.type || prevSpec?.visible !== spec?.visible) {\n result.reMake = true;\n return result;\n }\n\n result.reMake = ['grid', 'subGrid', 'tick', 'subTick', 'label', 'domainLine', 'title'].some(k => {\n return prevSpec?.[k]?.visible !== spec?.[k]?.visible;\n });\n\n return result;\n }\n\n protected _getAxisAttributes() {\n const spec = this._spec;\n const axisAttrs: any = {\n orient: this.getOrient(),\n select: this._option.disableTriggerEvent === true ? false : spec.select,\n hover: this._option.disableTriggerEvent === true ? false : spec.hover\n };\n\n // 属性均需要显示开启\n if (spec.domainLine && spec.domainLine.visible) {\n axisAttrs.line = transformAxisLineStyle(spec.domainLine);\n } else {\n axisAttrs.line = { visible: false };\n }\n\n if (spec.label && spec.label.visible) {\n const labelSpec = pickWithout(spec.label, ['style', 'formatMethod', 'state']);\n axisAttrs.label = labelSpec;\n if (spec.label.style) {\n axisAttrs.label.style = isFunction(spec.label.style)\n ? (datum: Datum, index: number, data: Datum[], layer?: number) => {\n const style = spec.label.style(datum.rawValue, index, datum, data, layer);\n return transformToGraphic(mergeSpec({}, this._theme.label?.style, style));\n }\n : transformToGraphic(spec.label.style);\n }\n if (spec.label.formatMethod || spec.label.formatter) {\n axisAttrs.label.formatMethod = this._getLabelFormatMethod();\n }\n if (spec.label.state) {\n axisAttrs.label.state = transformAxisLabelStateStyle(spec.label.state);\n }\n if (isFunction(spec.label.dataFilter)) {\n axisAttrs.label.dataFilter = (data: AxisItem[], layer: number) =>\n spec.label.dataFilter(data, layer, { vchart: this._option.globalInstance });\n }\n } else {\n axisAttrs.label = {\n visible: false\n };\n }\n\n if (spec.tick && spec.tick.visible) {\n axisAttrs.tick = {\n visible: spec.tick.visible,\n length: spec.tick.tickSize,\n inside: spec.tick.inside,\n alignWithLabel: spec.tick.alignWithLabel,\n dataFilter: isFunction(spec.tick.dataFilter)\n ? (data: AxisItem[]) => spec.tick.dataFilter(data, { vchart: this._option.globalInstance })\n : undefined\n };\n if (spec.tick.style) {\n axisAttrs.tick.style = isFunction(spec.tick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.tick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.tick?.style, style));\n }\n : transformToGraphic(spec.tick.style);\n }\n if (spec.tick.state) {\n axisAttrs.tick.state = transformStateStyle(spec.tick.state);\n }\n } else {\n axisAttrs.tick = {\n visible: false\n };\n }\n\n if (spec.subTick && spec.subTick.visible) {\n axisAttrs.subTick = {\n visible: spec.subTick.visible,\n length: spec.subTick.tickSize,\n inside: spec.subTick.inside,\n count: spec.subTick.tickCount\n };\n if (spec.subTick.style) {\n axisAttrs.subTick.style = isFunction(spec.subTick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.subTick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.subTick?.style, style));\n }\n : transformToGraphic(spec.subTick.style);\n }\n if (spec.subTick.state) {\n axisAttrs.subTick.state = transformStateStyle(spec.subTick.state);\n }\n } else {\n axisAttrs.subTick = {\n visible: false\n };\n }\n\n if (spec.title && spec.title.visible) {\n const {\n autoRotate,\n angle,\n style: titleStyle = {},\n background: titleBackgroundSpec,\n state: titleState,\n shape: titleShapeSpec,\n ...restTitleAttrs\n } = spec.title;\n let titleAngle = angle;\n let titleTextStyle;\n if (spec.orient === 'left' || spec.orient === 'right') {\n // 处理纵轴的标题样式\n if (autoRotate && isNil(titleAngle)) {\n titleAngle = spec.orient === 'left' ? -90 : 90;\n titleTextStyle = (DEFAULT_TITLE_STYLE as any)[spec.orient];\n }\n }\n\n axisAttrs.title = {\n ...restTitleAttrs,\n autoRotate: false, // 默认不对外提供该配置\n angle: titleAngle ? degreeToRadian(titleAngle) : null,\n textStyle: mergeSpec({}, titleTextStyle, transformToGraphic(titleStyle)),\n pickable: titleStyle.pickable !== false,\n childrenPickable: titleStyle.pickable !== false,\n state: {}\n };\n\n if (titleShapeSpec && titleShapeSpec.visible) {\n axisAttrs.title.shape = {\n ...titleShapeSpec,\n style: transformToGraphic(titleShapeSpec.style)\n };\n if (titleShapeSpec.state) {\n axisAttrs.title.state.shape = transformStateStyle(titleShapeSpec.state);\n }\n } else {\n axisAttrs.title.shape = { visible: false };\n }\n\n if (titleBackgroundSpec && titleBackgroundSpec.visible) {\n axisAttrs.title.background = {\n ...titleBackgroundSpec,\n style: transformToGraphic(titleBackgroundSpec.style)\n };\n if (titleBackgroundSpec.state) {\n axisAttrs.title.state.background = transformStateStyle(titleBackgroundSpec.state);\n }\n } else {\n axisAttrs.title.background = { visible: false };\n }\n\n if (titleState) {\n axisAttrs.title.state.text = transformStateStyle(titleState);\n }\n } else {\n axisAttrs.title = {\n visible: false\n };\n }\n\n if (spec.background && spec.background.visible) {\n axisAttrs.panel = {\n visible: true\n };\n if (spec.background.style) {\n axisAttrs.panel.style = transformToGraphic(spec.background.style);\n }\n if (spec.background.state) {\n axisAttrs.panel.state = transformStateStyle(spec.background.state);\n }\n } else {\n axisAttrs.panel = {\n visible: false\n };\n }\n\n return axisAttrs;\n }\n\n protected _getGridAttributes() {\n const spec = this._spec;\n return {\n alternateColor: transformFunctionAttribute(spec.grid.alternateColor),\n alignWithLabel: spec.grid.alignWithLabel,\n style: isFunction(spec.grid.style)\n ? (datum: Datum, index: number) => {\n const style = spec.grid.style(datum.datum?.rawValue, index, datum.datum);\n return transformToGraphic(mergeSpec({}, this._theme.grid?.style, style));\n }\n : transformToGraphic(spec.grid.style),\n subGrid:\n spec.subGrid.visible === false\n ? { visible: false }\n : {\n type: 'line',\n visible: spec.subGrid.visible,\n alternateColor: transformFunctionAttribute(spec.subGrid.alternateColor),\n style: transformToGraphic(spec.subGrid.style)\n }\n };\n }\n\n protected _getLabelFormatMethod() {\n const { formatMethod, formatter } = this._spec.label;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (value: any, datum: any, index: number) => formatFunc(datum.rawValue, datum, formatter) : null;\n }\n\n protected abstract registerTicksTransform(): string;\n\n protected _initTickDataSet<T extends ITickDataOpt>(options: T, index: number = 0) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n const name = this.registerTicksTransform();\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks_${index}` })\n .parse(this._scales[index], {\n type: 'scale'\n })\n .transform(\n {\n type: name,\n options\n },\n false\n );\n return tickData;\n }\n\n protected _tickTransformOption(): ITickDataOpt {\n const tick = this._tick || {};\n const label = this._spec.label || {};\n const { tickCount, forceTickCount, tickStep, tickMode } = tick;\n const { style: labelStyle, formatMethod: labelFormatter, minGap: labelGap } = label;\n return {\n sampling: this._spec.sampling !== false,\n tickCount,\n forceTickCount,\n tickStep,\n tickMode,\n axisOrientType: this._orient,\n coordinateType: this._coordinateType,\n\n labelStyle,\n labelFormatter,\n labelGap\n };\n }\n\n addTransformToTickData(options: ITransformOptions, execute?: boolean) {\n this._tickData.forEach(tickData => {\n tickData?.getDataView()?.transform(options, execute);\n });\n }\n\n dataToPosition(values: any[]): number {\n return this._scale.scale(values);\n }\n\n getDatum(childGraphic?: IGraphic) {\n if (childGraphic && childGraphic.name === AXIS_ELEMENT_NAME.label) {\n return childGraphic.data;\n }\n\n if (this._axisMark) {\n return (this._axisMark.getComponent() as any)?.attribute.items;\n }\n }\n\n scaleRangeFactor(_?: [number, number], slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactor(_, slience, clear);\n }\n\n scaleRangeFactorEnd(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorEnd(_, slience);\n }\n\n scaleRangeFactorStart(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorStart(_, slience);\n }\n}\n\nexport const registerAxis = () => {\n registerComponentMark();\n Factory.registerAnimation('axis', () => ({\n appear: {\n type: 'fadeIn'\n },\n enter: {\n type: 'fadeIn'\n },\n update: {\n type: 'update'\n },\n exit: {\n type: 'fadeOut'\n // custom: GroupFadeOut\n }\n }));\n};\n"]}
1
+ {"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":"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","file":"base-axis.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ITickDataOpt, AxisItem } from '@visactor/vrender-components/axis/type';\nimport type { IBandLikeScale, IBaseScale, IContinuousScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { IGraphic } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type {\n IOrientType,\n IPolarOrientType,\n Datum,\n StringOrNumber,\n IGroup as ISeriesGroup,\n CoordinateType\n} from '../../typings';\nimport { BaseComponent } from '../base/base-component';\nimport { CompilableData } from '../../compile/data';\nimport { AxisEnum, GridEnum, type IAxis, type ICommonAxisSpec, type ITick } from './interface';\nimport { ComponentTypeEnum, type IComponentOption } from '../interface';\nimport { eachSeries, getSeries } from '../../util/model';\n// eslint-disable-next-line no-duplicate-imports\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeries } from '../../series/interface';\nimport { ChartEvent } from '../../constant/event';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { animationConfig } from '../../animation/utils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n degreeToRadian,\n pickWithout,\n isEqual,\n array,\n get,\n isArray,\n isFunction,\n isNil,\n isValid,\n maxInArray\n} from '@visactor/vutils';\nimport { DEFAULT_TITLE_STYLE, transformAxisLineStyle } from './util';\nimport { transformAxisLabelStateStyle, transformStateStyle, transformToGraphic } from '../../util/style';\nimport type { ITransformOptions } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport { GroupTransition } from '@visactor/vrender-components/axis/animate/group-transition';\nimport { AXIS_ELEMENT_NAME } from '@visactor/vrender-components/axis/constant';\n// eslint-disable-next-line no-duplicate-imports\nimport { GroupFadeOut, GroupFadeIn } from '@visactor/vrender-animate/custom/groupFade';\nimport { scaleParser } from '../../data/parser/scale';\nimport { registerDataSetInstanceParser } from '../../data/register';\nimport { getFormatFunction } from '../util';\nimport type { IComponentMark } from '../../mark/interface/mark';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { ICompilableData } from './../../compile/data/interface';\nimport { transformFunctionAttribute } from '../../util/spec/transform';\n\nconst AXIS_COMPONENT_ONLY_CHANGE_KEYS: Record<string, true> = {\n grid: true,\n subGrid: true,\n tick: true,\n subTick: true,\n label: true,\n domainLine: true,\n title: true,\n maxWidth: true,\n minWidth: true,\n maxHeight: true,\n minHeight: true\n};\n\nexport abstract class AxisComponent<T extends ICommonAxisSpec & Record<string, any> = any> // FIXME: 补充公共类型,去掉 Record<string, any>\n extends BaseComponent<T>\n implements IAxis\n{\n static specKey = 'axes';\n specKey = 'axes';\n\n protected _orient: IPolarOrientType | IOrientType;\n getOrient() {\n return this._orient;\n }\n\n protected _scale!: IBaseScale;\n getScale() {\n return this._scale;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected _tickData: CompilableData[] = [];\n getTickData(index = 0) {\n return this._tickData[index];\n }\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionIndex?: number[];\n\n /**\n * if axis will be shown\n */\n protected _visible: boolean = true;\n getVisible() {\n return this._visible;\n }\n get visible() {\n return this._visible;\n }\n\n protected _specVisible: boolean = true;\n protected _hideWhenEmpty: boolean = false;\n\n /** 轴是否产生反转的真实值,在横向图表的竖轴上可能和用户在 spec 上配的值相反 */\n protected _inverse: boolean;\n getInverse() {\n return this._inverse;\n }\n\n protected _tick: ITick | undefined = undefined;\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n protected abstract axisHelper(): any;\n protected abstract getSeriesStatisticsField(s: ISeries): string[];\n protected abstract updateSeriesScale(): void;\n protected abstract collectSeriesField(depth: number, series: ISeries): string | string[];\n abstract transformScaleDomain(): void;\n abstract updateScaleRange(): boolean;\n protected abstract getDefaultInteractive(): boolean;\n\n protected _dataFieldText: string;\n protected _axisMark: IComponentMark;\n\n protected _gridMark: IComponentMark;\n\n protected _coordinateType: CoordinateType;\n getCoordinateType() {\n return this._coordinateType;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._specVisible = spec.visible ?? true;\n this._hideWhenEmpty = spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n this._coordinateType = 'none';\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._specVisible = this._spec.visible ?? true;\n this._hideWhenEmpty = this._spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n\n if (this._scale) {\n this._refreshVisibilityByData();\n }\n }\n\n getVRenderComponents() {\n return [this._axisMark?.getProduct(), this._gridMark?.getProduct()].filter(isValid);\n }\n\n created() {\n super.created();\n //series and regions\n this.setSeriesAndRegionsFromSpec();\n // event\n this.initEvent();\n // scales\n this.initScales();\n this.updateSeriesScale();\n this._refreshVisibilityByData();\n // data\n this._shouldComputeTickData() && this._initData();\n\n if (this._specVisible) {\n // 创建语法元素\n const axisMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}` },\n {\n componentType: this.getOrient() === 'angle' ? AxisEnum.circleAxis : AxisEnum.lineAxis,\n mode: this._spec.mode\n },\n {\n skipTheme: true // skip theme of vgrammar to avoid merge\n }\n );\n this._updateTickDataMarks(axisMark);\n this._axisMark = axisMark as IComponentMark;\n axisMark.setMarkConfig({ zIndex: this.layoutZIndex });\n if (isValid(this._spec.id)) {\n axisMark.setUserId(this._spec.id);\n }\n axisMark.setMarkConfig({ interactive: this._spec.interactive ?? this.getDefaultInteractive() });\n this._marks.addMark(axisMark);\n\n if (this._spec.grid?.visible) {\n const gridMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}-grid` },\n {\n componentType: this.getOrient() === 'angle' ? GridEnum.circleAxisGrid : GridEnum.lineAxisGrid,\n mode: this._spec.mode\n },\n {\n skipTheme: true\n }\n );\n\n this._updateTickDataMarks(gridMark);\n gridMark.setMarkConfig({\n zIndex: this._spec.grid?.style?.zIndex ?? this._spec.grid?.zIndex ?? LayoutZIndex.Axis_Grid,\n interactive: false // 轴网格线关闭交互\n });\n this._marks.addMark(gridMark);\n this._gridMark = gridMark as IComponentMark;\n }\n\n this._syncComponentVisibility();\n\n // Tip: 支持 spec.animationAppear.axis,并且坐标轴默认关闭动画\n if (\n this._option.globalInstance?.isAnimationEnable() &&\n get(this._option.getChart().getSpec(), 'animation') !== false &&\n this._spec.animation === true\n ) {\n const axisAnimateConfig = animationConfig(Factory.getAnimationInKey('axis')?.(), {\n appear:\n this._spec.animationAppear ??\n get(this._option.getChart().getSpec(), 'animationAppear.axis') ??\n get(this._option.getChart().getSpec(), 'animationAppear'),\n disappear:\n this._spec.animationDisappear ??\n get(this._option.getChart().getSpec(), 'animationDisappear.axis') ??\n get(this._option.getChart().getSpec(), 'animationDisappear'),\n enter:\n this._spec.animationEnter ??\n get(this._option.getChart().getSpec(), 'animationEnter.axis') ??\n get(this._option.getChart().getSpec(), 'animationEnter'),\n exit:\n this._spec.animationExit ??\n get(this._option.getChart().getSpec(), 'animationExit.axis') ??\n get(this._option.getChart().getSpec(), 'animationExit'),\n update:\n this._spec.animationUpdate ??\n get(this._option.getChart().getSpec(), 'animationUpdate.axis') ??\n get(this._option.getChart().getSpec(), 'animationUpdate')\n });\n // 因为坐标轴的更新动画中处理了 enter,所以需要将 enter 的参数传入\n if (axisAnimateConfig.enter) {\n axisAnimateConfig.update[0].customParameters = {\n enter: axisAnimateConfig.enter[0]\n };\n }\n this._marks.forEach(m => m.setAnimationConfig(axisAnimateConfig));\n }\n }\n }\n\n protected _shouldComputeTickData() {\n // 当轴被展示、或者强制要求计算 data 时再计算 data\n return this._specVisible && (this.getVisible() || this._spec.forceInitTick || this._hideWhenEmpty);\n }\n\n protected _onTickDataChange = (tickData?: ICompilableData) => {\n this._forceLayout();\n tickData?.updateData();\n };\n\n // data\n protected _initData() {\n const tickData = this._initTickDataSet(this._tickTransformOption());\n const tickDataCompile = new CompilableData(this._option, tickData);\n this._tickData = [tickDataCompile];\n tickData.target.addListener('change', () => {\n this._onTickDataChange(tickDataCompile);\n });\n }\n\n protected collectData(depth: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n this._regions &&\n eachSeries(\n this._regions,\n s => {\n let field = this.collectSeriesField(depth, s);\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\n if (field) {\n const viewData = s.getViewData();\n if (rawData) {\n field.forEach(f => {\n data.push(\n s.getRawDataStatisticsByField(f, !!isContinuous(this._scale.type)) as {\n min: number;\n max: number;\n values: any[];\n }\n );\n });\n } else if (viewData && viewData.latestData && viewData.latestData.length) {\n const seriesData = s.getViewDataStatistics?.();\n const userSetBreaks =\n this.type === ComponentTypeEnum.cartesianLinearAxis && this._spec.breaks && this._spec.breaks.length;\n\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n if (userSetBreaks) {\n data.push({\n ...seriesData.latestData[f],\n values: viewData.latestData.map((obj: Datum) => obj[f])\n });\n } else {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected isSeriesDataEnable() {\n let enable = true;\n eachSeries(\n this._regions,\n s => {\n if (isArray(s.getViewDataStatistics()?.latestData)) {\n enable = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return enable;\n }\n\n protected setSeriesAndRegionsFromSpec() {\n const { seriesId, seriesIndex, regionId, regionIndex } = this._spec;\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId as string[], this._regionIndex);\n // _regions 被更新了,layoutBindRegionID 也要更新\n this.layout.layoutBindRegionID = this._regions.map(x => x.id);\n }\n\n getBindSeriesFilter() {\n return {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n };\n }\n\n protected initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n const viewStatistics = getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n })\n .map(s => s.getViewDataStatistics())\n .filter(v => !!v);\n\n if (viewStatistics.length > 1) {\n this._option.dataSet.multipleDataViewAddListener(viewStatistics, 'change', () => {\n this.updateScaleDomain();\n });\n } else if (viewStatistics.length === 1) {\n viewStatistics[0].target.addListener('change', () => {\n this.updateScaleDomain();\n });\n }\n\n eachSeries(\n this._regions,\n s => {\n s.event.on(ChartEvent.rawDataUpdate, { filter: ({ model }) => model?.id === s.id }, () => {\n // 只清除,不更新,在需要时,更新一次。避免多系列下多次更新\n this._clearRawDomain();\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected updateScaleDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n protected _hasCollectedSeriesData() {\n return this.collectData(0).length > 0;\n }\n\n protected _refreshVisibilityByData() {\n const nextVisible = this._specVisible && (!this._hideWhenEmpty || this._hasCollectedSeriesData());\n const changed = this._visible !== nextVisible;\n this._visible = nextVisible;\n\n if (this._axisMark || this._gridMark) {\n this._syncComponentVisibility();\n }\n\n if (changed) {\n this._forceLayout();\n }\n\n return changed;\n }\n\n protected _syncComponentVisibility() {\n this._axisMark?.setVisible(this._visible);\n this._gridMark?.setVisible(this._visible && this._spec.grid?.visible !== false);\n\n (this._axisMark?.getComponent?.() as IGroup)?.setAttributes?.({ visibleAll: this._visible });\n (this._gridMark?.getComponent?.() as IGroup)?.setAttributes?.({\n visibleAll: this._visible && this._spec.grid?.visible !== false\n });\n }\n\n protected _clearRawDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n onLayoutEnd(): void {\n const changed = this.updateScaleRange();\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n\n super.onLayoutEnd();\n }\n\n protected computeData(updateType?: 'domain' | 'range' | 'force'): void {\n // 对应问题#3287: 轴隐藏(tickData为[])时, dataZoom/scrollBar无法触发视图更新\n // 解决方式: dataZoom/scrollBar更新时, 使用force, 此时即使没有tickData也要触发视图更新\n // ps:\n // 1. 其他逻辑没有使用force更新, 所以不会带来额外影响\n // 2. force更新时, 如果有tickData仍然走老逻辑, 这里只考虑force && 无tickData的情况\n if (updateType === 'force' && (!this._tickData || !this._tickData.length)) {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.reRunAllTransform();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n } else if (\n this._tickData &&\n this._tickData.length &&\n (updateType === 'force' || !isEqual(this._scale.range(), [0, 1]))\n ) {\n this._tickData.forEach(tickData => {\n tickData.getDataView().reRunAllTransform({\n skipEqual: true\n });\n });\n }\n }\n\n protected _updateTickDataMarks(m: ICompilableMark) {\n if (this._tickData) {\n this._tickData.forEach(d => {\n d.addRelatedMark(m);\n });\n }\n }\n\n protected initScales() {\n this._scales = [this._scale];\n const groups: ISeriesGroup[] = [];\n eachSeries(\n this._regions,\n s => {\n const g = s.getGroups();\n g && groups.push(g);\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n if (groups.length !== 0) {\n const depth = maxInArray(groups.map(g => g.fields.length));\n for (let i = 1; i < depth; i++) {\n const scale = this._scale.clone();\n this._scales.push(scale);\n }\n }\n // this.updateScaleDomain();\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n const specChanged = !isEqual(prevSpec, spec);\n\n result.reRender = true;\n /**\n * 存在轴同步相关配置的时候,暂时通过`reMake`触发更新\n */\n if (prevSpec?.type !== spec?.type || prevSpec?.visible !== spec?.visible) {\n result.reMake = true;\n return result;\n }\n\n if (spec?.grid?.visible === true && prevSpec?.grid?.visible !== true && !this._gridMark) {\n result.reMake = true;\n return result;\n }\n\n if (specChanged && !result.reMake && this._isComponentOnlySpecChange(spec, prevSpec)) {\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n }\n\n return result;\n }\n\n private _isComponentOnlySpecChange(spec: T, prevSpec: T) {\n const keys = Object.keys({\n ...prevSpec,\n ...spec\n });\n\n return keys.every(key => {\n return isEqual(prevSpec?.[key], spec?.[key]) || AXIS_COMPONENT_ONLY_CHANGE_KEYS[key];\n });\n }\n\n protected _getAxisAttributes() {\n const spec = this._spec;\n const axisAttrs: any = {\n orient: this.getOrient(),\n select: this._option.disableTriggerEvent === true ? false : spec.select,\n hover: this._option.disableTriggerEvent === true ? false : spec.hover\n };\n\n // 属性均需要显示开启\n if (spec.domainLine && spec.domainLine.visible) {\n axisAttrs.line = transformAxisLineStyle(spec.domainLine);\n } else {\n axisAttrs.line = { visible: false };\n }\n\n if (spec.label && spec.label.visible) {\n const labelSpec = pickWithout(spec.label, ['style', 'formatMethod', 'state']);\n axisAttrs.label = labelSpec;\n if (spec.label.style) {\n axisAttrs.label.style = isFunction(spec.label.style)\n ? (datum: Datum, index: number, data: Datum[], layer?: number) => {\n const style = spec.label.style(datum.rawValue, index, datum, data, layer);\n return transformToGraphic(mergeSpec({}, this._theme.label?.style, style));\n }\n : transformToGraphic(spec.label.style);\n }\n if (spec.label.formatMethod || spec.label.formatter) {\n axisAttrs.label.formatMethod = this._getLabelFormatMethod();\n }\n if (spec.label.state) {\n axisAttrs.label.state = transformAxisLabelStateStyle(spec.label.state);\n }\n if (isFunction(spec.label.dataFilter)) {\n axisAttrs.label.dataFilter = (data: AxisItem[], layer: number) =>\n spec.label.dataFilter(data, layer, { vchart: this._option.globalInstance });\n }\n } else {\n axisAttrs.label = {\n visible: false\n };\n }\n\n if (spec.tick && spec.tick.visible) {\n axisAttrs.tick = {\n visible: spec.tick.visible,\n length: spec.tick.tickSize,\n inside: spec.tick.inside,\n alignWithLabel: spec.tick.alignWithLabel,\n dataFilter: isFunction(spec.tick.dataFilter)\n ? (data: AxisItem[]) => spec.tick.dataFilter(data, { vchart: this._option.globalInstance })\n : undefined\n };\n if (spec.tick.style) {\n axisAttrs.tick.style = isFunction(spec.tick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.tick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.tick?.style, style));\n }\n : transformToGraphic(spec.tick.style);\n }\n if (spec.tick.state) {\n axisAttrs.tick.state = transformStateStyle(spec.tick.state);\n }\n } else {\n axisAttrs.tick = {\n visible: false\n };\n }\n\n if (spec.subTick && spec.subTick.visible) {\n axisAttrs.subTick = {\n visible: spec.subTick.visible,\n length: spec.subTick.tickSize,\n inside: spec.subTick.inside,\n count: spec.subTick.tickCount\n };\n if (spec.subTick.style) {\n axisAttrs.subTick.style = isFunction(spec.subTick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.subTick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.subTick?.style, style));\n }\n : transformToGraphic(spec.subTick.style);\n }\n if (spec.subTick.state) {\n axisAttrs.subTick.state = transformStateStyle(spec.subTick.state);\n }\n } else {\n axisAttrs.subTick = {\n visible: false\n };\n }\n\n if (spec.title && spec.title.visible) {\n const {\n autoRotate,\n angle,\n style: titleStyle = {},\n background: titleBackgroundSpec,\n state: titleState,\n shape: titleShapeSpec,\n ...restTitleAttrs\n } = spec.title;\n let titleAngle = angle;\n let titleTextStyle;\n if (spec.orient === 'left' || spec.orient === 'right') {\n // 处理纵轴的标题样式\n if (autoRotate && isNil(titleAngle)) {\n titleAngle = spec.orient === 'left' ? -90 : 90;\n titleTextStyle = (DEFAULT_TITLE_STYLE as any)[spec.orient];\n }\n }\n\n axisAttrs.title = {\n ...restTitleAttrs,\n autoRotate: false, // 默认不对外提供该配置\n angle: titleAngle ? degreeToRadian(titleAngle) : null,\n textStyle: mergeSpec({}, titleTextStyle, transformToGraphic(titleStyle)),\n pickable: titleStyle.pickable !== false,\n childrenPickable: titleStyle.pickable !== false,\n state: {}\n };\n\n if (titleShapeSpec && titleShapeSpec.visible) {\n axisAttrs.title.shape = {\n ...titleShapeSpec,\n style: transformToGraphic(titleShapeSpec.style)\n };\n if (titleShapeSpec.state) {\n axisAttrs.title.state.shape = transformStateStyle(titleShapeSpec.state);\n }\n } else {\n axisAttrs.title.shape = { visible: false };\n }\n\n if (titleBackgroundSpec && titleBackgroundSpec.visible) {\n axisAttrs.title.background = {\n ...titleBackgroundSpec,\n style: transformToGraphic(titleBackgroundSpec.style)\n };\n if (titleBackgroundSpec.state) {\n axisAttrs.title.state.background = transformStateStyle(titleBackgroundSpec.state);\n }\n } else {\n axisAttrs.title.background = { visible: false };\n }\n\n if (titleState) {\n axisAttrs.title.state.text = transformStateStyle(titleState);\n }\n } else {\n axisAttrs.title = {\n visible: false\n };\n }\n\n if (spec.background && spec.background.visible) {\n axisAttrs.panel = {\n visible: true\n };\n if (spec.background.style) {\n axisAttrs.panel.style = transformToGraphic(spec.background.style);\n }\n if (spec.background.state) {\n axisAttrs.panel.state = transformStateStyle(spec.background.state);\n }\n } else {\n axisAttrs.panel = {\n visible: false\n };\n }\n\n return axisAttrs;\n }\n\n protected _getGridAttributes() {\n const spec = this._spec;\n return {\n alternateColor: transformFunctionAttribute(spec.grid.alternateColor),\n alignWithLabel: spec.grid.alignWithLabel,\n style: isFunction(spec.grid.style)\n ? (datum: Datum, index: number) => {\n const style = spec.grid.style(datum.datum?.rawValue, index, datum.datum);\n return transformToGraphic(mergeSpec({}, this._theme.grid?.style, style));\n }\n : transformToGraphic(spec.grid.style),\n subGrid:\n spec.subGrid.visible === false\n ? { visible: false }\n : {\n type: 'line',\n visible: spec.subGrid.visible,\n alternateColor: transformFunctionAttribute(spec.subGrid.alternateColor),\n style: transformToGraphic(spec.subGrid.style)\n }\n };\n }\n\n protected _getLabelFormatMethod() {\n const { formatMethod, formatter } = this._spec.label;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (value: any, datum: any, index: number) => formatFunc(datum.rawValue, datum, formatter) : null;\n }\n\n protected abstract registerTicksTransform(): string;\n\n protected _initTickDataSet<T extends ITickDataOpt>(options: T, index: number = 0) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n const name = this.registerTicksTransform();\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks_${index}` })\n .parse(this._scales[index], {\n type: 'scale'\n })\n .transform(\n {\n type: name,\n options\n },\n false\n );\n return tickData;\n }\n\n protected _tickTransformOption(): ITickDataOpt {\n const tick = this._tick || {};\n const label = this._spec.label || {};\n const { tickCount, forceTickCount, tickStep, tickMode } = tick;\n const { style: labelStyle, formatMethod: labelFormatter, minGap: labelGap } = label;\n return {\n sampling: this._spec.sampling !== false,\n tickCount,\n forceTickCount,\n tickStep,\n tickMode,\n axisOrientType: this._orient,\n coordinateType: this._coordinateType,\n\n labelStyle,\n labelFormatter,\n labelGap\n };\n }\n\n addTransformToTickData(options: ITransformOptions, execute?: boolean) {\n this._tickData.forEach(tickData => {\n tickData?.getDataView()?.transform(options, execute);\n });\n }\n\n dataToPosition(values: any[]): number {\n return this._scale.scale(values);\n }\n\n getDatum(childGraphic?: IGraphic) {\n if (childGraphic && childGraphic.name === AXIS_ELEMENT_NAME.label) {\n return childGraphic.data;\n }\n\n if (this._axisMark) {\n return (this._axisMark.getComponent() as any)?.attribute.items;\n }\n }\n\n scaleRangeFactor(_?: [number, number], slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactor(_, slience, clear);\n }\n\n scaleRangeFactorEnd(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorEnd(_, slience);\n }\n\n scaleRangeFactorStart(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorStart(_, slience);\n }\n}\n\nexport const registerAxis = () => {\n registerComponentMark();\n Factory.registerAnimation('axis', () => ({\n appear: {\n type: 'fadeIn'\n },\n enter: {\n type: 'fadeIn'\n },\n update: {\n type: 'update'\n },\n exit: {\n type: 'fadeOut'\n // custom: GroupFadeOut\n }\n }));\n};\n"]}
@@ -43,13 +43,7 @@ export declare class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICarte
43
43
  maxBandSize: number;
44
44
  minBandSize: number;
45
45
  };
46
- _compareSpec(spec: T, prevSpec: T): {
47
- change: boolean;
48
- reMake: boolean;
49
- reRender: boolean;
50
- reSize: boolean;
51
- reCompile: boolean;
52
- };
46
+ _compareSpec(spec: T, prevSpec: T): import("../../..").IUpdateSpecResult;
53
47
  reInit(spec?: T): void;
54
48
  }
55
49
  export declare const registerCartesianBandAxis: () => void;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerCartesianBandAxis = exports.CartesianBandAxis = void 0;
6
6
 
7
- const vscale_1 = require("@visactor/vscale"), axis_1 = require("./axis"), interface_1 = require("../../interface"), vutils_1 = require("@visactor/vutils"), band_axis_mixin_1 = require("../mixin/band-axis-mixin"), factory_1 = require("../../../core/factory"), base_axis_1 = require("../base-axis"), vrender_components_1 = require("@visactor/vrender-components"), register_1 = require("../../../data/register"), vrender_components_2 = require("@visactor/vrender-components"), interface_2 = require("../interface"), band_axis_1 = require("../../../theme/builtin/common/component/axis/band-axis"), common_axis_1 = require("../../../theme/builtin/common/component/axis/common-axis"), cartesian_axis_1 = require("../../../theme/builtin/common/component/axis/cartesian-axis");
7
+ const vscale_1 = require("@visactor/vscale"), axis_1 = require("./axis"), interface_1 = require("../../interface"), vutils_1 = require("@visactor/vutils"), band_axis_mixin_1 = require("../mixin/band-axis-mixin"), factory_1 = require("../../../core/factory"), base_axis_1 = require("../base-axis"), linear_1 = require("@visactor/vrender-components/axis/tick-data/discrete/linear"), line_1 = require("@visactor/vrender-components/axis/grid/line"), register_1 = require("../../../data/register"), line_2 = require("@visactor/vrender-components/axis/line"), interface_2 = require("../interface"), band_axis_1 = require("../../../theme/builtin/common/component/axis/band-axis"), common_axis_1 = require("../../../theme/builtin/common/component/axis/common-axis"), cartesian_axis_1 = require("../../../theme/builtin/common/component/axis/cartesian-axis");
8
8
 
9
9
  class CartesianBandAxis extends axis_1.CartesianAxis {
10
10
  constructor() {
@@ -36,7 +36,7 @@ class CartesianBandAxis extends axis_1.CartesianAxis {
36
36
  }
37
37
  registerTicksTransform() {
38
38
  const name = `${this.type}-ticks`;
39
- return (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, name, vrender_components_1.linearDiscreteTicks),
39
+ return (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, name, linear_1.linearDiscreteTicks),
40
40
  name;
41
41
  }
42
42
  transformScaleDomain() {
@@ -93,8 +93,8 @@ CartesianBandAxis.specKey = "axes", CartesianBandAxis.builtInTheme = {
93
93
  }, (0, vutils_1.mixin)(CartesianBandAxis, band_axis_mixin_1.BandAxisMixin);
94
94
 
95
95
  const registerCartesianBandAxis = () => {
96
- factory_1.Factory.registerGraphicComponent(interface_2.AxisEnum.lineAxis, ((attrs, options) => new vrender_components_2.LineAxis(attrs, options))),
97
- factory_1.Factory.registerGraphicComponent(interface_2.GridEnum.lineAxisGrid, ((attrs, options) => new vrender_components_1.LineAxisGrid(attrs, options))),
96
+ factory_1.Factory.registerGraphicComponent(interface_2.AxisEnum.lineAxis, ((attrs, options) => new line_2.LineAxis(attrs, options))),
97
+ factory_1.Factory.registerGraphicComponent(interface_2.GridEnum.lineAxisGrid, ((attrs, options) => new line_1.LineAxisGrid(attrs, options))),
98
98
  (0, base_axis_1.registerAxis)(), factory_1.Factory.registerComponent(CartesianBandAxis.type, CartesianBandAxis, !1);
99
99
  };
100
100