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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +56784 -64559
  3. package/build/index.js +56787 -64562
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/animation/callback-disappear.d.ts +1 -1
  7. package/cjs/animation/callback-disappear.js +2 -2
  8. package/cjs/animation/callback-disappear.js.map +1 -1
  9. package/cjs/animation/config.js +34 -34
  10. package/cjs/animation/config.js.map +1 -1
  11. package/cjs/animation/index.js +2 -1
  12. package/cjs/chart/base/base-chart-transformer.d.ts +0 -3
  13. package/cjs/chart/base/base-chart-transformer.js +3 -23
  14. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  15. package/cjs/chart/base/base-chart.d.ts +9 -27
  16. package/cjs/chart/base/base-chart.js +28 -209
  17. package/cjs/chart/base/base-chart.js.map +1 -1
  18. package/cjs/chart/gauge/gauge-transformer.js +2 -3
  19. package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
  20. package/cjs/chart/interface/chart.d.ts +0 -1
  21. package/cjs/chart/interface/chart.js.map +1 -1
  22. package/cjs/chart/pie/base/pie-transformer.js +2 -2
  23. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  24. package/cjs/chart/polar/polar-transformer.js +1 -1
  25. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  26. package/cjs/chart/polar/progress-like/progress-like-transformer.js +1 -1
  27. package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  28. package/cjs/chart/progress/circular/circular-progress-transformer.js +1 -2
  29. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  30. package/cjs/chart/progress/linear/linear-progress-transformer.js +1 -1
  31. package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  32. package/cjs/chart/radar/radar-transformer.js +2 -3
  33. package/cjs/chart/radar/radar-transformer.js.map +1 -1
  34. package/cjs/chart/range-area/range-area-transformer.js +2 -2
  35. package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
  36. package/cjs/chart/rose/rose-transformer.js +1 -2
  37. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  38. package/cjs/chart/util.d.ts +1 -4
  39. package/cjs/chart/util.js +4 -40
  40. package/cjs/chart/util.js.map +1 -1
  41. package/cjs/chart/waterfall/waterfall-transformer.js +1 -2
  42. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  43. package/cjs/compile/compiler.d.ts +0 -2
  44. package/cjs/compile/compiler.js +48 -68
  45. package/cjs/compile/compiler.js.map +1 -1
  46. package/cjs/compile/data/compilable-data.d.ts +1 -1
  47. package/cjs/compile/data/compilable-data.js +1 -1
  48. package/cjs/compile/data/compilable-data.js.map +1 -1
  49. package/cjs/compile/grammar-item.d.ts +1 -1
  50. package/cjs/compile/grammar-item.js.map +1 -1
  51. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  52. package/cjs/compile/interface/compilable-item.js.map +1 -1
  53. package/cjs/compile/interface/compiler.d.ts +1 -2
  54. package/cjs/compile/interface/compiler.js.map +1 -1
  55. package/cjs/compile/morph.js +4 -4
  56. package/cjs/compile/morph.js.map +1 -1
  57. package/cjs/compile/state-manager.js +1 -2
  58. package/cjs/component/axis/base-axis.d.ts +8 -3
  59. package/cjs/component/axis/base-axis.js +7 -27
  60. package/cjs/component/axis/base-axis.js.map +1 -1
  61. package/cjs/component/axis/cartesian/band-axis.d.ts +7 -1
  62. package/cjs/component/axis/cartesian/band-axis.js +4 -4
  63. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  64. package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -1
  65. package/cjs/component/axis/cartesian/linear-axis.js +4 -4
  66. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  67. package/cjs/component/axis/mixin/linear-axis-mixin.js +10 -7
  68. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  69. package/cjs/component/axis/polar/band-axis.d.ts +0 -2
  70. package/cjs/component/axis/polar/band-axis.js +0 -3
  71. package/cjs/component/axis/polar/band-axis.js.map +1 -1
  72. package/cjs/component/axis/polar/linear-axis.js +0 -3
  73. package/cjs/component/axis/polar/linear-axis.js.map +1 -1
  74. package/cjs/component/base/base-component.d.ts +7 -7
  75. package/cjs/component/base/base-component.js +6 -41
  76. package/cjs/component/base/base-component.js.map +1 -1
  77. package/cjs/component/brush/brush.d.ts +7 -3
  78. package/cjs/component/brush/brush.js +16 -34
  79. package/cjs/component/brush/brush.js.map +1 -1
  80. package/cjs/component/crosshair/base.d.ts +8 -5
  81. package/cjs/component/crosshair/base.js +5 -33
  82. package/cjs/component/crosshair/base.js.map +1 -1
  83. package/cjs/component/crosshair/cartesian.js +3 -3
  84. package/cjs/component/crosshair/cartesian.js.map +1 -1
  85. package/cjs/component/custom-mark/custom-mark.d.ts +7 -4
  86. package/cjs/component/custom-mark/custom-mark.js +3 -27
  87. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  88. package/cjs/component/data-zoom/data-filter-base-component.d.ts +7 -3
  89. package/cjs/component/data-zoom/data-filter-base-component.js +2 -15
  90. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  91. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
  92. package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -19
  93. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  94. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
  95. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
  96. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  97. package/cjs/component/geo/geo-coordinate.d.ts +7 -1
  98. package/cjs/component/index.js +2 -1
  99. package/cjs/component/indicator/indicator.d.ts +0 -1
  100. package/cjs/component/indicator/indicator.js +2 -11
  101. package/cjs/component/indicator/indicator.js.map +1 -1
  102. package/cjs/component/indicator/util.d.ts +3 -4
  103. package/cjs/component/indicator/util.js +1 -1
  104. package/cjs/component/indicator/util.js.map +1 -1
  105. package/cjs/component/label/base-label.d.ts +7 -1
  106. package/cjs/component/label/base-label.js +2 -6
  107. package/cjs/component/label/base-label.js.map +1 -1
  108. package/cjs/component/label/label.js +3 -3
  109. package/cjs/component/label/label.js.map +1 -1
  110. package/cjs/component/legend/base-legend.d.ts +7 -2
  111. package/cjs/component/legend/base-legend.js +3 -20
  112. package/cjs/component/legend/base-legend.js.map +1 -1
  113. package/cjs/component/legend/discrete/legend.d.ts +1 -1
  114. package/cjs/component/legend/discrete/legend.js +7 -7
  115. package/cjs/component/legend/discrete/legend.js.map +1 -1
  116. package/cjs/component/marker/base-marker.d.ts +7 -14
  117. package/cjs/component/marker/base-marker.js +12 -112
  118. package/cjs/component/marker/base-marker.js.map +1 -1
  119. package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
  120. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  121. package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
  122. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  123. package/cjs/component/marker/mark-line/base-mark-line.js +4 -2
  124. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  125. package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
  126. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  127. package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
  128. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  129. package/cjs/component/marker/mark-point/base-mark-point.js +11 -26
  130. package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
  131. package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
  132. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  133. package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
  134. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  135. package/cjs/component/marker/utils.d.ts +4 -4
  136. package/cjs/component/marker/utils.js +23 -27
  137. package/cjs/component/marker/utils.js.map +1 -1
  138. package/cjs/component/player/player.d.ts +0 -1
  139. package/cjs/component/player/player.js +0 -10
  140. package/cjs/component/player/player.js.map +1 -1
  141. package/cjs/component/title/title.d.ts +7 -1
  142. package/cjs/component/title/title.js +2 -6
  143. package/cjs/component/title/title.js.map +1 -1
  144. package/cjs/component/tooltip/tooltip.d.ts +0 -1
  145. package/cjs/component/tooltip/tooltip.js +0 -8
  146. package/cjs/component/tooltip/tooltip.js.map +1 -1
  147. package/cjs/component/util.js +1 -2
  148. package/cjs/constant/scatter.js +2 -1
  149. package/cjs/constant/scroll-bar.js +1 -2
  150. package/cjs/core/index.d.ts +1 -2
  151. package/cjs/core/index.js +4 -8
  152. package/cjs/core/index.js.map +1 -1
  153. package/cjs/core/instance-manager.js +1 -1
  154. package/cjs/core/vchart.d.ts +1 -5
  155. package/cjs/core/vchart.js +18 -30
  156. package/cjs/core/vchart.js.map +1 -1
  157. package/cjs/data/transforms/box-plot.d.ts +1 -4
  158. package/cjs/data/transforms/box-plot.js +3 -3
  159. package/cjs/data/transforms/box-plot.js.map +1 -1
  160. package/cjs/data/transforms/correlation-center.d.ts +4 -11
  161. package/cjs/data/transforms/correlation-center.js +2 -3
  162. package/cjs/data/transforms/correlation-center.js.map +1 -1
  163. package/cjs/data/transforms/correlation.d.ts +15 -18
  164. package/cjs/data/transforms/correlation.js +17 -22
  165. package/cjs/data/transforms/correlation.js.map +1 -1
  166. package/cjs/data/transforms/funnel.d.ts +8 -10
  167. package/cjs/data/transforms/funnel.js +3 -4
  168. package/cjs/data/transforms/funnel.js.map +1 -1
  169. package/cjs/data/transforms/lookup.d.ts +3 -3
  170. package/cjs/data/transforms/lookup.js +7 -12
  171. package/cjs/data/transforms/lookup.js.map +1 -1
  172. package/cjs/data/transforms/map.d.ts +2 -8
  173. package/cjs/data/transforms/map.js +6 -9
  174. package/cjs/data/transforms/map.js.map +1 -1
  175. package/cjs/data/transforms/sankey.d.ts +4 -12
  176. package/cjs/data/transforms/sankey.js +13 -18
  177. package/cjs/data/transforms/sankey.js.map +1 -1
  178. package/cjs/data/transforms/stack-split.d.ts +1 -2
  179. package/cjs/data/transforms/stack-split.js +1 -1
  180. package/cjs/data/transforms/stack-split.js.map +1 -1
  181. package/cjs/data/transforms/treemap.d.ts +3 -5
  182. package/cjs/data/transforms/treemap.js +6 -7
  183. package/cjs/data/transforms/treemap.js.map +1 -1
  184. package/cjs/data/transforms/venn.d.ts +2 -4
  185. package/cjs/data/transforms/venn.js +4 -4
  186. package/cjs/data/transforms/venn.js.map +1 -1
  187. package/cjs/data/transforms/waterfall.d.ts +2 -4
  188. package/cjs/data/transforms/waterfall.js +7 -7
  189. package/cjs/data/transforms/waterfall.js.map +1 -1
  190. package/cjs/env/env.js +10 -10
  191. package/cjs/env/env.js.map +1 -1
  192. package/cjs/event/event.d.ts +0 -4
  193. package/cjs/event/event.js +7 -26
  194. package/cjs/event/event.js.map +1 -1
  195. package/cjs/interaction/interaction.js +8 -11
  196. package/cjs/interaction/interaction.js.map +1 -1
  197. package/cjs/interaction/triggers/element-active-by-legend.js +2 -3
  198. package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
  199. package/cjs/interaction/triggers/element-active.js +3 -4
  200. package/cjs/interaction/triggers/element-active.js.map +1 -1
  201. package/cjs/interaction/triggers/element-highlight-by-group.js +2 -3
  202. package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
  203. package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
  204. package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  205. package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
  206. package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
  207. package/cjs/interaction/triggers/element-highlight.js +2 -2
  208. package/cjs/interaction/triggers/element-highlight.js.map +1 -1
  209. package/cjs/interaction/triggers/element-select.js +3 -3
  210. package/cjs/interaction/triggers/element-select.js.map +1 -1
  211. package/cjs/mark/arc.js +4 -4
  212. package/cjs/mark/arc.js.map +1 -1
  213. package/cjs/mark/area.js +5 -4
  214. package/cjs/mark/area.js.map +1 -1
  215. package/cjs/mark/base/base-mark.d.ts +2 -13
  216. package/cjs/mark/base/base-mark.js +29 -106
  217. package/cjs/mark/base/base-mark.js.map +1 -1
  218. package/cjs/mark/component.d.ts +0 -9
  219. package/cjs/mark/component.js +3 -51
  220. package/cjs/mark/component.js.map +1 -1
  221. package/cjs/mark/group.js +6 -6
  222. package/cjs/mark/group.js.map +1 -1
  223. package/cjs/mark/interface/mark.d.ts +0 -2
  224. package/cjs/mark/interface/mark.js.map +1 -1
  225. package/cjs/mark/line.js +5 -4
  226. package/cjs/mark/line.js.map +1 -1
  227. package/cjs/mark/rect.js +3 -3
  228. package/cjs/mark/rect.js.map +1 -1
  229. package/cjs/mark/symbol.js +3 -3
  230. package/cjs/mark/symbol.js.map +1 -1
  231. package/cjs/mark/text.js +4 -4
  232. package/cjs/mark/text.js.map +1 -1
  233. package/cjs/mark/utils/glyph.js +2 -3
  234. package/cjs/mark/utils/glyph.js.map +1 -1
  235. package/cjs/model/base-model.d.ts +15 -3
  236. package/cjs/model/base-model.js.map +1 -1
  237. package/cjs/model/interface.d.ts +0 -13
  238. package/cjs/model/interface.js.map +1 -1
  239. package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
  240. package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  241. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  242. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js +2 -2
  243. package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  244. package/cjs/plugin/other.js +5 -5
  245. package/cjs/plugin/other.js.map +1 -1
  246. package/cjs/region/region.d.ts +7 -1
  247. package/cjs/scale/color-ordinal-scale.d.ts +0 -1
  248. package/cjs/scale/color-ordinal-scale.js +0 -3
  249. package/cjs/scale/color-ordinal-scale.js.map +1 -1
  250. package/cjs/scale/global-scale.js +2 -9
  251. package/cjs/scale/global-scale.js.map +1 -1
  252. package/cjs/series/area/area.d.ts +0 -2
  253. package/cjs/series/area/area.js +0 -6
  254. package/cjs/series/area/area.js.map +1 -1
  255. package/cjs/series/bar/bar.d.ts +0 -3
  256. package/cjs/series/bar/bar.js +4 -30
  257. package/cjs/series/bar/bar.js.map +1 -1
  258. package/cjs/series/base/base-series.d.ts +7 -11
  259. package/cjs/series/base/base-series.js +18 -88
  260. package/cjs/series/base/base-series.js.map +1 -1
  261. package/cjs/series/base/constant.d.ts +0 -3
  262. package/cjs/series/base/constant.js +1 -9
  263. package/cjs/series/base/constant.js.map +1 -1
  264. package/cjs/series/box-plot/box-plot.d.ts +0 -2
  265. package/cjs/series/box-plot/box-plot.js +4 -16
  266. package/cjs/series/box-plot/box-plot.js.map +1 -1
  267. package/cjs/series/correlation/correlation.js +11 -13
  268. package/cjs/series/correlation/correlation.js.map +1 -1
  269. package/cjs/series/dot/dot.d.ts +0 -12
  270. package/cjs/series/dot/dot.js +1 -16
  271. package/cjs/series/dot/dot.js.map +1 -1
  272. package/cjs/series/funnel/funnel.js +8 -5
  273. package/cjs/series/funnel/funnel.js.map +1 -1
  274. package/cjs/series/heatmap/heatmap.d.ts +0 -2
  275. package/cjs/series/heatmap/heatmap.js +0 -10
  276. package/cjs/series/heatmap/heatmap.js.map +1 -1
  277. package/cjs/series/line/line.d.ts +0 -2
  278. package/cjs/series/line/line.js +3 -9
  279. package/cjs/series/line/line.js.map +1 -1
  280. package/cjs/series/map/map.js +3 -3
  281. package/cjs/series/map/map.js.map +1 -1
  282. package/cjs/series/mixin/line-mixin.d.ts +0 -1
  283. package/cjs/series/mixin/line-mixin.js +1 -6
  284. package/cjs/series/mixin/line-mixin.js.map +1 -1
  285. package/cjs/series/pie/pie.d.ts +7 -3
  286. package/cjs/series/pie/pie.js +1 -16
  287. package/cjs/series/pie/pie.js.map +1 -1
  288. package/cjs/series/polar/progress-like/progress-like.d.ts +0 -2
  289. package/cjs/series/polar/progress-like/progress-like.js +1 -16
  290. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  291. package/cjs/series/polar/rose-like/rose-like.d.ts +0 -2
  292. package/cjs/series/polar/rose-like/rose-like.js +1 -15
  293. package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
  294. package/cjs/series/progress/circular/circular.d.ts +0 -2
  295. package/cjs/series/progress/circular/circular.js +1 -10
  296. package/cjs/series/progress/circular/circular.js.map +1 -1
  297. package/cjs/series/progress/linear/linear.d.ts +0 -2
  298. package/cjs/series/progress/linear/linear.js +1 -19
  299. package/cjs/series/progress/linear/linear.js.map +1 -1
  300. package/cjs/series/sankey/sankey.js +57 -67
  301. package/cjs/series/sankey/sankey.js.map +1 -1
  302. package/cjs/series/scatter/scatter.d.ts +0 -2
  303. package/cjs/series/scatter/scatter.js +1 -9
  304. package/cjs/series/scatter/scatter.js.map +1 -1
  305. package/cjs/series/treemap/treemap.js +20 -23
  306. package/cjs/series/treemap/treemap.js.map +1 -1
  307. package/cjs/series/venn/venn.js +2 -2
  308. package/cjs/series/venn/venn.js.map +1 -1
  309. package/cjs/series/waterfall/waterfall.d.ts +0 -2
  310. package/cjs/series/waterfall/waterfall.js +20 -36
  311. package/cjs/series/waterfall/waterfall.js.map +1 -1
  312. package/cjs/series/word-cloud/animation.js +0 -3
  313. package/cjs/series/word-cloud/animation.js.map +1 -1
  314. package/cjs/theme/builtin/common/series/word-cloud.js +6 -2
  315. package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -1
  316. package/cjs/util/math.d.ts +1 -1
  317. package/cjs/util/math.js +2 -2
  318. package/cjs/util/math.js.map +1 -1
  319. package/cjs/util/text.js +2 -2
  320. package/cjs/util/text.js.map +1 -1
  321. package/esm/animation/callback-disappear.d.ts +1 -1
  322. package/esm/animation/callback-disappear.js +1 -1
  323. package/esm/animation/callback-disappear.js.map +1 -1
  324. package/esm/animation/config.js +1 -33
  325. package/esm/animation/config.js.map +1 -1
  326. package/esm/animation/index.js +2 -1
  327. package/esm/chart/base/base-chart-transformer.d.ts +0 -3
  328. package/esm/chart/base/base-chart-transformer.js +2 -24
  329. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  330. package/esm/chart/base/base-chart.d.ts +9 -27
  331. package/esm/chart/base/base-chart.js +27 -202
  332. package/esm/chart/base/base-chart.js.map +1 -1
  333. package/esm/chart/gauge/gauge-transformer.js +2 -3
  334. package/esm/chart/gauge/gauge-transformer.js.map +1 -1
  335. package/esm/chart/interface/chart.d.ts +0 -1
  336. package/esm/chart/interface/chart.js.map +1 -1
  337. package/esm/chart/pie/base/pie-transformer.js +2 -2
  338. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  339. package/esm/chart/polar/polar-transformer.js +1 -1
  340. package/esm/chart/polar/polar-transformer.js.map +1 -1
  341. package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
  342. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  343. package/esm/chart/progress/circular/circular-progress-transformer.js +1 -2
  344. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  345. package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
  346. package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
  347. package/esm/chart/radar/radar-transformer.js +2 -3
  348. package/esm/chart/radar/radar-transformer.js.map +1 -1
  349. package/esm/chart/range-area/range-area-transformer.js +2 -2
  350. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  351. package/esm/chart/rose/rose-transformer.js +1 -2
  352. package/esm/chart/rose/rose-transformer.js.map +1 -1
  353. package/esm/chart/util.d.ts +1 -4
  354. package/esm/chart/util.js +1 -34
  355. package/esm/chart/util.js.map +1 -1
  356. package/esm/chart/waterfall/waterfall-transformer.js +1 -2
  357. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  358. package/esm/compile/compiler.d.ts +0 -2
  359. package/esm/compile/compiler.js +47 -69
  360. package/esm/compile/compiler.js.map +1 -1
  361. package/esm/compile/data/compilable-data.d.ts +1 -1
  362. package/esm/compile/data/compilable-data.js +1 -1
  363. package/esm/compile/data/compilable-data.js.map +1 -1
  364. package/esm/compile/grammar-item.d.ts +1 -1
  365. package/esm/compile/grammar-item.js.map +1 -1
  366. package/esm/compile/interface/compilable-item.d.ts +1 -1
  367. package/esm/compile/interface/compilable-item.js.map +1 -1
  368. package/esm/compile/interface/compiler.d.ts +1 -2
  369. package/esm/compile/interface/compiler.js.map +1 -1
  370. package/esm/compile/morph.js +1 -1
  371. package/esm/compile/morph.js.map +1 -1
  372. package/esm/compile/state-manager.js +1 -2
  373. package/esm/component/axis/base-axis.d.ts +8 -3
  374. package/esm/component/axis/base-axis.js +6 -27
  375. package/esm/component/axis/base-axis.js.map +1 -1
  376. package/esm/component/axis/cartesian/band-axis.d.ts +7 -1
  377. package/esm/component/axis/cartesian/band-axis.js +2 -4
  378. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  379. package/esm/component/axis/cartesian/linear-axis.d.ts +1 -1
  380. package/esm/component/axis/cartesian/linear-axis.js +1 -5
  381. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  382. package/esm/component/axis/mixin/linear-axis-mixin.js +10 -7
  383. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  384. package/esm/component/axis/polar/band-axis.d.ts +0 -2
  385. package/esm/component/axis/polar/band-axis.js +0 -3
  386. package/esm/component/axis/polar/band-axis.js.map +1 -1
  387. package/esm/component/axis/polar/linear-axis.js +0 -3
  388. package/esm/component/axis/polar/linear-axis.js.map +1 -1
  389. package/esm/component/base/base-component.d.ts +7 -7
  390. package/esm/component/base/base-component.js +5 -41
  391. package/esm/component/base/base-component.js.map +1 -1
  392. package/esm/component/brush/brush.d.ts +7 -3
  393. package/esm/component/brush/brush.js +11 -29
  394. package/esm/component/brush/brush.js.map +1 -1
  395. package/esm/component/crosshair/base.d.ts +8 -5
  396. package/esm/component/crosshair/base.js +3 -27
  397. package/esm/component/crosshair/base.js.map +1 -1
  398. package/esm/component/crosshair/cartesian.js +1 -3
  399. package/esm/component/crosshair/cartesian.js.map +1 -1
  400. package/esm/component/custom-mark/custom-mark.d.ts +7 -4
  401. package/esm/component/custom-mark/custom-mark.js +2 -27
  402. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  403. package/esm/component/data-zoom/data-filter-base-component.d.ts +7 -3
  404. package/esm/component/data-zoom/data-filter-base-component.js +2 -14
  405. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  406. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
  407. package/esm/component/data-zoom/data-zoom/data-zoom.js +0 -20
  408. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  409. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
  410. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
  411. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  412. package/esm/component/geo/geo-coordinate.d.ts +7 -1
  413. package/esm/component/index.js +2 -1
  414. package/esm/component/indicator/indicator.d.ts +0 -1
  415. package/esm/component/indicator/indicator.js +2 -11
  416. package/esm/component/indicator/indicator.js.map +1 -1
  417. package/esm/component/indicator/util.d.ts +3 -4
  418. package/esm/component/indicator/util.js +2 -2
  419. package/esm/component/indicator/util.js.map +1 -1
  420. package/esm/component/label/base-label.d.ts +7 -1
  421. package/esm/component/label/base-label.js +1 -5
  422. package/esm/component/label/base-label.js.map +1 -1
  423. package/esm/component/label/label.js +2 -2
  424. package/esm/component/label/label.js.map +1 -1
  425. package/esm/component/legend/base-legend.d.ts +7 -2
  426. package/esm/component/legend/base-legend.js +2 -20
  427. package/esm/component/legend/base-legend.js.map +1 -1
  428. package/esm/component/legend/discrete/legend.d.ts +1 -1
  429. package/esm/component/legend/discrete/legend.js +2 -2
  430. package/esm/component/legend/discrete/legend.js.map +1 -1
  431. package/esm/component/marker/base-marker.d.ts +7 -14
  432. package/esm/component/marker/base-marker.js +11 -113
  433. package/esm/component/marker/base-marker.js.map +1 -1
  434. package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
  435. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  436. package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
  437. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  438. package/esm/component/marker/mark-line/base-mark-line.js +4 -2
  439. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  440. package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
  441. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  442. package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
  443. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  444. package/esm/component/marker/mark-point/base-mark-point.js +11 -24
  445. package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
  446. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  447. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  448. package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
  449. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  450. package/esm/component/marker/utils.d.ts +4 -4
  451. package/esm/component/marker/utils.js +23 -27
  452. package/esm/component/marker/utils.js.map +1 -1
  453. package/esm/component/player/player.d.ts +0 -1
  454. package/esm/component/player/player.js +0 -10
  455. package/esm/component/player/player.js.map +1 -1
  456. package/esm/component/title/title.d.ts +7 -1
  457. package/esm/component/title/title.js +2 -6
  458. package/esm/component/title/title.js.map +1 -1
  459. package/esm/component/tooltip/tooltip.d.ts +0 -1
  460. package/esm/component/tooltip/tooltip.js +1 -9
  461. package/esm/component/tooltip/tooltip.js.map +1 -1
  462. package/esm/component/util.js +1 -2
  463. package/esm/constant/scatter.js +2 -1
  464. package/esm/constant/scroll-bar.js +1 -2
  465. package/esm/core/index.d.ts +1 -2
  466. package/esm/core/index.js +1 -3
  467. package/esm/core/index.js.map +1 -1
  468. package/esm/core/instance-manager.js +1 -1
  469. package/esm/core/vchart.d.ts +1 -5
  470. package/esm/core/vchart.js +18 -31
  471. package/esm/core/vchart.js.map +1 -1
  472. package/esm/data/transforms/box-plot.d.ts +1 -4
  473. package/esm/data/transforms/box-plot.js +4 -4
  474. package/esm/data/transforms/box-plot.js.map +1 -1
  475. package/esm/data/transforms/correlation-center.d.ts +4 -11
  476. package/esm/data/transforms/correlation-center.js +2 -4
  477. package/esm/data/transforms/correlation-center.js.map +1 -1
  478. package/esm/data/transforms/correlation.d.ts +15 -18
  479. package/esm/data/transforms/correlation.js +8 -13
  480. package/esm/data/transforms/correlation.js.map +1 -1
  481. package/esm/data/transforms/funnel.d.ts +8 -10
  482. package/esm/data/transforms/funnel.js +3 -5
  483. package/esm/data/transforms/funnel.js.map +1 -1
  484. package/esm/data/transforms/lookup.d.ts +3 -3
  485. package/esm/data/transforms/lookup.js +6 -12
  486. package/esm/data/transforms/lookup.js.map +1 -1
  487. package/esm/data/transforms/map.d.ts +2 -8
  488. package/esm/data/transforms/map.js +6 -11
  489. package/esm/data/transforms/map.js.map +1 -1
  490. package/esm/data/transforms/sankey.d.ts +4 -12
  491. package/esm/data/transforms/sankey.js +14 -19
  492. package/esm/data/transforms/sankey.js.map +1 -1
  493. package/esm/data/transforms/stack-split.d.ts +1 -2
  494. package/esm/data/transforms/stack-split.js +2 -2
  495. package/esm/data/transforms/stack-split.js.map +1 -1
  496. package/esm/data/transforms/treemap.d.ts +3 -5
  497. package/esm/data/transforms/treemap.js +5 -8
  498. package/esm/data/transforms/treemap.js.map +1 -1
  499. package/esm/data/transforms/venn.d.ts +2 -4
  500. package/esm/data/transforms/venn.js +3 -5
  501. package/esm/data/transforms/venn.js.map +1 -1
  502. package/esm/data/transforms/waterfall.d.ts +2 -4
  503. package/esm/data/transforms/waterfall.js +8 -7
  504. package/esm/data/transforms/waterfall.js.map +1 -1
  505. package/esm/env/env.js +1 -1
  506. package/esm/env/env.js.map +1 -1
  507. package/esm/event/event.d.ts +0 -4
  508. package/esm/event/event.js +7 -26
  509. package/esm/event/event.js.map +1 -1
  510. package/esm/interaction/interaction.js +8 -10
  511. package/esm/interaction/interaction.js.map +1 -1
  512. package/esm/interaction/triggers/element-active-by-legend.js +1 -3
  513. package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
  514. package/esm/interaction/triggers/element-active.js +2 -4
  515. package/esm/interaction/triggers/element-active.js.map +1 -1
  516. package/esm/interaction/triggers/element-highlight-by-group.js +1 -4
  517. package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
  518. package/esm/interaction/triggers/element-highlight-by-legend.js +1 -3
  519. package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  520. package/esm/interaction/triggers/element-highlight-by-name.js +1 -3
  521. package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
  522. package/esm/interaction/triggers/element-highlight.js +1 -3
  523. package/esm/interaction/triggers/element-highlight.js.map +1 -1
  524. package/esm/interaction/triggers/element-select.js +2 -4
  525. package/esm/interaction/triggers/element-select.js.map +1 -1
  526. package/esm/mark/arc.js +2 -4
  527. package/esm/mark/arc.js.map +1 -1
  528. package/esm/mark/area.js +2 -6
  529. package/esm/mark/area.js.map +1 -1
  530. package/esm/mark/base/base-mark.d.ts +2 -13
  531. package/esm/mark/base/base-mark.js +28 -107
  532. package/esm/mark/base/base-mark.js.map +1 -1
  533. package/esm/mark/component.d.ts +0 -9
  534. package/esm/mark/component.js +2 -51
  535. package/esm/mark/component.js.map +1 -1
  536. package/esm/mark/group.js +5 -6
  537. package/esm/mark/group.js.map +1 -1
  538. package/esm/mark/interface/mark.d.ts +0 -2
  539. package/esm/mark/interface/mark.js.map +1 -1
  540. package/esm/mark/line.js +2 -6
  541. package/esm/mark/line.js.map +1 -1
  542. package/esm/mark/rect.js +2 -4
  543. package/esm/mark/rect.js.map +1 -1
  544. package/esm/mark/symbol.js +2 -4
  545. package/esm/mark/symbol.js.map +1 -1
  546. package/esm/mark/text.js +1 -5
  547. package/esm/mark/text.js.map +1 -1
  548. package/esm/mark/utils/glyph.js +1 -3
  549. package/esm/mark/utils/glyph.js.map +1 -1
  550. package/esm/model/base-model.d.ts +15 -3
  551. package/esm/model/base-model.js.map +1 -1
  552. package/esm/model/interface.d.ts +0 -13
  553. package/esm/model/interface.js.map +1 -1
  554. package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
  555. package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
  556. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
  557. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js +1 -1
  558. package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
  559. package/esm/plugin/other.js +2 -2
  560. package/esm/plugin/other.js.map +1 -1
  561. package/esm/region/region.d.ts +7 -1
  562. package/esm/scale/color-ordinal-scale.d.ts +0 -1
  563. package/esm/scale/color-ordinal-scale.js +0 -3
  564. package/esm/scale/color-ordinal-scale.js.map +1 -1
  565. package/esm/scale/global-scale.js +1 -9
  566. package/esm/scale/global-scale.js.map +1 -1
  567. package/esm/series/area/area.d.ts +0 -2
  568. package/esm/series/area/area.js +1 -7
  569. package/esm/series/area/area.js.map +1 -1
  570. package/esm/series/bar/bar.d.ts +0 -3
  571. package/esm/series/bar/bar.js +4 -30
  572. package/esm/series/bar/bar.js.map +1 -1
  573. package/esm/series/base/base-series.d.ts +7 -11
  574. package/esm/series/base/base-series.js +16 -84
  575. package/esm/series/base/base-series.js.map +1 -1
  576. package/esm/series/base/constant.d.ts +0 -3
  577. package/esm/series/base/constant.js +0 -10
  578. package/esm/series/base/constant.js.map +1 -1
  579. package/esm/series/box-plot/box-plot.d.ts +0 -2
  580. package/esm/series/box-plot/box-plot.js +4 -15
  581. package/esm/series/box-plot/box-plot.js.map +1 -1
  582. package/esm/series/correlation/correlation.js +11 -13
  583. package/esm/series/correlation/correlation.js.map +1 -1
  584. package/esm/series/dot/dot.d.ts +0 -12
  585. package/esm/series/dot/dot.js +0 -17
  586. package/esm/series/dot/dot.js.map +1 -1
  587. package/esm/series/funnel/funnel.js +8 -5
  588. package/esm/series/funnel/funnel.js.map +1 -1
  589. package/esm/series/heatmap/heatmap.d.ts +0 -2
  590. package/esm/series/heatmap/heatmap.js +0 -10
  591. package/esm/series/heatmap/heatmap.js.map +1 -1
  592. package/esm/series/line/line.d.ts +0 -2
  593. package/esm/series/line/line.js +2 -10
  594. package/esm/series/line/line.js.map +1 -1
  595. package/esm/series/map/map.js +3 -3
  596. package/esm/series/map/map.js.map +1 -1
  597. package/esm/series/mixin/line-mixin.d.ts +0 -1
  598. package/esm/series/mixin/line-mixin.js +0 -5
  599. package/esm/series/mixin/line-mixin.js.map +1 -1
  600. package/esm/series/pie/pie.d.ts +7 -3
  601. package/esm/series/pie/pie.js +0 -17
  602. package/esm/series/pie/pie.js.map +1 -1
  603. package/esm/series/polar/progress-like/progress-like.d.ts +0 -2
  604. package/esm/series/polar/progress-like/progress-like.js +0 -17
  605. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  606. package/esm/series/polar/rose-like/rose-like.d.ts +0 -2
  607. package/esm/series/polar/rose-like/rose-like.js +0 -16
  608. package/esm/series/polar/rose-like/rose-like.js.map +1 -1
  609. package/esm/series/progress/circular/circular.d.ts +0 -2
  610. package/esm/series/progress/circular/circular.js +0 -11
  611. package/esm/series/progress/circular/circular.js.map +1 -1
  612. package/esm/series/progress/linear/linear.d.ts +0 -2
  613. package/esm/series/progress/linear/linear.js +0 -20
  614. package/esm/series/progress/linear/linear.js.map +1 -1
  615. package/esm/series/sankey/sankey.js +54 -60
  616. package/esm/series/sankey/sankey.js.map +1 -1
  617. package/esm/series/scatter/scatter.d.ts +0 -2
  618. package/esm/series/scatter/scatter.js +0 -10
  619. package/esm/series/scatter/scatter.js.map +1 -1
  620. package/esm/series/treemap/treemap.js +20 -23
  621. package/esm/series/treemap/treemap.js.map +1 -1
  622. package/esm/series/venn/venn.js +2 -2
  623. package/esm/series/venn/venn.js.map +1 -1
  624. package/esm/series/waterfall/waterfall.d.ts +0 -2
  625. package/esm/series/waterfall/waterfall.js +20 -36
  626. package/esm/series/waterfall/waterfall.js.map +1 -1
  627. package/esm/series/word-cloud/animation.js +0 -3
  628. package/esm/series/word-cloud/animation.js.map +1 -1
  629. package/esm/theme/builtin/common/series/word-cloud.js +6 -2
  630. package/esm/theme/builtin/common/series/word-cloud.js.map +1 -1
  631. package/esm/util/math.d.ts +1 -1
  632. package/esm/util/math.js +1 -1
  633. package/esm/util/math.js.map +1 -1
  634. package/esm/util/text.js +1 -1
  635. package/esm/util/text.js.map +1 -1
  636. package/package.json +8 -10
  637. package/cjs/compile/stage-app.d.ts +0 -17
  638. package/cjs/compile/stage-app.js +0 -82
  639. package/cjs/compile/stage-app.js.map +0 -1
  640. package/cjs/component/base/release-vrender-component.d.ts +0 -10
  641. package/cjs/component/base/release-vrender-component.js +0 -37
  642. package/cjs/component/base/release-vrender-component.js.map +0 -1
  643. package/cjs/data/data-view-utils.d.ts +0 -5
  644. package/cjs/data/data-view-utils.js +0 -58
  645. package/cjs/data/data-view-utils.js.map +0 -1
  646. package/cjs/util/graphic-state.d.ts +0 -4
  647. package/cjs/util/graphic-state.js +0 -40
  648. package/cjs/util/graphic-state.js.map +0 -1
  649. package/esm/compile/stage-app.d.ts +0 -17
  650. package/esm/compile/stage-app.js +0 -77
  651. package/esm/compile/stage-app.js.map +0 -1
  652. package/esm/component/base/release-vrender-component.d.ts +0 -10
  653. package/esm/component/base/release-vrender-component.js +0 -24
  654. package/esm/component/base/release-vrender-component.js.map +0 -1
  655. package/esm/data/data-view-utils.d.ts +0 -5
  656. package/esm/data/data-view-utils.js +0 -46
  657. package/esm/data/data-view-utils.js.map +0 -1
  658. package/esm/util/graphic-state.d.ts +0 -4
  659. package/esm/util/graphic-state.js +0 -30
  660. package/esm/util/graphic-state.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/legend/base-legend.ts"],"names":[],"mappings":"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","file":"base-legend.js","sourcesContent":["import { isNil, isEqual, isValid, array, isValidNumber } from '@visactor/vutils';\nimport type { DataView } from '@visactor/vdataset';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base/base-component';\nimport type { IEffect } from '../../model/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ILayoutRect, ILayoutType, IOrientType, IPoint, StringOrNumber } from '../../typings';\nimport { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { ChartEvent } from '../../constant/event';\nimport { eachSeries } from '../../util/model';\nimport { isValidOrient } from '../../util/space';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { CompilableData } from '../../compile/data/compilable-data';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ILegend, ILegendCommonSpec } from './interface';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\n\nconst LEGEND_COMPONENT_ONLY_CHANGE_KEYS: Record<string, true> = {\n position: true,\n item: true,\n title: true,\n pager: true,\n background: true\n};\n\nexport abstract class BaseLegend<T extends ILegendCommonSpec> extends BaseComponent<T> implements ILegend {\n layoutType: ILayoutType = 'normal';\n layoutZIndex: number = LayoutZIndex.Legend;\n layoutLevel: number = LayoutLevel.Legend;\n\n static specKey = 'legends';\n specKey = 'legends';\n\n protected _orient: IOrientType = 'left';\n get orient() {\n return this._orient;\n }\n\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n protected _position: 'start' | 'middle' | 'end' = 'middle';\n get position() {\n return this._position;\n }\n\n protected _legendData!: CompilableData;\n /**\n * 获取图例数据\n * @returns 图例的数据\n */\n getLegendData() {\n return this._legendData.getLatestData();\n }\n\n private _preSelectedData: StringOrNumber[] = [];\n protected _selectedData: StringOrNumber[] = [];\n /**\n * getSelectedData\n */\n getSelectedData() {\n return this._selectedData;\n }\n\n protected _legendComponent: IGroup;\n private _cacheAttrs: any;\n\n effect: IEffect = {\n onSelectedDataChange: () => {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.markRunning();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n eachSeries(\n this._regions,\n s => {\n s.reFilterViewData();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionUserIndex?: number[];\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n this._orient = isValidOrient(this._spec.orient) ? this._spec.orient : 'left';\n this._position = this._spec.position ?? 'middle';\n this._visible = this._spec.visible !== false;\n\n const { regionId, regionIndex, seriesId, seriesIndex } = this._spec;\n\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionUserIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId, this._regionUserIndex);\n }\n\n created() {\n super.created();\n // data\n this.initData();\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n result.reRender = true;\n const specChanged = !isEqual(prevSpec, spec);\n\n if (result.reMake) {\n return result;\n }\n if (spec?.orient !== prevSpec?.orient) {\n result.reMake = true;\n return result;\n }\n if (specChanged && !result.reCompile && this._isComponentOnlySpecChange(spec, prevSpec)) {\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n return result;\n }\n if (specChanged) {\n result.reCompile = true;\n }\n return result;\n }\n\n private _isComponentOnlySpecChange(spec: T, prevSpec: T) {\n const prevSpecRecord = prevSpec as unknown as Record<string, unknown>;\n const specRecord = spec as unknown as Record<string, unknown>;\n const keys = Object.keys({\n ...prevSpec,\n ...spec\n });\n\n return keys.every(key => {\n return isEqual(prevSpecRecord?.[key], specRecord?.[key]) || LEGEND_COMPONENT_ONLY_CHANGE_KEYS[key];\n });\n }\n\n protected abstract _initLegendData(): DataView;\n protected abstract _initSelectedData(): void;\n protected abstract _getLegendAttributes(rect: ILayoutRect): any;\n protected abstract _getLegendConstructor(): any;\n protected abstract _initEvent(): void;\n\n private _bindLegendDataChange() {\n this._preSelectedData = this._selectedData.slice();\n this._initSelectedData();\n this._forceLayout();\n }\n\n protected initData() {\n const legendData = this._initLegendData();\n legendData.target.addListener('change', this._bindLegendDataChange.bind(this));\n this._legendData = new CompilableData(this._option, legendData);\n\n this._initSelectedData();\n eachSeries(\n this._regions,\n s => {\n s.event.on(ChartEvent.rawDataUpdate, { filter: ({ model }) => model?.id === s.id }, () => {\n this._legendData.getDataView().reRunAllTransform({\n skipEqual: true\n });\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n setSelectedData(selectedData: StringOrNumber[]) {\n const lastData = this._selectedData;\n if (isNil(selectedData) || JSON.stringify(lastData) === JSON.stringify(selectedData)) {\n return;\n }\n\n // 更新图例筛选\n eachSeries(\n this._regions,\n s => {\n if (s.legendSelectedFilter) {\n selectedData = s.legendSelectedFilter(this, selectedData);\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n\n this._selectedData = [...selectedData];\n // 更新数据\n this.effect.onSelectedDataChange?.();\n this.event.emit(ChartEvent.legendSelectedDataChange, { model: this });\n\n // 更新图例样式\n (this._legendComponent as unknown as any)?.setSelected(this._selectedData);\n }\n\n afterSetLayoutStartPoint(pos: IPoint): void {\n super.afterSetLayoutStartPoint(pos);\n\n if (this._legendComponent) {\n const { x, y } = pos;\n if (isValidNumber(x * y)) {\n this._legendComponent.setAttributes({ x, y });\n }\n }\n }\n\n getBoundsInRect(rect: ILayoutRect, fullSpace: ILayoutRect) {\n if (!this._visible) {\n if (this._legendComponent && this._legendComponent.parent) {\n this._legendComponent.parent.removeChild(this._legendComponent);\n this._legendComponent = null;\n }\n return { x1: 0, y1: 0, x2: 0, y2: 0 };\n }\n const result = { x1: this.getLayoutStartPoint().x, y1: this.getLayoutStartPoint().y, x2: 0, y2: 0 };\n const attrs = this._getLegendAttributes(rect);\n attrs.disableTriggerEvent = this._option.disableTriggerEvent;\n if (this._legendComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._legendComponent.setAttributes(\n mergeSpec({}, attrs, {\n defaultSelected: this._selectedData // 图表 resize 之后应该保留上次筛选的结果\n })\n );\n }\n } else {\n const legendConstructor = this._getLegendConstructor();\n const legend = new legendConstructor(\n mergeSpec({}, attrs, {\n defaultSelected: this._selectedData\n })\n );\n legend.name = 'legend';\n this._legendComponent = legend;\n const container = this.getContainer();\n container.add(legend);\n\n // 绑定事件\n if (!this._option.disableTriggerEvent) {\n this._initEvent();\n }\n\n // 代理 legend 上的事件\n legend.on('*', (event: any, type: string) => this._delegateEvent(this._legendComponent, event, type));\n }\n this._cacheAttrs = attrs;\n\n const width = isFinite(this._legendComponent.AABBBounds.width()) ? this._legendComponent.AABBBounds.width() : 0;\n const height = isFinite(this._legendComponent.AABBBounds.height()) ? this._legendComponent.AABBBounds.height() : 0;\n\n if (this.layoutType !== 'normal-inline') {\n // 调整位置\n const layout = this.layoutOrient === 'bottom' || this.layoutOrient === 'top' ? 'horizontal' : 'vertical';\n const position = this._position;\n const { width: rectWidth, height: rectHeight } = fullSpace;\n let offsetX = 0;\n let offsetY = 0;\n if (layout === 'horizontal') {\n if (position === 'middle') {\n offsetX = (rectWidth - width) / 2;\n } else if (position === 'end') {\n offsetX = rectWidth - width;\n }\n } else {\n if (position === 'middle') {\n offsetY = (rectHeight - height) / 2;\n } else if (position === 'end') {\n offsetY = rectHeight - height;\n }\n }\n\n this._legendComponent.setAttributes({\n dx: offsetX,\n dy: offsetY\n });\n }\n\n result.x2 = result.x1 + width;\n result.y2 = result.y1 + height;\n return result;\n }\n\n onDataUpdate(): void {\n if (JSON.stringify(this._preSelectedData) === JSON.stringify(this._selectedData)) {\n return;\n }\n\n if (this._legendComponent) {\n // 更新组件\n const attrs = this._getLegendAttributes(this.getLayoutRect());\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._legendComponent.setAttributes(\n mergeSpec({}, attrs, {\n defaultSelected: this._selectedData // 图表 resize 之后应该保留上次筛选的结果\n })\n );\n }\n }\n // 更新数据流\n this.effect.onSelectedDataChange?.();\n this.event.emit(ChartEvent.legendSelectedDataChange, { model: this });\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._legendComponent] as unknown as IGroup[];\n }\n\n clear(): void {\n super.clear();\n this._legendComponent = null;\n this._cacheAttrs = null;\n this._preSelectedData = null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/legend/base-legend.ts"],"names":[],"mappings":"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","file":"base-legend.js","sourcesContent":["import { isNil, isEqual, isValid, array, isValidNumber } from '@visactor/vutils';\nimport type { DataView } from '@visactor/vdataset';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base/base-component';\nimport type { IEffect } from '../../model/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ILayoutRect, ILayoutType, IOrientType, IPoint, StringOrNumber } from '../../typings';\nimport { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { ChartEvent } from '../../constant/event';\nimport { eachSeries } from '../../util/model';\nimport { isValidOrient } from '../../util/space';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { CompilableData } from '../../compile/data/compilable-data';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ILegend, ILegendCommonSpec } from './interface';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\n\nexport abstract class BaseLegend<T extends ILegendCommonSpec> extends BaseComponent<T> implements ILegend {\n layoutType: ILayoutType = 'normal';\n layoutZIndex: number = LayoutZIndex.Legend;\n layoutLevel: number = LayoutLevel.Legend;\n\n static specKey = 'legends';\n specKey = 'legends';\n\n protected _orient: IOrientType = 'left';\n get orient() {\n return this._orient;\n }\n\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n protected _position: 'start' | 'middle' | 'end' = 'middle';\n get position() {\n return this._position;\n }\n\n protected _legendData!: CompilableData;\n /**\n * 获取图例数据\n * @returns 图例的数据\n */\n getLegendData() {\n return this._legendData.getLatestData();\n }\n\n private _preSelectedData: StringOrNumber[] = [];\n protected _selectedData: StringOrNumber[] = [];\n /**\n * getSelectedData\n */\n getSelectedData() {\n return this._selectedData;\n }\n\n protected _legendComponent: IGroup;\n private _cacheAttrs: any;\n\n effect: IEffect = {\n onSelectedDataChange: () => {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.markRunning();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n eachSeries(\n this._regions,\n s => {\n s.reFilterViewData();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n };\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionUserIndex?: number[];\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n this._orient = isValidOrient(this._spec.orient) ? this._spec.orient : 'left';\n this._position = this._spec.position ?? 'middle';\n this._visible = this._spec.visible !== false;\n\n const { regionId, regionIndex, seriesId, seriesIndex } = this._spec;\n\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionUserIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId, this._regionUserIndex);\n }\n\n created() {\n super.created();\n // data\n this.initData();\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n result.reRender = true;\n if (spec?.orient !== prevSpec?.orient) {\n result.reMake = true;\n return result;\n }\n if (!isEqual(prevSpec, spec)) {\n result.reCompile = true;\n }\n return result;\n }\n\n protected abstract _initLegendData(): DataView;\n protected abstract _initSelectedData(): void;\n protected abstract _getLegendAttributes(rect: ILayoutRect): any;\n protected abstract _getLegendConstructor(): any;\n protected abstract _initEvent(): void;\n\n private _bindLegendDataChange() {\n this._preSelectedData = this._selectedData.slice();\n this._initSelectedData();\n this._forceLayout();\n }\n\n protected initData() {\n const legendData = this._initLegendData();\n legendData.target.addListener('change', this._bindLegendDataChange.bind(this));\n this._legendData = new CompilableData(this._option, legendData);\n\n this._initSelectedData();\n eachSeries(\n this._regions,\n s => {\n s.event.on(ChartEvent.rawDataUpdate, { filter: ({ model }) => model?.id === s.id }, () => {\n this._legendData.getDataView().reRunAllTransform({\n skipEqual: true\n });\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n setSelectedData(selectedData: StringOrNumber[]) {\n const lastData = this._selectedData;\n if (isNil(selectedData) || JSON.stringify(lastData) === JSON.stringify(selectedData)) {\n return;\n }\n\n // 更新图例筛选\n eachSeries(\n this._regions,\n s => {\n if (s.legendSelectedFilter) {\n selectedData = s.legendSelectedFilter(this, selectedData);\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n\n this._selectedData = [...selectedData];\n // 更新数据\n this.effect.onSelectedDataChange?.();\n this.event.emit(ChartEvent.legendSelectedDataChange, { model: this });\n\n // 更新图例样式\n (this._legendComponent as unknown as any)?.setSelected(this._selectedData);\n }\n\n afterSetLayoutStartPoint(pos: IPoint): void {\n super.afterSetLayoutStartPoint(pos);\n\n if (this._legendComponent) {\n const { x, y } = pos;\n if (isValidNumber(x * y)) {\n this._legendComponent.setAttributes({ x, y });\n }\n }\n }\n\n getBoundsInRect(rect: ILayoutRect, fullSpace: ILayoutRect) {\n if (!this._visible) {\n if (this._legendComponent && this._legendComponent.parent) {\n this._legendComponent.parent.removeChild(this._legendComponent);\n this._legendComponent = null;\n }\n return { x1: 0, y1: 0, x2: 0, y2: 0 };\n }\n const result = { x1: this.getLayoutStartPoint().x, y1: this.getLayoutStartPoint().y, x2: 0, y2: 0 };\n const attrs = this._getLegendAttributes(rect);\n attrs.disableTriggerEvent = this._option.disableTriggerEvent;\n if (this._legendComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._legendComponent.setAttributes(\n mergeSpec({}, attrs, {\n defaultSelected: this._selectedData // 图表 resize 之后应该保留上次筛选的结果\n })\n );\n }\n } else {\n const legendConstructor = this._getLegendConstructor();\n const legend = new legendConstructor(\n mergeSpec({}, attrs, {\n defaultSelected: this._selectedData\n })\n );\n legend.name = 'legend';\n this._legendComponent = legend;\n const container = this.getContainer();\n container.add(legend);\n\n // 绑定事件\n if (!this._option.disableTriggerEvent) {\n this._initEvent();\n }\n\n // 代理 legend 上的事件\n legend.on('*', (event: any, type: string) => this._delegateEvent(this._legendComponent, event, type));\n }\n this._cacheAttrs = attrs;\n\n const width = isFinite(this._legendComponent.AABBBounds.width()) ? this._legendComponent.AABBBounds.width() : 0;\n const height = isFinite(this._legendComponent.AABBBounds.height()) ? this._legendComponent.AABBBounds.height() : 0;\n\n if (this.layoutType !== 'normal-inline') {\n // 调整位置\n const layout = this.layoutOrient === 'bottom' || this.layoutOrient === 'top' ? 'horizontal' : 'vertical';\n const position = this._position;\n const { width: rectWidth, height: rectHeight } = fullSpace;\n let offsetX = 0;\n let offsetY = 0;\n if (layout === 'horizontal') {\n if (position === 'middle') {\n offsetX = (rectWidth - width) / 2;\n } else if (position === 'end') {\n offsetX = rectWidth - width;\n }\n } else {\n if (position === 'middle') {\n offsetY = (rectHeight - height) / 2;\n } else if (position === 'end') {\n offsetY = rectHeight - height;\n }\n }\n\n this._legendComponent.setAttributes({\n dx: offsetX,\n dy: offsetY\n });\n }\n\n result.x2 = result.x1 + width;\n result.y2 = result.y1 + height;\n return result;\n }\n\n onDataUpdate(): void {\n if (JSON.stringify(this._preSelectedData) === JSON.stringify(this._selectedData)) {\n return;\n }\n\n if (this._legendComponent) {\n // 更新组件\n const attrs = this._getLegendAttributes(this.getLayoutRect());\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._legendComponent.setAttributes(\n mergeSpec({}, attrs, {\n defaultSelected: this._selectedData // 图表 resize 之后应该保留上次筛选的结果\n })\n );\n }\n }\n // 更新数据流\n this.effect.onSelectedDataChange?.();\n this.event.emit(ChartEvent.legendSelectedDataChange, { model: this });\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._legendComponent] as unknown as IGroup[];\n }\n\n clear(): void {\n super.clear();\n this._legendComponent = null;\n this._cacheAttrs = null;\n this._preSelectedData = null;\n }\n}\n"]}
@@ -4,7 +4,7 @@ import type { IDiscreteLegendSpec } from './interface';
4
4
  import type { ISeries } from '../../../series/interface';
5
5
  import type { IModelInitOption, IModelSpecInfo } from '../../../model/interface';
6
6
  import { ComponentTypeEnum } from '../../interface/type';
7
- import { DiscreteLegend as LegendComponent } from '@visactor/vrender-components/legend/discrete';
7
+ import { DiscreteLegend as LegendComponent } from '@visactor/vrender-components';
8
8
  import { BaseLegend } from '../base-legend';
9
9
  import type { ILayoutRect } from '../../../typings/layout';
10
10
  import type { StringOrNumber } from '../../../typings';
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerDiscreteLegend = exports.DiscreteLegend = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), vdataset_1 = require("@visactor/vdataset"), type_1 = require("../../interface/type"), util_1 = require("./util"), register_1 = require("../../../data/register"), model_1 = require("../../../util/model"), data_1 = require("../../../util/data"), type_2 = require("../../../util/type"), constant_1 = require("@visactor/vrender-components/legend/constant"), discrete_1 = require("@visactor/vrender-components/legend/discrete"), discrete_2 = require("../../../data/transforms/legend-data/discrete/discrete"), base_legend_1 = require("../base-legend"), event_1 = require("../../../constant/event"), factory_1 = require("../../../core/factory"), initialize_1 = require("../../../data/initialize"), util_2 = require("../../util"), discrete_legend_1 = require("../../../theme/builtin/common/component/legend/discrete-legend");
7
+ const vutils_1 = require("@visactor/vutils"), vdataset_1 = require("@visactor/vdataset"), type_1 = require("../../interface/type"), util_1 = require("./util"), register_1 = require("../../../data/register"), model_1 = require("../../../util/model"), data_1 = require("../../../util/data"), type_2 = require("../../../util/type"), vrender_components_1 = require("@visactor/vrender-components"), vrender_components_2 = require("@visactor/vrender-components"), discrete_1 = require("../../../data/transforms/legend-data/discrete/discrete"), base_legend_1 = require("../base-legend"), event_1 = require("../../../constant/event"), factory_1 = require("../../../core/factory"), initialize_1 = require("../../../data/initialize"), util_2 = require("../../util"), discrete_legend_1 = require("../../../theme/builtin/common/component/legend/discrete-legend");
8
8
 
9
9
  class DiscreteLegend extends base_legend_1.BaseLegend {
10
10
  constructor() {
@@ -32,8 +32,8 @@ class DiscreteLegend extends base_legend_1.BaseLegend {
32
32
  });
33
33
  }
34
34
  _initLegendData() {
35
- (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "discreteLegendFilter", discrete_2.discreteLegendFilter),
36
- (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "discreteLegendDataMake", discrete_2.discreteLegendDataMake);
35
+ (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "discreteLegendFilter", discrete_1.discreteLegendFilter),
36
+ (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "discreteLegendDataMake", discrete_1.discreteLegendDataMake);
37
37
  const legendData = new vdataset_1.DataView(this._option.dataSet, {
38
38
  name: `${this.type}_${this.id}_data`
39
39
  });
@@ -99,7 +99,7 @@ class DiscreteLegend extends base_legend_1.BaseLegend {
99
99
  attrs;
100
100
  }
101
101
  _getLegendConstructor() {
102
- return discrete_1.DiscreteLegend;
102
+ return vrender_components_2.DiscreteLegend;
103
103
  }
104
104
  setSelectedData(selectedData) {
105
105
  selectedData && (this._unselectedData = this.getLegendDefaultData().filter((entry => !selectedData.includes(entry)))),
@@ -108,21 +108,21 @@ class DiscreteLegend extends base_legend_1.BaseLegend {
108
108
  _initEvent() {
109
109
  if (this._legendComponent) {
110
110
  const doFilter = !1 !== this._spec.filter;
111
- this._legendComponent.addEventListener(constant_1.LegendEvent.legendItemClick, (e => {
111
+ this._legendComponent.addEventListener(vrender_components_1.LegendEvent.legendItemClick, (e => {
112
112
  const selectedData = (0, vutils_1.get)(e, "detail.currentSelected");
113
113
  doFilter && this.setSelectedData(selectedData), this.event.emit(event_1.ChartEvent.legendItemClick, {
114
114
  model: this,
115
115
  value: selectedData,
116
116
  event: e
117
117
  });
118
- })), this._legendComponent.addEventListener(constant_1.LegendEvent.legendItemHover, (e => {
118
+ })), this._legendComponent.addEventListener(vrender_components_1.LegendEvent.legendItemHover, (e => {
119
119
  const detail = (0, vutils_1.get)(e, "detail");
120
120
  this.event.emit(event_1.ChartEvent.legendItemHover, {
121
121
  model: this,
122
122
  value: detail,
123
123
  event: e
124
124
  });
125
- })), this._legendComponent.addEventListener(constant_1.LegendEvent.legendItemUnHover, (e => {
125
+ })), this._legendComponent.addEventListener(vrender_components_1.LegendEvent.legendItemUnHover, (e => {
126
126
  const detail = (0, vutils_1.get)(e, "detail");
127
127
  this.event.emit(event_1.ChartEvent.legendItemUnHover, {
128
128
  model: this,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/legend/discrete/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isFunction, isNil, isValidNumber, get } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport type { IDiscreteLegendSpec } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../../../series/interface';\nimport type { IModelInitOption, IModelSpecInfo } from '../../../model/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { getLegendAttributes } from './util';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { eachSeries } from '../../../util/model';\nimport { getFieldAlias } from '../../../util/data';\nimport { isDataDomainSpec } from '../../../util/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { LegendItemDatum } from '@visactor/vrender-components/legend/discrete/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { LegendEvent } from '@visactor/vrender-components/legend/constant';\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscreteLegend as LegendComponent } from '@visactor/vrender-components/legend/discrete';\nimport { discreteLegendDataMake, discreteLegendFilter } from '../../../data/transforms/legend-data/discrete/discrete';\nimport { BaseLegend } from '../base-legend';\nimport { ChartEvent } from '../../../constant/event';\nimport { Factory } from '../../../core/factory';\nimport { TransformLevel } from '../../../data/initialize';\nimport type { ILayoutRect } from '../../../typings/layout';\nimport type { StringOrNumber } from '../../../typings';\nimport { getFormatFunction, getSpecInfo } from '../../util';\nimport type { IDiscreteLegendData } from '../../../data/transforms/legend-data/discrete';\nimport { discreteLegend } from '../../../theme/builtin/common/component/legend/discrete-legend';\n\nexport class DiscreteLegend extends BaseLegend<IDiscreteLegendSpec> {\n static specKey = 'legends';\n\n static readonly builtInTheme = {\n discreteLegend\n };\n static type = ComponentTypeEnum.discreteLegend;\n type = ComponentTypeEnum.discreteLegend;\n name: string = ComponentTypeEnum.discreteLegend;\n\n protected _unselectedData: StringOrNumber[];\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<IDiscreteLegendSpec>(chartSpec, this.specKey, this.type, (s: IDiscreteLegendSpec) => {\n return !s.type || s.type === 'discrete';\n });\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n eachSeries(\n this._regions,\n s => {\n s.addViewDataFilter({\n type: 'discreteLegendFilter',\n options: {\n series: s,\n selected: () => this._selectedData,\n field: () => this._getSeriesLegendField(s),\n data: () => this.getLegendDefaultData(),\n customFilter: this._spec.customFilter\n },\n level: TransformLevel.legendFilter\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected _initLegendData(): DataView {\n registerDataSetInstanceTransform(this._option.dataSet, 'discreteLegendFilter', discreteLegendFilter);\n registerDataSetInstanceTransform(this._option.dataSet, 'discreteLegendDataMake', discreteLegendDataMake);\n const legendData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n legendData.transform({\n type: 'discreteLegendDataMake',\n options: {\n series: () => {\n const result: ISeries[] = [];\n eachSeries(\n this._regions,\n s => {\n result.push(s);\n },\n {\n specIndex: this._spec.seriesIndex,\n userId: this._spec.seriesId\n }\n );\n return result;\n },\n seriesField: (s: ISeries) => this._getSeriesLegendField(s)\n }\n });\n\n return legendData;\n }\n\n protected _getSeriesLegendField(s: ISeries) {\n const defaultField = s.getSeriesField();\n const specifyScaleId = this._spec.scaleName ?? this._spec.scale;\n\n if (isNil(specifyScaleId)) {\n return defaultField;\n }\n if (!s.getRawData()) {\n return defaultField;\n }\n const scaleSpec = this._option.globalScale.getScaleSpec(specifyScaleId);\n if (!scaleSpec) {\n return defaultField;\n }\n\n // field是只在图例指定了scale的情况下生效\n if (this._spec.field) {\n return this._spec.field;\n }\n\n if (!isDataDomainSpec(scaleSpec.domain)) {\n return defaultField;\n }\n const seriesData = scaleSpec.domain.find(d => d.dataId === s.getRawData().name);\n if (!seriesData) {\n return defaultField;\n }\n return seriesData.fields?.[0] ?? defaultField;\n }\n\n protected _initSelectedData(): void {\n const fullSelectedData = this.getLegendDefaultData();\n\n if (this._unselectedData) {\n const selected: StringOrNumber[] = [];\n const unselected: StringOrNumber[] = [];\n\n fullSelectedData.forEach((entry: StringOrNumber) => {\n if (this._unselectedData.includes(entry)) {\n unselected.push(entry);\n } else {\n selected.push(entry);\n }\n });\n this._selectedData = selected;\n this._unselectedData = unselected;\n } else if (this._spec.defaultSelected) {\n this._selectedData = [...this._spec.defaultSelected];\n } else {\n this._selectedData = fullSelectedData;\n }\n }\n\n getLegendDefaultData(originalData?: boolean) {\n if (isFunction(this._spec.data)) {\n return this._getLegendItems().map((obj: LegendItemDatum) => obj.label);\n }\n\n return this._legendData\n .getLatestData()\n .map(originalData ? (obj: IDiscreteLegendData) => obj.originalKey : (obj: IDiscreteLegendData) => obj.key);\n }\n\n private _addDefaultTitleText(attrs: any) {\n if (attrs.title?.visible && isNil(attrs.title.text) && isNil(attrs.title.style?.text)) {\n // 默认使用第0个系列的 seriesField 别名\n const series = this._regions?.[0]?.getSeries()[0];\n if (!series) {\n return;\n }\n // 如果没有别名继续保持 空字符串\n attrs.title.text = getFieldAlias(series.getRawData(), series.getSeriesField());\n }\n }\n\n protected _getLegendAttributes(rect: ILayoutRect) {\n const layout = this.layoutOrient === 'bottom' || this.layoutOrient === 'top' ? 'horizontal' : 'vertical';\n const attrs = {\n layout,\n items: this._getLegendItems(),\n zIndex: this.layoutZIndex,\n ...getLegendAttributes(this._spec, rect),\n // maxWidth 和 maxHeight 已经在布局模块处理了,所以 rect 的优先级最高\n maxWidth: rect.width,\n maxHeight: rect.height\n };\n this._addDefaultTitleText(attrs);\n this._addLegendItemFormatMethods(attrs);\n return attrs;\n }\n\n protected _getLegendConstructor() {\n return LegendComponent;\n }\n\n setSelectedData(selectedData: StringOrNumber[]) {\n if (selectedData) {\n this._unselectedData = this.getLegendDefaultData().filter(\n (entry: StringOrNumber) => !selectedData.includes(entry)\n );\n }\n\n super.setSelectedData(selectedData);\n }\n\n protected _initEvent() {\n if (this._legendComponent) {\n const doFilter = this._spec.filter !== false;\n this._legendComponent.addEventListener(LegendEvent.legendItemClick, (e: any) => {\n const selectedData = get(e, 'detail.currentSelected');\n doFilter && this.setSelectedData(selectedData);\n this.event.emit(ChartEvent.legendItemClick, { model: this, value: selectedData, event: e });\n });\n\n this._legendComponent.addEventListener(LegendEvent.legendItemHover, (e: any) => {\n const detail = get(e, 'detail');\n this.event.emit(ChartEvent.legendItemHover, { model: this, value: detail, event: e });\n });\n\n this._legendComponent.addEventListener(LegendEvent.legendItemUnHover, (e: any) => {\n const detail = get(e, 'detail');\n this.event.emit(ChartEvent.legendItemUnHover, { model: this, value: detail, event: e });\n });\n }\n }\n\n private _getLegendItems() {\n const originData = (this._legendData.getLatestData() || []).map((datum: any) => {\n const fillOpacity = datum.style('fillOpacity');\n const strokeOpacity = datum.style('strokeOpacity');\n const opacity = datum.style('opacity');\n const texture = datum.style('texture');\n\n return {\n label: datum.key,\n shape: {\n symbolType: datum.style('symbolType') ?? datum.shapeType ?? 'circle',\n fillOpacity: isValidNumber(fillOpacity) ? fillOpacity : 1,\n strokeOpacity: isValidNumber(strokeOpacity) ? strokeOpacity : 1,\n opacity: isValidNumber(opacity) ? opacity : 1,\n texturePadding: texture ? 1 : null,\n textureSize: texture ? 4 : null,\n texture,\n fill: datum.style('fill'),\n stroke: datum.style('stroke'),\n textureColor: datum.style('textureColor'),\n innerBorder: datum.style('innerBorder'),\n outerBorder: datum.style('outerBorder'),\n lineDash: datum.style('lineDash'),\n lineDashOffset: datum.style('lineDashOffset'),\n lineWidth: datum.style('lineWidth')\n }\n };\n });\n const legendItems = isFunction(this._spec.data)\n ? this._spec.data(originData, this._option.globalScale.getScale('color'), this._option.globalScale)\n : originData;\n return legendItems;\n }\n\n private _addLegendItemFormatMethods(attrs: any) {\n const { formatMethod: labelFormatMethod, formatter: labelFormatter } = this._spec.item?.label ?? {};\n const { formatMethod: valueFormatMethod, formatter: valueFormatter } = this._spec.item?.value ?? {};\n\n const { formatFunc: labelFormatFunc } = getFormatFunction(labelFormatMethod, labelFormatter);\n if (labelFormatter && !labelFormatMethod && labelFormatFunc) {\n attrs.item.label.formatMethod = (value: string, datum: any) => {\n return labelFormatFunc(value, datum, labelFormatter);\n };\n }\n const { formatFunc: valueFormatFunc } = getFormatFunction(valueFormatMethod, valueFormatter);\n if (valueFormatter && !valueFormatMethod && valueFormatFunc) {\n attrs.item.value.formatMethod = (value: string, datum: any) => {\n return valueFormatFunc(valueFormatter, value, datum, labelFormatter);\n };\n }\n }\n}\n\nexport const registerDiscreteLegend = () => {\n Factory.registerComponent(DiscreteLegend.type, DiscreteLegend);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/legend/discrete/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isFunction, isNil, isValidNumber, get } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport type { IDiscreteLegendSpec } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../../../series/interface';\nimport type { IModelInitOption, IModelSpecInfo } from '../../../model/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { getLegendAttributes } from './util';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { eachSeries } from '../../../util/model';\nimport { getFieldAlias } from '../../../util/data';\nimport { isDataDomainSpec } from '../../../util/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { LegendItemDatum } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { LegendEvent } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscreteLegend as LegendComponent } from '@visactor/vrender-components';\nimport { discreteLegendDataMake, discreteLegendFilter } from '../../../data/transforms/legend-data/discrete/discrete';\nimport { BaseLegend } from '../base-legend';\nimport { ChartEvent } from '../../../constant/event';\nimport { Factory } from '../../../core/factory';\nimport { TransformLevel } from '../../../data/initialize';\nimport type { ILayoutRect } from '../../../typings/layout';\nimport type { StringOrNumber } from '../../../typings';\nimport { getFormatFunction, getSpecInfo } from '../../util';\nimport type { IDiscreteLegendData } from '../../../data/transforms/legend-data/discrete';\nimport { discreteLegend } from '../../../theme/builtin/common/component/legend/discrete-legend';\n\nexport class DiscreteLegend extends BaseLegend<IDiscreteLegendSpec> {\n static specKey = 'legends';\n\n static readonly builtInTheme = {\n discreteLegend\n };\n static type = ComponentTypeEnum.discreteLegend;\n type = ComponentTypeEnum.discreteLegend;\n name: string = ComponentTypeEnum.discreteLegend;\n\n protected _unselectedData: StringOrNumber[];\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<IDiscreteLegendSpec>(chartSpec, this.specKey, this.type, (s: IDiscreteLegendSpec) => {\n return !s.type || s.type === 'discrete';\n });\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n eachSeries(\n this._regions,\n s => {\n s.addViewDataFilter({\n type: 'discreteLegendFilter',\n options: {\n series: s,\n selected: () => this._selectedData,\n field: () => this._getSeriesLegendField(s),\n data: () => this.getLegendDefaultData(),\n customFilter: this._spec.customFilter\n },\n level: TransformLevel.legendFilter\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected _initLegendData(): DataView {\n registerDataSetInstanceTransform(this._option.dataSet, 'discreteLegendFilter', discreteLegendFilter);\n registerDataSetInstanceTransform(this._option.dataSet, 'discreteLegendDataMake', discreteLegendDataMake);\n const legendData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n legendData.transform({\n type: 'discreteLegendDataMake',\n options: {\n series: () => {\n const result: ISeries[] = [];\n eachSeries(\n this._regions,\n s => {\n result.push(s);\n },\n {\n specIndex: this._spec.seriesIndex,\n userId: this._spec.seriesId\n }\n );\n return result;\n },\n seriesField: (s: ISeries) => this._getSeriesLegendField(s)\n }\n });\n\n return legendData;\n }\n\n protected _getSeriesLegendField(s: ISeries) {\n const defaultField = s.getSeriesField();\n const specifyScaleId = this._spec.scaleName ?? this._spec.scale;\n\n if (isNil(specifyScaleId)) {\n return defaultField;\n }\n if (!s.getRawData()) {\n return defaultField;\n }\n const scaleSpec = this._option.globalScale.getScaleSpec(specifyScaleId);\n if (!scaleSpec) {\n return defaultField;\n }\n\n // field是只在图例指定了scale的情况下生效\n if (this._spec.field) {\n return this._spec.field;\n }\n\n if (!isDataDomainSpec(scaleSpec.domain)) {\n return defaultField;\n }\n const seriesData = scaleSpec.domain.find(d => d.dataId === s.getRawData().name);\n if (!seriesData) {\n return defaultField;\n }\n return seriesData.fields?.[0] ?? defaultField;\n }\n\n protected _initSelectedData(): void {\n const fullSelectedData = this.getLegendDefaultData();\n\n if (this._unselectedData) {\n const selected: StringOrNumber[] = [];\n const unselected: StringOrNumber[] = [];\n\n fullSelectedData.forEach((entry: StringOrNumber) => {\n if (this._unselectedData.includes(entry)) {\n unselected.push(entry);\n } else {\n selected.push(entry);\n }\n });\n this._selectedData = selected;\n this._unselectedData = unselected;\n } else if (this._spec.defaultSelected) {\n this._selectedData = [...this._spec.defaultSelected];\n } else {\n this._selectedData = fullSelectedData;\n }\n }\n\n getLegendDefaultData(originalData?: boolean) {\n if (isFunction(this._spec.data)) {\n return this._getLegendItems().map((obj: LegendItemDatum) => obj.label);\n }\n\n return this._legendData\n .getLatestData()\n .map(originalData ? (obj: IDiscreteLegendData) => obj.originalKey : (obj: IDiscreteLegendData) => obj.key);\n }\n\n private _addDefaultTitleText(attrs: any) {\n if (attrs.title?.visible && isNil(attrs.title.text) && isNil(attrs.title.style?.text)) {\n // 默认使用第0个系列的 seriesField 别名\n const series = this._regions?.[0]?.getSeries()[0];\n if (!series) {\n return;\n }\n // 如果没有别名继续保持 空字符串\n attrs.title.text = getFieldAlias(series.getRawData(), series.getSeriesField());\n }\n }\n\n protected _getLegendAttributes(rect: ILayoutRect) {\n const layout = this.layoutOrient === 'bottom' || this.layoutOrient === 'top' ? 'horizontal' : 'vertical';\n const attrs = {\n layout,\n items: this._getLegendItems(),\n zIndex: this.layoutZIndex,\n ...getLegendAttributes(this._spec, rect),\n // maxWidth 和 maxHeight 已经在布局模块处理了,所以 rect 的优先级最高\n maxWidth: rect.width,\n maxHeight: rect.height\n };\n this._addDefaultTitleText(attrs);\n this._addLegendItemFormatMethods(attrs);\n return attrs;\n }\n\n protected _getLegendConstructor() {\n return LegendComponent;\n }\n\n setSelectedData(selectedData: StringOrNumber[]) {\n if (selectedData) {\n this._unselectedData = this.getLegendDefaultData().filter(\n (entry: StringOrNumber) => !selectedData.includes(entry)\n );\n }\n\n super.setSelectedData(selectedData);\n }\n\n protected _initEvent() {\n if (this._legendComponent) {\n const doFilter = this._spec.filter !== false;\n this._legendComponent.addEventListener(LegendEvent.legendItemClick, (e: any) => {\n const selectedData = get(e, 'detail.currentSelected');\n doFilter && this.setSelectedData(selectedData);\n this.event.emit(ChartEvent.legendItemClick, { model: this, value: selectedData, event: e });\n });\n\n this._legendComponent.addEventListener(LegendEvent.legendItemHover, (e: any) => {\n const detail = get(e, 'detail');\n this.event.emit(ChartEvent.legendItemHover, { model: this, value: detail, event: e });\n });\n\n this._legendComponent.addEventListener(LegendEvent.legendItemUnHover, (e: any) => {\n const detail = get(e, 'detail');\n this.event.emit(ChartEvent.legendItemUnHover, { model: this, value: detail, event: e });\n });\n }\n }\n\n private _getLegendItems() {\n const originData = (this._legendData.getLatestData() || []).map((datum: any) => {\n const fillOpacity = datum.style('fillOpacity');\n const strokeOpacity = datum.style('strokeOpacity');\n const opacity = datum.style('opacity');\n const texture = datum.style('texture');\n\n return {\n label: datum.key,\n shape: {\n symbolType: datum.style('symbolType') ?? datum.shapeType ?? 'circle',\n fillOpacity: isValidNumber(fillOpacity) ? fillOpacity : 1,\n strokeOpacity: isValidNumber(strokeOpacity) ? strokeOpacity : 1,\n opacity: isValidNumber(opacity) ? opacity : 1,\n texturePadding: texture ? 1 : null,\n textureSize: texture ? 4 : null,\n texture,\n fill: datum.style('fill'),\n stroke: datum.style('stroke'),\n textureColor: datum.style('textureColor'),\n innerBorder: datum.style('innerBorder'),\n outerBorder: datum.style('outerBorder'),\n lineDash: datum.style('lineDash'),\n lineDashOffset: datum.style('lineDashOffset'),\n lineWidth: datum.style('lineWidth')\n }\n };\n });\n const legendItems = isFunction(this._spec.data)\n ? this._spec.data(originData, this._option.globalScale.getScale('color'), this._option.globalScale)\n : originData;\n return legendItems;\n }\n\n private _addLegendItemFormatMethods(attrs: any) {\n const { formatMethod: labelFormatMethod, formatter: labelFormatter } = this._spec.item?.label ?? {};\n const { formatMethod: valueFormatMethod, formatter: valueFormatter } = this._spec.item?.value ?? {};\n\n const { formatFunc: labelFormatFunc } = getFormatFunction(labelFormatMethod, labelFormatter);\n if (labelFormatter && !labelFormatMethod && labelFormatFunc) {\n attrs.item.label.formatMethod = (value: string, datum: any) => {\n return labelFormatFunc(value, datum, labelFormatter);\n };\n }\n const { formatFunc: valueFormatFunc } = getFormatFunction(valueFormatMethod, valueFormatter);\n if (valueFormatter && !valueFormatMethod && valueFormatFunc) {\n attrs.item.value.formatMethod = (value: string, datum: any) => {\n return valueFormatFunc(valueFormatter, value, datum, labelFormatter);\n };\n }\n }\n}\n\nexport const registerDiscreteLegend = () => {\n Factory.registerComponent(DiscreteLegend.type, DiscreteLegend);\n};\n"]}
@@ -19,8 +19,6 @@ export declare abstract class BaseMarker<T extends IMarkerSpec> extends BaseComp
19
19
  getRelativeSeries(): IMarkerSupportSeries;
20
20
  protected _markerData: DataView;
21
21
  getMarkerData(): DataView;
22
- private _markerDataChangeHandler;
23
- private _markerDataOwned;
24
22
  protected _markerComponent: any;
25
23
  protected _layoutOffsetX: number;
26
24
  protected _layoutOffsetY: number;
@@ -40,10 +38,6 @@ export declare abstract class BaseMarker<T extends IMarkerSpec> extends BaseComp
40
38
  getStartRelativeSeries: () => IMarkerSupportSeries;
41
39
  getEndRelativeSeries: () => IMarkerSupportSeries;
42
40
  };
43
- protected _getAutoRangeExtendDomainKeyPrefix(): string;
44
- private _getAutoRangeExtendDomainKey;
45
- private _clearAutoRangeExtendDomain;
46
- private _updateMarkerLayout;
47
41
  private _getFieldInfoFromSpec;
48
42
  protected _processSpecByDims(dimSpec: {
49
43
  dim: 'x' | 'y' | 'angle' | 'radius' | 'areaName';
@@ -55,21 +49,20 @@ export declare abstract class BaseMarker<T extends IMarkerSpec> extends BaseComp
55
49
  };
56
50
  protected _processSpecCoo(spec: any): IOptionWithCoordinates;
57
51
  protected _getRelativeDataView(): DataView;
58
- protected _setMarkerData(data: DataView, owned?: boolean): void;
59
- protected _bindMarkerDataChange(): void;
60
- private _releaseMarkerData;
61
52
  updateLayoutAttribute(): void;
62
53
  private _getSeriesByIdOrIndex;
63
54
  protected _bindSeries(): void;
64
55
  protected initEvent(): void;
65
56
  clear(): void;
66
- release(): void;
67
57
  private _getFirstSeries;
68
58
  protected _getNeedClearVRenderComponents(): IGraphic[];
69
59
  onLayoutStart(layoutRect: IRect, chartViewRect: ILayoutRect): void;
70
- _compareSpec(spec: T, prevSpec: T): import("../../model/interface").IUpdateSpecResult;
71
- protected _isComponentOnlySpecChange(spec: T, prevSpec: T): boolean;
72
- protected _isAutoRangeSpecChange(spec: T, prevSpec: T): boolean;
73
- reInit(spec?: T): void;
60
+ _compareSpec(spec: T, prevSpec: T): {
61
+ change: boolean;
62
+ reMake: boolean;
63
+ reRender: boolean;
64
+ reSize: boolean;
65
+ reCompile: boolean;
66
+ };
74
67
  _initCommonDataView(): void;
75
68
  }
@@ -4,44 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.BaseMarker = void 0;
6
6
 
7
- const vdataset_1 = require("@visactor/vdataset"), vutils_1 = require("@visactor/vutils"), base_component_1 = require("../base/base-component"), space_1 = require("../../util/space"), utils_1 = require("./utils"), util_1 = require("../../util"), array_1 = require("../../data/parser/array"), util_2 = require("../util"), register_1 = require("../../data/register"), aggregation_1 = require("../../data/transforms/aggregation"), marker_filter_1 = require("../../data/transforms/marker-filter"), data_view_utils_1 = require("../../data/data-view-utils"), MARKER_FORMAT_METHOD_PLACEHOLDER = "__vchart_marker_format_method__", MARKER_COORDINATE_PLACEHOLDER = "__vchart_marker_coordinate__", MARKER_TEXT_PLACEHOLDER = "__vchart_marker_text__", MARKER_AUTO_RANGE_PLACEHOLDER = "__vchart_marker_auto_range__", MARKER_STYLE_PLACEHOLDER = "__vchart_marker_style__", MARKER_DOMAIN_POSITION_SPEC_KEYS = [ "coordinate", "coordinates", "x", "y", "x1", "y1", "angle", "angle1", "radius", "radius1" ], MARKER_LAYOUT_POSITION_SPEC_KEYS = [ "position", "positions", "coordinatesOffset", "regionRelative" ], MARKER_ITEM_CONTENT_LAYOUT_SPEC_KEYS = [ "offsetX", "offsetY", "confine" ], normalizeMarkerLabelFormatMethod = label => Array.isArray(label) ? label.map(normalizeMarkerLabelFormatMethod) : label && "object" == typeof label ? "function" != typeof label.formatMethod ? label : Object.assign(Object.assign({}, label), {
8
- formatMethod: MARKER_FORMAT_METHOD_PLACEHOLDER
9
- }) : label, normalizeMarkerStyles = value => {
10
- if (Array.isArray(value)) return value.map(normalizeMarkerStyles);
11
- if (!value || "object" != typeof value) return value;
12
- const normalized = Object.assign({}, value);
13
- return Object.keys(normalized).forEach((key => {
14
- "style" === key || key.endsWith("Style") ? normalized[key] = MARKER_STYLE_PLACEHOLDER : normalized[key] = normalizeMarkerStyles(normalized[key]);
15
- })), normalized;
16
- }, normalizeMarkerSpecForComponentOnlyUpdate = (spec, options) => {
17
- if (!spec || "object" != typeof spec) return spec;
18
- const normalized = Object.assign({}, spec);
19
- options.normalizeDomainPosition && MARKER_DOMAIN_POSITION_SPEC_KEYS.forEach((key => {
20
- normalized[key] = MARKER_COORDINATE_PLACEHOLDER;
21
- })), options.normalizeAutoRange && "autoRange" in normalized && (normalized.autoRange = MARKER_AUTO_RANGE_PLACEHOLDER),
22
- MARKER_LAYOUT_POSITION_SPEC_KEYS.forEach((key => {
23
- key in normalized && (normalized[key] = MARKER_COORDINATE_PLACEHOLDER);
24
- })), "label" in normalized && (normalized.label = normalizeMarkerLabelFormatMethod(normalized.label)),
25
- Object.keys(normalized).forEach((key => {
26
- normalized[key] = normalizeMarkerStyles(normalized[key]);
27
- }));
28
- const itemContent = normalized.itemContent;
29
- if (itemContent && "object" == typeof itemContent) {
30
- normalized.itemContent = Object.assign({}, itemContent), MARKER_ITEM_CONTENT_LAYOUT_SPEC_KEYS.forEach((key => {
31
- key in normalized.itemContent && (normalized.itemContent[key] = MARKER_COORDINATE_PLACEHOLDER);
32
- }));
33
- const text = normalized.itemContent.text;
34
- text && "object" == typeof text && (normalized.itemContent.text = Object.assign(Object.assign({}, normalizeMarkerLabelFormatMethod(text)), {
35
- text: MARKER_TEXT_PLACEHOLDER
36
- }));
37
- }
38
- return normalized;
39
- };
7
+ const vdataset_1 = require("@visactor/vdataset"), vutils_1 = require("@visactor/vutils"), base_component_1 = require("../base/base-component"), space_1 = require("../../util/space"), utils_1 = require("./utils"), util_1 = require("../../util"), array_1 = require("../../data/parser/array"), util_2 = require("../util"), register_1 = require("../../data/register"), aggregation_1 = require("../../data/transforms/aggregation"), marker_filter_1 = require("../../data/transforms/marker-filter");
40
8
 
41
9
  class BaseMarker extends base_component_1.BaseComponent {
42
10
  constructor() {
43
- super(...arguments), this.layoutType = "none", this._markerDataChangeHandler = null,
44
- this._markerDataOwned = !1, this._layoutOffsetX = 0, this._layoutOffsetY = 0;
11
+ super(...arguments), this.layoutType = "none", this._layoutOffsetX = 0, this._layoutOffsetY = 0;
45
12
  }
46
13
  getRelativeSeries() {
47
14
  return this._relativeSeries;
@@ -76,25 +43,6 @@ class BaseMarker extends base_component_1.BaseComponent {
76
43
  getEndRelativeSeries: () => this._endRelativeSeries
77
44
  };
78
45
  }
79
- _getAutoRangeExtendDomainKeyPrefix() {
80
- return `marker_${this.type}_${this.id}`;
81
- }
82
- _getAutoRangeExtendDomainKey(axisKey) {
83
- return `${this._getAutoRangeExtendDomainKeyPrefix()}_${axisKey}_extend`;
84
- }
85
- _clearAutoRangeExtendDomain() {
86
- var _a, _b;
87
- (0, vutils_1.array)(null === (_b = (_a = this._option).getAllSeries) || void 0 === _b ? void 0 : _b.call(_a)).forEach((series => {
88
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
89
- null === (_c = null === (_b = null === (_a = null == series ? void 0 : series.getXAxisHelper) || void 0 === _a ? void 0 : _a.call(series)) || void 0 === _b ? void 0 : _b.setExtendDomain) || void 0 === _c || _c.call(_b, this._getAutoRangeExtendDomainKey("xAxis"), void 0),
90
- null === (_f = null === (_e = null === (_d = null == series ? void 0 : series.getYAxisHelper) || void 0 === _d ? void 0 : _d.call(series)) || void 0 === _e ? void 0 : _e.setExtendDomain) || void 0 === _f || _f.call(_e, this._getAutoRangeExtendDomainKey("yAxis"), void 0),
91
- null === (_h = null === (_g = null == series ? void 0 : series.angleAxisHelper) || void 0 === _g ? void 0 : _g.setExtendDomain) || void 0 === _h || _h.call(_g, this._getAutoRangeExtendDomainKey("angleAxis"), void 0),
92
- null === (_k = null === (_j = null == series ? void 0 : series.radiusAxisHelper) || void 0 === _j ? void 0 : _j.setExtendDomain) || void 0 === _k || _k.call(_j, this._getAutoRangeExtendDomainKey("radiusAxis"), void 0);
93
- }));
94
- }
95
- _updateMarkerLayout() {
96
- this._clearAutoRangeExtendDomain(), this._markerLayout();
97
- }
98
46
  _getFieldInfoFromSpec(dim, spec, relativeSeries) {
99
47
  const specKeyByDim = {
100
48
  x: "xField",
@@ -134,21 +82,6 @@ class BaseMarker extends base_component_1.BaseComponent {
134
82
  }
135
83
  return this._relativeSeries.getViewData();
136
84
  }
137
- _setMarkerData(data, owned = !1) {
138
- this._releaseMarkerData(), this._markerData = data, this._markerDataOwned = owned;
139
- }
140
- _bindMarkerDataChange() {
141
- var _a;
142
- (null === (_a = this._markerData) || void 0 === _a ? void 0 : _a.target) && (this._markerDataChangeHandler = () => {
143
- this._updateMarkerLayout();
144
- }, this._markerData.target.on("change", this._markerDataChangeHandler));
145
- }
146
- _releaseMarkerData() {
147
- const markerData = this._markerData;
148
- (null == markerData ? void 0 : markerData.target) && this._markerDataChangeHandler && markerData.target.removeListener("change", this._markerDataChangeHandler),
149
- this._markerDataChangeHandler = null, this._markerDataOwned && (0, data_view_utils_1.releaseDataViewWithDependencies)(markerData, (dataView => dataView.name === `${this.type}_${this.id}_data`)),
150
- this._markerData = null, this._markerDataOwned = !1;
151
- }
152
85
  updateLayoutAttribute() {
153
86
  var _a, _b, _c;
154
87
  if (null === (_a = this._spec.visible) || void 0 === _a || _a) {
@@ -161,7 +94,7 @@ class BaseMarker extends base_component_1.BaseComponent {
161
94
  this._delegateEvent(this._markerComponent, event, type, null, this.getMarkerData.bind(this));
162
95
  }));
163
96
  }
164
- this._updateMarkerLayout();
97
+ this._markerLayout();
165
98
  }
166
99
  super.updateLayoutAttribute();
167
100
  }
@@ -180,14 +113,11 @@ class BaseMarker extends base_component_1.BaseComponent {
180
113
  spec.specifiedDataSeriesIndex && "all" === spec.specifiedDataSeriesIndex || spec.specifiedDataSeriesId && "all" === spec.specifiedDataSeriesId ? this._specifiedDataSeries = this._option.getAllSeries() : (spec.specifiedDataSeriesIndex || spec.specifiedDataSeriesId) && (this._specifiedDataSeries = this._getSeriesByIdOrIndex(spec.specifiedDataSeriesId, spec.specifiedDataSeriesIndex));
181
114
  }
182
115
  initEvent() {
183
- "cartesian" !== this._relativeSeries.coordinate && (this._relativeSeries.event.on("zoom", this._updateMarkerLayout.bind(this)),
184
- this._relativeSeries.event.on("panmove", this._updateMarkerLayout.bind(this)), this._relativeSeries.event.on("scroll", this._updateMarkerLayout.bind(this)));
116
+ "cartesian" !== this._relativeSeries.coordinate && (this._relativeSeries.event.on("zoom", this._markerLayout.bind(this)),
117
+ this._relativeSeries.event.on("panmove", this._markerLayout.bind(this)), this._relativeSeries.event.on("scroll", this._markerLayout.bind(this)));
185
118
  }
186
119
  clear() {
187
- super.clear(), this._markerComponent = null, this._firstSeries = null;
188
- }
189
- release() {
190
- this._releaseMarkerData(), super.release();
120
+ super.clear(), this._firstSeries = null;
191
121
  }
192
122
  _getFirstSeries() {
193
123
  var _a;
@@ -206,45 +136,13 @@ class BaseMarker extends base_component_1.BaseComponent {
206
136
  }
207
137
  _compareSpec(spec, prevSpec) {
208
138
  const result = super._compareSpec(spec, prevSpec);
209
- return (0, vutils_1.isEqual)(prevSpec, spec) || (result.reRender = !0, result.change = !0,
210
- result.reMake || result.reCompile || !this._isComponentOnlySpecChange(spec, prevSpec) ? result.reMake || result.reCompile || !this._isAutoRangeSpecChange(spec, prevSpec) ? result.reMake = !0 : result.effects = Object.assign(Object.assign({}, result.effects), {
211
- component: !0,
212
- scaleDomain: !0,
213
- layout: !0,
214
- render: !0
215
- }) : result.effects = Object.assign(Object.assign({}, result.effects), {
216
- component: !0,
217
- layout: !0,
218
- render: !0
219
- })), result;
220
- }
221
- _isComponentOnlySpecChange(spec, prevSpec) {
222
- const normalizeDomainPosition = !(null == spec ? void 0 : spec.autoRange) && !(null == prevSpec ? void 0 : prevSpec.autoRange);
223
- return (0, vutils_1.isEqual)(normalizeMarkerSpecForComponentOnlyUpdate(prevSpec, {
224
- normalizeDomainPosition: normalizeDomainPosition
225
- }), normalizeMarkerSpecForComponentOnlyUpdate(spec, {
226
- normalizeDomainPosition: normalizeDomainPosition
227
- }));
228
- }
229
- _isAutoRangeSpecChange(spec, prevSpec) {
230
- return !(!(null == spec ? void 0 : spec.autoRange) && !(null == prevSpec ? void 0 : prevSpec.autoRange)) && (0,
231
- vutils_1.isEqual)(normalizeMarkerSpecForComponentOnlyUpdate(prevSpec, {
232
- normalizeDomainPosition: !0,
233
- normalizeAutoRange: !0
234
- }), normalizeMarkerSpecForComponentOnlyUpdate(spec, {
235
- normalizeDomainPosition: !0,
236
- normalizeAutoRange: !0
237
- }));
238
- }
239
- reInit(spec) {
240
- super.reInit(spec), this._releaseMarkerData(), this._bindSeries(), this._initDataView(),
241
- this._buildMarkerAttributeContext(), this._markerComponent && this._updateMarkerLayout();
139
+ return (0, vutils_1.isEqual)(prevSpec, spec) || (result.reRender = !0, result.reMake = !0,
140
+ result.change = !0), result;
242
141
  }
243
142
  _initCommonDataView() {
244
143
  const {options: options} = this._computeOptions(), seriesData = this._getRelativeDataView();
245
144
  (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "markerAggregation", aggregation_1.markerAggregation),
246
- (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "markerFilter", marker_filter_1.markerFilter),
247
- this._releaseMarkerData();
145
+ (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "markerFilter", marker_filter_1.markerFilter);
248
146
  const data = new vdataset_1.DataView(this._option.dataSet, {
249
147
  name: `${this.type}_${this.id}_data`
250
148
  });
@@ -256,7 +154,9 @@ class BaseMarker extends base_component_1.BaseComponent {
256
154
  }), data.transform({
257
155
  type: "markerFilter",
258
156
  options: this._getAllRelativeSeries()
259
- }), this._setMarkerData(data, !0), this._bindMarkerDataChange();
157
+ }), data.target.on("change", (() => {
158
+ this._markerLayout();
159
+ })), this._markerData = data;
260
160
  }
261
161
  }
262
162