@visactor/vchart 2.1.0-alpha.0 → 2.1.0-alpha.10

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 (516) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +5977 -3297
  3. package/build/index.js +5977 -3297
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/base/base-chart-transformer.d.ts +3 -0
  7. package/cjs/chart/base/base-chart-transformer.js +23 -3
  8. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  9. package/cjs/chart/base/base-chart.d.ts +25 -9
  10. package/cjs/chart/base/base-chart.js +199 -27
  11. package/cjs/chart/base/base-chart.js.map +1 -1
  12. package/cjs/chart/gauge/gauge-transformer.js +3 -2
  13. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  14. package/cjs/chart/interface/chart.d.ts +1 -0
  15. package/cjs/chart/interface/chart.js.map +1 -1
  16. package/cjs/chart/pie/base/pie-transformer.js +2 -2
  17. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  18. package/cjs/chart/polar/polar-transformer.js +1 -1
  19. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  20. package/cjs/chart/polar/progress-like/progress-like-transformer.js +1 -1
  21. package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  22. package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -1
  23. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  24. package/cjs/chart/progress/linear/linear-progress-transformer.js +1 -1
  25. package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  26. package/cjs/chart/radar/radar-transformer.js +3 -2
  27. package/cjs/chart/radar/radar-transformer.js.map +1 -1
  28. package/cjs/chart/range-area/range-area-transformer.js +2 -2
  29. package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
  30. package/cjs/chart/rose/rose-transformer.js +2 -1
  31. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  32. package/cjs/chart/util.d.ts +4 -1
  33. package/cjs/chart/util.js +40 -4
  34. package/cjs/chart/util.js.map +1 -1
  35. package/cjs/chart/waterfall/waterfall-transformer.js +2 -1
  36. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  37. package/cjs/compile/compiler.js +11 -9
  38. package/cjs/compile/compiler.js.map +1 -1
  39. package/cjs/compile/data/compilable-data.d.ts +1 -1
  40. package/cjs/compile/data/compilable-data.js +1 -1
  41. package/cjs/compile/data/compilable-data.js.map +1 -1
  42. package/cjs/compile/grammar-item.d.ts +1 -1
  43. package/cjs/compile/grammar-item.js.map +1 -1
  44. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  45. package/cjs/compile/interface/compilable-item.js.map +1 -1
  46. package/cjs/component/axis/base-axis.d.ts +2 -7
  47. package/cjs/component/axis/base-axis.js +26 -6
  48. package/cjs/component/axis/base-axis.js.map +1 -1
  49. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -7
  50. package/cjs/component/axis/mixin/linear-axis-mixin.js +7 -10
  51. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  52. package/cjs/component/axis/polar/band-axis.d.ts +2 -0
  53. package/cjs/component/axis/polar/band-axis.js +3 -0
  54. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  55. package/cjs/component/axis/polar/linear-axis.js +3 -0
  56. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  57. package/cjs/component/base/base-component.d.ts +7 -7
  58. package/cjs/component/base/base-component.js +41 -6
  59. package/cjs/component/base/base-component.js.map +1 -1
  60. package/cjs/component/base/release-vrender-component.d.ts +10 -0
  61. package/cjs/component/base/release-vrender-component.js +37 -0
  62. package/cjs/component/base/release-vrender-component.js.map +1 -0
  63. package/cjs/component/brush/brush.d.ts +3 -7
  64. package/cjs/component/brush/brush.js +22 -5
  65. package/cjs/component/brush/brush.js.map +1 -1
  66. package/cjs/component/crosshair/base.d.ts +4 -7
  67. package/cjs/component/crosshair/base.js +30 -2
  68. package/cjs/component/crosshair/base.js.map +1 -1
  69. package/cjs/component/custom-mark/custom-mark.d.ts +4 -7
  70. package/cjs/component/custom-mark/custom-mark.js +27 -3
  71. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  72. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -7
  73. package/cjs/component/data-zoom/data-filter-base-component.js +15 -2
  74. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  75. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  76. package/cjs/component/data-zoom/data-zoom/data-zoom.js +19 -1
  77. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  78. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  79. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
  80. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  81. package/cjs/component/geo/geo-coordinate.d.ts +1 -7
  82. package/cjs/component/index.js +1 -2
  83. package/cjs/component/indicator/indicator.d.ts +1 -0
  84. package/cjs/component/indicator/indicator.js +11 -2
  85. package/cjs/component/indicator/indicator.js.map +1 -1
  86. package/cjs/component/indicator/util.d.ts +4 -3
  87. package/cjs/component/indicator/util.js +1 -1
  88. package/cjs/component/indicator/util.js.map +1 -1
  89. package/cjs/component/label/base-label.d.ts +1 -7
  90. package/cjs/component/label/base-label.js +6 -2
  91. package/cjs/component/label/base-label.js.map +1 -1
  92. package/cjs/component/label/label.js +1 -1
  93. package/cjs/component/label/label.js.map +1 -1
  94. package/cjs/component/legend/base-legend.d.ts +2 -7
  95. package/cjs/component/legend/base-legend.js +20 -3
  96. package/cjs/component/legend/base-legend.js.map +1 -1
  97. package/cjs/component/marker/base-marker.d.ts +14 -7
  98. package/cjs/component/marker/base-marker.js +108 -12
  99. package/cjs/component/marker/base-marker.js.map +1 -1
  100. package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
  101. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  102. package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
  103. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  104. package/cjs/component/marker/mark-line/base-mark-line.js +2 -4
  105. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  106. package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
  107. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  108. package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
  109. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  110. package/cjs/component/marker/mark-point/base-mark-point.js +20 -6
  111. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  112. package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
  113. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  114. package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
  115. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  116. package/cjs/component/marker/utils.d.ts +4 -4
  117. package/cjs/component/marker/utils.js +27 -23
  118. package/cjs/component/marker/utils.js.map +1 -1
  119. package/cjs/component/player/player.d.ts +1 -0
  120. package/cjs/component/player/player.js +10 -0
  121. package/cjs/component/player/player.js.map +1 -1
  122. package/cjs/component/title/title.d.ts +1 -7
  123. package/cjs/component/title/title.js +6 -2
  124. package/cjs/component/title/title.js.map +1 -1
  125. package/cjs/component/tooltip/tooltip.d.ts +1 -0
  126. package/cjs/component/tooltip/tooltip.js +8 -0
  127. package/cjs/component/tooltip/tooltip.js.map +1 -1
  128. package/cjs/constant/attribute.js +2 -1
  129. package/cjs/constant/scatter.js +1 -2
  130. package/cjs/constant/waterfall.js +2 -1
  131. package/cjs/core/expression-function.js +1 -1
  132. package/cjs/core/vchart.d.ts +5 -1
  133. package/cjs/core/vchart.js +29 -17
  134. package/cjs/core/vchart.js.map +1 -1
  135. package/cjs/data/data-view-utils.d.ts +5 -0
  136. package/cjs/data/data-view-utils.js +58 -0
  137. package/cjs/data/data-view-utils.js.map +1 -0
  138. package/cjs/data/initialize.js +1 -1
  139. package/cjs/data/register.js +1 -1
  140. package/cjs/data/transforms/box-plot.d.ts +4 -1
  141. package/cjs/data/transforms/box-plot.js +3 -3
  142. package/cjs/data/transforms/box-plot.js.map +1 -1
  143. package/cjs/data/transforms/correlation-center.d.ts +11 -4
  144. package/cjs/data/transforms/correlation-center.js +3 -2
  145. package/cjs/data/transforms/correlation-center.js.map +1 -1
  146. package/cjs/data/transforms/correlation.d.ts +18 -15
  147. package/cjs/data/transforms/correlation.js +22 -17
  148. package/cjs/data/transforms/correlation.js.map +1 -1
  149. package/cjs/data/transforms/funnel.d.ts +10 -8
  150. package/cjs/data/transforms/funnel.js +4 -3
  151. package/cjs/data/transforms/funnel.js.map +1 -1
  152. package/cjs/data/transforms/lookup.d.ts +3 -3
  153. package/cjs/data/transforms/lookup.js +12 -7
  154. package/cjs/data/transforms/lookup.js.map +1 -1
  155. package/cjs/data/transforms/map.d.ts +8 -2
  156. package/cjs/data/transforms/map.js +9 -6
  157. package/cjs/data/transforms/map.js.map +1 -1
  158. package/cjs/data/transforms/sankey.d.ts +12 -4
  159. package/cjs/data/transforms/sankey.js +18 -13
  160. package/cjs/data/transforms/sankey.js.map +1 -1
  161. package/cjs/data/transforms/stack-split.d.ts +2 -1
  162. package/cjs/data/transforms/stack-split.js +1 -1
  163. package/cjs/data/transforms/stack-split.js.map +1 -1
  164. package/cjs/data/transforms/treemap.d.ts +5 -3
  165. package/cjs/data/transforms/treemap.js +7 -6
  166. package/cjs/data/transforms/treemap.js.map +1 -1
  167. package/cjs/data/transforms/venn.d.ts +4 -2
  168. package/cjs/data/transforms/venn.js +4 -4
  169. package/cjs/data/transforms/venn.js.map +1 -1
  170. package/cjs/data/transforms/waterfall.d.ts +4 -2
  171. package/cjs/data/transforms/waterfall.js +7 -7
  172. package/cjs/data/transforms/waterfall.js.map +1 -1
  173. package/cjs/env/env.js +1 -1
  174. package/cjs/env/index.js +1 -1
  175. package/cjs/event/event.d.ts +4 -0
  176. package/cjs/event/event.js +26 -7
  177. package/cjs/event/event.js.map +1 -1
  178. package/cjs/mark/base/base-mark.d.ts +12 -2
  179. package/cjs/mark/base/base-mark.js +86 -23
  180. package/cjs/mark/base/base-mark.js.map +1 -1
  181. package/cjs/mark/component.d.ts +9 -0
  182. package/cjs/mark/component.js +51 -3
  183. package/cjs/mark/component.js.map +1 -1
  184. package/cjs/mark/group.js +1 -1
  185. package/cjs/mark/group.js.map +1 -1
  186. package/cjs/mark/interface/mark.d.ts +2 -0
  187. package/cjs/mark/interface/mark.js.map +1 -1
  188. package/cjs/model/base-model.d.ts +3 -15
  189. package/cjs/model/base-model.js.map +1 -1
  190. package/cjs/model/interface.d.ts +13 -0
  191. package/cjs/model/interface.js.map +1 -1
  192. package/cjs/region/region.d.ts +1 -7
  193. package/cjs/scale/color-ordinal-scale.d.ts +1 -0
  194. package/cjs/scale/color-ordinal-scale.js +3 -0
  195. package/cjs/scale/color-ordinal-scale.js.map +1 -1
  196. package/cjs/scale/global-scale.js +9 -2
  197. package/cjs/scale/global-scale.js.map +1 -1
  198. package/cjs/series/area/area.d.ts +2 -0
  199. package/cjs/series/area/area.js +6 -0
  200. package/cjs/series/area/area.js.map +1 -1
  201. package/cjs/series/bar/bar.d.ts +3 -0
  202. package/cjs/series/bar/bar.js +30 -4
  203. package/cjs/series/bar/bar.js.map +1 -1
  204. package/cjs/series/base/base-series.d.ts +10 -7
  205. package/cjs/series/base/base-series.js +78 -18
  206. package/cjs/series/base/base-series.js.map +1 -1
  207. package/cjs/series/base/constant.d.ts +3 -0
  208. package/cjs/series/base/constant.js +9 -1
  209. package/cjs/series/base/constant.js.map +1 -1
  210. package/cjs/series/box-plot/box-plot.d.ts +2 -0
  211. package/cjs/series/box-plot/box-plot.js +16 -4
  212. package/cjs/series/box-plot/box-plot.js.map +1 -1
  213. package/cjs/series/correlation/correlation.js +13 -11
  214. package/cjs/series/correlation/correlation.js.map +1 -1
  215. package/cjs/series/dot/dot.d.ts +12 -0
  216. package/cjs/series/dot/dot.js +16 -1
  217. package/cjs/series/dot/dot.js.map +1 -1
  218. package/cjs/series/funnel/funnel.js +5 -8
  219. package/cjs/series/funnel/funnel.js.map +1 -1
  220. package/cjs/series/heatmap/heatmap.d.ts +2 -0
  221. package/cjs/series/heatmap/heatmap.js +10 -0
  222. package/cjs/series/heatmap/heatmap.js.map +1 -1
  223. package/cjs/series/line/line.d.ts +2 -0
  224. package/cjs/series/line/line.js +6 -0
  225. package/cjs/series/line/line.js.map +1 -1
  226. package/cjs/series/map/map.js +3 -3
  227. package/cjs/series/map/map.js.map +1 -1
  228. package/cjs/series/mixin/line-mixin.d.ts +1 -0
  229. package/cjs/series/mixin/line-mixin.js +6 -1
  230. package/cjs/series/mixin/line-mixin.js.map +1 -1
  231. package/cjs/series/pie/pie.d.ts +3 -7
  232. package/cjs/series/pie/pie.js +16 -1
  233. package/cjs/series/pie/pie.js.map +1 -1
  234. package/cjs/series/polar/progress-like/progress-like.d.ts +2 -0
  235. package/cjs/series/polar/progress-like/progress-like.js +16 -1
  236. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  237. package/cjs/series/polar/rose-like/rose-like.d.ts +2 -0
  238. package/cjs/series/polar/rose-like/rose-like.js +15 -1
  239. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  240. package/cjs/series/progress/circular/circular.d.ts +2 -0
  241. package/cjs/series/progress/circular/circular.js +10 -1
  242. package/cjs/series/progress/circular/circular.js.map +1 -1
  243. package/cjs/series/progress/linear/linear.d.ts +2 -0
  244. package/cjs/series/progress/linear/linear.js +19 -1
  245. package/cjs/series/progress/linear/linear.js.map +1 -1
  246. package/cjs/series/sankey/sankey.js +35 -33
  247. package/cjs/series/sankey/sankey.js.map +1 -1
  248. package/cjs/series/scatter/scatter.d.ts +2 -0
  249. package/cjs/series/scatter/scatter.js +9 -1
  250. package/cjs/series/scatter/scatter.js.map +1 -1
  251. package/cjs/series/treemap/treemap.js +23 -20
  252. package/cjs/series/treemap/treemap.js.map +1 -1
  253. package/cjs/series/venn/venn.js +2 -2
  254. package/cjs/series/venn/venn.js.map +1 -1
  255. package/cjs/series/waterfall/waterfall.d.ts +2 -0
  256. package/cjs/series/waterfall/waterfall.js +36 -20
  257. package/cjs/series/waterfall/waterfall.js.map +1 -1
  258. package/cjs/util/graphic-state.d.ts +1 -0
  259. package/cjs/util/graphic-state.js +19 -4
  260. package/cjs/util/graphic-state.js.map +1 -1
  261. package/esm/chart/base/base-chart-transformer.d.ts +3 -0
  262. package/esm/chart/base/base-chart-transformer.js +24 -2
  263. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  264. package/esm/chart/base/base-chart.d.ts +25 -9
  265. package/esm/chart/base/base-chart.js +192 -26
  266. package/esm/chart/base/base-chart.js.map +1 -1
  267. package/esm/chart/gauge/gauge-transformer.js +3 -2
  268. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  269. package/esm/chart/interface/chart.d.ts +1 -0
  270. package/esm/chart/interface/chart.js.map +1 -1
  271. package/esm/chart/pie/base/pie-transformer.js +2 -2
  272. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  273. package/esm/chart/polar/polar-transformer.js +1 -1
  274. package/esm/chart/polar/polar-transformer.js.map +1 -1
  275. package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
  276. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  277. package/esm/chart/progress/circular/circular-progress-transformer.js +2 -1
  278. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  279. package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
  280. package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  281. package/esm/chart/radar/radar-transformer.js +3 -2
  282. package/esm/chart/radar/radar-transformer.js.map +1 -1
  283. package/esm/chart/range-area/range-area-transformer.js +2 -2
  284. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  285. package/esm/chart/rose/rose-transformer.js +2 -1
  286. package/esm/chart/rose/rose-transformer.js.map +1 -1
  287. package/esm/chart/util.d.ts +4 -1
  288. package/esm/chart/util.js +34 -1
  289. package/esm/chart/util.js.map +1 -1
  290. package/esm/chart/waterfall/waterfall-transformer.js +2 -1
  291. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  292. package/esm/compile/compiler.js +11 -9
  293. package/esm/compile/compiler.js.map +1 -1
  294. package/esm/compile/data/compilable-data.d.ts +1 -1
  295. package/esm/compile/data/compilable-data.js +1 -1
  296. package/esm/compile/data/compilable-data.js.map +1 -1
  297. package/esm/compile/grammar-item.d.ts +1 -1
  298. package/esm/compile/grammar-item.js.map +1 -1
  299. package/esm/compile/interface/compilable-item.d.ts +1 -1
  300. package/esm/compile/interface/compilable-item.js.map +1 -1
  301. package/esm/component/axis/base-axis.d.ts +2 -7
  302. package/esm/component/axis/base-axis.js +26 -5
  303. package/esm/component/axis/base-axis.js.map +1 -1
  304. package/esm/component/axis/cartesian/band-axis.d.ts +1 -7
  305. package/esm/component/axis/mixin/linear-axis-mixin.js +7 -10
  306. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  307. package/esm/component/axis/polar/band-axis.d.ts +2 -0
  308. package/esm/component/axis/polar/band-axis.js +3 -0
  309. package/esm/component/axis/polar/band-axis.js.map +1 -1
  310. package/esm/component/axis/polar/linear-axis.js +3 -0
  311. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  312. package/esm/component/base/base-component.d.ts +7 -7
  313. package/esm/component/base/base-component.js +41 -5
  314. package/esm/component/base/base-component.js.map +1 -1
  315. package/esm/component/base/release-vrender-component.d.ts +10 -0
  316. package/esm/component/base/release-vrender-component.js +24 -0
  317. package/esm/component/base/release-vrender-component.js.map +1 -0
  318. package/esm/component/brush/brush.d.ts +3 -7
  319. package/esm/component/brush/brush.js +20 -4
  320. package/esm/component/brush/brush.js.map +1 -1
  321. package/esm/component/crosshair/base.d.ts +4 -7
  322. package/esm/component/crosshair/base.js +26 -2
  323. package/esm/component/crosshair/base.js.map +1 -1
  324. package/esm/component/custom-mark/custom-mark.d.ts +4 -7
  325. package/esm/component/custom-mark/custom-mark.js +27 -2
  326. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  327. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -7
  328. package/esm/component/data-zoom/data-filter-base-component.js +14 -2
  329. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  330. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
  331. package/esm/component/data-zoom/data-zoom/data-zoom.js +20 -0
  332. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  333. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  334. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
  335. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  336. package/esm/component/geo/geo-coordinate.d.ts +1 -7
  337. package/esm/component/index.js +1 -2
  338. package/esm/component/indicator/indicator.d.ts +1 -0
  339. package/esm/component/indicator/indicator.js +11 -2
  340. package/esm/component/indicator/indicator.js.map +1 -1
  341. package/esm/component/indicator/util.d.ts +4 -3
  342. package/esm/component/indicator/util.js +2 -2
  343. package/esm/component/indicator/util.js.map +1 -1
  344. package/esm/component/label/base-label.d.ts +1 -7
  345. package/esm/component/label/base-label.js +5 -1
  346. package/esm/component/label/base-label.js.map +1 -1
  347. package/esm/component/label/label.js +1 -1
  348. package/esm/component/label/label.js.map +1 -1
  349. package/esm/component/legend/base-legend.d.ts +2 -7
  350. package/esm/component/legend/base-legend.js +20 -2
  351. package/esm/component/legend/base-legend.js.map +1 -1
  352. package/esm/component/marker/base-marker.d.ts +14 -7
  353. package/esm/component/marker/base-marker.js +109 -11
  354. package/esm/component/marker/base-marker.js.map +1 -1
  355. package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
  356. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  357. package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
  358. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  359. package/esm/component/marker/mark-line/base-mark-line.js +2 -4
  360. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  361. package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
  362. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  363. package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
  364. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  365. package/esm/component/marker/mark-point/base-mark-point.js +19 -6
  366. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  367. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  368. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  369. package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
  370. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  371. package/esm/component/marker/utils.d.ts +4 -4
  372. package/esm/component/marker/utils.js +27 -23
  373. package/esm/component/marker/utils.js.map +1 -1
  374. package/esm/component/player/player.d.ts +1 -0
  375. package/esm/component/player/player.js +10 -0
  376. package/esm/component/player/player.js.map +1 -1
  377. package/esm/component/title/title.d.ts +1 -7
  378. package/esm/component/title/title.js +6 -2
  379. package/esm/component/title/title.js.map +1 -1
  380. package/esm/component/tooltip/tooltip.d.ts +1 -0
  381. package/esm/component/tooltip/tooltip.js +9 -1
  382. package/esm/component/tooltip/tooltip.js.map +1 -1
  383. package/esm/constant/attribute.js +2 -1
  384. package/esm/constant/scatter.js +1 -2
  385. package/esm/constant/waterfall.js +2 -1
  386. package/esm/core/expression-function.js +1 -1
  387. package/esm/core/vchart.d.ts +5 -1
  388. package/esm/core/vchart.js +30 -17
  389. package/esm/core/vchart.js.map +1 -1
  390. package/esm/data/data-view-utils.d.ts +5 -0
  391. package/esm/data/data-view-utils.js +46 -0
  392. package/esm/data/data-view-utils.js.map +1 -0
  393. package/esm/data/initialize.js +1 -1
  394. package/esm/data/register.js +1 -1
  395. package/esm/data/transforms/box-plot.d.ts +4 -1
  396. package/esm/data/transforms/box-plot.js +4 -4
  397. package/esm/data/transforms/box-plot.js.map +1 -1
  398. package/esm/data/transforms/correlation-center.d.ts +11 -4
  399. package/esm/data/transforms/correlation-center.js +4 -2
  400. package/esm/data/transforms/correlation-center.js.map +1 -1
  401. package/esm/data/transforms/correlation.d.ts +18 -15
  402. package/esm/data/transforms/correlation.js +13 -8
  403. package/esm/data/transforms/correlation.js.map +1 -1
  404. package/esm/data/transforms/funnel.d.ts +10 -8
  405. package/esm/data/transforms/funnel.js +5 -3
  406. package/esm/data/transforms/funnel.js.map +1 -1
  407. package/esm/data/transforms/lookup.d.ts +3 -3
  408. package/esm/data/transforms/lookup.js +12 -6
  409. package/esm/data/transforms/lookup.js.map +1 -1
  410. package/esm/data/transforms/map.d.ts +8 -2
  411. package/esm/data/transforms/map.js +11 -6
  412. package/esm/data/transforms/map.js.map +1 -1
  413. package/esm/data/transforms/sankey.d.ts +12 -4
  414. package/esm/data/transforms/sankey.js +19 -14
  415. package/esm/data/transforms/sankey.js.map +1 -1
  416. package/esm/data/transforms/stack-split.d.ts +2 -1
  417. package/esm/data/transforms/stack-split.js +2 -2
  418. package/esm/data/transforms/stack-split.js.map +1 -1
  419. package/esm/data/transforms/treemap.d.ts +5 -3
  420. package/esm/data/transforms/treemap.js +8 -5
  421. package/esm/data/transforms/treemap.js.map +1 -1
  422. package/esm/data/transforms/venn.d.ts +4 -2
  423. package/esm/data/transforms/venn.js +5 -3
  424. package/esm/data/transforms/venn.js.map +1 -1
  425. package/esm/data/transforms/waterfall.d.ts +4 -2
  426. package/esm/data/transforms/waterfall.js +7 -8
  427. package/esm/data/transforms/waterfall.js.map +1 -1
  428. package/esm/env/env.js +1 -1
  429. package/esm/env/index.js +1 -1
  430. package/esm/event/event.d.ts +4 -0
  431. package/esm/event/event.js +26 -7
  432. package/esm/event/event.js.map +1 -1
  433. package/esm/mark/base/base-mark.d.ts +12 -2
  434. package/esm/mark/base/base-mark.js +86 -22
  435. package/esm/mark/base/base-mark.js.map +1 -1
  436. package/esm/mark/component.d.ts +9 -0
  437. package/esm/mark/component.js +51 -2
  438. package/esm/mark/component.js.map +1 -1
  439. package/esm/mark/group.js +1 -1
  440. package/esm/mark/group.js.map +1 -1
  441. package/esm/mark/interface/mark.d.ts +2 -0
  442. package/esm/mark/interface/mark.js.map +1 -1
  443. package/esm/model/base-model.d.ts +3 -15
  444. package/esm/model/base-model.js.map +1 -1
  445. package/esm/model/interface.d.ts +13 -0
  446. package/esm/model/interface.js.map +1 -1
  447. package/esm/region/region.d.ts +1 -7
  448. package/esm/scale/color-ordinal-scale.d.ts +1 -0
  449. package/esm/scale/color-ordinal-scale.js +3 -0
  450. package/esm/scale/color-ordinal-scale.js.map +1 -1
  451. package/esm/scale/global-scale.js +9 -1
  452. package/esm/scale/global-scale.js.map +1 -1
  453. package/esm/series/area/area.d.ts +2 -0
  454. package/esm/series/area/area.js +7 -1
  455. package/esm/series/area/area.js.map +1 -1
  456. package/esm/series/bar/bar.d.ts +3 -0
  457. package/esm/series/bar/bar.js +30 -4
  458. package/esm/series/bar/bar.js.map +1 -1
  459. package/esm/series/base/base-series.d.ts +10 -7
  460. package/esm/series/base/base-series.js +73 -16
  461. package/esm/series/base/base-series.js.map +1 -1
  462. package/esm/series/base/constant.d.ts +3 -0
  463. package/esm/series/base/constant.js +10 -0
  464. package/esm/series/base/constant.js.map +1 -1
  465. package/esm/series/box-plot/box-plot.d.ts +2 -0
  466. package/esm/series/box-plot/box-plot.js +15 -4
  467. package/esm/series/box-plot/box-plot.js.map +1 -1
  468. package/esm/series/correlation/correlation.js +13 -11
  469. package/esm/series/correlation/correlation.js.map +1 -1
  470. package/esm/series/dot/dot.d.ts +12 -0
  471. package/esm/series/dot/dot.js +17 -0
  472. package/esm/series/dot/dot.js.map +1 -1
  473. package/esm/series/funnel/funnel.js +5 -8
  474. package/esm/series/funnel/funnel.js.map +1 -1
  475. package/esm/series/heatmap/heatmap.d.ts +2 -0
  476. package/esm/series/heatmap/heatmap.js +10 -0
  477. package/esm/series/heatmap/heatmap.js.map +1 -1
  478. package/esm/series/line/line.d.ts +2 -0
  479. package/esm/series/line/line.js +7 -1
  480. package/esm/series/line/line.js.map +1 -1
  481. package/esm/series/map/map.js +3 -3
  482. package/esm/series/map/map.js.map +1 -1
  483. package/esm/series/mixin/line-mixin.d.ts +1 -0
  484. package/esm/series/mixin/line-mixin.js +5 -0
  485. package/esm/series/mixin/line-mixin.js.map +1 -1
  486. package/esm/series/pie/pie.d.ts +3 -7
  487. package/esm/series/pie/pie.js +17 -0
  488. package/esm/series/pie/pie.js.map +1 -1
  489. package/esm/series/polar/progress-like/progress-like.d.ts +2 -0
  490. package/esm/series/polar/progress-like/progress-like.js +17 -0
  491. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  492. package/esm/series/polar/rose-like/rose-like.d.ts +2 -0
  493. package/esm/series/polar/rose-like/rose-like.js +16 -0
  494. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  495. package/esm/series/progress/circular/circular.d.ts +2 -0
  496. package/esm/series/progress/circular/circular.js +11 -0
  497. package/esm/series/progress/circular/circular.js.map +1 -1
  498. package/esm/series/progress/linear/linear.d.ts +2 -0
  499. package/esm/series/progress/linear/linear.js +20 -0
  500. package/esm/series/progress/linear/linear.js.map +1 -1
  501. package/esm/series/sankey/sankey.js +35 -33
  502. package/esm/series/sankey/sankey.js.map +1 -1
  503. package/esm/series/scatter/scatter.d.ts +2 -0
  504. package/esm/series/scatter/scatter.js +10 -0
  505. package/esm/series/scatter/scatter.js.map +1 -1
  506. package/esm/series/treemap/treemap.js +23 -20
  507. package/esm/series/treemap/treemap.js.map +1 -1
  508. package/esm/series/venn/venn.js +2 -2
  509. package/esm/series/venn/venn.js.map +1 -1
  510. package/esm/series/waterfall/waterfall.d.ts +2 -0
  511. package/esm/series/waterfall/waterfall.js +36 -20
  512. package/esm/series/waterfall/waterfall.js.map +1 -1
  513. package/esm/util/graphic-state.d.ts +1 -0
  514. package/esm/util/graphic-state.js +16 -3
  515. package/esm/util/graphic-state.js.map +1 -1
  516. package/package.json +9 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/data-zoom/scroll-bar/scroll-bar.ts"],"names":[],"mappings":"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","file":"scroll-bar.js","sourcesContent":["import { isEmpty, isFunction, isNil, isNumber, isValid } from '@visactor/vutils';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\nimport type { ScrollBarAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { ScrollBar as ScrollBarComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, IGroup, IGraphic } from '@visactor/vrender-core';\nimport { LayoutLevel, LayoutZIndex } from '../../../constant/layout';\nimport { ChartEvent } from '../../../constant/event';\nimport { SCROLL_BAR_DEFAULT_SIZE } from '../../../constant/scroll-bar';\nimport type { IScrollBarSpec } from './interface';\nimport { Factory } from '../../../core/factory';\nimport type { ILayoutType } from '../../../typings/layout';\nimport { isClose } from '../../../util';\nimport { scrollBar } from '../../../theme/builtin/common/component/scroll-bar';\nimport { isReverse, statePointToData } from '../util';\nimport type { CartesianAxis } from '../../axis/cartesian';\n// import { SCROLLBAR_EVENT, SCROLLBAR_END_EVENT } from '@visactor/vrender-components/es/constant';\n\n// 由vrender透出, 接入新版本后需修改\nconst SCROLLBAR_EVENT = 'scrollDrag';\nconst SCROLLBAR_END_EVENT = 'scrollUp';\n\nexport class ScrollBar<T extends IScrollBarSpec = IScrollBarSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.scrollBar;\n type = ComponentTypeEnum.scrollBar;\n name: string = ComponentTypeEnum.scrollBar;\n\n static readonly builtInTheme = {\n scrollBar\n };\n static specKey = 'scrollBar';\n specKey = 'scrollBar';\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // scrollbar组件\n protected _component!: ScrollBarComponent;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec as any, options);\n this._filterMode = spec.filterMode ?? 'axis';\n }\n\n /*** start: init event and event dispatch ***/\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n super._handleChange(start, end, updateComponent);\n // filter out scroll event with same scroll value\n const isSameScrollValue = isClose(this._start, start) && isClose(this._end, end);\n // realTime为false时,start和end始终没有变化过, 但是需要触发change事件\n if (this._shouldChange && (!isSameScrollValue || this._spec.realTime === false)) {\n if (updateComponent && this._component) {\n this._component.setAttribute('range', [start, end]);\n }\n\n this._start = start;\n this._end = end;\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n const reverse = isReverse(axis, this._isHorizontal);\n const startValue = statePointToData(start, this._stateScale, reverse);\n const endValue = statePointToData(end, this._stateScale, reverse);\n const hasChange = isFunction(this._spec.updateDataAfterChange)\n ? this._spec.updateDataAfterChange(start, end, startValue, endValue)\n : this._handleStateChange(startValue, endValue);\n if (hasChange) {\n this.event.emit(ChartEvent.scrollBarChange, {\n model: this,\n value: {\n filterData: this._filterMode !== 'axis',\n start: this._start,\n end: this._end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n }\n\n protected _handleDataCollectionChange() {\n if (this._spec.auto) {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n }\n }\n /*** end: init event and event dispatch ***/\n\n /*** start: component lifecycle ***/\n\n protected _beforeLayoutEnd() {\n super._beforeLayoutEnd();\n this.effect.onZoomChange?.();\n }\n\n onLayoutEnd(): void {\n // 保证自己的宽高正确\n this._updateComponentBounds();\n super.onLayoutEnd();\n }\n /*** end: component lifecycle ***/\n\n /*** start: scale ***/\n protected _updateScaleRange() {\n // do nothing\n }\n\n protected _updateComponentBounds() {\n if (this._component) {\n this._component.setAttributes({\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y,\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n });\n }\n }\n\n /*** end: scale ***/\n\n /** start: component layout attr ***/\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n // default value\n return SCROLL_BAR_DEFAULT_SIZE;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n // default value\n if (!this._isHorizontal) {\n return this.getLayoutRect().height;\n }\n\n return SCROLL_BAR_DEFAULT_SIZE;\n }\n /** end: component layout attr ***/\n\n /** start: scrollbar component attr ***/\n private _getAttrs() {\n return {\n zIndex: this.layoutZIndex,\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y,\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height,\n range: [this._start, this._end],\n direction: this._isHorizontal ? 'horizontal' : 'vertical',\n delayType: this._spec?.delayType,\n delayTime: isValid(this._spec?.delayType) ? this._spec?.delayTime ?? 30 : 0,\n realTime: this._spec?.realTime ?? true,\n minSliderSize: this._spec?.minSliderSize,\n ...this._getComponentAttrs()\n } as ScrollBarAttributes;\n }\n\n protected _createOrUpdateComponent() {\n const attrs = this._getAttrs();\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new ScrollBarComponent(attrs);\n // 绑定事件,防抖,防止频繁触发\n this._component.addEventListener(SCROLLBAR_EVENT, (e: any) => {\n const value = e.detail.value;\n this._handleChange(value[0], value[1]);\n });\n this._component.addEventListener(SCROLLBAR_END_EVENT, (e: any) => {\n const value = e.detail.value;\n this._handleChange(value[0], value[1]);\n });\n container.add(this._component as unknown as INode);\n }\n }\n\n protected _getComponentAttrs() {\n const { rail, slider, innerPadding } = this._spec;\n const attrs: Partial<ScrollBarAttributes> = {};\n\n if (!isNil(innerPadding)) {\n attrs.padding = innerPadding;\n }\n\n if (!isEmpty(rail?.style)) {\n attrs.railStyle = transformToGraphic(rail.style) as unknown as IRectGraphicAttribute;\n }\n if (!isEmpty(slider?.style)) {\n attrs.sliderStyle = transformToGraphic(slider.style) as unknown as IRectGraphicAttribute;\n }\n attrs.disableTriggerEvent = this._option.disableTriggerEvent;\n return attrs;\n }\n /** end: scrollbar component attr ***/\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nexport const registerScrollBar = () => {\n Factory.registerComponent(ScrollBar.type, ScrollBar);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/data-zoom/scroll-bar/scroll-bar.ts"],"names":[],"mappings":"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","file":"scroll-bar.js","sourcesContent":["import { isEmpty, isFunction, isNil, isNumber, isValid } from '@visactor/vutils';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\nimport type { ScrollBarAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { ScrollBar as ScrollBarComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, IGroup, IGraphic } from '@visactor/vrender-core';\nimport { LayoutLevel, LayoutZIndex } from '../../../constant/layout';\nimport { ChartEvent } from '../../../constant/event';\nimport { SCROLL_BAR_DEFAULT_SIZE } from '../../../constant/scroll-bar';\nimport type { IScrollBarSpec } from './interface';\nimport { Factory } from '../../../core/factory';\nimport type { ILayoutType } from '../../../typings/layout';\nimport { isClose } from '../../../util';\nimport { scrollBar } from '../../../theme/builtin/common/component/scroll-bar';\nimport { isReverse, statePointToData } from '../util';\nimport type { CartesianAxis } from '../../axis/cartesian';\n// import { SCROLLBAR_EVENT, SCROLLBAR_END_EVENT } from '@visactor/vrender-components/es/constant';\n\n// 由vrender透出, 接入新版本后需修改\nconst SCROLLBAR_EVENT = 'scrollDrag';\nconst SCROLLBAR_END_EVENT = 'scrollUp';\n\nconst SCROLL_BAR_COMPONENT_ONLY_CHANGE_KEYS: Record<string, boolean> = {\n width: true,\n height: true,\n rail: true,\n slider: true,\n round: true,\n innerPadding: true,\n minSliderSize: true\n};\n\nexport class ScrollBar<T extends IScrollBarSpec = IScrollBarSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.scrollBar;\n type = ComponentTypeEnum.scrollBar;\n name: string = ComponentTypeEnum.scrollBar;\n\n static readonly builtInTheme = {\n scrollBar\n };\n static specKey = 'scrollBar';\n specKey = 'scrollBar';\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // scrollbar组件\n protected _component!: ScrollBarComponent;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec as any, options);\n this._filterMode = spec.filterMode ?? 'axis';\n }\n\n /*** start: init event and event dispatch ***/\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n super._handleChange(start, end, updateComponent);\n // filter out scroll event with same scroll value\n const isSameScrollValue = isClose(this._start, start) && isClose(this._end, end);\n // realTime为false时,start和end始终没有变化过, 但是需要触发change事件\n if (this._shouldChange && (!isSameScrollValue || this._spec.realTime === false)) {\n if (updateComponent && this._component) {\n this._component.setAttribute('range', [start, end]);\n }\n\n this._start = start;\n this._end = end;\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n const reverse = isReverse(axis, this._isHorizontal);\n const startValue = statePointToData(start, this._stateScale, reverse);\n const endValue = statePointToData(end, this._stateScale, reverse);\n const hasChange = isFunction(this._spec.updateDataAfterChange)\n ? this._spec.updateDataAfterChange(start, end, startValue, endValue)\n : this._handleStateChange(startValue, endValue);\n if (hasChange) {\n this.event.emit(ChartEvent.scrollBarChange, {\n model: this,\n value: {\n filterData: this._filterMode !== 'axis',\n start: this._start,\n end: this._end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n }\n\n protected _handleDataCollectionChange() {\n if (this._spec.auto) {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n }\n }\n /*** end: init event and event dispatch ***/\n\n protected _getComponentOnlySpecKeys() {\n return SCROLL_BAR_COMPONENT_ONLY_CHANGE_KEYS;\n }\n\n /*** start: component lifecycle ***/\n\n protected _beforeLayoutEnd() {\n super._beforeLayoutEnd();\n this.effect.onZoomChange?.();\n }\n\n onLayoutEnd(): void {\n // 保证自己的宽高正确\n this._updateComponentBounds();\n super.onLayoutEnd();\n }\n /*** end: component lifecycle ***/\n\n /*** start: scale ***/\n protected _updateScaleRange() {\n // do nothing\n }\n\n protected _updateComponentBounds() {\n if (this._component) {\n this._component.setAttributes({\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y,\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n });\n }\n }\n\n /*** end: scale ***/\n\n /** start: component layout attr ***/\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n // default value\n return SCROLL_BAR_DEFAULT_SIZE;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n // default value\n if (!this._isHorizontal) {\n return this.getLayoutRect().height;\n }\n\n return SCROLL_BAR_DEFAULT_SIZE;\n }\n /** end: component layout attr ***/\n\n /** start: scrollbar component attr ***/\n private _getAttrs() {\n return {\n zIndex: this.layoutZIndex,\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y,\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height,\n range: [this._start, this._end],\n direction: this._isHorizontal ? 'horizontal' : 'vertical',\n delayType: this._spec?.delayType,\n delayTime: isValid(this._spec?.delayType) ? this._spec?.delayTime ?? 30 : 0,\n realTime: this._spec?.realTime ?? true,\n minSliderSize: this._spec?.minSliderSize,\n ...this._getComponentAttrs()\n } as ScrollBarAttributes;\n }\n\n protected _createOrUpdateComponent() {\n const attrs = this._getAttrs();\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new ScrollBarComponent(attrs);\n // 绑定事件,防抖,防止频繁触发\n this._component.addEventListener(SCROLLBAR_EVENT, (e: any) => {\n const value = e.detail.value;\n this._handleChange(value[0], value[1]);\n });\n this._component.addEventListener(SCROLLBAR_END_EVENT, (e: any) => {\n const value = e.detail.value;\n this._handleChange(value[0], value[1]);\n });\n container.add(this._component as unknown as INode);\n }\n }\n\n protected _getComponentAttrs() {\n const { rail, slider, innerPadding } = this._spec;\n const attrs: Partial<ScrollBarAttributes> = {};\n\n if (!isNil(innerPadding)) {\n attrs.padding = innerPadding;\n }\n\n if (!isEmpty(rail?.style)) {\n attrs.railStyle = transformToGraphic(rail.style) as unknown as IRectGraphicAttribute;\n }\n if (!isEmpty(slider?.style)) {\n attrs.sliderStyle = transformToGraphic(slider.style) as unknown as IRectGraphicAttribute;\n }\n attrs.disableTriggerEvent = this._option.disableTriggerEvent;\n return attrs;\n }\n /** end: scrollbar component attr ***/\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nexport const registerScrollBar = () => {\n Factory.registerComponent(ScrollBar.type, ScrollBar);\n};\n"]}
@@ -52,13 +52,7 @@ export declare class GeoCoordinate extends BaseComponent<IGeoRegionSpec> impleme
52
52
  invert(point: [number, number]): any;
53
53
  private evaluateProjection;
54
54
  protected _initCenterCache(): void;
55
- _compareSpec(spec: IGeoRegionSpec, prevSpec: IGeoRegionSpec): {
56
- change: boolean;
57
- reMake: boolean;
58
- reRender: boolean;
59
- reSize: boolean;
60
- reCompile: boolean;
61
- };
55
+ _compareSpec(spec: IGeoRegionSpec, prevSpec: IGeoRegionSpec): import("../../model/interface").IUpdateSpecResult;
62
56
  release(): void;
63
57
  }
64
58
  export declare const registerGeoCoordinate: () => void;
@@ -58,5 +58,4 @@ export { registerBrush, registerScrollBar, registerTitle, registerMarkTooltipPro
58
58
 
59
59
  export * from "./tooltip/interface";
60
60
 
61
- export { isXAxis, isYAxis, isZAxis } from "./axis/cartesian/util";
62
- //# sourceMappingURL=index.js.map
61
+ export { isXAxis, isYAxis, isZAxis } from "./axis/cartesian/util";
@@ -27,6 +27,7 @@ export declare class Indicator<T extends IIndicatorSpec> extends BaseComponent<T
27
27
  static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
28
28
  created(): void;
29
29
  setAttrFromSpec(): void;
30
+ _compareSpec(spec: T, prevSpec: T): import("../../model/interface").IUpdateSpecResult;
30
31
  protected initEvent(): void;
31
32
  updateDatum(datum: any): void;
32
33
  private initData;
@@ -56,6 +56,15 @@ export class Indicator extends BaseComponent {
56
56
  super.setAttrFromSpec(), this._gap = this._spec.gap || 0, this._title = this._spec.title,
57
57
  this._content = array(this._spec.content), this._regions = this._option.getRegionsInUserIdOrIndex(array(this._spec.regionId), array(this._spec.regionIndex));
58
58
  }
59
+ _compareSpec(spec, prevSpec) {
60
+ const result = super._compareSpec(spec, prevSpec);
61
+ return !!isEqual(prevSpec, spec) || result.reMake || result.reCompile || (result.change = !0,
62
+ result.reRender = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
63
+ component: !0,
64
+ layout: !0,
65
+ render: !0
66
+ })), result;
67
+ }
59
68
  initEvent() {
60
69
  if (this._option.disableTriggerEvent) return;
61
70
  "none" !== this._spec.trigger && ("hover" === this._spec.trigger ? (this.event.on("element-highlight:start", (params => {
@@ -82,11 +91,11 @@ export class Indicator extends BaseComponent {
82
91
  });
83
92
  displayData.transform({
84
93
  type: "indicatorFilter",
85
- options: {
94
+ options: () => ({
86
95
  title: this._title,
87
96
  content: this._content,
88
97
  datum: () => this._activeDatum
89
- }
98
+ })
90
99
  }), displayData.target.addListener("change", this.updateDatum.bind(this)), this._displayData = new CompilableData(this._option, displayData);
91
100
  }
92
101
  updateLayoutAttribute() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/indicator/indicator.ts"],"names":[],"mappings":"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","file":"indicator.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport { LayoutLevel, LayoutZIndex } from '../../constant/layout';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { BaseComponent } from '../base/base-component';\nimport type { IRegion } from '../../region/interface';\nimport type { IIndicator, IIndicatorItemSpec, IIndicatorSpec } from './interface';\nimport type { Datum, Maybe } from '../../typings';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { transformIndicatorStyle } from '../../util/style';\nimport { getActualNumValue } from '../../util/space';\nimport { isEqual, isValid, isFunction, array, pickWithout } from '@visactor/vutils';\nimport { indicatorMapper } from './util';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { CompilableData } from '../../compile/data/compilable-data';\nimport { Indicator as IndicatorComponents } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IndicatorAttributes } from '@visactor/vrender-components';\nimport type { IGraphic, INode, IGroup } from '@visactor/vrender-core';\nimport type { FunctionType } from '../../typings/visual';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IRichTextCharacter } from '@visactor/vrender-core';\nimport { getSpecInfo } from '../util';\nimport { getDatumOfGraphic } from '../../util/mark';\nimport type { IMarkGraphic } from '../../mark/interface';\nimport { indicator } from '../../theme/builtin/common/component/indicator';\n\nexport class Indicator<T extends IIndicatorSpec> extends BaseComponent<T> implements IIndicator {\n static type = ComponentTypeEnum.indicator;\n type = ComponentTypeEnum.indicator;\n name: string = ComponentTypeEnum.indicator;\n\n static readonly builtInTheme = {\n indicator\n };\n static specKey = 'indicator';\n specKey = 'indicator';\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.Indicator;\n layoutLevel: number = LayoutLevel.Indicator;\n\n private _gap: number = 0;\n\n private _activeDatum: any = null;\n private _displayData!: CompilableData;\n\n private _title: IIndicatorItemSpec;\n private _content: IIndicatorItemSpec[];\n\n private _indicatorComponent: IndicatorComponents;\n private _cacheAttrs: IndicatorAttributes;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<IIndicatorSpec>(chartSpec, this.specKey, this.type, (s: IIndicatorSpec) => {\n return s && s.visible !== false;\n });\n }\n\n created() {\n super.created();\n // data\n this.initData();\n // event\n this.initEvent();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._gap = this._spec.gap || 0;\n this._title = this._spec.title;\n this._content = array(this._spec.content);\n this._regions = this._option.getRegionsInUserIdOrIndex(array(this._spec.regionId), array(this._spec.regionIndex));\n }\n\n // event\n protected initEvent() {\n if (this._option.disableTriggerEvent) {\n return;\n }\n const trigger = this._spec.trigger;\n if (trigger === 'none') {\n return;\n }\n\n if (this._spec.trigger === 'hover') {\n this.event.on('element-highlight:start', (params: any) => {\n const g = params.graphics[0];\n\n if (this.isRelativeModel(g)) {\n this.updateDatum(getDatumOfGraphic(g) as Datum[]);\n }\n });\n this.event.on('element-highlight:reset', (params: any) => {\n if (this._activeDatum) {\n this.updateDatum(null);\n }\n });\n } else {\n this.event.on('element-select:start', (params: any) => {\n const g = params.graphics[0];\n\n if (this.isRelativeModel(g)) {\n this.updateDatum(getDatumOfGraphic(g) as Datum[]);\n }\n });\n this.event.on('element-select:reset', (params: any) => {\n if (this._activeDatum) {\n this.updateDatum(null);\n }\n });\n }\n }\n\n updateDatum(datum: any) {\n this._activeDatum = datum;\n this._displayData.updateData();\n const attrs = this._getIndicatorAttrs();\n this._createOrUpdateIndicatorComponent(attrs);\n }\n\n // data\n private initData() {\n registerDataSetInstanceTransform(this._option.dataSet, 'indicatorFilter', indicatorMapper);\n const displayData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n displayData.transform({\n type: 'indicatorFilter',\n options: {\n title: this._title,\n content: this._content,\n datum: () => this._activeDatum\n }\n });\n\n displayData.target.addListener('change', this.updateDatum.bind(this));\n\n this._displayData = new CompilableData(this._option, displayData);\n }\n\n updateLayoutAttribute(): void {\n const attrs = this._getIndicatorAttrs();\n this._createOrUpdateIndicatorComponent(attrs);\n\n super.updateLayoutAttribute();\n }\n\n private _getIndicatorAttrs() {\n if (this._spec.visible === false || (this._spec.fixed === false && this._activeDatum === null)) {\n return {\n visible: false\n } as IndicatorAttributes;\n }\n\n const region = this._regions[0];\n const { width, height } = region.getLayoutRect();\n const { x, y } = region.getLayoutStartPoint();\n const { content, offsetX, offsetY, limitRatio, title, ...restSpec } = this._spec;\n\n const contentComponentSpec: IIndicatorItemSpec[] = [];\n array(content).forEach((eachItem: IIndicatorItemSpec) => {\n const contentSpec = mergeSpec({}, this._theme.content, eachItem);\n contentComponentSpec.push({\n visible: contentSpec.visible !== false && (contentSpec.field ? this._activeDatum !== null : true),\n space: contentSpec.space || this._gap,\n autoLimit: contentSpec.autoLimit,\n autoFit: contentSpec.autoFit,\n fitPercent: contentSpec.fitPercent,\n fitStrategy: contentSpec.fitStrategy,\n style: {\n ...transformIndicatorStyle(pickWithout(contentSpec.style, ['text']), this._activeDatum),\n text: this._createText(contentSpec.field, contentSpec.style.text)\n }\n });\n });\n\n return {\n visible: true,\n size: {\n width: width,\n height: height\n },\n zIndex: this.layoutZIndex,\n x: x,\n y: y,\n dx: offsetX ? getActualNumValue(offsetX, this._computeLayoutRadius()) : 0,\n dy: offsetY ? getActualNumValue(offsetY, this._computeLayoutRadius()) : 0,\n limitRatio: limitRatio || Infinity,\n title: {\n visible: title.visible !== false && (!isValid(title.field) || this._activeDatum !== null),\n space: title.space || this._gap,\n autoLimit: title.autoLimit,\n autoFit: title.autoFit,\n fitPercent: title.fitPercent,\n fitStrategy: title.fitStrategy,\n style: {\n ...transformIndicatorStyle(pickWithout(title.style, ['text']), this._activeDatum),\n text: this._createText(title.field, title.style.text as any) // FIXME: type\n }\n },\n content: contentComponentSpec,\n ...(restSpec as unknown as IndicatorAttributes)\n } as IndicatorAttributes;\n }\n\n private _createOrUpdateIndicatorComponent(attrs: IndicatorAttributes) {\n if (attrs.visible === false) {\n // 按照vrender-component 的设置,只切换visible: false,并不会更新组件,所以强制删掉节点\n if (this._indicatorComponent && this._indicatorComponent.parent) {\n this._indicatorComponent.parent.removeChild(this._indicatorComponent);\n }\n this._indicatorComponent = null;\n return;\n }\n\n if (this._indicatorComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._indicatorComponent.setAttributes(attrs);\n }\n } else {\n const container = this.getContainer();\n //FIXME:类型“IndicatorAttributes”的参数不能赋给类型“Required<IndicatorAttributes>”的参数\n const indicator = new IndicatorComponents(attrs as any);\n indicator.name = 'indicator';\n container.add(indicator as unknown as INode);\n this._indicatorComponent = indicator;\n this._indicatorComponent.on('*', (event: any, type: string) =>\n this._delegateEvent(this._indicatorComponent as unknown as IGraphic, event, type)\n );\n }\n this._cacheAttrs = attrs;\n }\n\n private _createText(\n field: string | undefined,\n text:\n | string\n | number\n | string[]\n | number[]\n | IRichTextCharacter[]\n | FunctionType<number | number[] | string | string[] | IRichTextCharacter[]>\n ) {\n if (field) {\n return this._activeDatum ? this._activeDatum[field] : '';\n }\n if (isFunction(text)) {\n return text(this._activeDatum, undefined) ?? '';\n }\n return text ?? '';\n }\n\n private _computeLayoutRadius() {\n const region = this._regions[0];\n const { width, height } = region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n private isRelativeModel(g: IMarkGraphic) {\n return this._regions.some(region => !!region.getSeriesInId(g.context.modelId));\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._indicatorComponent] as unknown as IGroup[];\n }\n\n clear(): void {\n this._cacheAttrs = null;\n super.clear();\n }\n\n getIndicatorComponent(): IndicatorComponents {\n return this._indicatorComponent;\n }\n}\n\nexport const registerIndicator = () => {\n Factory.registerComponent(Indicator.type, Indicator);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/indicator/indicator.ts"],"names":[],"mappings":"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","file":"indicator.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport { LayoutLevel, LayoutZIndex } from '../../constant/layout';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { BaseComponent } from '../base/base-component';\nimport type { IRegion } from '../../region/interface';\nimport type { IIndicator, IIndicatorItemSpec, IIndicatorSpec } from './interface';\nimport type { Datum, Maybe } from '../../typings';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { transformIndicatorStyle } from '../../util/style';\nimport { getActualNumValue } from '../../util/space';\nimport { isEqual, isValid, isFunction, array, pickWithout } from '@visactor/vutils';\nimport { indicatorMapper } from './util';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { CompilableData } from '../../compile/data/compilable-data';\nimport { Indicator as IndicatorComponents } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IndicatorAttributes } from '@visactor/vrender-components';\nimport type { IGraphic, INode, IGroup } from '@visactor/vrender-core';\nimport type { FunctionType } from '../../typings/visual';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IRichTextCharacter } from '@visactor/vrender-core';\nimport { getSpecInfo } from '../util';\nimport { getDatumOfGraphic } from '../../util/mark';\nimport type { IMarkGraphic } from '../../mark/interface';\nimport { indicator } from '../../theme/builtin/common/component/indicator';\n\nexport class Indicator<T extends IIndicatorSpec> extends BaseComponent<T> implements IIndicator {\n static type = ComponentTypeEnum.indicator;\n type = ComponentTypeEnum.indicator;\n name: string = ComponentTypeEnum.indicator;\n\n static readonly builtInTheme = {\n indicator\n };\n static specKey = 'indicator';\n specKey = 'indicator';\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.Indicator;\n layoutLevel: number = LayoutLevel.Indicator;\n\n private _gap: number = 0;\n\n private _activeDatum: any = null;\n private _displayData!: CompilableData;\n\n private _title: IIndicatorItemSpec;\n private _content: IIndicatorItemSpec[];\n\n private _indicatorComponent: IndicatorComponents;\n private _cacheAttrs: IndicatorAttributes;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<IIndicatorSpec>(chartSpec, this.specKey, this.type, (s: IIndicatorSpec) => {\n return s && s.visible !== false;\n });\n }\n\n created() {\n super.created();\n // data\n this.initData();\n // event\n this.initEvent();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._gap = this._spec.gap || 0;\n this._title = this._spec.title;\n this._content = array(this._spec.content);\n this._regions = this._option.getRegionsInUserIdOrIndex(array(this._spec.regionId), array(this._spec.regionIndex));\n }\n\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n const specChanged = !isEqual(prevSpec, spec);\n\n if (specChanged && !result.reMake && !result.reCompile) {\n result.change = true;\n result.reRender = true;\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n }\n\n return result;\n }\n\n // event\n protected initEvent() {\n if (this._option.disableTriggerEvent) {\n return;\n }\n const trigger = this._spec.trigger;\n if (trigger === 'none') {\n return;\n }\n\n if (this._spec.trigger === 'hover') {\n this.event.on('element-highlight:start', (params: any) => {\n const g = params.graphics[0];\n\n if (this.isRelativeModel(g)) {\n this.updateDatum(getDatumOfGraphic(g) as Datum[]);\n }\n });\n this.event.on('element-highlight:reset', (params: any) => {\n if (this._activeDatum) {\n this.updateDatum(null);\n }\n });\n } else {\n this.event.on('element-select:start', (params: any) => {\n const g = params.graphics[0];\n\n if (this.isRelativeModel(g)) {\n this.updateDatum(getDatumOfGraphic(g) as Datum[]);\n }\n });\n this.event.on('element-select:reset', (params: any) => {\n if (this._activeDatum) {\n this.updateDatum(null);\n }\n });\n }\n }\n\n updateDatum(datum: any) {\n this._activeDatum = datum;\n this._displayData.updateData();\n const attrs = this._getIndicatorAttrs();\n this._createOrUpdateIndicatorComponent(attrs);\n }\n\n // data\n private initData() {\n registerDataSetInstanceTransform(this._option.dataSet, 'indicatorFilter', indicatorMapper);\n const displayData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n displayData.transform({\n type: 'indicatorFilter',\n options: () => ({\n title: this._title,\n content: this._content,\n datum: () => this._activeDatum\n })\n });\n\n displayData.target.addListener('change', this.updateDatum.bind(this));\n\n this._displayData = new CompilableData(this._option, displayData);\n }\n\n updateLayoutAttribute(): void {\n const attrs = this._getIndicatorAttrs();\n this._createOrUpdateIndicatorComponent(attrs);\n\n super.updateLayoutAttribute();\n }\n\n private _getIndicatorAttrs() {\n if (this._spec.visible === false || (this._spec.fixed === false && this._activeDatum === null)) {\n return {\n visible: false\n } as IndicatorAttributes;\n }\n\n const region = this._regions[0];\n const { width, height } = region.getLayoutRect();\n const { x, y } = region.getLayoutStartPoint();\n const { content, offsetX, offsetY, limitRatio, title, ...restSpec } = this._spec;\n\n const contentComponentSpec: IIndicatorItemSpec[] = [];\n array(content).forEach((eachItem: IIndicatorItemSpec) => {\n const contentSpec = mergeSpec({}, this._theme.content, eachItem);\n contentComponentSpec.push({\n visible: contentSpec.visible !== false && (contentSpec.field ? this._activeDatum !== null : true),\n space: contentSpec.space || this._gap,\n autoLimit: contentSpec.autoLimit,\n autoFit: contentSpec.autoFit,\n fitPercent: contentSpec.fitPercent,\n fitStrategy: contentSpec.fitStrategy,\n style: {\n ...transformIndicatorStyle(pickWithout(contentSpec.style, ['text']), this._activeDatum),\n text: this._createText(contentSpec.field, contentSpec.style.text)\n }\n });\n });\n\n return {\n visible: true,\n size: {\n width: width,\n height: height\n },\n zIndex: this.layoutZIndex,\n x: x,\n y: y,\n dx: offsetX ? getActualNumValue(offsetX, this._computeLayoutRadius()) : 0,\n dy: offsetY ? getActualNumValue(offsetY, this._computeLayoutRadius()) : 0,\n limitRatio: limitRatio || Infinity,\n title: {\n visible: title.visible !== false && (!isValid(title.field) || this._activeDatum !== null),\n space: title.space || this._gap,\n autoLimit: title.autoLimit,\n autoFit: title.autoFit,\n fitPercent: title.fitPercent,\n fitStrategy: title.fitStrategy,\n style: {\n ...transformIndicatorStyle(pickWithout(title.style, ['text']), this._activeDatum),\n text: this._createText(title.field, title.style.text as any) // FIXME: type\n }\n },\n content: contentComponentSpec,\n ...(restSpec as unknown as IndicatorAttributes)\n } as IndicatorAttributes;\n }\n\n private _createOrUpdateIndicatorComponent(attrs: IndicatorAttributes) {\n if (attrs.visible === false) {\n // 按照vrender-component 的设置,只切换visible: false,并不会更新组件,所以强制删掉节点\n if (this._indicatorComponent && this._indicatorComponent.parent) {\n this._indicatorComponent.parent.removeChild(this._indicatorComponent);\n }\n this._indicatorComponent = null;\n return;\n }\n\n if (this._indicatorComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._indicatorComponent.setAttributes(attrs);\n }\n } else {\n const container = this.getContainer();\n //FIXME:类型“IndicatorAttributes”的参数不能赋给类型“Required<IndicatorAttributes>”的参数\n const indicator = new IndicatorComponents(attrs as any);\n indicator.name = 'indicator';\n container.add(indicator as unknown as INode);\n this._indicatorComponent = indicator;\n this._indicatorComponent.on('*', (event: any, type: string) =>\n this._delegateEvent(this._indicatorComponent as unknown as IGraphic, event, type)\n );\n }\n this._cacheAttrs = attrs;\n }\n\n private _createText(\n field: string | undefined,\n text:\n | string\n | number\n | string[]\n | number[]\n | IRichTextCharacter[]\n | FunctionType<number | number[] | string | string[] | IRichTextCharacter[]>\n ) {\n if (field) {\n return this._activeDatum ? this._activeDatum[field] : '';\n }\n if (isFunction(text)) {\n return text(this._activeDatum, undefined) ?? '';\n }\n return text ?? '';\n }\n\n private _computeLayoutRadius() {\n const region = this._regions[0];\n const { width, height } = region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n private isRelativeModel(g: IMarkGraphic) {\n return this._regions.some(region => !!region.getSeriesInId(g.context.modelId));\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._indicatorComponent] as unknown as IGroup[];\n }\n\n clear(): void {\n this._cacheAttrs = null;\n super.clear();\n }\n\n getIndicatorComponent(): IndicatorComponents {\n return this._indicatorComponent;\n }\n}\n\nexport const registerIndicator = () => {\n Factory.registerComponent(Indicator.type, Indicator);\n};\n"]}
@@ -2,12 +2,13 @@ import type { IIndicatorItemSpec } from './interface';
2
2
  export interface IIndicatorDatum {
3
3
  type: 'title' | 'content';
4
4
  index: number;
5
- datum: any;
5
+ datum: unknown;
6
6
  spec: IIndicatorItemSpec;
7
7
  }
8
8
  export interface IIndicatorMapper {
9
9
  title: IIndicatorItemSpec;
10
10
  content: IIndicatorItemSpec[];
11
- datum: () => any;
11
+ datum: () => unknown;
12
12
  }
13
- export declare const indicatorMapper: (data: Array<any>, op: IIndicatorMapper) => any[];
13
+ export type IndicatorMapperOption = IIndicatorMapper | (() => IIndicatorMapper);
14
+ export declare const indicatorMapper: (data: Array<unknown>, op: IndicatorMapperOption) => IIndicatorDatum[];
@@ -1,7 +1,7 @@
1
- import { array } from "@visactor/vutils";
1
+ import { array, isFunction } from "@visactor/vutils";
2
2
 
3
3
  export const indicatorMapper = (data, op) => {
4
- const {datum: datum, title: title, content: content} = op, mappedData = [], datumResult = datum.call(null);
4
+ const {datum: datum, title: title, content: content} = isFunction(op) ? op() : op, mappedData = [], datumResult = datum.call(null);
5
5
  return title.visible && mappedData.push({
6
6
  type: "title",
7
7
  index: 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/indicator/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAgBzC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAE,EAAoB,EAAE,EAAE;IACxE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACrC,MAAM,UAAU,GAAe,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,KAAK;SACO,CAAC,CAAC;KACvB;IACD,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,CAAC,CAAC,OAAO,EAAE;YACb,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,CAAC;aACW,CAAC,CAAC;SACvB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC","file":"util.js","sourcesContent":["import { array } from '@visactor/vutils';\nimport type { IIndicatorItemSpec } from './interface';\n\nexport interface IIndicatorDatum {\n type: 'title' | 'content';\n index: number;\n datum: any;\n spec: IIndicatorItemSpec;\n}\n\nexport interface IIndicatorMapper {\n title: IIndicatorItemSpec;\n content: IIndicatorItemSpec[];\n datum: () => any;\n}\n\nexport const indicatorMapper = (data: Array<any>, op: IIndicatorMapper) => {\n const { datum, title, content } = op;\n const mappedData: Array<any> = [];\n const datumResult = datum.call(null);\n if (title.visible) {\n mappedData.push({\n type: 'title',\n index: 0,\n datum: datumResult,\n spec: title\n } as IIndicatorDatum);\n }\n array(content).forEach((c, i) => {\n if (c.visible) {\n mappedData.push({\n type: 'content',\n index: i,\n datum: datumResult,\n spec: c\n } as IIndicatorDatum);\n }\n });\n return mappedData;\n};\n"]}
1
+ {"version":3,"sources":["../src/component/indicator/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAkBrD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAE,EAAyB,EAAE,EAAE;IACjF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,KAAK;SACO,CAAC,CAAC;KACvB;IACD,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,CAAC,CAAC,OAAO,EAAE;YACb,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,CAAC;aACW,CAAC,CAAC;SACvB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC","file":"util.js","sourcesContent":["import { array, isFunction } from '@visactor/vutils';\nimport type { IIndicatorItemSpec } from './interface';\n\nexport interface IIndicatorDatum {\n type: 'title' | 'content';\n index: number;\n datum: unknown;\n spec: IIndicatorItemSpec;\n}\n\nexport interface IIndicatorMapper {\n title: IIndicatorItemSpec;\n content: IIndicatorItemSpec[];\n datum: () => unknown;\n}\n\nexport type IndicatorMapperOption = IIndicatorMapper | (() => IIndicatorMapper);\n\nexport const indicatorMapper = (data: Array<unknown>, op: IndicatorMapperOption) => {\n const { datum, title, content } = isFunction(op) ? op() : op;\n const mappedData: IIndicatorDatum[] = [];\n const datumResult = datum.call(null);\n if (title.visible) {\n mappedData.push({\n type: 'title',\n index: 0,\n datum: datumResult,\n spec: title\n } as IIndicatorDatum);\n }\n array(content).forEach((c, i) => {\n if (c.visible) {\n mappedData.push({\n type: 'content',\n index: i,\n datum: datumResult,\n spec: c\n } as IIndicatorDatum);\n }\n });\n return mappedData;\n};\n"]}
@@ -22,13 +22,7 @@ export declare abstract class BaseLabelComponent<T = any> extends BaseComponent<
22
22
  selected_reverse?: Partial<import("../../core").IComposedTextMarkSpec>;
23
23
  };
24
24
  };
25
- _compareSpec(spec: T, prevSpec: T): {
26
- change: boolean;
27
- reMake: boolean;
28
- reRender: boolean;
29
- reSize: boolean;
30
- reCompile: boolean;
31
- };
25
+ _compareSpec(spec: T, prevSpec: T): import("../../core").IUpdateSpecResult;
32
26
  _getDataLabelType(baseMark: ICompilableMark, type?: string): string;
33
27
  _setTransformOfComponent(labelComponent: IComponentMark, baseMark: IMark | IMark[]): void;
34
28
  getVRenderComponents(): any[];
@@ -28,7 +28,11 @@ export class BaseLabelComponent extends BaseComponent {
28
28
  }
29
29
  _compareSpec(spec, prevSpec) {
30
30
  const result = super._compareSpec(spec, prevSpec);
31
- return result.reRender = !0, isEqual(prevSpec, spec) || (result.reMake = !0), result;
31
+ return result.reRender = !0, isEqual(prevSpec, spec) || (result.change = !0, result.reMake || result.reCompile ? result.reMake = !0 : result.effects = Object.assign(Object.assign({}, result.effects), {
32
+ component: !0,
33
+ layout: !0,
34
+ render: !0
35
+ })), result;
32
36
  }
33
37
  _getDataLabelType(baseMark, type) {
34
38
  const markType = baseMark.type;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/label/base-label.ts"],"names":[],"mappings":"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","file":"base-label.js","sourcesContent":["import { BaseComponent } from '../base/base-component';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelRenderOption } from '../../model/interface';\nimport { LayoutZIndex } from '../../constant/layout';\nimport type { ILabelSpec } from './interface';\nimport type { IHoverSpec, ISelectSpec } from '../../interaction/interface/spec';\nimport { array, isEqual, isNil, isPlainObject } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { IComponentMark } from '../../mark/interface/mark';\nimport type { ICompilableMark } from '../../compile/mark/interface';\nimport { DiffState } from '../../mark/interface/enum';\nimport type { Datum } from '../../typings/common';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport type { IMark } from '../../mark/interface/common';\nimport { getActualColor } from '../../core';\n\nexport abstract class BaseLabelComponent<T = any> extends BaseComponent<T> {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.Label;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._regions = options.getRegionsInIndex(options.regionIndexes);\n }\n\n protected _interactiveConfig(labelSpec: ILabelSpec) {\n const { interactive } = labelSpec;\n const result = { hover: false, select: false, state: labelSpec.state };\n if (interactive !== true) {\n return result;\n }\n\n const { hover, select } = this._option.getChart().getSpec();\n if (hover !== false || (hover as unknown as IHoverSpec).enable !== false) {\n result.hover = true;\n }\n if (select !== false || (select as unknown as ISelectSpec).enable !== false) {\n result.select = true;\n }\n return result;\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n result.reRender = true;\n if (!isEqual(prevSpec, spec)) {\n result.reMake = true;\n }\n\n return result;\n }\n\n _getDataLabelType(baseMark: ICompilableMark, type?: string) {\n const markType = baseMark.type;\n\n if (markType === 'line' || markType === 'area') {\n return type ?? 'line-data';\n }\n if (markType === MarkTypeEnum.rect) {\n return 'rect';\n }\n\n if (markType === MarkTypeEnum.arc) {\n return 'arc';\n }\n\n if (markType === MarkTypeEnum.symbol || markType === MarkTypeEnum.cell) {\n return 'symbol';\n }\n\n return baseMark.setDataLabelType ? baseMark.setDataLabelType() : '';\n }\n\n _setTransformOfComponent(labelComponent: IComponentMark, baseMark: IMark | IMark[]) {\n labelComponent.setAttributeTransform(({ labelStyle, size, itemEncoder }) => {\n const regionSize = size();\n const defaultFill = getActualColor({ type: 'palette', key: 'secondaryFontColor' }, this.getColorScheme());\n const dataLabels = array(baseMark).map((mark: IMark, labelIndex: number) => {\n const labelStyleRes = labelStyle(labelIndex);\n const labelData: any[] = [];\n const graphics = (mark as any).getGraphics();\n\n if (!graphics) {\n return;\n }\n\n if (labelStyleRes.data && labelStyleRes.data.length) {\n labelStyleRes.data.forEach((d: Datum, index: number) => {\n if (graphics[index]) {\n const formattedDatum = itemEncoder(d, { labelIndex });\n\n if (isNil(formattedDatum.fill)) {\n formattedDatum.fill = defaultFill;\n }\n if (isNil(formattedDatum.data)) {\n formattedDatum.data = d;\n }\n\n labelData.push(formattedDatum);\n }\n });\n } else {\n graphics.forEach((g: IGraphic) => {\n const { data, diffState } = g.context;\n\n if (diffState !== DiffState.exit) {\n data.forEach((datum: Datum, {}) => {\n const formattedDatum = itemEncoder(datum, { labelIndex });\n\n if (isNil(formattedDatum.fill)) {\n formattedDatum.fill = defaultFill;\n }\n if (isNil(formattedDatum.data)) {\n formattedDatum.data = datum;\n }\n\n labelData.push(formattedDatum);\n });\n }\n });\n }\n\n if (isPlainObject(labelStyleRes.overlap) && isNil(labelStyleRes.overlap.size)) {\n labelStyleRes.overlap.size = {\n ...regionSize\n };\n }\n\n return {\n smartInvert: false, // 之前在vgrammar 中设置的默认值\n baseMarkGroupName: mark.getProductId(),\n getBaseMarks: () => graphics,\n ...labelStyleRes,\n type: this._getDataLabelType(mark, labelStyleRes.type),\n data: labelData\n };\n });\n\n return {\n dataLabels,\n size: regionSize\n };\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this.getMarks().forEach(m => {\n const graphicItem = (m as IComponentMark).getComponent();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n\n clear() {\n super.clear();\n\n this.getMarks().forEach(m => {\n if (m) {\n (m as IComponentMark).clearComponent();\n }\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/label/base-label.ts"],"names":[],"mappings":"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","file":"base-label.js","sourcesContent":["import { BaseComponent } from '../base/base-component';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelRenderOption } from '../../model/interface';\nimport { LayoutZIndex } from '../../constant/layout';\nimport type { ILabelSpec } from './interface';\nimport type { IHoverSpec, ISelectSpec } from '../../interaction/interface/spec';\nimport { array, isEqual, isNil, isPlainObject } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { IComponentMark } from '../../mark/interface/mark';\nimport type { ICompilableMark } from '../../compile/mark/interface';\nimport { DiffState } from '../../mark/interface/enum';\nimport type { Datum } from '../../typings/common';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport type { IMark } from '../../mark/interface/common';\nimport { getActualColor } from '../../core';\n\nexport abstract class BaseLabelComponent<T = any> extends BaseComponent<T> {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.Label;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._regions = options.getRegionsInIndex(options.regionIndexes);\n }\n\n protected _interactiveConfig(labelSpec: ILabelSpec) {\n const { interactive } = labelSpec;\n const result = { hover: false, select: false, state: labelSpec.state };\n if (interactive !== true) {\n return result;\n }\n\n const { hover, select } = this._option.getChart().getSpec();\n if (hover !== false || (hover as unknown as IHoverSpec).enable !== false) {\n result.hover = true;\n }\n if (select !== false || (select as unknown as ISelectSpec).enable !== false) {\n result.select = true;\n }\n return result;\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n result.reRender = true;\n if (!isEqual(prevSpec, spec)) {\n result.change = true;\n if (!result.reMake && !result.reCompile) {\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n } else {\n result.reMake = true;\n }\n }\n\n return result;\n }\n\n _getDataLabelType(baseMark: ICompilableMark, type?: string) {\n const markType = baseMark.type;\n\n if (markType === 'line' || markType === 'area') {\n return type ?? 'line-data';\n }\n if (markType === MarkTypeEnum.rect) {\n return 'rect';\n }\n\n if (markType === MarkTypeEnum.arc) {\n return 'arc';\n }\n\n if (markType === MarkTypeEnum.symbol || markType === MarkTypeEnum.cell) {\n return 'symbol';\n }\n\n return baseMark.setDataLabelType ? baseMark.setDataLabelType() : '';\n }\n\n _setTransformOfComponent(labelComponent: IComponentMark, baseMark: IMark | IMark[]) {\n labelComponent.setAttributeTransform(({ labelStyle, size, itemEncoder }) => {\n const regionSize = size();\n const defaultFill = getActualColor({ type: 'palette', key: 'secondaryFontColor' }, this.getColorScheme());\n const dataLabels = array(baseMark).map((mark: IMark, labelIndex: number) => {\n const labelStyleRes = labelStyle(labelIndex);\n const labelData: any[] = [];\n const graphics = (mark as any).getGraphics();\n\n if (!graphics) {\n return;\n }\n\n if (labelStyleRes.data && labelStyleRes.data.length) {\n labelStyleRes.data.forEach((d: Datum, index: number) => {\n if (graphics[index]) {\n const formattedDatum = itemEncoder(d, { labelIndex });\n\n if (isNil(formattedDatum.fill)) {\n formattedDatum.fill = defaultFill;\n }\n if (isNil(formattedDatum.data)) {\n formattedDatum.data = d;\n }\n\n labelData.push(formattedDatum);\n }\n });\n } else {\n graphics.forEach((g: IGraphic) => {\n const { data, diffState } = g.context;\n\n if (diffState !== DiffState.exit) {\n data.forEach((datum: Datum, {}) => {\n const formattedDatum = itemEncoder(datum, { labelIndex });\n\n if (isNil(formattedDatum.fill)) {\n formattedDatum.fill = defaultFill;\n }\n if (isNil(formattedDatum.data)) {\n formattedDatum.data = datum;\n }\n\n labelData.push(formattedDatum);\n });\n }\n });\n }\n\n if (isPlainObject(labelStyleRes.overlap) && isNil(labelStyleRes.overlap.size)) {\n labelStyleRes.overlap.size = {\n ...regionSize\n };\n }\n\n return {\n smartInvert: false, // 之前在vgrammar 中设置的默认值\n baseMarkGroupName: mark.getProductId(),\n getBaseMarks: () => graphics,\n ...labelStyleRes,\n type: this._getDataLabelType(mark, labelStyleRes.type),\n data: labelData\n };\n });\n\n return {\n dataLabels,\n size: regionSize\n };\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this.getMarks().forEach(m => {\n const graphicItem = (m as IComponentMark).getComponent();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n\n clear() {\n super.clear();\n\n this.getMarks().forEach(m => {\n if (m) {\n (m as IComponentMark).clearComponent();\n }\n });\n }\n}\n"]}
@@ -148,7 +148,7 @@ export class Label extends BaseLabelComponent {
148
148
  }));
149
149
  })), Object.keys(removedComponents).forEach((name => {
150
150
  const comp = removedComponents[name];
151
- comp && (comp.release(), this._labelComponentMap.delete(comp));
151
+ comp && (comp.releaseWithExitAnimation() || comp.release(), this._labelComponentMap.delete(comp));
152
152
  }));
153
153
  }
154
154
  _initTextMarkStyle() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/label/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport { STACK_FIELD_TOTAL_BOTTOM, STACK_FIELD_TOTAL_TOP } from '../../constant/data';\nimport { ChartEvent, HOOK_EVENT } from '../../constant/event';\nimport { AttributeLevel } from '../../constant/attribute';\nimport { LayoutZIndex } from '../../constant/layout';\nimport type { IMark } from '../../mark/interface';\nimport { type IComponentMark, type ILabelMark } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { eachSeries } from '../../util/model';\nimport type { ISeries, SeriesMarkNameEnum } from '../../series/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { defaultLabelConfig, textAttribute } from './util';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { BaseLabelComponent } from './base-label';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isArray, isFunction, isValid, pickWithout } from '@visactor/vutils';\nimport type { ILabelInfo, ILabelSpec, TransformedLabelSpec } from './interface';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { Datum, IChartSpec } from '../../typings';\nimport { LabelSpecTransformer } from './label-transformer';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\nimport type { DataLabelAttrs } from '@visactor/vrender-components';\nimport { DataLabel } from '@visactor/vrender-components';\n\nexport class Label<T extends IChartSpec = any> extends BaseLabelComponent<T> {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n static specKey = 'label';\n specKey = 'label';\n\n static readonly transformerConstructor = LabelSpecTransformer as any;\n readonly transformerConstructor = LabelSpecTransformer;\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n protected _labelInfoMap: Map<IRegion, ILabelInfo[]>;\n\n protected _labelComponentMap: Map<IComponentMark, () => ILabelInfo | ILabelInfo[]>;\n\n protected _layoutRule: 'series' | 'region';\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._layoutRule = (spec as any).labelLayout || 'series';\n }\n\n static getSpecInfo(chartSpec: any, chartSpecInfo: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n const regionSpecInfo = chartSpecInfo?.region || [];\n const isLabelVisible = (labelSpecList: ILabelSpec[]) => {\n return labelSpecList.some(labelSpec => labelSpec.visible);\n };\n\n regionSpecInfo.forEach((regionInfo, i) => {\n const seriesIndexes = regionInfo.seriesIndexes || [];\n const hasVisibleLabel = seriesIndexes.some(seriesIndex => {\n const seriesInfo = chartSpecInfo.series[seriesIndex];\n const { markLabelSpec = {} } = seriesInfo;\n\n return Object.values(markLabelSpec).some(\n labelSpecList => Array.isArray(labelSpecList) && isLabelVisible(labelSpecList)\n );\n });\n if (hasVisibleLabel) {\n specInfo.push({\n spec: chartSpec,\n type: ComponentTypeEnum.label,\n specInfoPath: ['component', this.specKey, i],\n regionIndexes: [i]\n });\n }\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.initEvent();\n this._initTextMark();\n this._initLabelComponent();\n this._initTextMarkStyle();\n }\n\n reInit(spec?: T) {\n super.reInit(spec);\n\n if (this._labelInfoMap) {\n this._labelInfoMap.forEach(labelInfos => {\n labelInfos.forEach(({ labelMark }) => {\n labelMark.release();\n });\n });\n this._labelInfoMap.clear();\n }\n this._labelInfoMap && this._labelInfoMap.clear();\n this._initTextMark();\n this._initLabelComponent();\n this._initTextMarkStyle();\n }\n\n initEvent() {\n this.event.on(ChartEvent.dataZoomChange, () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getComponent();\n if (graphicItem) {\n graphicItem.disableAnimation();\n }\n });\n this.event.on(HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n });\n const enableAnimation = () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getComponent();\n if (graphicItem) {\n graphicItem.enableAnimation();\n }\n });\n this.event.off(HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n };\n }\n\n protected _initTextMark() {\n if (!this._labelInfoMap) {\n this._labelInfoMap = new Map();\n }\n\n if (!this._labelComponentMap) {\n this._labelComponentMap = new Map();\n }\n eachSeries(this._regions, (series: ISeries) => {\n const { markLabelSpec = {} } = series.getSpecInfo();\n const markNames = Object.keys(markLabelSpec);\n const region = series.getRegion();\n\n if (!this._labelInfoMap.get(region)) {\n this._labelInfoMap.set(region, []);\n }\n for (let i = 0; i < markNames.length; i++) {\n const markName = markNames[i];\n const mark = series.getMarkInName(markName);\n if (!mark) {\n continue;\n }\n markLabelSpec[markName as SeriesMarkNameEnum].forEach((spec: TransformedLabelSpec, index: number) => {\n if (spec.visible) {\n const info = this._labelInfoMap.get(region);\n const labelMark = this._createMark(\n {\n type: MarkTypeEnum.label,\n name: `${series.userId ?? series.id}-${markName}-label-${index}`\n },\n { attributeContext: series.getMarkAttributeContext() }\n ) as ILabelMark;\n if (spec.showRelatedMarkTooltip) {\n series.tooltipHelper?.activeTriggerSet.mark?.add(labelMark);\n }\n labelMark.setTarget(mark);\n info.push({\n labelMark,\n baseMark: mark,\n series,\n labelSpec: spec\n });\n }\n });\n }\n });\n }\n\n protected _initLabelComponent() {\n const removedComponents: Record<string, IComponentMark> = {};\n\n this._labelComponentMap.forEach((labelInfo, comp) => {\n removedComponents[comp.name] = comp;\n });\n\n this._labelInfoMap.forEach((regionLabelInfo, region) => {\n if (this._layoutRule === 'region') {\n let isNew = false;\n const labelName = `${region.getGroupMark().name}-label-component`;\n let component = removedComponents[labelName];\n\n if (!component) {\n isNew = true;\n component = this._createMark(\n { type: MarkTypeEnum.component, name: labelName },\n {\n componentType: 'label'\n },\n {\n support3d: (this._spec as any).support3d\n }\n );\n }\n if (component) {\n if (isNew) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n\n // 当任意主图元数据更新的时候,都需要触发label的更新\n regionLabelInfo.forEach(labelInfo => {\n labelInfo.baseMark.getData()?.addRelatedMark(component);\n });\n }\n\n if (regionLabelInfo[0] && isValid(regionLabelInfo[0].labelSpec.zIndex)) {\n component.setMarkConfig({ zIndex: regionLabelInfo[0].labelSpec.zIndex });\n }\n this._labelComponentMap.set(component as IComponentMark, () => {\n return this._labelInfoMap.get(region);\n });\n removedComponents[labelName] = null;\n }\n } else {\n regionLabelInfo.forEach((labelInfo, i) => {\n let isNew = false;\n const labelName = `${labelInfo.labelMark.name}-component`;\n let component = removedComponents[labelName];\n if (!component) {\n isNew = true;\n component = this._createMark(\n { type: MarkTypeEnum.component, name: labelName },\n {\n componentType: 'label',\n noSeparateStyle: true\n },\n {\n support3d: labelInfo.baseMark.getMarkConfig().support3d\n }\n );\n }\n if (component) {\n if (isValid(labelInfo.labelSpec.zIndex)) {\n component.setMarkConfig({ zIndex: labelInfo.labelSpec.zIndex });\n }\n if (isNew) {\n component.setSkipBeforeLayouted(true);\n\n this._marks.addMark(component);\n // 当主图元数据更新的时候,都需要触发label的更新\n labelInfo.baseMark.getData()?.addRelatedMark(component);\n }\n this._labelComponentMap.set(component as IComponentMark, () => {\n return this._labelInfoMap.get(region)[i];\n });\n removedComponents[labelName] = null;\n }\n });\n }\n });\n\n Object.keys(removedComponents).forEach(name => {\n const comp = removedComponents[name];\n\n if (comp) {\n comp.release(); // todo 是否要上报\n this._labelComponentMap.delete(comp);\n }\n });\n }\n\n protected _initTextMarkStyle() {\n this._labelComponentMap.forEach((labelInfoCb, labelComponent) => {\n const labelInfoArray = array(labelInfoCb());\n labelInfoArray.forEach(({ labelMark }) => {\n labelMark.setComponent(labelComponent);\n });\n });\n this._labelInfoMap.forEach(labelInfos => {\n labelInfos.forEach(info => {\n const { labelMark, labelSpec, series } = info;\n this.initMarkStyleWithSpec(labelMark, labelSpec);\n if (isFunction(labelSpec?.getStyleHandler)) {\n const styleHandler = labelSpec.getStyleHandler(series);\n styleHandler?.call(series, labelMark, labelSpec);\n }\n if (labelMark.stateStyle?.normal?.lineWidth) {\n labelMark.setAttribute('stroke', series.getColorAttribute(), 'normal', AttributeLevel.Base_Series);\n }\n });\n });\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n this._labelComponentMap.forEach((labelInfoCb, labelComponent) => {\n const labelInfo = labelInfoCb();\n if (isArray(labelInfo)) {\n this._updateMultiLabelAttribute(labelInfo as ILabelInfo[], labelComponent);\n } else {\n this._updateSingleLabelAttribute(labelInfo as ILabelInfo, labelComponent);\n }\n });\n }\n\n protected _updateMultiLabelAttribute(labelInfo: ILabelInfo[], labelComponent: IComponentMark) {\n this._updateLabelComponentAttribute(\n labelComponent,\n labelInfo.map(({ baseMark }) => baseMark),\n labelInfo\n );\n }\n\n protected _updateSingleLabelAttribute(labelInfo: ILabelInfo, labelComponent: IComponentMark) {\n const { baseMark } = labelInfo;\n this._updateLabelComponentAttribute(labelComponent, baseMark, [labelInfo]);\n }\n\n protected _updateLabelComponentAttribute(\n labelComponent: IComponentMark,\n baseMark: IMark | IMark[],\n labelInfos: ILabelInfo[]\n ) {\n const totalLabels = this._option.getComponentsByType('totalLabel');\n\n labelComponent.setMarkConfig({\n interactive: false\n });\n\n labelComponent.setSimpleStyle({\n labelStyle: (labelIndex: number) => {\n const labelInfo = labelInfos[labelIndex];\n const { labelSpec, labelMark, series } = labelInfo;\n const rule = labelMark.getRule();\n const interactive = this._interactiveConfig(labelSpec);\n /** arc label When setting the centerOffset of the spec, the label also needs to be offset accordingly, and the centerOffset is not in the labelSpec */\n const centerOffset = (this._spec as any)?.centerOffset ?? 0;\n let spec = mergeSpec(\n {\n textStyle: { pickable: labelSpec.interactive === true, ...labelSpec.style },\n overlap: {\n avoidMarks: totalLabels.map(cmp => cmp.getMarks()[0].getProductId())\n }\n },\n defaultLabelConfig(rule, labelInfo),\n {\n ...pickWithout(labelSpec, ['position', 'style', 'state', 'type', 'stackDataFilterType', 'getStyleHandler']),\n ...interactive,\n centerOffset\n },\n labelSpec.stackDataFilterType\n ? {\n dataFilter:\n labelSpec.stackDataFilterType === 'min'\n ? (data: any) => {\n return data.filter((d: any) => d.data[STACK_FIELD_TOTAL_BOTTOM]);\n }\n : (data: any) => {\n return data.filter((d: any) => d.data[STACK_FIELD_TOTAL_TOP]);\n }\n }\n : {}\n );\n\n if (series && series.parseLabelStyle) {\n spec = series.parseLabelStyle(spec, labelSpec, labelMark);\n }\n // TODO 可以优化。vgrammar 的 label 图元类型分发是完全依赖 baseMark 的类型。默认情况下,line/area 图元的标签会使用'line-data'标签,此时需要 vchart 将类型传给 vgrammar\n if (rule === 'line' || rule === 'area') {\n spec.type = rule;\n }\n\n return spec;\n },\n size: () => {\n return {\n padding: labelInfos[0].labelSpec.overlap?.padding,\n ...labelInfos[0].series.getRegion().getLayoutRect()\n };\n },\n itemEncoder: (datum: Datum, { labelIndex }: { labelIndex: number }) => {\n return labelInfos[labelIndex] && !labelInfos[labelIndex].labelMark.skipEncode\n ? textAttribute(\n labelInfos[labelIndex],\n datum,\n labelInfos[labelIndex].labelSpec.formatMethod,\n labelInfos[labelIndex].labelSpec.formatter\n )\n : { data: datum };\n }\n });\n\n this._setTransformOfComponent(labelComponent, baseMark);\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const labelInfo = this._labelComponentMap.get(m as IComponentMark)();\n let group;\n if (isArray(labelInfo)) {\n group = labelInfo[0].series.getRegion().getGroupMark().getProduct() as IGroup;\n } else {\n group = labelInfo.series.getRegion().getGroupMark().getProduct() as IGroup;\n }\n m.compile({ group });\n });\n }\n\n getLabelInfoByTextGraphic(text: IGraphic): ILabelInfo {\n let labelInfo: ILabelInfo;\n const vrenderLabel = text?.parent;\n const vrenderDataLabel = vrenderLabel?.parent;\n if (vrenderDataLabel) {\n const labelIndex = vrenderDataLabel.getChildren().indexOf(vrenderLabel as any);\n this._labelComponentMap.forEach((infoFunc, component) => {\n const graphicItem = component.getComponent();\n if (graphicItem === vrenderDataLabel) {\n labelInfo = array(infoFunc())[labelIndex];\n }\n });\n }\n return labelInfo;\n }\n}\n\nexport const registerLabel = () => {\n Factory.registerGraphicComponent(Label.type, (attrs: DataLabelAttrs) => {\n return new DataLabel(attrs) as unknown as IGroup;\n });\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(Label.type, Label, true, Infinity); // 标签组件最后创建\n};\n"]}
1
+ {"version":3,"sources":["../src/component/label/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport { STACK_FIELD_TOTAL_BOTTOM, STACK_FIELD_TOTAL_TOP } from '../../constant/data';\nimport { ChartEvent, HOOK_EVENT } from '../../constant/event';\nimport { AttributeLevel } from '../../constant/attribute';\nimport { LayoutZIndex } from '../../constant/layout';\nimport type { IMark } from '../../mark/interface';\nimport { type IComponentMark, type ILabelMark } from '../../mark/interface';\nimport { MarkTypeEnum } from '../../mark/interface/type';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { eachSeries } from '../../util/model';\nimport type { ISeries, SeriesMarkNameEnum } from '../../series/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { defaultLabelConfig, textAttribute } from './util';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { BaseLabelComponent } from './base-label';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isArray, isFunction, isValid, pickWithout } from '@visactor/vutils';\nimport type { ILabelInfo, ILabelSpec, TransformedLabelSpec } from './interface';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { Datum, IChartSpec } from '../../typings';\nimport { LabelSpecTransformer } from './label-transformer';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\nimport type { DataLabelAttrs } from '@visactor/vrender-components';\nimport { DataLabel } from '@visactor/vrender-components';\n\nexport class Label<T extends IChartSpec = any> extends BaseLabelComponent<T> {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n static specKey = 'label';\n specKey = 'label';\n\n static readonly transformerConstructor = LabelSpecTransformer as any;\n readonly transformerConstructor = LabelSpecTransformer;\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n protected _labelInfoMap: Map<IRegion, ILabelInfo[]>;\n\n protected _labelComponentMap: Map<IComponentMark, () => ILabelInfo | ILabelInfo[]>;\n\n protected _layoutRule: 'series' | 'region';\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._layoutRule = (spec as any).labelLayout || 'series';\n }\n\n static getSpecInfo(chartSpec: any, chartSpecInfo: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n const regionSpecInfo = chartSpecInfo?.region || [];\n const isLabelVisible = (labelSpecList: ILabelSpec[]) => {\n return labelSpecList.some(labelSpec => labelSpec.visible);\n };\n\n regionSpecInfo.forEach((regionInfo, i) => {\n const seriesIndexes = regionInfo.seriesIndexes || [];\n const hasVisibleLabel = seriesIndexes.some(seriesIndex => {\n const seriesInfo = chartSpecInfo.series[seriesIndex];\n const { markLabelSpec = {} } = seriesInfo;\n\n return Object.values(markLabelSpec).some(\n labelSpecList => Array.isArray(labelSpecList) && isLabelVisible(labelSpecList)\n );\n });\n if (hasVisibleLabel) {\n specInfo.push({\n spec: chartSpec,\n type: ComponentTypeEnum.label,\n specInfoPath: ['component', this.specKey, i],\n regionIndexes: [i]\n });\n }\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.initEvent();\n this._initTextMark();\n this._initLabelComponent();\n this._initTextMarkStyle();\n }\n\n reInit(spec?: T) {\n super.reInit(spec);\n\n if (this._labelInfoMap) {\n this._labelInfoMap.forEach(labelInfos => {\n labelInfos.forEach(({ labelMark }) => {\n labelMark.release();\n });\n });\n this._labelInfoMap.clear();\n }\n this._labelInfoMap && this._labelInfoMap.clear();\n this._initTextMark();\n this._initLabelComponent();\n this._initTextMarkStyle();\n }\n\n initEvent() {\n this.event.on(ChartEvent.dataZoomChange, () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getComponent();\n if (graphicItem) {\n graphicItem.disableAnimation();\n }\n });\n this.event.on(HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n });\n const enableAnimation = () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getComponent();\n if (graphicItem) {\n graphicItem.enableAnimation();\n }\n });\n this.event.off(HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n };\n }\n\n protected _initTextMark() {\n if (!this._labelInfoMap) {\n this._labelInfoMap = new Map();\n }\n\n if (!this._labelComponentMap) {\n this._labelComponentMap = new Map();\n }\n eachSeries(this._regions, (series: ISeries) => {\n const { markLabelSpec = {} } = series.getSpecInfo();\n const markNames = Object.keys(markLabelSpec);\n const region = series.getRegion();\n\n if (!this._labelInfoMap.get(region)) {\n this._labelInfoMap.set(region, []);\n }\n for (let i = 0; i < markNames.length; i++) {\n const markName = markNames[i];\n const mark = series.getMarkInName(markName);\n if (!mark) {\n continue;\n }\n markLabelSpec[markName as SeriesMarkNameEnum].forEach((spec: TransformedLabelSpec, index: number) => {\n if (spec.visible) {\n const info = this._labelInfoMap.get(region);\n const labelMark = this._createMark(\n {\n type: MarkTypeEnum.label,\n name: `${series.userId ?? series.id}-${markName}-label-${index}`\n },\n { attributeContext: series.getMarkAttributeContext() }\n ) as ILabelMark;\n if (spec.showRelatedMarkTooltip) {\n series.tooltipHelper?.activeTriggerSet.mark?.add(labelMark);\n }\n labelMark.setTarget(mark);\n info.push({\n labelMark,\n baseMark: mark,\n series,\n labelSpec: spec\n });\n }\n });\n }\n });\n }\n\n protected _initLabelComponent() {\n const removedComponents: Record<string, IComponentMark> = {};\n\n this._labelComponentMap.forEach((labelInfo, comp) => {\n removedComponents[comp.name] = comp;\n });\n\n this._labelInfoMap.forEach((regionLabelInfo, region) => {\n if (this._layoutRule === 'region') {\n let isNew = false;\n const labelName = `${region.getGroupMark().name}-label-component`;\n let component = removedComponents[labelName];\n\n if (!component) {\n isNew = true;\n component = this._createMark(\n { type: MarkTypeEnum.component, name: labelName },\n {\n componentType: 'label'\n },\n {\n support3d: (this._spec as any).support3d\n }\n );\n }\n if (component) {\n if (isNew) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n\n // 当任意主图元数据更新的时候,都需要触发label的更新\n regionLabelInfo.forEach(labelInfo => {\n labelInfo.baseMark.getData()?.addRelatedMark(component);\n });\n }\n\n if (regionLabelInfo[0] && isValid(regionLabelInfo[0].labelSpec.zIndex)) {\n component.setMarkConfig({ zIndex: regionLabelInfo[0].labelSpec.zIndex });\n }\n this._labelComponentMap.set(component as IComponentMark, () => {\n return this._labelInfoMap.get(region);\n });\n removedComponents[labelName] = null;\n }\n } else {\n regionLabelInfo.forEach((labelInfo, i) => {\n let isNew = false;\n const labelName = `${labelInfo.labelMark.name}-component`;\n let component = removedComponents[labelName];\n if (!component) {\n isNew = true;\n component = this._createMark(\n { type: MarkTypeEnum.component, name: labelName },\n {\n componentType: 'label',\n noSeparateStyle: true\n },\n {\n support3d: labelInfo.baseMark.getMarkConfig().support3d\n }\n );\n }\n if (component) {\n if (isValid(labelInfo.labelSpec.zIndex)) {\n component.setMarkConfig({ zIndex: labelInfo.labelSpec.zIndex });\n }\n if (isNew) {\n component.setSkipBeforeLayouted(true);\n\n this._marks.addMark(component);\n // 当主图元数据更新的时候,都需要触发label的更新\n labelInfo.baseMark.getData()?.addRelatedMark(component);\n }\n this._labelComponentMap.set(component as IComponentMark, () => {\n return this._labelInfoMap.get(region)[i];\n });\n removedComponents[labelName] = null;\n }\n });\n }\n });\n\n Object.keys(removedComponents).forEach(name => {\n const comp = removedComponents[name];\n\n if (comp) {\n if (!comp.releaseWithExitAnimation()) {\n comp.release(); // todo 是否要上报\n }\n this._labelComponentMap.delete(comp);\n }\n });\n }\n\n protected _initTextMarkStyle() {\n this._labelComponentMap.forEach((labelInfoCb, labelComponent) => {\n const labelInfoArray = array(labelInfoCb());\n labelInfoArray.forEach(({ labelMark }) => {\n labelMark.setComponent(labelComponent);\n });\n });\n this._labelInfoMap.forEach(labelInfos => {\n labelInfos.forEach(info => {\n const { labelMark, labelSpec, series } = info;\n this.initMarkStyleWithSpec(labelMark, labelSpec);\n if (isFunction(labelSpec?.getStyleHandler)) {\n const styleHandler = labelSpec.getStyleHandler(series);\n styleHandler?.call(series, labelMark, labelSpec);\n }\n if (labelMark.stateStyle?.normal?.lineWidth) {\n labelMark.setAttribute('stroke', series.getColorAttribute(), 'normal', AttributeLevel.Base_Series);\n }\n });\n });\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n this._labelComponentMap.forEach((labelInfoCb, labelComponent) => {\n const labelInfo = labelInfoCb();\n if (isArray(labelInfo)) {\n this._updateMultiLabelAttribute(labelInfo as ILabelInfo[], labelComponent);\n } else {\n this._updateSingleLabelAttribute(labelInfo as ILabelInfo, labelComponent);\n }\n });\n }\n\n protected _updateMultiLabelAttribute(labelInfo: ILabelInfo[], labelComponent: IComponentMark) {\n this._updateLabelComponentAttribute(\n labelComponent,\n labelInfo.map(({ baseMark }) => baseMark),\n labelInfo\n );\n }\n\n protected _updateSingleLabelAttribute(labelInfo: ILabelInfo, labelComponent: IComponentMark) {\n const { baseMark } = labelInfo;\n this._updateLabelComponentAttribute(labelComponent, baseMark, [labelInfo]);\n }\n\n protected _updateLabelComponentAttribute(\n labelComponent: IComponentMark,\n baseMark: IMark | IMark[],\n labelInfos: ILabelInfo[]\n ) {\n const totalLabels = this._option.getComponentsByType('totalLabel');\n\n labelComponent.setMarkConfig({\n interactive: false\n });\n\n labelComponent.setSimpleStyle({\n labelStyle: (labelIndex: number) => {\n const labelInfo = labelInfos[labelIndex];\n const { labelSpec, labelMark, series } = labelInfo;\n const rule = labelMark.getRule();\n const interactive = this._interactiveConfig(labelSpec);\n /** arc label When setting the centerOffset of the spec, the label also needs to be offset accordingly, and the centerOffset is not in the labelSpec */\n const centerOffset = (this._spec as any)?.centerOffset ?? 0;\n let spec = mergeSpec(\n {\n textStyle: { pickable: labelSpec.interactive === true, ...labelSpec.style },\n overlap: {\n avoidMarks: totalLabels.map(cmp => cmp.getMarks()[0].getProductId())\n }\n },\n defaultLabelConfig(rule, labelInfo),\n {\n ...pickWithout(labelSpec, ['position', 'style', 'state', 'type', 'stackDataFilterType', 'getStyleHandler']),\n ...interactive,\n centerOffset\n },\n labelSpec.stackDataFilterType\n ? {\n dataFilter:\n labelSpec.stackDataFilterType === 'min'\n ? (data: any) => {\n return data.filter((d: any) => d.data[STACK_FIELD_TOTAL_BOTTOM]);\n }\n : (data: any) => {\n return data.filter((d: any) => d.data[STACK_FIELD_TOTAL_TOP]);\n }\n }\n : {}\n );\n\n if (series && series.parseLabelStyle) {\n spec = series.parseLabelStyle(spec, labelSpec, labelMark);\n }\n // TODO 可以优化。vgrammar 的 label 图元类型分发是完全依赖 baseMark 的类型。默认情况下,line/area 图元的标签会使用'line-data'标签,此时需要 vchart 将类型传给 vgrammar\n if (rule === 'line' || rule === 'area') {\n spec.type = rule;\n }\n\n return spec;\n },\n size: () => {\n return {\n padding: labelInfos[0].labelSpec.overlap?.padding,\n ...labelInfos[0].series.getRegion().getLayoutRect()\n };\n },\n itemEncoder: (datum: Datum, { labelIndex }: { labelIndex: number }) => {\n return labelInfos[labelIndex] && !labelInfos[labelIndex].labelMark.skipEncode\n ? textAttribute(\n labelInfos[labelIndex],\n datum,\n labelInfos[labelIndex].labelSpec.formatMethod,\n labelInfos[labelIndex].labelSpec.formatter\n )\n : { data: datum };\n }\n });\n\n this._setTransformOfComponent(labelComponent, baseMark);\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const labelInfo = this._labelComponentMap.get(m as IComponentMark)();\n let group;\n if (isArray(labelInfo)) {\n group = labelInfo[0].series.getRegion().getGroupMark().getProduct() as IGroup;\n } else {\n group = labelInfo.series.getRegion().getGroupMark().getProduct() as IGroup;\n }\n m.compile({ group });\n });\n }\n\n getLabelInfoByTextGraphic(text: IGraphic): ILabelInfo {\n let labelInfo: ILabelInfo;\n const vrenderLabel = text?.parent;\n const vrenderDataLabel = vrenderLabel?.parent;\n if (vrenderDataLabel) {\n const labelIndex = vrenderDataLabel.getChildren().indexOf(vrenderLabel as any);\n this._labelComponentMap.forEach((infoFunc, component) => {\n const graphicItem = component.getComponent();\n if (graphicItem === vrenderDataLabel) {\n labelInfo = array(infoFunc())[labelIndex];\n }\n });\n }\n return labelInfo;\n }\n}\n\nexport const registerLabel = () => {\n Factory.registerGraphicComponent(Label.type, (attrs: DataLabelAttrs) => {\n return new DataLabel(attrs) as unknown as IGroup;\n });\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(Label.type, Label, true, Infinity); // 标签组件最后创建\n};\n"]}
@@ -31,13 +31,8 @@ export declare abstract class BaseLegend<T extends ILegendCommonSpec> extends Ba
31
31
  protected _regionUserIndex?: number[];
32
32
  setAttrFromSpec(): void;
33
33
  created(): void;
34
- _compareSpec(spec: T, prevSpec: T): {
35
- change: boolean;
36
- reMake: boolean;
37
- reRender: boolean;
38
- reSize: boolean;
39
- reCompile: boolean;
40
- };
34
+ _compareSpec(spec: T, prevSpec: T): import("../../model/interface").IUpdateSpecResult;
35
+ private _isComponentOnlySpecChange;
41
36
  protected abstract _initLegendData(): DataView;
42
37
  protected abstract _initSelectedData(): void;
43
38
  protected abstract _getLegendAttributes(rect: ILayoutRect): any;
@@ -14,6 +14,14 @@ import { mergeSpec } from "@visactor/vutils-extension";
14
14
 
15
15
  import { CompilableData } from "../../compile/data/compilable-data";
16
16
 
17
+ const LEGEND_COMPONENT_ONLY_CHANGE_KEYS = {
18
+ position: !0,
19
+ item: !0,
20
+ title: !0,
21
+ pager: !0,
22
+ background: !0
23
+ };
24
+
17
25
  export class BaseLegend extends BaseComponent {
18
26
  constructor() {
19
27
  super(...arguments), this.layoutType = "normal", this.layoutZIndex = LayoutZIndex.Legend,
@@ -66,8 +74,18 @@ export class BaseLegend extends BaseComponent {
66
74
  }
67
75
  _compareSpec(spec, prevSpec) {
68
76
  const result = super._compareSpec(spec, prevSpec);
69
- return result.reRender = !0, (null == spec ? void 0 : spec.orient) !== (null == prevSpec ? void 0 : prevSpec.orient) ? (result.reMake = !0,
70
- result) : (isEqual(prevSpec, spec) || (result.reCompile = !0), result);
77
+ result.reRender = !0;
78
+ const specChanged = !isEqual(prevSpec, spec);
79
+ return result.reMake ? result : (null == spec ? void 0 : spec.orient) !== (null == prevSpec ? void 0 : prevSpec.orient) ? (result.reMake = !0,
80
+ result) : specChanged && !result.reCompile && this._isComponentOnlySpecChange(spec, prevSpec) ? (result.effects = Object.assign(Object.assign({}, result.effects), {
81
+ component: !0,
82
+ layout: !0,
83
+ render: !0
84
+ }), result) : (specChanged && (result.reCompile = !0), result);
85
+ }
86
+ _isComponentOnlySpecChange(spec, prevSpec) {
87
+ const prevSpecRecord = prevSpec, specRecord = spec;
88
+ return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every((key => isEqual(null == prevSpecRecord ? void 0 : prevSpecRecord[key], null == specRecord ? void 0 : specRecord[key]) || LEGEND_COMPONENT_ONLY_CHANGE_KEYS[key]));
71
89
  }
72
90
  _bindLegendDataChange() {
73
91
  this._preSelectedData = this._selectedData.slice(), this._initSelectedData(), this._forceLayout();