@visactor/vchart 2.1.0-alpha.14 → 2.1.0-alpha.15

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 (660) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +56784 -64559
  3. package/build/index.js +56787 -64562
  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 +0 -3
  13. package/cjs/chart/base/base-chart-transformer.js +3 -23
  14. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  15. package/cjs/chart/base/base-chart.d.ts +9 -27
  16. package/cjs/chart/base/base-chart.js +28 -209
  17. package/cjs/chart/base/base-chart.js.map +1 -1
  18. package/cjs/chart/gauge/gauge-transformer.js +2 -3
  19. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  20. package/cjs/chart/interface/chart.d.ts +0 -1
  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 +1 -2
  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 +2 -3
  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 +1 -2
  37. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  38. package/cjs/chart/util.d.ts +1 -4
  39. package/cjs/chart/util.js +4 -40
  40. package/cjs/chart/util.js.map +1 -1
  41. package/cjs/chart/waterfall/waterfall-transformer.js +1 -2
  42. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  43. package/cjs/compile/compiler.d.ts +0 -2
  44. package/cjs/compile/compiler.js +48 -68
  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 +1 -2
  54. package/cjs/compile/interface/compiler.js.map +1 -1
  55. package/cjs/compile/morph.js +4 -4
  56. package/cjs/compile/morph.js.map +1 -1
  57. package/cjs/compile/state-manager.js +1 -2
  58. package/cjs/component/axis/base-axis.d.ts +8 -3
  59. package/cjs/component/axis/base-axis.js +7 -27
  60. package/cjs/component/axis/base-axis.js.map +1 -1
  61. package/cjs/component/axis/cartesian/band-axis.d.ts +7 -1
  62. package/cjs/component/axis/cartesian/band-axis.js +4 -4
  63. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  64. package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -1
  65. package/cjs/component/axis/cartesian/linear-axis.js +4 -4
  66. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  67. package/cjs/component/axis/mixin/linear-axis-mixin.js +10 -7
  68. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  69. package/cjs/component/axis/polar/band-axis.d.ts +0 -2
  70. package/cjs/component/axis/polar/band-axis.js +0 -3
  71. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  72. package/cjs/component/axis/polar/linear-axis.js +0 -3
  73. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  74. package/cjs/component/base/base-component.d.ts +7 -7
  75. package/cjs/component/base/base-component.js +6 -41
  76. package/cjs/component/base/base-component.js.map +1 -1
  77. package/cjs/component/brush/brush.d.ts +7 -3
  78. package/cjs/component/brush/brush.js +16 -34
  79. package/cjs/component/brush/brush.js.map +1 -1
  80. package/cjs/component/crosshair/base.d.ts +8 -5
  81. package/cjs/component/crosshair/base.js +5 -33
  82. package/cjs/component/crosshair/base.js.map +1 -1
  83. package/cjs/component/crosshair/cartesian.js +3 -3
  84. package/cjs/component/crosshair/cartesian.js.map +1 -1
  85. package/cjs/component/custom-mark/custom-mark.d.ts +7 -4
  86. package/cjs/component/custom-mark/custom-mark.js +3 -27
  87. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  88. package/cjs/component/data-zoom/data-filter-base-component.d.ts +7 -3
  89. package/cjs/component/data-zoom/data-filter-base-component.js +2 -15
  90. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  91. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
  92. package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -19
  93. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  94. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
  95. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
  96. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  97. package/cjs/component/geo/geo-coordinate.d.ts +7 -1
  98. package/cjs/component/index.js +2 -1
  99. package/cjs/component/indicator/indicator.d.ts +0 -1
  100. package/cjs/component/indicator/indicator.js +2 -11
  101. package/cjs/component/indicator/indicator.js.map +1 -1
  102. package/cjs/component/indicator/util.d.ts +3 -4
  103. package/cjs/component/indicator/util.js +1 -1
  104. package/cjs/component/indicator/util.js.map +1 -1
  105. package/cjs/component/label/base-label.d.ts +7 -1
  106. package/cjs/component/label/base-label.js +2 -6
  107. package/cjs/component/label/base-label.js.map +1 -1
  108. package/cjs/component/label/label.js +3 -3
  109. package/cjs/component/label/label.js.map +1 -1
  110. package/cjs/component/legend/base-legend.d.ts +7 -2
  111. package/cjs/component/legend/base-legend.js +3 -20
  112. package/cjs/component/legend/base-legend.js.map +1 -1
  113. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  114. package/cjs/component/legend/discrete/legend.js +7 -7
  115. package/cjs/component/legend/discrete/legend.js.map +1 -1
  116. package/cjs/component/marker/base-marker.d.ts +7 -14
  117. package/cjs/component/marker/base-marker.js +12 -112
  118. package/cjs/component/marker/base-marker.js.map +1 -1
  119. package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
  120. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  121. package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
  122. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  123. package/cjs/component/marker/mark-line/base-mark-line.js +4 -2
  124. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  125. package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
  126. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  127. package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
  128. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  129. package/cjs/component/marker/mark-point/base-mark-point.js +11 -26
  130. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  131. package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
  132. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  133. package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
  134. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  135. package/cjs/component/marker/utils.d.ts +4 -4
  136. package/cjs/component/marker/utils.js +23 -27
  137. package/cjs/component/marker/utils.js.map +1 -1
  138. package/cjs/component/player/player.d.ts +0 -1
  139. package/cjs/component/player/player.js +0 -10
  140. package/cjs/component/player/player.js.map +1 -1
  141. package/cjs/component/title/title.d.ts +7 -1
  142. package/cjs/component/title/title.js +2 -6
  143. package/cjs/component/title/title.js.map +1 -1
  144. package/cjs/component/tooltip/tooltip.d.ts +0 -1
  145. package/cjs/component/tooltip/tooltip.js +0 -8
  146. package/cjs/component/tooltip/tooltip.js.map +1 -1
  147. package/cjs/component/util.js +1 -2
  148. package/cjs/constant/scatter.js +2 -1
  149. package/cjs/constant/scroll-bar.js +1 -2
  150. package/cjs/core/index.d.ts +1 -2
  151. package/cjs/core/index.js +4 -8
  152. package/cjs/core/index.js.map +1 -1
  153. package/cjs/core/instance-manager.js +1 -1
  154. package/cjs/core/vchart.d.ts +1 -5
  155. package/cjs/core/vchart.js +18 -30
  156. package/cjs/core/vchart.js.map +1 -1
  157. package/cjs/data/transforms/box-plot.d.ts +1 -4
  158. package/cjs/data/transforms/box-plot.js +3 -3
  159. package/cjs/data/transforms/box-plot.js.map +1 -1
  160. package/cjs/data/transforms/correlation-center.d.ts +4 -11
  161. package/cjs/data/transforms/correlation-center.js +2 -3
  162. package/cjs/data/transforms/correlation-center.js.map +1 -1
  163. package/cjs/data/transforms/correlation.d.ts +15 -18
  164. package/cjs/data/transforms/correlation.js +17 -22
  165. package/cjs/data/transforms/correlation.js.map +1 -1
  166. package/cjs/data/transforms/funnel.d.ts +8 -10
  167. package/cjs/data/transforms/funnel.js +3 -4
  168. package/cjs/data/transforms/funnel.js.map +1 -1
  169. package/cjs/data/transforms/lookup.d.ts +3 -3
  170. package/cjs/data/transforms/lookup.js +7 -12
  171. package/cjs/data/transforms/lookup.js.map +1 -1
  172. package/cjs/data/transforms/map.d.ts +2 -8
  173. package/cjs/data/transforms/map.js +6 -9
  174. package/cjs/data/transforms/map.js.map +1 -1
  175. package/cjs/data/transforms/sankey.d.ts +4 -12
  176. package/cjs/data/transforms/sankey.js +13 -18
  177. package/cjs/data/transforms/sankey.js.map +1 -1
  178. package/cjs/data/transforms/stack-split.d.ts +1 -2
  179. package/cjs/data/transforms/stack-split.js +1 -1
  180. package/cjs/data/transforms/stack-split.js.map +1 -1
  181. package/cjs/data/transforms/treemap.d.ts +3 -5
  182. package/cjs/data/transforms/treemap.js +6 -7
  183. package/cjs/data/transforms/treemap.js.map +1 -1
  184. package/cjs/data/transforms/venn.d.ts +2 -4
  185. package/cjs/data/transforms/venn.js +4 -4
  186. package/cjs/data/transforms/venn.js.map +1 -1
  187. package/cjs/data/transforms/waterfall.d.ts +2 -4
  188. package/cjs/data/transforms/waterfall.js +7 -7
  189. package/cjs/data/transforms/waterfall.js.map +1 -1
  190. package/cjs/env/env.js +10 -10
  191. package/cjs/env/env.js.map +1 -1
  192. package/cjs/event/event.d.ts +0 -4
  193. package/cjs/event/event.js +7 -26
  194. package/cjs/event/event.js.map +1 -1
  195. package/cjs/interaction/interaction.js +8 -11
  196. package/cjs/interaction/interaction.js.map +1 -1
  197. package/cjs/interaction/triggers/element-active-by-legend.js +2 -3
  198. package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
  199. package/cjs/interaction/triggers/element-active.js +3 -4
  200. package/cjs/interaction/triggers/element-active.js.map +1 -1
  201. package/cjs/interaction/triggers/element-highlight-by-group.js +2 -3
  202. package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
  203. package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
  204. package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  205. package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
  206. package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
  207. package/cjs/interaction/triggers/element-highlight.js +2 -2
  208. package/cjs/interaction/triggers/element-highlight.js.map +1 -1
  209. package/cjs/interaction/triggers/element-select.js +3 -3
  210. package/cjs/interaction/triggers/element-select.js.map +1 -1
  211. package/cjs/mark/arc.js +4 -4
  212. package/cjs/mark/arc.js.map +1 -1
  213. package/cjs/mark/area.js +5 -4
  214. package/cjs/mark/area.js.map +1 -1
  215. package/cjs/mark/base/base-mark.d.ts +2 -13
  216. package/cjs/mark/base/base-mark.js +29 -106
  217. package/cjs/mark/base/base-mark.js.map +1 -1
  218. package/cjs/mark/component.d.ts +0 -9
  219. package/cjs/mark/component.js +3 -51
  220. package/cjs/mark/component.js.map +1 -1
  221. package/cjs/mark/group.js +6 -6
  222. package/cjs/mark/group.js.map +1 -1
  223. package/cjs/mark/interface/mark.d.ts +0 -2
  224. package/cjs/mark/interface/mark.js.map +1 -1
  225. package/cjs/mark/line.js +5 -4
  226. package/cjs/mark/line.js.map +1 -1
  227. package/cjs/mark/rect.js +3 -3
  228. package/cjs/mark/rect.js.map +1 -1
  229. package/cjs/mark/symbol.js +3 -3
  230. package/cjs/mark/symbol.js.map +1 -1
  231. package/cjs/mark/text.js +4 -4
  232. package/cjs/mark/text.js.map +1 -1
  233. package/cjs/mark/utils/glyph.js +2 -3
  234. package/cjs/mark/utils/glyph.js.map +1 -1
  235. package/cjs/model/base-model.d.ts +15 -3
  236. package/cjs/model/base-model.js.map +1 -1
  237. package/cjs/model/interface.d.ts +0 -13
  238. package/cjs/model/interface.js.map +1 -1
  239. package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
  240. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  241. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  242. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js +2 -2
  243. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  244. package/cjs/plugin/other.js +5 -5
  245. package/cjs/plugin/other.js.map +1 -1
  246. package/cjs/region/region.d.ts +7 -1
  247. package/cjs/scale/color-ordinal-scale.d.ts +0 -1
  248. package/cjs/scale/color-ordinal-scale.js +0 -3
  249. package/cjs/scale/color-ordinal-scale.js.map +1 -1
  250. package/cjs/scale/global-scale.js +2 -9
  251. package/cjs/scale/global-scale.js.map +1 -1
  252. package/cjs/series/area/area.d.ts +0 -2
  253. package/cjs/series/area/area.js +0 -6
  254. package/cjs/series/area/area.js.map +1 -1
  255. package/cjs/series/bar/bar.d.ts +0 -3
  256. package/cjs/series/bar/bar.js +4 -30
  257. package/cjs/series/bar/bar.js.map +1 -1
  258. package/cjs/series/base/base-series.d.ts +7 -11
  259. package/cjs/series/base/base-series.js +18 -88
  260. package/cjs/series/base/base-series.js.map +1 -1
  261. package/cjs/series/base/constant.d.ts +0 -3
  262. package/cjs/series/base/constant.js +1 -9
  263. package/cjs/series/base/constant.js.map +1 -1
  264. package/cjs/series/box-plot/box-plot.d.ts +0 -2
  265. package/cjs/series/box-plot/box-plot.js +4 -16
  266. package/cjs/series/box-plot/box-plot.js.map +1 -1
  267. package/cjs/series/correlation/correlation.js +11 -13
  268. package/cjs/series/correlation/correlation.js.map +1 -1
  269. package/cjs/series/dot/dot.d.ts +0 -12
  270. package/cjs/series/dot/dot.js +1 -16
  271. package/cjs/series/dot/dot.js.map +1 -1
  272. package/cjs/series/funnel/funnel.js +8 -5
  273. package/cjs/series/funnel/funnel.js.map +1 -1
  274. package/cjs/series/heatmap/heatmap.d.ts +0 -2
  275. package/cjs/series/heatmap/heatmap.js +0 -10
  276. package/cjs/series/heatmap/heatmap.js.map +1 -1
  277. package/cjs/series/line/line.d.ts +0 -2
  278. package/cjs/series/line/line.js +3 -9
  279. package/cjs/series/line/line.js.map +1 -1
  280. package/cjs/series/map/map.js +3 -3
  281. package/cjs/series/map/map.js.map +1 -1
  282. package/cjs/series/mixin/line-mixin.d.ts +0 -1
  283. package/cjs/series/mixin/line-mixin.js +1 -6
  284. package/cjs/series/mixin/line-mixin.js.map +1 -1
  285. package/cjs/series/pie/pie.d.ts +7 -3
  286. package/cjs/series/pie/pie.js +1 -16
  287. package/cjs/series/pie/pie.js.map +1 -1
  288. package/cjs/series/polar/progress-like/progress-like.d.ts +0 -2
  289. package/cjs/series/polar/progress-like/progress-like.js +1 -16
  290. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  291. package/cjs/series/polar/rose-like/rose-like.d.ts +0 -2
  292. package/cjs/series/polar/rose-like/rose-like.js +1 -15
  293. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  294. package/cjs/series/progress/circular/circular.d.ts +0 -2
  295. package/cjs/series/progress/circular/circular.js +1 -10
  296. package/cjs/series/progress/circular/circular.js.map +1 -1
  297. package/cjs/series/progress/linear/linear.d.ts +0 -2
  298. package/cjs/series/progress/linear/linear.js +1 -19
  299. package/cjs/series/progress/linear/linear.js.map +1 -1
  300. package/cjs/series/sankey/sankey.js +57 -67
  301. package/cjs/series/sankey/sankey.js.map +1 -1
  302. package/cjs/series/scatter/scatter.d.ts +0 -2
  303. package/cjs/series/scatter/scatter.js +1 -9
  304. package/cjs/series/scatter/scatter.js.map +1 -1
  305. package/cjs/series/treemap/treemap.js +20 -23
  306. package/cjs/series/treemap/treemap.js.map +1 -1
  307. package/cjs/series/venn/venn.js +2 -2
  308. package/cjs/series/venn/venn.js.map +1 -1
  309. package/cjs/series/waterfall/waterfall.d.ts +0 -2
  310. package/cjs/series/waterfall/waterfall.js +20 -36
  311. package/cjs/series/waterfall/waterfall.js.map +1 -1
  312. package/cjs/series/word-cloud/animation.js +0 -3
  313. package/cjs/series/word-cloud/animation.js.map +1 -1
  314. package/cjs/theme/builtin/common/series/word-cloud.js +6 -2
  315. package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -1
  316. package/cjs/util/math.d.ts +1 -1
  317. package/cjs/util/math.js +2 -2
  318. package/cjs/util/math.js.map +1 -1
  319. package/cjs/util/text.js +2 -2
  320. package/cjs/util/text.js.map +1 -1
  321. package/esm/animation/callback-disappear.d.ts +1 -1
  322. package/esm/animation/callback-disappear.js +1 -1
  323. package/esm/animation/callback-disappear.js.map +1 -1
  324. package/esm/animation/config.js +1 -33
  325. package/esm/animation/config.js.map +1 -1
  326. package/esm/animation/index.js +2 -1
  327. package/esm/chart/base/base-chart-transformer.d.ts +0 -3
  328. package/esm/chart/base/base-chart-transformer.js +2 -24
  329. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  330. package/esm/chart/base/base-chart.d.ts +9 -27
  331. package/esm/chart/base/base-chart.js +27 -202
  332. package/esm/chart/base/base-chart.js.map +1 -1
  333. package/esm/chart/gauge/gauge-transformer.js +2 -3
  334. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  335. package/esm/chart/interface/chart.d.ts +0 -1
  336. package/esm/chart/interface/chart.js.map +1 -1
  337. package/esm/chart/pie/base/pie-transformer.js +2 -2
  338. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  339. package/esm/chart/polar/polar-transformer.js +1 -1
  340. package/esm/chart/polar/polar-transformer.js.map +1 -1
  341. package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
  342. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  343. package/esm/chart/progress/circular/circular-progress-transformer.js +1 -2
  344. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  345. package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
  346. package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  347. package/esm/chart/radar/radar-transformer.js +2 -3
  348. package/esm/chart/radar/radar-transformer.js.map +1 -1
  349. package/esm/chart/range-area/range-area-transformer.js +2 -2
  350. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  351. package/esm/chart/rose/rose-transformer.js +1 -2
  352. package/esm/chart/rose/rose-transformer.js.map +1 -1
  353. package/esm/chart/util.d.ts +1 -4
  354. package/esm/chart/util.js +1 -34
  355. package/esm/chart/util.js.map +1 -1
  356. package/esm/chart/waterfall/waterfall-transformer.js +1 -2
  357. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  358. package/esm/compile/compiler.d.ts +0 -2
  359. package/esm/compile/compiler.js +47 -69
  360. package/esm/compile/compiler.js.map +1 -1
  361. package/esm/compile/data/compilable-data.d.ts +1 -1
  362. package/esm/compile/data/compilable-data.js +1 -1
  363. package/esm/compile/data/compilable-data.js.map +1 -1
  364. package/esm/compile/grammar-item.d.ts +1 -1
  365. package/esm/compile/grammar-item.js.map +1 -1
  366. package/esm/compile/interface/compilable-item.d.ts +1 -1
  367. package/esm/compile/interface/compilable-item.js.map +1 -1
  368. package/esm/compile/interface/compiler.d.ts +1 -2
  369. package/esm/compile/interface/compiler.js.map +1 -1
  370. package/esm/compile/morph.js +1 -1
  371. package/esm/compile/morph.js.map +1 -1
  372. package/esm/compile/state-manager.js +1 -2
  373. package/esm/component/axis/base-axis.d.ts +8 -3
  374. package/esm/component/axis/base-axis.js +6 -27
  375. package/esm/component/axis/base-axis.js.map +1 -1
  376. package/esm/component/axis/cartesian/band-axis.d.ts +7 -1
  377. package/esm/component/axis/cartesian/band-axis.js +2 -4
  378. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  379. package/esm/component/axis/cartesian/linear-axis.d.ts +1 -1
  380. package/esm/component/axis/cartesian/linear-axis.js +1 -5
  381. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  382. package/esm/component/axis/mixin/linear-axis-mixin.js +10 -7
  383. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  384. package/esm/component/axis/polar/band-axis.d.ts +0 -2
  385. package/esm/component/axis/polar/band-axis.js +0 -3
  386. package/esm/component/axis/polar/band-axis.js.map +1 -1
  387. package/esm/component/axis/polar/linear-axis.js +0 -3
  388. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  389. package/esm/component/base/base-component.d.ts +7 -7
  390. package/esm/component/base/base-component.js +5 -41
  391. package/esm/component/base/base-component.js.map +1 -1
  392. package/esm/component/brush/brush.d.ts +7 -3
  393. package/esm/component/brush/brush.js +11 -29
  394. package/esm/component/brush/brush.js.map +1 -1
  395. package/esm/component/crosshair/base.d.ts +8 -5
  396. package/esm/component/crosshair/base.js +3 -27
  397. package/esm/component/crosshair/base.js.map +1 -1
  398. package/esm/component/crosshair/cartesian.js +1 -3
  399. package/esm/component/crosshair/cartesian.js.map +1 -1
  400. package/esm/component/custom-mark/custom-mark.d.ts +7 -4
  401. package/esm/component/custom-mark/custom-mark.js +2 -27
  402. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  403. package/esm/component/data-zoom/data-filter-base-component.d.ts +7 -3
  404. package/esm/component/data-zoom/data-filter-base-component.js +2 -14
  405. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  406. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
  407. package/esm/component/data-zoom/data-zoom/data-zoom.js +0 -20
  408. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  409. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
  410. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
  411. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  412. package/esm/component/geo/geo-coordinate.d.ts +7 -1
  413. package/esm/component/index.js +2 -1
  414. package/esm/component/indicator/indicator.d.ts +0 -1
  415. package/esm/component/indicator/indicator.js +2 -11
  416. package/esm/component/indicator/indicator.js.map +1 -1
  417. package/esm/component/indicator/util.d.ts +3 -4
  418. package/esm/component/indicator/util.js +2 -2
  419. package/esm/component/indicator/util.js.map +1 -1
  420. package/esm/component/label/base-label.d.ts +7 -1
  421. package/esm/component/label/base-label.js +1 -5
  422. package/esm/component/label/base-label.js.map +1 -1
  423. package/esm/component/label/label.js +2 -2
  424. package/esm/component/label/label.js.map +1 -1
  425. package/esm/component/legend/base-legend.d.ts +7 -2
  426. package/esm/component/legend/base-legend.js +2 -20
  427. package/esm/component/legend/base-legend.js.map +1 -1
  428. package/esm/component/legend/discrete/legend.d.ts +1 -1
  429. package/esm/component/legend/discrete/legend.js +2 -2
  430. package/esm/component/legend/discrete/legend.js.map +1 -1
  431. package/esm/component/marker/base-marker.d.ts +7 -14
  432. package/esm/component/marker/base-marker.js +11 -113
  433. package/esm/component/marker/base-marker.js.map +1 -1
  434. package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
  435. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  436. package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
  437. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  438. package/esm/component/marker/mark-line/base-mark-line.js +4 -2
  439. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  440. package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
  441. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  442. package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
  443. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  444. package/esm/component/marker/mark-point/base-mark-point.js +11 -24
  445. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  446. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  447. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  448. package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
  449. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  450. package/esm/component/marker/utils.d.ts +4 -4
  451. package/esm/component/marker/utils.js +23 -27
  452. package/esm/component/marker/utils.js.map +1 -1
  453. package/esm/component/player/player.d.ts +0 -1
  454. package/esm/component/player/player.js +0 -10
  455. package/esm/component/player/player.js.map +1 -1
  456. package/esm/component/title/title.d.ts +7 -1
  457. package/esm/component/title/title.js +2 -6
  458. package/esm/component/title/title.js.map +1 -1
  459. package/esm/component/tooltip/tooltip.d.ts +0 -1
  460. package/esm/component/tooltip/tooltip.js +1 -9
  461. package/esm/component/tooltip/tooltip.js.map +1 -1
  462. package/esm/component/util.js +1 -2
  463. package/esm/constant/scatter.js +2 -1
  464. package/esm/constant/scroll-bar.js +1 -2
  465. package/esm/core/index.d.ts +1 -2
  466. package/esm/core/index.js +1 -3
  467. package/esm/core/index.js.map +1 -1
  468. package/esm/core/instance-manager.js +1 -1
  469. package/esm/core/vchart.d.ts +1 -5
  470. package/esm/core/vchart.js +18 -31
  471. package/esm/core/vchart.js.map +1 -1
  472. package/esm/data/transforms/box-plot.d.ts +1 -4
  473. package/esm/data/transforms/box-plot.js +4 -4
  474. package/esm/data/transforms/box-plot.js.map +1 -1
  475. package/esm/data/transforms/correlation-center.d.ts +4 -11
  476. package/esm/data/transforms/correlation-center.js +2 -4
  477. package/esm/data/transforms/correlation-center.js.map +1 -1
  478. package/esm/data/transforms/correlation.d.ts +15 -18
  479. package/esm/data/transforms/correlation.js +8 -13
  480. package/esm/data/transforms/correlation.js.map +1 -1
  481. package/esm/data/transforms/funnel.d.ts +8 -10
  482. package/esm/data/transforms/funnel.js +3 -5
  483. package/esm/data/transforms/funnel.js.map +1 -1
  484. package/esm/data/transforms/lookup.d.ts +3 -3
  485. package/esm/data/transforms/lookup.js +6 -12
  486. package/esm/data/transforms/lookup.js.map +1 -1
  487. package/esm/data/transforms/map.d.ts +2 -8
  488. package/esm/data/transforms/map.js +6 -11
  489. package/esm/data/transforms/map.js.map +1 -1
  490. package/esm/data/transforms/sankey.d.ts +4 -12
  491. package/esm/data/transforms/sankey.js +14 -19
  492. package/esm/data/transforms/sankey.js.map +1 -1
  493. package/esm/data/transforms/stack-split.d.ts +1 -2
  494. package/esm/data/transforms/stack-split.js +2 -2
  495. package/esm/data/transforms/stack-split.js.map +1 -1
  496. package/esm/data/transforms/treemap.d.ts +3 -5
  497. package/esm/data/transforms/treemap.js +5 -8
  498. package/esm/data/transforms/treemap.js.map +1 -1
  499. package/esm/data/transforms/venn.d.ts +2 -4
  500. package/esm/data/transforms/venn.js +3 -5
  501. package/esm/data/transforms/venn.js.map +1 -1
  502. package/esm/data/transforms/waterfall.d.ts +2 -4
  503. package/esm/data/transforms/waterfall.js +8 -7
  504. package/esm/data/transforms/waterfall.js.map +1 -1
  505. package/esm/env/env.js +1 -1
  506. package/esm/env/env.js.map +1 -1
  507. package/esm/event/event.d.ts +0 -4
  508. package/esm/event/event.js +7 -26
  509. package/esm/event/event.js.map +1 -1
  510. package/esm/interaction/interaction.js +8 -10
  511. package/esm/interaction/interaction.js.map +1 -1
  512. package/esm/interaction/triggers/element-active-by-legend.js +1 -3
  513. package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
  514. package/esm/interaction/triggers/element-active.js +2 -4
  515. package/esm/interaction/triggers/element-active.js.map +1 -1
  516. package/esm/interaction/triggers/element-highlight-by-group.js +1 -4
  517. package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
  518. package/esm/interaction/triggers/element-highlight-by-legend.js +1 -3
  519. package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  520. package/esm/interaction/triggers/element-highlight-by-name.js +1 -3
  521. package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
  522. package/esm/interaction/triggers/element-highlight.js +1 -3
  523. package/esm/interaction/triggers/element-highlight.js.map +1 -1
  524. package/esm/interaction/triggers/element-select.js +2 -4
  525. package/esm/interaction/triggers/element-select.js.map +1 -1
  526. package/esm/mark/arc.js +2 -4
  527. package/esm/mark/arc.js.map +1 -1
  528. package/esm/mark/area.js +2 -6
  529. package/esm/mark/area.js.map +1 -1
  530. package/esm/mark/base/base-mark.d.ts +2 -13
  531. package/esm/mark/base/base-mark.js +28 -107
  532. package/esm/mark/base/base-mark.js.map +1 -1
  533. package/esm/mark/component.d.ts +0 -9
  534. package/esm/mark/component.js +2 -51
  535. package/esm/mark/component.js.map +1 -1
  536. package/esm/mark/group.js +5 -6
  537. package/esm/mark/group.js.map +1 -1
  538. package/esm/mark/interface/mark.d.ts +0 -2
  539. package/esm/mark/interface/mark.js.map +1 -1
  540. package/esm/mark/line.js +2 -6
  541. package/esm/mark/line.js.map +1 -1
  542. package/esm/mark/rect.js +2 -4
  543. package/esm/mark/rect.js.map +1 -1
  544. package/esm/mark/symbol.js +2 -4
  545. package/esm/mark/symbol.js.map +1 -1
  546. package/esm/mark/text.js +1 -5
  547. package/esm/mark/text.js.map +1 -1
  548. package/esm/mark/utils/glyph.js +1 -3
  549. package/esm/mark/utils/glyph.js.map +1 -1
  550. package/esm/model/base-model.d.ts +15 -3
  551. package/esm/model/base-model.js.map +1 -1
  552. package/esm/model/interface.d.ts +0 -13
  553. package/esm/model/interface.js.map +1 -1
  554. package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
  555. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  556. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  557. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js +1 -1
  558. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  559. package/esm/plugin/other.js +2 -2
  560. package/esm/plugin/other.js.map +1 -1
  561. package/esm/region/region.d.ts +7 -1
  562. package/esm/scale/color-ordinal-scale.d.ts +0 -1
  563. package/esm/scale/color-ordinal-scale.js +0 -3
  564. package/esm/scale/color-ordinal-scale.js.map +1 -1
  565. package/esm/scale/global-scale.js +1 -9
  566. package/esm/scale/global-scale.js.map +1 -1
  567. package/esm/series/area/area.d.ts +0 -2
  568. package/esm/series/area/area.js +1 -7
  569. package/esm/series/area/area.js.map +1 -1
  570. package/esm/series/bar/bar.d.ts +0 -3
  571. package/esm/series/bar/bar.js +4 -30
  572. package/esm/series/bar/bar.js.map +1 -1
  573. package/esm/series/base/base-series.d.ts +7 -11
  574. package/esm/series/base/base-series.js +16 -84
  575. package/esm/series/base/base-series.js.map +1 -1
  576. package/esm/series/base/constant.d.ts +0 -3
  577. package/esm/series/base/constant.js +0 -10
  578. package/esm/series/base/constant.js.map +1 -1
  579. package/esm/series/box-plot/box-plot.d.ts +0 -2
  580. package/esm/series/box-plot/box-plot.js +4 -15
  581. package/esm/series/box-plot/box-plot.js.map +1 -1
  582. package/esm/series/correlation/correlation.js +11 -13
  583. package/esm/series/correlation/correlation.js.map +1 -1
  584. package/esm/series/dot/dot.d.ts +0 -12
  585. package/esm/series/dot/dot.js +0 -17
  586. package/esm/series/dot/dot.js.map +1 -1
  587. package/esm/series/funnel/funnel.js +8 -5
  588. package/esm/series/funnel/funnel.js.map +1 -1
  589. package/esm/series/heatmap/heatmap.d.ts +0 -2
  590. package/esm/series/heatmap/heatmap.js +0 -10
  591. package/esm/series/heatmap/heatmap.js.map +1 -1
  592. package/esm/series/line/line.d.ts +0 -2
  593. package/esm/series/line/line.js +2 -10
  594. package/esm/series/line/line.js.map +1 -1
  595. package/esm/series/map/map.js +3 -3
  596. package/esm/series/map/map.js.map +1 -1
  597. package/esm/series/mixin/line-mixin.d.ts +0 -1
  598. package/esm/series/mixin/line-mixin.js +0 -5
  599. package/esm/series/mixin/line-mixin.js.map +1 -1
  600. package/esm/series/pie/pie.d.ts +7 -3
  601. package/esm/series/pie/pie.js +0 -17
  602. package/esm/series/pie/pie.js.map +1 -1
  603. package/esm/series/polar/progress-like/progress-like.d.ts +0 -2
  604. package/esm/series/polar/progress-like/progress-like.js +0 -17
  605. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  606. package/esm/series/polar/rose-like/rose-like.d.ts +0 -2
  607. package/esm/series/polar/rose-like/rose-like.js +0 -16
  608. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  609. package/esm/series/progress/circular/circular.d.ts +0 -2
  610. package/esm/series/progress/circular/circular.js +0 -11
  611. package/esm/series/progress/circular/circular.js.map +1 -1
  612. package/esm/series/progress/linear/linear.d.ts +0 -2
  613. package/esm/series/progress/linear/linear.js +0 -20
  614. package/esm/series/progress/linear/linear.js.map +1 -1
  615. package/esm/series/sankey/sankey.js +54 -60
  616. package/esm/series/sankey/sankey.js.map +1 -1
  617. package/esm/series/scatter/scatter.d.ts +0 -2
  618. package/esm/series/scatter/scatter.js +0 -10
  619. package/esm/series/scatter/scatter.js.map +1 -1
  620. package/esm/series/treemap/treemap.js +20 -23
  621. package/esm/series/treemap/treemap.js.map +1 -1
  622. package/esm/series/venn/venn.js +2 -2
  623. package/esm/series/venn/venn.js.map +1 -1
  624. package/esm/series/waterfall/waterfall.d.ts +0 -2
  625. package/esm/series/waterfall/waterfall.js +20 -36
  626. package/esm/series/waterfall/waterfall.js.map +1 -1
  627. package/esm/series/word-cloud/animation.js +0 -3
  628. package/esm/series/word-cloud/animation.js.map +1 -1
  629. package/esm/theme/builtin/common/series/word-cloud.js +6 -2
  630. package/esm/theme/builtin/common/series/word-cloud.js.map +1 -1
  631. package/esm/util/math.d.ts +1 -1
  632. package/esm/util/math.js +1 -1
  633. package/esm/util/math.js.map +1 -1
  634. package/esm/util/text.js +1 -1
  635. package/esm/util/text.js.map +1 -1
  636. package/package.json +8 -10
  637. package/cjs/compile/stage-app.d.ts +0 -17
  638. package/cjs/compile/stage-app.js +0 -82
  639. package/cjs/compile/stage-app.js.map +0 -1
  640. package/cjs/component/base/release-vrender-component.d.ts +0 -10
  641. package/cjs/component/base/release-vrender-component.js +0 -37
  642. package/cjs/component/base/release-vrender-component.js.map +0 -1
  643. package/cjs/data/data-view-utils.d.ts +0 -5
  644. package/cjs/data/data-view-utils.js +0 -58
  645. package/cjs/data/data-view-utils.js.map +0 -1
  646. package/cjs/util/graphic-state.d.ts +0 -4
  647. package/cjs/util/graphic-state.js +0 -40
  648. package/cjs/util/graphic-state.js.map +0 -1
  649. package/esm/compile/stage-app.d.ts +0 -17
  650. package/esm/compile/stage-app.js +0 -77
  651. package/esm/compile/stage-app.js.map +0 -1
  652. package/esm/component/base/release-vrender-component.d.ts +0 -10
  653. package/esm/component/base/release-vrender-component.js +0 -24
  654. package/esm/component/base/release-vrender-component.js.map +0 -1
  655. package/esm/data/data-view-utils.d.ts +0 -5
  656. package/esm/data/data-view-utils.js +0 -46
  657. package/esm/data/data-view-utils.js.map +0 -1
  658. package/esm/util/graphic-state.d.ts +0 -4
  659. package/esm/util/graphic-state.js +0 -30
  660. package/esm/util/graphic-state.js.map +0 -1
@@ -123,14 +123,17 @@ export class LinearAxisMixin {
123
123
  this._zero && (domain[0] = Math.min(domain[0], 0), domain[domain.length - 1] = Math.max(last(domain), 0));
124
124
  }
125
125
  setExtendDomain(key, value) {
126
- if (void 0 === value) {
127
- if (!Object.prototype.hasOwnProperty.call(this._extend, key)) return;
128
- delete this._extend[key];
129
- } else {
130
- if (this._extend[key] === value) return;
131
- this._extend[key] = value;
126
+ if (void 0 === value) return void delete this._extend[key];
127
+ this._extend[key] = value;
128
+ const domain = this._scale.domain();
129
+ if (this.extendDomain(domain), this.includeZero(domain), this.setDomainMinMax(domain),
130
+ this.niceDomain(domain), this._scale.domain(domain, this._nice), this._nice) {
131
+ !this.setScaleNice() && this._scale.rescale();
132
132
  }
133
- this.updateScaleDomain();
133
+ this.event.emit(ChartEvent.scaleUpdate, {
134
+ model: this,
135
+ value: "domain"
136
+ });
134
137
  }
135
138
  extendDomain(domain) {
136
139
  let temp;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/mixin/linear-axis-mixin.ts"],"names":[],"mappings":"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","file":"linear-axis-mixin.js","sourcesContent":["import { isValidNumber, isNil, isValid, isFunction, last } from '@visactor/vutils';\nimport type { LinearScale } from '@visactor/vscale';\nimport { combineDomains, maxInArr, minInArr } from '../../../util/array';\nimport { getLinearAxisSpecDomain } from '../util';\nimport type { IAxisLocationCfg, ILinearAxisBreakSpec, ITick } from '../interface';\nimport { ChartEvent } from '../../../constant/event';\nimport type { IEvent } from '../../../event/interface';\nimport { isXAxis } from '../cartesian/util/common';\nimport type { IOrientType } from '../../../typings/space';\nimport type { IComponentOption } from '../../interface/common';\nimport type { StringOrNumber } from '../../../typings';\nimport { breakData } from './util/break-data';\nimport type { IModel } from '../../../model/interface';\n\nexport const e10 = Math.sqrt(50);\nexport const e5 = Math.sqrt(10);\nexport const e2 = Math.sqrt(2);\nconst DEFAULT_TICK_COUNT = 5;\n\nexport interface LinearAxisMixin {\n _scale: LinearScale;\n _scales: LinearScale[];\n _spec: any;\n _nice: boolean;\n _zero: boolean;\n /**\n * spec中申明的min,max\n */\n _domain: { min?: number; max?: number };\n /**\n * 记录一下解析spec后,获取到的domain,\n * 用于在插件(如0值对齐等功能)中使用\n */\n _domainAfterSpec: number[];\n _softMinValue?: number;\n _softMaxValue?: number;\n _expand?: { max?: number; min?: number };\n _tick: ITick | undefined;\n isSeriesDataEnable: any;\n computeDomain: any;\n collectData: (depth?: number, rawData?: boolean) => { min: number; max: number; values: any[] }[];\n /**\n * 这个变量在其他break相关组件和扩展中都有使用\n */\n _break: {\n domain: [number, number][];\n scope: [number, number][];\n breakDomains: [number, number][];\n breaks: ILinearAxisBreakSpec[];\n };\n event: IEvent;\n _orient: IOrientType;\n _option: IComponentOption;\n niceLabelFormatter: (value: StringOrNumber) => StringOrNumber;\n _refreshVisibilityByData: () => boolean;\n}\n\nexport class LinearAxisMixin {\n protected _extend: { [key: string]: number } = {};\n protected _rawDomain: StringOrNumber[] = [];\n getRawDomain() {\n return this._rawDomain;\n }\n\n niceLabelFormatter: (value: StringOrNumber) => StringOrNumber = null;\n\n setExtraAttrFromSpec() {\n isValid(this._spec.nice) && (this._nice = this._spec.nice);\n isValid(this._spec.zero) && (this._zero = this._spec.zero);\n this._expand = this._spec.expand;\n this._domain = getLinearAxisSpecDomain(this._spec);\n }\n transformScaleDomain() {\n this.setScaleNice();\n }\n\n setLinearScaleNice() {\n if (!this._nice) {\n return false;\n }\n let tickCount: number = DEFAULT_TICK_COUNT;\n const tick = this._spec.tick || {};\n\n if (isValidNumber(tick.forceTickCount)) {\n tickCount = tick.forceTickCount;\n } else if (isFunction(tick.tickCount)) {\n const range = this._scale.range();\n let rangeSize = Math.abs(last(range) - range[0]);\n\n if (rangeSize === 1 && this._option) {\n // TODO: need to be optimized, when the range is not updated, use the size of view\n const isX = isXAxis(this._orient);\n rangeSize = isX ? this._option.getChartViewRect().width : this._option.getChartViewRect().height;\n }\n\n // tickCount需要一致,不然会导致效果不一致, fix #2050\n tickCount = tick.tickCount({\n axisLength: rangeSize,\n labelStyle: this._spec.label && this._spec.label.style\n });\n } else if (isValidNumber(tick.tickCount)) {\n tickCount = tick.tickCount;\n } else {\n tickCount = DEFAULT_TICK_COUNT;\n }\n // 如果配置了精度优先,那么最低是 5\n // 否则就直接使用tickCount即可\n if (this._spec.niceType === 'accurateFirst') {\n tickCount = Math.max(DEFAULT_TICK_COUNT, tickCount);\n }\n const { min, max } = this._domain ?? {};\n if (isNil(min) && isNil(max) && isNil(this._softMaxValue) && isNil(this._softMinValue)) {\n return this._scale.nice(tickCount);\n } else if ((isValid(min) || isValid(this._softMinValue)) && isNil(max) && isNil(this._softMaxValue)) {\n return this._scale.niceMax(tickCount);\n } else if (isNil(min) && isNil(this._softMinValue) && (isValid(max) || isValid(this._softMaxValue))) {\n return this._scale.niceMin(tickCount);\n }\n\n return false;\n }\n\n setLogScaleNice() {\n if (!this._nice) {\n return false;\n }\n\n const { min, max } = this._domain ?? {};\n if (isNil(min) && isNil(max) && isNil(this._softMaxValue) && isNil(this._softMinValue)) {\n return this._scale.nice();\n } else if ((isValid(min) || isValid(this._softMinValue)) && isNil(max) && isNil(this._softMaxValue)) {\n return this._scale.niceMax();\n } else if (isNil(min) && isNil(this._softMinValue) && (isValid(max) || isValid(this._softMaxValue))) {\n return this._scale.niceMin();\n }\n\n return false;\n }\n\n setScaleNice() {\n if (this._spec.type === 'log') {\n return this.setLogScaleNice();\n }\n return this.setLinearScaleNice();\n }\n\n dataToPosition(values: any[], cfg?: IAxisLocationCfg): number {\n return this.valueToPosition(values[0]);\n }\n\n valueToPosition(value: any): number {\n return this._scale.scale(value);\n }\n\n computeLinearDomain(data: { min: number; max: number; values: any[] }[]): number[] {\n let domain: number[] = [];\n\n if (data.length) {\n const userSetBreaks = this._spec.breaks && this._spec.breaks.length;\n let values: any[] = [];\n let minDomain: number;\n let maxDomain: number;\n data.forEach(d => {\n const { min, max } = d;\n minDomain = minDomain === undefined ? min : Math.min(minDomain, min as number);\n maxDomain = maxDomain === undefined ? max : Math.max(maxDomain, max as number);\n if (userSetBreaks) {\n values = values.concat(d.values);\n }\n });\n\n if (userSetBreaks) {\n const breakRanges = [];\n const breaks = [];\n // 如果用户手动的手指了max,可以将break的最大值限制在用户设置的最大值范围内\n const breakMaxLimit = isNil(this._domain.max) ? maxDomain : this._domain.max;\n for (let index = 0; index < this._spec.breaks.length; index++) {\n const { range } = this._spec.breaks[index];\n if (range[0] <= range[1] && range[1] <= breakMaxLimit) {\n breakRanges.push(range);\n breaks.push(this._spec.breaks[index]);\n }\n }\n breakRanges.sort((a: [number, number], b: [number, number]) => a[0] - b[0]);\n if (breakRanges.length) {\n const { domain: breakDomains, scope: breakScopes } = breakData(\n values,\n combineDomains(breakRanges),\n this._spec.breaks[0].scopeType\n );\n\n domain = combineDomains(breakDomains);\n this._break = {\n domain: breakDomains,\n scope: breakScopes,\n breakDomains: breakRanges,\n breaks\n };\n } else {\n domain = [minDomain, maxDomain];\n }\n } else {\n domain = [minDomain, maxDomain];\n }\n } else {\n // default value for linear axis\n domain[0] = 0;\n domain[1] = 0;\n }\n this.setSoftDomainMinMax(domain);\n this.expandDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n return domain;\n }\n\n protected expandDomain(domain: number[]): void {\n if (!this._expand) {\n return;\n }\n\n let domainMin = domain[0];\n let domainMax = last(domain);\n\n if (domainMin === domainMax) {\n if (domainMax === 0) {\n domainMax = 1;\n } else if (domainMax > 0) {\n domainMin = 0;\n } else if (domainMax < 0) {\n domainMax = 0;\n }\n }\n\n if (isValid(this._expand.min)) {\n domain[0] = domainMin - (domainMax - domainMin) * this._expand.min;\n }\n if (isValid(this._expand.max)) {\n domain[domain.length - 1] = domainMax + (domainMax - domainMin) * this._expand.max;\n }\n }\n\n protected niceDomain(domain: number[]) {\n const { min: userMin, max: userMax } = getLinearAxisSpecDomain(this._spec);\n if (isValid(userMin) || isValid(userMax) || this._spec.type !== 'linear') {\n // 如果用户设置了 min 或者 max 则按照用户设置的为准\n // 如果是非 linear 类型也不处理\n return domain;\n }\n if (Math.abs(minInArr(domain) - maxInArr(domain)) <= 1e-12) {\n let num = domain[0];\n const flag = num >= 0 ? 1 : -1;\n num = Math.abs(num);\n if (num < 1) {\n domain[0] = 0;\n domain[domain.length - 1] = 1; // 在[0, 1) 区间变成[0, 1]\n } else {\n let step = num / DEFAULT_TICK_COUNT; // 默认5个ticks\n const power = Math.floor(Math.log(step) / Math.LN10);\n const err = step / Math.pow(10, power);\n step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power);\n\n domain[0] = 0;\n domain[domain.length - 1] = step * 10;\n }\n if (flag < 0) {\n domain.reverse();\n domain[0] *= -1;\n domain[domain.length - 1] *= -1;\n }\n }\n return domain;\n }\n\n protected includeZero(domain: number[]): void {\n if (this._zero) {\n domain[0] = Math.min(domain[0], 0);\n domain[domain.length - 1] = Math.max(last(domain), 0);\n }\n }\n\n // 用户其他模块扩充轴scale的区间\n setExtendDomain(key: string, value: number | undefined) {\n if (value === undefined) {\n if (!Object.prototype.hasOwnProperty.call(this._extend, key)) {\n return;\n }\n delete this._extend[key];\n } else {\n if (this._extend[key] === value) {\n return;\n }\n this._extend[key] = value;\n }\n this.updateScaleDomain();\n }\n\n protected extendDomain(domain: number[]) {\n let temp;\n const domainLast = domain.length - 1;\n const reverse = domain[0] - domain[domainLast] > 0;\n const min = reverse ? domainLast : 0;\n const max = reverse ? 0 : domainLast;\n for (const key in this._extend) {\n temp = this._extend[key];\n temp > domain[max] && (domain[max] = temp);\n temp < domain[min] && (domain[min] = temp);\n }\n }\n\n getDomainSpec() {\n return this._domain;\n }\n\n protected setDomainMinMax(domain: number[]): void {\n if (!this._domain) {\n return;\n }\n const { min, max } = this._domain;\n isValid(min) && (domain[0] = min);\n isValid(max) && (domain[domain.length - 1] = max);\n }\n\n protected setSoftDomainMinMax(domain: number[]): void {\n const { softMin, softMax } = this._spec;\n\n if (isValid(softMin)) {\n let softMinValue = isFunction(softMin) ? softMin(domain) : (softMin as number);\n\n if (isNil(softMinValue)) {\n softMinValue = domain[0];\n }\n\n if (softMinValue <= domain[0]) {\n domain[0] = softMinValue;\n this._softMinValue = softMinValue;\n }\n }\n\n if (isValid(softMax)) {\n let softMaxValue = isFunction(softMax) ? softMax(domain) : (softMax as number);\n\n if (isNil(softMaxValue)) {\n softMaxValue = last(domain);\n }\n\n if (softMaxValue >= last(domain)) {\n domain[domain.length - 1] = softMaxValue;\n }\n\n this._softMaxValue = softMaxValue;\n }\n }\n\n setZero(zero: boolean) {\n if (this._zero !== zero) {\n this._zero = zero;\n this.updateScaleDomain();\n }\n }\n /**\n * @override\n * TODO event.emit是否可以考虑用decorator\n */\n protected updateScaleDomain() {\n if (!this.isSeriesDataEnable()) {\n return;\n }\n if (!this._rawDomain?.length && this._scale) {\n this._updateRawDomain();\n }\n const data = this.collectData();\n const domain: number[] = this.computeLinearDomain(data) as number[];\n this.updateScaleDomainByModel(domain);\n }\n\n /**\n * TODO event.emit是否可以考虑用decorator\n * 数据逻辑外,模块的设置更新对scale-domain的修改操作\n */\n protected updateScaleDomainByModel(domain?: number[]) {\n domain = domain ?? this._scale.domain();\n // 其他模块的设置 domain\n this.extendDomain(domain);\n this.includeZero(domain);\n // 用户 spec 的 min-max\n this.setDomainMinMax(domain);\n // nice 优先级最高\n this.niceDomain(domain);\n this._scale.domain(domain, this._nice);\n // 设置scale的nice-min-max\n if (this._nice) {\n const niced = this.setScaleNice();\n\n !niced && this._scale.rescale();\n }\n this._updateNiceLabelFormatter(domain);\n\n this._domainAfterSpec = this._scale.domain();\n this._refreshVisibilityByData();\n this.event.emit(ChartEvent.scaleDomainUpdate, { model: this as any });\n this.event.emit(ChartEvent.scaleUpdate, { model: this as any, value: 'domain' });\n }\n\n getDomainAfterSpec() {\n return this._domainAfterSpec;\n }\n\n protected _updateNiceLabelFormatter(domain: number[]) {\n // 根据轴 domain 范围做动态判断,取最多 n + 2 位小数\n const domainSpan = Math.abs(last(domain) - domain[0]);\n const n = Math.max(-Math.floor(Math.log10(domainSpan)), 0) + 2;\n const unit = Math.pow(10, n);\n this.niceLabelFormatter = (value: StringOrNumber) => {\n if (isValidNumber(+value)) {\n return Math.round((+value as number) * unit) / unit;\n }\n return value;\n };\n }\n\n protected _updateRawDomain() {\n const data = this.collectData(0, true);\n const domain: number[] = this.computeLinearDomain(data) as number[];\n this._rawDomain = domain;\n this.event.emit(ChartEvent.scaleRawDomainUpdate, { model: this as unknown as IModel });\n }\n\n protected _clearRawDomain() {\n this._rawDomain = [];\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/mixin/linear-axis-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAInD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAwC7B,MAAM,OAAO,eAAe;IAA5B;QACY,YAAO,GAA8B,EAAE,CAAC;QACxC,eAAU,GAAqB,EAAE,CAAC;QAK5C,uBAAkB,GAA8C,IAAI,CAAC;IAsXvE,CAAC;IA1XC,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAID,oBAAoB;QAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,oBAAoB;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,kBAAkB;;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QACD,IAAI,SAAS,GAAW,kBAAkB,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAEnC,IAAI,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACtC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;SACjC;aAAM,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;gBAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC;aAClG;YAGD,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACzB,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;aACvD,CAAC,CAAC;SACJ;aAAM,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC5B;aAAM;YACL,SAAS,GAAG,kBAAkB,CAAC;SAChC;QAGD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE;YAC3C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;SACrD;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACtF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACpC;aAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACnG,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACvC;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;YACnG,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACvC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe;;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACtF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAC3B;aAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACnG,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC9B;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;YACnG,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC9B;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;YAC7B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAED,cAAc,CAAC,MAAa,EAAE,GAAsB;QAClD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,IAAmD;QACrE,IAAI,MAAM,GAAa,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YACpE,IAAI,MAAM,GAAU,EAAE,CAAC;YACvB,IAAI,SAAiB,CAAC;YACtB,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACf,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvB,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAa,CAAC,CAAC;gBAC/E,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAa,CAAC,CAAC;gBAC/E,IAAI,aAAa,EAAE;oBACjB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;iBAClC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,aAAa,EAAE;gBACjB,MAAM,WAAW,GAAG,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,EAAE,CAAC;gBAElB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC7E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAC7D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE;wBACrD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;qBACvC;iBACF;gBACD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,IAAI,WAAW,CAAC,MAAM,EAAE;oBACtB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,CAC5D,MAAM,EACN,cAAc,CAAC,WAAW,CAAC,EAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAC/B,CAAC;oBAEF,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,GAAG;wBACZ,MAAM,EAAE,YAAY;wBACpB,KAAK,EAAE,WAAW;wBAClB,YAAY,EAAE,WAAW;wBACzB,MAAM;qBACP,CAAC;iBACH;qBAAM;oBACL,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;iBACjC;aACF;iBAAM;gBACL,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACjC;SACF;aAAM;YAEL,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACf;QACD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,YAAY,CAAC,MAAgB;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;QAED,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,IAAI,SAAS,KAAK,CAAC,EAAE;gBACnB,SAAS,GAAG,CAAC,CAAC;aACf;iBAAM,IAAI,SAAS,GAAG,CAAC,EAAE;gBACxB,SAAS,GAAG,CAAC,CAAC;aACf;iBAAM,IAAI,SAAS,GAAG,CAAC,EAAE;gBACxB,SAAS,GAAG,CAAC,CAAC;aACf;SACF;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;SACpE;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;SACpF;IACH,CAAC;IAES,UAAU,CAAC,MAAgB;QACnC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAGxE,OAAO,MAAM,CAAC;SACf;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,EAAE;YAC1D,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,GAAG,GAAG,CAAC,EAAE;gBACX,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aAC/B;iBAAM;gBACL,IAAI,IAAI,GAAG,GAAG,GAAG,kBAAkB,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAEnF,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;aACvC;YACD,IAAI,IAAI,GAAG,CAAC,EAAE;gBACZ,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACjC;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,WAAW,CAAC,MAAgB;QACpC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;SACvD;IACH,CAAC;IAGD,eAAe,CAAC,GAAW,EAAE,KAAyB;QACpD,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO;SACR;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAElC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SACjC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;IAES,YAAY,CAAC,MAAgB;QACrC,IAAI,IAAI,CAAC;QACT,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3C,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAES,eAAe,CAAC,MAAgB;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACpD,CAAC;IAES,mBAAmB,CAAC,MAAgB;QAC5C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAExC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACpB,IAAI,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,OAAkB,CAAC;YAE/E,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;gBACvB,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aAC1B;YAED,IAAI,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;aACnC;SACF;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACpB,IAAI,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,OAAkB,CAAC;YAE/E,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;gBACvB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;aAC7B;YAED,IAAI,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;gBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;aAC1C;YAED,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;SACnC;IACH,CAAC;IAED,OAAO,CAAC,IAAa;QACnB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IAKS,iBAAiB;;QACzB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;YAC9B,OAAO;SACR;QACD,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,CAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAa,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAa,CAAC;QACpE,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAMS,wBAAwB,CAAC,MAAiB;QAClD,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAExC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAElC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SACjC;QACD,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,IAAW,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAES,yBAAyB,CAAC,MAAgB;QAElD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAqB,EAAE,EAAE;YAClD,IAAI,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE;gBACzB,OAAO,IAAI,CAAC,KAAK,CAAE,CAAC,KAAgB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;aACrD;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAES,gBAAgB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAa,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAa,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAyB,EAAE,CAAC,CAAC;IACzF,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF","file":"linear-axis-mixin.js","sourcesContent":["import { isValidNumber, isNil, isValid, isFunction, last } from '@visactor/vutils';\nimport type { LinearScale } from '@visactor/vscale';\nimport { combineDomains, maxInArr, minInArr } from '../../../util/array';\nimport { getLinearAxisSpecDomain } from '../util';\nimport type { IAxisLocationCfg, ILinearAxisBreakSpec, ITick } from '../interface';\nimport { ChartEvent } from '../../../constant/event';\nimport type { IEvent } from '../../../event/interface';\nimport { isXAxis } from '../cartesian/util/common';\nimport type { IOrientType } from '../../../typings/space';\nimport type { IComponentOption } from '../../interface/common';\nimport type { StringOrNumber } from '../../../typings';\nimport { breakData } from './util/break-data';\nimport type { IModel } from '../../../model/interface';\n\nexport const e10 = Math.sqrt(50);\nexport const e5 = Math.sqrt(10);\nexport const e2 = Math.sqrt(2);\nconst DEFAULT_TICK_COUNT = 5;\n\nexport interface LinearAxisMixin {\n _scale: LinearScale;\n _scales: LinearScale[];\n _spec: any;\n _nice: boolean;\n _zero: boolean;\n /**\n * spec中申明的min,max\n */\n _domain: { min?: number; max?: number };\n /**\n * 记录一下解析spec后,获取到的domain,\n * 用于在插件(如0值对齐等功能)中使用\n */\n _domainAfterSpec: number[];\n _softMinValue?: number;\n _softMaxValue?: number;\n _expand?: { max?: number; min?: number };\n _tick: ITick | undefined;\n isSeriesDataEnable: any;\n computeDomain: any;\n collectData: (depth?: number, rawData?: boolean) => { min: number; max: number; values: any[] }[];\n /**\n * 这个变量在其他break相关组件和扩展中都有使用\n */\n _break: {\n domain: [number, number][];\n scope: [number, number][];\n breakDomains: [number, number][];\n breaks: ILinearAxisBreakSpec[];\n };\n event: IEvent;\n _orient: IOrientType;\n _option: IComponentOption;\n niceLabelFormatter: (value: StringOrNumber) => StringOrNumber;\n _refreshVisibilityByData: () => boolean;\n}\n\nexport class LinearAxisMixin {\n protected _extend: { [key: string]: number } = {};\n protected _rawDomain: StringOrNumber[] = [];\n getRawDomain() {\n return this._rawDomain;\n }\n\n niceLabelFormatter: (value: StringOrNumber) => StringOrNumber = null;\n\n setExtraAttrFromSpec() {\n isValid(this._spec.nice) && (this._nice = this._spec.nice);\n isValid(this._spec.zero) && (this._zero = this._spec.zero);\n this._expand = this._spec.expand;\n this._domain = getLinearAxisSpecDomain(this._spec);\n }\n transformScaleDomain() {\n this.setScaleNice();\n }\n\n setLinearScaleNice() {\n if (!this._nice) {\n return false;\n }\n let tickCount: number = DEFAULT_TICK_COUNT;\n const tick = this._spec.tick || {};\n\n if (isValidNumber(tick.forceTickCount)) {\n tickCount = tick.forceTickCount;\n } else if (isFunction(tick.tickCount)) {\n const range = this._scale.range();\n let rangeSize = Math.abs(last(range) - range[0]);\n\n if (rangeSize === 1 && this._option) {\n // TODO: need to be optimized, when the range is not updated, use the size of view\n const isX = isXAxis(this._orient);\n rangeSize = isX ? this._option.getChartViewRect().width : this._option.getChartViewRect().height;\n }\n\n // tickCount需要一致,不然会导致效果不一致, fix #2050\n tickCount = tick.tickCount({\n axisLength: rangeSize,\n labelStyle: this._spec.label && this._spec.label.style\n });\n } else if (isValidNumber(tick.tickCount)) {\n tickCount = tick.tickCount;\n } else {\n tickCount = DEFAULT_TICK_COUNT;\n }\n // 如果配置了精度优先,那么最低是 5\n // 否则就直接使用tickCount即可\n if (this._spec.niceType === 'accurateFirst') {\n tickCount = Math.max(DEFAULT_TICK_COUNT, tickCount);\n }\n const { min, max } = this._domain ?? {};\n if (isNil(min) && isNil(max) && isNil(this._softMaxValue) && isNil(this._softMinValue)) {\n return this._scale.nice(tickCount);\n } else if ((isValid(min) || isValid(this._softMinValue)) && isNil(max) && isNil(this._softMaxValue)) {\n return this._scale.niceMax(tickCount);\n } else if (isNil(min) && isNil(this._softMinValue) && (isValid(max) || isValid(this._softMaxValue))) {\n return this._scale.niceMin(tickCount);\n }\n\n return false;\n }\n\n setLogScaleNice() {\n if (!this._nice) {\n return false;\n }\n\n const { min, max } = this._domain ?? {};\n if (isNil(min) && isNil(max) && isNil(this._softMaxValue) && isNil(this._softMinValue)) {\n return this._scale.nice();\n } else if ((isValid(min) || isValid(this._softMinValue)) && isNil(max) && isNil(this._softMaxValue)) {\n return this._scale.niceMax();\n } else if (isNil(min) && isNil(this._softMinValue) && (isValid(max) || isValid(this._softMaxValue))) {\n return this._scale.niceMin();\n }\n\n return false;\n }\n\n setScaleNice() {\n if (this._spec.type === 'log') {\n return this.setLogScaleNice();\n }\n return this.setLinearScaleNice();\n }\n\n dataToPosition(values: any[], cfg?: IAxisLocationCfg): number {\n return this.valueToPosition(values[0]);\n }\n\n valueToPosition(value: any): number {\n return this._scale.scale(value);\n }\n\n computeLinearDomain(data: { min: number; max: number; values: any[] }[]): number[] {\n let domain: number[] = [];\n\n if (data.length) {\n const userSetBreaks = this._spec.breaks && this._spec.breaks.length;\n let values: any[] = [];\n let minDomain: number;\n let maxDomain: number;\n data.forEach(d => {\n const { min, max } = d;\n minDomain = minDomain === undefined ? min : Math.min(minDomain, min as number);\n maxDomain = maxDomain === undefined ? max : Math.max(maxDomain, max as number);\n if (userSetBreaks) {\n values = values.concat(d.values);\n }\n });\n\n if (userSetBreaks) {\n const breakRanges = [];\n const breaks = [];\n // 如果用户手动的手指了max,可以将break的最大值限制在用户设置的最大值范围内\n const breakMaxLimit = isNil(this._domain.max) ? maxDomain : this._domain.max;\n for (let index = 0; index < this._spec.breaks.length; index++) {\n const { range } = this._spec.breaks[index];\n if (range[0] <= range[1] && range[1] <= breakMaxLimit) {\n breakRanges.push(range);\n breaks.push(this._spec.breaks[index]);\n }\n }\n breakRanges.sort((a: [number, number], b: [number, number]) => a[0] - b[0]);\n if (breakRanges.length) {\n const { domain: breakDomains, scope: breakScopes } = breakData(\n values,\n combineDomains(breakRanges),\n this._spec.breaks[0].scopeType\n );\n\n domain = combineDomains(breakDomains);\n this._break = {\n domain: breakDomains,\n scope: breakScopes,\n breakDomains: breakRanges,\n breaks\n };\n } else {\n domain = [minDomain, maxDomain];\n }\n } else {\n domain = [minDomain, maxDomain];\n }\n } else {\n // default value for linear axis\n domain[0] = 0;\n domain[1] = 0;\n }\n this.setSoftDomainMinMax(domain);\n this.expandDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n return domain;\n }\n\n protected expandDomain(domain: number[]): void {\n if (!this._expand) {\n return;\n }\n\n let domainMin = domain[0];\n let domainMax = last(domain);\n\n if (domainMin === domainMax) {\n if (domainMax === 0) {\n domainMax = 1;\n } else if (domainMax > 0) {\n domainMin = 0;\n } else if (domainMax < 0) {\n domainMax = 0;\n }\n }\n\n if (isValid(this._expand.min)) {\n domain[0] = domainMin - (domainMax - domainMin) * this._expand.min;\n }\n if (isValid(this._expand.max)) {\n domain[domain.length - 1] = domainMax + (domainMax - domainMin) * this._expand.max;\n }\n }\n\n protected niceDomain(domain: number[]) {\n const { min: userMin, max: userMax } = getLinearAxisSpecDomain(this._spec);\n if (isValid(userMin) || isValid(userMax) || this._spec.type !== 'linear') {\n // 如果用户设置了 min 或者 max 则按照用户设置的为准\n // 如果是非 linear 类型也不处理\n return domain;\n }\n if (Math.abs(minInArr(domain) - maxInArr(domain)) <= 1e-12) {\n let num = domain[0];\n const flag = num >= 0 ? 1 : -1;\n num = Math.abs(num);\n if (num < 1) {\n domain[0] = 0;\n domain[domain.length - 1] = 1; // 在[0, 1) 区间变成[0, 1]\n } else {\n let step = num / DEFAULT_TICK_COUNT; // 默认5个ticks\n const power = Math.floor(Math.log(step) / Math.LN10);\n const err = step / Math.pow(10, power);\n step = (err >= e10 ? 10 : err >= e5 ? 5 : err >= e2 ? 2 : 1) * Math.pow(10, power);\n\n domain[0] = 0;\n domain[domain.length - 1] = step * 10;\n }\n if (flag < 0) {\n domain.reverse();\n domain[0] *= -1;\n domain[domain.length - 1] *= -1;\n }\n }\n return domain;\n }\n\n protected includeZero(domain: number[]): void {\n if (this._zero) {\n domain[0] = Math.min(domain[0], 0);\n domain[domain.length - 1] = Math.max(last(domain), 0);\n }\n }\n\n // 用户其他模块扩充轴scale的区间\n setExtendDomain(key: string, value: number | undefined) {\n if (value === undefined) {\n delete this._extend[key];\n return;\n }\n this._extend[key] = value;\n const domain = this._scale.domain();\n this.extendDomain(domain);\n this.includeZero(domain);\n this.setDomainMinMax(domain);\n this.niceDomain(domain);\n this._scale.domain(domain, this._nice);\n\n if (this._nice) {\n const niced = this.setScaleNice();\n\n !niced && this._scale.rescale();\n }\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this as any, value: 'domain' });\n }\n\n protected extendDomain(domain: number[]) {\n let temp;\n const domainLast = domain.length - 1;\n const reverse = domain[0] - domain[domainLast] > 0;\n const min = reverse ? domainLast : 0;\n const max = reverse ? 0 : domainLast;\n for (const key in this._extend) {\n temp = this._extend[key];\n temp > domain[max] && (domain[max] = temp);\n temp < domain[min] && (domain[min] = temp);\n }\n }\n\n getDomainSpec() {\n return this._domain;\n }\n\n protected setDomainMinMax(domain: number[]): void {\n if (!this._domain) {\n return;\n }\n const { min, max } = this._domain;\n isValid(min) && (domain[0] = min);\n isValid(max) && (domain[domain.length - 1] = max);\n }\n\n protected setSoftDomainMinMax(domain: number[]): void {\n const { softMin, softMax } = this._spec;\n\n if (isValid(softMin)) {\n let softMinValue = isFunction(softMin) ? softMin(domain) : (softMin as number);\n\n if (isNil(softMinValue)) {\n softMinValue = domain[0];\n }\n\n if (softMinValue <= domain[0]) {\n domain[0] = softMinValue;\n this._softMinValue = softMinValue;\n }\n }\n\n if (isValid(softMax)) {\n let softMaxValue = isFunction(softMax) ? softMax(domain) : (softMax as number);\n\n if (isNil(softMaxValue)) {\n softMaxValue = last(domain);\n }\n\n if (softMaxValue >= last(domain)) {\n domain[domain.length - 1] = softMaxValue;\n }\n\n this._softMaxValue = softMaxValue;\n }\n }\n\n setZero(zero: boolean) {\n if (this._zero !== zero) {\n this._zero = zero;\n this.updateScaleDomain();\n }\n }\n /**\n * @override\n * TODO event.emit是否可以考虑用decorator\n */\n protected updateScaleDomain() {\n if (!this.isSeriesDataEnable()) {\n return;\n }\n if (!this._rawDomain?.length && this._scale) {\n this._updateRawDomain();\n }\n const data = this.collectData();\n const domain: number[] = this.computeLinearDomain(data) as number[];\n this.updateScaleDomainByModel(domain);\n }\n\n /**\n * TODO event.emit是否可以考虑用decorator\n * 数据逻辑外,模块的设置更新对scale-domain的修改操作\n */\n protected updateScaleDomainByModel(domain?: number[]) {\n domain = domain ?? this._scale.domain();\n // 其他模块的设置 domain\n this.extendDomain(domain);\n this.includeZero(domain);\n // 用户 spec 的 min-max\n this.setDomainMinMax(domain);\n // nice 优先级最高\n this.niceDomain(domain);\n this._scale.domain(domain, this._nice);\n // 设置scale的nice-min-max\n if (this._nice) {\n const niced = this.setScaleNice();\n\n !niced && this._scale.rescale();\n }\n this._updateNiceLabelFormatter(domain);\n\n this._domainAfterSpec = this._scale.domain();\n this._refreshVisibilityByData();\n this.event.emit(ChartEvent.scaleDomainUpdate, { model: this as any });\n this.event.emit(ChartEvent.scaleUpdate, { model: this as any, value: 'domain' });\n }\n\n getDomainAfterSpec() {\n return this._domainAfterSpec;\n }\n\n protected _updateNiceLabelFormatter(domain: number[]) {\n // 根据轴 domain 范围做动态判断,取最多 n + 2 位小数\n const domainSpan = Math.abs(last(domain) - domain[0]);\n const n = Math.max(-Math.floor(Math.log10(domainSpan)), 0) + 2;\n const unit = Math.pow(10, n);\n this.niceLabelFormatter = (value: StringOrNumber) => {\n if (isValidNumber(+value)) {\n return Math.round((+value as number) * unit) / unit;\n }\n return value;\n };\n }\n\n protected _updateRawDomain() {\n const data = this.collectData(0, true);\n const domain: number[] = this.computeLinearDomain(data) as number[];\n this._rawDomain = domain;\n this.event.emit(ChartEvent.scaleRawDomainUpdate, { model: this as unknown as IModel });\n }\n\n protected _clearRawDomain() {\n this._rawDomain = [];\n }\n}\n"]}
@@ -18,7 +18,6 @@ export declare class PolarBandAxis<T extends IPolarBandAxisSpec = IPolarBandAxis
18
18
  };
19
19
  protected _scale: BandScale;
20
20
  protected _scales: BandScale[];
21
- protected _updateData: () => void;
22
21
  protected computeDomain(data: {
23
22
  min: number;
24
23
  max: number;
@@ -38,7 +37,6 @@ export declare class PolarBandAxis<T extends IPolarBandAxisSpec = IPolarBandAxis
38
37
  getSpec: () => T;
39
38
  };
40
39
  protected initScales(): void;
41
- reInit(spec?: T): void;
42
40
  protected registerTicksTransform(): string;
43
41
  transformScaleDomain(): void;
44
42
  }
@@ -44,9 +44,6 @@ export class PolarBandAxis extends PolarAxis {
44
44
  initScales() {
45
45
  super.initScales(), this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);
46
46
  }
47
- reInit(spec) {
48
- super.reInit(spec), this._updateData();
49
- }
50
47
  registerTicksTransform() {
51
48
  const name = `${this.type}-ticks`;
52
49
  return registerDataSetInstanceTransform(this._option.dataSet, name, polarAngleAxisDiscreteTicks),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/polar/band-axis.ts"],"names":[],"mappings":"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","file":"band-axis.js","sourcesContent":["import { BandScale } from '@visactor/vscale';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { PolarAxis } from './axis';\nimport { mixin } from '@visactor/vutils';\nimport { BandAxisMixin } from '../mixin/band-axis-mixin';\nimport type { StringOrNumber } from '../../../typings';\nimport type { IPolarBandAxisSpec } from './interface';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport {\n CircleAxis,\n CircleAxisGrid,\n LineAxis,\n LineAxisGrid,\n polarAngleAxisDiscreteTicks\n} from '@visactor/vrender-components';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { VRenderComponentOptions } from '../../../core/interface';\nimport { GridEnum, AxisEnum } from '../interface';\nimport { commonAxis } from '../../../theme/builtin/common/component/axis/common-axis';\nimport { axisBand } from '../../../theme/builtin/common/component/axis/band-axis';\nimport { axisAngle, axisRadius } from '../../../theme/builtin/common/component/axis/polar-axis';\n\nexport interface PolarBandAxis<T extends IPolarBandAxisSpec = IPolarBandAxisSpec>\n extends Pick<\n BandAxisMixin,\n 'valueToPosition' | 'updateGroupScaleRange' | 'getPosition' | 'calcScales' | 'computeBandDomain'\n >,\n PolarAxis<T> {}\n\nexport class PolarBandAxis<T extends IPolarBandAxisSpec = IPolarBandAxisSpec> extends PolarAxis<T> {\n static type = ComponentTypeEnum.polarBandAxis;\n type = ComponentTypeEnum.polarBandAxis;\n\n static specKey = 'axes';\n static readonly builtInTheme = {\n axis: commonAxis,\n axisBand,\n axisAngle,\n axisRadius\n };\n\n protected _scale: BandScale = new BandScale();\n\n protected declare _scales: BandScale[];\n protected declare _updateData: () => void;\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n return this.computeBandDomain(data);\n }\n\n updateScaleRange() {\n const isChanged = super.updateScaleRange();\n this.updateGroupScaleRange();\n\n return isChanged;\n }\n\n // axisHelper\n protected axisHelper() {\n const helper = super.axisHelper();\n const getBandwidth = (depth: number) => {\n return (helper.getScale(depth) as BandScale).bandwidth();\n };\n\n return { ...helper, getBandwidth };\n }\n\n protected initScales() {\n super.initScales();\n this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);\n }\n\n reInit(spec?: T): void {\n super.reInit(spec);\n\n this._updateData();\n }\n\n protected registerTicksTransform() {\n const name = `${this.type}-ticks`;\n registerDataSetInstanceTransform(this._option.dataSet, name, polarAngleAxisDiscreteTicks);\n return name;\n }\n transformScaleDomain() {\n // do nothing\n }\n}\nmixin(PolarBandAxis, BandAxisMixin);\n\nexport const registerPolarBandAxis = () => {\n Factory.registerGraphicComponent(AxisEnum.lineAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.lineAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxisGrid(attrs, options) as unknown as IGroup;\n });\n\n Factory.registerGraphicComponent(AxisEnum.circleAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new CircleAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.circleAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new CircleAxisGrid(attrs, options) as unknown as IGroup;\n });\n registerAxis();\n Factory.registerComponent(PolarBandAxis.type, PolarBandAxis);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/axis/polar/band-axis.ts"],"names":[],"mappings":"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","file":"band-axis.js","sourcesContent":["import { BandScale } from '@visactor/vscale';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { PolarAxis } from './axis';\nimport { mixin } from '@visactor/vutils';\nimport { BandAxisMixin } from '../mixin/band-axis-mixin';\nimport type { StringOrNumber } from '../../../typings';\nimport type { IPolarBandAxisSpec } from './interface';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport {\n CircleAxis,\n CircleAxisGrid,\n LineAxis,\n LineAxisGrid,\n polarAngleAxisDiscreteTicks\n} from '@visactor/vrender-components';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { VRenderComponentOptions } from '../../../core/interface';\nimport { GridEnum, AxisEnum } from '../interface';\nimport { commonAxis } from '../../../theme/builtin/common/component/axis/common-axis';\nimport { axisBand } from '../../../theme/builtin/common/component/axis/band-axis';\nimport { axisAngle, axisRadius } from '../../../theme/builtin/common/component/axis/polar-axis';\n\nexport interface PolarBandAxis<T extends IPolarBandAxisSpec = IPolarBandAxisSpec>\n extends Pick<\n BandAxisMixin,\n 'valueToPosition' | 'updateGroupScaleRange' | 'getPosition' | 'calcScales' | 'computeBandDomain'\n >,\n PolarAxis<T> {}\n\nexport class PolarBandAxis<T extends IPolarBandAxisSpec = IPolarBandAxisSpec> extends PolarAxis<T> {\n static type = ComponentTypeEnum.polarBandAxis;\n type = ComponentTypeEnum.polarBandAxis;\n\n static specKey = 'axes';\n static readonly builtInTheme = {\n axis: commonAxis,\n axisBand,\n axisAngle,\n axisRadius\n };\n\n protected _scale: BandScale = new BandScale();\n\n protected declare _scales: BandScale[];\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n return this.computeBandDomain(data);\n }\n\n updateScaleRange() {\n const isChanged = super.updateScaleRange();\n this.updateGroupScaleRange();\n\n return isChanged;\n }\n\n // axisHelper\n protected axisHelper() {\n const helper = super.axisHelper();\n const getBandwidth = (depth: number) => {\n return (helper.getScale(depth) as BandScale).bandwidth();\n };\n\n return { ...helper, getBandwidth };\n }\n\n protected initScales() {\n super.initScales();\n this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);\n }\n\n protected registerTicksTransform() {\n const name = `${this.type}-ticks`;\n registerDataSetInstanceTransform(this._option.dataSet, name, polarAngleAxisDiscreteTicks);\n return name;\n }\n transformScaleDomain() {\n // do nothing\n }\n}\nmixin(PolarBandAxis, BandAxisMixin);\n\nexport const registerPolarBandAxis = () => {\n Factory.registerGraphicComponent(AxisEnum.lineAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.lineAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxisGrid(attrs, options) as unknown as IGroup;\n });\n\n Factory.registerGraphicComponent(AxisEnum.circleAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new CircleAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.circleAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new CircleAxisGrid(attrs, options) as unknown as IGroup;\n });\n registerAxis();\n Factory.registerComponent(PolarBandAxis.type, PolarBandAxis);\n};\n"]}
@@ -30,10 +30,7 @@ export class PolarLinearAxis extends PolarAxis {
30
30
  this._nice = !0, this._extend = {}, this._scale = new LinearScale;
31
31
  }
32
32
  setAttrFromSpec() {
33
- var _a, _b;
34
33
  super.setAttrFromSpec(), this.setExtraAttrFromSpec();
35
- const tickTransform = null === (_b = null === (_a = this._tickData) || void 0 === _a ? void 0 : _a[0]) || void 0 === _b ? void 0 : _b.getDataView().transformsArr.find((t => t.type === this.registerTicksTransform()));
36
- tickTransform && (tickTransform.options = this._tickTransformOption());
37
34
  }
38
35
  initScales() {
39
36
  super.initScales(), this.setScaleNice();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/polar/linear-axis.ts"],"names":[],"mappings":"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","file":"linear-axis.js","sourcesContent":["import { LinearScale } from '@visactor/vscale';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { PolarAxis } from './axis';\nimport type { IPolarLinearAxisSpec } from './interface/spec';\nimport { LinearAxisMixin } from '../mixin/linear-axis-mixin';\nimport { mixin } from '@visactor/vutils';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport type { IPolarAxisHelper } from './interface';\nimport { CircleAxis, CircleAxisGrid, continuousTicks, LineAxis, LineAxisGrid } from '@visactor/vrender-components';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { VRenderComponentOptions } from '../../../core/interface';\nimport { GridEnum, AxisEnum } from '../interface';\nimport { axisLinear } from '../../../theme/builtin/common/component/axis/linear-axis';\nimport { commonAxis } from '../../../theme/builtin/common/component/axis/common-axis';\nimport { axisAngle, axisRadius } from '../../../theme/builtin/common/component/axis/polar-axis';\n\nexport interface PolarLinearAxis<T extends IPolarLinearAxisSpec = IPolarLinearAxisSpec>\n extends Pick<\n LinearAxisMixin,\n | 'setExtraAttrFromSpec'\n | 'transformScaleDomain'\n | 'valueToPosition'\n | 'computeLinearDomain'\n | 'setScaleNice'\n | 'setExtendDomain'\n >,\n PolarAxis<T> {}\n\nexport class PolarLinearAxis<T extends IPolarLinearAxisSpec = IPolarLinearAxisSpec> extends PolarAxis<T> {\n static type = ComponentTypeEnum.polarLinearAxis;\n type = ComponentTypeEnum.polarLinearAxis;\n\n static specKey = 'axes';\n static readonly builtInTheme = {\n axis: commonAxis,\n axisLinear,\n axisAngle,\n axisRadius\n };\n\n protected _zero: boolean = true;\n protected _nice: boolean = true;\n protected _extend: { [key: string]: number } = {};\n\n protected _scale = new LinearScale();\n protected declare _groupScales: LinearScale[];\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this.setExtraAttrFromSpec();\n const tickTransform = this._tickData?.[0]\n ?.getDataView()\n .transformsArr.find(t => t.type === this.registerTicksTransform());\n tickTransform && (tickTransform.options = this._tickTransformOption());\n }\n\n protected initScales() {\n super.initScales();\n this.setScaleNice();\n }\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): number[] {\n return this.computeLinearDomain(data);\n }\n\n protected axisHelper() {\n const helper: IPolarAxisHelper = super.axisHelper();\n helper.setExtendDomain = this.setExtendDomain.bind(this);\n return helper as any;\n }\n\n protected registerTicksTransform() {\n const name = `${this.type}-ticks`;\n registerDataSetInstanceTransform(this._option.dataSet, name, continuousTicks);\n\n return name;\n }\n}\n\nmixin(PolarLinearAxis, LinearAxisMixin);\n\nexport const registerPolarLinearAxis = () => {\n Factory.registerGraphicComponent(AxisEnum.lineAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.lineAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxisGrid(attrs, options) as unknown as IGroup;\n });\n\n Factory.registerGraphicComponent(AxisEnum.circleAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new CircleAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.circleAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new CircleAxisGrid(attrs, options) as unknown as IGroup;\n });\n registerAxis();\n Factory.registerComponent(PolarLinearAxis.type, PolarLinearAxis);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/axis/polar/linear-axis.ts"],"names":[],"mappings":"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","file":"linear-axis.js","sourcesContent":["import { LinearScale } from '@visactor/vscale';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { PolarAxis } from './axis';\nimport type { IPolarLinearAxisSpec } from './interface/spec';\nimport { LinearAxisMixin } from '../mixin/linear-axis-mixin';\nimport { mixin } from '@visactor/vutils';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport type { IPolarAxisHelper } from './interface';\nimport { CircleAxis, CircleAxisGrid, continuousTicks, LineAxis, LineAxisGrid } from '@visactor/vrender-components';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { VRenderComponentOptions } from '../../../core/interface';\nimport { GridEnum, AxisEnum } from '../interface';\nimport { axisLinear } from '../../../theme/builtin/common/component/axis/linear-axis';\nimport { commonAxis } from '../../../theme/builtin/common/component/axis/common-axis';\nimport { axisAngle, axisRadius } from '../../../theme/builtin/common/component/axis/polar-axis';\n\nexport interface PolarLinearAxis<T extends IPolarLinearAxisSpec = IPolarLinearAxisSpec>\n extends Pick<\n LinearAxisMixin,\n | 'setExtraAttrFromSpec'\n | 'transformScaleDomain'\n | 'valueToPosition'\n | 'computeLinearDomain'\n | 'setScaleNice'\n | 'setExtendDomain'\n >,\n PolarAxis<T> {}\n\nexport class PolarLinearAxis<T extends IPolarLinearAxisSpec = IPolarLinearAxisSpec> extends PolarAxis<T> {\n static type = ComponentTypeEnum.polarLinearAxis;\n type = ComponentTypeEnum.polarLinearAxis;\n\n static specKey = 'axes';\n static readonly builtInTheme = {\n axis: commonAxis,\n axisLinear,\n axisAngle,\n axisRadius\n };\n\n protected _zero: boolean = true;\n protected _nice: boolean = true;\n protected _extend: { [key: string]: number } = {};\n\n protected _scale = new LinearScale();\n protected declare _groupScales: LinearScale[];\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this.setExtraAttrFromSpec();\n }\n\n protected initScales() {\n super.initScales();\n this.setScaleNice();\n }\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): number[] {\n return this.computeLinearDomain(data);\n }\n\n protected axisHelper() {\n const helper: IPolarAxisHelper = super.axisHelper();\n helper.setExtendDomain = this.setExtendDomain.bind(this);\n return helper as any;\n }\n\n protected registerTicksTransform() {\n const name = `${this.type}-ticks`;\n registerDataSetInstanceTransform(this._option.dataSet, name, continuousTicks);\n\n return name;\n }\n}\n\nmixin(PolarLinearAxis, LinearAxisMixin);\n\nexport const registerPolarLinearAxis = () => {\n Factory.registerGraphicComponent(AxisEnum.lineAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.lineAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxisGrid(attrs, options) as unknown as IGroup;\n });\n\n Factory.registerGraphicComponent(AxisEnum.circleAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new CircleAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.circleAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new CircleAxisGrid(attrs, options) as unknown as IGroup;\n });\n registerAxis();\n Factory.registerComponent(PolarLinearAxis.type, PolarLinearAxis);\n};\n"]}
@@ -19,20 +19,20 @@ export declare class BaseComponent<T extends IComponentSpec = IComponentSpec> ex
19
19
  protected _regions: IRegion[];
20
20
  getRegions(): IRegion[];
21
21
  protected _container: IGroup;
22
- private _exitingVRenderComponents?;
23
- private _forceReleaseVRenderComponents;
24
22
  created(): void;
25
23
  initLayout(): void;
26
24
  protected _getNeedClearVRenderComponents(): IGraphic[];
27
25
  getVRenderComponents(): IGraphic<Partial<IGraphicAttribute>>[];
28
26
  protected callPlugin(cb: (plugin: IComponentPlugin) => void): void;
29
27
  protected getContainer(): IGroup;
30
- _compareSpec(spec: T, prevSpec: T): import("../../model/interface").IUpdateSpecResult;
31
- beforeRelease(): void;
28
+ _compareSpec(spec: T, prevSpec: T): {
29
+ change: boolean;
30
+ reMake: boolean;
31
+ reRender: boolean;
32
+ reSize: boolean;
33
+ reCompile: boolean;
34
+ };
32
35
  release(): void;
33
- protected _shouldReleaseVRenderComponentsImmediately(): boolean;
34
- protected _forceReleaseExitingVRenderComponents(): void;
35
- protected _releaseVRenderComponent(component: IGraphic): void;
36
36
  clear(): void;
37
37
  compile(): void;
38
38
  compileMarks(group?: IGroup): void;
@@ -20,12 +20,10 @@ import { LayoutModel } from "../../model/layout-model";
20
20
 
21
21
  import { BaseComponentSpecTransformer } from "./base-component-transformer";
22
22
 
23
- import { collectVRenderComponents, releaseVRenderComponent, releaseVRenderComponentSync } from "./release-vrender-component";
24
-
25
23
  export class BaseComponent extends LayoutModel {
26
24
  constructor() {
27
25
  super(...arguments), this.name = "component", this.modelType = "component", this.transformerConstructor = BaseComponentSpecTransformer,
28
- this._forceReleaseVRenderComponents = !1, this._delegateEvent = (component, event, type, item = null, datum = null) => {
26
+ this._delegateEvent = (component, event, type, item = null, datum = null) => {
29
27
  var _a, _b;
30
28
  event instanceof CustomEvent || this.event.emit(type, {
31
29
  model: this,
@@ -73,52 +71,18 @@ export class BaseComponent extends LayoutModel {
73
71
  (null == prevSpec ? void 0 : prevSpec.visible) !== spec.visible && (result.reCompile = !0),
74
72
  result;
75
73
  }
76
- beforeRelease() {
77
- super.beforeRelease(), this._forceReleaseVRenderComponents = !0, this._forceReleaseExitingVRenderComponents();
78
- }
79
74
  release() {
80
75
  var _a;
81
- this._shouldReleaseVRenderComponentsImmediately() && this._forceReleaseExitingVRenderComponents(),
82
- this.clear(), super.release(), null === (_a = this.pluginService) || void 0 === _a || _a.releaseAll(),
76
+ super.release(), this.clear(), null === (_a = this.pluginService) || void 0 === _a || _a.releaseAll(),
83
77
  this.pluginService = null;
84
78
  }
85
- _shouldReleaseVRenderComponentsImmediately() {
86
- return this._forceReleaseVRenderComponents;
87
- }
88
- _forceReleaseExitingVRenderComponents() {
89
- var _a;
90
- (null === (_a = this._exitingVRenderComponents) || void 0 === _a ? void 0 : _a.size) && (this._exitingVRenderComponents.forEach((component => {
91
- var _a, _b, _c;
92
- releaseVRenderComponentSync(component), null === (_c = null === (_b = null === (_a = this._option) || void 0 === _a ? void 0 : _a.globalInstance) || void 0 === _b ? void 0 : _b._unregisterExitingVRenderComponent) || void 0 === _c || _c.call(_b, component);
93
- })), this._exitingVRenderComponents.clear());
94
- }
95
- _releaseVRenderComponent(component) {
96
- var _a;
97
- if (!this._shouldReleaseVRenderComponentsImmediately()) {
98
- const exitingComponents = collectVRenderComponents(component), releasedWithExit = releaseVRenderComponent(component, {
99
- enableExitAnimation: !0,
100
- removeFromParent: !0,
101
- onComplete: () => {
102
- exitingComponents.forEach((exitingComponent => {
103
- var _a, _b, _c, _d;
104
- null === (_a = this._exitingVRenderComponents) || void 0 === _a || _a.delete(exitingComponent),
105
- null === (_d = null === (_c = null === (_b = this._option) || void 0 === _b ? void 0 : _b.globalInstance) || void 0 === _c ? void 0 : _c._unregisterExitingVRenderComponent) || void 0 === _d || _d.call(_c, exitingComponent);
106
- }));
107
- }
108
- });
109
- return releasedWithExit ? (this._exitingVRenderComponents = null !== (_a = this._exitingVRenderComponents) && void 0 !== _a ? _a : new Set,
110
- void exitingComponents.forEach((exitingComponent => {
111
- var _a, _b, _c;
112
- this._exitingVRenderComponents.add(exitingComponent), null === (_c = null === (_b = null === (_a = this._option) || void 0 === _a ? void 0 : _a.globalInstance) || void 0 === _b ? void 0 : _b._registerExitingVRenderComponent) || void 0 === _c || _c.call(_b, exitingComponent);
113
- }))) : void 0;
114
- }
115
- releaseVRenderComponentSync(component);
116
- }
117
79
  clear() {
118
80
  var _a;
119
81
  const components = this._getNeedClearVRenderComponents();
120
82
  components && components.length && components.forEach((c => {
121
- c && this._releaseVRenderComponent(c);
83
+ var _a;
84
+ c && (c.release(!0), null === (_a = this.getContainer()) || void 0 === _a || _a.removeChild(c),
85
+ c = null);
122
86
  })), this._container = null, null === (_a = this.pluginService) || void 0 === _a || _a.clearAll();
123
87
  }
124
88
  compile() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/base/base-component.ts"],"names":[],"mappings":"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","file":"base-component.js","sourcesContent":["import { CustomEvent, type IGraphicAttribute, type IGraphic, type IGroup, type INode } from '@visactor/vrender-core';\nimport type { IRegion } from '../../region/interface';\nimport type { IComponent, IComponentOption } from '../interface';\nimport { ComponentPluginService } from '../../plugin/components/plugin-service';\nimport type { IComponentPluginService, IComponentPlugin } from '../../plugin/components/interface';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual } from '@visactor/vutils';\nimport { Event_Source_Type } from '../../constant/event';\n// import { preprocessSpecOrTheme } from '../../util/spec/preprocess';\nimport type { Datum, ILayoutRect } from '../../typings';\nimport type { IComponentSpec } from './interface';\nimport { LayoutModel } from '../../model/layout-model';\nimport { BaseComponentSpecTransformer } from './base-component-transformer';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport {\n collectVRenderComponents,\n releaseVRenderComponent,\n releaseVRenderComponentSync\n} from './release-vrender-component';\n\nexport class BaseComponent<T extends IComponentSpec = IComponentSpec> extends LayoutModel<T> implements IComponent {\n static transformerConstructor = BaseComponentSpecTransformer;\n name: string = 'component';\n readonly modelType: string = 'component';\n readonly transformerConstructor = BaseComponentSpecTransformer as any;\n pluginService?: IComponentPluginService;\n\n static createComponent(specInfo: IModelSpecInfo, options: IComponentOption): IComponent {\n const { spec, ...others } = specInfo;\n return new this(spec, {\n ...options,\n ...others\n });\n }\n\n protected declare _option: IComponentOption;\n\n protected _regions: IRegion[];\n getRegions() {\n return this._regions;\n }\n\n protected _container: IGroup;\n private _exitingVRenderComponents?: Set<IGraphic>;\n private _forceReleaseVRenderComponents: boolean = false;\n\n created() {\n super.created();\n this.initLayout();\n this.pluginService = new ComponentPluginService(this);\n }\n\n initLayout(): void {\n super.initLayout();\n this._regions = this._regions ?? this._option.getRegionsInIndex();\n this._layout && (this._layout.layoutBindRegionID = this._regions.map(x => x?.id));\n }\n /**\n * 当创建vrender组件时,reCompile 的时候需要清理老的组件,创建新的组件,需要通过这个返回\n * 注意,像label 组件比较特殊,现在是通过componentMark 管理的,所以不需要通过这个接口被清理\n */\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [];\n }\n\n getVRenderComponents() {\n return this._getNeedClearVRenderComponents();\n }\n\n protected callPlugin(cb: (plugin: IComponentPlugin) => void) {\n if (this.pluginService) {\n this.pluginService.getAll().forEach(plugin => cb(plugin));\n }\n }\n\n protected getContainer() {\n if (!this._container) {\n this._container = this._option?.globalInstance.getStage().find(node => node.name === 'root', true) as IGroup;\n }\n\n return this._container;\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (!result.reMake) {\n result.reMake = ['seriesId', 'seriesIndex', 'regionId', 'regionIndex'].some(k => {\n return !isEqual(prevSpec?.[k], spec[k]);\n });\n }\n if ((prevSpec as any)?.visible !== (spec as any).visible) {\n result.reCompile = true;\n }\n return result;\n }\n\n beforeRelease() {\n super.beforeRelease();\n this._forceReleaseVRenderComponents = true;\n this._forceReleaseExitingVRenderComponents();\n }\n\n release() {\n if (this._shouldReleaseVRenderComponentsImmediately()) {\n this._forceReleaseExitingVRenderComponents();\n }\n this.clear();\n super.release();\n\n this.pluginService?.releaseAll();\n this.pluginService = null;\n }\n\n protected _shouldReleaseVRenderComponentsImmediately() {\n return this._forceReleaseVRenderComponents;\n }\n\n protected _forceReleaseExitingVRenderComponents() {\n if (!this._exitingVRenderComponents?.size) {\n return;\n }\n\n this._exitingVRenderComponents.forEach(component => {\n releaseVRenderComponentSync(component);\n (this._option?.globalInstance as any)?._unregisterExitingVRenderComponent?.(component);\n });\n this._exitingVRenderComponents.clear();\n }\n\n protected _releaseVRenderComponent(component: IGraphic) {\n const forceRelease = this._shouldReleaseVRenderComponentsImmediately();\n\n if (!forceRelease) {\n const exitingComponents = collectVRenderComponents(component);\n const releasedWithExit = releaseVRenderComponent(component, {\n enableExitAnimation: true,\n removeFromParent: true,\n onComplete: () => {\n exitingComponents.forEach(exitingComponent => {\n this._exitingVRenderComponents?.delete(exitingComponent);\n (this._option?.globalInstance as any)?._unregisterExitingVRenderComponent?.(exitingComponent);\n });\n }\n });\n\n if (releasedWithExit) {\n this._exitingVRenderComponents = this._exitingVRenderComponents ?? new Set();\n exitingComponents.forEach(exitingComponent => {\n this._exitingVRenderComponents.add(exitingComponent);\n (this._option?.globalInstance as any)?._registerExitingVRenderComponent?.(exitingComponent);\n });\n return;\n }\n\n return;\n }\n\n releaseVRenderComponentSync(component);\n }\n\n clear() {\n const components = this._getNeedClearVRenderComponents();\n if (components && components.length) {\n components.forEach(c => {\n if (c) {\n this._releaseVRenderComponent(c);\n }\n });\n }\n this._container = null;\n this.pluginService?.clearAll();\n }\n\n compile(): void {\n this.compileMarks();\n this.reAppendComponents();\n }\n\n compileMarks(group?: IGroup) {\n this.getMarks().forEach(m => {\n m.compile({ group, context: { model: this } });\n });\n }\n\n reAppendComponents() {\n const components = this._getNeedClearVRenderComponents();\n if (components && components.length) {\n components.forEach(c => {\n if (c && !c.stage) {\n // component is removed remove stage\n\n this.getContainer()?.appendChild(c as unknown as INode);\n }\n });\n }\n }\n\n // 代理组件本身的事件(非内部图形),如坐标轴整体的点击等\n protected _delegateEvent = (component: IGraphic, event: any, type: string, item: any = null, datum: Datum = null) => {\n // 组件这里只代理基础的事件,自定义事件不需要代理\n if (!(event instanceof CustomEvent)) {\n this.event.emit(\n type,\n {\n model: this,\n node: component,\n event,\n item: item,\n datum: datum,\n source: Event_Source_Type.chart,\n chart: this._option?.globalInstance?.getChart()\n },\n 'model'\n );\n }\n };\n\n getBoundsInRect(rect: ILayoutRect, fullRect: ILayoutRect): IBoundsLike {\n return { x1: 0, x2: 0, y1: 0, y2: 0 };\n }\n\n getDatum(graphic?: IGraphic<Partial<IGraphicAttribute>>) {\n // override\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/base/base-component.ts"],"names":[],"mappings":"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","file":"base-component.js","sourcesContent":["import { CustomEvent, type IGraphicAttribute, type IGraphic, type IGroup, type INode } from '@visactor/vrender-core';\nimport type { IRegion } from '../../region/interface';\nimport type { IComponent, IComponentOption } from '../interface';\nimport { ComponentPluginService } from '../../plugin/components/plugin-service';\nimport type { IComponentPluginService, IComponentPlugin } from '../../plugin/components/interface';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual } from '@visactor/vutils';\nimport { Event_Source_Type } from '../../constant/event';\n// import { preprocessSpecOrTheme } from '../../util/spec/preprocess';\nimport type { Datum, ILayoutRect } from '../../typings';\nimport type { IComponentSpec } from './interface';\nimport { LayoutModel } from '../../model/layout-model';\nimport { BaseComponentSpecTransformer } from './base-component-transformer';\nimport type { IModelSpecInfo } from '../../model/interface';\n\nexport class BaseComponent<T extends IComponentSpec = IComponentSpec> extends LayoutModel<T> implements IComponent {\n static transformerConstructor = BaseComponentSpecTransformer;\n name: string = 'component';\n readonly modelType: string = 'component';\n readonly transformerConstructor = BaseComponentSpecTransformer as any;\n pluginService?: IComponentPluginService;\n\n static createComponent(specInfo: IModelSpecInfo, options: IComponentOption): IComponent {\n const { spec, ...others } = specInfo;\n return new this(spec, {\n ...options,\n ...others\n });\n }\n\n protected declare _option: IComponentOption;\n\n protected _regions: IRegion[];\n getRegions() {\n return this._regions;\n }\n\n protected _container: IGroup;\n\n created() {\n super.created();\n this.initLayout();\n this.pluginService = new ComponentPluginService(this);\n }\n\n initLayout(): void {\n super.initLayout();\n this._regions = this._regions ?? this._option.getRegionsInIndex();\n this._layout && (this._layout.layoutBindRegionID = this._regions.map(x => x?.id));\n }\n /**\n * 当创建vrender组件时,reCompile 的时候需要清理老的组件,创建新的组件,需要通过这个返回\n * 注意,像label 组件比较特殊,现在是通过componentMark 管理的,所以不需要通过这个接口被清理\n */\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [];\n }\n\n getVRenderComponents() {\n return this._getNeedClearVRenderComponents();\n }\n\n protected callPlugin(cb: (plugin: IComponentPlugin) => void) {\n if (this.pluginService) {\n this.pluginService.getAll().forEach(plugin => cb(plugin));\n }\n }\n\n protected getContainer() {\n if (!this._container) {\n this._container = this._option?.globalInstance.getStage().find(node => node.name === 'root', true) as IGroup;\n }\n\n return this._container;\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (!result.reMake) {\n result.reMake = ['seriesId', 'seriesIndex', 'regionId', 'regionIndex'].some(k => {\n return !isEqual(prevSpec?.[k], spec[k]);\n });\n }\n if ((prevSpec as any)?.visible !== (spec as any).visible) {\n result.reCompile = true;\n }\n return result;\n }\n\n release() {\n super.release();\n this.clear();\n\n this.pluginService?.releaseAll();\n this.pluginService = null;\n }\n\n clear() {\n const components = this._getNeedClearVRenderComponents();\n if (components && components.length) {\n components.forEach(c => {\n if (c) {\n c.release(true);\n this.getContainer()?.removeChild(c as unknown as INode);\n c = null;\n }\n });\n }\n this._container = null;\n this.pluginService?.clearAll();\n }\n\n compile(): void {\n this.compileMarks();\n this.reAppendComponents();\n }\n\n compileMarks(group?: IGroup) {\n this.getMarks().forEach(m => {\n m.compile({ group, context: { model: this } });\n });\n }\n\n reAppendComponents() {\n const components = this._getNeedClearVRenderComponents();\n if (components && components.length) {\n components.forEach(c => {\n if (c && !c.stage) {\n // component is removed remove stage\n\n this.getContainer()?.appendChild(c as unknown as INode);\n }\n });\n }\n }\n\n // 代理组件本身的事件(非内部图形),如坐标轴整体的点击等\n protected _delegateEvent = (component: IGraphic, event: any, type: string, item: any = null, datum: Datum = null) => {\n // 组件这里只代理基础的事件,自定义事件不需要代理\n if (!(event instanceof CustomEvent)) {\n this.event.emit(\n type,\n {\n model: this,\n node: component,\n event,\n item: item,\n datum: datum,\n source: Event_Source_Type.chart,\n chart: this._option?.globalInstance?.getChart()\n },\n 'model'\n );\n }\n };\n\n getBoundsInRect(rect: ILayoutRect, fullRect: ILayoutRect): IBoundsLike {\n return { x1: 0, x2: 0, y1: 0, y2: 0 };\n }\n\n getDatum(graphic?: IGraphic<Partial<IGraphicAttribute>>) {\n // override\n return;\n }\n}\n"]}
@@ -48,7 +48,6 @@ export declare class Brush<T extends IBrushSpec = IBrushSpec> extends BaseCompon
48
48
  private _zoomRecord;
49
49
  static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
50
50
  init(): void;
51
- reInit(spec?: T): void;
52
51
  private _initNeedOperatedItem;
53
52
  created(): void;
54
53
  protected _bindRegions(): void;
@@ -56,8 +55,13 @@ export declare class Brush<T extends IBrushSpec = IBrushSpec> extends BaseCompon
56
55
  private _initRegionAxisMap;
57
56
  private _initAxisDataZoomMap;
58
57
  protected initEvent(): void;
59
- _compareSpec(spec: T, prevSpec: T): import("../../model/interface").IUpdateSpecResult;
60
- protected _isComponentOnlySpecChange(spec: T, prevSpec: T): boolean;
58
+ _compareSpec(spec: T, prevSpec: T): {
59
+ change: boolean;
60
+ reMake: boolean;
61
+ reRender: boolean;
62
+ reSize: boolean;
63
+ reCompile: boolean;
64
+ };
61
65
  onLayoutEnd(): void;
62
66
  protected _updateBrushComponent(region: IRegion, componentIndex: number): void;
63
67
  protected _shouldEnableInteractive(): boolean;
@@ -24,13 +24,7 @@ import { brush } from "../../theme/builtin/common/component/brush";
24
24
 
25
25
  import { isReverse, statePointToData } from "../data-zoom/util";
26
26
 
27
- import { addGraphicState, removeGraphicState } from "../../util/graphic-state";
28
-
29
- const IN_BRUSH_STATE = "inBrush", OUT_BRUSH_STATE = "outOfBrush", BRUSH_COMPONENT_ONLY_CHANGE_KEYS = {
30
- style: !0,
31
- inBrush: !0,
32
- outOfBrush: !0
33
- };
27
+ const IN_BRUSH_STATE = "inBrush", OUT_BRUSH_STATE = "outOfBrush";
34
28
 
35
29
  export class Brush extends BaseComponent {
36
30
  constructor() {
@@ -53,9 +47,6 @@ export class Brush extends BaseComponent {
53
47
  }));
54
48
  }));
55
49
  }
56
- reInit(spec) {
57
- super.reInit(spec), this.init();
58
- }
59
50
  _initNeedOperatedItem() {
60
51
  const seriesUserId = this._spec.seriesId, seriesIndex = this._spec.seriesIndex;
61
52
  this._relativeRegions.forEach((r => {
@@ -100,14 +91,7 @@ export class Brush extends BaseComponent {
100
91
  this._updateBrushComponent(region, index);
101
92
  }));
102
93
  const result = super._compareSpec(spec, prevSpec);
103
- return isEqual(prevSpec, spec) || (result.change = !0, result.reRender = !0, result.reMake || result.reCompile || !this._isComponentOnlySpecChange(spec, prevSpec) ? result.reMake = !0 : result.effects = Object.assign(Object.assign({}, result.effects), {
104
- component: !0,
105
- layout: !0,
106
- render: !0
107
- })), result;
108
- }
109
- _isComponentOnlySpecChange(spec, prevSpec) {
110
- return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every((key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || BRUSH_COMPONENT_ONLY_CHANGE_KEYS[key]));
94
+ return isEqual(prevSpec, spec) || (result.reRender = !0, result.reMake = !0), result;
111
95
  }
112
96
  onLayoutEnd() {
113
97
  var _a;
@@ -119,11 +103,9 @@ export class Brush extends BaseComponent {
119
103
  }))));
120
104
  }
121
105
  _updateBrushComponent(region, componentIndex) {
122
- var _a;
123
106
  const interactiveAttr = this._getBrushInteractiveAttr(region), brushComponent = this._brushComponents[componentIndex];
124
- brushComponent.setAttributes(Object.assign({
125
- brushStyle: transformToGraphic(null === (_a = this._spec) || void 0 === _a ? void 0 : _a.style)
126
- }, interactiveAttr)), this._initMarkBrushState(componentIndex, ""), brushComponent.children[0].removeAllChild();
107
+ brushComponent.setAttributes(interactiveAttr), this._initMarkBrushState(componentIndex, ""),
108
+ brushComponent.children[0].removeAllChild();
127
109
  }
128
110
  _shouldEnableInteractive() {
129
111
  return !1 !== this.getOption().getCompiler().getOption().interactive;
@@ -248,11 +230,11 @@ export class Brush extends BaseComponent {
248
230
  graphics && graphics.length && graphics.forEach((graphicItem => {
249
231
  var _a, _b, _c;
250
232
  const elementKey = mark.id + "_" + graphicItem.context.key, isBrushContainItem = this._isBrushContainItem(operateMask.globalAABBBounds, pointsCoord, graphicItem);
251
- (null === (_a = this._outOfBrushElementsMap) || void 0 === _a ? void 0 : _a[elementKey]) && isBrushContainItem ? (addGraphicState(graphicItem, "inBrush", !0),
233
+ (null === (_a = this._outOfBrushElementsMap) || void 0 === _a ? void 0 : _a[elementKey]) && isBrushContainItem ? (graphicItem.addState("inBrush", !0),
252
234
  this._inBrushElementsMap[null == operateMask ? void 0 : operateMask.name] || (this._inBrushElementsMap[null == operateMask ? void 0 : operateMask.name] = {}),
253
235
  this._inBrushElementsMap[null == operateMask ? void 0 : operateMask.name][elementKey] = graphicItem,
254
- delete this._outOfBrushElementsMap[elementKey]) : (null === (_c = null === (_b = this._inBrushElementsMap) || void 0 === _b ? void 0 : _b[null == operateMask ? void 0 : operateMask.name]) || void 0 === _c ? void 0 : _c[elementKey]) && !isBrushContainItem && (removeGraphicState(graphicItem, "inBrush"),
255
- addGraphicState(graphicItem, "outOfBrush", !0), this._outOfBrushElementsMap[elementKey] = graphicItem,
236
+ delete this._outOfBrushElementsMap[elementKey]) : (null === (_c = null === (_b = this._inBrushElementsMap) || void 0 === _b ? void 0 : _b[null == operateMask ? void 0 : operateMask.name]) || void 0 === _c ? void 0 : _c[elementKey]) && !isBrushContainItem && (graphicItem.removeState("inBrush"),
237
+ graphicItem.addState("outOfBrush", !0), this._outOfBrushElementsMap[elementKey] = graphicItem,
256
238
  delete this._inBrushElementsMap[operateMask.name][elementKey]);
257
239
  }));
258
240
  }));
@@ -276,11 +258,11 @@ export class Brush extends BaseComponent {
276
258
  graphics && graphics.length && graphics.forEach((graphicItem => {
277
259
  var _a, _b, _c;
278
260
  const {key: key} = graphicItem.context, elementKey = mark.id + "_" + graphicItem.context.key;
279
- (null === (_a = this._linkedOutOfBrushElementsMap) || void 0 === _a ? void 0 : _a[elementKey]) && this._isBrushContainItem(operateMask.globalAABBBounds, pointsCoord, graphicItem) ? (addGraphicState(graphicItem, "inBrush", !0),
261
+ (null === (_a = this._linkedOutOfBrushElementsMap) || void 0 === _a ? void 0 : _a[elementKey]) && this._isBrushContainItem(operateMask.globalAABBBounds, pointsCoord, graphicItem) ? (graphicItem.addState("inBrush", !0),
280
262
  this._linkedInBrushElementsMap[null == operateMask ? void 0 : operateMask.name] || (this._linkedInBrushElementsMap[null == operateMask ? void 0 : operateMask.name] = {}),
281
263
  this._linkedInBrushElementsMap[null == operateMask ? void 0 : operateMask.name][elementKey] = graphicItem,
282
- delete this._linkedOutOfBrushElementsMap[elementKey]) : (null === (_c = null === (_b = this._linkedInBrushElementsMap) || void 0 === _b ? void 0 : _b[null == operateMask ? void 0 : operateMask.name]) || void 0 === _c ? void 0 : _c[elementKey]) && !this._isBrushContainItem(operateMask.globalAABBBounds, pointsCoord, graphicItem) && (removeGraphicState(graphicItem, "inBrush"),
283
- addGraphicState(graphicItem, "outOfBrush", !0), this._linkedOutOfBrushElementsMap[elementKey] = graphicItem);
264
+ delete this._linkedOutOfBrushElementsMap[elementKey]) : (null === (_c = null === (_b = this._linkedInBrushElementsMap) || void 0 === _b ? void 0 : _b[null == operateMask ? void 0 : operateMask.name]) || void 0 === _c ? void 0 : _c[elementKey]) && !this._isBrushContainItem(operateMask.globalAABBBounds, pointsCoord, graphicItem) && (graphicItem.removeState("inBrush"),
265
+ graphicItem.addState("outOfBrush", !0), this._linkedOutOfBrushElementsMap[elementKey] = graphicItem);
284
266
  }));
285
267
  }));
286
268
  }
@@ -314,7 +296,7 @@ export class Brush extends BaseComponent {
314
296
  const graphics = mark.getGraphics();
315
297
  graphics && graphics.length && graphics.forEach((el => {
316
298
  const elementKey = mark.id + "_" + el.context.key;
317
- removeGraphicState(el, [ "inBrush", "outOfBrush" ]), stateName && addGraphicState(el, stateName, !0),
299
+ el.removeState("inBrush"), el.removeState("outOfBrush"), stateName && el.addState(stateName, !0),
318
300
  elementMap[elementKey] = el;
319
301
  }));
320
302
  }));