@visactor/vchart 1.8.10-alpha.0 → 1.8.11

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 (821) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +996 -783
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.js +6 -1
  6. package/cjs/animation/utils.js.map +1 -1
  7. package/cjs/chart/area/area.js +3 -4
  8. package/cjs/chart/area/area.js.map +1 -1
  9. package/cjs/chart/bar/3d/bar-3d.js +3 -3
  10. package/cjs/chart/bar/3d/bar-3d.js.map +1 -1
  11. package/cjs/chart/bar/bar.js +3 -4
  12. package/cjs/chart/bar/bar.js.map +1 -1
  13. package/cjs/chart/base/base-chart.js +4 -4
  14. package/cjs/chart/base/base-chart.js.map +1 -1
  15. package/cjs/chart/box-plot/box-plot-transformer.js +3 -3
  16. package/cjs/chart/box-plot/box-plot-transformer.js.map +1 -1
  17. package/cjs/chart/box-plot/box-plot.js +4 -5
  18. package/cjs/chart/box-plot/box-plot.js.map +1 -1
  19. package/cjs/chart/circle-packing/circle-packing.js +3 -3
  20. package/cjs/chart/circle-packing/circle-packing.js.map +1 -1
  21. package/cjs/chart/common/common.js +4 -4
  22. package/cjs/chart/common/common.js.map +1 -1
  23. package/cjs/chart/correlation/correlation.js +4 -4
  24. package/cjs/chart/correlation/correlation.js.map +1 -1
  25. package/cjs/chart/funnel/3d/funnel-3d.js +4 -5
  26. package/cjs/chart/funnel/3d/funnel-3d.js.map +1 -1
  27. package/cjs/chart/funnel/funnel.js +4 -5
  28. package/cjs/chart/funnel/funnel.js.map +1 -1
  29. package/cjs/chart/gauge/gauge.js +3 -3
  30. package/cjs/chart/gauge/gauge.js.map +1 -1
  31. package/cjs/chart/heatmap/heatmap.js +4 -5
  32. package/cjs/chart/heatmap/heatmap.js.map +1 -1
  33. package/cjs/chart/histogram/3d/histogram-3d.js +3 -3
  34. package/cjs/chart/histogram/3d/histogram-3d.js.map +1 -1
  35. package/cjs/chart/histogram/histogram.js +4 -5
  36. package/cjs/chart/histogram/histogram.js.map +1 -1
  37. package/cjs/chart/interface/type.d.ts +1 -1
  38. package/cjs/chart/interface/type.js.map +1 -1
  39. package/cjs/chart/line/line.js +3 -4
  40. package/cjs/chart/line/line.js.map +1 -1
  41. package/cjs/chart/map/map.js +3 -3
  42. package/cjs/chart/map/map.js.map +1 -1
  43. package/cjs/chart/pie/3d/pie-3d.js +3 -3
  44. package/cjs/chart/pie/3d/pie-3d.js.map +1 -1
  45. package/cjs/chart/pie/pie.js +3 -3
  46. package/cjs/chart/pie/pie.js.map +1 -1
  47. package/cjs/chart/polar/polar-transformer.js +2 -2
  48. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  49. package/cjs/chart/progress/circular/circular.js +3 -3
  50. package/cjs/chart/progress/circular/circular.js.map +1 -1
  51. package/cjs/chart/progress/linear/linear.js +3 -3
  52. package/cjs/chart/progress/linear/linear.js.map +1 -1
  53. package/cjs/chart/radar/radar.js +3 -4
  54. package/cjs/chart/radar/radar.js.map +1 -1
  55. package/cjs/chart/range-area/range-area-transformer.js +2 -2
  56. package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
  57. package/cjs/chart/range-area/range-area.js +4 -5
  58. package/cjs/chart/range-area/range-area.js.map +1 -1
  59. package/cjs/chart/range-column/3d/range-column-3d-transformer.js +2 -2
  60. package/cjs/chart/range-column/3d/range-column-3d-transformer.js.map +1 -1
  61. package/cjs/chart/range-column/3d/range-column-3d.js +4 -4
  62. package/cjs/chart/range-column/3d/range-column-3d.js.map +1 -1
  63. package/cjs/chart/range-column/range-column-transformer.js +2 -2
  64. package/cjs/chart/range-column/range-column-transformer.js.map +1 -1
  65. package/cjs/chart/range-column/range-column.js +4 -4
  66. package/cjs/chart/range-column/range-column.js.map +1 -1
  67. package/cjs/chart/rose/rose.js +3 -4
  68. package/cjs/chart/rose/rose.js.map +1 -1
  69. package/cjs/chart/sankey/sankey.js +4 -5
  70. package/cjs/chart/sankey/sankey.js.map +1 -1
  71. package/cjs/chart/scatter/scatter.js +4 -6
  72. package/cjs/chart/scatter/scatter.js.map +1 -1
  73. package/cjs/chart/sequence/sequence-transformer.js +3 -3
  74. package/cjs/chart/sequence/sequence-transformer.js.map +1 -1
  75. package/cjs/chart/sequence/sequence.js +4 -4
  76. package/cjs/chart/sequence/sequence.js.map +1 -1
  77. package/cjs/chart/sunburst/sunburst.js +4 -5
  78. package/cjs/chart/sunburst/sunburst.js.map +1 -1
  79. package/cjs/chart/treemap/treemap.js +4 -5
  80. package/cjs/chart/treemap/treemap.js.map +1 -1
  81. package/cjs/chart/util.js +2 -2
  82. package/cjs/chart/util.js.map +1 -1
  83. package/cjs/chart/waterfall/waterfall.js +4 -5
  84. package/cjs/chart/waterfall/waterfall.js.map +1 -1
  85. package/cjs/chart/word-cloud/3d/word-cloud-3d.js +3 -3
  86. package/cjs/chart/word-cloud/3d/word-cloud-3d.js.map +1 -1
  87. package/cjs/chart/word-cloud/base/base.js +2 -2
  88. package/cjs/chart/word-cloud/base/base.js.map +1 -1
  89. package/cjs/chart/word-cloud/word-cloud.js +4 -5
  90. package/cjs/chart/word-cloud/word-cloud.js.map +1 -1
  91. package/cjs/compile/interface/compiler.d.ts +2 -0
  92. package/cjs/compile/interface/compiler.js.map +1 -1
  93. package/cjs/compile/mark/interface.d.ts +0 -9
  94. package/cjs/compile/mark/interface.js +3 -10
  95. package/cjs/compile/mark/interface.js.map +1 -1
  96. package/cjs/component/axis/cartesian/axis.js +19 -12
  97. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  98. package/cjs/component/axis/cartesian/util/common.js +3 -3
  99. package/cjs/component/axis/cartesian/util/common.js.map +1 -1
  100. package/cjs/component/axis/mixin/band-axis-mixin.js +1 -0
  101. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  102. package/cjs/component/axis/mixin/linear-axis-mixin.js +3 -3
  103. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  104. package/cjs/component/axis/polar/axis.js +19 -11
  105. package/cjs/component/axis/polar/axis.js.map +1 -1
  106. package/cjs/component/crosshair/cartesian.js +8 -8
  107. package/cjs/component/crosshair/cartesian.js.map +1 -1
  108. package/cjs/component/crosshair/config.d.ts +1 -1
  109. package/cjs/component/crosshair/config.js.map +1 -1
  110. package/cjs/component/crosshair/polar.js +9 -9
  111. package/cjs/component/crosshair/polar.js.map +1 -1
  112. package/cjs/component/data-zoom/constant.d.ts +1 -1
  113. package/cjs/component/data-zoom/constant.js.map +1 -1
  114. package/cjs/component/data-zoom/data-filter-base-component.js +8 -8
  115. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  116. package/cjs/component/data-zoom/data-zoom/data-zoom.js +3 -3
  117. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  118. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +3 -3
  119. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  120. package/cjs/component/data-zoom/util.js +2 -3
  121. package/cjs/component/data-zoom/util.js.map +1 -1
  122. package/cjs/component/label/label.js +4 -4
  123. package/cjs/component/label/label.js.map +1 -1
  124. package/cjs/component/label/total-label.js +4 -4
  125. package/cjs/component/label/total-label.js.map +1 -1
  126. package/cjs/component/label/util.js +4 -4
  127. package/cjs/component/label/util.js.map +1 -1
  128. package/cjs/component/legend/base-legend.d.ts +1 -1
  129. package/cjs/component/legend/util.d.ts +2 -2
  130. package/cjs/component/marker/base-marker.d.ts +5 -1
  131. package/cjs/component/marker/base-marker.js.map +1 -1
  132. package/cjs/component/marker/mark-area/mark-area.js +7 -3
  133. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  134. package/cjs/component/marker/mark-line/mark-line.js +6 -2
  135. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  136. package/cjs/component/marker/mark-point/mark-point.js +6 -2
  137. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  138. package/cjs/component/marker/utils.js +2 -2
  139. package/cjs/component/marker/utils.js.map +1 -1
  140. package/cjs/component/tooltip/handler/base.js +15 -15
  141. package/cjs/component/tooltip/handler/base.js.map +1 -1
  142. package/cjs/component/tooltip/handler/dom/model/shape-model.js +15 -10
  143. package/cjs/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  144. package/cjs/component/tooltip/handler/utils/position.js +14 -14
  145. package/cjs/component/tooltip/handler/utils/position.js.map +1 -1
  146. package/cjs/constant/hierarchy.js +1 -2
  147. package/cjs/constant/scroll-bar.js +2 -1
  148. package/cjs/core/factory.js +2 -3
  149. package/cjs/core/factory.js.map +1 -1
  150. package/cjs/core/index.d.ts +1 -1
  151. package/cjs/core/index.js +1 -1
  152. package/cjs/core/index.js.map +1 -1
  153. package/cjs/data/transforms/marker-filter.d.ts +5 -0
  154. package/cjs/data/transforms/marker-filter.js +17 -0
  155. package/cjs/data/transforms/marker-filter.js.map +1 -0
  156. package/cjs/event/events/dimension/util/cartesian.js +2 -2
  157. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  158. package/cjs/interaction/drill/drillable.d.ts +1 -1
  159. package/cjs/interaction/drill/drillable.js +2 -2
  160. package/cjs/interaction/drill/drillable.js.map +1 -1
  161. package/cjs/interaction/zoom/zoomable.d.ts +1 -1
  162. package/cjs/interaction/zoom/zoomable.js +10 -10
  163. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  164. package/cjs/layout/interface.d.ts +2 -0
  165. package/cjs/layout/interface.js.map +1 -1
  166. package/cjs/layout/layout-item.d.ts +2 -1
  167. package/cjs/layout/layout-item.js +2 -1
  168. package/cjs/layout/layout-item.js.map +1 -1
  169. package/cjs/layout/util.js +91 -77
  170. package/cjs/layout/util.js.map +1 -1
  171. package/cjs/mark/arc-3d.js +2 -2
  172. package/cjs/mark/arc-3d.js.map +1 -1
  173. package/cjs/mark/arc.js +2 -2
  174. package/cjs/mark/arc.js.map +1 -1
  175. package/cjs/mark/area.js +2 -2
  176. package/cjs/mark/area.js.map +1 -1
  177. package/cjs/mark/box-plot.js +2 -2
  178. package/cjs/mark/box-plot.js.map +1 -1
  179. package/cjs/mark/cell.js +2 -2
  180. package/cjs/mark/cell.js.map +1 -1
  181. package/cjs/mark/component.js +2 -2
  182. package/cjs/mark/component.js.map +1 -1
  183. package/cjs/mark/group.js +2 -2
  184. package/cjs/mark/group.js.map +1 -1
  185. package/cjs/mark/image.js +2 -2
  186. package/cjs/mark/image.js.map +1 -1
  187. package/cjs/mark/interface/type.d.ts +1 -1
  188. package/cjs/mark/interface/type.js.map +1 -1
  189. package/cjs/mark/label.js +2 -2
  190. package/cjs/mark/label.js.map +1 -1
  191. package/cjs/mark/line.js +2 -2
  192. package/cjs/mark/line.js.map +1 -1
  193. package/cjs/mark/link-path.js +2 -2
  194. package/cjs/mark/link-path.js.map +1 -1
  195. package/cjs/mark/path.js +2 -2
  196. package/cjs/mark/path.js.map +1 -1
  197. package/cjs/mark/polygon/polygon.js +2 -2
  198. package/cjs/mark/polygon/polygon.js.map +1 -1
  199. package/cjs/mark/polygon/pyramid-3d.js +2 -2
  200. package/cjs/mark/polygon/pyramid-3d.js.map +1 -1
  201. package/cjs/mark/progress-arc.js +2 -3
  202. package/cjs/mark/progress-arc.js.map +1 -1
  203. package/cjs/mark/rect-3d.js +2 -2
  204. package/cjs/mark/rect-3d.js.map +1 -1
  205. package/cjs/mark/rect.js +2 -2
  206. package/cjs/mark/rect.js.map +1 -1
  207. package/cjs/mark/ripple.js +2 -2
  208. package/cjs/mark/ripple.js.map +1 -1
  209. package/cjs/mark/rule.js +2 -2
  210. package/cjs/mark/rule.js.map +1 -1
  211. package/cjs/mark/symbol.js +3 -3
  212. package/cjs/mark/symbol.js.map +1 -1
  213. package/cjs/mark/text.js +2 -2
  214. package/cjs/mark/text.js.map +1 -1
  215. package/cjs/mark/utils/common.js +3 -7
  216. package/cjs/mark/utils/common.js.map +1 -1
  217. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js +1 -1
  218. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -1
  219. package/cjs/region/region.js +6 -6
  220. package/cjs/region/region.js.map +1 -1
  221. package/cjs/series/area/animation.js +3 -3
  222. package/cjs/series/area/animation.js.map +1 -1
  223. package/cjs/series/area/area-transformer.js +3 -3
  224. package/cjs/series/area/area-transformer.js.map +1 -1
  225. package/cjs/series/area/area.js +6 -6
  226. package/cjs/series/area/area.js.map +1 -1
  227. package/cjs/series/area/constant.js +4 -4
  228. package/cjs/series/area/constant.js.map +1 -1
  229. package/cjs/series/bar/animation.js +3 -3
  230. package/cjs/series/bar/animation.js.map +1 -1
  231. package/cjs/series/bar/bar-3d.js +4 -4
  232. package/cjs/series/bar/bar-3d.js.map +1 -1
  233. package/cjs/series/bar/bar-transformer.js +2 -2
  234. package/cjs/series/bar/bar-transformer.js.map +1 -1
  235. package/cjs/series/bar/bar.js +15 -15
  236. package/cjs/series/bar/bar.js.map +1 -1
  237. package/cjs/series/bar/constant.js +10 -10
  238. package/cjs/series/bar/constant.js.map +1 -1
  239. package/cjs/series/base/base-series.js +9 -5
  240. package/cjs/series/base/base-series.js.map +1 -1
  241. package/cjs/series/base/constant.js +4 -4
  242. package/cjs/series/base/constant.js.map +1 -1
  243. package/cjs/series/box-plot/box-plot.js +7 -7
  244. package/cjs/series/box-plot/box-plot.js.map +1 -1
  245. package/cjs/series/box-plot/constant.js +7 -7
  246. package/cjs/series/box-plot/constant.js.map +1 -1
  247. package/cjs/series/cartesian/cartesian.d.ts +1 -0
  248. package/cjs/series/cartesian/cartesian.js +13 -10
  249. package/cjs/series/cartesian/cartesian.js.map +1 -1
  250. package/cjs/series/circle-packing/circle-packing.js +3 -3
  251. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  252. package/cjs/series/circle-packing/constant.js +4 -4
  253. package/cjs/series/circle-packing/constant.js.map +1 -1
  254. package/cjs/series/correlation/constant.js +13 -13
  255. package/cjs/series/correlation/constant.js.map +1 -1
  256. package/cjs/series/correlation/correlation-transformer.js +2 -2
  257. package/cjs/series/correlation/correlation-transformer.js.map +1 -1
  258. package/cjs/series/correlation/correlation.js +1 -1
  259. package/cjs/series/correlation/correlation.js.map +1 -1
  260. package/cjs/series/dot/constant.js +22 -22
  261. package/cjs/series/dot/constant.js.map +1 -1
  262. package/cjs/series/dot/dot.js +4 -4
  263. package/cjs/series/dot/dot.js.map +1 -1
  264. package/cjs/series/funnel/3d/funnel-3d-transformer.js +2 -2
  265. package/cjs/series/funnel/3d/funnel-3d-transformer.js.map +1 -1
  266. package/cjs/series/funnel/3d/funnel-3d.js +5 -5
  267. package/cjs/series/funnel/3d/funnel-3d.js.map +1 -1
  268. package/cjs/series/funnel/constant.js +31 -31
  269. package/cjs/series/funnel/constant.js.map +1 -1
  270. package/cjs/series/funnel/funnel-transformer.js +2 -2
  271. package/cjs/series/funnel/funnel-transformer.js.map +1 -1
  272. package/cjs/series/funnel/funnel.js +7 -7
  273. package/cjs/series/funnel/funnel.js.map +1 -1
  274. package/cjs/series/funnel/tooltip-helper.js +4 -4
  275. package/cjs/series/funnel/tooltip-helper.js.map +1 -1
  276. package/cjs/series/gauge/constant.js +16 -16
  277. package/cjs/series/gauge/constant.js.map +1 -1
  278. package/cjs/series/gauge/gauge-pointer.js +6 -6
  279. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  280. package/cjs/series/gauge/gauge-transformer.js +2 -2
  281. package/cjs/series/gauge/gauge-transformer.js.map +1 -1
  282. package/cjs/series/gauge/gauge.js +1 -1
  283. package/cjs/series/gauge/gauge.js.map +1 -1
  284. package/cjs/series/heatmap/constant.js +7 -7
  285. package/cjs/series/heatmap/constant.js.map +1 -1
  286. package/cjs/series/heatmap/heatmap-transformer.js +2 -2
  287. package/cjs/series/heatmap/heatmap-transformer.js.map +1 -1
  288. package/cjs/series/heatmap/heatmap.js +1 -1
  289. package/cjs/series/heatmap/heatmap.js.map +1 -1
  290. package/cjs/series/interface/type.d.ts +1 -2
  291. package/cjs/series/interface/type.js +2 -4
  292. package/cjs/series/interface/type.js.map +1 -1
  293. package/cjs/series/line/animation.js +3 -3
  294. package/cjs/series/line/animation.js.map +1 -1
  295. package/cjs/series/line/line.js +2 -2
  296. package/cjs/series/line/line.js.map +1 -1
  297. package/cjs/series/link/constant.js +10 -10
  298. package/cjs/series/link/constant.js.map +1 -1
  299. package/cjs/series/link/link.js +2 -2
  300. package/cjs/series/link/link.js.map +1 -1
  301. package/cjs/series/map/constant.js +4 -4
  302. package/cjs/series/map/constant.js.map +1 -1
  303. package/cjs/series/map/map-transformer.js +2 -2
  304. package/cjs/series/map/map-transformer.js.map +1 -1
  305. package/cjs/series/map/map.js +1 -1
  306. package/cjs/series/map/map.js.map +1 -1
  307. package/cjs/series/mixin/constant.js +7 -11
  308. package/cjs/series/mixin/constant.js.map +1 -1
  309. package/cjs/series/mixin/line-mixin-transformer.js +3 -3
  310. package/cjs/series/mixin/line-mixin-transformer.js.map +1 -1
  311. package/cjs/series/mixin/line-mixin.js +6 -6
  312. package/cjs/series/mixin/line-mixin.js.map +1 -1
  313. package/cjs/series/pie/3d/pie-3d-transformer.js +2 -2
  314. package/cjs/series/pie/3d/pie-3d-transformer.js.map +1 -1
  315. package/cjs/series/pie/3d/pie-3d.js +4 -4
  316. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  317. package/cjs/series/pie/constant.js +13 -13
  318. package/cjs/series/pie/constant.js.map +1 -1
  319. package/cjs/series/pie/pie-transformer.js +2 -2
  320. package/cjs/series/pie/pie-transformer.js.map +1 -1
  321. package/cjs/series/pie/pie.js +7 -7
  322. package/cjs/series/pie/pie.js.map +1 -1
  323. package/cjs/series/polar/progress-like/constant.js +4 -4
  324. package/cjs/series/polar/progress-like/constant.js.map +1 -1
  325. package/cjs/series/progress/circular/circular.js +2 -2
  326. package/cjs/series/progress/circular/circular.js.map +1 -1
  327. package/cjs/series/progress/circular/constant.js +7 -7
  328. package/cjs/series/progress/circular/constant.js.map +1 -1
  329. package/cjs/series/progress/linear/animation.js +3 -3
  330. package/cjs/series/progress/linear/animation.js.map +1 -1
  331. package/cjs/series/progress/linear/constant.js +10 -10
  332. package/cjs/series/progress/linear/constant.js.map +1 -1
  333. package/cjs/series/progress/linear/linear.js +2 -2
  334. package/cjs/series/progress/linear/linear.js.map +1 -1
  335. package/cjs/series/radar/constant.js +4 -4
  336. package/cjs/series/radar/constant.js.map +1 -1
  337. package/cjs/series/radar/radar.js +1 -1
  338. package/cjs/series/radar/radar.js.map +1 -1
  339. package/cjs/series/range-area/range-area.js +3 -3
  340. package/cjs/series/range-area/range-area.js.map +1 -1
  341. package/cjs/series/range-area/tooltip-helper.js +2 -2
  342. package/cjs/series/range-area/tooltip-helper.js.map +1 -1
  343. package/cjs/series/range-column/3d/range-column-3d-transformer.js +2 -2
  344. package/cjs/series/range-column/3d/range-column-3d-transformer.js.map +1 -1
  345. package/cjs/series/range-column/3d/range-column-3d.js +4 -4
  346. package/cjs/series/range-column/3d/range-column-3d.js.map +1 -1
  347. package/cjs/series/range-column/constant.js +13 -13
  348. package/cjs/series/range-column/constant.js.map +1 -1
  349. package/cjs/series/range-column/interface.d.ts +2 -2
  350. package/cjs/series/range-column/interface.js.map +1 -1
  351. package/cjs/series/range-column/range-column-transformer.js +2 -2
  352. package/cjs/series/range-column/range-column-transformer.js.map +1 -1
  353. package/cjs/series/range-column/range-column.js +11 -11
  354. package/cjs/series/range-column/range-column.js.map +1 -1
  355. package/cjs/series/range-column/tooltip-helper.js +2 -2
  356. package/cjs/series/range-column/tooltip-helper.js.map +1 -1
  357. package/cjs/series/rose/constant.js +4 -4
  358. package/cjs/series/rose/constant.js.map +1 -1
  359. package/cjs/series/rose/rose-transformer.js +2 -2
  360. package/cjs/series/rose/rose-transformer.js.map +1 -1
  361. package/cjs/series/rose/rose.js +1 -1
  362. package/cjs/series/rose/rose.js.map +1 -1
  363. package/cjs/series/sankey/animation.js +5 -5
  364. package/cjs/series/sankey/animation.js.map +1 -1
  365. package/cjs/series/sankey/constant.js +7 -7
  366. package/cjs/series/sankey/constant.js.map +1 -1
  367. package/cjs/series/sankey/sankey.js +3 -3
  368. package/cjs/series/sankey/sankey.js.map +1 -1
  369. package/cjs/series/scatter/constant.js +4 -4
  370. package/cjs/series/scatter/constant.js.map +1 -1
  371. package/cjs/series/scatter/scatter-transformer.js +2 -2
  372. package/cjs/series/scatter/scatter-transformer.js.map +1 -1
  373. package/cjs/series/scatter/scatter.js +1 -1
  374. package/cjs/series/scatter/scatter.js.map +1 -1
  375. package/cjs/series/sunburst/constant.js +4 -4
  376. package/cjs/series/sunburst/constant.js.map +1 -1
  377. package/cjs/series/sunburst/sunburst.js +3 -3
  378. package/cjs/series/sunburst/sunburst.js.map +1 -1
  379. package/cjs/series/treemap/constant.js +10 -10
  380. package/cjs/series/treemap/constant.js.map +1 -1
  381. package/cjs/series/treemap/treemap-transform.js +3 -3
  382. package/cjs/series/treemap/treemap-transform.js.map +1 -1
  383. package/cjs/series/treemap/treemap.js +7 -7
  384. package/cjs/series/treemap/treemap.js.map +1 -1
  385. package/cjs/series/util/label-mark.js +5 -5
  386. package/cjs/series/util/label-mark.js.map +1 -1
  387. package/cjs/series/waterfall/constant.js +7 -7
  388. package/cjs/series/waterfall/constant.js.map +1 -1
  389. package/cjs/series/waterfall/waterfall-transformer.js +2 -2
  390. package/cjs/series/waterfall/waterfall-transformer.js.map +1 -1
  391. package/cjs/series/waterfall/waterfall.js +6 -6
  392. package/cjs/series/waterfall/waterfall.js.map +1 -1
  393. package/cjs/series/word-cloud/base.js +2 -2
  394. package/cjs/series/word-cloud/base.js.map +1 -1
  395. package/cjs/series/word-cloud/constant.js +7 -7
  396. package/cjs/series/word-cloud/constant.js.map +1 -1
  397. package/cjs/series/word-cloud/interface.d.ts +2 -11
  398. package/cjs/series/word-cloud/interface.js +1 -8
  399. package/cjs/series/word-cloud/interface.js.map +1 -1
  400. package/cjs/series/word-cloud/word-cloud-3d.js +2 -2
  401. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  402. package/cjs/theme/builtin/common/series/rangeColumn.js +3 -7
  403. package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
  404. package/cjs/typings/layout.d.ts +1 -0
  405. package/cjs/typings/layout.js.map +1 -1
  406. package/cjs/typings/shape.d.ts +0 -21
  407. package/cjs/typings/shape.js +1 -12
  408. package/cjs/typings/shape.js.map +1 -1
  409. package/cjs/typings/space.d.ts +1 -1
  410. package/cjs/typings/space.js.map +1 -1
  411. package/cjs/typings/tooltip/position.d.ts +2 -2
  412. package/cjs/typings/tooltip/position.js.map +1 -1
  413. package/esm/animation/utils.js +6 -1
  414. package/esm/animation/utils.js.map +1 -1
  415. package/esm/chart/area/area.js +3 -5
  416. package/esm/chart/area/area.js.map +1 -1
  417. package/esm/chart/bar/3d/bar-3d.js +3 -5
  418. package/esm/chart/bar/3d/bar-3d.js.map +1 -1
  419. package/esm/chart/bar/bar.js +2 -4
  420. package/esm/chart/bar/bar.js.map +1 -1
  421. package/esm/chart/base/base-chart.js +1 -3
  422. package/esm/chart/base/base-chart.js.map +1 -1
  423. package/esm/chart/box-plot/box-plot-transformer.js +2 -4
  424. package/esm/chart/box-plot/box-plot-transformer.js.map +1 -1
  425. package/esm/chart/box-plot/box-plot.js +2 -4
  426. package/esm/chart/box-plot/box-plot.js.map +1 -1
  427. package/esm/chart/circle-packing/circle-packing.js +2 -4
  428. package/esm/chart/circle-packing/circle-packing.js.map +1 -1
  429. package/esm/chart/common/common.js +2 -4
  430. package/esm/chart/common/common.js.map +1 -1
  431. package/esm/chart/correlation/correlation.js +2 -4
  432. package/esm/chart/correlation/correlation.js.map +1 -1
  433. package/esm/chart/funnel/3d/funnel-3d.js +2 -4
  434. package/esm/chart/funnel/3d/funnel-3d.js.map +1 -1
  435. package/esm/chart/funnel/funnel.js +3 -5
  436. package/esm/chart/funnel/funnel.js.map +1 -1
  437. package/esm/chart/gauge/gauge.js +2 -4
  438. package/esm/chart/gauge/gauge.js.map +1 -1
  439. package/esm/chart/heatmap/heatmap.js +2 -4
  440. package/esm/chart/heatmap/heatmap.js.map +1 -1
  441. package/esm/chart/histogram/3d/histogram-3d.js +2 -4
  442. package/esm/chart/histogram/3d/histogram-3d.js.map +1 -1
  443. package/esm/chart/histogram/histogram.js +2 -4
  444. package/esm/chart/histogram/histogram.js.map +1 -1
  445. package/esm/chart/interface/type.d.ts +1 -1
  446. package/esm/chart/interface/type.js.map +1 -1
  447. package/esm/chart/line/line.js +3 -5
  448. package/esm/chart/line/line.js.map +1 -1
  449. package/esm/chart/map/map.js +2 -4
  450. package/esm/chart/map/map.js.map +1 -1
  451. package/esm/chart/pie/3d/pie-3d.js +3 -5
  452. package/esm/chart/pie/3d/pie-3d.js.map +1 -1
  453. package/esm/chart/pie/pie.js +2 -4
  454. package/esm/chart/pie/pie.js.map +1 -1
  455. package/esm/chart/polar/polar-transformer.js +1 -3
  456. package/esm/chart/polar/polar-transformer.js.map +1 -1
  457. package/esm/chart/progress/circular/circular.js +2 -4
  458. package/esm/chart/progress/circular/circular.js.map +1 -1
  459. package/esm/chart/progress/linear/linear.js +2 -5
  460. package/esm/chart/progress/linear/linear.js.map +1 -1
  461. package/esm/chart/radar/radar.js +3 -5
  462. package/esm/chart/radar/radar.js.map +1 -1
  463. package/esm/chart/range-area/range-area-transformer.js +1 -3
  464. package/esm/chart/range-area/range-area-transformer.js.map +1 -1
  465. package/esm/chart/range-area/range-area.js +2 -4
  466. package/esm/chart/range-area/range-area.js.map +1 -1
  467. package/esm/chart/range-column/3d/range-column-3d-transformer.js +1 -3
  468. package/esm/chart/range-column/3d/range-column-3d-transformer.js.map +1 -1
  469. package/esm/chart/range-column/3d/range-column-3d.js +2 -4
  470. package/esm/chart/range-column/3d/range-column-3d.js.map +1 -1
  471. package/esm/chart/range-column/range-column-transformer.js +1 -3
  472. package/esm/chart/range-column/range-column-transformer.js.map +1 -1
  473. package/esm/chart/range-column/range-column.js +2 -4
  474. package/esm/chart/range-column/range-column.js.map +1 -1
  475. package/esm/chart/rose/rose.js +3 -5
  476. package/esm/chart/rose/rose.js.map +1 -1
  477. package/esm/chart/sankey/sankey.js +3 -5
  478. package/esm/chart/sankey/sankey.js.map +1 -1
  479. package/esm/chart/scatter/scatter.js +2 -4
  480. package/esm/chart/scatter/scatter.js.map +1 -1
  481. package/esm/chart/sequence/sequence-transformer.js +2 -4
  482. package/esm/chart/sequence/sequence-transformer.js.map +1 -1
  483. package/esm/chart/sequence/sequence.js +2 -5
  484. package/esm/chart/sequence/sequence.js.map +1 -1
  485. package/esm/chart/sunburst/sunburst.js +2 -4
  486. package/esm/chart/sunburst/sunburst.js.map +1 -1
  487. package/esm/chart/treemap/treemap.js +2 -4
  488. package/esm/chart/treemap/treemap.js.map +1 -1
  489. package/esm/chart/util.js +1 -3
  490. package/esm/chart/util.js.map +1 -1
  491. package/esm/chart/waterfall/waterfall.js +2 -4
  492. package/esm/chart/waterfall/waterfall.js.map +1 -1
  493. package/esm/chart/word-cloud/3d/word-cloud-3d.js +2 -4
  494. package/esm/chart/word-cloud/3d/word-cloud-3d.js.map +1 -1
  495. package/esm/chart/word-cloud/base/base.js +1 -3
  496. package/esm/chart/word-cloud/base/base.js.map +1 -1
  497. package/esm/chart/word-cloud/word-cloud.js +2 -4
  498. package/esm/chart/word-cloud/word-cloud.js.map +1 -1
  499. package/esm/compile/interface/compiler.d.ts +2 -0
  500. package/esm/compile/interface/compiler.js.map +1 -1
  501. package/esm/compile/mark/interface.d.ts +0 -9
  502. package/esm/compile/mark/interface.js +0 -9
  503. package/esm/compile/mark/interface.js.map +1 -1
  504. package/esm/component/axis/cartesian/axis.js +16 -12
  505. package/esm/component/axis/cartesian/axis.js.map +1 -1
  506. package/esm/component/axis/cartesian/util/common.js +1 -3
  507. package/esm/component/axis/cartesian/util/common.js.map +1 -1
  508. package/esm/component/axis/mixin/band-axis-mixin.js +1 -0
  509. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  510. package/esm/component/axis/mixin/linear-axis-mixin.js +3 -3
  511. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  512. package/esm/component/axis/polar/axis.js +19 -10
  513. package/esm/component/axis/polar/axis.js.map +1 -1
  514. package/esm/component/crosshair/cartesian.js +7 -9
  515. package/esm/component/crosshair/cartesian.js.map +1 -1
  516. package/esm/component/crosshair/config.d.ts +1 -1
  517. package/esm/component/crosshair/config.js.map +1 -1
  518. package/esm/component/crosshair/polar.js +7 -9
  519. package/esm/component/crosshair/polar.js.map +1 -1
  520. package/esm/component/data-zoom/constant.d.ts +1 -1
  521. package/esm/component/data-zoom/constant.js.map +1 -1
  522. package/esm/component/data-zoom/data-filter-base-component.js +5 -9
  523. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  524. package/esm/component/data-zoom/data-zoom/data-zoom.js +2 -4
  525. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  526. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +2 -4
  527. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  528. package/esm/component/data-zoom/util.js +1 -4
  529. package/esm/component/data-zoom/util.js.map +1 -1
  530. package/esm/component/label/label.js +3 -5
  531. package/esm/component/label/label.js.map +1 -1
  532. package/esm/component/label/total-label.js +3 -5
  533. package/esm/component/label/total-label.js.map +1 -1
  534. package/esm/component/label/util.js +3 -5
  535. package/esm/component/label/util.js.map +1 -1
  536. package/esm/component/legend/base-legend.d.ts +1 -1
  537. package/esm/component/legend/util.d.ts +2 -2
  538. package/esm/component/marker/base-marker.d.ts +5 -1
  539. package/esm/component/marker/base-marker.js.map +1 -1
  540. package/esm/component/marker/mark-area/mark-area.js +8 -2
  541. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  542. package/esm/component/marker/mark-line/mark-line.js +7 -1
  543. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  544. package/esm/component/marker/mark-point/mark-point.js +7 -1
  545. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  546. package/esm/component/marker/utils.js +2 -2
  547. package/esm/component/marker/utils.js.map +1 -1
  548. package/esm/component/tooltip/handler/base.js +1 -3
  549. package/esm/component/tooltip/handler/base.js.map +1 -1
  550. package/esm/component/tooltip/handler/dom/model/shape-model.js +12 -8
  551. package/esm/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  552. package/esm/component/tooltip/handler/utils/position.js +13 -15
  553. package/esm/component/tooltip/handler/utils/position.js.map +1 -1
  554. package/esm/constant/hierarchy.js +1 -2
  555. package/esm/constant/scroll-bar.js +2 -1
  556. package/esm/core/factory.js +1 -4
  557. package/esm/core/factory.js.map +1 -1
  558. package/esm/core/index.d.ts +1 -1
  559. package/esm/core/index.js +1 -1
  560. package/esm/core/index.js.map +1 -1
  561. package/esm/data/transforms/marker-filter.d.ts +5 -0
  562. package/esm/data/transforms/marker-filter.js +11 -0
  563. package/esm/data/transforms/marker-filter.js.map +1 -0
  564. package/esm/event/events/dimension/util/cartesian.js +1 -3
  565. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  566. package/esm/interaction/drill/drillable.d.ts +1 -1
  567. package/esm/interaction/drill/drillable.js +2 -2
  568. package/esm/interaction/drill/drillable.js.map +1 -1
  569. package/esm/interaction/zoom/zoomable.d.ts +1 -1
  570. package/esm/interaction/zoom/zoomable.js +10 -10
  571. package/esm/interaction/zoom/zoomable.js.map +1 -1
  572. package/esm/layout/interface.d.ts +2 -0
  573. package/esm/layout/interface.js.map +1 -1
  574. package/esm/layout/layout-item.d.ts +2 -1
  575. package/esm/layout/layout-item.js +2 -1
  576. package/esm/layout/layout-item.js.map +1 -1
  577. package/esm/layout/util.js +91 -77
  578. package/esm/layout/util.js.map +1 -1
  579. package/esm/mark/arc-3d.js +1 -3
  580. package/esm/mark/arc-3d.js.map +1 -1
  581. package/esm/mark/arc.js +1 -3
  582. package/esm/mark/arc.js.map +1 -1
  583. package/esm/mark/area.js +1 -3
  584. package/esm/mark/area.js.map +1 -1
  585. package/esm/mark/box-plot.js +1 -3
  586. package/esm/mark/box-plot.js.map +1 -1
  587. package/esm/mark/cell.js +1 -3
  588. package/esm/mark/cell.js.map +1 -1
  589. package/esm/mark/component.js +1 -3
  590. package/esm/mark/component.js.map +1 -1
  591. package/esm/mark/group.js +1 -3
  592. package/esm/mark/group.js.map +1 -1
  593. package/esm/mark/image.js +1 -3
  594. package/esm/mark/image.js.map +1 -1
  595. package/esm/mark/interface/type.d.ts +1 -1
  596. package/esm/mark/interface/type.js.map +1 -1
  597. package/esm/mark/label.js +1 -3
  598. package/esm/mark/label.js.map +1 -1
  599. package/esm/mark/line.js +1 -3
  600. package/esm/mark/line.js.map +1 -1
  601. package/esm/mark/link-path.js +1 -3
  602. package/esm/mark/link-path.js.map +1 -1
  603. package/esm/mark/path.js +1 -3
  604. package/esm/mark/path.js.map +1 -1
  605. package/esm/mark/polygon/polygon.js +1 -3
  606. package/esm/mark/polygon/polygon.js.map +1 -1
  607. package/esm/mark/polygon/pyramid-3d.js +1 -3
  608. package/esm/mark/polygon/pyramid-3d.js.map +1 -1
  609. package/esm/mark/progress-arc.js +1 -3
  610. package/esm/mark/progress-arc.js.map +1 -1
  611. package/esm/mark/rect-3d.js +1 -3
  612. package/esm/mark/rect-3d.js.map +1 -1
  613. package/esm/mark/rect.js +1 -3
  614. package/esm/mark/rect.js.map +1 -1
  615. package/esm/mark/ripple.js +1 -3
  616. package/esm/mark/ripple.js.map +1 -1
  617. package/esm/mark/rule.js +1 -3
  618. package/esm/mark/rule.js.map +1 -1
  619. package/esm/mark/symbol.js +2 -6
  620. package/esm/mark/symbol.js.map +1 -1
  621. package/esm/mark/text.js +1 -3
  622. package/esm/mark/text.js.map +1 -1
  623. package/esm/mark/utils/common.js +1 -3
  624. package/esm/mark/utils/common.js.map +1 -1
  625. package/esm/plugin/components/axis-sync-plugin/axis-sync.js +1 -1
  626. package/esm/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -1
  627. package/esm/region/region.js +5 -9
  628. package/esm/region/region.js.map +1 -1
  629. package/esm/series/area/animation.js +2 -4
  630. package/esm/series/area/animation.js.map +1 -1
  631. package/esm/series/area/area-transformer.js +2 -4
  632. package/esm/series/area/area-transformer.js.map +1 -1
  633. package/esm/series/area/area.js +6 -8
  634. package/esm/series/area/area.js.map +1 -1
  635. package/esm/series/area/constant.js +3 -7
  636. package/esm/series/area/constant.js.map +1 -1
  637. package/esm/series/bar/animation.js +2 -4
  638. package/esm/series/bar/animation.js.map +1 -1
  639. package/esm/series/bar/bar-3d.js +3 -5
  640. package/esm/series/bar/bar-3d.js.map +1 -1
  641. package/esm/series/bar/bar-transformer.js +1 -3
  642. package/esm/series/bar/bar-transformer.js.map +1 -1
  643. package/esm/series/bar/bar.js +9 -13
  644. package/esm/series/bar/bar.js.map +1 -1
  645. package/esm/series/bar/constant.js +9 -13
  646. package/esm/series/bar/constant.js.map +1 -1
  647. package/esm/series/base/base-series.js +7 -6
  648. package/esm/series/base/base-series.js.map +1 -1
  649. package/esm/series/base/constant.js +3 -7
  650. package/esm/series/base/constant.js.map +1 -1
  651. package/esm/series/box-plot/box-plot.js +7 -9
  652. package/esm/series/box-plot/box-plot.js.map +1 -1
  653. package/esm/series/box-plot/constant.js +6 -10
  654. package/esm/series/box-plot/constant.js.map +1 -1
  655. package/esm/series/cartesian/cartesian.d.ts +1 -0
  656. package/esm/series/cartesian/cartesian.js +13 -12
  657. package/esm/series/cartesian/cartesian.js.map +1 -1
  658. package/esm/series/circle-packing/circle-packing.js +2 -4
  659. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  660. package/esm/series/circle-packing/constant.js +3 -7
  661. package/esm/series/circle-packing/constant.js.map +1 -1
  662. package/esm/series/correlation/constant.js +12 -16
  663. package/esm/series/correlation/constant.js.map +1 -1
  664. package/esm/series/correlation/correlation-transformer.js +1 -3
  665. package/esm/series/correlation/correlation-transformer.js.map +1 -1
  666. package/esm/series/correlation/correlation.js +2 -2
  667. package/esm/series/correlation/correlation.js.map +1 -1
  668. package/esm/series/dot/constant.js +21 -25
  669. package/esm/series/dot/constant.js.map +1 -1
  670. package/esm/series/dot/dot.js +1 -3
  671. package/esm/series/dot/dot.js.map +1 -1
  672. package/esm/series/funnel/3d/funnel-3d-transformer.js +1 -3
  673. package/esm/series/funnel/3d/funnel-3d-transformer.js.map +1 -1
  674. package/esm/series/funnel/3d/funnel-3d.js +4 -6
  675. package/esm/series/funnel/3d/funnel-3d.js.map +1 -1
  676. package/esm/series/funnel/constant.js +30 -34
  677. package/esm/series/funnel/constant.js.map +1 -1
  678. package/esm/series/funnel/funnel-transformer.js +1 -3
  679. package/esm/series/funnel/funnel-transformer.js.map +1 -1
  680. package/esm/series/funnel/funnel.js +7 -11
  681. package/esm/series/funnel/funnel.js.map +1 -1
  682. package/esm/series/funnel/tooltip-helper.js +3 -5
  683. package/esm/series/funnel/tooltip-helper.js.map +1 -1
  684. package/esm/series/gauge/constant.js +15 -19
  685. package/esm/series/gauge/constant.js.map +1 -1
  686. package/esm/series/gauge/gauge-pointer.js +4 -6
  687. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  688. package/esm/series/gauge/gauge-transformer.js +1 -3
  689. package/esm/series/gauge/gauge-transformer.js.map +1 -1
  690. package/esm/series/gauge/gauge.js +2 -2
  691. package/esm/series/gauge/gauge.js.map +1 -1
  692. package/esm/series/heatmap/constant.js +6 -10
  693. package/esm/series/heatmap/constant.js.map +1 -1
  694. package/esm/series/heatmap/heatmap-transformer.js +1 -3
  695. package/esm/series/heatmap/heatmap-transformer.js.map +1 -1
  696. package/esm/series/heatmap/heatmap.js +2 -2
  697. package/esm/series/heatmap/heatmap.js.map +1 -1
  698. package/esm/series/interface/type.d.ts +1 -2
  699. package/esm/series/interface/type.js +0 -2
  700. package/esm/series/interface/type.js.map +1 -1
  701. package/esm/series/line/animation.js +2 -4
  702. package/esm/series/line/animation.js.map +1 -1
  703. package/esm/series/line/line.js +3 -3
  704. package/esm/series/line/line.js.map +1 -1
  705. package/esm/series/link/constant.js +9 -13
  706. package/esm/series/link/constant.js.map +1 -1
  707. package/esm/series/link/link.js +1 -3
  708. package/esm/series/link/link.js.map +1 -1
  709. package/esm/series/map/constant.js +3 -7
  710. package/esm/series/map/constant.js.map +1 -1
  711. package/esm/series/map/map-transformer.js +1 -3
  712. package/esm/series/map/map-transformer.js.map +1 -1
  713. package/esm/series/map/map.js +2 -2
  714. package/esm/series/map/map.js.map +1 -1
  715. package/esm/series/mixin/constant.js +6 -10
  716. package/esm/series/mixin/constant.js.map +1 -1
  717. package/esm/series/mixin/line-mixin-transformer.js +2 -4
  718. package/esm/series/mixin/line-mixin-transformer.js.map +1 -1
  719. package/esm/series/mixin/line-mixin.js +5 -9
  720. package/esm/series/mixin/line-mixin.js.map +1 -1
  721. package/esm/series/pie/3d/pie-3d-transformer.js +1 -3
  722. package/esm/series/pie/3d/pie-3d-transformer.js.map +1 -1
  723. package/esm/series/pie/3d/pie-3d.js +3 -5
  724. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  725. package/esm/series/pie/constant.js +12 -16
  726. package/esm/series/pie/constant.js.map +1 -1
  727. package/esm/series/pie/pie-transformer.js +1 -3
  728. package/esm/series/pie/pie-transformer.js.map +1 -1
  729. package/esm/series/pie/pie.js +4 -6
  730. package/esm/series/pie/pie.js.map +1 -1
  731. package/esm/series/polar/progress-like/constant.js +3 -7
  732. package/esm/series/polar/progress-like/constant.js.map +1 -1
  733. package/esm/series/progress/circular/circular.js +3 -3
  734. package/esm/series/progress/circular/circular.js.map +1 -1
  735. package/esm/series/progress/circular/constant.js +6 -10
  736. package/esm/series/progress/circular/constant.js.map +1 -1
  737. package/esm/series/progress/linear/animation.js +2 -4
  738. package/esm/series/progress/linear/animation.js.map +1 -1
  739. package/esm/series/progress/linear/constant.js +9 -13
  740. package/esm/series/progress/linear/constant.js.map +1 -1
  741. package/esm/series/progress/linear/linear.js +3 -3
  742. package/esm/series/progress/linear/linear.js.map +1 -1
  743. package/esm/series/radar/constant.js +3 -7
  744. package/esm/series/radar/constant.js.map +1 -1
  745. package/esm/series/radar/radar.js +2 -2
  746. package/esm/series/radar/radar.js.map +1 -1
  747. package/esm/series/range-area/range-area.js +2 -4
  748. package/esm/series/range-area/range-area.js.map +1 -1
  749. package/esm/series/range-area/tooltip-helper.js +1 -3
  750. package/esm/series/range-area/tooltip-helper.js.map +1 -1
  751. package/esm/series/range-column/3d/range-column-3d-transformer.js +1 -5
  752. package/esm/series/range-column/3d/range-column-3d-transformer.js.map +1 -1
  753. package/esm/series/range-column/3d/range-column-3d.js +1 -3
  754. package/esm/series/range-column/3d/range-column-3d.js.map +1 -1
  755. package/esm/series/range-column/constant.js +12 -16
  756. package/esm/series/range-column/constant.js.map +1 -1
  757. package/esm/series/range-column/interface.d.ts +2 -2
  758. package/esm/series/range-column/interface.js.map +1 -1
  759. package/esm/series/range-column/range-column-transformer.js +1 -5
  760. package/esm/series/range-column/range-column-transformer.js.map +1 -1
  761. package/esm/series/range-column/range-column.js +9 -15
  762. package/esm/series/range-column/range-column.js.map +1 -1
  763. package/esm/series/range-column/tooltip-helper.js +1 -3
  764. package/esm/series/range-column/tooltip-helper.js.map +1 -1
  765. package/esm/series/rose/constant.js +3 -7
  766. package/esm/series/rose/constant.js.map +1 -1
  767. package/esm/series/rose/rose-transformer.js +1 -3
  768. package/esm/series/rose/rose-transformer.js.map +1 -1
  769. package/esm/series/rose/rose.js +2 -2
  770. package/esm/series/rose/rose.js.map +1 -1
  771. package/esm/series/sankey/animation.js +4 -6
  772. package/esm/series/sankey/animation.js.map +1 -1
  773. package/esm/series/sankey/constant.js +6 -10
  774. package/esm/series/sankey/constant.js.map +1 -1
  775. package/esm/series/sankey/sankey.js +4 -4
  776. package/esm/series/sankey/sankey.js.map +1 -1
  777. package/esm/series/scatter/constant.js +3 -7
  778. package/esm/series/scatter/constant.js.map +1 -1
  779. package/esm/series/scatter/scatter-transformer.js +1 -3
  780. package/esm/series/scatter/scatter-transformer.js.map +1 -1
  781. package/esm/series/scatter/scatter.js +2 -2
  782. package/esm/series/scatter/scatter.js.map +1 -1
  783. package/esm/series/sunburst/constant.js +3 -7
  784. package/esm/series/sunburst/constant.js.map +1 -1
  785. package/esm/series/sunburst/sunburst.js +2 -4
  786. package/esm/series/sunburst/sunburst.js.map +1 -1
  787. package/esm/series/treemap/constant.js +9 -13
  788. package/esm/series/treemap/constant.js.map +1 -1
  789. package/esm/series/treemap/treemap-transform.js +2 -4
  790. package/esm/series/treemap/treemap-transform.js.map +1 -1
  791. package/esm/series/treemap/treemap.js +4 -6
  792. package/esm/series/treemap/treemap.js.map +1 -1
  793. package/esm/series/util/label-mark.js +4 -6
  794. package/esm/series/util/label-mark.js.map +1 -1
  795. package/esm/series/waterfall/constant.js +6 -10
  796. package/esm/series/waterfall/constant.js.map +1 -1
  797. package/esm/series/waterfall/waterfall-transformer.js +1 -3
  798. package/esm/series/waterfall/waterfall-transformer.js.map +1 -1
  799. package/esm/series/waterfall/waterfall.js +6 -8
  800. package/esm/series/waterfall/waterfall.js.map +1 -1
  801. package/esm/series/word-cloud/base.js +1 -3
  802. package/esm/series/word-cloud/base.js.map +1 -1
  803. package/esm/series/word-cloud/constant.js +6 -10
  804. package/esm/series/word-cloud/constant.js.map +1 -1
  805. package/esm/series/word-cloud/interface.d.ts +2 -11
  806. package/esm/series/word-cloud/interface.js +1 -8
  807. package/esm/series/word-cloud/interface.js.map +1 -1
  808. package/esm/series/word-cloud/word-cloud-3d.js +3 -4
  809. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  810. package/esm/theme/builtin/common/series/rangeColumn.js +2 -4
  811. package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
  812. package/esm/typings/layout.d.ts +1 -0
  813. package/esm/typings/layout.js.map +1 -1
  814. package/esm/typings/shape.d.ts +0 -21
  815. package/esm/typings/shape.js +1 -14
  816. package/esm/typings/shape.js.map +1 -1
  817. package/esm/typings/space.d.ts +1 -1
  818. package/esm/typings/space.js.map +1 -1
  819. package/esm/typings/tooltip/position.d.ts +2 -2
  820. package/esm/typings/tooltip/position.js.map +1 -1
  821. package/package.json +14 -13
@@ -31,6 +31,23 @@ function adjustItemsToCenter(allItems, isVertical, containerLength) {
31
31
  }));
32
32
  }
33
33
 
34
+ function alignSelfOfItems(allItems, isVertical, maxSizes, sign) {
35
+ let maxSize;
36
+ allItems.forEach(((lineItems, index) => {
37
+ lineItems.length > 1 && (maxSize = maxSizes[index], lineItems.forEach((item => {
38
+ if (!item.alignSelf || "start" === item.alignSelf) return;
39
+ const pos = item.getLayoutStartPoint(), ratio = "middle" === item.alignSelf ? .5 : 1, delta = isVertical ? maxSize - (item.getLayoutRect().width + item.layoutPaddingLeft + item.layoutPaddingRight) : maxSize - (item.getLayoutRect().height + item.layoutPaddingTop + item.layoutPaddingBottom);
40
+ isVertical ? item.setLayoutStartPosition({
41
+ x: pos.x + sign * delta * ratio,
42
+ y: pos.y
43
+ }) : item.setLayoutStartPosition({
44
+ x: pos.x,
45
+ y: pos.y + sign * delta * ratio
46
+ });
47
+ })));
48
+ }));
49
+ }
50
+
34
51
  function layoutLeftRightStartOrMiddleItems(items, layout, limitHeight, isMiddle, position) {
35
52
  if (items.length) {
36
53
  let maxWidth = 0;
@@ -38,6 +55,7 @@ function layoutLeftRightStartOrMiddleItems(items, layout, limitHeight, isMiddle,
38
55
  let preX = isRight ? layout.rightCurrent : layout.leftCurrent, preTop = layout.topCurrent;
39
56
  const allItems = [];
40
57
  let singleLineItems = [];
58
+ const maxWidths = [];
41
59
  items.forEach((item => {
42
60
  const layoutRect = layout.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
43
61
  item.setLayoutRect(rect);
@@ -45,12 +63,41 @@ function layoutLeftRightStartOrMiddleItems(items, layout, limitHeight, isMiddle,
45
63
  item.setLayoutStartPosition({
46
64
  x: preX + item.layoutOffsetX + itemOffsetX,
47
65
  y: preTop + item.layoutOffsetY + item.layoutPaddingTop
48
- }), maxWidth = Math.max(maxWidth, itemTotalWidth), preTop += itemTotalHeight, preTop > limitHeight && singleLineItems.length ? (preX += xSign * maxWidth,
49
- maxWidth = itemTotalWidth, preTop = layout.topCurrent + itemTotalHeight, item.setLayoutStartPosition({
66
+ }), preTop += itemTotalHeight, preTop > limitHeight && singleLineItems.length ? (maxWidths.push(maxWidth),
67
+ preX += xSign * maxWidth, maxWidth = itemTotalWidth, preTop = layout.topCurrent + itemTotalHeight,
68
+ item.setLayoutStartPosition({
50
69
  x: preX + item.layoutOffsetX + itemOffsetX,
51
70
  y: layout.topCurrent + item.layoutOffsetY + item.layoutPaddingTop
52
- }), allItems.push(singleLineItems), singleLineItems = [ item ]) : singleLineItems.push(item);
53
- })), allItems.push(singleLineItems), isMiddle && adjustItemsToCenter(allItems, !0, limitHeight),
71
+ }), allItems.push(singleLineItems), singleLineItems = [ item ]) : (maxWidth = Math.max(maxWidth, itemTotalWidth),
72
+ singleLineItems.push(item));
73
+ })), maxWidths.push(maxWidth), allItems.push(singleLineItems), alignSelfOfItems(allItems, !0, maxWidths, xSign),
74
+ isMiddle && adjustItemsToCenter(allItems, !0, limitHeight), isRight ? layout.rightCurrent = preX + xSign * maxWidth : layout.leftCurrent = preX + xSign * maxWidth;
75
+ }
76
+ }
77
+
78
+ function layoutLeftRightEndItems(items, layout, limitWidth, position) {
79
+ if (items.length) {
80
+ let maxWidth = 0;
81
+ const isRight = "right" === position, xSign = isRight ? -1 : 1;
82
+ let preX = isRight ? layout.rightCurrent : layout.leftCurrent, preBottom = layout.bottomCurrent;
83
+ const allItems = [];
84
+ let singleLineItems = [];
85
+ const maxWidths = [];
86
+ items.forEach((item => {
87
+ const layoutRect = layout.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
88
+ item.setLayoutRect(rect);
89
+ const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom, itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight, itemOffsetX = isRight ? -rect.width - item.layoutPaddingRight : item.layoutPaddingLeft;
90
+ preBottom < itemTotalHeight && singleLineItems.length ? (maxWidths.push(maxWidth),
91
+ preX += xSign * maxWidth, maxWidth = itemTotalWidth, preBottom = layout.bottomCurrent,
92
+ item.setLayoutStartPosition({
93
+ x: preX + item.layoutOffsetX + itemOffsetX,
94
+ y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom
95
+ }), allItems.push(singleLineItems), singleLineItems = [ item ]) : (item.setLayoutStartPosition({
96
+ x: preX + item.layoutOffsetX + itemOffsetX,
97
+ y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom
98
+ }), maxWidth = Math.max(maxWidth, itemTotalWidth), preBottom -= itemTotalHeight,
99
+ singleLineItems.push(item));
100
+ })), maxWidths.push(maxWidth), allItems.push(singleLineItems), alignSelfOfItems(allItems, !0, maxWidths, xSign),
54
101
  isRight ? layout.rightCurrent = preX + xSign * maxWidth : layout.leftCurrent = preX + xSign * maxWidth;
55
102
  }
56
103
  }
@@ -61,6 +108,7 @@ function layoutTopBottomStartOrMiddleItems(items, layout, limitWidth, isMiddle,
61
108
  let maxHeight = 0, preLeft = layout.leftCurrent, preY = isTop ? layout.topCurrent : layout.bottomCurrent;
62
109
  const allItems = [];
63
110
  let singleLineItems = [];
111
+ const maxHeights = [];
64
112
  items.forEach((item => {
65
113
  const layoutRect = layout.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
66
114
  item.setLayoutRect(rect);
@@ -68,102 +116,68 @@ function layoutTopBottomStartOrMiddleItems(items, layout, limitWidth, isMiddle,
68
116
  item.setLayoutStartPosition({
69
117
  x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,
70
118
  y: preY + item.layoutOffsetY + itemOffsetY
71
- }), maxHeight = Math.max(maxHeight, itemTotalHeight), preLeft += itemTotalWidth,
72
- preLeft > limitWidth && singleLineItems.length ? (preLeft = layout.leftCurrent + itemTotalWidth,
73
- preY += ySign * maxHeight, maxHeight = itemTotalHeight, item.setLayoutStartPosition({
119
+ }), preLeft += itemTotalWidth, preLeft > limitWidth && singleLineItems.length ? (maxHeights.push(maxHeight),
120
+ preLeft = layout.leftCurrent + itemTotalWidth, preY += ySign * maxHeight, maxHeight = itemTotalHeight,
121
+ item.setLayoutStartPosition({
74
122
  x: layout.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,
75
123
  y: preY + item.layoutOffsetY + itemOffsetY
76
- }), allItems.push(singleLineItems), singleLineItems = [ item ]) : singleLineItems.push(item);
77
- })), allItems.push(singleLineItems), isMiddle && adjustItemsToCenter(allItems, !1, limitWidth),
78
- isTop ? layout.topCurrent = preY + ySign * maxHeight : layout.bottomCurrent = preY + ySign * maxHeight;
124
+ }), allItems.push(singleLineItems), singleLineItems = [ item ]) : (maxHeight = Math.max(maxHeight, itemTotalHeight),
125
+ singleLineItems.push(item));
126
+ })), maxHeights.push(maxHeight), allItems.push(singleLineItems), alignSelfOfItems(allItems, !1, maxHeights, ySign),
127
+ isMiddle && adjustItemsToCenter(allItems, !1, limitWidth), isTop ? layout.topCurrent = preY + ySign * maxHeight : layout.bottomCurrent = preY + ySign * maxHeight;
79
128
  }
80
129
  }
81
130
 
82
- export function layoutLeftInlineItems(items, layout, limitHeight) {
83
- const {startItems: startItems, middleItems: middleItems, endItems: endItems} = getPositionItems(items);
84
- if (startItems.length && layoutLeftRightStartOrMiddleItems(startItems, layout, limitHeight, !1, "left"),
85
- middleItems.length && layoutLeftRightStartOrMiddleItems(middleItems, layout, limitHeight, !0, "left"),
86
- endItems.length) {
87
- let maxWidth = 0, preLeft = layout.leftCurrent, preBottom = layout.bottomCurrent;
88
- endItems.forEach((item => {
131
+ function layoutTopBottomEndItems(items, layout, limitWidth, position) {
132
+ if (items.length) {
133
+ const isTop = "top" === position, ySign = isTop ? 1 : -1;
134
+ let maxHeight = 0, preRight = layout.rightCurrent, preY = isTop ? layout.topCurrent : layout.bottomCurrent;
135
+ const allItems = [];
136
+ let singleLineItems = [];
137
+ const maxHeights = [];
138
+ items.forEach((item => {
89
139
  const layoutRect = layout.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
90
140
  item.setLayoutRect(rect);
91
- const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom, itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;
92
- preBottom < itemTotalHeight ? (preLeft += maxWidth, maxWidth = itemTotalWidth, preBottom = layout.bottomCurrent,
141
+ const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom, itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight, itemOffsetY = isTop ? item.layoutPaddingTop : -rect.height - item.layoutPaddingBottom;
142
+ preRight < itemTotalWidth && singleLineItems.length ? (preRight = layout.rightCurrent,
143
+ preY += ySign * maxHeight, maxHeight = itemTotalHeight, item.setLayoutStartPosition({
144
+ x: layout.rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,
145
+ y: preY + item.layoutOffsetY + itemOffsetY
146
+ }), allItems.push(singleLineItems), singleLineItems = [ item ]) : (singleLineItems.push(item),
93
147
  item.setLayoutStartPosition({
94
- x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,
95
- y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom
96
- })) : (item.setLayoutStartPosition({
97
- x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,
98
- y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom
99
- }), maxWidth = Math.max(maxWidth, itemTotalWidth), preBottom -= itemTotalHeight);
100
- })), layout.leftCurrent = preLeft + maxWidth;
148
+ x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,
149
+ y: preY + item.layoutOffsetY + itemOffsetY
150
+ }), maxHeight = Math.max(maxHeight, itemTotalHeight), preRight -= itemTotalWidth);
151
+ })), maxHeights.push(maxHeight), allItems.push(singleLineItems), alignSelfOfItems(allItems, !1, maxHeights, ySign),
152
+ isTop ? layout.topCurrent = preY + ySign * maxHeight : layout.bottomCurrent = preY + ySign * maxHeight;
101
153
  }
102
154
  }
103
155
 
156
+ export function layoutLeftInlineItems(items, layout, limitHeight) {
157
+ const {startItems: startItems, middleItems: middleItems, endItems: endItems} = getPositionItems(items);
158
+ startItems.length && layoutLeftRightStartOrMiddleItems(startItems, layout, limitHeight, !1, "left"),
159
+ middleItems.length && layoutLeftRightStartOrMiddleItems(middleItems, layout, limitHeight, !0, "left"),
160
+ endItems.length && layoutLeftRightEndItems(endItems, layout, limitHeight, "left");
161
+ }
162
+
104
163
  export function layoutRightInlineItems(items, layout, limitHeight) {
105
164
  const {startItems: startItems, middleItems: middleItems, endItems: endItems} = getPositionItems(items);
106
- if (startItems.length && layoutLeftRightStartOrMiddleItems(startItems, layout, limitHeight, !1, "right"),
165
+ startItems.length && layoutLeftRightStartOrMiddleItems(startItems, layout, limitHeight, !1, "right"),
107
166
  middleItems.length && layoutLeftRightStartOrMiddleItems(middleItems, layout, limitHeight, !0, "right"),
108
- endItems.length) {
109
- let maxWidth = 0, preRight = layout.rightCurrent, preBottom = layout.bottomCurrent;
110
- endItems.forEach((item => {
111
- const layoutRect = layout.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
112
- item.setLayoutRect(rect);
113
- const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom, itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;
114
- preBottom < itemTotalHeight ? (preRight -= maxWidth, maxWidth = itemTotalWidth,
115
- preBottom = layout.bottomCurrent, item.setLayoutStartPosition({
116
- x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,
117
- y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom
118
- })) : (item.setLayoutStartPosition({
119
- x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,
120
- y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom
121
- }), maxWidth = Math.max(maxWidth, itemTotalWidth), preBottom -= itemTotalHeight);
122
- })), layout.rightCurrent = preRight - maxWidth;
123
- }
167
+ endItems.length && layoutLeftRightEndItems(endItems, layout, limitHeight, "right");
124
168
  }
125
169
 
126
170
  export function layoutTopInlineItems(items, layout, limitWidth) {
127
171
  const {startItems: startItems, middleItems: middleItems, endItems: endItems} = getPositionItems(items);
128
- if (startItems.length && layoutTopBottomStartOrMiddleItems(startItems, layout, limitWidth, !1, "top"),
172
+ startItems.length && layoutTopBottomStartOrMiddleItems(startItems, layout, limitWidth, !1, "top"),
129
173
  middleItems.length && layoutTopBottomStartOrMiddleItems(middleItems, layout, limitWidth, !0, "top"),
130
- endItems.length) {
131
- let maxHeight = 0, preTop = layout.topCurrent, preRight = layout.rightCurrent;
132
- endItems.forEach((item => {
133
- const layoutRect = layout.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
134
- item.setLayoutRect(rect);
135
- const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom, itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;
136
- preRight < itemTotalWidth ? (preRight = layout.rightCurrent, preTop += maxHeight,
137
- maxHeight = itemTotalHeight, item.setLayoutStartPosition({
138
- x: layout.rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,
139
- y: preTop + item.layoutOffsetY + item.layoutPaddingTop
140
- })) : (item.setLayoutStartPosition({
141
- x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,
142
- y: preTop + item.layoutOffsetY + item.layoutPaddingTop
143
- }), maxHeight = Math.max(maxHeight, itemTotalHeight), preRight -= itemTotalWidth);
144
- })), layout.topCurrent = preTop + maxHeight;
145
- }
174
+ endItems.length && layoutTopBottomEndItems(endItems, layout, limitWidth, "top");
146
175
  }
147
176
 
148
177
  export function layoutBottomInlineItems(items, layout, limitWidth) {
149
178
  const {startItems: startItems, middleItems: middleItems, endItems: endItems} = getPositionItems(items);
150
- if (startItems.length && layoutTopBottomStartOrMiddleItems(startItems, layout, limitWidth, !1, "bottom"),
179
+ startItems.length && layoutTopBottomStartOrMiddleItems(startItems, layout, limitWidth, !1, "bottom"),
151
180
  middleItems.length && layoutTopBottomStartOrMiddleItems(middleItems, layout, limitWidth, !0, "bottom"),
152
- endItems.length) {
153
- let maxHeight = 0, preBottom = layout.bottomCurrent, preRight = layout.rightCurrent;
154
- endItems.forEach((item => {
155
- const layoutRect = layout.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
156
- item.setLayoutRect(rect);
157
- const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom, itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;
158
- preRight < itemTotalWidth ? (preRight = layout.rightCurrent, preBottom -= maxHeight,
159
- maxHeight = itemTotalHeight, item.setLayoutStartPosition({
160
- x: layout.rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,
161
- y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom
162
- })) : (item.setLayoutStartPosition({
163
- x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,
164
- y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom
165
- }), maxHeight = Math.max(maxHeight, itemTotalHeight), preRight -= itemTotalWidth);
166
- })), layout.bottomCurrent = preBottom - maxHeight;
167
- }
181
+ endItems.length && layoutTopBottomEndItems(endItems, layout, limitWidth, "bottom");
168
182
  }
169
183
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { isNil, last } from '@visactor/vutils';\nimport type { Layout } from './base-layout';\nimport type { ILayoutItem } from './interface';\n\nfunction getPositionItems(items: ILayoutItem[]) {\n const startItems: ILayoutItem[] = [];\n const middleItems: ILayoutItem[] = [];\n const endItems: ILayoutItem[] = [];\n\n items.forEach(item => {\n if (isNil(item.getSpec().position) || item.getSpec().position === 'start') {\n startItems.push(item);\n } else if (item.getSpec().position === 'middle') {\n middleItems.push(item);\n } else if (item.getSpec().position === 'end') {\n endItems.push(item);\n }\n });\n\n return {\n startItems,\n endItems,\n middleItems\n };\n}\n\nfunction adjustItemsToCenter(allItems: ILayoutItem[][], isVertical: boolean, containerLength: number) {\n if (isVertical) {\n allItems.forEach(items => {\n const lastItem = last(items);\n const length =\n lastItem.getLayoutStartPoint().y + lastItem.getLayoutRect().height - items[0].getLayoutStartPoint().y;\n const centerY = (containerLength - length) / 2;\n\n items.forEach(item => {\n item.setLayoutStartPosition({\n x: item.getLayoutStartPoint().x,\n y: item.getLayoutStartPoint().y + centerY\n });\n });\n });\n } else {\n allItems.forEach(items => {\n const lastItem = last(items);\n const length =\n lastItem.getLayoutStartPoint().x + lastItem.getLayoutRect().width - items[0].getLayoutStartPoint().x;\n const centerX = (containerLength - length) / 2;\n\n items.forEach(item => {\n item.setLayoutStartPosition({\n x: item.getLayoutStartPoint().x + centerX,\n y: item.getLayoutStartPoint().y\n });\n });\n });\n }\n}\n\nfunction layoutLeftRightStartOrMiddleItems(\n items: ILayoutItem[],\n layout: Layout,\n limitHeight: number,\n isMiddle: boolean,\n position: 'left' | 'right'\n) {\n if (items.length) {\n let maxWidth = 0;\n const isRight = position === 'right';\n const xSign = isRight ? -1 : 1;\n let preX = isRight ? layout.rightCurrent : layout.leftCurrent;\n let preTop = layout.topCurrent;\n\n const allItems: ILayoutItem[][] = [];\n let singleLineItems: ILayoutItem[] = [];\n items.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n const itemOffsetX = isRight ? -rect.width - item.layoutPaddingRight : item.layoutPaddingLeft;\n item.setLayoutStartPosition({\n x: preX + item.layoutOffsetX + itemOffsetX,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight && singleLineItems.length) {\n preX += xSign * maxWidth;\n maxWidth = itemTotalWidth;\n preTop = layout.topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preX + item.layoutOffsetX + itemOffsetX,\n y: layout.topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n allItems.push(singleLineItems);\n singleLineItems = [item];\n } else {\n singleLineItems.push(item);\n }\n });\n allItems.push(singleLineItems);\n\n if (isMiddle) {\n adjustItemsToCenter(allItems, true, limitHeight);\n }\n\n if (isRight) {\n layout.rightCurrent = preX + xSign * maxWidth;\n } else {\n layout.leftCurrent = preX + xSign * maxWidth;\n }\n }\n}\n\nfunction layoutTopBottomStartOrMiddleItems(\n items: ILayoutItem[],\n layout: Layout,\n limitWidth: number,\n isMiddle: boolean,\n position: 'top' | 'bottom'\n) {\n if (items.length) {\n const isTop = position === 'top';\n const ySign = isTop ? 1 : -1;\n let maxHeight = 0;\n let preLeft = layout.leftCurrent;\n let preY = isTop ? layout.topCurrent : layout.bottomCurrent;\n const allItems: ILayoutItem[][] = [];\n let singleLineItems: ILayoutItem[] = [];\n items.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n const itemOffsetY = isTop ? item.layoutPaddingTop : -rect.height - item.layoutPaddingBottom;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preY + item.layoutOffsetY + itemOffsetY\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth && singleLineItems.length) {\n preLeft = layout.leftCurrent + itemTotalWidth;\n preY += ySign * maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: layout.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preY + item.layoutOffsetY + itemOffsetY\n });\n allItems.push(singleLineItems);\n singleLineItems = [item];\n } else {\n singleLineItems.push(item);\n }\n });\n allItems.push(singleLineItems);\n if (isMiddle) {\n adjustItemsToCenter(allItems, false, limitWidth);\n }\n\n if (isTop) {\n layout.topCurrent = preY + ySign * maxHeight;\n } else {\n layout.bottomCurrent = preY + ySign * maxHeight;\n }\n }\n}\n\nexport function layoutLeftInlineItems(items: ILayoutItem[], layout: Layout, limitHeight: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n if (startItems.length) {\n layoutLeftRightStartOrMiddleItems(startItems, layout, limitHeight, false, 'left');\n }\n\n if (middleItems.length) {\n layoutLeftRightStartOrMiddleItems(middleItems, layout, limitHeight, true, 'left');\n }\n\n if (endItems.length) {\n let maxWidth = 0;\n let preLeft = layout.leftCurrent;\n let preBottom = layout.bottomCurrent;\n endItems.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n\n if (preBottom < itemTotalHeight) {\n preLeft += maxWidth;\n maxWidth = itemTotalWidth;\n preBottom = layout.bottomCurrent;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n } else {\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preBottom -= itemTotalHeight;\n }\n });\n layout.leftCurrent = preLeft + maxWidth;\n }\n}\n\nexport function layoutRightInlineItems(items: ILayoutItem[], layout: Layout, limitHeight: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n\n if (startItems.length) {\n layoutLeftRightStartOrMiddleItems(startItems, layout, limitHeight, false, 'right');\n }\n\n if (middleItems.length) {\n layoutLeftRightStartOrMiddleItems(middleItems, layout, limitHeight, true, 'right');\n }\n\n if (endItems.length) {\n let maxWidth = 0;\n let preRight = layout.rightCurrent;\n let preBottom = layout.bottomCurrent;\n endItems.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n if (preBottom < itemTotalHeight) {\n preRight -= maxWidth;\n maxWidth = itemTotalWidth;\n preBottom = layout.bottomCurrent;\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n } else {\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preBottom -= itemTotalHeight;\n }\n });\n layout.rightCurrent = preRight - maxWidth;\n }\n}\n\nexport function layoutTopInlineItems(items: ILayoutItem[], layout: Layout, limitWidth: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n\n if (startItems.length) {\n layoutTopBottomStartOrMiddleItems(startItems, layout, limitWidth, false, 'top');\n }\n\n if (middleItems.length) {\n layoutTopBottomStartOrMiddleItems(middleItems, layout, limitWidth, true, 'top');\n }\n\n if (endItems.length) {\n let maxHeight = 0;\n\n let preTop = layout.topCurrent;\n let preRight = layout.rightCurrent;\n endItems.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n if (preRight < itemTotalWidth) {\n preRight = layout.rightCurrent;\n preTop += maxHeight;\n maxHeight = itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: layout.rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n } else {\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preRight -= itemTotalWidth;\n }\n });\n layout.topCurrent = preTop + maxHeight;\n }\n}\n\nexport function layoutBottomInlineItems(items: ILayoutItem[], layout: Layout, limitWidth: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n\n if (startItems.length) {\n layoutTopBottomStartOrMiddleItems(startItems, layout, limitWidth, false, 'bottom');\n }\n\n if (middleItems.length) {\n layoutTopBottomStartOrMiddleItems(middleItems, layout, limitWidth, true, 'bottom');\n }\n\n if (endItems.length) {\n let maxHeight = 0;\n let preBottom = layout.bottomCurrent;\n let preRight = layout.rightCurrent;\n // 末尾的,从右往左布局\n endItems.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n if (preRight < itemTotalWidth) {\n preRight = layout.rightCurrent;\n preBottom -= maxHeight;\n maxHeight = itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: layout.rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n } else {\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preRight -= itemTotalWidth;\n }\n });\n layout.bottomCurrent = preBottom - maxHeight;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/layout/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { isNil, last } from '@visactor/vutils';\nimport type { Layout } from './base-layout';\nimport type { ILayoutItem } from './interface';\n\nfunction getPositionItems(items: ILayoutItem[]) {\n const startItems: ILayoutItem[] = [];\n const middleItems: ILayoutItem[] = [];\n const endItems: ILayoutItem[] = [];\n\n items.forEach(item => {\n if (isNil(item.getSpec().position) || item.getSpec().position === 'start') {\n startItems.push(item);\n } else if (item.getSpec().position === 'middle') {\n middleItems.push(item);\n } else if (item.getSpec().position === 'end') {\n endItems.push(item);\n }\n });\n\n return {\n startItems,\n endItems,\n middleItems\n };\n}\n\nfunction adjustItemsToCenter(allItems: ILayoutItem[][], isVertical: boolean, containerLength: number) {\n if (isVertical) {\n allItems.forEach(items => {\n const lastItem = last(items);\n const length =\n lastItem.getLayoutStartPoint().y + lastItem.getLayoutRect().height - items[0].getLayoutStartPoint().y;\n const centerY = (containerLength - length) / 2;\n\n items.forEach(item => {\n item.setLayoutStartPosition({\n x: item.getLayoutStartPoint().x,\n y: item.getLayoutStartPoint().y + centerY\n });\n });\n });\n } else {\n allItems.forEach(items => {\n const lastItem = last(items);\n const length =\n lastItem.getLayoutStartPoint().x + lastItem.getLayoutRect().width - items[0].getLayoutStartPoint().x;\n const centerX = (containerLength - length) / 2;\n\n items.forEach(item => {\n item.setLayoutStartPosition({\n x: item.getLayoutStartPoint().x + centerX,\n y: item.getLayoutStartPoint().y\n });\n });\n });\n }\n}\n\nfunction alignSelfOfItems(allItems: ILayoutItem[][], isVertical: boolean, maxSizes: number[], sign: number) {\n let maxSize: number;\n\n allItems.forEach((lineItems: ILayoutItem[], index: number) => {\n if (lineItems.length > 1) {\n maxSize = maxSizes[index];\n\n lineItems.forEach(item => {\n if (!item.alignSelf || item.alignSelf === 'start') {\n return;\n }\n\n const pos = item.getLayoutStartPoint();\n const ratio = item.alignSelf === 'middle' ? 0.5 : 1;\n const delta = isVertical\n ? maxSize - (item.getLayoutRect().width + item.layoutPaddingLeft + item.layoutPaddingRight)\n : maxSize - (item.getLayoutRect().height + item.layoutPaddingTop + item.layoutPaddingBottom);\n\n if (isVertical) {\n item.setLayoutStartPosition({\n x: pos.x + sign * delta * ratio,\n y: pos.y\n });\n } else {\n item.setLayoutStartPosition({\n x: pos.x,\n y: pos.y + sign * delta * ratio\n });\n }\n });\n }\n });\n}\n\nfunction layoutLeftRightStartOrMiddleItems(\n items: ILayoutItem[],\n layout: Layout,\n limitHeight: number,\n isMiddle: boolean,\n position: 'left' | 'right'\n) {\n if (items.length) {\n let maxWidth = 0;\n const isRight = position === 'right';\n const xSign = isRight ? -1 : 1;\n let preX = isRight ? layout.rightCurrent : layout.leftCurrent;\n let preTop = layout.topCurrent;\n\n const allItems: ILayoutItem[][] = [];\n let singleLineItems: ILayoutItem[] = [];\n const maxWidths: number[] = [];\n items.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n const itemOffsetX = isRight ? -rect.width - item.layoutPaddingRight : item.layoutPaddingLeft;\n item.setLayoutStartPosition({\n x: preX + item.layoutOffsetX + itemOffsetX,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n preTop += itemTotalHeight;\n if (preTop > limitHeight && singleLineItems.length) {\n maxWidths.push(maxWidth);\n preX += xSign * maxWidth;\n maxWidth = itemTotalWidth;\n preTop = layout.topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preX + item.layoutOffsetX + itemOffsetX,\n y: layout.topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n allItems.push(singleLineItems);\n singleLineItems = [item];\n } else {\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n singleLineItems.push(item);\n }\n });\n maxWidths.push(maxWidth);\n allItems.push(singleLineItems);\n\n alignSelfOfItems(allItems, true, maxWidths, xSign);\n\n if (isMiddle) {\n adjustItemsToCenter(allItems, true, limitHeight);\n }\n\n if (isRight) {\n layout.rightCurrent = preX + xSign * maxWidth;\n } else {\n layout.leftCurrent = preX + xSign * maxWidth;\n }\n }\n}\n\nfunction layoutLeftRightEndItems(items: ILayoutItem[], layout: Layout, limitWidth: number, position: 'left' | 'right') {\n if (items.length) {\n let maxWidth = 0;\n const isRight = position === 'right';\n const xSign = isRight ? -1 : 1;\n let preX = isRight ? layout.rightCurrent : layout.leftCurrent;\n let preBottom = layout.bottomCurrent;\n\n const allItems: ILayoutItem[][] = [];\n let singleLineItems: ILayoutItem[] = [];\n const maxWidths: number[] = [];\n items.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n const itemOffsetX = isRight ? -rect.width - item.layoutPaddingRight : item.layoutPaddingLeft;\n\n if (preBottom < itemTotalHeight && singleLineItems.length) {\n maxWidths.push(maxWidth);\n preX += xSign * maxWidth;\n maxWidth = itemTotalWidth;\n preBottom = layout.bottomCurrent;\n\n item.setLayoutStartPosition({\n x: preX + item.layoutOffsetX + itemOffsetX,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n allItems.push(singleLineItems);\n singleLineItems = [item];\n } else {\n item.setLayoutStartPosition({\n x: preX + item.layoutOffsetX + itemOffsetX,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preBottom -= itemTotalHeight;\n singleLineItems.push(item);\n }\n });\n maxWidths.push(maxWidth);\n allItems.push(singleLineItems);\n\n alignSelfOfItems(allItems, true, maxWidths, xSign);\n\n if (isRight) {\n layout.rightCurrent = preX + xSign * maxWidth;\n } else {\n layout.leftCurrent = preX + xSign * maxWidth;\n }\n }\n}\n\nfunction layoutTopBottomStartOrMiddleItems(\n items: ILayoutItem[],\n layout: Layout,\n limitWidth: number,\n isMiddle: boolean,\n position: 'top' | 'bottom'\n) {\n if (items.length) {\n const isTop = position === 'top';\n const ySign = isTop ? 1 : -1;\n let maxHeight = 0;\n let preLeft = layout.leftCurrent;\n let preY = isTop ? layout.topCurrent : layout.bottomCurrent;\n const allItems: ILayoutItem[][] = [];\n let singleLineItems: ILayoutItem[] = [];\n const maxHeights: number[] = [];\n\n items.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n const itemOffsetY = isTop ? item.layoutPaddingTop : -rect.height - item.layoutPaddingBottom;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preY + item.layoutOffsetY + itemOffsetY\n });\n\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth && singleLineItems.length) {\n maxHeights.push(maxHeight);\n preLeft = layout.leftCurrent + itemTotalWidth;\n preY += ySign * maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: layout.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preY + item.layoutOffsetY + itemOffsetY\n });\n allItems.push(singleLineItems);\n singleLineItems = [item];\n } else {\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n singleLineItems.push(item);\n }\n });\n maxHeights.push(maxHeight);\n allItems.push(singleLineItems);\n\n alignSelfOfItems(allItems, false, maxHeights, ySign);\n\n if (isMiddle) {\n adjustItemsToCenter(allItems, false, limitWidth);\n }\n\n if (isTop) {\n layout.topCurrent = preY + ySign * maxHeight;\n } else {\n layout.bottomCurrent = preY + ySign * maxHeight;\n }\n }\n}\n\nfunction layoutTopBottomEndItems(items: ILayoutItem[], layout: Layout, limitWidth: number, position: 'top' | 'bottom') {\n if (items.length) {\n const isTop = position === 'top';\n const ySign = isTop ? 1 : -1;\n let maxHeight = 0;\n let preRight = layout.rightCurrent;\n let preY = isTop ? layout.topCurrent : layout.bottomCurrent;\n\n const allItems: ILayoutItem[][] = [];\n let singleLineItems: ILayoutItem[] = [];\n const maxHeights: number[] = [];\n\n items.forEach(item => {\n const layoutRect = layout.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n const itemOffsetY = isTop ? item.layoutPaddingTop : -rect.height - item.layoutPaddingBottom;\n\n if (preRight < itemTotalWidth && singleLineItems.length) {\n preRight = layout.rightCurrent;\n preY += ySign * maxHeight;\n maxHeight = itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: layout.rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preY + item.layoutOffsetY + itemOffsetY\n });\n allItems.push(singleLineItems);\n singleLineItems = [item];\n } else {\n singleLineItems.push(item);\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preY + item.layoutOffsetY + itemOffsetY\n });\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preRight -= itemTotalWidth;\n }\n });\n maxHeights.push(maxHeight);\n allItems.push(singleLineItems);\n\n alignSelfOfItems(allItems, false, maxHeights, ySign);\n\n if (isTop) {\n layout.topCurrent = preY + ySign * maxHeight;\n } else {\n layout.bottomCurrent = preY + ySign * maxHeight;\n }\n }\n}\n\nexport function layoutLeftInlineItems(items: ILayoutItem[], layout: Layout, limitHeight: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n if (startItems.length) {\n layoutLeftRightStartOrMiddleItems(startItems, layout, limitHeight, false, 'left');\n }\n\n if (middleItems.length) {\n layoutLeftRightStartOrMiddleItems(middleItems, layout, limitHeight, true, 'left');\n }\n\n if (endItems.length) {\n layoutLeftRightEndItems(endItems, layout, limitHeight, 'left');\n }\n}\n\nexport function layoutRightInlineItems(items: ILayoutItem[], layout: Layout, limitHeight: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n\n if (startItems.length) {\n layoutLeftRightStartOrMiddleItems(startItems, layout, limitHeight, false, 'right');\n }\n\n if (middleItems.length) {\n layoutLeftRightStartOrMiddleItems(middleItems, layout, limitHeight, true, 'right');\n }\n\n if (endItems.length) {\n layoutLeftRightEndItems(endItems, layout, limitHeight, 'right');\n }\n}\n\nexport function layoutTopInlineItems(items: ILayoutItem[], layout: Layout, limitWidth: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n\n if (startItems.length) {\n layoutTopBottomStartOrMiddleItems(startItems, layout, limitWidth, false, 'top');\n }\n\n if (middleItems.length) {\n layoutTopBottomStartOrMiddleItems(middleItems, layout, limitWidth, true, 'top');\n }\n\n if (endItems.length) {\n layoutTopBottomEndItems(endItems, layout, limitWidth, 'top');\n }\n}\n\nexport function layoutBottomInlineItems(items: ILayoutItem[], layout: Layout, limitWidth: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n\n if (startItems.length) {\n layoutTopBottomStartOrMiddleItems(startItems, layout, limitWidth, false, 'bottom');\n }\n\n if (middleItems.length) {\n layoutTopBottomStartOrMiddleItems(middleItems, layout, limitWidth, true, 'bottom');\n }\n\n if (endItems.length) {\n layoutTopBottomEndItems(endItems, layout, limitWidth, 'bottom');\n }\n}\n"]}
@@ -2,8 +2,6 @@ import { Factory } from "./../core/factory";
2
2
 
3
3
  import { BaseArcMark } from "./arc";
4
4
 
5
- import { MarkTypeEnum } from "./interface/type";
6
-
7
5
  import { registerArc3dGraphic } from "@visactor/vgrammar-core";
8
6
 
9
7
  import { registerVGrammarArcAnimation } from "../animation/config";
@@ -14,7 +12,7 @@ export class Arc3dMark extends BaseArcMark {
14
12
  }
15
13
  }
16
14
 
17
- Arc3dMark.type = MarkTypeEnum.arc3d;
15
+ Arc3dMark.type = "arc3d";
18
16
 
19
17
  export const registerArc3dMark = () => {
20
18
  registerVGrammarArcAnimation(), registerArc3dGraphic(), Factory.registerMark(Arc3dMark.type, Arc3dMark);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/arc-3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAInE,MAAM,OAAO,SAAU,SAAQ,WAA2B;IAA1D;;QAEW,SAAI,GAAiB,SAAS,CAAC,IAAI,CAAC;QACnC,eAAU,GAAa,IAAI,CAAC;IACxC,CAAC;;AAHiB,cAAI,GAAG,YAAY,CAAC,KAAK,CAAC;AAK5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,4BAA4B,EAAE,CAAC;IAC/B,oBAAoB,EAAE,CAAC;IACvB,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC","file":"arc-3d.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IArc3dMarkSpec } from '../typings';\nimport { BaseArcMark } from './arc';\nimport type { IMarkRaw } from './interface';\nimport { MarkTypeEnum } from './interface/type';\nimport { registerArc3dGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarArcAnimation } from '../animation/config';\n\nexport type IArc3dMark = IMarkRaw<IArc3dMarkSpec>;\n\nexport class Arc3dMark extends BaseArcMark<IArc3dMarkSpec> implements IArc3dMark {\n static readonly type = MarkTypeEnum.arc3d;\n readonly type: MarkTypeEnum = Arc3dMark.type;\n protected _support3d?: boolean = true;\n}\n\nexport const registerArc3dMark = () => {\n registerVGrammarArcAnimation();\n registerArc3dGraphic();\n Factory.registerMark(Arc3dMark.type, Arc3dMark);\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/arc-3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAInE,MAAM,OAAO,SAAU,SAAQ,WAA2B;IAA1D;;QAEW,SAAI,GAAiB,SAAS,CAAC,IAAI,CAAC;QACnC,eAAU,GAAa,IAAI,CAAC;IACxC,CAAC;;AAHiB,cAAI,WAAsB;AAK5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,4BAA4B,EAAE,CAAC;IAC/B,oBAAoB,EAAE,CAAC;IACvB,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC","file":"arc-3d.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IArc3dMarkSpec } from '../typings';\nimport { BaseArcMark } from './arc';\nimport type { IMarkRaw } from './interface';\nimport { MarkTypeEnum } from './interface/type';\nimport { registerArc3dGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarArcAnimation } from '../animation/config';\n\nexport type IArc3dMark = IMarkRaw<IArc3dMarkSpec>;\n\nexport class Arc3dMark extends BaseArcMark<IArc3dMarkSpec> implements IArc3dMark {\n static readonly type = MarkTypeEnum.arc3d;\n readonly type: MarkTypeEnum = Arc3dMark.type;\n protected _support3d?: boolean = true;\n}\n\nexport const registerArc3dMark = () => {\n registerVGrammarArcAnimation();\n registerArc3dGraphic();\n Factory.registerMark(Arc3dMark.type, Arc3dMark);\n};\n"]}
package/esm/mark/arc.js CHANGED
@@ -6,8 +6,6 @@ import { polarToCartesian } from "../util/math";
6
6
 
7
7
  import { BaseMark } from "./base/base-mark";
8
8
 
9
- import { MarkTypeEnum } from "./interface/type";
10
-
11
9
  import { registerArcGraphic } from "@visactor/vgrammar-core";
12
10
 
13
11
  import { registerVGrammarArcAnimation } from "../animation/config";
@@ -45,7 +43,7 @@ export class ArcMark extends BaseArcMark {
45
43
  }
46
44
  }
47
45
 
48
- ArcMark.type = MarkTypeEnum.arc;
46
+ ArcMark.type = "arc";
49
47
 
50
48
  export const registerArcMark = () => {
51
49
  registerArcGraphic(), registerVGrammarArcAnimation(), Factory.registerMark(ArcMark.type, ArcMark);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/arc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAInE,MAAM,OAAO,WAAoC,SAAQ,QAAW;IAKlE,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QALb,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;QAE3C,sBAAiB,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QA2BrD,uBAAkB,GAAG,CAC7B,GAAW,EACX,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,UAAkB,EACV,EAAE;;YACV,MAAM,MAAM,GAAG,MAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAY,mCAAI,CAAC,CAAC;YACtF,OAAO,UAAU,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC;QAEQ,kBAAa,GAAG,CACxB,GAAc,EACd,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,MAAc,EACd,EAAE;YACF,MAAM,MAAM,GAAG,gBAAgB,CAAC;gBAC9B,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC;gBAC9B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAW;aACxE,CAAC,CAAC;YACH,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC;QA5CA,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAmC,CAAC;QAE9E,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAES,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CA0BF;AAED,MAAM,OAAO,OAAQ,SAAQ,WAAyB;IAAtD;;QAEW,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;IAC7C,CAAC;;AAFiB,YAAI,GAAG,YAAY,CAAC,GAAG,CAAC;AAI1C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,kBAAkB,EAAE,CAAC;IACrB,4BAA4B,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC","file":"arc.js","sourcesContent":["import { Factory } from './../core/factory';\nimport { ARC_MIDDLE_ANGLE } from '../constant';\nimport type { IArcMarkSpec, Datum, StateValueType } from '../typings';\nimport { polarToCartesian } from '../util/math';\nimport type { ExChannelCall } from './base/base-mark';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkOption, IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerArcGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarArcAnimation } from '../animation/config';\n\nexport type IArcMark = IMarkRaw<IArcMarkSpec>;\n\nexport class BaseArcMark<T extends IArcMarkSpec> extends BaseMark<T> implements IMarkRaw<T> {\n readonly type: MarkTypeEnum = ArcMark.type;\n\n _unCompileChannel = { centerOffset: true, radiusOffset: true };\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n\n // because of set object.function, this setting should be write after object init\n this._computeExChannel.x = this.computeCenter as ExChannelCall;\n this._computeExChannel.y = this.computeCenter as ExChannelCall;\n this._computeExChannel.outerRadius = this.computeOuterRadius as ExChannelCall;\n\n this._extensionChannel.centerOffset = ['x', 'y'];\n this._extensionChannel.radiusOffset = ['outerRadius'];\n }\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<T> = {\n ...super._getDefaultStyle(),\n startAngle: 0,\n endAngle: 0,\n outerRadius: 0,\n innerRadius: 0,\n cornerRadius: 0,\n lineWidth: 0\n };\n return defaultStyle;\n }\n\n protected computeOuterRadius = (\n key: string,\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n superValue: number\n ): number => {\n const offset = (this.getAttribute('radiusOffset', datum, states, opt) as number) ?? 0;\n return superValue + offset;\n };\n\n protected computeCenter = (\n key: 'x' | 'y',\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n center: number\n ) => {\n const offset = polarToCartesian({\n angle: datum[ARC_MIDDLE_ANGLE],\n radius: this.getAttribute('centerOffset', datum, states, opt) as number\n });\n return center + offset[key];\n };\n}\n\nexport class ArcMark extends BaseArcMark<IArcMarkSpec> implements IArcMark {\n static readonly type = MarkTypeEnum.arc;\n readonly type: MarkTypeEnum = ArcMark.type;\n}\n\nexport const registerArcMark = () => {\n registerArcGraphic();\n registerVGrammarArcAnimation();\n Factory.registerMark(ArcMark.type, ArcMark);\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/arc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAInE,MAAM,OAAO,WAAoC,SAAQ,QAAW;IAKlE,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QALb,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;QAE3C,sBAAiB,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QA2BrD,uBAAkB,GAAG,CAC7B,GAAW,EACX,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,UAAkB,EACV,EAAE;;YACV,MAAM,MAAM,GAAG,MAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAY,mCAAI,CAAC,CAAC;YACtF,OAAO,UAAU,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC;QAEQ,kBAAa,GAAG,CACxB,GAAc,EACd,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,MAAc,EACd,EAAE;YACF,MAAM,MAAM,GAAG,gBAAgB,CAAC;gBAC9B,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC;gBAC9B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAW;aACxE,CAAC,CAAC;YACH,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC;QA5CA,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAmC,CAAC;QAE9E,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAES,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CA0BF;AAED,MAAM,OAAO,OAAQ,SAAQ,WAAyB;IAAtD;;QAEW,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;IAC7C,CAAC;;AAFiB,YAAI,SAAoB;AAI1C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,kBAAkB,EAAE,CAAC;IACrB,4BAA4B,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC","file":"arc.js","sourcesContent":["import { Factory } from './../core/factory';\nimport { ARC_MIDDLE_ANGLE } from '../constant';\nimport type { IArcMarkSpec, Datum, StateValueType } from '../typings';\nimport { polarToCartesian } from '../util/math';\nimport type { ExChannelCall } from './base/base-mark';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkOption, IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerArcGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarArcAnimation } from '../animation/config';\n\nexport type IArcMark = IMarkRaw<IArcMarkSpec>;\n\nexport class BaseArcMark<T extends IArcMarkSpec> extends BaseMark<T> implements IMarkRaw<T> {\n readonly type: MarkTypeEnum = ArcMark.type;\n\n _unCompileChannel = { centerOffset: true, radiusOffset: true };\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n\n // because of set object.function, this setting should be write after object init\n this._computeExChannel.x = this.computeCenter as ExChannelCall;\n this._computeExChannel.y = this.computeCenter as ExChannelCall;\n this._computeExChannel.outerRadius = this.computeOuterRadius as ExChannelCall;\n\n this._extensionChannel.centerOffset = ['x', 'y'];\n this._extensionChannel.radiusOffset = ['outerRadius'];\n }\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<T> = {\n ...super._getDefaultStyle(),\n startAngle: 0,\n endAngle: 0,\n outerRadius: 0,\n innerRadius: 0,\n cornerRadius: 0,\n lineWidth: 0\n };\n return defaultStyle;\n }\n\n protected computeOuterRadius = (\n key: string,\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n superValue: number\n ): number => {\n const offset = (this.getAttribute('radiusOffset', datum, states, opt) as number) ?? 0;\n return superValue + offset;\n };\n\n protected computeCenter = (\n key: 'x' | 'y',\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n center: number\n ) => {\n const offset = polarToCartesian({\n angle: datum[ARC_MIDDLE_ANGLE],\n radius: this.getAttribute('centerOffset', datum, states, opt) as number\n });\n return center + offset[key];\n };\n}\n\nexport class ArcMark extends BaseArcMark<IArcMarkSpec> implements IArcMark {\n static readonly type = MarkTypeEnum.arc;\n readonly type: MarkTypeEnum = ArcMark.type;\n}\n\nexport const registerArcMark = () => {\n registerArcGraphic();\n registerVGrammarArcAnimation();\n Factory.registerMark(ArcMark.type, ArcMark);\n};\n"]}
package/esm/mark/area.js CHANGED
@@ -2,8 +2,6 @@ import { Factory } from "./../core/factory";
2
2
 
3
3
  import { BaseLineMark } from "./base/base-line";
4
4
 
5
- import { MarkTypeEnum } from "./interface/type";
6
-
7
5
  import { registerAreaGraphic } from "@visactor/vgrammar-core";
8
6
 
9
7
  import { registerVGrammarLineOrAreaAnimation } from "../animation/config";
@@ -22,7 +20,7 @@ export class AreaMark extends BaseLineMark {
22
20
  }
23
21
  }
24
22
 
25
- AreaMark.type = MarkTypeEnum.area;
23
+ AreaMark.type = "area";
26
24
 
27
25
  export const registerAreaMark = () => {
28
26
  Factory.registerMark(AreaMark.type, AreaMark), registerAreaGraphic(), registerVGrammarLineOrAreaAnimation();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/area.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAI1E,MAAM,OAAO,QAAS,SAAQ,YAA2B;IAAzD;;QAEW,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAahC,CAAC;IAXW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,oBAAoB;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;;AAbe,aAAI,GAAG,YAAY,CAAC,IAAI,CAAC;AAgB3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CAAC;IACtB,mCAAmC,EAAE,CAAC;AACxC,CAAC,CAAC","file":"area.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IAreaMarkSpec } from '../typings/visual';\nimport { BaseLineMark } from './base/base-line';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerAreaGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarLineOrAreaAnimation } from '../animation/config';\n\nexport type IAreaMark = IMarkRaw<IAreaMarkSpec>;\n\nexport class AreaMark extends BaseLineMark<IAreaMarkSpec> implements IAreaMark {\n static readonly type = MarkTypeEnum.area;\n readonly type = AreaMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IAreaMarkSpec> = {\n ...super._getDefaultStyle(),\n lineWidth: 0\n };\n return defaultStyle;\n }\n\n protected _getIgnoreAttributes(): string[] {\n return [];\n }\n}\n\nexport const registerAreaMark = () => {\n Factory.registerMark(AreaMark.type, AreaMark);\n registerAreaGraphic();\n registerVGrammarLineOrAreaAnimation();\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/area.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAI1E,MAAM,OAAO,QAAS,SAAQ,YAA2B;IAAzD;;QAEW,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAahC,CAAC;IAXW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,oBAAoB;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;;AAbe,aAAI,UAAqB;AAgB3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CAAC;IACtB,mCAAmC,EAAE,CAAC;AACxC,CAAC,CAAC","file":"area.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IAreaMarkSpec } from '../typings/visual';\nimport { BaseLineMark } from './base/base-line';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerAreaGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarLineOrAreaAnimation } from '../animation/config';\n\nexport type IAreaMark = IMarkRaw<IAreaMarkSpec>;\n\nexport class AreaMark extends BaseLineMark<IAreaMarkSpec> implements IAreaMark {\n static readonly type = MarkTypeEnum.area;\n readonly type = AreaMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IAreaMarkSpec> = {\n ...super._getDefaultStyle(),\n lineWidth: 0\n };\n return defaultStyle;\n }\n\n protected _getIgnoreAttributes(): string[] {\n return [];\n }\n}\n\nexport const registerAreaMark = () => {\n Factory.registerMark(AreaMark.type, AreaMark);\n registerAreaGraphic();\n registerVGrammarLineOrAreaAnimation();\n};\n"]}
@@ -4,8 +4,6 @@ import { BaseMark } from "./base/base-mark";
4
4
 
5
5
  import { registerBarBoxplotGlyph, registerBoxplotGlyph } from "@visactor/vgrammar-core";
6
6
 
7
- import { MarkTypeEnum } from "./interface/type";
8
-
9
7
  const BOX_PLOT_GLYPH_TYPE = "boxplot", BAR_BOX_PLOT_GLYPH_TYPE = "barBoxplot";
10
8
 
11
9
  export class BoxPlotMark extends BaseMark {
@@ -28,7 +26,7 @@ export class BoxPlotMark extends BaseMark {
28
26
  }
29
27
  }
30
28
 
31
- BoxPlotMark.type = MarkTypeEnum.boxPlot;
29
+ BoxPlotMark.type = "boxPlot";
32
30
 
33
31
  export const registerBoxPlotMark = () => {
34
32
  Factory.registerMark(BoxPlotMark.type, BoxPlotMark), registerBoxplotGlyph(), registerBarBoxplotGlyph();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/box-plot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGxF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAE7C,MAAM,OAAO,WAAY,SAAQ,QAA0B;IAA3D;;QAEW,SAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IA2BnC,CAAC;IAzBW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,MAAM,GACnB,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,YAAY,CAAC,KAA2B;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAGpC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI;aACjB,KAAK,CAAC,SAAS,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC,QAAQ,CAAC;aACxC,EAAE,CAAC,EAAE,CAAC;aACN,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;;AA3Be,gBAAI,GAAG,YAAY,CAAC,OAAO,CAAC;AA8B9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,oBAAoB,EAAE,CAAC;IACvB,uBAAuB,EAAE,CAAC;AAC5B,CAAC,CAAC","file":"box-plot.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IBoxPlotMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerBarBoxplotGlyph, registerBoxplotGlyph } from '@visactor/vgrammar-core';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nexport type IBoxPlotMark = IMarkRaw<IBoxPlotMarkSpec>;\n\nconst BOX_PLOT_GLYPH_TYPE = 'boxplot';\nconst BAR_BOX_PLOT_GLYPH_TYPE = 'barBoxplot';\n\nexport class BoxPlotMark extends BaseMark<IBoxPlotMarkSpec> implements IBoxPlotMark {\n static readonly type = MarkTypeEnum.boxPlot;\n readonly type = BoxPlotMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IBoxPlotMarkSpec> = {\n ...super._getDefaultStyle(),\n lineWidth: 2,\n boxWidth: 30,\n shaftWidth: 20,\n shaftShape: 'line'\n };\n return defaultStyle;\n }\n /** 创建语法元素对象 */\n protected _initProduct(group?: string | IGroupMark) {\n const shaftShape = this.getStyle('shaftShape');\n const view = this.getVGrammarView();\n\n // 声明语法元素\n const id = this.getProductId();\n const glyphType = shaftShape === 'bar' ? BAR_BOX_PLOT_GLYPH_TYPE : BOX_PLOT_GLYPH_TYPE;\n const direction = this.getStyle('direction');\n this._product = view\n .glyph(glyphType, group ?? view.rootMark)\n .id(id)\n .configureGlyph({ direction });\n this._compiledProductId = id;\n }\n}\n\nexport const registerBoxPlotMark = () => {\n Factory.registerMark(BoxPlotMark.type, BoxPlotMark);\n registerBoxplotGlyph();\n registerBarBoxplotGlyph();\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/box-plot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAMxF,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAE7C,MAAM,OAAO,WAAY,SAAQ,QAA0B;IAA3D;;QAEW,SAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IA2BnC,CAAC;IAzBW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,MAAM,GACnB,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,YAAY,CAAC,KAA2B;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAGpC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI;aACjB,KAAK,CAAC,SAAS,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC,QAAQ,CAAC;aACxC,EAAE,CAAC,EAAE,CAAC;aACN,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;;AA3Be,gBAAI,aAAwB;AA8B9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,oBAAoB,EAAE,CAAC;IACvB,uBAAuB,EAAE,CAAC;AAC5B,CAAC,CAAC","file":"box-plot.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IBoxPlotMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerBarBoxplotGlyph, registerBoxplotGlyph } from '@visactor/vgrammar-core';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nexport type IBoxPlotMark = IMarkRaw<IBoxPlotMarkSpec>;\n\nconst BOX_PLOT_GLYPH_TYPE = 'boxplot';\nconst BAR_BOX_PLOT_GLYPH_TYPE = 'barBoxplot';\n\nexport class BoxPlotMark extends BaseMark<IBoxPlotMarkSpec> implements IBoxPlotMark {\n static readonly type = MarkTypeEnum.boxPlot;\n readonly type = BoxPlotMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IBoxPlotMarkSpec> = {\n ...super._getDefaultStyle(),\n lineWidth: 2,\n boxWidth: 30,\n shaftWidth: 20,\n shaftShape: 'line'\n };\n return defaultStyle;\n }\n /** 创建语法元素对象 */\n protected _initProduct(group?: string | IGroupMark) {\n const shaftShape = this.getStyle('shaftShape');\n const view = this.getVGrammarView();\n\n // 声明语法元素\n const id = this.getProductId();\n const glyphType = shaftShape === 'bar' ? BAR_BOX_PLOT_GLYPH_TYPE : BOX_PLOT_GLYPH_TYPE;\n const direction = this.getStyle('direction');\n this._product = view\n .glyph(glyphType, group ?? view.rootMark)\n .id(id)\n .configureGlyph({ direction });\n this._compiledProductId = id;\n }\n}\n\nexport const registerBoxPlotMark = () => {\n Factory.registerMark(BoxPlotMark.type, BoxPlotMark);\n registerBoxplotGlyph();\n registerBarBoxplotGlyph();\n};\n"]}
package/esm/mark/cell.js CHANGED
@@ -1,7 +1,5 @@
1
1
  import { Factory } from "./../core/factory";
2
2
 
3
- import { MarkTypeEnum } from "./interface/type";
4
-
5
3
  import { BaseSymbolMark } from "./symbol";
6
4
 
7
5
  import { registerCellGraphic, registerCellMark as registerVgrammarCellMark } from "@visactor/vgrammar-core";
@@ -17,7 +15,7 @@ export class CellMark extends BaseSymbolMark {
17
15
  }
18
16
  }
19
17
 
20
- CellMark.type = MarkTypeEnum.cell;
18
+ CellMark.type = "cell";
21
19
 
22
20
  export const registerCellMark = () => {
23
21
  Factory.registerMark(CellMark.type, CellMark), registerCellGraphic(), registerVgrammarCellMark();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/cell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAI5G,MAAM,OAAO,QAAS,SAAQ,cAA6B;IAA3D;;QAEW,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAShC,CAAC;IAPW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,OAAO,EAAE,CAAC,GACX,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;;AATe,aAAI,GAAG,YAAY,CAAC,IAAI,CAAC;AAY3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CAAC;IACtB,wBAAwB,EAAE,CAAC;AAC7B,CAAC,CAAC","file":"cell.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { ICellMarkSpec } from '../typings';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { BaseSymbolMark } from './symbol';\nimport { registerCellGraphic, registerCellMark as registerVgrammarCellMark } from '@visactor/vgrammar-core';\n\nexport type ICellMark = IMarkRaw<ICellMarkSpec>;\n\nexport class CellMark extends BaseSymbolMark<ICellMarkSpec> implements ICellMark {\n static readonly type = MarkTypeEnum.cell;\n readonly type = CellMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<ICellMarkSpec> = {\n ...super._getDefaultStyle(),\n padding: 0\n };\n return defaultStyle;\n }\n}\n\nexport const registerCellMark = () => {\n Factory.registerMark(CellMark.type, CellMark);\n registerCellGraphic();\n registerVgrammarCellMark();\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/cell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAI5G,MAAM,OAAO,QAAS,SAAQ,cAA6B;IAA3D;;QAEW,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAShC,CAAC;IAPW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,OAAO,EAAE,CAAC,GACX,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;;AATe,aAAI,UAAqB;AAY3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CAAC;IACtB,wBAAwB,EAAE,CAAC;AAC7B,CAAC,CAAC","file":"cell.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { ICellMarkSpec } from '../typings';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { BaseSymbolMark } from './symbol';\nimport { registerCellGraphic, registerCellMark as registerVgrammarCellMark } from '@visactor/vgrammar-core';\n\nexport type ICellMark = IMarkRaw<ICellMarkSpec>;\n\nexport class CellMark extends BaseSymbolMark<ICellMarkSpec> implements ICellMark {\n static readonly type = MarkTypeEnum.cell;\n readonly type = CellMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<ICellMarkSpec> = {\n ...super._getDefaultStyle(),\n padding: 0\n };\n return defaultStyle;\n }\n}\n\nexport const registerCellMark = () => {\n Factory.registerMark(CellMark.type, CellMark);\n registerCellGraphic();\n registerVgrammarCellMark();\n};\n"]}
@@ -4,8 +4,6 @@ import { GrammarMarkType } from "@visactor/vgrammar-core";
4
4
 
5
5
  import { BaseMark } from "./base/base-mark";
6
6
 
7
- import { MarkTypeEnum } from "./interface/type";
8
-
9
7
  export class ComponentMark extends BaseMark {
10
8
  constructor(name, option) {
11
9
  super(name, option), this.type = "component", this._componentType = option.componentType,
@@ -20,7 +18,7 @@ export class ComponentMark extends BaseMark {
20
18
  }
21
19
  }
22
20
 
23
- ComponentMark.type = MarkTypeEnum.component;
21
+ ComponentMark.type = "component";
24
22
 
25
23
  export const registerComponentMark = () => {
26
24
  Factory.registerMark(ComponentMark.type, ComponentMark);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,OAAO,aAAc,SAAQ,QAAqB;IAOtD,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QANtB,SAAI,GAAW,WAAW,CAAC;QAQzB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3B,CAAC;IAES,YAAY,CAAC,KAA2B;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAGpC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI;aACjB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aACjH,EAAE,CAAC,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;;AAtBe,kBAAI,GAAG,YAAY,CAAC,SAAS,CAAC;AAyBhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC","file":"component.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport type { ICommonSpec } from '../typings';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkOption, IMarkRaw } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\n\nexport type IComponentMark = IMarkRaw<ICommonSpec>;\n\nexport class ComponentMark extends BaseMark<ICommonSpec> implements IComponentMark {\n static readonly type = MarkTypeEnum.component;\n type: string = 'component';\n\n private _componentType: string;\n private _mode: '2d' | '3d';\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n // 这里需要将 type 指定为具体的组件名称,即调用 vgrammar 的 registerComponent API 注册的组件名称\n this._componentType = option.componentType;\n this._mode = option.mode;\n }\n /** 创建语法元素对象 */\n protected _initProduct(group?: string | IGroupMark) {\n const view = this.getVGrammarView();\n\n // 声明语法元素\n const id = this.getProductId();\n this._product = view\n .mark(GrammarMarkType.component, group ?? view.rootMark, { componentType: this._componentType, mode: this._mode })\n .id(id);\n this._compiledProductId = id;\n }\n}\n\nexport const registerComponentMark = () => {\n Factory.registerMark(ComponentMark.type, ComponentMark);\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAO5C,MAAM,OAAO,aAAc,SAAQ,QAAqB;IAOtD,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QANtB,SAAI,GAAW,WAAW,CAAC;QAQzB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3B,CAAC;IAES,YAAY,CAAC,KAA2B;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAGpC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI;aACjB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aACjH,EAAE,CAAC,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;;AAtBe,kBAAI,eAA0B;AAyBhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC","file":"component.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport type { ICommonSpec } from '../typings';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkOption, IMarkRaw } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\n\nexport type IComponentMark = IMarkRaw<ICommonSpec>;\n\nexport class ComponentMark extends BaseMark<ICommonSpec> implements IComponentMark {\n static readonly type = MarkTypeEnum.component;\n type: string = 'component';\n\n private _componentType: string;\n private _mode: '2d' | '3d';\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n // 这里需要将 type 指定为具体的组件名称,即调用 vgrammar 的 registerComponent API 注册的组件名称\n this._componentType = option.componentType;\n this._mode = option.mode;\n }\n /** 创建语法元素对象 */\n protected _initProduct(group?: string | IGroupMark) {\n const view = this.getVGrammarView();\n\n // 声明语法元素\n const id = this.getProductId();\n this._product = view\n .mark(GrammarMarkType.component, group ?? view.rootMark, { componentType: this._componentType, mode: this._mode })\n .id(id);\n this._compiledProductId = id;\n }\n}\n\nexport const registerComponentMark = () => {\n Factory.registerMark(ComponentMark.type, ComponentMark);\n};\n"]}
package/esm/mark/group.js CHANGED
@@ -4,8 +4,6 @@ import { warn } from "../util/debug";
4
4
 
5
5
  import { BaseMark } from "./base/base-mark";
6
6
 
7
- import { MarkTypeEnum } from "./interface/type";
8
-
9
7
  import { registerGroupGraphic } from "@visactor/vgrammar-core";
10
8
 
11
9
  export class GroupMark extends BaseMark {
@@ -52,7 +50,7 @@ export class GroupMark extends BaseMark {
52
50
  }
53
51
  }
54
52
 
55
- GroupMark.type = MarkTypeEnum.group;
53
+ GroupMark.type = "group";
56
54
 
57
55
  export const registerGroupMark = () => {
58
56
  registerGroupGraphic(), Factory.registerMark(GroupMark.type, GroupMark);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { Maybe } from '../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { warn } from '../util/debug';\nimport type { IGroupMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkType } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerGroupGraphic, type IGroupMark as IVGrammarGroupMark } from '@visactor/vgrammar-core';\nimport type { IMarkCompileOption } from '../compile/mark';\n\nexport interface IGroupMark extends IMarkRaw<IGroupMarkSpec> {\n // groupMark的zIndex只能配在外层,encode里不生效,且无法写成signal\n // {type:'group', zIndex: 100} ✅\n // {type:'group', encode:{enter:{zIndex:{value:100}}}} ❌\n // {type:'group', zIndex: {signal: }} ❌\n\n addMark: (m: IMark) => boolean;\n removeMark: (m: IMark) => boolean;\n // TODO: 这里可能会出现mark嵌套的问题\n getMarks: () => IMark[];\n getMarkInType: (type: MarkType) => IMark[];\n getMarkInId: (id: number) => IMark | undefined;\n getMarkInName: (name: string) => IMark | undefined;\n}\n\nexport class GroupMark extends BaseMark<IGroupMarkSpec> implements IGroupMark {\n static readonly type = MarkTypeEnum.group;\n readonly type = GroupMark.type;\n protected _marks: IMark[] = [];\n getMarks(): IMark[] {\n return this._marks;\n }\n\n protected declare _product: Maybe<IVGrammarGroupMark>;\n declare getProduct: () => Maybe<IVGrammarGroupMark>;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IGroupMarkSpec> = {\n ...super._getDefaultStyle(),\n clip: false\n };\n return defaultStyle;\n }\n\n protected isMarkExist(mark: IMark): boolean {\n return this._marks.find(m => m.id === mark.id || m.name === mark.name) !== undefined;\n }\n\n addMark(mark: IMark): boolean {\n if (this.isMarkExist(mark)) {\n warn('Mark already exists, add mark failed.');\n return false;\n }\n\n this._marks.push(mark);\n return true;\n }\n\n removeMark(mark: IMark): boolean {\n const index = this._marks.findIndex(m => m.id === mark.id || m.name === mark.name);\n if (index === -1) {\n warn('Mark does not exists, removeMark failed.');\n return false;\n }\n this._marks.splice(index, 1);\n return true;\n }\n\n getMarkInType(type: MarkType) {\n return this._marks.filter(m => m.type === type);\n }\n\n getMarkInId(id: number) {\n return this._marks.find(m => m.id === id);\n }\n\n getMarkInName(name: string) {\n return this._marks.find(m => m.name === name);\n }\n\n protected _compileProduct(option?: IMarkCompileOption): void {\n // 编译自身\n super._compileProduct(option);\n\n // 设置zIndex\n this._product.configure({\n zIndex: this.getZIndex()\n });\n\n // 编译子元素\n if (!option?.ignoreChildren) {\n this.getMarks().forEach(mark => {\n // TODO: 如果语法元素已创建,先删除再重新指定父结点生成。vgrammar 是否可以动态指定 mark 父结点?\n if (mark.getProduct()) {\n mark.removeProduct();\n }\n mark.compile({ group: this._product });\n });\n }\n }\n}\n\nexport const registerGroupMark = () => {\n registerGroupGraphic();\n Factory.registerMark(GroupMark.type, GroupMark);\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,oBAAoB,EAAyC,MAAM,yBAAyB,CAAC;AAkBtG,MAAM,OAAO,SAAU,SAAQ,QAAwB;IAAvD;;QAEW,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACrB,WAAM,GAAY,EAAE,CAAC;IAwEjC,CAAC;IAvEC,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAKS,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,IAAI,EAAE,KAAK,GACZ,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,WAAW,CAAC,IAAW;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IACvF,CAAC;IAED,OAAO,CAAC,IAAW;QACjB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC1B,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,IAAW;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,IAAc;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChD,CAAC;IAES,eAAe,CAAC,MAA2B;QAEnD,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAG9B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;SACzB,CAAC,CAAC;QAGH,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAA,EAAE;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAE7B,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;oBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;iBACtB;gBACD,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;;AAzEe,cAAI,WAAsB;AA4E5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,oBAAoB,EAAE,CAAC;IACvB,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC","file":"group.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { Maybe } from '../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { warn } from '../util/debug';\nimport type { IGroupMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkType } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerGroupGraphic, type IGroupMark as IVGrammarGroupMark } from '@visactor/vgrammar-core';\nimport type { IMarkCompileOption } from '../compile/mark';\n\nexport interface IGroupMark extends IMarkRaw<IGroupMarkSpec> {\n // groupMark的zIndex只能配在外层,encode里不生效,且无法写成signal\n // {type:'group', zIndex: 100} ✅\n // {type:'group', encode:{enter:{zIndex:{value:100}}}} ❌\n // {type:'group', zIndex: {signal: }} ❌\n\n addMark: (m: IMark) => boolean;\n removeMark: (m: IMark) => boolean;\n // TODO: 这里可能会出现mark嵌套的问题\n getMarks: () => IMark[];\n getMarkInType: (type: MarkType) => IMark[];\n getMarkInId: (id: number) => IMark | undefined;\n getMarkInName: (name: string) => IMark | undefined;\n}\n\nexport class GroupMark extends BaseMark<IGroupMarkSpec> implements IGroupMark {\n static readonly type = MarkTypeEnum.group;\n readonly type = GroupMark.type;\n protected _marks: IMark[] = [];\n getMarks(): IMark[] {\n return this._marks;\n }\n\n protected declare _product: Maybe<IVGrammarGroupMark>;\n declare getProduct: () => Maybe<IVGrammarGroupMark>;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IGroupMarkSpec> = {\n ...super._getDefaultStyle(),\n clip: false\n };\n return defaultStyle;\n }\n\n protected isMarkExist(mark: IMark): boolean {\n return this._marks.find(m => m.id === mark.id || m.name === mark.name) !== undefined;\n }\n\n addMark(mark: IMark): boolean {\n if (this.isMarkExist(mark)) {\n warn('Mark already exists, add mark failed.');\n return false;\n }\n\n this._marks.push(mark);\n return true;\n }\n\n removeMark(mark: IMark): boolean {\n const index = this._marks.findIndex(m => m.id === mark.id || m.name === mark.name);\n if (index === -1) {\n warn('Mark does not exists, removeMark failed.');\n return false;\n }\n this._marks.splice(index, 1);\n return true;\n }\n\n getMarkInType(type: MarkType) {\n return this._marks.filter(m => m.type === type);\n }\n\n getMarkInId(id: number) {\n return this._marks.find(m => m.id === id);\n }\n\n getMarkInName(name: string) {\n return this._marks.find(m => m.name === name);\n }\n\n protected _compileProduct(option?: IMarkCompileOption): void {\n // 编译自身\n super._compileProduct(option);\n\n // 设置zIndex\n this._product.configure({\n zIndex: this.getZIndex()\n });\n\n // 编译子元素\n if (!option?.ignoreChildren) {\n this.getMarks().forEach(mark => {\n // TODO: 如果语法元素已创建,先删除再重新指定父结点生成。vgrammar 是否可以动态指定 mark 父结点?\n if (mark.getProduct()) {\n mark.removeProduct();\n }\n mark.compile({ group: this._product });\n });\n }\n }\n}\n\nexport const registerGroupMark = () => {\n registerGroupGraphic();\n Factory.registerMark(GroupMark.type, GroupMark);\n};\n"]}