@visactor/vchart 1.2.3 → 1.3.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (741) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.js +23611 -20832
  3. package/build/index.min.js +15 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/spec.d.ts +1 -1
  6. package/cjs/animation/spec.js.map +1 -1
  7. package/cjs/chart/area/area.js +2 -3
  8. package/cjs/chart/area/area.js.map +1 -1
  9. package/cjs/chart/bar/bar-3d.js +2 -2
  10. package/cjs/chart/bar/bar-3d.js.map +1 -1
  11. package/cjs/chart/bar/bar.js +2 -2
  12. package/cjs/chart/bar/bar.js.map +1 -1
  13. package/cjs/chart/base-chart.d.ts +4 -2
  14. package/cjs/chart/base-chart.js +33 -34
  15. package/cjs/chart/base-chart.js.map +1 -1
  16. package/cjs/chart/box-plot/box-plot.js +2 -2
  17. package/cjs/chart/box-plot/box-plot.js.map +1 -1
  18. package/cjs/chart/cartesian/cartesian.js +2 -1
  19. package/cjs/chart/cartesian/cartesian.js.map +1 -1
  20. package/cjs/chart/circle-packing/circle-packing.js +2 -2
  21. package/cjs/chart/circle-packing/circle-packing.js.map +1 -1
  22. package/cjs/chart/funnel/funnel-3d.js +2 -2
  23. package/cjs/chart/funnel/funnel-3d.js.map +1 -1
  24. package/cjs/chart/funnel/funnel.js +2 -2
  25. package/cjs/chart/funnel/funnel.js.map +1 -1
  26. package/cjs/chart/gauge/gauge.js +2 -2
  27. package/cjs/chart/gauge/gauge.js.map +1 -1
  28. package/cjs/chart/heatmap/heatmap.js +2 -2
  29. package/cjs/chart/heatmap/heatmap.js.map +1 -1
  30. package/cjs/chart/histogram/histogram-3d.js +2 -2
  31. package/cjs/chart/histogram/histogram-3d.js.map +1 -1
  32. package/cjs/chart/histogram/histogram.js +2 -2
  33. package/cjs/chart/histogram/histogram.js.map +1 -1
  34. package/cjs/chart/interface/chart.d.ts +4 -2
  35. package/cjs/chart/interface/chart.js.map +1 -1
  36. package/cjs/chart/line/line.js +2 -3
  37. package/cjs/chart/line/line.js.map +1 -1
  38. package/cjs/chart/map/map.js +2 -2
  39. package/cjs/chart/map/map.js.map +1 -1
  40. package/cjs/chart/pie/pie-3d.js +2 -2
  41. package/cjs/chart/pie/pie-3d.js.map +1 -1
  42. package/cjs/chart/pie/pie.js +2 -2
  43. package/cjs/chart/pie/pie.js.map +1 -1
  44. package/cjs/chart/progress/circular/circular.js +2 -2
  45. package/cjs/chart/progress/circular/circular.js.map +1 -1
  46. package/cjs/chart/progress/linear/linear.js +2 -2
  47. package/cjs/chart/progress/linear/linear.js.map +1 -1
  48. package/cjs/chart/radar/radar.js +2 -3
  49. package/cjs/chart/radar/radar.js.map +1 -1
  50. package/cjs/chart/range-area/range-area.js +2 -2
  51. package/cjs/chart/range-area/range-area.js.map +1 -1
  52. package/cjs/chart/range-column/range-column-3d.js +2 -2
  53. package/cjs/chart/range-column/range-column-3d.js.map +1 -1
  54. package/cjs/chart/range-column/range-column.js +2 -2
  55. package/cjs/chart/range-column/range-column.js.map +1 -1
  56. package/cjs/chart/rose/rose.js +2 -2
  57. package/cjs/chart/rose/rose.js.map +1 -1
  58. package/cjs/chart/sankey/sankey.js +2 -2
  59. package/cjs/chart/sankey/sankey.js.map +1 -1
  60. package/cjs/chart/scatter/scatter.js +2 -2
  61. package/cjs/chart/scatter/scatter.js.map +1 -1
  62. package/cjs/chart/sequence/sequence.js +2 -2
  63. package/cjs/chart/sequence/sequence.js.map +1 -1
  64. package/cjs/chart/stack.d.ts +1 -0
  65. package/cjs/chart/stack.js +14 -0
  66. package/cjs/chart/stack.js.map +1 -1
  67. package/cjs/chart/sunburst/sunburst.js +2 -2
  68. package/cjs/chart/sunburst/sunburst.js.map +1 -1
  69. package/cjs/chart/treemap/treemap.js +2 -2
  70. package/cjs/chart/treemap/treemap.js.map +1 -1
  71. package/cjs/chart/util.d.ts +8 -0
  72. package/cjs/chart/util.js +32 -3
  73. package/cjs/chart/util.js.map +1 -1
  74. package/cjs/chart/waterfall/waterfall.js +2 -2
  75. package/cjs/chart/waterfall/waterfall.js.map +1 -1
  76. package/cjs/chart/word-cloud/word-cloud-3d.js +2 -2
  77. package/cjs/chart/word-cloud/word-cloud-3d.js.map +1 -1
  78. package/cjs/chart/word-cloud/word-cloud.js +2 -2
  79. package/cjs/chart/word-cloud/word-cloud.js.map +1 -1
  80. package/cjs/compile/compiler.d.ts +1 -1
  81. package/cjs/compile/compiler.js +4 -3
  82. package/cjs/compile/compiler.js.map +1 -1
  83. package/cjs/compile/mark/compilable-mark.js +9 -10
  84. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  85. package/cjs/compile/mark/interface.d.ts +2 -1
  86. package/cjs/compile/mark/interface.js.map +1 -1
  87. package/cjs/compile/mark/util.d.ts +2 -1
  88. package/cjs/compile/mark/util.js +21 -5
  89. package/cjs/compile/mark/util.js.map +1 -1
  90. package/cjs/component/axis/base-axis.d.ts +1 -12
  91. package/cjs/component/axis/base-axis.js +7 -17
  92. package/cjs/component/axis/base-axis.js.map +1 -1
  93. package/cjs/component/axis/cartesian/axis.js +15 -6
  94. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  95. package/cjs/component/axis/cartesian/band-axis.d.ts +1 -0
  96. package/cjs/component/axis/cartesian/band-axis.js +1 -0
  97. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  98. package/cjs/component/axis/cartesian/index.d.ts +1 -0
  99. package/cjs/component/axis/cartesian/index.js +2 -1
  100. package/cjs/component/axis/cartesian/index.js.map +1 -1
  101. package/cjs/component/axis/cartesian/interface/common.d.ts +6 -1
  102. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  103. package/cjs/component/axis/cartesian/interface/spec.d.ts +4 -1
  104. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  105. package/cjs/component/axis/cartesian/linear-axis.js +4 -3
  106. package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
  107. package/cjs/component/axis/cartesian/symlog-axis.d.ts +15 -0
  108. package/cjs/component/axis/cartesian/symlog-axis.js +23 -0
  109. package/cjs/component/axis/cartesian/symlog-axis.js.map +1 -0
  110. package/cjs/component/axis/interface.d.ts +3 -1
  111. package/cjs/component/axis/interface.js.map +1 -1
  112. package/cjs/component/axis/polar/axis.d.ts +1 -0
  113. package/cjs/component/axis/polar/axis.js +5 -2
  114. package/cjs/component/axis/polar/axis.js.map +1 -1
  115. package/cjs/component/axis/polar/band-axis.d.ts +1 -0
  116. package/cjs/component/base/base-component.d.ts +3 -2
  117. package/cjs/component/base/base-component.js +3 -3
  118. package/cjs/component/base/base-component.js.map +1 -1
  119. package/cjs/component/base/util.js +3 -0
  120. package/cjs/component/base/util.js.map +1 -1
  121. package/cjs/component/brush/brush.d.ts +11 -1
  122. package/cjs/component/brush/brush.js +61 -51
  123. package/cjs/component/brush/brush.js.map +1 -1
  124. package/cjs/component/crosshair/base.d.ts +1 -0
  125. package/cjs/component/crosshair/cartesian.js +1 -1
  126. package/cjs/component/crosshair/cartesian.js.map +1 -1
  127. package/cjs/component/crosshair/polar.js +3 -3
  128. package/cjs/component/crosshair/polar.js.map +1 -1
  129. package/cjs/component/custom-mark/custom-mark.d.ts +1 -0
  130. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -0
  131. package/cjs/component/geo/geo-coordinate.d.ts +7 -2
  132. package/cjs/component/geo/geo-coordinate.js +54 -14
  133. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  134. package/cjs/component/index.d.ts +3 -2
  135. package/cjs/component/index.js +15 -1
  136. package/cjs/component/index.js.map +1 -1
  137. package/cjs/component/indicator/indicator.js.map +1 -1
  138. package/cjs/component/interface/theme.d.ts +2 -0
  139. package/cjs/component/interface/theme.js.map +1 -1
  140. package/cjs/component/interface/type.d.ts +2 -0
  141. package/cjs/component/interface/type.js +13 -12
  142. package/cjs/component/interface/type.js.map +1 -1
  143. package/cjs/component/label/base-label.d.ts +40 -0
  144. package/cjs/component/label/base-label.js +44 -0
  145. package/cjs/component/label/base-label.js.map +1 -0
  146. package/cjs/component/label/interface.d.ts +7 -0
  147. package/cjs/component/label/interface.js.map +1 -1
  148. package/cjs/component/label/label.d.ts +5 -27
  149. package/cjs/component/label/label.js +31 -38
  150. package/cjs/component/label/label.js.map +1 -1
  151. package/cjs/component/label/pie.d.ts +5 -0
  152. package/cjs/component/label/pie.js +21 -0
  153. package/cjs/component/label/pie.js.map +1 -0
  154. package/cjs/component/label/totalLabel.d.ts +27 -0
  155. package/cjs/component/label/totalLabel.js +107 -0
  156. package/cjs/component/label/totalLabel.js.map +1 -0
  157. package/cjs/component/label/util.d.ts +3 -1
  158. package/cjs/component/label/util.js +5 -5
  159. package/cjs/component/label/util.js.map +1 -1
  160. package/cjs/component/legend/base-legend.d.ts +1 -0
  161. package/cjs/component/marker/base-marker.d.ts +6 -0
  162. package/cjs/component/marker/base-marker.js +14 -0
  163. package/cjs/component/marker/base-marker.js.map +1 -1
  164. package/cjs/component/marker/interface.d.ts +1 -0
  165. package/cjs/component/marker/interface.js.map +1 -1
  166. package/cjs/component/marker/mark-area/mark-area.js +17 -6
  167. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  168. package/cjs/component/marker/mark-line/mark-line.js +17 -6
  169. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  170. package/cjs/component/marker/mark-point/mark-point.js +18 -7
  171. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  172. package/cjs/component/title/title.d.ts +1 -0
  173. package/cjs/component/title/title.js +2 -1
  174. package/cjs/component/title/title.js.map +1 -1
  175. package/cjs/component/tooltip/handler/base.js.map +1 -1
  176. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +1 -1
  177. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  178. package/cjs/component/tooltip/handler/dom/interface.d.ts +9 -12
  179. package/cjs/component/tooltip/handler/dom/interface.js.map +1 -1
  180. package/cjs/component/tooltip/handler/dom/model/content-column-model.d.ts +4 -6
  181. package/cjs/component/tooltip/handler/dom/model/content-column-model.js +17 -15
  182. package/cjs/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  183. package/cjs/component/tooltip/handler/dom/model/title-model.js +3 -3
  184. package/cjs/component/tooltip/handler/dom/model/title-model.js.map +1 -1
  185. package/cjs/component/tooltip/handler/dom/util.js +18 -11
  186. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  187. package/cjs/component/tooltip/handler/utils/attribute.js +25 -24
  188. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  189. package/cjs/component/tooltip/handler/utils/compose.d.ts +2 -2
  190. package/cjs/component/tooltip/handler/utils/compose.js +13 -10
  191. package/cjs/component/tooltip/handler/utils/compose.js.map +1 -1
  192. package/cjs/component/tooltip/handler/utils/get-spec.js +2 -2
  193. package/cjs/component/tooltip/handler/utils/get-spec.js.map +1 -1
  194. package/cjs/component/tooltip/handler/utils/style.d.ts +1 -1
  195. package/cjs/component/tooltip/handler/utils/style.js +15 -10
  196. package/cjs/component/tooltip/handler/utils/style.js.map +1 -1
  197. package/cjs/component/tooltip/interface/theme.d.ts +1 -0
  198. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  199. package/cjs/component/tooltip/tooltip.d.ts +1 -1
  200. package/cjs/component/tooltip/tooltip.js +10 -7
  201. package/cjs/component/tooltip/tooltip.js.map +1 -1
  202. package/cjs/constant/index.d.ts +3 -0
  203. package/cjs/constant/index.js +4 -3
  204. package/cjs/constant/index.js.map +1 -1
  205. package/cjs/core/index.d.ts +1 -1
  206. package/cjs/core/index.js +1 -1
  207. package/cjs/core/index.js.map +1 -1
  208. package/cjs/core/interface.d.ts +3 -0
  209. package/cjs/core/interface.js.map +1 -1
  210. package/cjs/core/vchart.d.ts +6 -1
  211. package/cjs/core/vchart.js +51 -11
  212. package/cjs/core/vchart.js.map +1 -1
  213. package/cjs/data/initialize.js +9 -7
  214. package/cjs/data/initialize.js.map +1 -1
  215. package/cjs/data/transforms/dimension-statistics.d.ts +11 -5
  216. package/cjs/data/transforms/dimension-statistics.js +34 -22
  217. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  218. package/cjs/data/transforms/invalid-travel.js +1 -2
  219. package/cjs/data/transforms/invalid-travel.js.map +1 -1
  220. package/cjs/data/transforms/tick-data/continuous.js +6 -3
  221. package/cjs/data/transforms/tick-data/continuous.js.map +1 -1
  222. package/cjs/data/transforms/tick-data/interface.d.ts +3 -0
  223. package/cjs/data/transforms/tick-data/interface.js.map +1 -1
  224. package/cjs/event/event-dispatcher.js +4 -2
  225. package/cjs/event/event-dispatcher.js.map +1 -1
  226. package/cjs/event/events/dimension/dimension-click.d.ts +1 -3
  227. package/cjs/event/events/dimension/dimension-click.js +9 -10
  228. package/cjs/event/events/dimension/dimension-click.js.map +1 -1
  229. package/cjs/event/events/dimension/dimension-hover.d.ts +2 -3
  230. package/cjs/event/events/dimension/dimension-hover.js +26 -17
  231. package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
  232. package/cjs/event/interface.d.ts +3 -3
  233. package/cjs/event/interface.js.map +1 -1
  234. package/cjs/interaction/trigger.js +4 -0
  235. package/cjs/interaction/trigger.js.map +1 -1
  236. package/cjs/layout/label/arc-label.js.map +1 -1
  237. package/cjs/mark/base/base-mark.d.ts +1 -0
  238. package/cjs/mark/base/base-mark.js +20 -3
  239. package/cjs/mark/base/base-mark.js.map +1 -1
  240. package/cjs/mark/symbol.js +1 -1
  241. package/cjs/mark/symbol.js.map +1 -1
  242. package/cjs/model/base-model.d.ts +2 -0
  243. package/cjs/model/base-model.js +2 -0
  244. package/cjs/model/base-model.js.map +1 -1
  245. package/cjs/model/interface.d.ts +6 -1
  246. package/cjs/model/interface.js.map +1 -1
  247. package/cjs/model/layout-item.d.ts +4 -4
  248. package/cjs/model/layout-item.js.map +1 -1
  249. package/cjs/plugin/components/index.d.ts +0 -2
  250. package/cjs/plugin/components/index.js +1 -2
  251. package/cjs/plugin/components/index.js.map +1 -1
  252. package/cjs/region/region.d.ts +1 -0
  253. package/cjs/series/area/area.d.ts +6 -3
  254. package/cjs/series/area/area.js +36 -12
  255. package/cjs/series/area/area.js.map +1 -1
  256. package/cjs/series/area/tooltip-helpter.d.ts +5 -0
  257. package/cjs/series/area/tooltip-helpter.js +24 -0
  258. package/cjs/series/area/tooltip-helpter.js.map +1 -0
  259. package/cjs/series/bar/bar.d.ts +1 -0
  260. package/cjs/series/bar/bar.js +1 -1
  261. package/cjs/series/bar/bar.js.map +1 -1
  262. package/cjs/series/base/base-series.d.ts +4 -0
  263. package/cjs/series/base/base-series.js +62 -16
  264. package/cjs/series/base/base-series.js.map +1 -1
  265. package/cjs/series/base/tooltip-helper.js +4 -2
  266. package/cjs/series/base/tooltip-helper.js.map +1 -1
  267. package/cjs/series/box-plot/box-plot.js +1 -1
  268. package/cjs/series/box-plot/box-plot.js.map +1 -1
  269. package/cjs/series/cartesian/cartesian.d.ts +7 -3
  270. package/cjs/series/cartesian/cartesian.js +27 -17
  271. package/cjs/series/cartesian/cartesian.js.map +1 -1
  272. package/cjs/series/dot/dot.d.ts +1 -0
  273. package/cjs/series/dot/dot.js +3 -0
  274. package/cjs/series/dot/dot.js.map +1 -1
  275. package/cjs/series/funnel/funnel.d.ts +1 -0
  276. package/cjs/series/geo/geo.d.ts +2 -0
  277. package/cjs/series/geo/geo.js +5 -1
  278. package/cjs/series/geo/geo.js.map +1 -1
  279. package/cjs/series/heatmap/heatmap.d.ts +1 -0
  280. package/cjs/series/interface/common.d.ts +1 -0
  281. package/cjs/series/interface/common.js.map +1 -1
  282. package/cjs/series/interface/series.d.ts +3 -2
  283. package/cjs/series/interface/series.js.map +1 -1
  284. package/cjs/series/line/interface.d.ts +0 -2
  285. package/cjs/series/line/interface.js.map +1 -1
  286. package/cjs/series/line/line.d.ts +1 -2
  287. package/cjs/series/line/line.js +1 -1
  288. package/cjs/series/line/line.js.map +1 -1
  289. package/cjs/series/link/link.js +1 -1
  290. package/cjs/series/link/link.js.map +1 -1
  291. package/cjs/series/map/interface.d.ts +1 -0
  292. package/cjs/series/map/interface.js.map +1 -1
  293. package/cjs/series/map/map.d.ts +1 -2
  294. package/cjs/series/map/map.js +9 -9
  295. package/cjs/series/map/map.js.map +1 -1
  296. package/cjs/series/mixin/line-mixin.d.ts +4 -1
  297. package/cjs/series/mixin/line-mixin.js +37 -21
  298. package/cjs/series/mixin/line-mixin.js.map +1 -1
  299. package/cjs/series/pie/interface.d.ts +4 -7
  300. package/cjs/series/pie/interface.js.map +1 -1
  301. package/cjs/series/pie/pie.d.ts +2 -0
  302. package/cjs/series/pie/pie.js +19 -56
  303. package/cjs/series/pie/pie.js.map +1 -1
  304. package/cjs/series/polar/polar.d.ts +1 -0
  305. package/cjs/series/polar/polar.js +2 -1
  306. package/cjs/series/polar/polar.js.map +1 -1
  307. package/cjs/series/range-area/range-area.d.ts +2 -0
  308. package/cjs/series/range-area/range-area.js +8 -2
  309. package/cjs/series/range-area/range-area.js.map +1 -1
  310. package/cjs/series/range-column/range-column.js +1 -1
  311. package/cjs/series/range-column/range-column.js.map +1 -1
  312. package/cjs/series/rose/interface.d.ts +3 -0
  313. package/cjs/series/rose/interface.js.map +1 -1
  314. package/cjs/series/rose/rose.d.ts +1 -2
  315. package/cjs/series/rose/rose.js +17 -36
  316. package/cjs/series/rose/rose.js.map +1 -1
  317. package/cjs/series/sankey/interface.d.ts +3 -2
  318. package/cjs/series/sankey/interface.js.map +1 -1
  319. package/cjs/series/sankey/sankey.d.ts +2 -0
  320. package/cjs/series/sankey/sankey.js +198 -79
  321. package/cjs/series/sankey/sankey.js.map +1 -1
  322. package/cjs/series/scatter/interface.d.ts +1 -2
  323. package/cjs/series/scatter/interface.js.map +1 -1
  324. package/cjs/series/scatter/scatter.d.ts +2 -3
  325. package/cjs/series/scatter/scatter.js +19 -13
  326. package/cjs/series/scatter/scatter.js.map +1 -1
  327. package/cjs/series/word-cloud/base.d.ts +1 -0
  328. package/cjs/theme/buildin-theme/light/component/axis/symlog-axis.d.ts +2 -0
  329. package/cjs/theme/buildin-theme/light/component/axis/symlog-axis.js +22 -0
  330. package/cjs/theme/buildin-theme/light/component/axis/symlog-axis.js.map +1 -0
  331. package/cjs/theme/buildin-theme/light/component/index.js +3 -2
  332. package/cjs/theme/buildin-theme/light/component/index.js.map +1 -1
  333. package/cjs/theme/buildin-theme/light/component/total-label.d.ts +2 -0
  334. package/cjs/theme/buildin-theme/light/component/total-label.js +24 -0
  335. package/cjs/theme/buildin-theme/light/component/total-label.js.map +1 -0
  336. package/cjs/theme/buildin-theme/light/series/rose.js +0 -1
  337. package/cjs/theme/buildin-theme/light/series/rose.js.map +1 -1
  338. package/cjs/theme/buildin-theme/light/series/sankey.js +0 -1
  339. package/cjs/theme/buildin-theme/light/series/sankey.js.map +1 -1
  340. package/cjs/typings/spec/common.d.ts +10 -4
  341. package/cjs/typings/spec/common.js.map +1 -1
  342. package/cjs/typings/tooltip/label.d.ts +10 -0
  343. package/cjs/typings/tooltip/label.js +6 -0
  344. package/cjs/typings/tooltip/label.js.map +1 -0
  345. package/cjs/typings/tooltip/line.d.ts +3 -2
  346. package/cjs/typings/tooltip/line.js.map +1 -1
  347. package/cjs/typings/tooltip/shape.d.ts +2 -0
  348. package/cjs/typings/tooltip/shape.js.map +1 -1
  349. package/cjs/typings/visual.d.ts +11 -21
  350. package/cjs/typings/visual.js.map +1 -1
  351. package/cjs/util/data.d.ts +0 -8
  352. package/cjs/util/data.js +2 -9
  353. package/cjs/util/data.js.map +1 -1
  354. package/cjs/util/object.d.ts +0 -2
  355. package/cjs/util/object.js +2 -13
  356. package/cjs/util/object.js.map +1 -1
  357. package/cjs/util/scale.d.ts +2 -6
  358. package/cjs/util/scale.js +1 -6
  359. package/cjs/util/scale.js.map +1 -1
  360. package/cjs/util/space.d.ts +3 -9
  361. package/cjs/util/space.js +14 -30
  362. package/cjs/util/space.js.map +1 -1
  363. package/cjs/util/text.d.ts +1 -2
  364. package/cjs/util/text.js +1 -11
  365. package/cjs/util/text.js.map +1 -1
  366. package/cjs/vchart-all.js +1 -1
  367. package/cjs/vchart-all.js.map +1 -1
  368. package/cjs/vchart-simple.js +3 -4
  369. package/cjs/vchart-simple.js.map +1 -1
  370. package/esm/animation/spec.d.ts +1 -1
  371. package/esm/animation/spec.js.map +1 -1
  372. package/esm/chart/area/area.js +3 -4
  373. package/esm/chart/area/area.js.map +1 -1
  374. package/esm/chart/bar/bar-3d.js +2 -2
  375. package/esm/chart/bar/bar-3d.js.map +1 -1
  376. package/esm/chart/bar/bar.js +2 -2
  377. package/esm/chart/bar/bar.js.map +1 -1
  378. package/esm/chart/base-chart.d.ts +4 -2
  379. package/esm/chart/base-chart.js +36 -35
  380. package/esm/chart/base-chart.js.map +1 -1
  381. package/esm/chart/box-plot/box-plot.js +1 -1
  382. package/esm/chart/box-plot/box-plot.js.map +1 -1
  383. package/esm/chart/cartesian/cartesian.js +2 -1
  384. package/esm/chart/cartesian/cartesian.js.map +1 -1
  385. package/esm/chart/circle-packing/circle-packing.js +1 -1
  386. package/esm/chart/circle-packing/circle-packing.js.map +1 -1
  387. package/esm/chart/funnel/funnel-3d.js +1 -1
  388. package/esm/chart/funnel/funnel-3d.js.map +1 -1
  389. package/esm/chart/funnel/funnel.js +1 -1
  390. package/esm/chart/funnel/funnel.js.map +1 -1
  391. package/esm/chart/gauge/gauge.js +2 -2
  392. package/esm/chart/gauge/gauge.js.map +1 -1
  393. package/esm/chart/heatmap/heatmap.js +1 -1
  394. package/esm/chart/heatmap/heatmap.js.map +1 -1
  395. package/esm/chart/histogram/histogram-3d.js +2 -2
  396. package/esm/chart/histogram/histogram-3d.js.map +1 -1
  397. package/esm/chart/histogram/histogram.js +2 -2
  398. package/esm/chart/histogram/histogram.js.map +1 -1
  399. package/esm/chart/interface/chart.d.ts +4 -2
  400. package/esm/chart/interface/chart.js.map +1 -1
  401. package/esm/chart/line/line.js +1 -2
  402. package/esm/chart/line/line.js.map +1 -1
  403. package/esm/chart/map/map.js +2 -2
  404. package/esm/chart/map/map.js.map +1 -1
  405. package/esm/chart/pie/pie-3d.js +2 -2
  406. package/esm/chart/pie/pie-3d.js.map +1 -1
  407. package/esm/chart/pie/pie.js +2 -2
  408. package/esm/chart/pie/pie.js.map +1 -1
  409. package/esm/chart/progress/circular/circular.js +1 -1
  410. package/esm/chart/progress/circular/circular.js.map +1 -1
  411. package/esm/chart/progress/linear/linear.js +1 -1
  412. package/esm/chart/progress/linear/linear.js.map +1 -1
  413. package/esm/chart/radar/radar.js +2 -3
  414. package/esm/chart/radar/radar.js.map +1 -1
  415. package/esm/chart/range-area/range-area.js +1 -1
  416. package/esm/chart/range-area/range-area.js.map +1 -1
  417. package/esm/chart/range-column/range-column-3d.js +1 -1
  418. package/esm/chart/range-column/range-column-3d.js.map +1 -1
  419. package/esm/chart/range-column/range-column.js +1 -1
  420. package/esm/chart/range-column/range-column.js.map +1 -1
  421. package/esm/chart/rose/rose.js +2 -2
  422. package/esm/chart/rose/rose.js.map +1 -1
  423. package/esm/chart/sankey/sankey.js +1 -1
  424. package/esm/chart/sankey/sankey.js.map +1 -1
  425. package/esm/chart/scatter/scatter.js +2 -2
  426. package/esm/chart/scatter/scatter.js.map +1 -1
  427. package/esm/chart/sequence/sequence.js +4 -2
  428. package/esm/chart/sequence/sequence.js.map +1 -1
  429. package/esm/chart/stack.d.ts +1 -0
  430. package/esm/chart/stack.js +16 -2
  431. package/esm/chart/stack.js.map +1 -1
  432. package/esm/chart/sunburst/sunburst.js +1 -1
  433. package/esm/chart/sunburst/sunburst.js.map +1 -1
  434. package/esm/chart/treemap/treemap.js +1 -1
  435. package/esm/chart/treemap/treemap.js.map +1 -1
  436. package/esm/chart/util.d.ts +8 -0
  437. package/esm/chart/util.js +33 -1
  438. package/esm/chart/util.js.map +1 -1
  439. package/esm/chart/waterfall/waterfall.js +1 -1
  440. package/esm/chart/waterfall/waterfall.js.map +1 -1
  441. package/esm/chart/word-cloud/word-cloud-3d.js +1 -1
  442. package/esm/chart/word-cloud/word-cloud-3d.js.map +1 -1
  443. package/esm/chart/word-cloud/word-cloud.js +1 -1
  444. package/esm/chart/word-cloud/word-cloud.js.map +1 -1
  445. package/esm/compile/compiler.d.ts +1 -1
  446. package/esm/compile/compiler.js +5 -4
  447. package/esm/compile/compiler.js.map +1 -1
  448. package/esm/compile/mark/compilable-mark.js +9 -11
  449. package/esm/compile/mark/compilable-mark.js.map +1 -1
  450. package/esm/compile/mark/interface.d.ts +2 -1
  451. package/esm/compile/mark/interface.js.map +1 -1
  452. package/esm/compile/mark/util.d.ts +2 -1
  453. package/esm/compile/mark/util.js +19 -3
  454. package/esm/compile/mark/util.js.map +1 -1
  455. package/esm/component/axis/base-axis.d.ts +1 -12
  456. package/esm/component/axis/base-axis.js +8 -18
  457. package/esm/component/axis/base-axis.js.map +1 -1
  458. package/esm/component/axis/cartesian/axis.js +15 -6
  459. package/esm/component/axis/cartesian/axis.js.map +1 -1
  460. package/esm/component/axis/cartesian/band-axis.d.ts +1 -0
  461. package/esm/component/axis/cartesian/band-axis.js +1 -0
  462. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  463. package/esm/component/axis/cartesian/index.d.ts +1 -0
  464. package/esm/component/axis/cartesian/index.js +2 -0
  465. package/esm/component/axis/cartesian/index.js.map +1 -1
  466. package/esm/component/axis/cartesian/interface/common.d.ts +6 -1
  467. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  468. package/esm/component/axis/cartesian/interface/spec.d.ts +4 -1
  469. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  470. package/esm/component/axis/cartesian/linear-axis.js +3 -4
  471. package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
  472. package/esm/component/axis/cartesian/symlog-axis.d.ts +15 -0
  473. package/esm/component/axis/cartesian/symlog-axis.js +24 -0
  474. package/esm/component/axis/cartesian/symlog-axis.js.map +1 -0
  475. package/esm/component/axis/interface.d.ts +3 -1
  476. package/esm/component/axis/interface.js.map +1 -1
  477. package/esm/component/axis/polar/axis.d.ts +1 -0
  478. package/esm/component/axis/polar/axis.js +5 -2
  479. package/esm/component/axis/polar/axis.js.map +1 -1
  480. package/esm/component/axis/polar/band-axis.d.ts +1 -0
  481. package/esm/component/base/base-component.d.ts +3 -2
  482. package/esm/component/base/base-component.js +3 -3
  483. package/esm/component/base/base-component.js.map +1 -1
  484. package/esm/component/base/util.js +3 -0
  485. package/esm/component/base/util.js.map +1 -1
  486. package/esm/component/brush/brush.d.ts +11 -1
  487. package/esm/component/brush/brush.js +60 -51
  488. package/esm/component/brush/brush.js.map +1 -1
  489. package/esm/component/crosshair/base.d.ts +1 -0
  490. package/esm/component/crosshair/cartesian.js +1 -1
  491. package/esm/component/crosshair/cartesian.js.map +1 -1
  492. package/esm/component/crosshair/polar.js +3 -3
  493. package/esm/component/crosshair/polar.js.map +1 -1
  494. package/esm/component/custom-mark/custom-mark.d.ts +1 -0
  495. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -0
  496. package/esm/component/geo/geo-coordinate.d.ts +7 -2
  497. package/esm/component/geo/geo-coordinate.js +56 -14
  498. package/esm/component/geo/geo-coordinate.js.map +1 -1
  499. package/esm/component/index.d.ts +3 -2
  500. package/esm/component/index.js +4 -2
  501. package/esm/component/index.js.map +1 -1
  502. package/esm/component/indicator/indicator.js.map +1 -1
  503. package/esm/component/interface/theme.d.ts +2 -0
  504. package/esm/component/interface/theme.js.map +1 -1
  505. package/esm/component/interface/type.d.ts +2 -0
  506. package/esm/component/interface/type.js +13 -12
  507. package/esm/component/interface/type.js.map +1 -1
  508. package/esm/component/label/base-label.d.ts +40 -0
  509. package/esm/component/label/base-label.js +42 -0
  510. package/esm/component/label/base-label.js.map +1 -0
  511. package/esm/component/label/interface.d.ts +7 -0
  512. package/esm/component/label/interface.js.map +1 -1
  513. package/esm/component/label/label.d.ts +5 -27
  514. package/esm/component/label/label.js +34 -40
  515. package/esm/component/label/label.js.map +1 -1
  516. package/esm/component/label/pie.d.ts +5 -0
  517. package/esm/component/label/pie.js +13 -0
  518. package/esm/component/label/pie.js.map +1 -0
  519. package/esm/component/label/totalLabel.d.ts +27 -0
  520. package/esm/component/label/totalLabel.js +110 -0
  521. package/esm/component/label/totalLabel.js.map +1 -0
  522. package/esm/component/label/util.d.ts +3 -1
  523. package/esm/component/label/util.js +6 -4
  524. package/esm/component/label/util.js.map +1 -1
  525. package/esm/component/legend/base-legend.d.ts +1 -0
  526. package/esm/component/marker/base-marker.d.ts +6 -0
  527. package/esm/component/marker/base-marker.js +14 -0
  528. package/esm/component/marker/base-marker.js.map +1 -1
  529. package/esm/component/marker/interface.d.ts +1 -0
  530. package/esm/component/marker/interface.js.map +1 -1
  531. package/esm/component/marker/mark-area/mark-area.js +17 -6
  532. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  533. package/esm/component/marker/mark-line/mark-line.js +17 -6
  534. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  535. package/esm/component/marker/mark-point/mark-point.js +18 -7
  536. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  537. package/esm/component/title/title.d.ts +1 -0
  538. package/esm/component/title/title.js +2 -1
  539. package/esm/component/title/title.js.map +1 -1
  540. package/esm/component/tooltip/handler/base.js.map +1 -1
  541. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +1 -1
  542. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  543. package/esm/component/tooltip/handler/dom/interface.d.ts +9 -12
  544. package/esm/component/tooltip/handler/dom/interface.js.map +1 -1
  545. package/esm/component/tooltip/handler/dom/model/content-column-model.d.ts +4 -6
  546. package/esm/component/tooltip/handler/dom/model/content-column-model.js +16 -14
  547. package/esm/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  548. package/esm/component/tooltip/handler/dom/model/title-model.js +3 -3
  549. package/esm/component/tooltip/handler/dom/model/title-model.js.map +1 -1
  550. package/esm/component/tooltip/handler/dom/util.js +18 -11
  551. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  552. package/esm/component/tooltip/handler/utils/attribute.js +24 -24
  553. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  554. package/esm/component/tooltip/handler/utils/compose.d.ts +2 -2
  555. package/esm/component/tooltip/handler/utils/compose.js +11 -10
  556. package/esm/component/tooltip/handler/utils/compose.js.map +1 -1
  557. package/esm/component/tooltip/handler/utils/get-spec.js +3 -1
  558. package/esm/component/tooltip/handler/utils/get-spec.js.map +1 -1
  559. package/esm/component/tooltip/handler/utils/style.d.ts +1 -1
  560. package/esm/component/tooltip/handler/utils/style.js +16 -9
  561. package/esm/component/tooltip/handler/utils/style.js.map +1 -1
  562. package/esm/component/tooltip/interface/theme.d.ts +1 -0
  563. package/esm/component/tooltip/interface/theme.js.map +1 -1
  564. package/esm/component/tooltip/tooltip.d.ts +1 -1
  565. package/esm/component/tooltip/tooltip.js +10 -7
  566. package/esm/component/tooltip/tooltip.js.map +1 -1
  567. package/esm/constant/index.d.ts +3 -0
  568. package/esm/constant/index.js +6 -0
  569. package/esm/constant/index.js.map +1 -1
  570. package/esm/core/index.d.ts +1 -1
  571. package/esm/core/index.js +1 -1
  572. package/esm/core/index.js.map +1 -1
  573. package/esm/core/interface.d.ts +3 -0
  574. package/esm/core/interface.js.map +1 -1
  575. package/esm/core/vchart.d.ts +6 -1
  576. package/esm/core/vchart.js +54 -11
  577. package/esm/core/vchart.js.map +1 -1
  578. package/esm/data/initialize.js +10 -7
  579. package/esm/data/initialize.js.map +1 -1
  580. package/esm/data/transforms/dimension-statistics.d.ts +11 -5
  581. package/esm/data/transforms/dimension-statistics.js +33 -22
  582. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  583. package/esm/data/transforms/invalid-travel.js +1 -2
  584. package/esm/data/transforms/invalid-travel.js.map +1 -1
  585. package/esm/data/transforms/tick-data/continuous.js +6 -3
  586. package/esm/data/transforms/tick-data/continuous.js.map +1 -1
  587. package/esm/data/transforms/tick-data/interface.d.ts +3 -0
  588. package/esm/data/transforms/tick-data/interface.js.map +1 -1
  589. package/esm/event/event-dispatcher.js +3 -2
  590. package/esm/event/event-dispatcher.js.map +1 -1
  591. package/esm/event/events/dimension/dimension-click.d.ts +1 -3
  592. package/esm/event/events/dimension/dimension-click.js +9 -10
  593. package/esm/event/events/dimension/dimension-click.js.map +1 -1
  594. package/esm/event/events/dimension/dimension-hover.d.ts +2 -3
  595. package/esm/event/events/dimension/dimension-hover.js +25 -16
  596. package/esm/event/events/dimension/dimension-hover.js.map +1 -1
  597. package/esm/event/interface.d.ts +3 -3
  598. package/esm/event/interface.js.map +1 -1
  599. package/esm/interaction/trigger.js +4 -0
  600. package/esm/interaction/trigger.js.map +1 -1
  601. package/esm/layout/label/arc-label.js.map +1 -1
  602. package/esm/mark/base/base-mark.d.ts +1 -0
  603. package/esm/mark/base/base-mark.js +20 -3
  604. package/esm/mark/base/base-mark.js.map +1 -1
  605. package/esm/mark/symbol.js +1 -1
  606. package/esm/mark/symbol.js.map +1 -1
  607. package/esm/model/base-model.d.ts +2 -0
  608. package/esm/model/base-model.js +2 -0
  609. package/esm/model/base-model.js.map +1 -1
  610. package/esm/model/interface.d.ts +6 -1
  611. package/esm/model/interface.js.map +1 -1
  612. package/esm/model/layout-item.d.ts +4 -4
  613. package/esm/model/layout-item.js.map +1 -1
  614. package/esm/plugin/components/index.d.ts +0 -2
  615. package/esm/plugin/components/index.js +0 -3
  616. package/esm/plugin/components/index.js.map +1 -1
  617. package/esm/region/region.d.ts +1 -0
  618. package/esm/series/area/area.d.ts +6 -3
  619. package/esm/series/area/area.js +39 -10
  620. package/esm/series/area/area.js.map +1 -1
  621. package/esm/series/area/tooltip-helpter.d.ts +5 -0
  622. package/esm/series/area/tooltip-helpter.js +18 -0
  623. package/esm/series/area/tooltip-helpter.js.map +1 -0
  624. package/esm/series/bar/bar.d.ts +1 -0
  625. package/esm/series/bar/bar.js +1 -1
  626. package/esm/series/bar/bar.js.map +1 -1
  627. package/esm/series/base/base-series.d.ts +4 -0
  628. package/esm/series/base/base-series.js +62 -17
  629. package/esm/series/base/base-series.js.map +1 -1
  630. package/esm/series/base/tooltip-helper.js +4 -2
  631. package/esm/series/base/tooltip-helper.js.map +1 -1
  632. package/esm/series/box-plot/box-plot.js +1 -1
  633. package/esm/series/box-plot/box-plot.js.map +1 -1
  634. package/esm/series/cartesian/cartesian.d.ts +7 -3
  635. package/esm/series/cartesian/cartesian.js +26 -17
  636. package/esm/series/cartesian/cartesian.js.map +1 -1
  637. package/esm/series/dot/dot.d.ts +1 -0
  638. package/esm/series/dot/dot.js +3 -0
  639. package/esm/series/dot/dot.js.map +1 -1
  640. package/esm/series/funnel/funnel.d.ts +1 -0
  641. package/esm/series/geo/geo.d.ts +2 -0
  642. package/esm/series/geo/geo.js +4 -1
  643. package/esm/series/geo/geo.js.map +1 -1
  644. package/esm/series/heatmap/heatmap.d.ts +1 -0
  645. package/esm/series/interface/common.d.ts +1 -0
  646. package/esm/series/interface/common.js.map +1 -1
  647. package/esm/series/interface/series.d.ts +3 -2
  648. package/esm/series/interface/series.js.map +1 -1
  649. package/esm/series/line/interface.d.ts +0 -2
  650. package/esm/series/line/interface.js.map +1 -1
  651. package/esm/series/line/line.d.ts +1 -2
  652. package/esm/series/line/line.js +1 -1
  653. package/esm/series/line/line.js.map +1 -1
  654. package/esm/series/link/link.js +1 -1
  655. package/esm/series/link/link.js.map +1 -1
  656. package/esm/series/map/interface.d.ts +1 -0
  657. package/esm/series/map/interface.js.map +1 -1
  658. package/esm/series/map/map.d.ts +1 -2
  659. package/esm/series/map/map.js +10 -8
  660. package/esm/series/map/map.js.map +1 -1
  661. package/esm/series/mixin/line-mixin.d.ts +4 -1
  662. package/esm/series/mixin/line-mixin.js +39 -19
  663. package/esm/series/mixin/line-mixin.js.map +1 -1
  664. package/esm/series/pie/interface.d.ts +4 -7
  665. package/esm/series/pie/interface.js.map +1 -1
  666. package/esm/series/pie/pie.d.ts +2 -0
  667. package/esm/series/pie/pie.js +22 -54
  668. package/esm/series/pie/pie.js.map +1 -1
  669. package/esm/series/polar/polar.d.ts +1 -0
  670. package/esm/series/polar/polar.js +2 -1
  671. package/esm/series/polar/polar.js.map +1 -1
  672. package/esm/series/range-area/range-area.d.ts +2 -0
  673. package/esm/series/range-area/range-area.js +7 -3
  674. package/esm/series/range-area/range-area.js.map +1 -1
  675. package/esm/series/range-column/range-column.js +1 -1
  676. package/esm/series/range-column/range-column.js.map +1 -1
  677. package/esm/series/rose/interface.d.ts +3 -0
  678. package/esm/series/rose/interface.js.map +1 -1
  679. package/esm/series/rose/rose.d.ts +1 -2
  680. package/esm/series/rose/rose.js +17 -37
  681. package/esm/series/rose/rose.js.map +1 -1
  682. package/esm/series/sankey/interface.d.ts +3 -2
  683. package/esm/series/sankey/interface.js.map +1 -1
  684. package/esm/series/sankey/sankey.d.ts +2 -0
  685. package/esm/series/sankey/sankey.js +198 -80
  686. package/esm/series/sankey/sankey.js.map +1 -1
  687. package/esm/series/scatter/interface.d.ts +1 -2
  688. package/esm/series/scatter/interface.js.map +1 -1
  689. package/esm/series/scatter/scatter.d.ts +2 -3
  690. package/esm/series/scatter/scatter.js +20 -14
  691. package/esm/series/scatter/scatter.js.map +1 -1
  692. package/esm/series/word-cloud/base.d.ts +1 -0
  693. package/esm/theme/buildin-theme/light/component/axis/symlog-axis.d.ts +2 -0
  694. package/esm/theme/buildin-theme/light/component/axis/symlog-axis.js +18 -0
  695. package/esm/theme/buildin-theme/light/component/axis/symlog-axis.js.map +1 -0
  696. package/esm/theme/buildin-theme/light/component/index.js +4 -1
  697. package/esm/theme/buildin-theme/light/component/index.js.map +1 -1
  698. package/esm/theme/buildin-theme/light/component/total-label.d.ts +2 -0
  699. package/esm/theme/buildin-theme/light/component/total-label.js +20 -0
  700. package/esm/theme/buildin-theme/light/component/total-label.js.map +1 -0
  701. package/esm/theme/buildin-theme/light/series/rose.js +0 -1
  702. package/esm/theme/buildin-theme/light/series/rose.js.map +1 -1
  703. package/esm/theme/buildin-theme/light/series/sankey.js +0 -1
  704. package/esm/theme/buildin-theme/light/series/sankey.js.map +1 -1
  705. package/esm/typings/spec/common.d.ts +10 -4
  706. package/esm/typings/spec/common.js.map +1 -1
  707. package/esm/typings/tooltip/label.d.ts +10 -0
  708. package/esm/typings/tooltip/label.js +2 -0
  709. package/esm/typings/tooltip/label.js.map +1 -0
  710. package/esm/typings/tooltip/line.d.ts +3 -2
  711. package/esm/typings/tooltip/line.js.map +1 -1
  712. package/esm/typings/tooltip/shape.d.ts +2 -0
  713. package/esm/typings/tooltip/shape.js.map +1 -1
  714. package/esm/typings/visual.d.ts +11 -21
  715. package/esm/typings/visual.js.map +1 -1
  716. package/esm/util/data.d.ts +0 -8
  717. package/esm/util/data.js +1 -7
  718. package/esm/util/data.js.map +1 -1
  719. package/esm/util/object.d.ts +0 -2
  720. package/esm/util/object.js +0 -11
  721. package/esm/util/object.js.map +1 -1
  722. package/esm/util/scale.d.ts +2 -6
  723. package/esm/util/scale.js +1 -5
  724. package/esm/util/scale.js.map +1 -1
  725. package/esm/util/space.d.ts +3 -9
  726. package/esm/util/space.js +8 -26
  727. package/esm/util/space.js.map +1 -1
  728. package/esm/util/text.d.ts +1 -2
  729. package/esm/util/text.js +1 -9
  730. package/esm/util/text.js.map +1 -1
  731. package/esm/vchart-all.js +2 -2
  732. package/esm/vchart-all.js.map +1 -1
  733. package/esm/vchart-simple.js +18 -2
  734. package/esm/vchart-simple.js.map +1 -1
  735. package/package.json +21 -14
  736. package/cjs/plugin/components/axis-label-overlap-plugin.d.ts +0 -10
  737. package/cjs/plugin/components/axis-label-overlap-plugin.js +0 -75
  738. package/cjs/plugin/components/axis-label-overlap-plugin.js.map +0 -1
  739. package/esm/plugin/components/axis-label-overlap-plugin.d.ts +0 -10
  740. package/esm/plugin/components/axis-label-overlap-plugin.js +0 -72
  741. package/esm/plugin/components/axis-label-overlap-plugin.js.map +0 -1
@@ -167,11 +167,11 @@ class CompilableMark extends grammar_item_1.GrammarItem {
167
167
  compileEncode() {
168
168
  const _a = this.stateStyle, _b = interface_1.STATE_VALUE_ENUM.STATE_NORMAL, normalStyle = _a[_b], temp = __rest(_a, [ "symbol" == typeof _b ? _b : _b + "" ]), enterStyles = {}, updateStyles = {};
169
169
  Object.keys(normalStyle).forEach((key => {
170
- this._unCompileChannel[key] || ((0, util_2.isStateAttrChangeable)(key, normalStyle) ? updateStyles[key] = {
170
+ this._unCompileChannel[key] || ((0, util_2.isStateAttrChangeable)(key, normalStyle, this.getFacet()) ? updateStyles[key] = {
171
171
  callback: this.compileCommonAttributeCallback(key, "normal"),
172
172
  dependency: [ this.stateKeyToSignalName("markUpdateRank") ]
173
173
  } : enterStyles[key] = this.compileCommonAttributeCallback(key, "normal"));
174
- })), this._product.encode(updateStyles), this._product.encodeState("enter", enterStyles),
174
+ })), this._product.encode(updateStyles), this._product.encodeState(this._facet ? "group" : "enter", enterStyles),
175
175
  Object.keys(temp).forEach((state => {
176
176
  const styles = {};
177
177
  Object.keys(temp[state]).forEach((key => {
@@ -228,15 +228,14 @@ class CompilableMark extends grammar_item_1.GrammarItem {
228
228
  this.state.compile();
229
229
  }
230
230
  compileCommonAttributeCallback(key, state) {
231
- return (datum, element) => {
232
- const mark = element.mark, opt = {
233
- mark: mark,
234
- parent: mark.group,
235
- states: element.getStates(),
236
- element: element
237
- };
238
- return (0, util_2.attrTransform)(this.type, key, this.getAttribute(key, datum, state, opt));
231
+ const noAttrTransform = !(0, util_2.needAttrTransform)(this.type, key), opt = {
232
+ mark: null,
233
+ parent: null,
234
+ element: null
239
235
  };
236
+ return (datum, element) => (opt.mark = element.mark, opt.parent = element.mark.group,
237
+ opt.element = element, noAttrTransform ? this.getAttribute(key, datum, state, opt) : (0,
238
+ util_2.attrTransform)(this.type, key, this.getAttribute(key, datum, state, opt)));
240
239
  }
241
240
  compileTransform() {
242
241
  var _a;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/mark/compilable-mark.ts"],"names":[],"mappings":"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","file":"compilable-mark.js","sourcesContent":["import type {\n IElement,\n IGroupMark,\n IMark,\n IMarkConfig,\n MarkAnimationSpec,\n MarkFunctionCallback,\n MarkFunctionType,\n Nil,\n TransformSpec\n} from '@visactor/vgrammar';\n// eslint-disable-next-line no-duplicate-imports\nimport type { GrammarMarkType } from '@visactor/vgrammar';\nimport type { DataView } from '@visactor/vdataset';\nimport { GrammarItem } from '../grammar-item';\nimport type { Maybe, Datum, StringOrNumber } from '../../typings';\nimport { isNil, isValid } from '../../util';\nimport { LayoutZIndex, PREFIX, VGRAMMAR_HOOK_EVENT } from '../../constant';\nimport type { IMarkProgressiveConfig, IMarkStateStyle, MarkType } from '../../mark/interface';\nimport type { IModel } from '../../model/interface';\nimport type { ISeries } from '../../series/interface';\nimport { attrTransform, isStateAttrChangeable } from './util';\nimport { MarkStateManager } from './mark-state-manager';\nimport type {\n ICompilableMark,\n IMarkDataInitOption,\n ICompilableMarkOption,\n StateValueType,\n IMarkCompileOption,\n IAttributeOpt\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { STATE_VALUE_ENUM } from './interface';\nimport { MarkData } from './mark-data';\nimport { GrammarType } from '../interface';\nimport type { IComponent } from '../../component/interface';\nimport type { IEvent } from '../../event/interface';\nimport { Event } from '../../event/event';\n// eslint-disable-next-line no-duplicate-imports\nimport { AnimationStateEnum } from '../../animation/interface';\nimport type { ILabelSpec } from '../../component/label';\n\n/** 可编译的 mark 对象,这个基类只存放编译相关的逻辑 */\nexport abstract class CompilableMark extends GrammarItem implements ICompilableMark {\n readonly grammarType = GrammarType.mark;\n /** 类型 */\n readonly type: MarkType = undefined as unknown as MarkType;\n\n /** name */\n readonly name: string = 'mark';\n\n /** key field */\n readonly key: ICompilableMark['key'];\n\n /** 3d开关 */\n protected _support3d?: boolean;\n getSupport3d() {\n return this._support3d;\n }\n setSupport3d(support3d: boolean) {\n this._support3d = support3d;\n }\n\n /** 分片 */\n protected _facet?: string;\n getFacet() {\n return this._facet;\n }\n setFacet(facet: string) {\n this._facet = facet;\n }\n\n /** 交互开关 */\n protected _interactive: boolean = true;\n getInteractive() {\n return this._interactive;\n }\n setInteractive(interactive: boolean) {\n this._interactive = interactive;\n }\n\n /** 层级 */\n protected _zIndex: number = LayoutZIndex.Mark;\n getZIndex() {\n return this._zIndex;\n }\n setZIndex(zIndex: number) {\n this._zIndex = zIndex;\n }\n\n /** 可见性 */\n protected _visible: boolean = true;\n getVisible() {\n return this._visible;\n }\n setVisible(visible: boolean) {\n this._visible = visible;\n }\n\n /**\n * 用户设置的 id\n */\n protected _userId: StringOrNumber;\n getUserId() {\n return this._userId;\n }\n setUserId(userId: StringOrNumber) {\n if (isValid(userId)) {\n this._userId = userId;\n }\n }\n\n /** parent model */\n readonly model: IModel;\n\n /** 数据(可以没有) */\n protected _data: Maybe<MarkData>;\n getDataView(): DataView | undefined {\n return this._data?.getDataView();\n }\n setDataView(d?: DataView, productId?: string) {\n if (isNil(this._data)) {\n this.initMarkData({\n ...this._option,\n mark: this\n });\n }\n if (isValid(productId)) {\n this._data.setCompiledProductId(productId);\n }\n this._data.setDataView(d);\n }\n getData() {\n return this._data;\n }\n setData(d?: MarkData) {\n this._data = d;\n }\n\n /** 默认的stateStyle */\n stateStyle: IMarkStateStyle<any> = {};\n\n /** 状态管理器 */\n state: MarkStateManager;\n\n protected _unCompileChannel: { [key in string]: boolean } = {};\n\n hasState(state: string) {\n return state in this.state.getStateMap();\n }\n getState(state: string) {\n return this.state.getStateMap()[state];\n }\n\n protected _event: IEvent;\n\n protected _animationConfig: Partial<MarkAnimationSpec>;\n getAnimationConfig() {\n return this._animationConfig;\n }\n setAnimationConfig(config: Partial<MarkAnimationSpec>) {\n this._animationConfig = config;\n }\n\n /** 布局标记 */\n private _skipBeforeLayouted = false;\n\n setSkipBeforeLayouted(skip: boolean) {\n this._skipBeforeLayouted = skip;\n }\n getSkipBeforeLayouted(): boolean {\n return this._skipBeforeLayouted;\n }\n\n /** morph动画关联关系配置 */\n protected _morph: boolean = false;\n getMorph() {\n return this._morph;\n }\n setMorph(morph: boolean) {\n this._morph = morph;\n }\n protected _morphKey?: string;\n getMorphKey() {\n return this._morphKey;\n }\n setMorphKey(morphKey: string) {\n this._morphKey = morphKey;\n }\n protected _morphElementKey?: string;\n getMorphElementKey() {\n return this._morphElementKey;\n }\n setMorphElementKey(key: string) {\n this._morphElementKey = key;\n }\n\n protected _groupKey?: string;\n getGroupKey() {\n return this._groupKey;\n }\n setGroupKey(groupKey: string) {\n this._groupKey = groupKey;\n }\n\n protected _label?: ILabelSpec;\n getLabelSpec() {\n return this._label;\n }\n setLabelSpec(label: ILabelSpec) {\n this._label = label;\n }\n\n protected _progressiveConfig: IMarkProgressiveConfig;\n getProgressiveConfig() {\n return this._progressiveConfig;\n }\n setProgressiveConfig(config: IMarkProgressiveConfig) {\n this._progressiveConfig = config;\n }\n\n protected declare _option: ICompilableMarkOption;\n\n constructor(option: ICompilableMarkOption, name: string, model: IModel) {\n super(option);\n this.name = name;\n this.model = model;\n this.key = option.key;\n this.state = new MarkStateManager(\n {\n ...option,\n stateKeyToSignalName: this.stateKeyToSignalName.bind(this)\n },\n this\n );\n this._option.support3d && this.setSupport3d(true);\n this._event = new Event(model.getOption().eventDispatcher, model.getOption().mode);\n }\n\n protected declare _product: Maybe<IMark>;\n declare getProduct: () => Maybe<IMark>;\n\n // transform目前在形状词云中使用,但直接用的 vgrammar 接口 (this._wordMark as ICompilableMark).getProduct().transform(wordCloudTransforms);\n // 暂时没有用到这里的setTransform()\n protected _transform: TransformSpec[] | Nil;\n setTransform(transform: TransformSpec[] | Nil) {\n this._transform = transform;\n }\n\n /** 初始化 mark data */\n protected initMarkData(option: IMarkDataInitOption) {\n this._data = new MarkData(option);\n }\n\n protected stateKeyToSignalName(key: string) {\n return `${PREFIX}_${this.type}_${this.id}_${key}`;\n }\n\n getAttribute(key: any, datum: any, state: StateValueType, opt?: IAttributeOpt) {\n // do nothing\n }\n\n protected _compileProduct(option?: IMarkCompileOption) {\n const product = this.getProduct();\n // 处理 visible 为 false 的情况\n if (!this.getVisible()) {\n if (isValid(product)) {\n this.removeProduct();\n }\n return;\n } else if (isValid(product)) {\n return; // 每个mark只执行一次编译\n }\n\n const compiler = this.getCompiler();\n if (!compiler.isInited) {\n return;\n }\n this._initProduct(option?.group);\n if (isNil(this._product)) {\n return;\n }\n\n this.compileSignal();\n this.compileData();\n this.compileState();\n this.compileEncode();\n this.compileAnimation();\n this.compileContext();\n this.compileTransform();\n }\n\n /** 创建语法元素对象 */\n protected _initProduct(group?: string | IGroupMark) {\n const view = this.getVGrammarView();\n\n // 声明语法元素\n const id = this.getProductId();\n this._product = view.mark(this.type as GrammarMarkType, group ?? view.rootMark).id(id);\n this._compiledProductId = id;\n }\n\n generateProductId() {\n if (this._userId) {\n return `${this._userId}`;\n }\n return `${this.name}_${this.id}`;\n }\n\n compileData() {\n if (isNil(this._data)) {\n return;\n }\n this._data.compile();\n\n // 绑定数据\n const dataProduct = this._data.getProduct();\n if (isValid(this._product) && isValid(dataProduct)) {\n this._product.join(dataProduct, this.key, undefined, this._groupKey ?? this._facet);\n }\n }\n\n compileEncode() {\n const { [STATE_VALUE_ENUM.STATE_NORMAL]: normalStyle, ...temp } = this.stateStyle;\n\n const enterStyles: Record<string, MarkFunctionType<any>> = {};\n const updateStyles: Record<string, MarkFunctionType<any>> = {};\n Object.keys(normalStyle).forEach(key => {\n if (this._unCompileChannel[key]) {\n return;\n }\n if (isStateAttrChangeable(key, normalStyle)) {\n updateStyles[key] = {\n callback: this.compileCommonAttributeCallback(key, 'normal'),\n dependency: [this.stateKeyToSignalName('markUpdateRank')]\n };\n } else {\n enterStyles[key] = this.compileCommonAttributeCallback(key, 'normal');\n }\n });\n\n this._product.encode(updateStyles);\n this._product.encodeState('enter', enterStyles);\n\n Object.keys(temp).forEach(state => {\n const styles: Record<string, MarkFunctionType<any>> = {};\n Object.keys(temp[state]).forEach(key => {\n if (this._unCompileChannel[key]) {\n return;\n }\n styles[key] = {\n callback: this.compileCommonAttributeCallback(key, state),\n dependency: [this.stateKeyToSignalName('markUpdateRank')]\n };\n });\n this._product.encodeState(state, styles);\n });\n\n // 在布局完成前不进行encode\n if (this._skipBeforeLayouted) {\n this._product.layout({\n skipBeforeLayouted: this._skipBeforeLayouted\n });\n }\n }\n\n compileState() {\n this.state.compileState(this._product);\n }\n\n compileAnimation() {\n if (this._animationConfig) {\n let stateSignal: any;\n if (this.type === 'component') {\n // 组件有自己的动画状态\n stateSignal = (this.model as IComponent).animate?.getAnimationStateSignalName();\n } else {\n const region = (this.model as ISeries).getRegion();\n stateSignal = region.animate?.getAnimationStateSignalName();\n }\n this._product.animation(this._animationConfig);\n this._product.animationState({\n callback: (datum: Datum, element: IElement, parameters: Record<string, any>) => {\n return parameters[stateSignal]?.callback(datum, element);\n },\n dependency: stateSignal\n });\n if (this._animationConfig.normal) {\n this._event.on(VGRAMMAR_HOOK_EVENT.ANIMATION_END, ({ event }) => {\n if (event.mark === this.getProduct() && event.animationState === AnimationStateEnum.appear) {\n this.runAnimationByState(AnimationStateEnum.normal);\n }\n });\n }\n }\n }\n\n compileContext() {\n const config: IMarkConfig = {\n interactive: this.getInteractive(),\n zIndex: this.getZIndex(),\n context: {\n markId: this.id,\n modelId: this.model.id,\n markUserId: this._userId,\n modelUserId: this.model.userId\n },\n support3d: this.getSupport3d()\n };\n\n if (this._progressiveConfig) {\n config.progressiveStep = this._progressiveConfig.progressiveStep;\n config.progressiveThreshold = this._progressiveConfig.progressiveThreshold;\n config.large = this._progressiveConfig.large;\n config.largeThreshold = this._progressiveConfig.largeThreshold;\n }\n\n if (this._morph && this._morphKey) {\n config.morph = this._morph;\n config.morphKey = this._morphKey;\n config.morphElementKey = this._morphElementKey;\n }\n\n this._product.configure(config);\n }\n\n compileSignal() {\n this.state.compile();\n }\n\n // TODO: 1. opt内容待定,确实需要再来补充(之前是scale.bindScales/bindSignals,从context.params中可以获取到)\n // TODO: 2. stateSourceItem,是否根据attr区分,存在默认写死的情况,例如\"hover\"/\"normal\";\n protected compileCommonAttributeCallback(key: string, state: string): MarkFunctionCallback<any> {\n return (datum: Datum, element: IElement) => {\n const mark = element.mark;\n const opt: IAttributeOpt = { mark: mark, parent: mark.group, states: element.getStates(), element };\n return attrTransform(this.type, key, this.getAttribute(key as any, datum, state, opt));\n };\n }\n\n protected compileTransform() {\n if (this._transform?.length) {\n this.getProduct().transform(this._transform);\n }\n }\n\n protected _lookupGrammar(id: string) {\n return this.getCompiler().getVGrammarView()?.getMarkById(id);\n }\n\n updateState(newState: Record<string, unknown>, noRender?: boolean) {\n return this.state.updateState(newState, noRender);\n }\n\n updateLayoutState(noRender?: boolean, recursion?: boolean): Promise<void> {\n if (recursion && this.getMarks().length > 0) {\n this.getMarks().forEach(m => m.state.updateLayoutState(true));\n }\n return this.state.updateLayoutState(noRender);\n }\n\n updateMarkState(key: string): void {\n if (!this._product) {\n return;\n }\n const stateInfo = this.state.getStateInfo(key);\n this._product.elements.forEach(e => {\n if (this.state.checkOneState(e, e.getDatum(), stateInfo) === 'in') {\n e.addState(key);\n } else {\n e.removeState(key);\n }\n });\n }\n\n getMarks(): ICompilableMark[] {\n return [];\n }\n\n runAnimationByState(state?: string) {\n return this.getProduct()?.animate?.runAnimationByState(state);\n }\n\n stopAnimationByState(state?: string) {\n return this.getProduct()?.animate?.stopAnimationByState(state);\n }\n\n pauseAnimationByState(state?: string) {\n return this.getProduct()?.animate?.pauseAnimationByState(state);\n }\n\n resumeAnimationByState(state?: string) {\n return this.getProduct()?.animate?.resumeAnimationByState(state);\n }\n\n release() {\n super.release();\n this.state.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/compile/mark/compilable-mark.ts"],"names":[],"mappings":"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","file":"compilable-mark.js","sourcesContent":["import type {\n IElement,\n IGroupMark,\n IMark,\n IMarkConfig,\n MarkAnimationSpec,\n MarkFunctionCallback,\n MarkFunctionType,\n Nil,\n TransformSpec\n} from '@visactor/vgrammar';\n// eslint-disable-next-line no-duplicate-imports\nimport type { GrammarMarkType } from '@visactor/vgrammar';\nimport type { DataView } from '@visactor/vdataset';\nimport { GrammarItem } from '../grammar-item';\nimport type { Maybe, Datum, StringOrNumber } from '../../typings';\nimport { isNil, isValid } from '../../util';\nimport { LayoutZIndex, PREFIX, VGRAMMAR_HOOK_EVENT } from '../../constant';\nimport type { IMarkProgressiveConfig, IMarkStateStyle, MarkType } from '../../mark/interface';\nimport type { IModel } from '../../model/interface';\nimport type { ISeries } from '../../series/interface';\nimport { attrTransform, isStateAttrChangeable, needAttrTransform } from './util';\nimport { MarkStateManager } from './mark-state-manager';\nimport type {\n ICompilableMark,\n IMarkDataInitOption,\n ICompilableMarkOption,\n StateValueType,\n IMarkCompileOption,\n IAttributeOpt\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { STATE_VALUE_ENUM } from './interface';\nimport { MarkData } from './mark-data';\nimport { GrammarType } from '../interface';\nimport type { IComponent } from '../../component/interface';\nimport type { IEvent } from '../../event/interface';\nimport { Event } from '../../event/event';\n// eslint-disable-next-line no-duplicate-imports\nimport { AnimationStateEnum } from '../../animation/interface';\nimport type { ILabelSpec } from '../../component/label';\n\n/** 可编译的 mark 对象,这个基类只存放编译相关的逻辑 */\nexport abstract class CompilableMark extends GrammarItem implements ICompilableMark {\n readonly grammarType = GrammarType.mark;\n /** 类型 */\n readonly type: MarkType = undefined as unknown as MarkType;\n\n /** name */\n readonly name: string = 'mark';\n\n /** key field */\n readonly key: ICompilableMark['key'];\n\n /** 3d开关 */\n protected _support3d?: boolean;\n getSupport3d() {\n return this._support3d;\n }\n setSupport3d(support3d: boolean) {\n this._support3d = support3d;\n }\n\n /** 分片 */\n protected _facet?: string;\n getFacet() {\n return this._facet;\n }\n setFacet(facet: string) {\n this._facet = facet;\n }\n\n /** 交互开关 */\n protected _interactive: boolean = true;\n getInteractive() {\n return this._interactive;\n }\n setInteractive(interactive: boolean) {\n this._interactive = interactive;\n }\n\n /** 层级 */\n protected _zIndex: number = LayoutZIndex.Mark;\n getZIndex() {\n return this._zIndex;\n }\n setZIndex(zIndex: number) {\n this._zIndex = zIndex;\n }\n\n /** 可见性 */\n protected _visible: boolean = true;\n getVisible() {\n return this._visible;\n }\n setVisible(visible: boolean) {\n this._visible = visible;\n }\n\n /**\n * 用户设置的 id\n */\n protected _userId: StringOrNumber;\n getUserId() {\n return this._userId;\n }\n setUserId(userId: StringOrNumber) {\n if (isValid(userId)) {\n this._userId = userId;\n }\n }\n\n /** parent model */\n readonly model: IModel;\n\n /** 数据(可以没有) */\n protected _data: Maybe<MarkData>;\n getDataView(): DataView | undefined {\n return this._data?.getDataView();\n }\n setDataView(d?: DataView, productId?: string) {\n if (isNil(this._data)) {\n this.initMarkData({\n ...this._option,\n mark: this\n });\n }\n if (isValid(productId)) {\n this._data.setCompiledProductId(productId);\n }\n this._data.setDataView(d);\n }\n getData() {\n return this._data;\n }\n setData(d?: MarkData) {\n this._data = d;\n }\n\n /** 默认的stateStyle */\n stateStyle: IMarkStateStyle<any> = {};\n\n /** 状态管理器 */\n state: MarkStateManager;\n\n protected _unCompileChannel: { [key in string]: boolean } = {};\n\n hasState(state: string) {\n return state in this.state.getStateMap();\n }\n getState(state: string) {\n return this.state.getStateMap()[state];\n }\n\n protected _event: IEvent;\n\n protected _animationConfig: Partial<MarkAnimationSpec>;\n getAnimationConfig() {\n return this._animationConfig;\n }\n setAnimationConfig(config: Partial<MarkAnimationSpec>) {\n this._animationConfig = config;\n }\n\n /** 布局标记 */\n private _skipBeforeLayouted = false;\n\n setSkipBeforeLayouted(skip: boolean) {\n this._skipBeforeLayouted = skip;\n }\n getSkipBeforeLayouted(): boolean {\n return this._skipBeforeLayouted;\n }\n\n /** morph动画关联关系配置 */\n protected _morph: boolean = false;\n getMorph() {\n return this._morph;\n }\n setMorph(morph: boolean) {\n this._morph = morph;\n }\n protected _morphKey?: string;\n getMorphKey() {\n return this._morphKey;\n }\n setMorphKey(morphKey: string) {\n this._morphKey = morphKey;\n }\n protected _morphElementKey?: string;\n getMorphElementKey() {\n return this._morphElementKey;\n }\n setMorphElementKey(key: string) {\n this._morphElementKey = key;\n }\n\n protected _groupKey?: string;\n getGroupKey() {\n return this._groupKey;\n }\n setGroupKey(groupKey: string) {\n this._groupKey = groupKey;\n }\n\n protected _label?: ILabelSpec;\n getLabelSpec() {\n return this._label;\n }\n setLabelSpec(label: ILabelSpec) {\n this._label = label;\n }\n\n protected _progressiveConfig: IMarkProgressiveConfig;\n getProgressiveConfig() {\n return this._progressiveConfig;\n }\n setProgressiveConfig(config: IMarkProgressiveConfig) {\n this._progressiveConfig = config;\n }\n\n protected declare _option: ICompilableMarkOption;\n\n constructor(option: ICompilableMarkOption, name: string, model: IModel) {\n super(option);\n this.name = name;\n this.model = model;\n this.key = option.key;\n this.state = new MarkStateManager(\n {\n ...option,\n stateKeyToSignalName: this.stateKeyToSignalName.bind(this)\n },\n this\n );\n this._option.support3d && this.setSupport3d(true);\n this._event = new Event(model.getOption().eventDispatcher, model.getOption().mode);\n }\n\n protected declare _product: Maybe<IMark>;\n declare getProduct: () => Maybe<IMark>;\n\n // transform目前在形状词云中使用,但直接用的 vgrammar 接口 (this._wordMark as ICompilableMark).getProduct().transform(wordCloudTransforms);\n // 暂时没有用到这里的setTransform()\n protected _transform: TransformSpec[] | Nil;\n setTransform(transform: TransformSpec[] | Nil) {\n this._transform = transform;\n }\n\n /** 初始化 mark data */\n protected initMarkData(option: IMarkDataInitOption) {\n this._data = new MarkData(option);\n }\n\n protected stateKeyToSignalName(key: string) {\n return `${PREFIX}_${this.type}_${this.id}_${key}`;\n }\n\n getAttribute(key: any, datum: any, state: StateValueType, opt?: IAttributeOpt) {\n // do nothing\n }\n\n protected _compileProduct(option?: IMarkCompileOption) {\n const product = this.getProduct();\n // 处理 visible 为 false 的情况\n if (!this.getVisible()) {\n if (isValid(product)) {\n this.removeProduct();\n }\n return;\n } else if (isValid(product)) {\n return; // 每个mark只执行一次编译\n }\n\n const compiler = this.getCompiler();\n if (!compiler.isInited) {\n return;\n }\n this._initProduct(option?.group);\n if (isNil(this._product)) {\n return;\n }\n\n this.compileSignal();\n this.compileData();\n this.compileState();\n this.compileEncode();\n this.compileAnimation();\n this.compileContext();\n this.compileTransform();\n }\n\n /** 创建语法元素对象 */\n protected _initProduct(group?: string | IGroupMark) {\n const view = this.getVGrammarView();\n\n // 声明语法元素\n const id = this.getProductId();\n this._product = view.mark(this.type as GrammarMarkType, group ?? view.rootMark).id(id);\n this._compiledProductId = id;\n }\n\n generateProductId() {\n if (this._userId) {\n return `${this._userId}`;\n }\n return `${this.name}_${this.id}`;\n }\n\n compileData() {\n if (isNil(this._data)) {\n return;\n }\n this._data.compile();\n\n // 绑定数据\n const dataProduct = this._data.getProduct();\n if (isValid(this._product) && isValid(dataProduct)) {\n this._product.join(dataProduct, this.key, undefined, this._groupKey ?? this._facet);\n }\n }\n\n compileEncode() {\n const { [STATE_VALUE_ENUM.STATE_NORMAL]: normalStyle, ...temp } = this.stateStyle;\n\n const enterStyles: Record<string, MarkFunctionType<any>> = {};\n const updateStyles: Record<string, MarkFunctionType<any>> = {};\n Object.keys(normalStyle).forEach(key => {\n if (this._unCompileChannel[key]) {\n return;\n }\n if (isStateAttrChangeable(key, normalStyle, this.getFacet())) {\n updateStyles[key] = {\n callback: this.compileCommonAttributeCallback(key, 'normal'),\n dependency: [this.stateKeyToSignalName('markUpdateRank')]\n };\n } else {\n enterStyles[key] = this.compileCommonAttributeCallback(key, 'normal');\n }\n });\n this._product.encode(updateStyles);\n this._product.encodeState(this._facet ? 'group' : 'enter', enterStyles);\n\n Object.keys(temp).forEach(state => {\n const styles: Record<string, MarkFunctionType<any>> = {};\n Object.keys(temp[state]).forEach(key => {\n if (this._unCompileChannel[key]) {\n return;\n }\n styles[key] = {\n callback: this.compileCommonAttributeCallback(key, state),\n dependency: [this.stateKeyToSignalName('markUpdateRank')]\n };\n });\n this._product.encodeState(state, styles);\n });\n\n // 在布局完成前不进行encode\n if (this._skipBeforeLayouted) {\n this._product.layout({\n skipBeforeLayouted: this._skipBeforeLayouted\n });\n }\n }\n\n compileState() {\n this.state.compileState(this._product);\n }\n\n compileAnimation() {\n if (this._animationConfig) {\n let stateSignal: any;\n if (this.type === 'component') {\n // 组件有自己的动画状态\n stateSignal = (this.model as IComponent).animate?.getAnimationStateSignalName();\n } else {\n const region = (this.model as ISeries).getRegion();\n stateSignal = region.animate?.getAnimationStateSignalName();\n }\n this._product.animation(this._animationConfig);\n this._product.animationState({\n callback: (datum: Datum, element: IElement, parameters: Record<string, any>) => {\n return parameters[stateSignal]?.callback(datum, element);\n },\n dependency: stateSignal\n });\n if (this._animationConfig.normal) {\n this._event.on(VGRAMMAR_HOOK_EVENT.ANIMATION_END, ({ event }) => {\n if (event.mark === this.getProduct() && event.animationState === AnimationStateEnum.appear) {\n this.runAnimationByState(AnimationStateEnum.normal);\n }\n });\n }\n }\n }\n\n compileContext() {\n const config: IMarkConfig = {\n interactive: this.getInteractive(),\n zIndex: this.getZIndex(),\n context: {\n markId: this.id,\n modelId: this.model.id,\n markUserId: this._userId,\n modelUserId: this.model.userId\n },\n support3d: this.getSupport3d()\n };\n\n if (this._progressiveConfig) {\n config.progressiveStep = this._progressiveConfig.progressiveStep;\n config.progressiveThreshold = this._progressiveConfig.progressiveThreshold;\n config.large = this._progressiveConfig.large;\n config.largeThreshold = this._progressiveConfig.largeThreshold;\n }\n\n if (this._morph && this._morphKey) {\n config.morph = this._morph;\n config.morphKey = this._morphKey;\n config.morphElementKey = this._morphElementKey;\n }\n\n this._product.configure(config);\n }\n\n compileSignal() {\n this.state.compile();\n }\n\n // TODO: 1. opt内容待定,确实需要再来补充(之前是scale.bindScales/bindSignals,从context.params中可以获取到)\n // TODO: 2. stateSourceItem,是否根据attr区分,存在默认写死的情况,例如\"hover\"/\"normal\";\n protected compileCommonAttributeCallback(key: string, state: string): MarkFunctionCallback<any> {\n // check need transform attribute\n const noAttrTransform = !needAttrTransform(this.type, key);\n // remove state in opt\n const opt: IAttributeOpt = { mark: null, parent: null, element: null };\n return (datum: Datum, element: IElement) => {\n opt.mark = element.mark;\n opt.parent = element.mark.group;\n opt.element = element;\n if (noAttrTransform) {\n return this.getAttribute(key as any, datum, state, opt);\n }\n return attrTransform(this.type, key, this.getAttribute(key as any, datum, state, opt));\n };\n }\n\n protected compileTransform() {\n if (this._transform?.length) {\n this.getProduct().transform(this._transform);\n }\n }\n\n protected _lookupGrammar(id: string) {\n return this.getCompiler().getVGrammarView()?.getMarkById(id);\n }\n\n updateState(newState: Record<string, unknown>, noRender?: boolean) {\n return this.state.updateState(newState, noRender);\n }\n\n updateLayoutState(noRender?: boolean, recursion?: boolean): Promise<void> {\n if (recursion && this.getMarks().length > 0) {\n this.getMarks().forEach(m => m.state.updateLayoutState(true));\n }\n return this.state.updateLayoutState(noRender);\n }\n\n updateMarkState(key: string): void {\n if (!this._product) {\n return;\n }\n const stateInfo = this.state.getStateInfo(key);\n this._product.elements.forEach(e => {\n if (this.state.checkOneState(e, e.getDatum(), stateInfo) === 'in') {\n e.addState(key);\n } else {\n e.removeState(key);\n }\n });\n }\n\n getMarks(): ICompilableMark[] {\n return [];\n }\n\n runAnimationByState(state?: string) {\n return this.getProduct()?.animate?.runAnimationByState(state);\n }\n\n stopAnimationByState(state?: string) {\n return this.getProduct()?.animate?.stopAnimationByState(state);\n }\n\n pauseAnimationByState(state?: string) {\n return this.getProduct()?.animate?.pauseAnimationByState(state);\n }\n\n resumeAnimationByState(state?: string) {\n return this.getProduct()?.animate?.resumeAnimationByState(state);\n }\n\n release() {\n super.release();\n this.state.release();\n }\n}\n"]}
@@ -8,6 +8,7 @@ import type { IAnimate, IAnimateArranger, IElement, IGroupMark, IMark, MarkAnima
8
8
  import type { Maybe, Datum, StringOrNumber } from '../../typings';
9
9
  import type { MarkData } from './mark-data';
10
10
  import type { ILabelSpec } from '../../component/label';
11
+ import type { IRegion } from '../../region/interface';
11
12
  export interface ICompilableMarkOption extends GrammarItemInitOption {
12
13
  key?: string | ((datum: Datum) => string);
13
14
  groupKey?: string;
@@ -138,7 +139,6 @@ export interface IAttributeOpt {
138
139
  element: IElement;
139
140
  mark: IElement['mark'];
140
141
  parent: IElement['mark']['group'];
141
- states: string[];
142
142
  }
143
143
  export interface IModelMarkAttributeContext {
144
144
  [key: string]: unknown;
@@ -146,4 +146,5 @@ export interface IModelMarkAttributeContext {
146
146
  export interface ISeriesMarkAttributeContext extends IModelMarkAttributeContext {
147
147
  globalScale: (scaleKey: string, value: string | number) => unknown;
148
148
  seriesColor: (seriesValue?: string | number) => string;
149
+ getRegion: () => IRegion;
149
150
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/mark/interface.ts"],"names":[],"mappings":";;;AAuMA,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IAC1B,2CAAuB,CAAA;IAEvB,yCAAqB,CAAA;IACrB,yDAAqC,CAAA;IAErC,6DAAyC,CAAA;IACzC,6EAAyD,CAAA;IAEzD,+CAA2B,CAAA;IAC3B,+DAA2C,CAAA;AAC7C,CAAC,EAXW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAW3B;AAGD,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,iEAAqC,CAAA;IACrC,qFAAyD,CAAA;IACzD,uEAA2C,CAAA;AAC7C,CAAC,EAJW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAInC;AAcD,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,iDAAU,CAAA;IACV,yEAAsB,CAAA;IACtB,2EAAuB,CAAA;IACvB,qDAAY,CAAA;IACZ,mEAAmB,CAAA;IACnB,qEAAoB,CAAA;IACpB,+CAAS,CAAA;AACX,CAAC,EARW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAQtB","file":"interface.js","sourcesContent":["import type { IMarkProgressiveConfig, IMarkStateStyle, MarkType } from '../../mark/interface';\nimport type { IModel } from '../../model/interface';\nimport type { GrammarItemCompileOption, GrammarItemInitOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IGrammarItem } from '../interface';\nimport type { MarkStateManager } from './mark-state-manager';\nimport type { DataView } from '@visactor/vdataset';\nimport type {\n IAnimate,\n IAnimateArranger,\n IElement,\n IGroupMark,\n IMark,\n MarkAnimationSpec,\n Nil,\n TransformSpec\n} from '@visactor/vgrammar';\nimport type { Maybe, Datum, StringOrNumber } from '../../typings';\nimport type { MarkData } from './mark-data';\nimport type { ILabelSpec } from '../../component/label';\n\nexport interface ICompilableMarkOption extends GrammarItemInitOption {\n key?: string | ((datum: Datum) => string);\n /** 分组字段,更多用于 morphing 动画的 element 匹配 */\n groupKey?: string;\n /** 是否在dataflow的过程中,布局前跳过该mark */\n skipBeforeLayouted?: boolean;\n\n /** 这个mark是否支持3d视角 */\n support3d?: boolean;\n /* VGrammar的组件是否支持3d */\n mode?: '2d' | '3d';\n}\n\nexport interface ICompilableMark extends IGrammarItem {\n // 类型\n readonly type: MarkType;\n // id\n readonly id: number;\n // name\n readonly name: string;\n // key field\n readonly key?: string | ((datum: Datum) => string);\n // parent model\n readonly model: IModel;\n\n // 数据 可以没有\n getData: () => MarkData | undefined;\n setData: (d: MarkData) => void;\n getDataView: () => DataView | undefined;\n setDataView: (d?: DataView, productId?: string) => void;\n\n // 分片\n getFacet: () => string | undefined;\n setFacet: (facet: string) => void;\n\n // 标签\n getLabelSpec: () => ILabelSpec;\n setLabelSpec: (label: ILabelSpec) => void;\n\n // 状态\n state: MarkStateManager;\n readonly stateStyle: IMarkStateStyle<any>;\n hasState: (state: string) => boolean;\n getState: (state: string) => any;\n updateState: (newState: Record<string, unknown>) => Promise<void>;\n /** 更新encode中的样式 */\n updateLayoutState: (noRender?: boolean, recursion?: boolean) => Promise<void>;\n /** 更新某一个状态 */\n updateMarkState: (key: string) => void;\n\n // transform\n setTransform: (transform: TransformSpec[] | Nil) => void;\n\n // 交互\n getInteractive: () => boolean;\n setInteractive: (interactive: boolean) => void;\n\n // 动画配置\n setAnimationConfig: (config: Partial<MarkAnimationSpec>) => void;\n getAnimationConfig: () => Partial<MarkAnimationSpec>;\n\n // 层级\n getZIndex: () => number;\n setZIndex: (zIndex: number) => void;\n\n // 是否显示\n getVisible: () => boolean;\n setVisible: (visible: boolean) => void;\n\n // 是否开启 morph\n getMorph: () => boolean;\n setMorph: (morph: boolean) => void;\n\n // 是否开启 morph\n getProgressiveConfig: () => IMarkProgressiveConfig;\n setProgressiveConfig: (config: IMarkProgressiveConfig) => void;\n\n // morphKey 配置\n getMorphKey: () => string | undefined;\n setMorphKey: (morphKey: string) => void;\n\n getMorphElementKey: () => string | undefined;\n setMorphElementKey: (morphKey: string) => void;\n\n // groupKey 配置\n getGroupKey: () => string | undefined;\n setGroupKey: (groupKey: string) => void;\n\n // 用户 id\n getUserId: () => StringOrNumber | undefined;\n setUserId: (id: StringOrNumber) => void;\n\n compile: (option?: IMarkCompileOption) => void;\n\n getProduct: () => Maybe<IMark>;\n\n /** 获取子mark */\n getMarks: () => ICompilableMark[];\n\n /** 是否跳过布局阶段 */\n setSkipBeforeLayouted: (skip: boolean) => void;\n getSkipBeforeLayouted: () => boolean;\n\n /** 开始状态动画 */\n runAnimationByState: (animationState?: string) => IAnimateArranger;\n /** 停止状态动画*/\n stopAnimationByState: (animationState?: string) => IAnimate;\n /** 暂停状态动画*/\n pauseAnimationByState: (animationState: string) => IAnimate;\n /** 恢复状态动画*/\n resumeAnimationByState: (animationState: string) => IAnimate;\n}\n\nexport interface IMarkDataInitOption extends ICompilableMarkOption {\n mark: ICompilableMark;\n}\n\nexport interface IMarkCompileOption extends GrammarItemCompileOption {\n group?: string | IGroupMark;\n ignoreChildren?: boolean;\n}\n\nexport interface IStateInfo {\n /** 状态值 */\n stateValue: StateValue;\n // 对应的数据维度 可以是多维度\n // TODO: fields 是否保留\n fields?: any | null | undefined;\n /** 筛选数据 */\n datums?: any[] | null | undefined;\n /** 筛选数据 */\n datumKeys?: string[] | null | undefined;\n /** 筛选 item */\n items?: any[] | null | undefined;\n /** 筛选函数 */\n filter?: ((datum: any, options: Record<string, any>) => boolean) | null | undefined;\n cache?: {\n [key: string]: {\n [key: string]: boolean;\n };\n };\n /** 状态优先级 */\n level?: number | undefined;\n}\n// TODO:目前看这个类型没有必要,确认后彻底删除\nexport interface IStateSpec {\n /** 状态值 */\n stateValue: StateValue;\n /** 筛选数据 */\n datums?: any[] | null | undefined;\n /** 筛选数据对应字段 */\n datumKeys?: string[] | null | undefined;\n /** TODO: 暂时不提供 filter 函数形式 */\n // filter?:\n // | ((datum: any, options: Record<string, any>) => boolean)\n // | null\n // | undefined;\n /** 状态优先级 */\n level?: number | undefined;\n}\n\nexport interface IMarkState {\n readonly id: number;\n // 状态\n getStates: () => IStateInfo[];\n\n // state 相关\n getState: (stateValue: StateValue) => IStateInfo | undefined;\n addState: (stateInfo: IStateInfo) => void;\n changeState: (stateInfo: Partial<IStateInfo>, update?: boolean) => void;\n checkState: (item: any, datum: any) => string[];\n\n clearState: (stateValues: StateValue[], update?: boolean) => void;\n\n // 更新\n update: () => void;\n}\n\nexport enum STATE_VALUE_ENUM {\n STATE_NORMAL = 'normal',\n\n STATE_HOVER = 'hover',\n STATE_HOVER_REVERSE = 'hover_reverse',\n\n STATE_DIMENSION_HOVER = 'dimension_hover',\n STATE_DIMENSION_HOVER_REVERSE = 'dimension_hover_reverse',\n\n STATE_SELECTED = 'selected',\n STATE_SELECTED_REVERSE = 'selected_reverse'\n}\n\n// TODO: 也许有更好的ts写法\nexport enum STATE_VALUE_ENUM_REVERSE {\n STATE_HOVER_REVERSE = 'hover_reverse',\n STATE_DIMENSION_HOVER_REVERSE = 'dimension_hover_reverse',\n STATE_SELECTED_REVERSE = 'selected_reverse'\n}\n\nexport type STATE_NORMAL = typeof STATE_VALUE_ENUM.STATE_NORMAL;\nexport type STATE_HOVER = typeof STATE_VALUE_ENUM.STATE_HOVER;\nexport type STATE_HOVER_REVERSE = typeof STATE_VALUE_ENUM.STATE_HOVER_REVERSE;\nexport type STATE_CUSTOM = string;\n\n// TODO: 待补充\n\nexport type StateValueNot = STATE_HOVER_REVERSE | STATE_CUSTOM;\nexport type StateValue = STATE_NORMAL | STATE_HOVER | STATE_CUSTOM;\nexport type StateValueType = StateValue | StateValueNot;\n\n// TODO: 迁移内容\nexport enum STATE_LEVEL {\n NORMAL = 0,\n DIMENSION_SELECTED = 1,\n RELATIONAL_SELECTED = 2,\n SELECTED = 3,\n DIMENSION_HOVER = 4,\n RELATIONAL_HOVER = 5,\n HOVER = 6\n}\n\nexport interface IAttributeOpt {\n element: IElement;\n mark: IElement['mark'];\n parent: IElement['mark']['group'];\n states: string[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelMarkAttributeContext {\n [key: string]: unknown;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ISeriesMarkAttributeContext extends IModelMarkAttributeContext {\n // 通用的默认属性值获取,比如color,如果有散点图有sizeScale,则可以获取 size\n globalScale: (scaleKey: string, value: string | number) => unknown;\n // 传入seriesField值,获取对应的颜色。\n // 如果传入 null ,返回的是当前系列对应的第一个颜色值。\n seriesColor: (seriesValue?: string | number) => string;\n}\n"]}
1
+ {"version":3,"sources":["../src/compile/mark/interface.ts"],"names":[],"mappings":";;;AAwMA,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IAC1B,2CAAuB,CAAA;IAEvB,yCAAqB,CAAA;IACrB,yDAAqC,CAAA;IAErC,6DAAyC,CAAA;IACzC,6EAAyD,CAAA;IAEzD,+CAA2B,CAAA;IAC3B,+DAA2C,CAAA;AAC7C,CAAC,EAXW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAW3B;AAGD,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,iEAAqC,CAAA;IACrC,qFAAyD,CAAA;IACzD,uEAA2C,CAAA;AAC7C,CAAC,EAJW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAInC;AAcD,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,iDAAU,CAAA;IACV,yEAAsB,CAAA;IACtB,2EAAuB,CAAA;IACvB,qDAAY,CAAA;IACZ,mEAAmB,CAAA;IACnB,qEAAoB,CAAA;IACpB,+CAAS,CAAA;AACX,CAAC,EARW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAQtB","file":"interface.js","sourcesContent":["import type { IMarkProgressiveConfig, IMarkStateStyle, MarkType } from '../../mark/interface';\nimport type { IModel } from '../../model/interface';\nimport type { GrammarItemCompileOption, GrammarItemInitOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IGrammarItem } from '../interface';\nimport type { MarkStateManager } from './mark-state-manager';\nimport type { DataView } from '@visactor/vdataset';\nimport type {\n IAnimate,\n IAnimateArranger,\n IElement,\n IGroupMark,\n IMark,\n MarkAnimationSpec,\n Nil,\n TransformSpec\n} from '@visactor/vgrammar';\nimport type { Maybe, Datum, StringOrNumber } from '../../typings';\nimport type { MarkData } from './mark-data';\nimport type { ILabelSpec } from '../../component/label';\nimport type { IRegion } from '../../region/interface';\n\nexport interface ICompilableMarkOption extends GrammarItemInitOption {\n key?: string | ((datum: Datum) => string);\n /** 分组字段,更多用于 morphing 动画的 element 匹配 */\n groupKey?: string;\n /** 是否在dataflow的过程中,布局前跳过该mark */\n skipBeforeLayouted?: boolean;\n\n /** 这个mark是否支持3d视角 */\n support3d?: boolean;\n /* VGrammar的组件是否支持3d */\n mode?: '2d' | '3d';\n}\n\nexport interface ICompilableMark extends IGrammarItem {\n // 类型\n readonly type: MarkType;\n // id\n readonly id: number;\n // name\n readonly name: string;\n // key field\n readonly key?: string | ((datum: Datum) => string);\n // parent model\n readonly model: IModel;\n\n // 数据 可以没有\n getData: () => MarkData | undefined;\n setData: (d: MarkData) => void;\n getDataView: () => DataView | undefined;\n setDataView: (d?: DataView, productId?: string) => void;\n\n // 分片\n getFacet: () => string | undefined;\n setFacet: (facet: string) => void;\n\n // 标签\n getLabelSpec: () => ILabelSpec;\n setLabelSpec: (label: ILabelSpec) => void;\n\n // 状态\n state: MarkStateManager;\n readonly stateStyle: IMarkStateStyle<any>;\n hasState: (state: string) => boolean;\n getState: (state: string) => any;\n updateState: (newState: Record<string, unknown>) => Promise<void>;\n /** 更新encode中的样式 */\n updateLayoutState: (noRender?: boolean, recursion?: boolean) => Promise<void>;\n /** 更新某一个状态 */\n updateMarkState: (key: string) => void;\n\n // transform\n setTransform: (transform: TransformSpec[] | Nil) => void;\n\n // 交互\n getInteractive: () => boolean;\n setInteractive: (interactive: boolean) => void;\n\n // 动画配置\n setAnimationConfig: (config: Partial<MarkAnimationSpec>) => void;\n getAnimationConfig: () => Partial<MarkAnimationSpec>;\n\n // 层级\n getZIndex: () => number;\n setZIndex: (zIndex: number) => void;\n\n // 是否显示\n getVisible: () => boolean;\n setVisible: (visible: boolean) => void;\n\n // 是否开启 morph\n getMorph: () => boolean;\n setMorph: (morph: boolean) => void;\n\n // 是否开启 morph\n getProgressiveConfig: () => IMarkProgressiveConfig;\n setProgressiveConfig: (config: IMarkProgressiveConfig) => void;\n\n // morphKey 配置\n getMorphKey: () => string | undefined;\n setMorphKey: (morphKey: string) => void;\n\n getMorphElementKey: () => string | undefined;\n setMorphElementKey: (morphKey: string) => void;\n\n // groupKey 配置\n getGroupKey: () => string | undefined;\n setGroupKey: (groupKey: string) => void;\n\n // 用户 id\n getUserId: () => StringOrNumber | undefined;\n setUserId: (id: StringOrNumber) => void;\n\n compile: (option?: IMarkCompileOption) => void;\n\n getProduct: () => Maybe<IMark>;\n\n /** 获取子mark */\n getMarks: () => ICompilableMark[];\n\n /** 是否跳过布局阶段 */\n setSkipBeforeLayouted: (skip: boolean) => void;\n getSkipBeforeLayouted: () => boolean;\n\n /** 开始状态动画 */\n runAnimationByState: (animationState?: string) => IAnimateArranger;\n /** 停止状态动画*/\n stopAnimationByState: (animationState?: string) => IAnimate;\n /** 暂停状态动画*/\n pauseAnimationByState: (animationState: string) => IAnimate;\n /** 恢复状态动画*/\n resumeAnimationByState: (animationState: string) => IAnimate;\n}\n\nexport interface IMarkDataInitOption extends ICompilableMarkOption {\n mark: ICompilableMark;\n}\n\nexport interface IMarkCompileOption extends GrammarItemCompileOption {\n group?: string | IGroupMark;\n ignoreChildren?: boolean;\n}\n\nexport interface IStateInfo {\n /** 状态值 */\n stateValue: StateValue;\n // 对应的数据维度 可以是多维度\n // TODO: fields 是否保留\n fields?: any | null | undefined;\n /** 筛选数据 */\n datums?: any[] | null | undefined;\n /** 筛选数据 */\n datumKeys?: string[] | null | undefined;\n /** 筛选 item */\n items?: any[] | null | undefined;\n /** 筛选函数 */\n filter?: ((datum: any, options: Record<string, any>) => boolean) | null | undefined;\n cache?: {\n [key: string]: {\n [key: string]: boolean;\n };\n };\n /** 状态优先级 */\n level?: number | undefined;\n}\n// TODO:目前看这个类型没有必要,确认后彻底删除\nexport interface IStateSpec {\n /** 状态值 */\n stateValue: StateValue;\n /** 筛选数据 */\n datums?: any[] | null | undefined;\n /** 筛选数据对应字段 */\n datumKeys?: string[] | null | undefined;\n /** TODO: 暂时不提供 filter 函数形式 */\n // filter?:\n // | ((datum: any, options: Record<string, any>) => boolean)\n // | null\n // | undefined;\n /** 状态优先级 */\n level?: number | undefined;\n}\n\nexport interface IMarkState {\n readonly id: number;\n // 状态\n getStates: () => IStateInfo[];\n\n // state 相关\n getState: (stateValue: StateValue) => IStateInfo | undefined;\n addState: (stateInfo: IStateInfo) => void;\n changeState: (stateInfo: Partial<IStateInfo>, update?: boolean) => void;\n checkState: (item: any, datum: any) => string[];\n\n clearState: (stateValues: StateValue[], update?: boolean) => void;\n\n // 更新\n update: () => void;\n}\n\nexport enum STATE_VALUE_ENUM {\n STATE_NORMAL = 'normal',\n\n STATE_HOVER = 'hover',\n STATE_HOVER_REVERSE = 'hover_reverse',\n\n STATE_DIMENSION_HOVER = 'dimension_hover',\n STATE_DIMENSION_HOVER_REVERSE = 'dimension_hover_reverse',\n\n STATE_SELECTED = 'selected',\n STATE_SELECTED_REVERSE = 'selected_reverse'\n}\n\n// TODO: 也许有更好的ts写法\nexport enum STATE_VALUE_ENUM_REVERSE {\n STATE_HOVER_REVERSE = 'hover_reverse',\n STATE_DIMENSION_HOVER_REVERSE = 'dimension_hover_reverse',\n STATE_SELECTED_REVERSE = 'selected_reverse'\n}\n\nexport type STATE_NORMAL = typeof STATE_VALUE_ENUM.STATE_NORMAL;\nexport type STATE_HOVER = typeof STATE_VALUE_ENUM.STATE_HOVER;\nexport type STATE_HOVER_REVERSE = typeof STATE_VALUE_ENUM.STATE_HOVER_REVERSE;\nexport type STATE_CUSTOM = string;\n\n// TODO: 待补充\n\nexport type StateValueNot = STATE_HOVER_REVERSE | STATE_CUSTOM;\nexport type StateValue = STATE_NORMAL | STATE_HOVER | STATE_CUSTOM;\nexport type StateValueType = StateValue | StateValueNot;\n\n// TODO: 迁移内容\nexport enum STATE_LEVEL {\n NORMAL = 0,\n DIMENSION_SELECTED = 1,\n RELATIONAL_SELECTED = 2,\n SELECTED = 3,\n DIMENSION_HOVER = 4,\n RELATIONAL_HOVER = 5,\n HOVER = 6\n}\n\nexport interface IAttributeOpt {\n element: IElement;\n mark: IElement['mark'];\n parent: IElement['mark']['group'];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelMarkAttributeContext {\n [key: string]: unknown;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ISeriesMarkAttributeContext extends IModelMarkAttributeContext {\n // 通用的默认属性值获取,比如color,如果有散点图有sizeScale,则可以获取 size\n globalScale: (scaleKey: string, value: string | number) => unknown;\n // 传入seriesField值,获取对应的颜色。\n // 如果传入 null ,返回的是当前系列对应的第一个颜色值。\n seriesColor: (seriesValue?: string | number) => string;\n /**\n * 获取当前的 region\n * @returns\n */\n getRegion: () => IRegion;\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import type { IAttrs, IMarkStateStyle, MarkType } from '../../mark/interface';
2
2
  export declare function isAttrChangeable<T>(key: string, stateStyle: IMarkStateStyle<T>): boolean;
3
- export declare function isStateAttrChangeable<T>(key: string, stateStyle: Partial<IAttrs<T>>): boolean;
3
+ export declare function isStateAttrChangeable<T>(key: string, stateStyle: Partial<IAttrs<T>>, facetField: string): boolean;
4
+ export declare function needAttrTransform(type: MarkType, attr: string): boolean;
4
5
  export declare function attrTransform(type: MarkType, attr: string, value: any): any;
5
6
  export declare function stateInDefaultEnum(state: string): boolean;
6
7
  export declare function stateToReverse(state: string): any;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.stateToReverse = exports.stateInDefaultEnum = exports.attrTransform = exports.isStateAttrChangeable = exports.isAttrChangeable = void 0;
5
+ }), exports.stateToReverse = exports.stateInDefaultEnum = exports.attrTransform = exports.needAttrTransform = exports.isStateAttrChangeable = exports.isAttrChangeable = void 0;
6
6
 
7
7
  const vutils_1 = require("@visactor/vutils"), interface_1 = require("./interface");
8
8
 
@@ -19,12 +19,12 @@ function isAttrChangeable(key, stateStyle) {
19
19
  return !1;
20
20
  }
21
21
 
22
- function isStateAttrChangeable(key, stateStyle) {
22
+ function isStateAttrChangeable(key, stateStyle, facetField) {
23
23
  var _a;
24
24
  const style = null === (_a = stateStyle[key]) || void 0 === _a ? void 0 : _a.style;
25
25
  if (isGradientAttribute(key, style)) return !0;
26
26
  if ((0, vutils_1.isFunction)(style)) return !0;
27
- return !!(null == style ? void 0 : style.scale);
27
+ return !(!(null == style ? void 0 : style.scale) || style.field === facetField);
28
28
  }
29
29
 
30
30
  function isGradientAttribute(key, style) {
@@ -33,7 +33,14 @@ function isGradientAttribute(key, style) {
33
33
 
34
34
  function symbolAttrTransform(attr, value) {
35
35
  var _a;
36
- return "shape" === attr && null !== (_a = chartShapes[value]) && void 0 !== _a ? _a : value;
36
+ switch (attr) {
37
+ case "shape":
38
+ case "symbolType":
39
+ return null !== (_a = chartShapes[value]) && void 0 !== _a ? _a : value;
40
+
41
+ default:
42
+ return value;
43
+ }
37
44
  }
38
45
 
39
46
  exports.isAttrChangeable = isAttrChangeable, exports.isStateAttrChangeable = isStateAttrChangeable;
@@ -45,13 +52,22 @@ const chartShapes = {
45
52
  rectRound: "M 0.3 -0.5 C 0.41 -0.5 0.5 -0.41 0.5 -0.3 C 0.5 -0.3 0.5 0.3 0.5 0.3 C 0.5 0.41 0.41 0.5 0.3 0.5 C 0.3 0.5 -0.3 0.5 -0.3 0.5 C -0.41 0.5 -0.5 0.41 -0.5 0.3 C -0.5 0.3 -0.5 -0.3 -0.5 -0.3 C -0.5 -0.41 -0.41 -0.5 -0.3 -0.5 C -0.3 -0.5 0.3 -0.5 0.3 -0.5 Z"
46
53
  }, transforms = {
47
54
  symbol: symbolAttrTransform
55
+ }, transformsCheck = {
56
+ symbol: {
57
+ shape: !0,
58
+ symbolType: !0
59
+ }
48
60
  };
49
61
 
62
+ function needAttrTransform(type, attr) {
63
+ return !!transformsCheck[type] && !!transformsCheck[type][attr];
64
+ }
65
+
50
66
  function attrTransform(type, attr, value) {
51
67
  return transforms[type] ? transforms[type](attr, value) : value;
52
68
  }
53
69
 
54
- exports.attrTransform = attrTransform;
70
+ exports.needAttrTransform = needAttrTransform, exports.attrTransform = attrTransform;
55
71
 
56
72
  const DEFAULT_STATE_VALUE_ENUM = {};
57
73
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compile/mark/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { isFunction } from '@visactor/vutils';\nimport type { IAttrs, IMarkStateStyle, MarkType } from '../../mark/interface';\nimport { STATE_VALUE_ENUM } from './interface';\n\nexport function isAttrChangeable<T>(key: string, stateStyle: IMarkStateStyle<T>) {\n for (const state in stateStyle) {\n if (state === STATE_VALUE_ENUM.STATE_NORMAL) {\n const style = stateStyle[state][key]?.style;\n const isGradient = isGradientAttribute(key, style);\n if (isGradient) {\n return true;\n }\n const isFunctionStyle = isFunction(style);\n if (isFunctionStyle) {\n return true;\n }\n const isScale = !!style?.scale;\n if (isScale) {\n return true;\n }\n continue;\n }\n if (key in stateStyle[state]) {\n return true;\n }\n }\n return false;\n}\n\nexport function isStateAttrChangeable<T>(key: string, stateStyle: Partial<IAttrs<T>>) {\n const style = stateStyle[key]?.style;\n const isGradient = isGradientAttribute(key, style);\n if (isGradient) {\n return true;\n }\n const isFunctionStyle = isFunction(style);\n if (isFunctionStyle) {\n return true;\n }\n const isScale = !!style?.scale;\n if (isScale) {\n return true;\n }\n return false;\n}\n\nfunction isGradientAttribute(key: string, style: any) {\n return (key === 'fill' || key === 'stroke') && style?.gradient && style?.stops;\n}\n\nfunction symbolAttrTransform(attr: string, value: any) {\n switch (attr) {\n case 'shape':\n return chartShapes[value] ?? value;\n case 'size':\n return value;\n default:\n return value;\n }\n}\n\nconst chartShapes = {\n arrowLeft: 'M 0.25 -0.5 L -0.25 0 l 0.5 0.5',\n arrowRight: 'M -0.25 -0.5 l 0.5 0.5 l -0.5 0.5',\n rect: 'M -0.5,0.25 L 0.5,0.25 L 0.5,-0.25,L -0.5,-0.25 Z',\n rectRound:\n // eslint-disable-next-line max-len\n 'M 0.3 -0.5 C 0.41 -0.5 0.5 -0.41 0.5 -0.3 C 0.5 -0.3 0.5 0.3 0.5 0.3 C 0.5 0.41 0.41 0.5 0.3 0.5 C 0.3 0.5 -0.3 0.5 -0.3 0.5 C -0.41 0.5 -0.5 0.41 -0.5 0.3 C -0.5 0.3 -0.5 -0.3 -0.5 -0.3 C -0.5 -0.41 -0.41 -0.5 -0.3 -0.5 C -0.3 -0.5 0.3 -0.5 0.3 -0.5 Z'\n};\n\nconst transforms = {\n symbol: symbolAttrTransform\n};\n\nexport function attrTransform(type: MarkType, attr: string, value: any) {\n if (!transforms[type]) {\n return value;\n }\n return transforms[type](attr, value);\n}\n\nconst DEFAULT_STATE_VALUE_ENUM = {};\nObject.values(STATE_VALUE_ENUM).forEach(v => {\n DEFAULT_STATE_VALUE_ENUM[v] = true;\n});\n\nexport function stateInDefaultEnum(state: string) {\n return !!DEFAULT_STATE_VALUE_ENUM[state];\n}\n\nconst DEFAULT_STATE_VALUE_TO_REVERSE = {\n [STATE_VALUE_ENUM.STATE_HOVER]: STATE_VALUE_ENUM.STATE_HOVER_REVERSE,\n [STATE_VALUE_ENUM.STATE_SELECTED]: STATE_VALUE_ENUM.STATE_SELECTED_REVERSE,\n [STATE_VALUE_ENUM.STATE_DIMENSION_HOVER]: STATE_VALUE_ENUM.STATE_DIMENSION_HOVER_REVERSE\n};\n\nexport function stateToReverse(state: string) {\n return DEFAULT_STATE_VALUE_TO_REVERSE[state];\n}\n"]}
1
+ {"version":3,"sources":["../src/compile/mark/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { isFunction } from '@visactor/vutils';\nimport type { IAttrs, IMarkStateStyle, MarkType } from '../../mark/interface';\nimport { STATE_VALUE_ENUM } from './interface';\n\nexport function isAttrChangeable<T>(key: string, stateStyle: IMarkStateStyle<T>) {\n for (const state in stateStyle) {\n if (state === STATE_VALUE_ENUM.STATE_NORMAL) {\n const style = stateStyle[state][key]?.style;\n const isGradient = isGradientAttribute(key, style);\n if (isGradient) {\n return true;\n }\n const isFunctionStyle = isFunction(style);\n if (isFunctionStyle) {\n return true;\n }\n const isScale = !!style?.scale;\n if (isScale) {\n return true;\n }\n continue;\n }\n if (key in stateStyle[state]) {\n return true;\n }\n }\n return false;\n}\n\nexport function isStateAttrChangeable<T>(key: string, stateStyle: Partial<IAttrs<T>>, facetField: string) {\n const style = stateStyle[key]?.style;\n const isGradient = isGradientAttribute(key, style);\n if (isGradient) {\n return true;\n }\n const isFunctionStyle = isFunction(style);\n if (isFunctionStyle) {\n return true;\n }\n const isScale = !!style?.scale;\n if (isScale) {\n if (style.field !== facetField) {\n return true;\n }\n }\n return false;\n}\n\nfunction isGradientAttribute(key: string, style: any) {\n return (key === 'fill' || key === 'stroke') && style?.gradient && style?.stops;\n}\n\nfunction symbolAttrTransform(attr: string, value: any) {\n switch (attr) {\n case 'shape':\n case 'symbolType':\n return chartShapes[value] ?? value;\n default:\n return value;\n }\n}\n\nconst chartShapes = {\n arrowLeft: 'M 0.25 -0.5 L -0.25 0 l 0.5 0.5',\n arrowRight: 'M -0.25 -0.5 l 0.5 0.5 l -0.5 0.5',\n rect: 'M -0.5,0.25 L 0.5,0.25 L 0.5,-0.25,L -0.5,-0.25 Z',\n rectRound:\n // eslint-disable-next-line max-len\n 'M 0.3 -0.5 C 0.41 -0.5 0.5 -0.41 0.5 -0.3 C 0.5 -0.3 0.5 0.3 0.5 0.3 C 0.5 0.41 0.41 0.5 0.3 0.5 C 0.3 0.5 -0.3 0.5 -0.3 0.5 C -0.41 0.5 -0.5 0.41 -0.5 0.3 C -0.5 0.3 -0.5 -0.3 -0.5 -0.3 C -0.5 -0.41 -0.41 -0.5 -0.3 -0.5 C -0.3 -0.5 0.3 -0.5 0.3 -0.5 Z'\n};\n\nconst transforms = {\n symbol: symbolAttrTransform\n};\nconst transformsCheck = {\n symbol: {\n shape: true,\n symbolType: true\n }\n};\n\nexport function needAttrTransform(type: MarkType, attr: string) {\n if (!transformsCheck[type]) {\n return false;\n }\n if (!transformsCheck[type][attr]) {\n return false;\n }\n return true;\n}\n\nexport function attrTransform(type: MarkType, attr: string, value: any) {\n if (!transforms[type]) {\n return value;\n }\n return transforms[type](attr, value);\n}\n\nconst DEFAULT_STATE_VALUE_ENUM = {};\nObject.values(STATE_VALUE_ENUM).forEach(v => {\n DEFAULT_STATE_VALUE_ENUM[v] = true;\n});\n\nexport function stateInDefaultEnum(state: string) {\n return !!DEFAULT_STATE_VALUE_ENUM[state];\n}\n\nconst DEFAULT_STATE_VALUE_TO_REVERSE = {\n [STATE_VALUE_ENUM.STATE_HOVER]: STATE_VALUE_ENUM.STATE_HOVER_REVERSE,\n [STATE_VALUE_ENUM.STATE_SELECTED]: STATE_VALUE_ENUM.STATE_SELECTED_REVERSE,\n [STATE_VALUE_ENUM.STATE_DIMENSION_HOVER]: STATE_VALUE_ENUM.STATE_DIMENSION_HOVER_REVERSE\n};\n\nexport function stateToReverse(state: string) {\n return DEFAULT_STATE_VALUE_TO_REVERSE[state];\n}\n"]}
@@ -63,6 +63,7 @@ export declare abstract class AxisComponent extends BaseComponent implements IAx
63
63
  updateSpec(spec: any): {
64
64
  change: boolean;
65
65
  reMake: boolean;
66
+ reMakeData: boolean;
66
67
  reRender: boolean;
67
68
  reSize: boolean;
68
69
  reCompile: boolean;
@@ -76,21 +77,9 @@ export declare abstract class AxisComponent extends BaseComponent implements IAx
76
77
  hover: any;
77
78
  line: any;
78
79
  label: {
79
- visible: any;
80
- space: any;
81
- inside: any;
82
80
  style: any;
83
81
  formatMethod: (value: any, datum: any, index: number) => any;
84
82
  state: {};
85
- autoRotate: boolean;
86
- autoHide: boolean;
87
- autoLimit: boolean;
88
- autoRotateAngle: any;
89
- autoHideMethod: any;
90
- autoHideSeparation: any;
91
- limitEllipsis: any;
92
- layoutFunc: any;
93
- dataFilter: any;
94
83
  };
95
84
  tick: {
96
85
  visible: any;
@@ -169,34 +169,24 @@ class AxisComponent extends base_1.BaseComponent {
169
169
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
170
170
  const spec = this._spec;
171
171
  let titleTextStyle, titleAngle = spec.title.angle;
172
- return "left" !== spec.orient && "right" !== spec.orient || (null === (_a = spec.title) || void 0 === _a ? void 0 : _a.autoRotate) && (0,
172
+ "left" !== spec.orient && "right" !== spec.orient || (null === (_a = spec.title) || void 0 === _a ? void 0 : _a.autoRotate) && (0,
173
173
  util_1.isNil)(spec.title.angle) && (titleAngle = "left" === spec.orient ? -90 : 90,
174
- titleTextStyle = utils_2.DEFAULT_TITLE_STYLE[spec.orient]), {
174
+ titleTextStyle = utils_2.DEFAULT_TITLE_STYLE[spec.orient]);
175
+ const labelSpec = (0, vutils_1.pickWithout)(spec.label, [ "style", "formatMethod", "state" ]);
176
+ return {
175
177
  orient: this.orient,
176
178
  select: spec.select,
177
179
  hover: spec.hover,
178
180
  line: (0, utils_2.transformAxisLineStyle)(spec.domainLine),
179
- label: {
180
- visible: spec.label.visible,
181
- space: spec.label.space,
182
- inside: spec.label.inside,
181
+ label: Object.assign({
183
182
  style: (0, util_1.isFunction)(spec.label.style) ? (datum, index, data, layer) => {
184
183
  var _a;
185
184
  const style = this._preprocessSpec(spec.label.style(datum.rawValue, index, datum, data, layer));
186
185
  return (0, style_1.transformToGraphic)(this._preprocessSpec((0, util_1.merge)({}, null === (_a = this._theme.label) || void 0 === _a ? void 0 : _a.style, style)));
187
186
  } : (0, style_1.transformToGraphic)(spec.label.style),
188
187
  formatMethod: spec.label.formatMethod ? (value, datum, index) => spec.label.formatMethod(datum.rawValue, datum) : null,
189
- state: (0, style_1.transformAxisLabelStateStyle)(spec.label.state),
190
- autoRotate: !!spec.label.autoRotate,
191
- autoHide: !!spec.label.autoHide,
192
- autoLimit: !!spec.label.autoLimit,
193
- autoRotateAngle: spec.label.autoRotateAngle,
194
- autoHideMethod: spec.label.autoHideMethod,
195
- autoHideSeparation: spec.label.autoHideSeparation,
196
- limitEllipsis: spec.label.limitEllipsis,
197
- layoutFunc: spec.label.layoutFunc,
198
- dataFilter: spec.label.dataFilter
199
- },
188
+ state: (0, style_1.transformAxisLabelStateStyle)(spec.label.state)
189
+ }, labelSpec),
200
190
  tick: {
201
191
  visible: spec.tick.visible,
202
192
  length: spec.tick.tickSize,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":"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","file":"base-axis.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { INode, IGroup } from '@visactor/vrender';\nimport { AXIS_ELEMENT_NAME } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { AxisItem } from '@visactor/vrender-components';\nimport type { IOrientType, IPolarOrientType, Datum, StringOrNumber } from '../../typings';\nimport { BaseComponent } from '../base';\nimport type { IPolarAxisCommonTheme } from './polar/interface';\nimport type { ICartesianAxisCommonTheme } from './cartesian/interface';\nimport type { CompilableData } from '../../compile/data';\nimport type { IAxis, ITick, StatisticsDomain } from './interface';\nimport type { IComponentOption } from '../interface';\nimport { array, eachSeries, get, getSeries, isArray, isBoolean, isFunction, isNil, isValid, merge } from '../../util';\nimport type { ISeries } from '../../series/interface';\nimport { ChartEvent } from '../../constant';\nimport type { Group } from '../../series/base/group';\nimport { animationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { degreeToRadian, type LooseFunction } from '@visactor/vutils';\nimport { DEFAULT_TITLE_STYLE, transformAxisLineStyle } from './utils';\nimport { transformAxisLabelStateStyle, transformStateStyle, transformToGraphic } from '../../util/style';\nimport type { ITransformOptions } from '@visactor/vdataset';\n\nexport abstract class AxisComponent extends BaseComponent implements IAxis {\n static specKey = 'axes';\n\n protected _orient: IPolarOrientType | IOrientType;\n get orient() {\n return this._orient;\n }\n\n protected _scale!: IBaseScale;\n getScale() {\n return this._scale;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected declare _theme: ICartesianAxisCommonTheme | IPolarAxisCommonTheme;\n\n protected _tickData!: CompilableData;\n getTickData() {\n return this._tickData;\n }\n\n protected _statisticsDomain: StatisticsDomain = { domain: [], index: {} };\n getStatisticsDomain() {\n return this._statisticsDomain;\n }\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionIndex?: number[];\n\n /**\n * if axis will be shown\n */\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n protected _tick: ITick | undefined = undefined;\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract dataToPosition(values: any[], cfg?: any): number;\n abstract valueToPosition(value: any): number;\n protected abstract axisHelper(): any;\n protected abstract getSeriesStatisticsField(s: ISeries): string[];\n protected abstract updateSeriesScale(): void;\n protected abstract collectData(depth: number): { min: number; max: number; values: any[] }[];\n protected abstract _initData(): void;\n abstract transformScaleDomain(): void;\n\n protected _dataFieldText: string;\n\n constructor(spec: any, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this._visible = spec.visible ?? true;\n }\n\n created() {\n super.created();\n //series and regions\n this.setSeriesAndRegionsFromSpec();\n // event\n this.initEvent();\n // scales\n this.initScales();\n this.updateSeriesScale();\n // data\n this._initData();\n\n if (this._visible) {\n // 创建语法元素\n\n const axisMark = this._createMark(\n { type: 'component', name: `axis-${this.orient}` },\n {\n componentType: this.orient === 'angle' ? 'circleAxis' : 'axis',\n mode: this._spec.mode\n }\n );\n this._marks.addMark(axisMark);\n\n axisMark.setZIndex(this.layoutZIndex);\n if (isValid(this._spec.id)) {\n axisMark.setUserId(this._spec.id);\n }\n // interactive\n if (isBoolean(this._spec.interactive)) {\n axisMark.setInteractive(this._spec.interactive);\n }\n\n // Tip: 支持 spec.animationAppear.axis,并且坐标轴默认关闭动画\n if (\n this._option.animation !== false &&\n get(this._option.getChart().getSpec(), 'animation') !== false &&\n this._spec.animation === true\n ) {\n const axisAnimateConfig = animationConfig(DEFAULT_MARK_ANIMATION.axis(), {\n appear:\n this._spec.animationAppear ??\n get(this._option.getChart().getSpec(), 'animationAppear.axis') ??\n get(this._option.getChart().getSpec(), 'animationAppear'),\n disappear:\n this._spec.animationDisappear ??\n get(this._option.getChart().getSpec(), 'animationDisappear.axis') ??\n get(this._option.getChart().getSpec(), 'animationDisappear'),\n enter:\n this._spec.animationEnter ??\n get(this._option.getChart().getSpec(), 'animationEnter.axis') ??\n get(this._option.getChart().getSpec(), 'animationEnter'),\n exit:\n this._spec.animationExit ??\n get(this._option.getChart().getSpec(), 'animationExit.axis') ??\n get(this._option.getChart().getSpec(), 'animationExit'),\n update:\n this._spec.animationUpdate ??\n get(this._option.getChart().getSpec(), 'animationUpdate.axis') ??\n get(this._option.getChart().getSpec(), 'animationUpdate')\n });\n // 因为坐标轴的更新动画中处理了 enter,所以需要将 enter 的参数传入\n axisAnimateConfig.update[0].customParameters = {\n enter: axisAnimateConfig.enter[0]\n };\n axisMark.setAnimationConfig(axisAnimateConfig);\n }\n }\n }\n\n protected isSeriesDataEnable() {\n let enable = true;\n eachSeries(\n this._regions,\n s => {\n if (isArray(s.getViewDataStatistics()?.latestData)) {\n enable = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return enable;\n }\n\n protected setSeriesAndRegionsFromSpec() {\n const { seriesId, seriesIndex, regionId, regionIndex } = this._spec;\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId as string[], this._regionIndex);\n // _regions 被更新了,layoutBindRegionID 也要更新\n this.layoutBindRegionID = this._regions.map(x => x.id);\n }\n\n getBindSeriesFilter() {\n return {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n };\n }\n\n protected computeStatisticsDomain = () => {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n const vd = s.getViewDataStatistics?.();\n vd &&\n this.getSeriesStatisticsField(s as ISeries).forEach(f => {\n vd.latestData?.[f] && data.push(vd.latestData[f]);\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n\n this._statisticsDomain.domain = this.computeDomain(data);\n if (!isContinuous(this._scale.type)) {\n this._statisticsDomain.index = {};\n for (let i = 0; i < this._statisticsDomain.domain.length; i++) {\n this._statisticsDomain.index[this._statisticsDomain.domain[i]] = i;\n }\n }\n };\n\n protected initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n const viewStatistics = getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n })\n .map(s => s.getViewDataStatistics())\n .filter(v => !!v);\n this._option.dataSet.multipleDataViewAddListener(viewStatistics, 'change', () => {\n this.updateScaleDomain();\n });\n }\n\n protected updateScaleDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n protected computeData(): void {\n this._tickData.getDataView().reRunAllTransform();\n this._tickData.updateData();\n }\n\n protected initScales() {\n this._scales = [this._scale];\n const groups: Group[] = [];\n eachSeries(\n this._regions,\n s => {\n const g = s.getGroups();\n g && groups.push(g);\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n if (groups.length !== 0) {\n const depth = Math.max(...groups.map(g => g.fields.length));\n for (let i = 1; i < depth; i++) {\n const scale = this._scale.clone();\n this._scales.push(scale);\n }\n }\n // this.updateScaleDomain();\n }\n\n /** Update API **/\n updateSpec(spec: any) {\n const originalSpec = this._originalSpec;\n const result = super.updateSpec(spec);\n result.reRender = true;\n if (originalSpec.type !== spec.type) {\n result.reMake = true;\n return result;\n }\n result.reMake =\n ['seriesId', 'seriesIndex', 'regionId', 'regionIndex'].some(k => {\n JSON.stringify(originalSpec[k]) !== JSON.stringify(spec[k]);\n }) || result.reMake;\n return result;\n }\n\n protected getLabelFormatMethod() {\n return this._spec.label.formatMethod\n ? (value: any, datum: any, index: number) => this._spec.label.formatMethod(datum.rawValue, datum)\n : null;\n }\n\n protected getLabelItems(length: number) {\n return isArray(this._tickData.getLatestData())\n ? [\n this._tickData\n .getLatestData()\n .map((obj: Datum) => {\n return {\n id: obj.value,\n label: obj.value,\n value: length === 0 ? 0 : this.dataToPosition([obj.value]) / length,\n rawValue: obj.value\n };\n })\n .filter((entry: AxisItem) => entry.value >= 0 && entry.value <= 1)\n ]\n : [];\n }\n\n protected _delegateAxisContainerEvent(component: IGroup) {\n const axisMainContainer = component?.find((node: INode) => node.name === AXIS_ELEMENT_NAME.axisContainer, true);\n if (axisMainContainer) {\n // 代理组件上的事件,目前坐标轴组件比较特殊,包含了网格线,但是事件这块只提供不包含网格线部分的响应\n axisMainContainer.addEventListener('*', ((event: any, type: string) =>\n this._delegateEvent(component as unknown as INode, event, type)) as LooseFunction);\n }\n }\n\n protected _getAxisAttributes() {\n const spec = this._spec;\n let titleAngle = spec.title.angle;\n let titleTextStyle;\n if (spec.orient === 'left' || spec.orient === 'right') {\n // 处理纵轴的标题样式\n if (spec.title?.autoRotate && isNil(spec.title.angle)) {\n titleAngle = spec.orient === 'left' ? -90 : 90;\n titleTextStyle = DEFAULT_TITLE_STYLE[spec.orient];\n }\n }\n\n return {\n orient: this.orient,\n select: spec.select,\n hover: spec.hover,\n line: transformAxisLineStyle(spec.domainLine),\n label: {\n visible: spec.label.visible,\n space: spec.label.space,\n inside: spec.label.inside,\n style: isFunction(spec.label.style)\n ? (datum: Datum, index: number, data: Datum[], layer?: number) => {\n const style = this._preprocessSpec(spec.label.style(datum.rawValue, index, datum, data, layer));\n return transformToGraphic(this._preprocessSpec(merge({}, this._theme.label?.style, style)));\n }\n : transformToGraphic(spec.label.style),\n formatMethod: spec.label.formatMethod\n ? (value: any, datum: any, index: number) => {\n return spec.label.formatMethod(datum.rawValue, datum);\n }\n : null,\n state: transformAxisLabelStateStyle(spec.label.state),\n autoRotate: !!spec.label.autoRotate,\n autoHide: !!spec.label.autoHide,\n autoLimit: !!spec.label.autoLimit,\n autoRotateAngle: spec.label.autoRotateAngle,\n autoHideMethod: spec.label.autoHideMethod,\n autoHideSeparation: spec.label.autoHideSeparation,\n limitEllipsis: spec.label.limitEllipsis,\n layoutFunc: spec.label.layoutFunc,\n dataFilter: spec.label.dataFilter\n },\n tick: {\n visible: spec.tick.visible,\n length: spec.tick.tickSize,\n inside: spec.tick.inside,\n alignWithLabel: spec.tick.alignWithLabel,\n style: isFunction(spec.tick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = this._preprocessSpec(spec.tick.style(value, index, datum, data));\n return transformToGraphic(this._preprocessSpec(merge({}, this._theme.tick?.style, style)));\n }\n : transformToGraphic(spec.tick.style),\n state: transformStateStyle(spec.tick.state),\n dataFilter: spec.tick.dataFilter\n },\n subTick: {\n visible: spec.subTick.visible,\n length: spec.subTick.tickSize,\n inside: spec.subTick.inside,\n count: spec.subTick.tickCount,\n style: isFunction(spec.subTick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = spec.subTick.style(value, index, datum, data);\n return transformToGraphic(merge({}, this._theme.subTick?.style, style));\n }\n : transformToGraphic(spec.subTick.style),\n state: transformStateStyle(spec.subTick.state)\n },\n grid: {\n type: 'line',\n visible: spec.grid.visible,\n alternateColor: spec.grid.alternateColor,\n alignWithLabel: spec.grid.alignWithLabel,\n style: isFunction(spec.grid.style)\n ? (datum: Datum, index: number) => {\n const style = spec.grid.style(datum.datum?.rawValue, index, datum.datum);\n return transformToGraphic(this._preprocessSpec(merge({}, this._theme.grid?.style, style)));\n }\n : transformToGraphic(spec.grid.style)\n },\n subGrid: {\n type: 'line',\n visible: spec.subGrid.visible,\n alternateColor: spec.subGrid.alternateColor,\n style: transformToGraphic(spec.subGrid.style)\n },\n title: {\n visible: spec.title.visible,\n position: spec.title.position,\n space: spec.title.space,\n autoRotate: false, // 默认不对外提供该配置\n angle: titleAngle ? degreeToRadian(titleAngle) : null,\n textStyle: merge({}, titleTextStyle, transformToGraphic(spec.title.style)),\n padding: spec.title.padding,\n shape: {\n visible: spec.title.shape?.visible,\n space: spec.title.shape?.space,\n style: transformToGraphic(spec.title.shape?.style)\n },\n background: {\n visible: spec.title.background?.visible,\n style: transformToGraphic(spec.title.background?.style)\n },\n state: {\n text: transformStateStyle(spec.title.state),\n shape: transformStateStyle(spec.title.shape?.state),\n background: transformStateStyle(spec.title.background?.state)\n }\n },\n panel: {\n visible: spec.background?.visible,\n style: transformToGraphic(spec.background?.style),\n state: transformStateStyle(spec.background?.state)\n }\n };\n }\n\n addTransformToTickData(options: ITransformOptions, execute?: boolean) {\n this._tickData?.getDataView()?.transform(options, execute);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":"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","file":"base-axis.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { INode, IGroup, IGraphic } from '@visactor/vrender';\nimport { AXIS_ELEMENT_NAME } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { AxisItem } from '@visactor/vrender-components';\nimport type { IOrientType, IPolarOrientType, Datum, StringOrNumber } from '../../typings';\nimport { BaseComponent } from '../base';\nimport type { IPolarAxisCommonTheme } from './polar/interface';\nimport type { ICartesianAxisCommonTheme } from './cartesian/interface';\nimport type { CompilableData } from '../../compile/data';\nimport type { IAxis, ITick, StatisticsDomain } from './interface';\nimport type { IComponentOption } from '../interface';\nimport { array, eachSeries, get, getSeries, isArray, isBoolean, isFunction, isNil, isValid, merge } from '../../util';\nimport type { ISeries } from '../../series/interface';\nimport { ChartEvent } from '../../constant';\nimport type { Group } from '../../series/base/group';\nimport { animationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { degreeToRadian, pickWithout, type LooseFunction } from '@visactor/vutils';\nimport { DEFAULT_TITLE_STYLE, transformAxisLineStyle } from './utils';\nimport { transformAxisLabelStateStyle, transformStateStyle, transformToGraphic } from '../../util/style';\nimport type { ITransformOptions } from '@visactor/vdataset';\n\nexport abstract class AxisComponent extends BaseComponent implements IAxis {\n static specKey = 'axes';\n\n protected _orient: IPolarOrientType | IOrientType;\n get orient() {\n return this._orient;\n }\n\n protected _scale!: IBaseScale;\n getScale() {\n return this._scale;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected declare _theme: ICartesianAxisCommonTheme | IPolarAxisCommonTheme;\n\n protected _tickData!: CompilableData;\n getTickData() {\n return this._tickData;\n }\n\n protected _statisticsDomain: StatisticsDomain = { domain: [], index: {} };\n getStatisticsDomain() {\n return this._statisticsDomain;\n }\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionIndex?: number[];\n\n /**\n * if axis will be shown\n */\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n protected _tick: ITick | undefined = undefined;\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract dataToPosition(values: any[], cfg?: any): number;\n abstract valueToPosition(value: any): number;\n protected abstract axisHelper(): any;\n protected abstract getSeriesStatisticsField(s: ISeries): string[];\n protected abstract updateSeriesScale(): void;\n protected abstract collectData(depth: number): { min: number; max: number; values: any[] }[];\n protected abstract _initData(): void;\n abstract transformScaleDomain(): void;\n\n protected _dataFieldText: string;\n\n constructor(spec: any, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this._visible = spec.visible ?? true;\n }\n\n created() {\n super.created();\n //series and regions\n this.setSeriesAndRegionsFromSpec();\n // event\n this.initEvent();\n // scales\n this.initScales();\n this.updateSeriesScale();\n // data\n this._initData();\n\n if (this._visible) {\n // 创建语法元素\n\n const axisMark = this._createMark(\n { type: 'component', name: `axis-${this.orient}` },\n {\n componentType: this.orient === 'angle' ? 'circleAxis' : 'axis',\n mode: this._spec.mode\n }\n );\n this._marks.addMark(axisMark);\n\n axisMark.setZIndex(this.layoutZIndex);\n if (isValid(this._spec.id)) {\n axisMark.setUserId(this._spec.id);\n }\n // interactive\n if (isBoolean(this._spec.interactive)) {\n axisMark.setInteractive(this._spec.interactive);\n }\n\n // Tip: 支持 spec.animationAppear.axis,并且坐标轴默认关闭动画\n if (\n this._option.animation !== false &&\n get(this._option.getChart().getSpec(), 'animation') !== false &&\n this._spec.animation === true\n ) {\n const axisAnimateConfig = animationConfig(DEFAULT_MARK_ANIMATION.axis(), {\n appear:\n this._spec.animationAppear ??\n get(this._option.getChart().getSpec(), 'animationAppear.axis') ??\n get(this._option.getChart().getSpec(), 'animationAppear'),\n disappear:\n this._spec.animationDisappear ??\n get(this._option.getChart().getSpec(), 'animationDisappear.axis') ??\n get(this._option.getChart().getSpec(), 'animationDisappear'),\n enter:\n this._spec.animationEnter ??\n get(this._option.getChart().getSpec(), 'animationEnter.axis') ??\n get(this._option.getChart().getSpec(), 'animationEnter'),\n exit:\n this._spec.animationExit ??\n get(this._option.getChart().getSpec(), 'animationExit.axis') ??\n get(this._option.getChart().getSpec(), 'animationExit'),\n update:\n this._spec.animationUpdate ??\n get(this._option.getChart().getSpec(), 'animationUpdate.axis') ??\n get(this._option.getChart().getSpec(), 'animationUpdate')\n });\n // 因为坐标轴的更新动画中处理了 enter,所以需要将 enter 的参数传入\n axisAnimateConfig.update[0].customParameters = {\n enter: axisAnimateConfig.enter[0]\n };\n axisMark.setAnimationConfig(axisAnimateConfig);\n }\n }\n }\n\n protected isSeriesDataEnable() {\n let enable = true;\n eachSeries(\n this._regions,\n s => {\n if (isArray(s.getViewDataStatistics()?.latestData)) {\n enable = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return enable;\n }\n\n protected setSeriesAndRegionsFromSpec() {\n const { seriesId, seriesIndex, regionId, regionIndex } = this._spec;\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId as string[], this._regionIndex);\n // _regions 被更新了,layoutBindRegionID 也要更新\n this.layoutBindRegionID = this._regions.map(x => x.id);\n }\n\n getBindSeriesFilter() {\n return {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n };\n }\n\n protected computeStatisticsDomain = () => {\n const data: { min: number; max: number; values: any[] }[] = [];\n eachSeries(\n this._regions,\n s => {\n const vd = s.getViewDataStatistics?.();\n vd &&\n this.getSeriesStatisticsField(s as ISeries).forEach(f => {\n vd.latestData?.[f] && data.push(vd.latestData[f]);\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n\n this._statisticsDomain.domain = this.computeDomain(data);\n if (!isContinuous(this._scale.type)) {\n this._statisticsDomain.index = {};\n for (let i = 0; i < this._statisticsDomain.domain.length; i++) {\n this._statisticsDomain.index[this._statisticsDomain.domain[i]] = i;\n }\n }\n };\n\n protected initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n const viewStatistics = getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n })\n .map(s => s.getViewDataStatistics())\n .filter(v => !!v);\n this._option.dataSet.multipleDataViewAddListener(viewStatistics, 'change', () => {\n this.updateScaleDomain();\n });\n }\n\n protected updateScaleDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n protected computeData(): void {\n this._tickData.getDataView().reRunAllTransform();\n this._tickData.updateData();\n }\n\n protected initScales() {\n this._scales = [this._scale];\n const groups: Group[] = [];\n eachSeries(\n this._regions,\n s => {\n const g = s.getGroups();\n g && groups.push(g);\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n if (groups.length !== 0) {\n const depth = Math.max(...groups.map(g => g.fields.length));\n for (let i = 1; i < depth; i++) {\n const scale = this._scale.clone();\n this._scales.push(scale);\n }\n }\n // this.updateScaleDomain();\n }\n\n /** Update API **/\n updateSpec(spec: any) {\n const originalSpec = this._originalSpec;\n const result = super.updateSpec(spec);\n result.reRender = true;\n if (originalSpec.type !== spec.type) {\n result.reMake = true;\n return result;\n }\n result.reMake =\n ['seriesId', 'seriesIndex', 'regionId', 'regionIndex'].some(k => {\n JSON.stringify(originalSpec[k]) !== JSON.stringify(spec[k]);\n }) || result.reMake;\n return result;\n }\n\n protected getLabelFormatMethod() {\n return this._spec.label.formatMethod\n ? (value: any, datum: any, index: number) => this._spec.label.formatMethod(datum.rawValue, datum)\n : null;\n }\n\n protected getLabelItems(length: number) {\n return isArray(this._tickData.getLatestData())\n ? [\n this._tickData\n .getLatestData()\n .map((obj: Datum) => {\n return {\n id: obj.value,\n label: obj.value,\n value: length === 0 ? 0 : this.dataToPosition([obj.value]) / length,\n rawValue: obj.value\n };\n })\n .filter((entry: AxisItem) => entry.value >= 0 && entry.value <= 1)\n ]\n : [];\n }\n\n protected _delegateAxisContainerEvent(component: IGroup) {\n const axisMainContainer = component?.find((node: INode) => node.name === AXIS_ELEMENT_NAME.axisContainer, true);\n if (axisMainContainer) {\n // 代理组件上的事件,目前坐标轴组件比较特殊,包含了网格线,但是事件这块只提供不包含网格线部分的响应\n axisMainContainer.addEventListener('*', ((event: any, type: string) =>\n this._delegateEvent(component as unknown as IGraphic, event, type)) as LooseFunction);\n }\n }\n\n protected _getAxisAttributes() {\n const spec = this._spec;\n let titleAngle = spec.title.angle;\n let titleTextStyle;\n if (spec.orient === 'left' || spec.orient === 'right') {\n // 处理纵轴的标题样式\n if (spec.title?.autoRotate && isNil(spec.title.angle)) {\n titleAngle = spec.orient === 'left' ? -90 : 90;\n titleTextStyle = DEFAULT_TITLE_STYLE[spec.orient];\n }\n }\n\n const labelSpec = pickWithout(spec.label, ['style', 'formatMethod', 'state']);\n\n return {\n orient: this.orient,\n select: spec.select,\n hover: spec.hover,\n line: transformAxisLineStyle(spec.domainLine),\n label: {\n style: isFunction(spec.label.style)\n ? (datum: Datum, index: number, data: Datum[], layer?: number) => {\n const style = this._preprocessSpec(spec.label.style(datum.rawValue, index, datum, data, layer));\n return transformToGraphic(this._preprocessSpec(merge({}, this._theme.label?.style, style)));\n }\n : transformToGraphic(spec.label.style),\n formatMethod: spec.label.formatMethod\n ? (value: any, datum: any, index: number) => {\n return spec.label.formatMethod(datum.rawValue, datum);\n }\n : null,\n state: transformAxisLabelStateStyle(spec.label.state),\n ...labelSpec\n },\n tick: {\n visible: spec.tick.visible,\n length: spec.tick.tickSize,\n inside: spec.tick.inside,\n alignWithLabel: spec.tick.alignWithLabel,\n style: isFunction(spec.tick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = this._preprocessSpec(spec.tick.style(value, index, datum, data));\n return transformToGraphic(this._preprocessSpec(merge({}, this._theme.tick?.style, style)));\n }\n : transformToGraphic(spec.tick.style),\n state: transformStateStyle(spec.tick.state),\n dataFilter: spec.tick.dataFilter\n },\n subTick: {\n visible: spec.subTick.visible,\n length: spec.subTick.tickSize,\n inside: spec.subTick.inside,\n count: spec.subTick.tickCount,\n style: isFunction(spec.subTick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = spec.subTick.style(value, index, datum, data);\n return transformToGraphic(merge({}, this._theme.subTick?.style, style));\n }\n : transformToGraphic(spec.subTick.style),\n state: transformStateStyle(spec.subTick.state)\n },\n grid: {\n type: 'line',\n visible: spec.grid.visible,\n alternateColor: spec.grid.alternateColor,\n alignWithLabel: spec.grid.alignWithLabel,\n style: isFunction(spec.grid.style)\n ? (datum: Datum, index: number) => {\n const style = spec.grid.style(datum.datum?.rawValue, index, datum.datum);\n return transformToGraphic(this._preprocessSpec(merge({}, this._theme.grid?.style, style)));\n }\n : transformToGraphic(spec.grid.style)\n },\n subGrid: {\n type: 'line',\n visible: spec.subGrid.visible,\n alternateColor: spec.subGrid.alternateColor,\n style: transformToGraphic(spec.subGrid.style)\n },\n title: {\n visible: spec.title.visible,\n position: spec.title.position,\n space: spec.title.space,\n autoRotate: false, // 默认不对外提供该配置\n angle: titleAngle ? degreeToRadian(titleAngle) : null,\n textStyle: merge({}, titleTextStyle, transformToGraphic(spec.title.style)),\n padding: spec.title.padding,\n shape: {\n visible: spec.title.shape?.visible,\n space: spec.title.shape?.space,\n style: transformToGraphic(spec.title.shape?.style)\n },\n background: {\n visible: spec.title.background?.visible,\n style: transformToGraphic(spec.title.background?.style)\n },\n state: {\n text: transformStateStyle(spec.title.state),\n shape: transformStateStyle(spec.title.shape?.state),\n background: transformStateStyle(spec.title.background?.state)\n }\n },\n panel: {\n visible: spec.background?.visible,\n style: transformToGraphic(spec.background?.style),\n state: transformStateStyle(spec.background?.state)\n }\n };\n }\n\n addTransformToTickData(options: ITransformOptions, execute?: boolean) {\n this._tickData?.getDataView()?.transform(options, execute);\n }\n}\n"]}