@visactor/vchart 1.6.2 → 1.7.0-alpha.0

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 (601) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +2505 -1615
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/config.js +1 -0
  6. package/cjs/animation/config.js.map +1 -1
  7. package/cjs/animation/utils.d.ts +2 -2
  8. package/cjs/animation/utils.js +13 -13
  9. package/cjs/animation/utils.js.map +1 -1
  10. package/cjs/chart/base-chart.d.ts +4 -4
  11. package/cjs/chart/base-chart.js +33 -22
  12. package/cjs/chart/base-chart.js.map +1 -1
  13. package/cjs/chart/interface/chart.d.ts +2 -2
  14. package/cjs/chart/interface/chart.js.map +1 -1
  15. package/cjs/chart/stack.js +1 -2
  16. package/cjs/compile/compilable-base.js +2 -1
  17. package/cjs/compile/compiler.js +1 -1
  18. package/cjs/compile/compiler.js.map +1 -1
  19. package/cjs/compile/mark/compilable-mark.d.ts +1 -2
  20. package/cjs/compile/mark/compilable-mark.js +4 -7
  21. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  22. package/cjs/component/axis/base-axis.d.ts +1 -0
  23. package/cjs/component/axis/base-axis.js +2 -2
  24. package/cjs/component/axis/base-axis.js.map +1 -1
  25. package/cjs/component/axis/cartesian/axis.d.ts +12 -9
  26. package/cjs/component/axis/cartesian/axis.js +46 -55
  27. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  28. package/cjs/component/axis/cartesian/interface/theme.d.ts +1 -1
  29. package/cjs/component/axis/cartesian/interface/theme.js.map +1 -1
  30. package/cjs/component/axis/mixin/band-axis-mixin.js +1 -1
  31. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  32. package/cjs/component/axis/polar/axis.d.ts +3 -4
  33. package/cjs/component/axis/polar/axis.js +7 -12
  34. package/cjs/component/axis/polar/axis.js.map +1 -1
  35. package/cjs/component/base/base-component.d.ts +12 -4
  36. package/cjs/component/base/base-component.js +20 -10
  37. package/cjs/component/base/base-component.js.map +1 -1
  38. package/cjs/component/brush/brush.d.ts +3 -4
  39. package/cjs/component/brush/brush.js +3 -5
  40. package/cjs/component/brush/brush.js.map +1 -1
  41. package/cjs/component/crosshair/base.d.ts +4 -5
  42. package/cjs/component/crosshair/base.js +1 -1
  43. package/cjs/component/crosshair/base.js.map +1 -1
  44. package/cjs/component/crosshair/cartesian.d.ts +2 -0
  45. package/cjs/component/crosshair/cartesian.js +6 -8
  46. package/cjs/component/crosshair/cartesian.js.map +1 -1
  47. package/cjs/component/crosshair/interface/spec.d.ts +1 -1
  48. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  49. package/cjs/component/crosshair/polar.d.ts +2 -0
  50. package/cjs/component/crosshair/polar.js +5 -8
  51. package/cjs/component/crosshair/polar.js.map +1 -1
  52. package/cjs/component/custom-mark/custom-mark.d.ts +3 -4
  53. package/cjs/component/custom-mark/custom-mark.js +1 -2
  54. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  55. package/cjs/component/data-zoom/data-filter-base-component.d.ts +6 -8
  56. package/cjs/component/data-zoom/data-filter-base-component.js +26 -25
  57. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  58. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  59. package/cjs/component/data-zoom/data-zoom/data-zoom.js +12 -15
  60. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  61. package/cjs/component/data-zoom/data-zoom/interface.d.ts +1 -0
  62. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  63. package/cjs/component/data-zoom/scroll-bar/interface.d.ts +1 -1
  64. package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
  65. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +6 -9
  66. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  67. package/cjs/component/geo/geo-coordinate.d.ts +4 -3
  68. package/cjs/component/geo/geo-coordinate.js +4 -4
  69. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  70. package/cjs/component/indicator/indicator.d.ts +2 -4
  71. package/cjs/component/indicator/indicator.js +3 -4
  72. package/cjs/component/indicator/indicator.js.map +1 -1
  73. package/cjs/component/indicator/interface.d.ts +1 -1
  74. package/cjs/component/indicator/interface.js.map +1 -1
  75. package/cjs/component/interface/common.d.ts +3 -3
  76. package/cjs/component/interface/common.js.map +1 -1
  77. package/cjs/component/label/base-label.d.ts +3 -4
  78. package/cjs/component/label/base-label.js +1 -2
  79. package/cjs/component/label/base-label.js.map +1 -1
  80. package/cjs/component/label/label.d.ts +3 -3
  81. package/cjs/component/label/label.js +2 -3
  82. package/cjs/component/label/label.js.map +1 -1
  83. package/cjs/component/label/totalLabel.d.ts +3 -3
  84. package/cjs/component/label/totalLabel.js +2 -3
  85. package/cjs/component/label/totalLabel.js.map +1 -1
  86. package/cjs/component/legend/base-legend.d.ts +6 -9
  87. package/cjs/component/legend/base-legend.js +3 -9
  88. package/cjs/component/legend/base-legend.js.map +1 -1
  89. package/cjs/component/legend/continuous/legend.d.ts +4 -1
  90. package/cjs/component/legend/continuous/legend.js +7 -7
  91. package/cjs/component/legend/continuous/legend.js.map +1 -1
  92. package/cjs/component/legend/discrete/legend.d.ts +4 -1
  93. package/cjs/component/legend/discrete/legend.js +6 -7
  94. package/cjs/component/legend/discrete/legend.js.map +1 -1
  95. package/cjs/component/legend/discrete/util.d.ts +1 -1
  96. package/cjs/component/legend/discrete/util.js.map +1 -1
  97. package/cjs/component/legend/util.d.ts +1 -1
  98. package/cjs/component/map-label/component.d.ts +2 -4
  99. package/cjs/component/map-label/component.js +1 -2
  100. package/cjs/component/map-label/component.js.map +1 -1
  101. package/cjs/component/marker/base-marker.d.ts +2 -3
  102. package/cjs/component/marker/base-marker.js.map +1 -1
  103. package/cjs/component/marker/interface.d.ts +1 -1
  104. package/cjs/component/marker/interface.js.map +1 -1
  105. package/cjs/component/marker/mark-area/mark-area.d.ts +1 -3
  106. package/cjs/component/marker/mark-area/mark-area.js +6 -10
  107. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  108. package/cjs/component/marker/mark-line/mark-line.d.ts +1 -3
  109. package/cjs/component/marker/mark-line/mark-line.js +8 -12
  110. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  111. package/cjs/component/marker/mark-point/mark-point.d.ts +1 -3
  112. package/cjs/component/marker/mark-point/mark-point.js +6 -10
  113. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  114. package/cjs/component/player/interface/theme.d.ts +1 -1
  115. package/cjs/component/player/interface/theme.js.map +1 -1
  116. package/cjs/component/player/player.d.ts +6 -7
  117. package/cjs/component/player/player.js +4 -7
  118. package/cjs/component/player/player.js.map +1 -1
  119. package/cjs/component/title/interface/theme.d.ts +1 -1
  120. package/cjs/component/title/interface/theme.js.map +1 -1
  121. package/cjs/component/title/title.d.ts +6 -9
  122. package/cjs/component/title/title.js +13 -24
  123. package/cjs/component/title/title.js.map +1 -1
  124. package/cjs/component/tooltip/handler/base.js.map +1 -1
  125. package/cjs/component/tooltip/handler/dom/model/content-column-model.js +12 -10
  126. package/cjs/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  127. package/cjs/component/tooltip/handler/dom/model/shape-model.d.ts +1 -0
  128. package/cjs/component/tooltip/handler/dom/model/shape-model.js +4 -4
  129. package/cjs/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  130. package/cjs/component/tooltip/tooltip.d.ts +4 -3
  131. package/cjs/component/tooltip/tooltip.js +5 -8
  132. package/cjs/component/tooltip/tooltip.js.map +1 -1
  133. package/cjs/constant/layout.d.ts +1 -0
  134. package/cjs/constant/layout.js +2 -2
  135. package/cjs/constant/layout.js.map +1 -1
  136. package/cjs/core/factory.d.ts +5 -2
  137. package/cjs/core/factory.js +6 -3
  138. package/cjs/core/factory.js.map +1 -1
  139. package/cjs/core/index.d.ts +1 -1
  140. package/cjs/core/index.js +1 -1
  141. package/cjs/core/index.js.map +1 -1
  142. package/cjs/core/vchart.d.ts +1 -0
  143. package/cjs/core/vchart.js +11 -8
  144. package/cjs/core/vchart.js.map +1 -1
  145. package/cjs/event/events/base.d.ts +16 -0
  146. package/cjs/event/events/base.js +23 -0
  147. package/cjs/event/events/base.js.map +1 -0
  148. package/cjs/event/events/dimension/util/cartesian.d.ts +1 -1
  149. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  150. package/cjs/event/events/dimension/util/common.d.ts +1 -2
  151. package/cjs/event/events/dimension/util/common.js +1 -1
  152. package/cjs/event/events/dimension/util/common.js.map +1 -1
  153. package/cjs/event/events/dimension/util/polar.d.ts +1 -1
  154. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  155. package/cjs/event/interface.d.ts +1 -1
  156. package/cjs/event/interface.js.map +1 -1
  157. package/cjs/interaction/zoom/zoomable.d.ts +1 -0
  158. package/cjs/interaction/zoom/zoomable.js +6 -5
  159. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  160. package/cjs/layout/base-layout.d.ts +3 -5
  161. package/cjs/layout/base-layout.js +8 -8
  162. package/cjs/layout/base-layout.js.map +1 -1
  163. package/cjs/layout/grid-layout/grid-layout.d.ts +1 -2
  164. package/cjs/layout/grid-layout/grid-layout.js +6 -4
  165. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  166. package/cjs/layout/interface.d.ts +74 -6
  167. package/cjs/layout/interface.js.map +1 -1
  168. package/cjs/{model → layout}/layout-item.d.ts +35 -23
  169. package/cjs/{model → layout}/layout-item.js +100 -64
  170. package/cjs/layout/layout-item.js.map +1 -0
  171. package/cjs/layout/layout3d/index.d.ts +2 -4
  172. package/cjs/layout/layout3d/index.js +6 -6
  173. package/cjs/layout/layout3d/index.js.map +1 -1
  174. package/cjs/layout/util.d.ts +1 -1
  175. package/cjs/layout/util.js.map +1 -1
  176. package/cjs/mark/arc.js +2 -2
  177. package/cjs/mark/arc.js.map +1 -1
  178. package/cjs/mark/base/base-mark.d.ts +3 -3
  179. package/cjs/mark/base/base-mark.js +32 -72
  180. package/cjs/mark/base/base-mark.js.map +1 -1
  181. package/cjs/model/base-model.d.ts +10 -6
  182. package/cjs/model/base-model.js +23 -21
  183. package/cjs/model/base-model.js.map +1 -1
  184. package/cjs/model/interface.d.ts +20 -82
  185. package/cjs/model/interface.js.map +1 -1
  186. package/cjs/model/layout-model.d.ts +39 -0
  187. package/cjs/model/layout-model.js +75 -0
  188. package/cjs/model/layout-model.js.map +1 -0
  189. package/cjs/region/interface.d.ts +3 -2
  190. package/cjs/region/interface.js.map +1 -1
  191. package/cjs/region/region.d.ts +12 -7
  192. package/cjs/region/region.js +18 -10
  193. package/cjs/region/region.js.map +1 -1
  194. package/cjs/series/base/base-series.d.ts +10 -4
  195. package/cjs/series/base/base-series.js +27 -10
  196. package/cjs/series/base/base-series.js.map +1 -1
  197. package/cjs/series/cartesian/cartesian.js +6 -3
  198. package/cjs/series/cartesian/cartesian.js.map +1 -1
  199. package/cjs/series/funnel/interface.d.ts +1 -2
  200. package/cjs/series/funnel/interface.js.map +1 -1
  201. package/cjs/series/interface/series.d.ts +3 -2
  202. package/cjs/series/interface/series.js.map +1 -1
  203. package/cjs/series/mixin/line-mixin.d.ts +2 -1
  204. package/cjs/series/mixin/line-mixin.js.map +1 -1
  205. package/cjs/series/sankey/sankey.d.ts +2 -1
  206. package/cjs/series/sankey/sankey.js +23 -28
  207. package/cjs/series/sankey/sankey.js.map +1 -1
  208. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.d.ts +2 -0
  209. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js +22 -0
  210. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js.map +1 -0
  211. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +3 -0
  212. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js +36 -0
  213. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +1 -0
  214. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.d.ts +2 -0
  215. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js +42 -0
  216. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js.map +1 -0
  217. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +2 -0
  218. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js +22 -0
  219. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js.map +1 -0
  220. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +3 -0
  221. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js +25 -0
  222. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js.map +1 -0
  223. package/cjs/theme/builtin/common-mobile/component/crosshair.d.ts +2 -0
  224. package/cjs/theme/builtin/common-mobile/component/crosshair.js +39 -0
  225. package/cjs/theme/builtin/common-mobile/component/crosshair.js.map +1 -0
  226. package/cjs/theme/builtin/common-mobile/component/data-zoom.d.ts +2 -0
  227. package/cjs/theme/builtin/common-mobile/component/data-zoom.js +40 -0
  228. package/cjs/theme/builtin/common-mobile/component/data-zoom.js.map +1 -0
  229. package/cjs/theme/builtin/common-mobile/component/index.d.ts +2 -0
  230. package/cjs/theme/builtin/common-mobile/component/index.js +33 -0
  231. package/cjs/theme/builtin/common-mobile/component/index.js.map +1 -0
  232. package/cjs/theme/builtin/common-mobile/component/indicator.d.ts +2 -0
  233. package/cjs/theme/builtin/common-mobile/component/indicator.js +23 -0
  234. package/cjs/theme/builtin/common-mobile/component/indicator.js.map +1 -0
  235. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.d.ts +2 -0
  236. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js +23 -0
  237. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js.map +1 -0
  238. package/cjs/theme/builtin/common-mobile/component/legend/continuous.d.ts +2 -0
  239. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js +44 -0
  240. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js.map +1 -0
  241. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +2 -0
  242. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js +39 -0
  243. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +1 -0
  244. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.d.ts +2 -0
  245. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js +23 -0
  246. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js.map +1 -0
  247. package/cjs/theme/builtin/common-mobile/component/map-label.d.ts +2 -0
  248. package/cjs/theme/builtin/common-mobile/component/map-label.js +39 -0
  249. package/cjs/theme/builtin/common-mobile/component/map-label.js.map +1 -0
  250. package/cjs/theme/builtin/common-mobile/component/mark-area.d.ts +2 -0
  251. package/cjs/theme/builtin/common-mobile/component/mark-area.js +24 -0
  252. package/cjs/theme/builtin/common-mobile/component/mark-area.js.map +1 -0
  253. package/cjs/theme/builtin/common-mobile/component/mark-line.d.ts +2 -0
  254. package/cjs/theme/builtin/common-mobile/component/mark-line.js +33 -0
  255. package/cjs/theme/builtin/common-mobile/component/mark-line.js.map +1 -0
  256. package/cjs/theme/builtin/common-mobile/component/mark-point.d.ts +2 -0
  257. package/cjs/theme/builtin/common-mobile/component/mark-point.js +19 -0
  258. package/cjs/theme/builtin/common-mobile/component/mark-point.js.map +1 -0
  259. package/cjs/theme/builtin/common-mobile/component/player.d.ts +2 -0
  260. package/cjs/theme/builtin/common-mobile/component/player.js +51 -0
  261. package/cjs/theme/builtin/common-mobile/component/player.js.map +1 -0
  262. package/cjs/theme/builtin/common-mobile/component/poptip.d.ts +2 -0
  263. package/cjs/theme/builtin/common-mobile/component/poptip.js +25 -0
  264. package/cjs/theme/builtin/common-mobile/component/poptip.js.map +1 -0
  265. package/cjs/theme/builtin/common-mobile/component/title.d.ts +2 -0
  266. package/cjs/theme/builtin/common-mobile/component/title.js +23 -0
  267. package/cjs/theme/builtin/common-mobile/component/title.js.map +1 -0
  268. package/cjs/theme/builtin/common-mobile/component/tooltip.d.ts +2 -0
  269. package/cjs/theme/builtin/common-mobile/component/tooltip.js +43 -0
  270. package/cjs/theme/builtin/common-mobile/component/tooltip.js.map +1 -0
  271. package/cjs/theme/builtin/common-mobile/component/total-label.d.ts +2 -0
  272. package/cjs/theme/builtin/common-mobile/component/total-label.js +16 -0
  273. package/cjs/theme/builtin/common-mobile/component/total-label.js.map +1 -0
  274. package/cjs/theme/builtin/common-mobile/constants.d.ts +2 -0
  275. package/cjs/theme/builtin/common-mobile/constants.js +23 -0
  276. package/cjs/theme/builtin/common-mobile/constants.js.map +1 -0
  277. package/cjs/theme/builtin/common-mobile/mark.d.ts +3 -0
  278. package/cjs/theme/builtin/common-mobile/mark.js +35 -0
  279. package/cjs/theme/builtin/common-mobile/mark.js.map +1 -0
  280. package/cjs/theme/builtin/dark-mobile/index.d.ts +2 -0
  281. package/cjs/theme/builtin/dark-mobile/index.js +18 -0
  282. package/cjs/theme/builtin/dark-mobile/index.js.map +1 -0
  283. package/cjs/theme/builtin/index.js +4 -2
  284. package/cjs/theme/builtin/index.js.map +1 -1
  285. package/cjs/theme/builtin/light-mobile/index.d.ts +2 -0
  286. package/cjs/theme/builtin/light-mobile/index.js +18 -0
  287. package/cjs/theme/builtin/light-mobile/index.js.map +1 -0
  288. package/cjs/theme/interface.d.ts +1 -2
  289. package/cjs/theme/interface.js.map +1 -1
  290. package/cjs/typings/index.d.ts +1 -0
  291. package/cjs/typings/index.js +2 -1
  292. package/cjs/typings/index.js.map +1 -1
  293. package/cjs/typings/layout.d.ts +23 -0
  294. package/cjs/typings/layout.js +6 -0
  295. package/cjs/typings/layout.js.map +1 -0
  296. package/cjs/typings/spec/common.d.ts +1 -2
  297. package/cjs/typings/spec/common.js.map +1 -1
  298. package/cjs/util/space.d.ts +1 -1
  299. package/cjs/util/space.js.map +1 -1
  300. package/cjs/util/type.js +1 -1
  301. package/cjs/util/type.js.map +1 -1
  302. package/esm/animation/config.js +1 -0
  303. package/esm/animation/config.js.map +1 -1
  304. package/esm/animation/utils.d.ts +2 -2
  305. package/esm/animation/utils.js +13 -13
  306. package/esm/animation/utils.js.map +1 -1
  307. package/esm/chart/base-chart.d.ts +4 -4
  308. package/esm/chart/base-chart.js +33 -22
  309. package/esm/chart/base-chart.js.map +1 -1
  310. package/esm/chart/interface/chart.d.ts +2 -2
  311. package/esm/chart/interface/chart.js.map +1 -1
  312. package/esm/chart/stack.js +1 -2
  313. package/esm/compile/compilable-base.js +2 -1
  314. package/esm/compile/compiler.js +1 -1
  315. package/esm/compile/compiler.js.map +1 -1
  316. package/esm/compile/mark/compilable-mark.d.ts +1 -2
  317. package/esm/compile/mark/compilable-mark.js +3 -7
  318. package/esm/compile/mark/compilable-mark.js.map +1 -1
  319. package/esm/component/axis/base-axis.d.ts +1 -0
  320. package/esm/component/axis/base-axis.js +2 -2
  321. package/esm/component/axis/base-axis.js.map +1 -1
  322. package/esm/component/axis/cartesian/axis.d.ts +12 -9
  323. package/esm/component/axis/cartesian/axis.js +44 -52
  324. package/esm/component/axis/cartesian/axis.js.map +1 -1
  325. package/esm/component/axis/cartesian/interface/theme.d.ts +1 -1
  326. package/esm/component/axis/cartesian/interface/theme.js.map +1 -1
  327. package/esm/component/axis/mixin/band-axis-mixin.js +1 -1
  328. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  329. package/esm/component/axis/polar/axis.d.ts +3 -4
  330. package/esm/component/axis/polar/axis.js +7 -12
  331. package/esm/component/axis/polar/axis.js.map +1 -1
  332. package/esm/component/base/base-component.d.ts +12 -4
  333. package/esm/component/base/base-component.js +21 -11
  334. package/esm/component/base/base-component.js.map +1 -1
  335. package/esm/component/brush/brush.d.ts +3 -4
  336. package/esm/component/brush/brush.js +3 -5
  337. package/esm/component/brush/brush.js.map +1 -1
  338. package/esm/component/crosshair/base.d.ts +4 -5
  339. package/esm/component/crosshair/base.js +1 -1
  340. package/esm/component/crosshair/base.js.map +1 -1
  341. package/esm/component/crosshair/cartesian.d.ts +2 -0
  342. package/esm/component/crosshair/cartesian.js +5 -8
  343. package/esm/component/crosshair/cartesian.js.map +1 -1
  344. package/esm/component/crosshair/interface/spec.d.ts +1 -1
  345. package/esm/component/crosshair/interface/spec.js.map +1 -1
  346. package/esm/component/crosshair/polar.d.ts +2 -0
  347. package/esm/component/crosshair/polar.js +5 -8
  348. package/esm/component/crosshair/polar.js.map +1 -1
  349. package/esm/component/custom-mark/custom-mark.d.ts +3 -4
  350. package/esm/component/custom-mark/custom-mark.js +1 -2
  351. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  352. package/esm/component/data-zoom/data-filter-base-component.d.ts +6 -8
  353. package/esm/component/data-zoom/data-filter-base-component.js +26 -24
  354. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  355. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  356. package/esm/component/data-zoom/data-zoom/data-zoom.js +12 -15
  357. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  358. package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -0
  359. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  360. package/esm/component/data-zoom/scroll-bar/interface.d.ts +1 -1
  361. package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
  362. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +6 -9
  363. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  364. package/esm/component/geo/geo-coordinate.d.ts +4 -3
  365. package/esm/component/geo/geo-coordinate.js +3 -1
  366. package/esm/component/geo/geo-coordinate.js.map +1 -1
  367. package/esm/component/indicator/indicator.d.ts +2 -4
  368. package/esm/component/indicator/indicator.js +3 -4
  369. package/esm/component/indicator/indicator.js.map +1 -1
  370. package/esm/component/indicator/interface.d.ts +1 -1
  371. package/esm/component/indicator/interface.js.map +1 -1
  372. package/esm/component/interface/common.d.ts +3 -3
  373. package/esm/component/interface/common.js.map +1 -1
  374. package/esm/component/label/base-label.d.ts +3 -4
  375. package/esm/component/label/base-label.js +1 -3
  376. package/esm/component/label/base-label.js.map +1 -1
  377. package/esm/component/label/label.d.ts +3 -3
  378. package/esm/component/label/label.js +2 -3
  379. package/esm/component/label/label.js.map +1 -1
  380. package/esm/component/label/totalLabel.d.ts +3 -3
  381. package/esm/component/label/totalLabel.js +2 -3
  382. package/esm/component/label/totalLabel.js.map +1 -1
  383. package/esm/component/legend/base-legend.d.ts +6 -9
  384. package/esm/component/legend/base-legend.js +3 -9
  385. package/esm/component/legend/base-legend.js.map +1 -1
  386. package/esm/component/legend/continuous/legend.d.ts +4 -1
  387. package/esm/component/legend/continuous/legend.js +6 -7
  388. package/esm/component/legend/continuous/legend.js.map +1 -1
  389. package/esm/component/legend/discrete/legend.d.ts +4 -1
  390. package/esm/component/legend/discrete/legend.js +6 -7
  391. package/esm/component/legend/discrete/legend.js.map +1 -1
  392. package/esm/component/legend/discrete/util.d.ts +1 -1
  393. package/esm/component/legend/discrete/util.js.map +1 -1
  394. package/esm/component/legend/util.d.ts +1 -1
  395. package/esm/component/map-label/component.d.ts +2 -4
  396. package/esm/component/map-label/component.js +1 -1
  397. package/esm/component/map-label/component.js.map +1 -1
  398. package/esm/component/marker/base-marker.d.ts +2 -3
  399. package/esm/component/marker/base-marker.js.map +1 -1
  400. package/esm/component/marker/interface.d.ts +1 -1
  401. package/esm/component/marker/interface.js.map +1 -1
  402. package/esm/component/marker/mark-area/mark-area.d.ts +1 -3
  403. package/esm/component/marker/mark-area/mark-area.js +6 -9
  404. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  405. package/esm/component/marker/mark-line/mark-line.d.ts +1 -3
  406. package/esm/component/marker/mark-line/mark-line.js +8 -11
  407. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  408. package/esm/component/marker/mark-point/mark-point.d.ts +1 -3
  409. package/esm/component/marker/mark-point/mark-point.js +6 -9
  410. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  411. package/esm/component/player/interface/theme.d.ts +1 -1
  412. package/esm/component/player/interface/theme.js.map +1 -1
  413. package/esm/component/player/player.d.ts +6 -7
  414. package/esm/component/player/player.js +4 -7
  415. package/esm/component/player/player.js.map +1 -1
  416. package/esm/component/title/interface/theme.d.ts +1 -1
  417. package/esm/component/title/interface/theme.js.map +1 -1
  418. package/esm/component/title/title.d.ts +6 -9
  419. package/esm/component/title/title.js +12 -22
  420. package/esm/component/title/title.js.map +1 -1
  421. package/esm/component/tooltip/handler/base.js.map +1 -1
  422. package/esm/component/tooltip/handler/dom/model/content-column-model.js +13 -9
  423. package/esm/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  424. package/esm/component/tooltip/handler/dom/model/shape-model.d.ts +1 -0
  425. package/esm/component/tooltip/handler/dom/model/shape-model.js +4 -4
  426. package/esm/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  427. package/esm/component/tooltip/tooltip.d.ts +4 -3
  428. package/esm/component/tooltip/tooltip.js +5 -8
  429. package/esm/component/tooltip/tooltip.js.map +1 -1
  430. package/esm/constant/layout.d.ts +1 -0
  431. package/esm/constant/layout.js +2 -0
  432. package/esm/constant/layout.js.map +1 -1
  433. package/esm/core/factory.d.ts +5 -2
  434. package/esm/core/factory.js +6 -3
  435. package/esm/core/factory.js.map +1 -1
  436. package/esm/core/index.d.ts +1 -1
  437. package/esm/core/index.js +1 -1
  438. package/esm/core/index.js.map +1 -1
  439. package/esm/core/vchart.d.ts +1 -0
  440. package/esm/core/vchart.js +11 -8
  441. package/esm/core/vchart.js.map +1 -1
  442. package/esm/event/events/base.d.ts +16 -0
  443. package/esm/event/events/base.js +15 -0
  444. package/esm/event/events/base.js.map +1 -0
  445. package/esm/event/events/dimension/util/cartesian.d.ts +1 -1
  446. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  447. package/esm/event/events/dimension/util/common.d.ts +1 -2
  448. package/esm/event/events/dimension/util/common.js +1 -1
  449. package/esm/event/events/dimension/util/common.js.map +1 -1
  450. package/esm/event/events/dimension/util/polar.d.ts +1 -1
  451. package/esm/event/events/dimension/util/polar.js.map +1 -1
  452. package/esm/event/interface.d.ts +1 -1
  453. package/esm/event/interface.js.map +1 -1
  454. package/esm/interaction/zoom/zoomable.d.ts +1 -0
  455. package/esm/interaction/zoom/zoomable.js +6 -5
  456. package/esm/interaction/zoom/zoomable.js.map +1 -1
  457. package/esm/layout/base-layout.d.ts +3 -5
  458. package/esm/layout/base-layout.js +8 -8
  459. package/esm/layout/base-layout.js.map +1 -1
  460. package/esm/layout/grid-layout/grid-layout.d.ts +1 -2
  461. package/esm/layout/grid-layout/grid-layout.js +6 -4
  462. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  463. package/esm/layout/interface.d.ts +74 -6
  464. package/esm/layout/interface.js.map +1 -1
  465. package/esm/{model → layout}/layout-item.d.ts +35 -23
  466. package/esm/{model → layout}/layout-item.js +95 -63
  467. package/esm/layout/layout-item.js.map +1 -0
  468. package/esm/layout/layout3d/index.d.ts +2 -4
  469. package/esm/layout/layout3d/index.js +5 -5
  470. package/esm/layout/layout3d/index.js.map +1 -1
  471. package/esm/layout/util.d.ts +1 -1
  472. package/esm/layout/util.js.map +1 -1
  473. package/esm/mark/arc.js +2 -2
  474. package/esm/mark/arc.js.map +1 -1
  475. package/esm/mark/base/base-mark.d.ts +3 -3
  476. package/esm/mark/base/base-mark.js +30 -69
  477. package/esm/mark/base/base-mark.js.map +1 -1
  478. package/esm/model/base-model.d.ts +10 -6
  479. package/esm/model/base-model.js +24 -22
  480. package/esm/model/base-model.js.map +1 -1
  481. package/esm/model/interface.d.ts +20 -82
  482. package/esm/model/interface.js.map +1 -1
  483. package/esm/model/layout-model.d.ts +39 -0
  484. package/esm/model/layout-model.js +71 -0
  485. package/esm/model/layout-model.js.map +1 -0
  486. package/esm/region/interface.d.ts +3 -2
  487. package/esm/region/interface.js.map +1 -1
  488. package/esm/region/region.d.ts +12 -7
  489. package/esm/region/region.js +19 -11
  490. package/esm/region/region.js.map +1 -1
  491. package/esm/series/base/base-series.d.ts +10 -4
  492. package/esm/series/base/base-series.js +26 -10
  493. package/esm/series/base/base-series.js.map +1 -1
  494. package/esm/series/cartesian/cartesian.js +4 -1
  495. package/esm/series/cartesian/cartesian.js.map +1 -1
  496. package/esm/series/funnel/interface.d.ts +1 -2
  497. package/esm/series/funnel/interface.js.map +1 -1
  498. package/esm/series/interface/series.d.ts +3 -2
  499. package/esm/series/interface/series.js.map +1 -1
  500. package/esm/series/mixin/line-mixin.d.ts +2 -1
  501. package/esm/series/mixin/line-mixin.js.map +1 -1
  502. package/esm/series/sankey/sankey.d.ts +2 -1
  503. package/esm/series/sankey/sankey.js +23 -27
  504. package/esm/series/sankey/sankey.js.map +1 -1
  505. package/esm/theme/builtin/common-mobile/component/axis/band-axis.d.ts +2 -0
  506. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js +18 -0
  507. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js.map +1 -0
  508. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +3 -0
  509. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js +32 -0
  510. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +1 -0
  511. package/esm/theme/builtin/common-mobile/component/axis/common-axis.d.ts +2 -0
  512. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js +36 -0
  513. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js.map +1 -0
  514. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +2 -0
  515. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js +18 -0
  516. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js.map +1 -0
  517. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +3 -0
  518. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js +23 -0
  519. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js.map +1 -0
  520. package/esm/theme/builtin/common-mobile/component/crosshair.d.ts +2 -0
  521. package/esm/theme/builtin/common-mobile/component/crosshair.js +35 -0
  522. package/esm/theme/builtin/common-mobile/component/crosshair.js.map +1 -0
  523. package/esm/theme/builtin/common-mobile/component/data-zoom.d.ts +2 -0
  524. package/esm/theme/builtin/common-mobile/component/data-zoom.js +34 -0
  525. package/esm/theme/builtin/common-mobile/component/data-zoom.js.map +1 -0
  526. package/esm/theme/builtin/common-mobile/component/index.d.ts +2 -0
  527. package/esm/theme/builtin/common-mobile/component/index.js +65 -0
  528. package/esm/theme/builtin/common-mobile/component/index.js.map +1 -0
  529. package/esm/theme/builtin/common-mobile/component/indicator.d.ts +2 -0
  530. package/esm/theme/builtin/common-mobile/component/indicator.js +17 -0
  531. package/esm/theme/builtin/common-mobile/component/indicator.js.map +1 -0
  532. package/esm/theme/builtin/common-mobile/component/legend/color-legend.d.ts +2 -0
  533. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js +17 -0
  534. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js.map +1 -0
  535. package/esm/theme/builtin/common-mobile/component/legend/continuous.d.ts +2 -0
  536. package/esm/theme/builtin/common-mobile/component/legend/continuous.js +38 -0
  537. package/esm/theme/builtin/common-mobile/component/legend/continuous.js.map +1 -0
  538. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +2 -0
  539. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js +33 -0
  540. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +1 -0
  541. package/esm/theme/builtin/common-mobile/component/legend/size-legend.d.ts +2 -0
  542. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js +17 -0
  543. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js.map +1 -0
  544. package/esm/theme/builtin/common-mobile/component/map-label.d.ts +2 -0
  545. package/esm/theme/builtin/common-mobile/component/map-label.js +33 -0
  546. package/esm/theme/builtin/common-mobile/component/map-label.js.map +1 -0
  547. package/esm/theme/builtin/common-mobile/component/mark-area.d.ts +2 -0
  548. package/esm/theme/builtin/common-mobile/component/mark-area.js +18 -0
  549. package/esm/theme/builtin/common-mobile/component/mark-area.js.map +1 -0
  550. package/esm/theme/builtin/common-mobile/component/mark-line.d.ts +2 -0
  551. package/esm/theme/builtin/common-mobile/component/mark-line.js +27 -0
  552. package/esm/theme/builtin/common-mobile/component/mark-line.js.map +1 -0
  553. package/esm/theme/builtin/common-mobile/component/mark-point.d.ts +2 -0
  554. package/esm/theme/builtin/common-mobile/component/mark-point.js +15 -0
  555. package/esm/theme/builtin/common-mobile/component/mark-point.js.map +1 -0
  556. package/esm/theme/builtin/common-mobile/component/player.d.ts +2 -0
  557. package/esm/theme/builtin/common-mobile/component/player.js +47 -0
  558. package/esm/theme/builtin/common-mobile/component/player.js.map +1 -0
  559. package/esm/theme/builtin/common-mobile/component/poptip.d.ts +2 -0
  560. package/esm/theme/builtin/common-mobile/component/poptip.js +19 -0
  561. package/esm/theme/builtin/common-mobile/component/poptip.js.map +1 -0
  562. package/esm/theme/builtin/common-mobile/component/title.d.ts +2 -0
  563. package/esm/theme/builtin/common-mobile/component/title.js +17 -0
  564. package/esm/theme/builtin/common-mobile/component/title.js.map +1 -0
  565. package/esm/theme/builtin/common-mobile/component/tooltip.d.ts +2 -0
  566. package/esm/theme/builtin/common-mobile/component/tooltip.js +37 -0
  567. package/esm/theme/builtin/common-mobile/component/tooltip.js.map +1 -0
  568. package/esm/theme/builtin/common-mobile/component/total-label.d.ts +2 -0
  569. package/esm/theme/builtin/common-mobile/component/total-label.js +10 -0
  570. package/esm/theme/builtin/common-mobile/component/total-label.js.map +1 -0
  571. package/esm/theme/builtin/common-mobile/constants.d.ts +2 -0
  572. package/esm/theme/builtin/common-mobile/constants.js +19 -0
  573. package/esm/theme/builtin/common-mobile/constants.js.map +1 -0
  574. package/esm/theme/builtin/common-mobile/mark.d.ts +3 -0
  575. package/esm/theme/builtin/common-mobile/mark.js +31 -0
  576. package/esm/theme/builtin/common-mobile/mark.js.map +1 -0
  577. package/esm/theme/builtin/dark-mobile/index.d.ts +2 -0
  578. package/esm/theme/builtin/dark-mobile/index.js +16 -0
  579. package/esm/theme/builtin/dark-mobile/index.js.map +1 -0
  580. package/esm/theme/builtin/index.js +7 -1
  581. package/esm/theme/builtin/index.js.map +1 -1
  582. package/esm/theme/builtin/light-mobile/index.d.ts +2 -0
  583. package/esm/theme/builtin/light-mobile/index.js +16 -0
  584. package/esm/theme/builtin/light-mobile/index.js.map +1 -0
  585. package/esm/theme/interface.d.ts +1 -2
  586. package/esm/theme/interface.js.map +1 -1
  587. package/esm/typings/index.d.ts +1 -0
  588. package/esm/typings/index.js +2 -0
  589. package/esm/typings/index.js.map +1 -1
  590. package/esm/typings/layout.d.ts +23 -0
  591. package/esm/typings/layout.js +2 -0
  592. package/esm/typings/layout.js.map +1 -0
  593. package/esm/typings/spec/common.d.ts +1 -2
  594. package/esm/typings/spec/common.js.map +1 -1
  595. package/esm/util/space.d.ts +1 -1
  596. package/esm/util/space.js.map +1 -1
  597. package/esm/util/type.js +1 -1
  598. package/esm/util/type.js.map +1 -1
  599. package/package.json +19 -19
  600. package/cjs/model/layout-item.js.map +0 -1
  601. package/esm/model/layout-item.js.map +0 -1
@@ -25,7 +25,7 @@ export class Layout3d extends Layout {
25
25
  offsetTop: 0,
26
26
  offsetLeft: 0,
27
27
  offsetRight: 0
28
- }), relativeItems.some((i => i.getAutoIndent()))) {
28
+ }), relativeItems.some((i => i.autoIndent))) {
29
29
  const {top: top, bottom: bottom, left: left, right: right} = this._checkAutoIndent(relativeItems);
30
30
  (top || bottom || left || right) && (this.topCurrent = layoutTemp__topCurrent + top,
31
31
  this.bottomCurrent = layoutTemp__bottomCurrent - bottom, this.leftCurrent = layoutTemp_leftCurrent + left,
@@ -33,7 +33,7 @@ export class Layout3d extends Layout {
33
33
  }
34
34
  const absoluteItemExceptZAxis = absoluteItem.filter((i => "z" !== i.layoutOrient));
35
35
  this.layoutAbsoluteItems(absoluteItemExceptZAxis);
36
- const xAxis = relativeItems.filter((item => item.specKey && "axes" === item.specKey && isXAxis(item.layoutOrient)))[0], yAxis = relativeItems.filter((item => item.specKey && "axes" === item.specKey && isYAxis(item.layoutOrient)))[0];
36
+ const xAxis = relativeItems.filter((item => "axes" === item.model.specKey && isXAxis(item.layoutOrient)))[0], yAxis = relativeItems.filter((item => "axes" === item.model.specKey && isYAxis(item.layoutOrient)))[0];
37
37
  if (xAxis && zItems.length) {
38
38
  const sp = xAxis.getLayoutStartPoint(), lr = xAxis.getLayoutRect(), zRect = {
39
39
  x: "left" === yAxis.layoutOrient ? sp.x + lr.width : sp.x,
@@ -47,8 +47,8 @@ export class Layout3d extends Layout {
47
47
  width: xRect.width,
48
48
  height: yRect.height
49
49
  };
50
- xAxis.setLayout3dBox && xAxis.setLayout3dBox(box3d), yAxis.setLayout3dBox && yAxis.setLayout3dBox(box3d),
51
- zItems[0].setLayout3dBox && zItems[0].setLayout3dBox(box3d), this.layoutZAxisItems(zItems, zRect);
50
+ xAxis.model.setLayout3dBox && xAxis.model.setLayout3dBox(box3d), yAxis.model.setLayout3dBox && yAxis.model.setLayout3dBox(box3d),
51
+ zItems[0].model.setLayout3dBox && zItems[0].model.setLayout3dBox(box3d), this.layoutZAxisItems(zItems, zRect);
52
52
  }
53
53
  }
54
54
  layoutZAxisItems(zItems, zRect) {
@@ -129,7 +129,7 @@ export class Layout3d extends Layout {
129
129
  right: 0
130
130
  }, rightCurrent = this._chartViewBox.x2 - this._chartViewBox.x1 - this.rightCurrent, bottomCurrent = this._chartViewBox.y2 - this._chartViewBox.y1 - this.bottomCurrent;
131
131
  return items.forEach((i => {
132
- if (!i.getVisible() || !i.getAutoIndent()) return;
132
+ if (!i.getModelVisible() || !i.autoIndent) return;
133
133
  const vOrH = "left" === i.layoutOrient || "right" === i.layoutOrient, outer = i.getLastComputeOutBounds();
134
134
  vOrH ? (result.top = Math.max(result.top, outer.y1 - this.topCurrent), result.bottom = Math.max(result.bottom, outer.y2 - bottomCurrent)) : (result.left = Math.max(result.left, outer.x1 - this.leftCurrent),
135
135
  result.right = Math.max(result.right, outer.x2 - rightCurrent));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/layout3d/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { IChart } from '../../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { ILayoutItem } from '../../model/interface';\nimport type { IRect } from '../../typings/space';\nimport type { IRegion } from '../../region/interface';\nimport type { IBaseLayout } from '../interface';\nimport { Layout } from '../base-layout';\nimport { isXAxis, isYAxis } from '../../component/axis/cartesian/util/common';\nimport { Factory } from '../../core/factory';\n\ninterface IOffset {\n offsetLeft: number;\n offsetRight: number;\n offsetTop: number;\n offsetBottom: number;\n}\n\nexport class Layout3d extends Layout implements IBaseLayout {\n static type = 'layout3d';\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n this.leftCurrent = chartLayoutRect.x;\n this.topCurrent = chartLayoutRect.y;\n this.rightCurrent = chartLayoutRect.x + chartLayoutRect.width;\n this.bottomCurrent = chartLayoutRect.height + chartLayoutRect.y;\n\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n this.layoutNormalItems(items.filter(x => x.layoutType === 'normal'));\n\n const layoutTemp = {\n leftCurrent: this.leftCurrent,\n _topCurrent: this.topCurrent,\n _rightCurrent: this.rightCurrent,\n _bottomCurrent: this.bottomCurrent\n };\n const regionItems = items.filter(x => x.layoutType === 'region') as IRegion[];\n const relativeItems = items.filter(x => x.layoutType === 'region-relative');\n // 计算3d轴\n const absoluteItem = items.filter(x => x.layoutType === 'absolute');\n const zItems = absoluteItem.filter(i => {\n return i.layoutOrient === 'z';\n });\n\n // 计算z的宽高,让出一部分位置\n let extraWH = { width: 0, height: 0 };\n if (zItems.length) {\n const layoutRect = zItems[0].getLayoutRect();\n extraWH = layoutRect;\n }\n this.leftCurrent += extraWH.width / 8;\n this.rightCurrent -= extraWH.width / 8;\n this.topCurrent += extraWH.height / 8;\n this.bottomCurrent -= extraWH.height / 8;\n const offsetWH: IOffset = {\n offsetBottom: 0,\n offsetTop: 0,\n offsetLeft: 0,\n offsetRight: 0\n };\n\n // 有元素开启了自动缩进\n // TODO:目前只有普通占位布局下的 region-relative 元素支持\n // 主要考虑常规元素超出画布一般为用户个性设置,而且可以设置padding规避裁剪,不需要使用自动缩进\n this.layoutRegionItems(regionItems, relativeItems, offsetWH);\n if (relativeItems.some(i => i.getAutoIndent())) {\n // check auto indent\n const { top, bottom, left, right } = this._checkAutoIndent(relativeItems);\n // 如果出现了需要自动缩进的场景 则基于缩进再次布局\n if (top || bottom || left || right) {\n // set outer bounds to padding\n this.topCurrent = layoutTemp._topCurrent + top;\n this.bottomCurrent = layoutTemp._bottomCurrent - bottom;\n this.leftCurrent = layoutTemp.leftCurrent + left;\n this.rightCurrent = layoutTemp._rightCurrent - right;\n // reLayout\n this.layoutRegionItems(regionItems, relativeItems);\n }\n }\n\n // z轴以外的绝对定位\n const absoluteItemExceptZAxis = absoluteItem.filter(i => i.layoutOrient !== 'z');\n this.layoutAbsoluteItems(absoluteItemExceptZAxis);\n\n // 找到x轴\n const xAxis = relativeItems.filter(item => {\n return (item as any).specKey && (item as any).specKey === 'axes' && isXAxis(item.layoutOrient);\n })[0];\n const yAxis = relativeItems.filter(item => {\n return (item as any).specKey && (item as any).specKey === 'axes' && isYAxis(item.layoutOrient);\n })[0];\n if (xAxis && zItems.length) {\n const sp = xAxis.getLayoutStartPoint();\n const lr = xAxis.getLayoutRect();\n const zRect = {\n x: yAxis.layoutOrient === 'left' ? sp.x + lr.width : sp.x,\n y: sp.y,\n width: this._chartLayoutRect.width,\n height: this._chartLayoutRect.height\n };\n zItems[0].directionStr = yAxis.layoutOrient === 'left' ? 'r2l' : 'l2r';\n // 将长宽高信息传给所有的轴\n const xRect = xAxis.getLayoutRect();\n const yRect = yAxis.getLayoutRect();\n // const zRect = zItems[0].getLayoutRect();\n const box3d = {\n length: zItems[0].getLayoutRect().width,\n width: xRect.width,\n height: yRect.height\n };\n\n (xAxis as any).setLayout3dBox && (xAxis as any).setLayout3dBox(box3d);\n (yAxis as any).setLayout3dBox && (yAxis as any).setLayout3dBox(box3d);\n (zItems[0] as any).setLayout3dBox && (zItems[0] as any).setLayout3dBox(box3d);\n\n this.layoutZAxisItems(zItems, zRect);\n }\n }\n\n /**\n * 对z轴进行布局\n * @param zItems\n */\n protected layoutZAxisItems(zItems: ILayoutItem[], zRect: IRect) {\n zItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(zRect);\n });\n }\n\n /**\n *\n * 1. 补全 region-relative rect 和部分 layoutStartPoint\n * 2. 补全 region rect 和 layoutStartPoint\n *\n */\n protected layoutRegionItems(regionItems: IRegion[], regionRelativeItems: ILayoutItem[], extraOffset?: IOffset): void {\n let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;\n let regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;\n\n if (!extraOffset) {\n extraOffset = { offsetLeft: 0, offsetRight: 0, offsetTop: 0, offsetBottom: 0 };\n }\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item, extraOffset);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ width: rect.width });\n // 减少尺寸\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft + extraOffset.offsetLeft\n });\n this.leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight + extraOffset.offsetLeft;\n } else if (item.layoutOrient === 'right') {\n this.rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight + extraOffset.offsetRight;\n item.setLayoutStartPosition({\n x: this.rightCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n\n regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'top' || x.layoutOrient === 'bottom')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item, extraOffset);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ height: rect.height });\n\n // 减少尺寸\n if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop + extraOffset.offsetTop\n });\n this.topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'bottom') {\n this.bottomCurrent -=\n rect.height + item.layoutPaddingTop + item.layoutPaddingBottom + extraOffset.offsetBottom;\n item.setLayoutStartPosition({\n y: this.bottomCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n // 此时得到height\n regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;\n\n // region 处理\n regionItems.forEach(region => {\n region.setLayoutRect({\n width: regionRelativeTotalWidth,\n height: regionRelativeTotalHeight\n });\n\n region.setLayoutStartPosition({\n x: this.leftCurrent + region.layoutOffsetX + region.layoutPaddingLeft,\n y: this.topCurrent + region.layoutOffsetY + region.layoutPaddingTop\n });\n });\n\n // region-relative 特殊处理\n regionRelativeItems.forEach(item => {\n // 处理特殊元素的宽高\n if (['left', 'right'].includes(item.layoutOrient)) {\n // 用户有配置的话,已经处理过,不需要再次处理\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n height: relativeRegion.getLayoutRect().height\n });\n item.setLayoutStartPosition({\n y: relativeRegion.getLayoutStartPoint().y + item.layoutOffsetY + item.layoutPaddingTop\n });\n } else if (['top', 'bottom'].includes(item.layoutOrient)) {\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n width: relativeRegion.getLayoutRect().width\n });\n\n item.setLayoutStartPosition({\n x: relativeRegion.getLayoutStartPoint().x + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n }\n\n /**\n * 工具方法 根据item属性获取给item提供的布局空间\n * @param item\n */\n getItemComputeLayoutRect(item: ILayoutItem, extraOffset?: IOffset) {\n if (!extraOffset) {\n extraOffset = { offsetLeft: 0, offsetRight: 0, offsetTop: 0, offsetBottom: 0 };\n }\n const result = {\n width:\n this.rightCurrent -\n this.leftCurrent -\n item.layoutPaddingLeft -\n item.layoutPaddingRight -\n (extraOffset.offsetLeft + extraOffset.offsetRight),\n height:\n this.bottomCurrent -\n this.topCurrent -\n item.layoutPaddingTop -\n item.layoutPaddingBottom -\n (extraOffset.offsetTop + extraOffset.offsetBottom)\n };\n return result;\n }\n\n protected _checkAutoIndent(items: ILayoutItem[]) {\n const result = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n };\n const rightCurrent = this._chartViewBox.x2 - this._chartViewBox.x1 - this.rightCurrent;\n const bottomCurrent = this._chartViewBox.y2 - this._chartViewBox.y1 - this.bottomCurrent;\n items.forEach(i => {\n if (!i.getVisible() || !i.getAutoIndent()) {\n return;\n }\n const vOrH = i.layoutOrient === 'left' || i.layoutOrient === 'right';\n const outer = i.getLastComputeOutBounds();\n if (vOrH) {\n result.top = Math.max(result.top, outer.y1 - this.topCurrent);\n result.bottom = Math.max(result.bottom, outer.y2 - bottomCurrent);\n } else {\n result.left = Math.max(result.left, outer.x1 - this.leftCurrent);\n result.right = Math.max(result.right, outer.x2 - rightCurrent);\n }\n });\n return result;\n }\n}\n\nexport const registerLayout3d = () => {\n Factory.registerLayout(Layout3d.type, Layout3d);\n};\n"]}
1
+ {"version":3,"sources":["../src/layout/layout3d/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { IChart } from '../../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IRect } from '../../typings/space';\nimport type { IBaseLayout, ILayoutItem } from '../interface';\nimport { Layout } from '../base-layout';\nimport { isXAxis, isYAxis } from '../../component/axis/cartesian/util/common';\nimport { Factory } from '../../core/factory';\n\ninterface IOffset {\n offsetLeft: number;\n offsetRight: number;\n offsetTop: number;\n offsetBottom: number;\n}\n\nexport class Layout3d extends Layout implements IBaseLayout {\n static type = 'layout3d';\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n this.leftCurrent = chartLayoutRect.x;\n this.topCurrent = chartLayoutRect.y;\n this.rightCurrent = chartLayoutRect.x + chartLayoutRect.width;\n this.bottomCurrent = chartLayoutRect.height + chartLayoutRect.y;\n\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n this.layoutNormalItems(items.filter(x => x.layoutType === 'normal'));\n\n const layoutTemp = {\n leftCurrent: this.leftCurrent,\n _topCurrent: this.topCurrent,\n _rightCurrent: this.rightCurrent,\n _bottomCurrent: this.bottomCurrent\n };\n const regionItems = items.filter(x => x.layoutType === 'region');\n const relativeItems = items.filter(x => x.layoutType === 'region-relative');\n // 计算3d轴\n const absoluteItem = items.filter(x => x.layoutType === 'absolute');\n const zItems = absoluteItem.filter(i => {\n return i.layoutOrient === 'z';\n });\n\n // 计算z的宽高,让出一部分位置\n let extraWH = { width: 0, height: 0 };\n if (zItems.length) {\n const layoutRect = zItems[0].getLayoutRect();\n extraWH = layoutRect;\n }\n this.leftCurrent += extraWH.width / 8;\n this.rightCurrent -= extraWH.width / 8;\n this.topCurrent += extraWH.height / 8;\n this.bottomCurrent -= extraWH.height / 8;\n const offsetWH: IOffset = {\n offsetBottom: 0,\n offsetTop: 0,\n offsetLeft: 0,\n offsetRight: 0\n };\n\n // 有元素开启了自动缩进\n // TODO:目前只有普通占位布局下的 region-relative 元素支持\n // 主要考虑常规元素超出画布一般为用户个性设置,而且可以设置padding规避裁剪,不需要使用自动缩进\n this.layoutRegionItems(regionItems, relativeItems, offsetWH);\n if (relativeItems.some(i => i.autoIndent)) {\n // check auto indent\n const { top, bottom, left, right } = this._checkAutoIndent(relativeItems);\n // 如果出现了需要自动缩进的场景 则基于缩进再次布局\n if (top || bottom || left || right) {\n // set outer bounds to padding\n this.topCurrent = layoutTemp._topCurrent + top;\n this.bottomCurrent = layoutTemp._bottomCurrent - bottom;\n this.leftCurrent = layoutTemp.leftCurrent + left;\n this.rightCurrent = layoutTemp._rightCurrent - right;\n // reLayout\n this.layoutRegionItems(regionItems, relativeItems);\n }\n }\n\n // z轴以外的绝对定位\n const absoluteItemExceptZAxis = absoluteItem.filter(i => i.layoutOrient !== 'z');\n this.layoutAbsoluteItems(absoluteItemExceptZAxis);\n\n // 找到x轴\n const xAxis = relativeItems.filter(item => {\n return item.model.specKey === 'axes' && isXAxis(item.layoutOrient);\n })[0];\n const yAxis = relativeItems.filter(item => {\n return item.model.specKey === 'axes' && isYAxis(item.layoutOrient);\n })[0];\n if (xAxis && zItems.length) {\n const sp = xAxis.getLayoutStartPoint();\n const lr = xAxis.getLayoutRect();\n const zRect = {\n x: yAxis.layoutOrient === 'left' ? sp.x + lr.width : sp.x,\n y: sp.y,\n width: this._chartLayoutRect.width,\n height: this._chartLayoutRect.height\n };\n zItems[0].directionStr = yAxis.layoutOrient === 'left' ? 'r2l' : 'l2r';\n // 将长宽高信息传给所有的轴\n const xRect = xAxis.getLayoutRect();\n const yRect = yAxis.getLayoutRect();\n // const zRect = zItems[0].getLayoutRect();\n const box3d = {\n length: zItems[0].getLayoutRect().width,\n width: xRect.width,\n height: yRect.height\n };\n\n (<any>xAxis.model).setLayout3dBox && (<any>xAxis.model).setLayout3dBox(box3d);\n (<any>yAxis.model).setLayout3dBox && (<any>yAxis.model).setLayout3dBox(box3d);\n (<any>zItems[0].model).setLayout3dBox && (<any>zItems[0].model).setLayout3dBox(box3d);\n\n this.layoutZAxisItems(zItems, zRect);\n }\n }\n\n /**\n * 对z轴进行布局\n * @param zItems\n */\n protected layoutZAxisItems(zItems: ILayoutItem[], zRect: IRect) {\n zItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(zRect);\n });\n }\n\n /**\n *\n * 1. 补全 region-relative rect 和部分 layoutStartPoint\n * 2. 补全 region rect 和 layoutStartPoint\n *\n */\n protected layoutRegionItems(\n regionItems: ILayoutItem[],\n regionRelativeItems: ILayoutItem[],\n extraOffset?: IOffset\n ): void {\n let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;\n let regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;\n\n if (!extraOffset) {\n extraOffset = { offsetLeft: 0, offsetRight: 0, offsetTop: 0, offsetBottom: 0 };\n }\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item, extraOffset);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ width: rect.width });\n // 减少尺寸\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft + extraOffset.offsetLeft\n });\n this.leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight + extraOffset.offsetLeft;\n } else if (item.layoutOrient === 'right') {\n this.rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight + extraOffset.offsetRight;\n item.setLayoutStartPosition({\n x: this.rightCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n\n regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'top' || x.layoutOrient === 'bottom')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item, extraOffset);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ height: rect.height });\n\n // 减少尺寸\n if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop + extraOffset.offsetTop\n });\n this.topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'bottom') {\n this.bottomCurrent -=\n rect.height + item.layoutPaddingTop + item.layoutPaddingBottom + extraOffset.offsetBottom;\n item.setLayoutStartPosition({\n y: this.bottomCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n // 此时得到height\n regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;\n\n // region 处理\n regionItems.forEach(region => {\n region.setLayoutRect({\n width: regionRelativeTotalWidth,\n height: regionRelativeTotalHeight\n });\n\n region.setLayoutStartPosition({\n x: this.leftCurrent + region.layoutOffsetX + region.layoutPaddingLeft,\n y: this.topCurrent + region.layoutOffsetY + region.layoutPaddingTop\n });\n });\n\n // region-relative 特殊处理\n regionRelativeItems.forEach(item => {\n // 处理特殊元素的宽高\n if (['left', 'right'].includes(item.layoutOrient)) {\n // 用户有配置的话,已经处理过,不需要再次处理\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n height: relativeRegion.getLayoutRect().height\n });\n item.setLayoutStartPosition({\n y: relativeRegion.getLayoutStartPoint().y + item.layoutOffsetY + item.layoutPaddingTop\n });\n } else if (['top', 'bottom'].includes(item.layoutOrient)) {\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n width: relativeRegion.getLayoutRect().width\n });\n\n item.setLayoutStartPosition({\n x: relativeRegion.getLayoutStartPoint().x + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n }\n\n /**\n * 工具方法 根据item属性获取给item提供的布局空间\n * @param item\n */\n getItemComputeLayoutRect(item: ILayoutItem, extraOffset?: IOffset) {\n if (!extraOffset) {\n extraOffset = { offsetLeft: 0, offsetRight: 0, offsetTop: 0, offsetBottom: 0 };\n }\n const result = {\n width:\n this.rightCurrent -\n this.leftCurrent -\n item.layoutPaddingLeft -\n item.layoutPaddingRight -\n (extraOffset.offsetLeft + extraOffset.offsetRight),\n height:\n this.bottomCurrent -\n this.topCurrent -\n item.layoutPaddingTop -\n item.layoutPaddingBottom -\n (extraOffset.offsetTop + extraOffset.offsetBottom)\n };\n return result;\n }\n\n protected _checkAutoIndent(items: ILayoutItem[]) {\n const result = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n };\n const rightCurrent = this._chartViewBox.x2 - this._chartViewBox.x1 - this.rightCurrent;\n const bottomCurrent = this._chartViewBox.y2 - this._chartViewBox.y1 - this.bottomCurrent;\n items.forEach(i => {\n if (!i.getModelVisible() || !i.autoIndent) {\n return;\n }\n const vOrH = i.layoutOrient === 'left' || i.layoutOrient === 'right';\n const outer = i.getLastComputeOutBounds();\n if (vOrH) {\n result.top = Math.max(result.top, outer.y1 - this.topCurrent);\n result.bottom = Math.max(result.bottom, outer.y2 - bottomCurrent);\n } else {\n result.left = Math.max(result.left, outer.x1 - this.leftCurrent);\n result.right = Math.max(result.right, outer.x2 - rightCurrent);\n }\n });\n return result;\n }\n}\n\nexport const registerLayout3d = () => {\n Factory.registerLayout(Layout3d.type, Layout3d);\n};\n"]}
@@ -1,5 +1,5 @@
1
- import type { ILayoutItem } from '../model/interface';
2
1
  import type { Layout } from './base-layout';
2
+ import type { ILayoutItem } from './interface';
3
3
  export declare function layoutLeftInlineItems(items: ILayoutItem[], layout: Layout, limitHeight: number): void;
4
4
  export declare function layoutRightInlineItems(items: ILayoutItem[], layout: Layout, limitHeight: number): void;
5
5
  export declare function layoutTopInlineItems(items: ILayoutItem[], layout: Layout, limitWidth: number): void;
@@ -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 { ILayoutItem } from '../model/interface';\nimport type { Layout } from './base-layout';\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 layoutRightStartOrMiddleItems(items: ILayoutItem[], layout: Layout, limitHeight: number, isMiddle: boolean) {\n if (items.length) {\n let maxWidth = 0;\n let preRight = layout.rightCurrent;\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 item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight) {\n preRight -= maxWidth;\n maxWidth = itemTotalWidth;\n preTop = layout.topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\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 layout.rightCurrent = preRight - maxWidth;\n }\n}\n\nfunction layoutLeftStartOrMiddleItems(items: ILayoutItem[], layout: Layout, limitHeight: number, isMiddle: boolean) {\n if (items.length) {\n let maxWidth = 0;\n let preLeft = layout.leftCurrent;\n let preTop = layout.topCurrent;\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 item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight) {\n preLeft += maxWidth;\n maxWidth = itemTotalWidth;\n preTop = layout.topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\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 layout.leftCurrent = preLeft + maxWidth;\n }\n}\n\nfunction layoutTopStartOrMiddleItems(items: ILayoutItem[], layout: Layout, limitWidth: number, isMiddle: boolean) {\n if (items.length) {\n let maxHeight = 0;\n let preLeft = layout.leftCurrent;\n let preTop = layout.topCurrent;\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 item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth) {\n preLeft = layout.leftCurrent + itemTotalWidth;\n preTop += maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: layout.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + 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 if (isMiddle) {\n adjustItemsToCenter(allItems, false, limitWidth);\n }\n\n layout.topCurrent = preTop + maxHeight;\n }\n}\n\nfunction layoutBottomStartOrMiddleItems(items: ILayoutItem[], layout: Layout, limitWidth: number, isMiddle: boolean) {\n if (items.length) {\n let maxHeight = 0;\n let preLeft = layout.leftCurrent;\n let preBottom = 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 item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth) {\n allItems.push(singleLineItems);\n preLeft = layout.leftCurrent + itemTotalWidth;\n preBottom -= maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: layout.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\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 layout.bottomCurrent = preBottom - maxHeight;\n }\n}\n\nexport function layoutLeftInlineItems(items: ILayoutItem[], layout: Layout, limitHeight: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n if (startItems.length) {\n layoutLeftStartOrMiddleItems(startItems, layout, limitHeight, false);\n }\n\n if (middleItems.length) {\n layoutLeftStartOrMiddleItems(middleItems, layout, limitHeight, true);\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 layoutRightStartOrMiddleItems(startItems, layout, limitHeight, false);\n }\n\n if (middleItems.length) {\n layoutRightStartOrMiddleItems(middleItems, layout, limitHeight, true);\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 layoutTopStartOrMiddleItems(startItems, layout, limitWidth, false);\n }\n\n if (middleItems.length) {\n layoutTopStartOrMiddleItems(middleItems, layout, limitWidth, true);\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 layoutBottomStartOrMiddleItems(startItems, layout, limitWidth, false);\n }\n\n if (middleItems.length) {\n layoutBottomStartOrMiddleItems(middleItems, layout, limitWidth, true);\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 layoutRightStartOrMiddleItems(items: ILayoutItem[], layout: Layout, limitHeight: number, isMiddle: boolean) {\n if (items.length) {\n let maxWidth = 0;\n let preRight = layout.rightCurrent;\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 item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight) {\n preRight -= maxWidth;\n maxWidth = itemTotalWidth;\n preTop = layout.topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\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 layout.rightCurrent = preRight - maxWidth;\n }\n}\n\nfunction layoutLeftStartOrMiddleItems(items: ILayoutItem[], layout: Layout, limitHeight: number, isMiddle: boolean) {\n if (items.length) {\n let maxWidth = 0;\n let preLeft = layout.leftCurrent;\n let preTop = layout.topCurrent;\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 item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight) {\n preLeft += maxWidth;\n maxWidth = itemTotalWidth;\n preTop = layout.topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\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 layout.leftCurrent = preLeft + maxWidth;\n }\n}\n\nfunction layoutTopStartOrMiddleItems(items: ILayoutItem[], layout: Layout, limitWidth: number, isMiddle: boolean) {\n if (items.length) {\n let maxHeight = 0;\n let preLeft = layout.leftCurrent;\n let preTop = layout.topCurrent;\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 item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth) {\n preLeft = layout.leftCurrent + itemTotalWidth;\n preTop += maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: layout.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + 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 if (isMiddle) {\n adjustItemsToCenter(allItems, false, limitWidth);\n }\n\n layout.topCurrent = preTop + maxHeight;\n }\n}\n\nfunction layoutBottomStartOrMiddleItems(items: ILayoutItem[], layout: Layout, limitWidth: number, isMiddle: boolean) {\n if (items.length) {\n let maxHeight = 0;\n let preLeft = layout.leftCurrent;\n let preBottom = 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 item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth) {\n allItems.push(singleLineItems);\n preLeft = layout.leftCurrent + itemTotalWidth;\n preBottom -= maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: layout.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\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 layout.bottomCurrent = preBottom - maxHeight;\n }\n}\n\nexport function layoutLeftInlineItems(items: ILayoutItem[], layout: Layout, limitHeight: number) {\n const { startItems, middleItems, endItems } = getPositionItems(items);\n if (startItems.length) {\n layoutLeftStartOrMiddleItems(startItems, layout, limitHeight, false);\n }\n\n if (middleItems.length) {\n layoutLeftStartOrMiddleItems(middleItems, layout, limitHeight, true);\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 layoutRightStartOrMiddleItems(startItems, layout, limitHeight, false);\n }\n\n if (middleItems.length) {\n layoutRightStartOrMiddleItems(middleItems, layout, limitHeight, true);\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 layoutTopStartOrMiddleItems(startItems, layout, limitWidth, false);\n }\n\n if (middleItems.length) {\n layoutTopStartOrMiddleItems(middleItems, layout, limitWidth, true);\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 layoutBottomStartOrMiddleItems(startItems, layout, limitWidth, false);\n }\n\n if (middleItems.length) {\n layoutBottomStartOrMiddleItems(middleItems, layout, limitWidth, true);\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"]}
package/esm/mark/arc.js CHANGED
@@ -13,10 +13,10 @@ export class BaseArcMark extends BaseMark {
13
13
  radiusOffset: !0
14
14
  }, this.computeOuterRadius = (key, datum, states = "normal", opt, superValue) => {
15
15
  var _a;
16
- return superValue + (null !== (_a = this.getAttribute("radiusOffset", datum, states, opt)) && void 0 !== _a ? _a : 0);
16
+ return superValue + (null !== (_a = this._computeAttribute("radiusOffset", datum, states, opt)) && void 0 !== _a ? _a : 0);
17
17
  }, this.computeCenter = (key, datum, states = "normal", opt, center) => center + polarToCartesian({
18
18
  angle: datum[ARC_MIDDLE_ANGLE],
19
- radius: this.getAttribute("centerOffset", datum, states, opt)
19
+ radius: this._computeAttribute("centerOffset", datum, states, opt)
20
20
  })[key], this._computeExChannel.x = this.computeCenter, this._computeExChannel.y = this.computeCenter,
21
21
  this._computeExChannel.outerRadius = this.computeOuterRadius, this._extensionChannel.centerOffset = [ "x", "y" ],
22
22
  this._extensionChannel.radiusOffset = [ "outerRadius" ];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/arc.ts"],"names":[],"mappings":"AAAA,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;AAIhD,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","file":"arc.js","sourcesContent":["import { 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';\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"]}
1
+ {"version":3,"sources":["../src/mark/arc.ts"],"names":[],"mappings":"AAAA,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;AAIhD,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,MAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,mCAAI,CAAC,CAAC;YAC/E,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,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC;aACnE,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","file":"arc.js","sourcesContent":["import { 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';\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._computeAttribute('radiusOffset', datum, states, opt) ?? 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._computeAttribute('centerOffset', datum, states, opt)\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"]}
@@ -25,12 +25,12 @@ export declare class BaseMark<T extends ICommonSpec> extends CompilableMark impl
25
25
  protected _filterAttribute<U extends keyof T>(attr: U, style: MarkInputStyle<T[U]>, state: StateValueType, level: number, isUserLevel: boolean, stateStyle?: IMarkStateStyle<T>): StyleConvert<T[U]>;
26
26
  setReferer<U extends keyof T>(mark: IMarkRaw<T>, styleKey?: U, state?: StateValueType, stateStyle?: IMarkStateStyle<T>): void;
27
27
  setPostProcess<U extends keyof T>(key: U, postProcessFunc: any, state?: StateValueType): void;
28
- getAttribute<U extends keyof T>(key: U, datum: Datum, state?: StateValueType, opt?: IAttributeOpt): unknown;
28
+ getAttribute<U extends keyof T>(key: U, datum: Datum, state?: StateValueType, opt?: IAttributeOpt): any;
29
29
  setAttribute<U extends keyof T>(attr: U, style: MarkInputStyle<T[U]>, state?: StateValueType, level?: number, stateStyle?: IMarkStateStyle<T>): void;
30
30
  protected _getDefaultStyle(): IMarkStyle<T>;
31
31
  protected _styleConvert<U extends keyof T>(style?: MarkInputStyle<T[U]>): StyleConvert<T[U]> | undefined;
32
- protected _computeAttribute<U extends keyof T>(key: U, state: StateValueType): (datum: Datum, opt: IAttributeOpt) => unknown;
33
- protected _computeStateAttribute<U extends keyof T>(stateStyle: any, key: U, state: StateValueType): (datum: Datum, opt: IAttributeOpt) => any;
32
+ protected _computeAttribute<U extends keyof T>(key: U, datum: Datum, state: StateValueType, opt: IAttributeOpt): any;
33
+ protected _computeStateAttribute<U extends keyof T>(stateStyle: any, key: U, datum: Datum, state: StateValueType, opt: IAttributeOpt): any;
34
34
  private _initStyle;
35
35
  private _initSpecStyle;
36
36
  private _computeGradientAttr;
@@ -91,7 +91,7 @@ export class BaseMark extends CompilableMark {
91
91
  (null === (_a = this.stateStyle[state]) || void 0 === _a ? void 0 : _a[key]) && (this.stateStyle[state][key].postProcess = postProcessFunc);
92
92
  }
93
93
  getAttribute(key, datum, state = "normal", opt) {
94
- return this._computeAttribute(key, state)(datum, opt);
94
+ return this._computeAttribute(key, datum, state, opt);
95
95
  }
96
96
  setAttribute(attr, style, state = "normal", level = 0, stateStyle = this.stateStyle) {
97
97
  var _a;
@@ -130,32 +130,17 @@ export class BaseMark extends CompilableMark {
130
130
  }
131
131
  return style;
132
132
  }
133
- _computeAttribute(key, state) {
133
+ _computeAttribute(key, datum, state, opt) {
134
134
  var _a;
135
135
  let stateStyle = null === (_a = this.stateStyle[state]) || void 0 === _a ? void 0 : _a[key];
136
136
  stateStyle || (stateStyle = this.stateStyle.normal[key]);
137
- const baseValueFunctor = this._computeStateAttribute(stateStyle, key, state), hasPostProcess = isFunction(null == stateStyle ? void 0 : stateStyle.postProcess), hasExCompute = key in this._computeExChannel;
138
- if (hasPostProcess && hasExCompute) {
139
- const exCompute = this._computeExChannel[key];
140
- return (datum, opt) => {
141
- let baseValue = baseValueFunctor(datum, opt);
142
- return baseValue = stateStyle.postProcess(baseValue, datum, this._attributeContext, opt, this.getDataView()),
143
- exCompute(key, datum, state, opt, baseValue);
144
- };
145
- }
146
- if (hasPostProcess) return (datum, opt) => stateStyle.postProcess(baseValueFunctor(datum, opt), datum, this._attributeContext, opt, this.getDataView());
147
- if (hasExCompute) {
148
- const exCompute = this._computeExChannel[key];
149
- return (datum, opt) => exCompute(key, datum, state, opt, baseValueFunctor(datum, opt));
150
- }
151
- return baseValueFunctor;
137
+ let baseValue = this._computeStateAttribute(stateStyle, key, datum, state, opt);
138
+ return isFunction(null == stateStyle ? void 0 : stateStyle.postProcess) && (baseValue = stateStyle.postProcess(baseValue, datum, this._attributeContext, opt, this.getDataView())),
139
+ key in this._computeExChannel ? this._computeExChannel[key](key, datum, state, opt, baseValue) : baseValue;
152
140
  }
153
- _computeStateAttribute(stateStyle, key, state) {
141
+ _computeStateAttribute(stateStyle, key, datum, state, opt) {
154
142
  var _a;
155
- return stateStyle ? stateStyle.referer ? stateStyle.referer._computeAttribute(key, state) : GradientType.includes(stateStyle.style.gradient) ? this._computeGradientAttr(stateStyle.style) : [ "outerBorder", "innerBorder" ].includes(key) ? this._computeBorderAttr(stateStyle.style) : isValidScaleType(null === (_a = stateStyle.style.scale) || void 0 === _a ? void 0 : _a.type) ? (datum, opt) => stateStyle.style.scale.scale(datum[stateStyle.style.field]) : (datum, opt) => {
156
- var _a;
157
- return "function" == typeof stateStyle.style ? null === (_a = stateStyle.style) || void 0 === _a ? void 0 : _a.call(stateStyle, datum, this._attributeContext, opt, this.getDataView()) : stateStyle.style;
158
- } : (datum, opt) => {};
143
+ if (stateStyle) return stateStyle.referer ? stateStyle.referer.getAttribute(key, datum, state, opt) : "function" == typeof stateStyle.style ? stateStyle.style(datum, this._attributeContext, opt, this.getDataView()) : GradientType.includes(stateStyle.style.gradient) ? this._computeGradientAttr(stateStyle.style, datum, opt) : [ "outerBorder", "innerBorder" ].includes(key) ? this._computeBorderAttr(stateStyle.style, datum, opt) : isValidScaleType(null === (_a = stateStyle.style.scale) || void 0 === _a ? void 0 : _a.type) ? stateStyle.style.scale.scale(datum[stateStyle.style.field]) : stateStyle.style;
159
144
  }
160
145
  _initStyle() {
161
146
  const defaultStyle = this._getDefaultStyle();
@@ -178,7 +163,7 @@ export class BaseMark extends CompilableMark {
178
163
  } else this.setStyle(stateTemp, key, AttributeLevel.User_Mark, stateStyle);
179
164
  }));
180
165
  }
181
- _computeGradientAttr(gradientStyle) {
166
+ _computeGradientAttr(gradientStyle, data, opt) {
182
167
  var _a, _b;
183
168
  const {gradient: gradient, scale: scale, field: field} = gradientStyle, rest = __rest(gradientStyle, [ "gradient", "scale", "field" ]), markData = this.getDataView();
184
169
  let colorScale = scale, colorField = field;
@@ -186,60 +171,36 @@ export class BaseMark extends CompilableMark {
186
171
  const {scale: globalColorScale, field: globalField} = this.model.getColorAttribute();
187
172
  scale || (colorScale = globalColorScale), colorField || (colorField = globalField);
188
173
  }
189
- const themeColor = computeActualDataScheme(getDataScheme(this.model.getColorScheme(), "series" === this.model.modelType ? null === (_b = (_a = this.model).getSpec) || void 0 === _b ? void 0 : _b.call(_a) : void 0), this.model.getDefaultColorDomain()), mergedStyle = Object.assign(Object.assign({}, DEFAULT_GRADIENT_CONFIG[gradient]), rest);
190
- return (data, opt) => {
191
- const computeStyle = {};
192
- return Object.keys(mergedStyle).forEach((key => {
193
- const value = mergedStyle[key];
194
- "stops" === key ? computeStyle.stops = value.map((stop => {
195
- const {opacity: opacity, color: color, offset: offset} = stop;
196
- let computeColor = null != color ? color : null == colorScale ? void 0 : colorScale.scale(data[colorField]);
197
- return isFunction(color) && (computeColor = color(data, this._attributeContext, opt, markData)),
198
- isValid(opacity) && (computeColor = Color.SetOpacity(computeColor, opacity)), {
199
- offset: isFunction(offset) ? offset(data, this._attributeContext, opt, markData) : offset,
200
- color: computeColor || themeColor[0]
201
- };
202
- })) : isFunction(value) ? computeStyle[key] = value(data, this._attributeContext, opt, markData) : computeStyle[key] = value;
203
- })), computeStyle.gradient = gradient, computeStyle;
204
- };
174
+ const themeColor = computeActualDataScheme(getDataScheme(this.model.getColorScheme(), "series" === this.model.modelType ? null === (_b = (_a = this.model).getSpec) || void 0 === _b ? void 0 : _b.call(_a) : void 0), this.model.getDefaultColorDomain()), computeStyle = {}, mergedStyle = Object.assign(Object.assign({}, DEFAULT_GRADIENT_CONFIG[gradient]), rest);
175
+ return Object.keys(mergedStyle).forEach((key => {
176
+ const value = mergedStyle[key];
177
+ "stops" === key ? computeStyle.stops = value.map((stop => {
178
+ const {opacity: opacity, color: color, offset: offset} = stop;
179
+ let computeColor = null != color ? color : null == colorScale ? void 0 : colorScale.scale(data[colorField]);
180
+ return isFunction(color) && (computeColor = color(data, this._attributeContext, opt, markData)),
181
+ isValid(opacity) && (computeColor = Color.SetOpacity(computeColor, opacity)), {
182
+ offset: isFunction(offset) ? offset(data, this._attributeContext, opt, markData) : offset,
183
+ color: computeColor || themeColor[0]
184
+ };
185
+ })) : isFunction(value) ? computeStyle[key] = value(data, this._attributeContext, opt, markData) : computeStyle[key] = value;
186
+ })), computeStyle.gradient = gradient, computeStyle;
205
187
  }
206
- _computeBorderAttr(borderStyle) {
188
+ _computeBorderAttr(borderStyle, data, opt) {
207
189
  var _a, _b, _c;
208
- const {scale: scale, field: field} = borderStyle, mergedStyle = __rest(borderStyle, [ "scale", "field" ]);
209
- if ("stroke" in {}) {
210
- if (GradientType.includes(null === (_c = mergedStyle.stroke) || void 0 === _c ? void 0 : _c.gradient)) {
211
- const gradientFunctor = this._computeGradientAttr(mergedStyle.stroke);
212
- return (data, opt) => {
213
- const computeStyle = {};
214
- return Object.keys(mergedStyle).forEach((key => {
215
- const value = mergedStyle[key];
216
- isFunction(value) ? computeStyle[key] = value(data, this._attributeContext, opt, this.getDataView()) : computeStyle[key] = value;
217
- })), computeStyle.stroke = gradientFunctor(data, opt), computeStyle;
218
- };
219
- }
220
- } else {
190
+ const {scale: scale, field: field} = borderStyle, mergedStyle = __rest(borderStyle, [ "scale", "field" ]), computeStyle = {};
191
+ if (Object.keys(mergedStyle).forEach((key => {
192
+ const value = mergedStyle[key];
193
+ isFunction(value) ? computeStyle[key] = value(data, this._attributeContext, opt, this.getDataView()) : computeStyle[key] = value;
194
+ })), "stroke" in computeStyle) GradientType.includes(null === (_c = mergedStyle.stroke) || void 0 === _c ? void 0 : _c.gradient) && (computeStyle.stroke = this._computeGradientAttr(mergedStyle.stroke, data, opt)); else {
221
195
  const themeColor = computeActualDataScheme(getDataScheme(this.model.getColorScheme(), "series" === this.model.modelType ? null === (_b = (_a = this.model).getSpec) || void 0 === _b ? void 0 : _b.call(_a) : void 0), this.model.getDefaultColorDomain());
222
196
  let colorScale = scale, colorField = field;
223
197
  if (!(scale && field || "series" !== this.model.modelType)) {
224
198
  const {scale: globalColorScale, field: globalField} = this.model.getColorAttribute();
225
- return scale || (colorScale = globalColorScale), colorField || (colorField = globalField),
226
- (data, opt) => {
227
- const computeStyle = {};
228
- return Object.keys(mergedStyle).forEach((key => {
229
- const value = mergedStyle[key];
230
- isFunction(value) ? computeStyle[key] = value(data, this._attributeContext, opt, this.getDataView()) : computeStyle[key] = value;
231
- })), computeStyle.stroke = (null == colorScale ? void 0 : colorScale.scale(data[colorField])) || themeColor[0],
232
- computeStyle;
233
- };
199
+ scale || (colorScale = globalColorScale), colorField || (colorField = globalField),
200
+ computeStyle.stroke = (null == colorScale ? void 0 : colorScale.scale(data[colorField])) || themeColor[0];
234
201
  }
235
202
  }
236
- return (data, opt) => {
237
- const computeStyle = {};
238
- return Object.keys(mergedStyle).forEach((key => {
239
- const value = mergedStyle[key];
240
- isFunction(value) ? computeStyle[key] = value(data, this._attributeContext, opt, this.getDataView()) : computeStyle[key] = value;
241
- })), computeStyle;
242
- };
203
+ return computeStyle;
243
204
  }
244
205
  }
245
206
  //# sourceMappingURL=base-mark.js.map