@visactor/vchart 1.6.7 → 1.7.0-alpha.1

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 (993) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +44570 -43966
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.d.ts +2 -2
  6. package/cjs/chart/area/area.js +2 -1
  7. package/cjs/chart/area/area.js.map +1 -1
  8. package/cjs/chart/base-chart.d.ts +13 -16
  9. package/cjs/chart/base-chart.js +68 -68
  10. package/cjs/chart/base-chart.js.map +1 -1
  11. package/cjs/chart/interface/chart.d.ts +4 -6
  12. package/cjs/chart/interface/chart.js.map +1 -1
  13. package/cjs/chart/line/line.js +2 -1
  14. package/cjs/chart/line/line.js.map +1 -1
  15. package/cjs/chart/sequence/sequence.d.ts +1 -1
  16. package/cjs/chart/sequence/sequence.js +1 -1
  17. package/cjs/chart/sequence/sequence.js.map +1 -1
  18. package/cjs/compile/compiler.js +1 -2
  19. package/cjs/compile/grammar-item.js +2 -1
  20. package/cjs/compile/mark/compilable-mark.d.ts +10 -6
  21. package/cjs/compile/mark/compilable-mark.js +22 -11
  22. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  23. package/cjs/compile/mark/interface.d.ts +6 -4
  24. package/cjs/compile/mark/interface.js.map +1 -1
  25. package/cjs/compile/mark/util.d.ts +1 -3
  26. package/cjs/compile/mark/util.js +1 -37
  27. package/cjs/compile/mark/util.js.map +1 -1
  28. package/cjs/component/axis/base-axis.d.ts +2 -4
  29. package/cjs/component/axis/base-axis.js +20 -35
  30. package/cjs/component/axis/base-axis.js.map +1 -1
  31. package/cjs/component/axis/cartesian/axis.d.ts +12 -22
  32. package/cjs/component/axis/cartesian/axis.js +51 -67
  33. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  34. package/cjs/component/axis/cartesian/band-axis.d.ts +0 -7
  35. package/cjs/component/axis/cartesian/band-axis.js +0 -1
  36. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  37. package/cjs/component/axis/cartesian/interface/common.d.ts +0 -6
  38. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  39. package/cjs/component/axis/cartesian/interface/theme.d.ts +1 -1
  40. package/cjs/component/axis/cartesian/interface/theme.js.map +1 -1
  41. package/cjs/component/axis/interface/common.d.ts +0 -1
  42. package/cjs/component/axis/interface/common.js.map +1 -1
  43. package/cjs/component/axis/interface/spec.js.map +1 -1
  44. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +0 -1
  45. package/cjs/component/axis/mixin/band-axis-mixin.js +2 -2
  46. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  47. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  48. package/cjs/component/axis/mixin/linear-axis-mixin.js +4 -3
  49. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  50. package/cjs/component/axis/polar/axis.d.ts +3 -4
  51. package/cjs/component/axis/polar/axis.js +13 -15
  52. package/cjs/component/axis/polar/axis.js.map +1 -1
  53. package/cjs/component/base/base-component.d.ts +12 -4
  54. package/cjs/component/base/base-component.js +21 -11
  55. package/cjs/component/base/base-component.js.map +1 -1
  56. package/cjs/component/base/util.js +16 -12
  57. package/cjs/component/base/util.js.map +1 -1
  58. package/cjs/component/brush/brush.d.ts +2 -4
  59. package/cjs/component/brush/brush.js +4 -6
  60. package/cjs/component/brush/brush.js.map +1 -1
  61. package/cjs/component/crosshair/base.d.ts +3 -4
  62. package/cjs/component/crosshair/base.js +1 -1
  63. package/cjs/component/crosshair/base.js.map +1 -1
  64. package/cjs/component/crosshair/cartesian.d.ts +2 -0
  65. package/cjs/component/crosshair/cartesian.js +6 -8
  66. package/cjs/component/crosshair/cartesian.js.map +1 -1
  67. package/cjs/component/crosshair/interface/spec.d.ts +1 -1
  68. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  69. package/cjs/component/crosshair/polar.d.ts +2 -0
  70. package/cjs/component/crosshair/polar.js +5 -8
  71. package/cjs/component/crosshair/polar.js.map +1 -1
  72. package/cjs/component/custom-mark/custom-mark.d.ts +2 -3
  73. package/cjs/component/custom-mark/custom-mark.js +2 -3
  74. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  75. package/cjs/component/data-zoom/data-filter-base-component.d.ts +8 -8
  76. package/cjs/component/data-zoom/data-filter-base-component.js +60 -38
  77. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  78. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +4 -2
  79. package/cjs/component/data-zoom/data-zoom/data-zoom.js +47 -44
  80. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  81. package/cjs/component/data-zoom/data-zoom/interface.d.ts +6 -1
  82. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  83. package/cjs/component/data-zoom/scroll-bar/interface.d.ts +6 -2
  84. package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
  85. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
  86. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +24 -23
  87. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  88. package/cjs/component/data-zoom/util.d.ts +4 -0
  89. package/cjs/component/data-zoom/util.js +11 -2
  90. package/cjs/component/data-zoom/util.js.map +1 -1
  91. package/cjs/component/geo/geo-coordinate.d.ts +3 -2
  92. package/cjs/component/geo/geo-coordinate.js +4 -4
  93. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  94. package/cjs/component/index.d.ts +3 -2
  95. package/cjs/component/index.js.map +1 -1
  96. package/cjs/component/indicator/indicator.d.ts +1 -3
  97. package/cjs/component/indicator/indicator.js +4 -5
  98. package/cjs/component/indicator/indicator.js.map +1 -1
  99. package/cjs/component/indicator/interface.d.ts +1 -1
  100. package/cjs/component/indicator/interface.js.map +1 -1
  101. package/cjs/component/interface/common.d.ts +3 -3
  102. package/cjs/component/interface/common.js.map +1 -1
  103. package/cjs/component/interface/theme.d.ts +2 -1
  104. package/cjs/component/interface/theme.js.map +1 -1
  105. package/cjs/component/label/base-label.d.ts +2 -4
  106. package/cjs/component/label/base-label.js +1 -3
  107. package/cjs/component/label/base-label.js.map +1 -1
  108. package/cjs/component/label/interface.d.ts +4 -0
  109. package/cjs/component/label/interface.js.map +1 -1
  110. package/cjs/component/label/label.d.ts +5 -7
  111. package/cjs/component/label/label.js +15 -11
  112. package/cjs/component/label/label.js.map +1 -1
  113. package/cjs/component/label/totalLabel.d.ts +1 -3
  114. package/cjs/component/label/totalLabel.js +4 -4
  115. package/cjs/component/label/totalLabel.js.map +1 -1
  116. package/cjs/component/label/util.d.ts +9 -2
  117. package/cjs/component/label/util.js +20 -5
  118. package/cjs/component/label/util.js.map +1 -1
  119. package/cjs/component/legend/base-legend.d.ts +6 -9
  120. package/cjs/component/legend/base-legend.js +3 -9
  121. package/cjs/component/legend/base-legend.js.map +1 -1
  122. package/cjs/component/legend/continuous/legend.d.ts +4 -1
  123. package/cjs/component/legend/continuous/legend.js +7 -7
  124. package/cjs/component/legend/continuous/legend.js.map +1 -1
  125. package/cjs/component/legend/discrete/legend.d.ts +4 -1
  126. package/cjs/component/legend/discrete/legend.js +6 -7
  127. package/cjs/component/legend/discrete/legend.js.map +1 -1
  128. package/cjs/component/legend/discrete/util.d.ts +1 -1
  129. package/cjs/component/legend/discrete/util.js.map +1 -1
  130. package/cjs/component/legend/util.d.ts +2 -2
  131. package/cjs/component/map-label/component.d.ts +1 -3
  132. package/cjs/component/map-label/component.js +2 -3
  133. package/cjs/component/map-label/component.js.map +1 -1
  134. package/cjs/component/marker/base-marker.d.ts +7 -3
  135. package/cjs/component/marker/base-marker.js +43 -19
  136. package/cjs/component/marker/base-marker.js.map +1 -1
  137. package/cjs/component/marker/interface.d.ts +15 -4
  138. package/cjs/component/marker/interface.js.map +1 -1
  139. package/cjs/component/marker/mark-area/interface/spec.d.ts +1 -1
  140. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  141. package/cjs/component/marker/mark-area/mark-area.d.ts +1 -3
  142. package/cjs/component/marker/mark-area/mark-area.js +32 -20
  143. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  144. package/cjs/component/marker/mark-line/interface/spec.d.ts +3 -4
  145. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  146. package/cjs/component/marker/mark-line/mark-line.d.ts +1 -3
  147. package/cjs/component/marker/mark-line/mark-line.js +36 -22
  148. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  149. package/cjs/component/marker/mark-line/util.d.ts +3 -3
  150. package/cjs/component/marker/mark-line/util.js.map +1 -1
  151. package/cjs/component/marker/mark-point/interface/spec.d.ts +5 -4
  152. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  153. package/cjs/component/marker/mark-point/interface/theme.d.ts +5 -5
  154. package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
  155. package/cjs/component/marker/mark-point/mark-point.d.ts +1 -3
  156. package/cjs/component/marker/mark-point/mark-point.js +17 -13
  157. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  158. package/cjs/component/marker/utils.d.ts +3 -4
  159. package/cjs/component/marker/utils.js +44 -25
  160. package/cjs/component/marker/utils.js.map +1 -1
  161. package/cjs/component/player/interface/theme.d.ts +1 -1
  162. package/cjs/component/player/interface/theme.js.map +1 -1
  163. package/cjs/component/player/player.d.ts +6 -7
  164. package/cjs/component/player/player.js +4 -7
  165. package/cjs/component/player/player.js.map +1 -1
  166. package/cjs/component/title/interface/theme.d.ts +1 -1
  167. package/cjs/component/title/interface/theme.js.map +1 -1
  168. package/cjs/component/title/title.d.ts +6 -9
  169. package/cjs/component/title/title.js +13 -24
  170. package/cjs/component/title/title.js.map +1 -1
  171. package/cjs/component/tooltip/handler/base.js +6 -6
  172. package/cjs/component/tooltip/handler/base.js.map +1 -1
  173. package/cjs/component/tooltip/handler/dom/util.js +3 -2
  174. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  175. package/cjs/component/tooltip/handler/utils/attribute.d.ts +3 -3
  176. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  177. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  178. package/cjs/component/tooltip/interface/spec.d.ts +1 -1
  179. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  180. package/cjs/component/tooltip/interface/theme.d.ts +10 -11
  181. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  182. package/cjs/component/tooltip/tooltip.d.ts +3 -2
  183. package/cjs/component/tooltip/tooltip.js +7 -11
  184. package/cjs/component/tooltip/tooltip.js.map +1 -1
  185. package/cjs/component/util.d.ts +1 -3
  186. package/cjs/component/util.js +2 -2
  187. package/cjs/component/util.js.map +1 -1
  188. package/cjs/constant/index.js +2 -1
  189. package/cjs/constant/layout.d.ts +1 -0
  190. package/cjs/constant/layout.js +2 -2
  191. package/cjs/constant/layout.js.map +1 -1
  192. package/cjs/constant/scatter.js +1 -2
  193. package/cjs/core/expression-function.d.ts +12 -0
  194. package/cjs/core/expression-function.js +30 -0
  195. package/cjs/core/expression-function.js.map +1 -0
  196. package/cjs/core/factory.d.ts +5 -2
  197. package/cjs/core/factory.js +6 -3
  198. package/cjs/core/factory.js.map +1 -1
  199. package/cjs/core/index.d.ts +2 -1
  200. package/cjs/core/index.js +3 -2
  201. package/cjs/core/index.js.map +1 -1
  202. package/cjs/core/interface.d.ts +5 -0
  203. package/cjs/core/interface.js.map +1 -1
  204. package/cjs/core/vchart.d.ts +9 -1
  205. package/cjs/core/vchart.js +94 -68
  206. package/cjs/core/vchart.js.map +1 -1
  207. package/cjs/data/initialize.js +7 -6
  208. package/cjs/data/initialize.js.map +1 -1
  209. package/cjs/data/transforms/aggregation.d.ts +4 -3
  210. package/cjs/data/transforms/aggregation.js +4 -4
  211. package/cjs/data/transforms/aggregation.js.map +1 -1
  212. package/cjs/data/transforms/dimension-statistics.js +14 -4
  213. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  214. package/cjs/event/bubble.js +1 -2
  215. package/cjs/event/event.js +2 -1
  216. package/cjs/event/events/base.d.ts +16 -0
  217. package/cjs/event/events/base.js +23 -0
  218. package/cjs/event/events/base.js.map +1 -0
  219. package/cjs/event/events/dimension/util/cartesian.d.ts +1 -1
  220. package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
  221. package/cjs/event/events/dimension/util/common.d.ts +1 -2
  222. package/cjs/event/events/dimension/util/common.js +1 -1
  223. package/cjs/event/events/dimension/util/common.js.map +1 -1
  224. package/cjs/event/events/dimension/util/polar.d.ts +1 -1
  225. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  226. package/cjs/event/interface.d.ts +2 -2
  227. package/cjs/event/interface.js.map +1 -1
  228. package/cjs/index-wx-simple.d.ts +4 -0
  229. package/cjs/index-wx-simple.js +35 -0
  230. package/cjs/index-wx-simple.js.map +1 -0
  231. package/cjs/interaction/trigger.js +1 -1
  232. package/cjs/interaction/zoom/zoomable.d.ts +1 -0
  233. package/cjs/interaction/zoom/zoomable.js +6 -5
  234. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  235. package/cjs/layout/base-layout.d.ts +3 -5
  236. package/cjs/layout/base-layout.js +9 -9
  237. package/cjs/layout/base-layout.js.map +1 -1
  238. package/cjs/layout/grid-layout/grid-layout.d.ts +1 -2
  239. package/cjs/layout/grid-layout/grid-layout.js +6 -4
  240. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  241. package/cjs/layout/interface.d.ts +74 -6
  242. package/cjs/layout/interface.js.map +1 -1
  243. package/cjs/{model → layout}/layout-item.d.ts +35 -23
  244. package/cjs/{model → layout}/layout-item.js +98 -64
  245. package/cjs/layout/layout-item.js.map +1 -0
  246. package/cjs/layout/layout3d/index.d.ts +2 -4
  247. package/cjs/layout/layout3d/index.js +6 -6
  248. package/cjs/layout/layout3d/index.js.map +1 -1
  249. package/cjs/layout/util.d.ts +1 -1
  250. package/cjs/layout/util.js.map +1 -1
  251. package/cjs/mark/arc.js +2 -2
  252. package/cjs/mark/arc.js.map +1 -1
  253. package/cjs/mark/base/base-mark.d.ts +2 -2
  254. package/cjs/mark/base/base-mark.js +62 -40
  255. package/cjs/mark/base/base-mark.js.map +1 -1
  256. package/cjs/mark/label.js +1 -4
  257. package/cjs/mark/label.js.map +1 -1
  258. package/cjs/model/base-model.d.ts +10 -8
  259. package/cjs/model/base-model.js +27 -31
  260. package/cjs/model/base-model.js.map +1 -1
  261. package/cjs/model/interface.d.ts +21 -89
  262. package/cjs/model/interface.js.map +1 -1
  263. package/cjs/model/layout-model.d.ts +41 -0
  264. package/cjs/model/layout-model.js +86 -0
  265. package/cjs/model/layout-model.js.map +1 -0
  266. package/cjs/region/interface.d.ts +3 -2
  267. package/cjs/region/interface.js.map +1 -1
  268. package/cjs/region/region.d.ts +12 -7
  269. package/cjs/region/region.js +18 -10
  270. package/cjs/region/region.js.map +1 -1
  271. package/cjs/series/area/area.d.ts +1 -1
  272. package/cjs/series/area/area.js +5 -6
  273. package/cjs/series/area/area.js.map +1 -1
  274. package/cjs/series/area/interface.d.ts +4 -0
  275. package/cjs/series/area/interface.js.map +1 -1
  276. package/cjs/series/bar/bar.js +2 -4
  277. package/cjs/series/bar/bar.js.map +1 -1
  278. package/cjs/series/base/base-series.d.ts +14 -4
  279. package/cjs/series/base/base-series.js +40 -15
  280. package/cjs/series/base/base-series.js.map +1 -1
  281. package/cjs/series/cartesian/cartesian.d.ts +3 -0
  282. package/cjs/series/cartesian/cartesian.js +16 -4
  283. package/cjs/series/cartesian/cartesian.js.map +1 -1
  284. package/cjs/series/correlation/correlation.js +3 -7
  285. package/cjs/series/correlation/correlation.js.map +1 -1
  286. package/cjs/series/funnel/funnel-3d.js +1 -1
  287. package/cjs/series/funnel/funnel-3d.js.map +1 -1
  288. package/cjs/series/funnel/funnel.js +2 -6
  289. package/cjs/series/funnel/funnel.js.map +1 -1
  290. package/cjs/series/funnel/interface.d.ts +1 -2
  291. package/cjs/series/funnel/interface.js.map +1 -1
  292. package/cjs/series/gauge/gauge.d.ts +0 -1
  293. package/cjs/series/gauge/gauge.js +3 -8
  294. package/cjs/series/gauge/gauge.js.map +1 -1
  295. package/cjs/series/heatmap/heatmap.js +2 -4
  296. package/cjs/series/heatmap/heatmap.js.map +1 -1
  297. package/cjs/series/index.d.ts +2 -2
  298. package/cjs/series/index.js.map +1 -1
  299. package/cjs/series/interface/common.d.ts +2 -2
  300. package/cjs/series/interface/common.js.map +1 -1
  301. package/cjs/series/interface/series.d.ts +4 -2
  302. package/cjs/series/interface/series.js.map +1 -1
  303. package/cjs/series/interface/type.d.ts +3 -1
  304. package/cjs/series/interface/type.js +2 -1
  305. package/cjs/series/interface/type.js.map +1 -1
  306. package/cjs/series/line/interface.d.ts +4 -0
  307. package/cjs/series/line/interface.js.map +1 -1
  308. package/cjs/series/line/line.d.ts +1 -1
  309. package/cjs/series/line/line.js.map +1 -1
  310. package/cjs/series/map/map.js +2 -4
  311. package/cjs/series/map/map.js.map +1 -1
  312. package/cjs/series/mixin/line-mixin.d.ts +5 -2
  313. package/cjs/series/mixin/line-mixin.js +16 -10
  314. package/cjs/series/mixin/line-mixin.js.map +1 -1
  315. package/cjs/series/pie/pie.js +1 -4
  316. package/cjs/series/pie/pie.js.map +1 -1
  317. package/cjs/series/polar/progress-like/progress-like.js +4 -4
  318. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  319. package/cjs/series/radar/animation.js.map +1 -1
  320. package/cjs/series/range-column/range-column.js +2 -2
  321. package/cjs/series/range-column/range-column.js.map +1 -1
  322. package/cjs/series/rose/rose.d.ts +2 -1
  323. package/cjs/series/rose/rose.js +2 -4
  324. package/cjs/series/rose/rose.js.map +1 -1
  325. package/cjs/series/scatter/scatter.js +2 -4
  326. package/cjs/series/scatter/scatter.js.map +1 -1
  327. package/cjs/series/waterfall/waterfall.js +1 -1
  328. package/cjs/series/waterfall/waterfall.js.map +1 -1
  329. package/cjs/series/word-cloud/base.d.ts +1 -0
  330. package/cjs/series/word-cloud/base.js +33 -33
  331. package/cjs/series/word-cloud/base.js.map +1 -1
  332. package/cjs/series/word-cloud/word-cloud-3d.js +32 -32
  333. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  334. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
  335. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  336. package/cjs/theme/builtin/common/component/axis/common-axis.js +1 -1
  337. package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  338. package/cjs/theme/builtin/common/component/crosshair.js +5 -5
  339. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  340. package/cjs/theme/builtin/common/component/data-zoom.js +10 -10
  341. package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
  342. package/cjs/theme/builtin/common/component/indicator.js +1 -1
  343. package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
  344. package/cjs/theme/builtin/common/component/legend/color-legend.js +3 -4
  345. package/cjs/theme/builtin/common/component/legend/color-legend.js.map +1 -1
  346. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +2 -2
  347. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  348. package/cjs/theme/builtin/common/component/legend/size-legend.js +6 -6
  349. package/cjs/theme/builtin/common/component/legend/size-legend.js.map +1 -1
  350. package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
  351. package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
  352. package/cjs/theme/builtin/common/component/mark-line.js +9 -9
  353. package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
  354. package/cjs/theme/builtin/common/component/mark-point.js +15 -3
  355. package/cjs/theme/builtin/common/component/mark-point.js.map +1 -1
  356. package/cjs/theme/builtin/common/component/player.js +7 -7
  357. package/cjs/theme/builtin/common/component/player.js.map +1 -1
  358. package/cjs/theme/builtin/common/component/poptip.js +3 -4
  359. package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
  360. package/cjs/theme/builtin/common/component/scroll-bar.js +20 -7
  361. package/cjs/theme/builtin/common/component/scroll-bar.js.map +1 -1
  362. package/cjs/theme/builtin/common/component/title.js +1 -1
  363. package/cjs/theme/builtin/common/component/title.js.map +1 -1
  364. package/cjs/theme/builtin/common/component/tooltip.d.ts +2 -1
  365. package/cjs/theme/builtin/common/component/tooltip.js +3 -4
  366. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  367. package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
  368. package/cjs/theme/builtin/common/mark.js.map +1 -1
  369. package/cjs/theme/builtin/common/series/rangeColumn.js +1 -1
  370. package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
  371. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.d.ts +2 -0
  372. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js +22 -0
  373. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js.map +1 -0
  374. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +3 -0
  375. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js +36 -0
  376. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +1 -0
  377. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.d.ts +2 -0
  378. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js +42 -0
  379. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js.map +1 -0
  380. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +2 -0
  381. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js +22 -0
  382. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js.map +1 -0
  383. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +3 -0
  384. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js +25 -0
  385. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js.map +1 -0
  386. package/cjs/theme/builtin/common-mobile/component/crosshair.d.ts +2 -0
  387. package/cjs/theme/builtin/common-mobile/component/crosshair.js +39 -0
  388. package/cjs/theme/builtin/common-mobile/component/crosshair.js.map +1 -0
  389. package/cjs/theme/builtin/common-mobile/component/data-zoom.d.ts +2 -0
  390. package/cjs/theme/builtin/common-mobile/component/data-zoom.js +40 -0
  391. package/cjs/theme/builtin/common-mobile/component/data-zoom.js.map +1 -0
  392. package/cjs/theme/builtin/common-mobile/component/index.d.ts +2 -0
  393. package/cjs/theme/builtin/common-mobile/component/index.js +33 -0
  394. package/cjs/theme/builtin/common-mobile/component/index.js.map +1 -0
  395. package/cjs/theme/builtin/common-mobile/component/indicator.d.ts +2 -0
  396. package/cjs/theme/builtin/common-mobile/component/indicator.js +23 -0
  397. package/cjs/theme/builtin/common-mobile/component/indicator.js.map +1 -0
  398. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.d.ts +2 -0
  399. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js +23 -0
  400. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js.map +1 -0
  401. package/cjs/theme/builtin/common-mobile/component/legend/continuous.d.ts +2 -0
  402. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js +44 -0
  403. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js.map +1 -0
  404. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +2 -0
  405. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js +39 -0
  406. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +1 -0
  407. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.d.ts +2 -0
  408. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js +23 -0
  409. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js.map +1 -0
  410. package/cjs/theme/builtin/common-mobile/component/map-label.d.ts +2 -0
  411. package/cjs/theme/builtin/common-mobile/component/map-label.js +39 -0
  412. package/cjs/theme/builtin/common-mobile/component/map-label.js.map +1 -0
  413. package/cjs/theme/builtin/common-mobile/component/mark-area.d.ts +2 -0
  414. package/cjs/theme/builtin/common-mobile/component/mark-area.js +24 -0
  415. package/cjs/theme/builtin/common-mobile/component/mark-area.js.map +1 -0
  416. package/cjs/theme/builtin/common-mobile/component/mark-line.d.ts +2 -0
  417. package/cjs/theme/builtin/common-mobile/component/mark-line.js +33 -0
  418. package/cjs/theme/builtin/common-mobile/component/mark-line.js.map +1 -0
  419. package/cjs/theme/builtin/common-mobile/component/mark-point.d.ts +2 -0
  420. package/cjs/theme/builtin/common-mobile/component/mark-point.js +19 -0
  421. package/cjs/theme/builtin/common-mobile/component/mark-point.js.map +1 -0
  422. package/cjs/theme/builtin/common-mobile/component/player.d.ts +2 -0
  423. package/cjs/theme/builtin/common-mobile/component/player.js +51 -0
  424. package/cjs/theme/builtin/common-mobile/component/player.js.map +1 -0
  425. package/cjs/theme/builtin/common-mobile/component/poptip.d.ts +2 -0
  426. package/cjs/theme/builtin/common-mobile/component/poptip.js +25 -0
  427. package/cjs/theme/builtin/common-mobile/component/poptip.js.map +1 -0
  428. package/cjs/theme/builtin/common-mobile/component/title.d.ts +2 -0
  429. package/cjs/theme/builtin/common-mobile/component/title.js +23 -0
  430. package/cjs/theme/builtin/common-mobile/component/title.js.map +1 -0
  431. package/cjs/theme/builtin/common-mobile/component/tooltip.d.ts +2 -0
  432. package/cjs/theme/builtin/common-mobile/component/tooltip.js +43 -0
  433. package/cjs/theme/builtin/common-mobile/component/tooltip.js.map +1 -0
  434. package/cjs/theme/builtin/common-mobile/component/total-label.d.ts +2 -0
  435. package/cjs/theme/builtin/common-mobile/component/total-label.js +16 -0
  436. package/cjs/theme/builtin/common-mobile/component/total-label.js.map +1 -0
  437. package/cjs/theme/builtin/common-mobile/constants.d.ts +2 -0
  438. package/cjs/theme/builtin/common-mobile/constants.js +23 -0
  439. package/cjs/theme/builtin/common-mobile/constants.js.map +1 -0
  440. package/cjs/theme/builtin/common-mobile/mark.d.ts +3 -0
  441. package/cjs/theme/builtin/common-mobile/mark.js +35 -0
  442. package/cjs/theme/builtin/common-mobile/mark.js.map +1 -0
  443. package/cjs/theme/builtin/dark/color-scheme.js +20 -11
  444. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
  445. package/cjs/theme/builtin/dark-mobile/index.d.ts +2 -0
  446. package/cjs/theme/builtin/dark-mobile/index.js +18 -0
  447. package/cjs/theme/builtin/dark-mobile/index.js.map +1 -0
  448. package/cjs/theme/builtin/index.d.ts +2 -4
  449. package/cjs/theme/builtin/index.js +17 -20
  450. package/cjs/theme/builtin/index.js.map +1 -1
  451. package/cjs/theme/builtin/light/color-scheme.js +19 -10
  452. package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
  453. package/cjs/theme/builtin/light-mobile/index.d.ts +2 -0
  454. package/cjs/theme/builtin/light-mobile/index.js +18 -0
  455. package/cjs/theme/builtin/light-mobile/index.js.map +1 -0
  456. package/cjs/theme/color-scheme/builtin/interface.d.ts +16 -7
  457. package/cjs/theme/color-scheme/builtin/interface.js.map +1 -1
  458. package/cjs/theme/color-scheme/legacy.js +18 -2
  459. package/cjs/theme/color-scheme/legacy.js.map +1 -1
  460. package/cjs/theme/color-scheme/util.js +2 -2
  461. package/cjs/theme/color-scheme/util.js.map +1 -1
  462. package/cjs/theme/interface.d.ts +1 -2
  463. package/cjs/theme/interface.js.map +1 -1
  464. package/cjs/theme/theme-manager.d.ts +1 -1
  465. package/cjs/theme/theme-manager.js +2 -2
  466. package/cjs/theme/theme-manager.js.map +1 -1
  467. package/cjs/typings/index.d.ts +1 -0
  468. package/cjs/typings/index.js +2 -1
  469. package/cjs/typings/index.js.map +1 -1
  470. package/cjs/typings/layout.d.ts +23 -0
  471. package/cjs/typings/layout.js +6 -0
  472. package/cjs/typings/layout.js.map +1 -0
  473. package/cjs/typings/spec/common.d.ts +2 -4
  474. package/cjs/typings/spec/common.js.map +1 -1
  475. package/cjs/typings/visual.d.ts +1 -1
  476. package/cjs/typings/visual.js.map +1 -1
  477. package/cjs/util/space.d.ts +1 -1
  478. package/cjs/util/space.js.map +1 -1
  479. package/cjs/util/spec/background.js +8 -14
  480. package/cjs/util/spec/background.js.map +1 -1
  481. package/cjs/util/spec/common.d.ts +1 -1
  482. package/cjs/util/spec/common.js +2 -2
  483. package/cjs/util/spec/common.js.map +1 -1
  484. package/cjs/util/spec/preprocess.d.ts +1 -1
  485. package/cjs/util/spec/preprocess.js +7 -17
  486. package/cjs/util/spec/preprocess.js.map +1 -1
  487. package/cjs/util/spec/transform.d.ts +2 -0
  488. package/cjs/util/spec/transform.js +18 -2
  489. package/cjs/util/spec/transform.js.map +1 -1
  490. package/cjs/vchart-all.js +2 -3
  491. package/cjs/vchart-all.js.map +1 -1
  492. package/cjs/vchart-simple.d.ts +1 -0
  493. package/cjs/vchart-simple.js +4 -4
  494. package/cjs/vchart-simple.js.map +1 -1
  495. package/esm/animation/utils.d.ts +2 -2
  496. package/esm/chart/area/area.js +2 -1
  497. package/esm/chart/area/area.js.map +1 -1
  498. package/esm/chart/base-chart.d.ts +13 -16
  499. package/esm/chart/base-chart.js +66 -67
  500. package/esm/chart/base-chart.js.map +1 -1
  501. package/esm/chart/interface/chart.d.ts +4 -6
  502. package/esm/chart/interface/chart.js.map +1 -1
  503. package/esm/chart/line/line.js +2 -1
  504. package/esm/chart/line/line.js.map +1 -1
  505. package/esm/chart/sequence/sequence.d.ts +1 -1
  506. package/esm/chart/sequence/sequence.js +1 -1
  507. package/esm/chart/sequence/sequence.js.map +1 -1
  508. package/esm/compile/compiler.js +1 -2
  509. package/esm/compile/grammar-item.js +2 -1
  510. package/esm/compile/mark/compilable-mark.d.ts +10 -6
  511. package/esm/compile/mark/compilable-mark.js +23 -12
  512. package/esm/compile/mark/compilable-mark.js.map +1 -1
  513. package/esm/compile/mark/interface.d.ts +6 -4
  514. package/esm/compile/mark/interface.js.map +1 -1
  515. package/esm/compile/mark/util.d.ts +1 -3
  516. package/esm/compile/mark/util.js +0 -34
  517. package/esm/compile/mark/util.js.map +1 -1
  518. package/esm/component/axis/base-axis.d.ts +2 -4
  519. package/esm/component/axis/base-axis.js +19 -36
  520. package/esm/component/axis/base-axis.js.map +1 -1
  521. package/esm/component/axis/cartesian/axis.d.ts +12 -22
  522. package/esm/component/axis/cartesian/axis.js +49 -63
  523. package/esm/component/axis/cartesian/axis.js.map +1 -1
  524. package/esm/component/axis/cartesian/band-axis.d.ts +0 -7
  525. package/esm/component/axis/cartesian/band-axis.js +0 -1
  526. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  527. package/esm/component/axis/cartesian/interface/common.d.ts +0 -6
  528. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  529. package/esm/component/axis/cartesian/interface/theme.d.ts +1 -1
  530. package/esm/component/axis/cartesian/interface/theme.js.map +1 -1
  531. package/esm/component/axis/interface/common.d.ts +0 -1
  532. package/esm/component/axis/interface/common.js.map +1 -1
  533. package/esm/component/axis/interface/spec.js.map +1 -1
  534. package/esm/component/axis/mixin/band-axis-mixin.d.ts +0 -1
  535. package/esm/component/axis/mixin/band-axis-mixin.js +2 -2
  536. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  537. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  538. package/esm/component/axis/mixin/linear-axis-mixin.js +4 -3
  539. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  540. package/esm/component/axis/polar/axis.d.ts +3 -4
  541. package/esm/component/axis/polar/axis.js +12 -14
  542. package/esm/component/axis/polar/axis.js.map +1 -1
  543. package/esm/component/base/base-component.d.ts +12 -4
  544. package/esm/component/base/base-component.js +22 -14
  545. package/esm/component/base/base-component.js.map +1 -1
  546. package/esm/component/base/util.js +7 -3
  547. package/esm/component/base/util.js.map +1 -1
  548. package/esm/component/brush/brush.d.ts +2 -4
  549. package/esm/component/brush/brush.js +4 -6
  550. package/esm/component/brush/brush.js.map +1 -1
  551. package/esm/component/crosshair/base.d.ts +3 -4
  552. package/esm/component/crosshair/base.js +1 -1
  553. package/esm/component/crosshair/base.js.map +1 -1
  554. package/esm/component/crosshair/cartesian.d.ts +2 -0
  555. package/esm/component/crosshair/cartesian.js +5 -8
  556. package/esm/component/crosshair/cartesian.js.map +1 -1
  557. package/esm/component/crosshair/interface/spec.d.ts +1 -1
  558. package/esm/component/crosshair/interface/spec.js.map +1 -1
  559. package/esm/component/crosshair/polar.d.ts +2 -0
  560. package/esm/component/crosshair/polar.js +5 -8
  561. package/esm/component/crosshair/polar.js.map +1 -1
  562. package/esm/component/custom-mark/custom-mark.d.ts +2 -3
  563. package/esm/component/custom-mark/custom-mark.js +2 -3
  564. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  565. package/esm/component/data-zoom/data-filter-base-component.d.ts +8 -8
  566. package/esm/component/data-zoom/data-filter-base-component.js +60 -37
  567. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  568. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +4 -2
  569. package/esm/component/data-zoom/data-zoom/data-zoom.js +47 -44
  570. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  571. package/esm/component/data-zoom/data-zoom/interface.d.ts +6 -1
  572. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  573. package/esm/component/data-zoom/scroll-bar/interface.d.ts +6 -2
  574. package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
  575. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
  576. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +24 -23
  577. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  578. package/esm/component/data-zoom/util.d.ts +4 -0
  579. package/esm/component/data-zoom/util.js +13 -1
  580. package/esm/component/data-zoom/util.js.map +1 -1
  581. package/esm/component/geo/geo-coordinate.d.ts +3 -2
  582. package/esm/component/geo/geo-coordinate.js +3 -1
  583. package/esm/component/geo/geo-coordinate.js.map +1 -1
  584. package/esm/component/index.d.ts +3 -2
  585. package/esm/component/index.js.map +1 -1
  586. package/esm/component/indicator/indicator.d.ts +1 -3
  587. package/esm/component/indicator/indicator.js +4 -5
  588. package/esm/component/indicator/indicator.js.map +1 -1
  589. package/esm/component/indicator/interface.d.ts +1 -1
  590. package/esm/component/indicator/interface.js.map +1 -1
  591. package/esm/component/interface/common.d.ts +3 -3
  592. package/esm/component/interface/common.js.map +1 -1
  593. package/esm/component/interface/theme.d.ts +2 -1
  594. package/esm/component/interface/theme.js.map +1 -1
  595. package/esm/component/label/base-label.d.ts +2 -4
  596. package/esm/component/label/base-label.js +1 -3
  597. package/esm/component/label/base-label.js.map +1 -1
  598. package/esm/component/label/interface.d.ts +4 -0
  599. package/esm/component/label/interface.js.map +1 -1
  600. package/esm/component/label/label.d.ts +5 -7
  601. package/esm/component/label/label.js +16 -11
  602. package/esm/component/label/label.js.map +1 -1
  603. package/esm/component/label/totalLabel.d.ts +1 -3
  604. package/esm/component/label/totalLabel.js +4 -4
  605. package/esm/component/label/totalLabel.js.map +1 -1
  606. package/esm/component/label/util.d.ts +9 -2
  607. package/esm/component/label/util.js +17 -3
  608. package/esm/component/label/util.js.map +1 -1
  609. package/esm/component/legend/base-legend.d.ts +6 -9
  610. package/esm/component/legend/base-legend.js +3 -9
  611. package/esm/component/legend/base-legend.js.map +1 -1
  612. package/esm/component/legend/continuous/legend.d.ts +4 -1
  613. package/esm/component/legend/continuous/legend.js +6 -7
  614. package/esm/component/legend/continuous/legend.js.map +1 -1
  615. package/esm/component/legend/discrete/legend.d.ts +4 -1
  616. package/esm/component/legend/discrete/legend.js +6 -7
  617. package/esm/component/legend/discrete/legend.js.map +1 -1
  618. package/esm/component/legend/discrete/util.d.ts +1 -1
  619. package/esm/component/legend/discrete/util.js.map +1 -1
  620. package/esm/component/legend/util.d.ts +2 -2
  621. package/esm/component/map-label/component.d.ts +1 -3
  622. package/esm/component/map-label/component.js +2 -2
  623. package/esm/component/map-label/component.js.map +1 -1
  624. package/esm/component/marker/base-marker.d.ts +7 -3
  625. package/esm/component/marker/base-marker.js +41 -18
  626. package/esm/component/marker/base-marker.js.map +1 -1
  627. package/esm/component/marker/interface.d.ts +15 -4
  628. package/esm/component/marker/interface.js.map +1 -1
  629. package/esm/component/marker/mark-area/interface/spec.d.ts +1 -1
  630. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  631. package/esm/component/marker/mark-area/mark-area.d.ts +1 -3
  632. package/esm/component/marker/mark-area/mark-area.js +29 -18
  633. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  634. package/esm/component/marker/mark-line/interface/spec.d.ts +3 -4
  635. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  636. package/esm/component/marker/mark-line/mark-line.d.ts +1 -3
  637. package/esm/component/marker/mark-line/mark-line.js +36 -18
  638. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  639. package/esm/component/marker/mark-line/util.d.ts +3 -3
  640. package/esm/component/marker/mark-line/util.js.map +1 -1
  641. package/esm/component/marker/mark-point/interface/spec.d.ts +5 -4
  642. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  643. package/esm/component/marker/mark-point/interface/theme.d.ts +5 -5
  644. package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
  645. package/esm/component/marker/mark-point/mark-point.d.ts +1 -3
  646. package/esm/component/marker/mark-point/mark-point.js +17 -12
  647. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  648. package/esm/component/marker/utils.d.ts +3 -4
  649. package/esm/component/marker/utils.js +43 -23
  650. package/esm/component/marker/utils.js.map +1 -1
  651. package/esm/component/player/interface/theme.d.ts +1 -1
  652. package/esm/component/player/interface/theme.js.map +1 -1
  653. package/esm/component/player/player.d.ts +6 -7
  654. package/esm/component/player/player.js +4 -7
  655. package/esm/component/player/player.js.map +1 -1
  656. package/esm/component/title/interface/theme.d.ts +1 -1
  657. package/esm/component/title/interface/theme.js.map +1 -1
  658. package/esm/component/title/title.d.ts +6 -9
  659. package/esm/component/title/title.js +12 -22
  660. package/esm/component/title/title.js.map +1 -1
  661. package/esm/component/tooltip/handler/base.js +5 -7
  662. package/esm/component/tooltip/handler/base.js.map +1 -1
  663. package/esm/component/tooltip/handler/dom/util.js +3 -1
  664. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  665. package/esm/component/tooltip/handler/utils/attribute.d.ts +3 -3
  666. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  667. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  668. package/esm/component/tooltip/interface/spec.d.ts +1 -1
  669. package/esm/component/tooltip/interface/spec.js.map +1 -1
  670. package/esm/component/tooltip/interface/theme.d.ts +10 -11
  671. package/esm/component/tooltip/interface/theme.js.map +1 -1
  672. package/esm/component/tooltip/tooltip.d.ts +3 -2
  673. package/esm/component/tooltip/tooltip.js +7 -10
  674. package/esm/component/tooltip/tooltip.js.map +1 -1
  675. package/esm/component/util.d.ts +1 -3
  676. package/esm/component/util.js +2 -2
  677. package/esm/component/util.js.map +1 -1
  678. package/esm/constant/index.js +2 -1
  679. package/esm/constant/layout.d.ts +1 -0
  680. package/esm/constant/layout.js +2 -0
  681. package/esm/constant/layout.js.map +1 -1
  682. package/esm/constant/scatter.js +1 -2
  683. package/esm/core/expression-function.d.ts +12 -0
  684. package/esm/core/expression-function.js +22 -0
  685. package/esm/core/expression-function.js.map +1 -0
  686. package/esm/core/factory.d.ts +5 -2
  687. package/esm/core/factory.js +6 -3
  688. package/esm/core/factory.js.map +1 -1
  689. package/esm/core/index.d.ts +2 -1
  690. package/esm/core/index.js +3 -1
  691. package/esm/core/index.js.map +1 -1
  692. package/esm/core/interface.d.ts +5 -0
  693. package/esm/core/interface.js.map +1 -1
  694. package/esm/core/vchart.d.ts +9 -1
  695. package/esm/core/vchart.js +62 -41
  696. package/esm/core/vchart.js.map +1 -1
  697. package/esm/data/initialize.js +7 -7
  698. package/esm/data/initialize.js.map +1 -1
  699. package/esm/data/transforms/aggregation.d.ts +4 -3
  700. package/esm/data/transforms/aggregation.js +6 -6
  701. package/esm/data/transforms/aggregation.js.map +1 -1
  702. package/esm/data/transforms/dimension-statistics.js +14 -4
  703. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  704. package/esm/event/bubble.js +1 -2
  705. package/esm/event/event.js +2 -1
  706. package/esm/event/events/base.d.ts +16 -0
  707. package/esm/event/events/base.js +15 -0
  708. package/esm/event/events/base.js.map +1 -0
  709. package/esm/event/events/dimension/util/cartesian.d.ts +1 -1
  710. package/esm/event/events/dimension/util/cartesian.js.map +1 -1
  711. package/esm/event/events/dimension/util/common.d.ts +1 -2
  712. package/esm/event/events/dimension/util/common.js +1 -1
  713. package/esm/event/events/dimension/util/common.js.map +1 -1
  714. package/esm/event/events/dimension/util/polar.d.ts +1 -1
  715. package/esm/event/events/dimension/util/polar.js.map +1 -1
  716. package/esm/event/interface.d.ts +2 -2
  717. package/esm/event/interface.js.map +1 -1
  718. package/esm/index-wx-simple.d.ts +4 -0
  719. package/esm/index-wx-simple.js +35 -0
  720. package/esm/index-wx-simple.js.map +1 -0
  721. package/esm/interaction/trigger.js +1 -1
  722. package/esm/interaction/zoom/zoomable.d.ts +1 -0
  723. package/esm/interaction/zoom/zoomable.js +6 -5
  724. package/esm/interaction/zoom/zoomable.js.map +1 -1
  725. package/esm/layout/base-layout.d.ts +3 -5
  726. package/esm/layout/base-layout.js +9 -9
  727. package/esm/layout/base-layout.js.map +1 -1
  728. package/esm/layout/grid-layout/grid-layout.d.ts +1 -2
  729. package/esm/layout/grid-layout/grid-layout.js +6 -4
  730. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  731. package/esm/layout/interface.d.ts +74 -6
  732. package/esm/layout/interface.js.map +1 -1
  733. package/esm/{model → layout}/layout-item.d.ts +35 -23
  734. package/esm/{model → layout}/layout-item.js +93 -63
  735. package/esm/layout/layout-item.js.map +1 -0
  736. package/esm/layout/layout3d/index.d.ts +2 -4
  737. package/esm/layout/layout3d/index.js +5 -5
  738. package/esm/layout/layout3d/index.js.map +1 -1
  739. package/esm/layout/util.d.ts +1 -1
  740. package/esm/layout/util.js.map +1 -1
  741. package/esm/mark/arc.js +2 -2
  742. package/esm/mark/arc.js.map +1 -1
  743. package/esm/mark/base/base-mark.d.ts +2 -2
  744. package/esm/mark/base/base-mark.js +59 -38
  745. package/esm/mark/base/base-mark.js.map +1 -1
  746. package/esm/mark/label.js +1 -4
  747. package/esm/mark/label.js.map +1 -1
  748. package/esm/model/base-model.d.ts +10 -8
  749. package/esm/model/base-model.js +27 -35
  750. package/esm/model/base-model.js.map +1 -1
  751. package/esm/model/interface.d.ts +21 -89
  752. package/esm/model/interface.js.map +1 -1
  753. package/esm/model/layout-model.d.ts +41 -0
  754. package/esm/model/layout-model.js +80 -0
  755. package/esm/model/layout-model.js.map +1 -0
  756. package/esm/region/interface.d.ts +3 -2
  757. package/esm/region/interface.js.map +1 -1
  758. package/esm/region/region.d.ts +12 -7
  759. package/esm/region/region.js +19 -11
  760. package/esm/region/region.js.map +1 -1
  761. package/esm/series/area/area.d.ts +1 -1
  762. package/esm/series/area/area.js +5 -6
  763. package/esm/series/area/area.js.map +1 -1
  764. package/esm/series/area/interface.d.ts +4 -0
  765. package/esm/series/area/interface.js.map +1 -1
  766. package/esm/series/bar/bar.js +1 -5
  767. package/esm/series/bar/bar.js.map +1 -1
  768. package/esm/series/base/base-series.d.ts +14 -4
  769. package/esm/series/base/base-series.js +38 -16
  770. package/esm/series/base/base-series.js.map +1 -1
  771. package/esm/series/cartesian/cartesian.d.ts +3 -0
  772. package/esm/series/cartesian/cartesian.js +16 -4
  773. package/esm/series/cartesian/cartesian.js.map +1 -1
  774. package/esm/series/correlation/correlation.js +2 -8
  775. package/esm/series/correlation/correlation.js.map +1 -1
  776. package/esm/series/funnel/funnel-3d.js +1 -1
  777. package/esm/series/funnel/funnel-3d.js.map +1 -1
  778. package/esm/series/funnel/funnel.js +3 -7
  779. package/esm/series/funnel/funnel.js.map +1 -1
  780. package/esm/series/funnel/interface.d.ts +1 -2
  781. package/esm/series/funnel/interface.js.map +1 -1
  782. package/esm/series/gauge/gauge.d.ts +0 -1
  783. package/esm/series/gauge/gauge.js +2 -9
  784. package/esm/series/gauge/gauge.js.map +1 -1
  785. package/esm/series/heatmap/heatmap.js +1 -5
  786. package/esm/series/heatmap/heatmap.js.map +1 -1
  787. package/esm/series/index.d.ts +2 -2
  788. package/esm/series/index.js.map +1 -1
  789. package/esm/series/interface/common.d.ts +2 -2
  790. package/esm/series/interface/common.js.map +1 -1
  791. package/esm/series/interface/series.d.ts +4 -2
  792. package/esm/series/interface/series.js.map +1 -1
  793. package/esm/series/interface/type.d.ts +3 -1
  794. package/esm/series/interface/type.js +2 -1
  795. package/esm/series/interface/type.js.map +1 -1
  796. package/esm/series/line/interface.d.ts +4 -0
  797. package/esm/series/line/interface.js.map +1 -1
  798. package/esm/series/line/line.d.ts +1 -1
  799. package/esm/series/line/line.js.map +1 -1
  800. package/esm/series/map/map.js +1 -5
  801. package/esm/series/map/map.js.map +1 -1
  802. package/esm/series/mixin/line-mixin.d.ts +5 -2
  803. package/esm/series/mixin/line-mixin.js +15 -10
  804. package/esm/series/mixin/line-mixin.js.map +1 -1
  805. package/esm/series/pie/pie.js +1 -4
  806. package/esm/series/pie/pie.js.map +1 -1
  807. package/esm/series/polar/progress-like/progress-like.js +3 -4
  808. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  809. package/esm/series/radar/animation.js.map +1 -1
  810. package/esm/series/range-column/range-column.js +1 -3
  811. package/esm/series/range-column/range-column.js.map +1 -1
  812. package/esm/series/rose/rose.d.ts +2 -1
  813. package/esm/series/rose/rose.js +1 -5
  814. package/esm/series/rose/rose.js.map +1 -1
  815. package/esm/series/scatter/scatter.js +1 -5
  816. package/esm/series/scatter/scatter.js.map +1 -1
  817. package/esm/series/waterfall/waterfall.js +1 -1
  818. package/esm/series/waterfall/waterfall.js.map +1 -1
  819. package/esm/series/word-cloud/base.d.ts +1 -0
  820. package/esm/series/word-cloud/base.js +33 -33
  821. package/esm/series/word-cloud/base.js.map +1 -1
  822. package/esm/series/word-cloud/word-cloud-3d.js +32 -32
  823. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  824. package/esm/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
  825. package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  826. package/esm/theme/builtin/common/component/axis/common-axis.js +1 -1
  827. package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  828. package/esm/theme/builtin/common/component/crosshair.js +5 -5
  829. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  830. package/esm/theme/builtin/common/component/data-zoom.js +10 -10
  831. package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
  832. package/esm/theme/builtin/common/component/indicator.js +1 -1
  833. package/esm/theme/builtin/common/component/indicator.js.map +1 -1
  834. package/esm/theme/builtin/common/component/legend/color-legend.js +3 -4
  835. package/esm/theme/builtin/common/component/legend/color-legend.js.map +1 -1
  836. package/esm/theme/builtin/common/component/legend/discrete-legend.js +2 -2
  837. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  838. package/esm/theme/builtin/common/component/legend/size-legend.js +6 -6
  839. package/esm/theme/builtin/common/component/legend/size-legend.js.map +1 -1
  840. package/esm/theme/builtin/common/component/map-label.js.map +1 -1
  841. package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
  842. package/esm/theme/builtin/common/component/mark-line.js +9 -9
  843. package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
  844. package/esm/theme/builtin/common/component/mark-point.js +15 -3
  845. package/esm/theme/builtin/common/component/mark-point.js.map +1 -1
  846. package/esm/theme/builtin/common/component/player.js +7 -7
  847. package/esm/theme/builtin/common/component/player.js.map +1 -1
  848. package/esm/theme/builtin/common/component/poptip.js +3 -4
  849. package/esm/theme/builtin/common/component/poptip.js.map +1 -1
  850. package/esm/theme/builtin/common/component/scroll-bar.js +20 -7
  851. package/esm/theme/builtin/common/component/scroll-bar.js.map +1 -1
  852. package/esm/theme/builtin/common/component/title.js +1 -1
  853. package/esm/theme/builtin/common/component/title.js.map +1 -1
  854. package/esm/theme/builtin/common/component/tooltip.d.ts +2 -1
  855. package/esm/theme/builtin/common/component/tooltip.js +3 -4
  856. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  857. package/esm/theme/builtin/common/component/total-label.js.map +1 -1
  858. package/esm/theme/builtin/common/mark.js.map +1 -1
  859. package/esm/theme/builtin/common/series/rangeColumn.js +1 -1
  860. package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
  861. package/esm/theme/builtin/common-mobile/component/axis/band-axis.d.ts +2 -0
  862. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js +18 -0
  863. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js.map +1 -0
  864. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +3 -0
  865. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js +32 -0
  866. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +1 -0
  867. package/esm/theme/builtin/common-mobile/component/axis/common-axis.d.ts +2 -0
  868. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js +36 -0
  869. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js.map +1 -0
  870. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +2 -0
  871. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js +18 -0
  872. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js.map +1 -0
  873. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +3 -0
  874. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js +23 -0
  875. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js.map +1 -0
  876. package/esm/theme/builtin/common-mobile/component/crosshair.d.ts +2 -0
  877. package/esm/theme/builtin/common-mobile/component/crosshair.js +35 -0
  878. package/esm/theme/builtin/common-mobile/component/crosshair.js.map +1 -0
  879. package/esm/theme/builtin/common-mobile/component/data-zoom.d.ts +2 -0
  880. package/esm/theme/builtin/common-mobile/component/data-zoom.js +34 -0
  881. package/esm/theme/builtin/common-mobile/component/data-zoom.js.map +1 -0
  882. package/esm/theme/builtin/common-mobile/component/index.d.ts +2 -0
  883. package/esm/theme/builtin/common-mobile/component/index.js +65 -0
  884. package/esm/theme/builtin/common-mobile/component/index.js.map +1 -0
  885. package/esm/theme/builtin/common-mobile/component/indicator.d.ts +2 -0
  886. package/esm/theme/builtin/common-mobile/component/indicator.js +17 -0
  887. package/esm/theme/builtin/common-mobile/component/indicator.js.map +1 -0
  888. package/esm/theme/builtin/common-mobile/component/legend/color-legend.d.ts +2 -0
  889. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js +17 -0
  890. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js.map +1 -0
  891. package/esm/theme/builtin/common-mobile/component/legend/continuous.d.ts +2 -0
  892. package/esm/theme/builtin/common-mobile/component/legend/continuous.js +38 -0
  893. package/esm/theme/builtin/common-mobile/component/legend/continuous.js.map +1 -0
  894. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +2 -0
  895. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js +33 -0
  896. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +1 -0
  897. package/esm/theme/builtin/common-mobile/component/legend/size-legend.d.ts +2 -0
  898. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js +17 -0
  899. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js.map +1 -0
  900. package/esm/theme/builtin/common-mobile/component/map-label.d.ts +2 -0
  901. package/esm/theme/builtin/common-mobile/component/map-label.js +33 -0
  902. package/esm/theme/builtin/common-mobile/component/map-label.js.map +1 -0
  903. package/esm/theme/builtin/common-mobile/component/mark-area.d.ts +2 -0
  904. package/esm/theme/builtin/common-mobile/component/mark-area.js +18 -0
  905. package/esm/theme/builtin/common-mobile/component/mark-area.js.map +1 -0
  906. package/esm/theme/builtin/common-mobile/component/mark-line.d.ts +2 -0
  907. package/esm/theme/builtin/common-mobile/component/mark-line.js +27 -0
  908. package/esm/theme/builtin/common-mobile/component/mark-line.js.map +1 -0
  909. package/esm/theme/builtin/common-mobile/component/mark-point.d.ts +2 -0
  910. package/esm/theme/builtin/common-mobile/component/mark-point.js +15 -0
  911. package/esm/theme/builtin/common-mobile/component/mark-point.js.map +1 -0
  912. package/esm/theme/builtin/common-mobile/component/player.d.ts +2 -0
  913. package/esm/theme/builtin/common-mobile/component/player.js +47 -0
  914. package/esm/theme/builtin/common-mobile/component/player.js.map +1 -0
  915. package/esm/theme/builtin/common-mobile/component/poptip.d.ts +2 -0
  916. package/esm/theme/builtin/common-mobile/component/poptip.js +19 -0
  917. package/esm/theme/builtin/common-mobile/component/poptip.js.map +1 -0
  918. package/esm/theme/builtin/common-mobile/component/title.d.ts +2 -0
  919. package/esm/theme/builtin/common-mobile/component/title.js +17 -0
  920. package/esm/theme/builtin/common-mobile/component/title.js.map +1 -0
  921. package/esm/theme/builtin/common-mobile/component/tooltip.d.ts +2 -0
  922. package/esm/theme/builtin/common-mobile/component/tooltip.js +37 -0
  923. package/esm/theme/builtin/common-mobile/component/tooltip.js.map +1 -0
  924. package/esm/theme/builtin/common-mobile/component/total-label.d.ts +2 -0
  925. package/esm/theme/builtin/common-mobile/component/total-label.js +10 -0
  926. package/esm/theme/builtin/common-mobile/component/total-label.js.map +1 -0
  927. package/esm/theme/builtin/common-mobile/constants.d.ts +2 -0
  928. package/esm/theme/builtin/common-mobile/constants.js +19 -0
  929. package/esm/theme/builtin/common-mobile/constants.js.map +1 -0
  930. package/esm/theme/builtin/common-mobile/mark.d.ts +3 -0
  931. package/esm/theme/builtin/common-mobile/mark.js +31 -0
  932. package/esm/theme/builtin/common-mobile/mark.js.map +1 -0
  933. package/esm/theme/builtin/dark/color-scheme.js +20 -11
  934. package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
  935. package/esm/theme/builtin/dark-mobile/index.d.ts +2 -0
  936. package/esm/theme/builtin/dark-mobile/index.js +16 -0
  937. package/esm/theme/builtin/dark-mobile/index.js.map +1 -0
  938. package/esm/theme/builtin/index.d.ts +2 -4
  939. package/esm/theme/builtin/index.js +16 -23
  940. package/esm/theme/builtin/index.js.map +1 -1
  941. package/esm/theme/builtin/light/color-scheme.js +19 -10
  942. package/esm/theme/builtin/light/color-scheme.js.map +1 -1
  943. package/esm/theme/builtin/light-mobile/index.d.ts +2 -0
  944. package/esm/theme/builtin/light-mobile/index.js +16 -0
  945. package/esm/theme/builtin/light-mobile/index.js.map +1 -0
  946. package/esm/theme/color-scheme/builtin/interface.d.ts +16 -7
  947. package/esm/theme/color-scheme/builtin/interface.js.map +1 -1
  948. package/esm/theme/color-scheme/legacy.js +18 -2
  949. package/esm/theme/color-scheme/legacy.js.map +1 -1
  950. package/esm/theme/color-scheme/util.js +2 -2
  951. package/esm/theme/color-scheme/util.js.map +1 -1
  952. package/esm/theme/interface.d.ts +1 -2
  953. package/esm/theme/interface.js.map +1 -1
  954. package/esm/theme/theme-manager.d.ts +1 -1
  955. package/esm/theme/theme-manager.js +2 -2
  956. package/esm/theme/theme-manager.js.map +1 -1
  957. package/esm/typings/index.d.ts +1 -0
  958. package/esm/typings/index.js +2 -0
  959. package/esm/typings/index.js.map +1 -1
  960. package/esm/typings/layout.d.ts +23 -0
  961. package/esm/typings/layout.js +2 -0
  962. package/esm/typings/layout.js.map +1 -0
  963. package/esm/typings/spec/common.d.ts +2 -4
  964. package/esm/typings/spec/common.js.map +1 -1
  965. package/esm/typings/visual.d.ts +1 -1
  966. package/esm/typings/visual.js.map +1 -1
  967. package/esm/util/space.d.ts +1 -1
  968. package/esm/util/space.js.map +1 -1
  969. package/esm/util/spec/background.js +3 -11
  970. package/esm/util/spec/background.js.map +1 -1
  971. package/esm/util/spec/common.d.ts +1 -1
  972. package/esm/util/spec/common.js +2 -2
  973. package/esm/util/spec/common.js.map +1 -1
  974. package/esm/util/spec/preprocess.d.ts +1 -1
  975. package/esm/util/spec/preprocess.js +5 -18
  976. package/esm/util/spec/preprocess.js.map +1 -1
  977. package/esm/util/spec/transform.d.ts +2 -0
  978. package/esm/util/spec/transform.js +17 -1
  979. package/esm/util/spec/transform.js.map +1 -1
  980. package/esm/vchart-all.js +1 -4
  981. package/esm/vchart-all.js.map +1 -1
  982. package/esm/vchart-simple.d.ts +1 -0
  983. package/esm/vchart-simple.js +15 -14
  984. package/esm/vchart-simple.js.map +1 -1
  985. package/package.json +18 -19
  986. package/cjs/model/layout-item.js.map +0 -1
  987. package/cjs/theme/util.d.ts +0 -5
  988. package/cjs/theme/util.js +0 -35
  989. package/cjs/theme/util.js.map +0 -1
  990. package/esm/model/layout-item.js.map +0 -1
  991. package/esm/theme/util.d.ts +0 -5
  992. package/esm/theme/util.js +0 -37
  993. package/esm/theme/util.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/zoom/zoomable.ts"],"names":[],"mappings":"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","file":"zoomable.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { debounce, isNil, throttle } from '@visactor/vutils';\nimport type { BaseEventParams, EventType, ExtendEventParam, IEvent } from '../../event/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport { getDefaultTriggerEventByMode } from '../../component/common/trigger/config';\nimport type { IZoomTrigger } from '../../component/common/trigger/interface';\nimport { isPointInRect } from '../../util/space';\nimport type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant';\nimport type { IDelayType } from '../../typings/event';\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nexport interface ITriggerOption {\n delayType: IDelayType;\n delayTime: number;\n realTime: boolean;\n}\nexport interface IZoomEventOptions {\n shouldZoom?: boolean;\n zoomCallback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void;\n shouldScroll?: boolean;\n scrollCallback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void;\n}\nexport interface IZoomable {\n initZoomable: (evt: IEvent, mode?: RenderMode) => void;\n initZoomEventOfSeries: (\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initZoomEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initScrollEventOfSeries: (\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initScrollEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initDragEventOfSeries: (\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => any;\n\n initDragEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n}\n\nexport class Zoomable implements IZoomable {\n private _clickEnable: boolean;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n this._clickEnable = true;\n this._zoomableTrigger = new (this._getTriggerEvent('trigger') as any)();\n }\n }\n\n // event\n private _getTriggerEvent(type: string): EventType {\n return getDefaultTriggerEventByMode(this._renderMode)[type];\n }\n\n private _zoomEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n if (!params.event) {\n return;\n }\n const event = params.event.clone();\n this._zoomableTrigger.parserZoomEvent(event);\n // FIXME: event类型目前不全\n const { zoomDelta, zoomX, zoomY } = event as any;\n if (isNil(zoomDelta)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n // zoomDelta, zoomX, zoomY can be changed in the callback\n callback({ zoomDelta, zoomX, zoomY }, event);\n }\n this._eventObj.emit('zoom', {\n scale: event.zoomDelta,\n scaleCenter: { x: event.zoomX, y: event.zoomY },\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _bindZoomEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n eventObj.on(\n this._getTriggerEvent('scrollEnd'),\n { level: Event_Bubble_Level.chart, consume: false },\n delayMap[delayType]((params: BaseEventParams) => {\n this._zoomableTrigger.clearZoom();\n }, delayTime) as any\n );\n\n eventObj.on(\n this._getTriggerEvent('scroll'),\n { level: Event_Bubble_Level.chart, consume: true },\n delayMap[delayType]((params: BaseEventParams) => {\n // if (realTime) {\n this._zoomEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime) as any\n );\n }\n\n initZoomEventOfSeries(\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initZoomEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindZoomEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _scrollEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n if (!params.event) {\n return;\n }\n const { event } = params;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n callback({ scrollX, scrollY }, event);\n }\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n eventObj.on(\n this._getTriggerEvent('scrollEnd'),\n { level: Event_Bubble_Level.chart, consume: false },\n delayMap[delayType]((params: any) => {\n this._zoomableTrigger.clearScroll();\n }, delayTime)\n );\n\n eventObj.on(\n this._getTriggerEvent('scroll'),\n { level: Event_Bubble_Level.chart, consume: true },\n delayMap[delayType]((params: any) => {\n // if (realTime) {\n this._scrollEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime)\n );\n }\n\n initScrollEventOfSeries(\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initScrollEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindScrollEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _bindDragEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n eventObj.on(this._getTriggerEvent('start'), { level: Event_Bubble_Level.chart }, (params: any) => {\n if (!params.event) {\n return;\n }\n\n const { event } = params;\n const shouldTrigger = isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n );\n if (shouldTrigger) {\n this._handleDrag(params, callback, option);\n }\n });\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n eventObj.on('click', { level: Event_Bubble_Level.chart }, () => {\n return !this._clickEnable;\n });\n }\n\n initDragEventOfSeries(\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n s.event.on(\n this._getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback, option);\n }\n );\n }\n }\n\n initDragEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n s.event.on(\n this._getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n s.event.on(\n 'click',\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n () => {\n return !this._clickEnable;\n }\n );\n }\n });\n } else {\n this._bindDragEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n protected _handleDrag(\n params: ExtendEventParam,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n this._clickEnable = true;\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n const realTime = option?.realTime ?? true;\n const move = this._getTriggerEvent('move');\n const end = this._getTriggerEvent('end');\n const event = params.event;\n let moveX = event.canvasX;\n let moveY = event.canvasY;\n let upX = event.canvasX;\n let upY = event.canvasY;\n\n const mouseup = delayMap[delayType]((params: BaseEventParams) => {\n this._clickEnable = false;\n const event = params.event as any;\n const dx = event.canvasX - upX;\n const dy = event.canvasY - upY;\n const delta: [number, number] = [dx, dy];\n\n upX = event.canvasX;\n upY = event.canvasY;\n\n if (!realTime && callback) {\n callback(delta, params.event);\n }\n\n this._eventObj.emit('panend', {\n delta,\n model: this\n } as unknown as BaseEventParams);\n this._zoomableTrigger.pointerId = null;\n this._eventObj.off(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup as any);\n }, delayTime);\n const mousemove = delayMap[delayType]((params: BaseEventParams) => {\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n this._clickEnable = false;\n const event = params.event;\n const dx = event.canvasX - moveX;\n const dy = event.canvasY - moveY;\n const delta: [number, number] = [dx, dy];\n\n moveX = event.canvasX;\n moveY = event.canvasY;\n\n if (realTime && callback) {\n callback(delta, params.event);\n }\n this._eventObj.emit('panmove', {\n delta,\n model: this\n } as unknown as ExtendEventParam);\n }, delayTime);\n\n this._eventObj.on(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup as any);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/interaction/zoom/zoomable.ts"],"names":[],"mappings":";;;AACA,6CAA6D;AAI7D,sDAA2D;AAC3D,kEAAqF;AAErF,4CAAiD;AAEjD,6CAAuE;AAGvE,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,iBAAQ;IAClB,QAAQ,EAAE,iBAAQ;CACnB,CAAC;AAmDF,MAAa,QAAQ;IASnB,YAAY,CAAC,GAAW,EAAE,OAAmB,uBAAc,CAAC,iBAAiB,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAElD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAS,GAAE,CAAC;SACzE;IACH,CAAC;IAGO,gBAAgB,CAAC,IAAY;QACnC,OAAO,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAEO,kBAAkB,CACxB,MAAuB,EACvB,cAAiC,EACjC,QAA6G;QAE7G,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,OAAO;SACR;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAY,CAAC;QACjD,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC,EAAE;YACpB,OAAO;SACR;QACD,IACE,CAAC,IAAA,qBAAa,EACZ;YACE,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;SACT,EACD,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAC9C,EACD;YACA,OAAO;SACR;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,QAAQ,EAAE;YAEZ,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;SAC9C;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1B,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE;YAC/C,KAAK,EAAE,IAAI;SACmB,CAAC,CAAC;IACpC,CAAC;IAEO,wBAAwB,CAAC,EAAqB;QACpD,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxB,EAAE,GAAa,EAAG,CAAC,SAAS,EAAE,CAAC;SAChC;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAEO,sBAAsB,CAC5B,QAAgB,EAChB,cAAiC,EACjC,QAA6G,EAC7G,MAAuB;;QAEvB,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,UAAU,CAAC;QAClD,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,CAAC,CAAC;QAGzC,QAAQ,CAAC,EAAE,CACT,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAClC,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EACnD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAuB,EAAE,EAAE;YAC9C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QACpC,CAAC,EAAE,SAAS,CAAQ,CACrB,CAAC;QAEF,QAAQ,CAAC,EAAE,CACT,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAC/B,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAClD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAuB,EAAE,EAAE;YAE9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE5D,CAAC,EAAE,SAAS,CAAQ,CACrB,CAAC;IACJ,CAAC;IAED,qBAAqB,CACnB,CAAU,EACV,QAA6G,EAC7G,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC3D;IACH,CAAC;IAED,sBAAsB,CACpB,OAAkB,EAClB,MAAgC,EAChC,QAA6G,EAC7G,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,IAAI,MAAM,EAAE;oBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;4BACb,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;yBAC3D;oBACH,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBAClE;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEO,oBAAoB,CAC1B,MAAuB,EACvB,cAAiC,EACjC,QAA8F;QAE9F,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,OAAO;SACR;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAY,CAAC;QAC1C,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,EAAE;YACpC,OAAO;SACR;QACD,IACE,CAAC,IAAA,qBAAa,EACZ;YACE,CAAC,EAAE,KAAK,CAAC,OAAO;YAChB,CAAC,EAAE,KAAK,CAAC,OAAO;SACjB,EACD,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAC9C,EACD;YACA,OAAO;SACR;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO;YACP,OAAO;YACP,KAAK,EAAE,IAAI;SACmB,CAAC,CAAC;IACpC,CAAC;IAEO,wBAAwB,CAC9B,QAAgB,EAChB,cAAiC,EACjC,QAA8F,EAC9F,MAAuB;;QAEvB,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,UAAU,CAAC;QAClD,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,CAAC,CAAC;QAGzC,QAAQ,CAAC,EAAE,CACT,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAClC,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EACnD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAW,EAAE,EAAE;YAClC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,EAAE,SAAS,CAAC,CACd,CAAC;QAEF,QAAQ,CAAC,EAAE,CACT,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAC/B,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAClD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAW,EAAE,EAAE;YAElC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE9D,CAAC,EAAE,SAAS,CAAC,CACd,CAAC;IACJ,CAAC;IAED,uBAAuB,CACrB,CAAU,EACV,QAA8F,EAC9F,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,wBAAwB,CACtB,OAAkB,EAClB,MAAgC,EAChC,QAA8F,EAC9F,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,IAAI,MAAM,EAAE;oBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;4BACb,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;yBAC7D;oBACH,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACpE;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEO,sBAAsB,CAC5B,QAAgB,EAChB,cAAiC,EACjC,QAAyE,EACzE,MAAuB;QAEvB,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,MAAW,EAAE,EAAE;YAC/F,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,OAAO;aACR;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACzB,MAAM,aAAa,GAAG,IAAA,qBAAa,EACjC;gBACE,CAAC,EAAE,KAAK,CAAC,OAAO;gBAChB,CAAC,EAAE,KAAK,CAAC,OAAO;aACjB,EACD,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAC9C,CAAC;YACF,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,CAAC;QAGH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE;YAC7D,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CACnB,CAAU,EACV,QAAyE,EACzE,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,CAAC,CAAC,KAAK,CAAC,EAAE,CACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAC9B,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAC9E,MAAM,CAAC,EAAE;gBACP,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,sBAAsB,CACpB,OAAkB,EAClB,MAAgC,EAChC,QAAyE,EACzE,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,IAAI,MAAM,EAAE;oBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;4BACb,CAAC,CAAC,KAAK,CAAC,EAAE,CACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAC9B,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAC9E,MAAM,CAAC,EAAE;gCACP,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;4BACrC,CAAC,CACF,CAAC;4BAIF,CAAC,CAAC,KAAK,CAAC,EAAE,CACR,OAAO,EACP,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAC9E,GAAG,EAAE;gCACH,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;4BAC5B,CAAC,CACF,CAAC;yBACH;oBACH,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBAClE;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,WAAW,CACnB,MAAwB,EACxB,QAAyE,EACzE,MAAuB;;QAEvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACxD,OAAO;SACR;QACD,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,UAAU,CAAC;QAClD,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,mCAAI,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QAExB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAuB,EAAE,EAAE;YAC9D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAY,CAAC;YAClC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC/B,MAAM,KAAK,GAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEzC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YACpB,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YAEpB,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;gBACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/B;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC5B,KAAK;gBACL,KAAK,EAAE,IAAI;aACkB,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,4BAAiB,CAAC,KAAK,EAAE,EAAE,SAAgB,CAAC,CAAC;YACjH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,4BAAiB,CAAC,MAAM,EAAE,EAAE,OAAc,CAAC,CAAC;QACjH,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAuB,EAAE,EAAE;YAChE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxD,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,MAAM,KAAK,GAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YAEtB,IAAI,QAAQ,IAAI,QAAQ,EAAE;gBACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/B;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7B,KAAK;gBACL,KAAK,EAAE,IAAI;aACmB,CAAC,CAAC;QACpC,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,4BAAiB,CAAC,KAAK,EAAE,EAAE,SAAgB,CAAC,CAAC;QAChH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,4BAAiB,CAAC,KAAK,EAAE,EAAE,OAAc,CAAC,CAAC;IAC/G,CAAC;CACF;AA1XD,4BA0XC","file":"zoomable.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { debounce, isNil, throttle } from '@visactor/vutils';\nimport type { BaseEventParams, EventType, ExtendEventParam, IEvent } from '../../event/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport { getDefaultTriggerEventByMode } from '../../component/common/trigger/config';\nimport type { IZoomTrigger } from '../../component/common/trigger/interface';\nimport { isPointInRect } from '../../util/space';\nimport type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant';\nimport type { IDelayType } from '../../typings/event';\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nexport interface ITriggerOption {\n delayType: IDelayType;\n delayTime: number;\n realTime: boolean;\n}\nexport interface IZoomEventOptions {\n shouldZoom?: boolean;\n zoomCallback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void;\n shouldScroll?: boolean;\n scrollCallback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void;\n}\nexport interface IZoomable {\n initZoomable: (evt: IEvent, mode?: RenderMode) => void;\n initZoomEventOfSeries: (\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initZoomEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initScrollEventOfSeries: (\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initScrollEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initDragEventOfSeries: (\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => any;\n\n initDragEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n}\n\nexport class Zoomable implements IZoomable {\n private _clickEnable: boolean;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n this._clickEnable = true;\n this._zoomableTrigger = new (this._getTriggerEvent('trigger') as any)();\n }\n }\n\n // event\n private _getTriggerEvent(type: string): EventType {\n return getDefaultTriggerEventByMode(this._renderMode)[type];\n }\n\n private _zoomEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n if (!params.event) {\n return;\n }\n const event = params.event.clone();\n this._zoomableTrigger.parserZoomEvent(event);\n // FIXME: event类型目前不全\n const { zoomDelta, zoomX, zoomY } = event as any;\n if (isNil(zoomDelta)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n this._getRegionOrSeriesLayout(regionOrSeries)\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n // zoomDelta, zoomX, zoomY can be changed in the callback\n callback({ zoomDelta, zoomX, zoomY }, event);\n }\n this._eventObj.emit('zoom', {\n scale: event.zoomDelta,\n scaleCenter: { x: event.zoomX, y: event.zoomY },\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _getRegionOrSeriesLayout(rs: IRegion | ISeries) {\n if (rs.type !== 'region') {\n rs = (<ISeries>rs).getRegion();\n }\n return rs.layout.getLayout();\n }\n\n private _bindZoomEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n eventObj.on(\n this._getTriggerEvent('scrollEnd'),\n { level: Event_Bubble_Level.chart, consume: false },\n delayMap[delayType]((params: BaseEventParams) => {\n this._zoomableTrigger.clearZoom();\n }, delayTime) as any\n );\n\n eventObj.on(\n this._getTriggerEvent('scroll'),\n { level: Event_Bubble_Level.chart, consume: true },\n delayMap[delayType]((params: BaseEventParams) => {\n // if (realTime) {\n this._zoomEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime) as any\n );\n }\n\n initZoomEventOfSeries(\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initZoomEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindZoomEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _scrollEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n if (!params.event) {\n return;\n }\n const { event } = params;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries)\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n callback({ scrollX, scrollY }, event);\n }\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n eventObj.on(\n this._getTriggerEvent('scrollEnd'),\n { level: Event_Bubble_Level.chart, consume: false },\n delayMap[delayType]((params: any) => {\n this._zoomableTrigger.clearScroll();\n }, delayTime)\n );\n\n eventObj.on(\n this._getTriggerEvent('scroll'),\n { level: Event_Bubble_Level.chart, consume: true },\n delayMap[delayType]((params: any) => {\n // if (realTime) {\n this._scrollEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime)\n );\n }\n\n initScrollEventOfSeries(\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initScrollEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindScrollEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _bindDragEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n eventObj.on(this._getTriggerEvent('start'), { level: Event_Bubble_Level.chart }, (params: any) => {\n if (!params.event) {\n return;\n }\n\n const { event } = params;\n const shouldTrigger = isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries)\n );\n if (shouldTrigger) {\n this._handleDrag(params, callback, option);\n }\n });\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n eventObj.on('click', { level: Event_Bubble_Level.chart }, () => {\n return !this._clickEnable;\n });\n }\n\n initDragEventOfSeries(\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n s.event.on(\n this._getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback, option);\n }\n );\n }\n }\n\n initDragEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n s.event.on(\n this._getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n s.event.on(\n 'click',\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n () => {\n return !this._clickEnable;\n }\n );\n }\n });\n } else {\n this._bindDragEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n protected _handleDrag(\n params: ExtendEventParam,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n this._clickEnable = true;\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n const realTime = option?.realTime ?? true;\n const move = this._getTriggerEvent('move');\n const end = this._getTriggerEvent('end');\n const event = params.event;\n let moveX = event.canvasX;\n let moveY = event.canvasY;\n let upX = event.canvasX;\n let upY = event.canvasY;\n\n const mouseup = delayMap[delayType]((params: BaseEventParams) => {\n this._clickEnable = false;\n const event = params.event as any;\n const dx = event.canvasX - upX;\n const dy = event.canvasY - upY;\n const delta: [number, number] = [dx, dy];\n\n upX = event.canvasX;\n upY = event.canvasY;\n\n if (!realTime && callback) {\n callback(delta, params.event);\n }\n\n this._eventObj.emit('panend', {\n delta,\n model: this\n } as unknown as BaseEventParams);\n this._zoomableTrigger.pointerId = null;\n this._eventObj.off(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup as any);\n }, delayTime);\n const mousemove = delayMap[delayType]((params: BaseEventParams) => {\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n this._clickEnable = false;\n const event = params.event;\n const dx = event.canvasX - moveX;\n const dy = event.canvasY - moveY;\n const delta: [number, number] = [dx, dy];\n\n moveX = event.canvasX;\n moveY = event.canvasY;\n\n if (realTime && callback) {\n callback(delta, params.event);\n }\n this._eventObj.emit('panmove', {\n delta,\n model: this\n } as unknown as ExtendEventParam);\n }, delayTime);\n\n this._eventObj.on(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup as any);\n }\n}\n"]}
@@ -1,10 +1,8 @@
1
1
  import type { utilFunctionCtx } from '../typings/params';
2
2
  import type { IChart } from '../chart/interface/chart';
3
3
  import type { IBoundsLike } from '@visactor/vutils';
4
- import type { ILayoutItem } from '../model/interface';
5
- import type { IBaseLayout } from './interface';
4
+ import type { IBaseLayout, ILayoutItem } from './interface';
6
5
  import type { IPadding, IRect } from '../typings/space';
7
- import type { IRegion } from '../region/interface';
8
6
  export declare class Layout implements IBaseLayout {
9
7
  static type: string;
10
8
  leftCurrent: number;
@@ -18,9 +16,9 @@ export declare class Layout implements IBaseLayout {
18
16
  layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void;
19
17
  protected layoutNormalItems(normalItems: ILayoutItem[]): void;
20
18
  protected layoutNormalInlineItems(normalItems: ILayoutItem[]): void;
21
- protected layoutRegionItems(regionItems: IRegion[], regionRelativeItems: ILayoutItem[]): void;
19
+ protected layoutRegionItems(regionItems: ILayoutItem[], regionRelativeItems: ILayoutItem[]): void;
22
20
  protected layoutAbsoluteItems(absoluteItems: ILayoutItem[]): void;
23
- filterRegionsWithID(regions: IRegion[], id: number): ILayoutItem;
21
+ filterRegionsWithID(items: ILayoutItem[], id: number): ILayoutItem;
24
22
  getItemComputeLayoutRect(item: ILayoutItem): {
25
23
  width: number;
26
24
  height: number;
@@ -23,7 +23,7 @@ class Layout {
23
23
  right: this.rightCurrent,
24
24
  bottom: this.bottomCurrent
25
25
  }, regionItems = items.filter((x => "region" === x.layoutType)), relativeItems = items.filter((x => "region-relative" === x.layoutType));
26
- if (this.layoutRegionItems(regionItems, relativeItems), relativeItems.some((i => i.getAutoIndent()))) {
26
+ if (this.layoutRegionItems(regionItems, relativeItems), relativeItems.some((i => i.autoIndent))) {
27
27
  const {top: top, bottom: bottom, left: left, right: right} = this._checkAutoIndent(relativeItems, layoutTemp);
28
28
  (top || bottom || left || right) && (this.topCurrent = layoutTemp.top + top, this.bottomCurrent = layoutTemp.bottom - bottom,
29
29
  this.leftCurrent = layoutTemp.left + left, this.rightCurrent = layoutTemp.right - right,
@@ -78,11 +78,11 @@ class Layout {
78
78
  }));
79
79
  })), regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
80
80
  const regionWidth = Math.min(regionRelativeTotalWidth, ...regionItems.map((region => {
81
- var _a, _b;
82
- return null !== (_b = null === (_a = region.getMaxWidth) || void 0 === _a ? void 0 : _a.call(region)) && void 0 !== _b ? _b : Number.MAX_VALUE;
81
+ var _a;
82
+ return null !== (_a = region.maxWidth) && void 0 !== _a ? _a : Number.MAX_VALUE;
83
83
  }))), regionHeight = Math.min(regionRelativeTotalHeight, ...regionItems.map((region => {
84
- var _a, _b;
85
- return null !== (_b = null === (_a = region.getMaxHeight) || void 0 === _a ? void 0 : _a.call(region)) && void 0 !== _b ? _b : Number.MAX_VALUE;
84
+ var _a;
85
+ return null !== (_a = region.maxHeight) && void 0 !== _a ? _a : Number.MAX_VALUE;
86
86
  })));
87
87
  regionItems.forEach((region => {
88
88
  region.setLayoutRect({
@@ -119,9 +119,9 @@ class Layout {
119
119
  item.absoluteLayoutInRect(this._chartLayoutRect);
120
120
  }));
121
121
  }
122
- filterRegionsWithID(regions, id) {
122
+ filterRegionsWithID(items, id) {
123
123
  var _a;
124
- const target = regions.find((x => x.id === id));
124
+ const target = items.find((x => x.getModelId() === id));
125
125
  return target || (null !== (_a = this._onError) && void 0 !== _a ? _a : debug_1.error)("can not find target region item, invalid id"),
126
126
  target;
127
127
  }
@@ -139,7 +139,7 @@ class Layout {
139
139
  right: 0
140
140
  };
141
141
  return items.forEach((i => {
142
- if (!i.getVisible() || !i.getAutoIndent()) return;
142
+ if (!i.getModelVisible() || !i.autoIndent) return;
143
143
  const vOrH = "left" === i.layoutOrient || "right" === i.layoutOrient, itemOuter = i.getLastComputeOutBounds(), outer = this._getOutInLayout(itemOuter, i, layoutTemp);
144
144
  vOrH ? (result.top = Math.max(result.top, outer.top), result.bottom = Math.max(result.bottom, outer.bottom)) : (result.left = Math.max(result.left, outer.left),
145
145
  result.right = Math.max(result.right, outer.right));
@@ -157,4 +157,4 @@ class Layout {
157
157
  }
158
158
 
159
159
  exports.Layout = Layout, Layout.type = "base";
160
- //# sourceMappingURL=base-layout.js.map
160
+ //# sourceMappingURL=base-layout.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/base-layout.ts"],"names":[],"mappings":";;;AAOA,yCAAsC;AACtC,iCAAsH;AAStH,MAAa,MAAM;IAajB,YAAY,KAAe,EAAE,GAAqB;QAVlD,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAW,CAAC,CAAC;QACzB,kBAAa,GAAW,CAAC,CAAC;QAQxB,IAAI,CAAC,QAAQ,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,KAAoB,EAAE,eAAsB,EAAE,YAAyB;QACjG,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;QAGhE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,eAAe,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC;QAErE,MAAM,UAAU,GAAmB;YACjC,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAC;QACF,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAc,CAAC;QAC9E,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,iBAAiB,CAAC,CAAC;QAI5E,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACnD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE;YAE9C,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAEtF,IAAI,GAAG,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE;gBAElC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;gBACvC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBAChD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC1C,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;gBAE7C,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;aACpD;SACF;QAED,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC;IAES,iBAAiB,CAAC,WAA0B;QACpD,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEzB,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;gBAChC,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;oBACjE,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;iBAChE,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;aACnF;iBAAM,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;gBACtC,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;oBACjE,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;iBAChE,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC;aACnF;iBAAM,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;gBACxC,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB;oBAChF,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;iBAChE,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;aACpF;iBAAM,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACzC,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB;oBAClE,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB;iBACpF,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC;aACtF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAES,uBAAuB,CAAC,WAA0B;QAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAI3E,IAAA,4BAAqB,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACpD,IAAA,2BAAoB,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACjD,IAAA,6BAAsB,EAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACtD,IAAA,8BAAuB,EAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAQS,iBAAiB,CAAC,WAAsB,EAAE,mBAAkC;QACpF,IAAI,wBAAwB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QACpE,IAAI,yBAAyB,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;QAErE,mBAAmB;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;aACpE,OAAO,CAAC,IAAI,CAAC,EAAE;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAE1C,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;gBAChC,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;iBAClE,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;aACnF;iBAAM,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;gBACxC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACnF,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;iBACnE,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEL,wBAAwB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QAEhE,mBAAmB;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC;aACpE,OAAO,CAAC,IAAI,CAAC,EAAE;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAG5C,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;gBAC/B,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;iBAChE,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC;aACnF;iBAAM,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACzC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBACrF,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;iBACnE,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEL,yBAAyB,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;QAGjE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,wBAAwB,EACxB,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,eAAC,OAAA,MAAA,MAAA,MAAM,CAAC,WAAW,sDAAI,mCAAI,MAAM,CAAC,SAAS,CAAA,EAAA,CAAC,CACzE,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,yBAAyB,EACzB,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,eAAC,OAAA,MAAA,MAAA,MAAM,CAAC,YAAY,sDAAI,mCAAI,MAAM,CAAC,SAAS,CAAA,EAAA,CAAC,CAC1E,CAAC;QACF,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3B,MAAM,CAAC,aAAa,CAAC;gBACnB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,MAAM,CAAC,sBAAsB,CAAC;gBAC5B,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,iBAAiB;gBACrE,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,gBAAgB;aACpE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAGH,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAEjC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAEjD,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzF,IAAI,CAAC,aAAa,CAAC;oBACjB,MAAM,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC,MAAM;iBAC9C,CAAC,CAAC;gBACH,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB;iBACvF,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;oBACjC,IAAI,CAAC,sBAAsB,CAAC;wBAC1B,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,WAAW,GAAG,wBAAwB;qBACzE,CAAC,CAAC;iBACJ;aACF;iBAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBACxD,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzF,IAAI,CAAC,aAAa,CAAC;oBACjB,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC,KAAK;iBAC5C,CAAC,CAAC;gBAEH,IAAI,CAAC,sBAAsB,CAAC;oBAC1B,CAAC,EAAE,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;iBACxF,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;oBAClC,IAAI,CAAC,sBAAsB,CAAC;wBAC1B,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,YAAY,GAAG,yBAAyB;qBAC3E,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAOS,mBAAmB,CAAC,aAA4B;QACxD,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAE3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,mBAAmB,CAAC,OAAkB,EAAE,EAAU;;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE;YACX,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,aAAK,CAAC,CAAC,6CAA6C,CAAC,CAAC;SACzE;QACD,OAAO,MAAqB,CAAC;IAC/B,CAAC;IAMD,wBAAwB,CAAC,IAAiB;QACxC,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB;YAC9F,MAAM,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB;SAChG,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,gBAAgB,CACxB,KAAoB,EACpB,UAKC;QAED,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;SACT,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE;gBACzC,OAAO;aACR;YACD,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;YACrE,MAAM,SAAS,GAAG,CAAC,CAAC,uBAAuB,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YAC7D,IAAI,IAAI,EAAE;gBACR,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;aACvD;iBAAM;gBACL,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aACpD;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,SAAsB,EAAE,CAAc,EAAE,UAA0B;QACxF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,EAAE,CAAC;QACzC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;QAE5C,MAAM,MAAM,GAAmB;YAC7B,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;YAC1C,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK;YAClD,GAAG,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,UAAU,CAAC,MAAM;SACtD,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;;AA/SH,wBAgTC;AA/SQ,WAAI,GAAG,MAAM,CAAC","file":"base-layout.js","sourcesContent":["import type { utilFunctionCtx } from '../typings/params';\nimport type { IChart } from '../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { ILayoutItem } from '../model/interface';\nimport type { IBaseLayout } from './interface';\nimport type { IPadding, IRect } from '../typings/space';\nimport type { IRegion } from '../region/interface';\nimport { error } from '../util/debug';\nimport { layoutBottomInlineItems, layoutLeftInlineItems, layoutRightInlineItems, layoutTopInlineItems } from './util';\n\ntype LayoutSideType = {\n top: number;\n left: number;\n bottom: number;\n right: number;\n};\n\nexport class Layout implements IBaseLayout {\n static type = 'base';\n\n leftCurrent: number = 0;\n topCurrent: number = 0;\n rightCurrent: number = 0;\n bottomCurrent: number = 0;\n\n _chartLayoutRect!: IRect;\n _chartViewBox!: IBoundsLike;\n\n protected _onError: (msg: string) => void;\n\n constructor(_spec?: unknown, ctx?: utilFunctionCtx) {\n this._onError = ctx?.onError;\n }\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.layoutNormalInlineItems(items.filter(x => x.layoutType === 'normal-inline'));\n this.layoutNormalItems(items.filter(x => x.layoutType === 'normal'));\n\n const layoutTemp: LayoutSideType = {\n left: this.leftCurrent,\n top: this.topCurrent,\n right: this.rightCurrent,\n bottom: 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 // 有元素开启了自动缩进\n // TODO:目前只有普通占位布局下的 region-relative 元素支持\n // 主要考虑常规元素超出画布一般为用户个性设置,而且可以设置padding规避裁剪,不需要使用自动缩进\n this.layoutRegionItems(regionItems, relativeItems);\n if (relativeItems.some(i => i.getAutoIndent())) {\n // check auto indent\n const { top, bottom, left, right } = this._checkAutoIndent(relativeItems, layoutTemp);\n // 如果出现了需要自动缩进的场景 则基于缩进再次布局\n if (top || bottom || left || right) {\n // set outer bounds to padding\n this.topCurrent = layoutTemp.top + top;\n this.bottomCurrent = layoutTemp.bottom - bottom;\n this.leftCurrent = layoutTemp.left + left;\n this.rightCurrent = layoutTemp.right - right;\n // reLayout\n this.layoutRegionItems(regionItems, relativeItems);\n }\n }\n\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n }\n\n protected layoutNormalItems(normalItems: ILayoutItem[]): void {\n normalItems.forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this.leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this.topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'right') {\n item.setLayoutStartPosition({\n x: this.rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this.rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'bottom') {\n item.setLayoutStartPosition({\n x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingRight,\n y: this.bottomCurrent + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n this.bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n }\n });\n }\n\n protected layoutNormalInlineItems(normalItems: ILayoutItem[]): void {\n const leftItems = normalItems.filter(item => item.layoutOrient === 'left');\n const rightItems = normalItems.filter(item => item.layoutOrient === 'right');\n const topItems = normalItems.filter(item => item.layoutOrient === 'top');\n const bottomItems = normalItems.filter(item => item.layoutOrient === 'bottom');\n const limitWidth = this._chartLayoutRect.width + this._chartLayoutRect.x;\n const limitHeight = this._chartLayoutRect.height + this._chartLayoutRect.y;\n\n // 同 normal,按照 left、top、right、bottom 的顺序进行布局\n // 各个方向上再按照 position 进行分组布局,顺序为 start middle end\n layoutLeftInlineItems(leftItems, this, limitHeight);\n layoutTopInlineItems(topItems, this, limitWidth);\n layoutRightInlineItems(rightItems, this, limitHeight);\n layoutBottomInlineItems(bottomItems, this, limitWidth);\n }\n\n /**\n *\n * 1. 补全 region-relative rect 和部分 layoutStartPoint\n * 2. 补全 region rect 和 layoutStartPoint\n *\n */\n protected layoutRegionItems(regionItems: IRegion[], regionRelativeItems: ILayoutItem[]): void {\n let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;\n let regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\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\n });\n this.leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'right') {\n this.rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\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);\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\n });\n this.topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'bottom') {\n this.bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\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 const regionWidth = Math.min(\n regionRelativeTotalWidth,\n ...regionItems.map(region => region.getMaxWidth?.() ?? Number.MAX_VALUE)\n );\n const regionHeight = Math.min(\n regionRelativeTotalHeight,\n ...regionItems.map(region => region.getMaxHeight?.() ?? Number.MAX_VALUE)\n );\n regionItems.forEach(region => {\n region.setLayoutRect({\n width: regionWidth,\n height: regionHeight\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\n if (item.layoutOrient === 'right') {\n item.setLayoutStartPosition({\n x: item.getLayoutStartPoint().x + regionWidth - regionRelativeTotalWidth\n });\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 if (item.layoutOrient === 'bottom') {\n item.setLayoutStartPosition({\n y: item.getLayoutStartPoint().y + regionHeight - regionRelativeTotalHeight\n });\n }\n }\n });\n }\n\n /**\n * 再找出对 absolute 元素,无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n protected layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n // 对普通布局来说,只出一个 region 绑定\n filterRegionsWithID(regions: IRegion[], id: number): ILayoutItem {\n const target = regions.find(x => x.id === id);\n if (!target) {\n (this._onError ?? error)('can not find target region item, invalid id');\n }\n return target as ILayoutItem;\n }\n\n /**\n * 工具方法 根据item属性获取给item提供的布局空间\n * @param item\n */\n getItemComputeLayoutRect(item: ILayoutItem) {\n const result = {\n width: this.rightCurrent - this.leftCurrent - item.layoutPaddingLeft - item.layoutPaddingRight,\n height: this.bottomCurrent - this.topCurrent - item.layoutPaddingTop - item.layoutPaddingBottom\n };\n return result;\n }\n\n protected _checkAutoIndent(\n items: ILayoutItem[],\n layoutTemp: {\n top: number;\n left: number;\n bottom: number;\n right: number;\n }\n ): IPadding {\n const result = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n };\n items.forEach(i => {\n if (!i.getVisible() || !i.getAutoIndent()) {\n return;\n }\n const vOrH = i.layoutOrient === 'left' || i.layoutOrient === 'right';\n const itemOuter = i.getLastComputeOutBounds();\n const outer = this._getOutInLayout(itemOuter, i, layoutTemp);\n if (vOrH) {\n result.top = Math.max(result.top, outer.top);\n result.bottom = Math.max(result.bottom, outer.bottom);\n } else {\n result.left = Math.max(result.left, outer.left);\n result.right = Math.max(result.right, outer.right);\n }\n });\n return result;\n }\n\n private _getOutInLayout(itemOuter: IBoundsLike, i: ILayoutItem, tempBorder: LayoutSideType): LayoutSideType {\n const { x, y } = i.getLayoutStartPoint();\n const { width, height } = i.getLayoutRect();\n\n const result: LayoutSideType = {\n left: tempBorder.left - (x - itemOuter.x1),\n right: x + width + itemOuter.x2 - tempBorder.right,\n top: tempBorder.top - (y - itemOuter.y1),\n bottom: y + height + itemOuter.y2 - tempBorder.bottom\n };\n return result;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/layout/base-layout.ts"],"names":[],"mappings":"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","file":"base-layout.js","sourcesContent":["import type { utilFunctionCtx } from '../typings/params';\nimport type { IChart } from '../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IBaseLayout, ILayoutItem } from './interface';\nimport type { IPadding, IRect } from '../typings/space';\nimport { error } from '../util/debug';\nimport { layoutBottomInlineItems, layoutLeftInlineItems, layoutRightInlineItems, layoutTopInlineItems } from './util';\n\ntype LayoutSideType = {\n top: number;\n left: number;\n bottom: number;\n right: number;\n};\n\nexport class Layout implements IBaseLayout {\n static type = 'base';\n\n leftCurrent: number = 0;\n topCurrent: number = 0;\n rightCurrent: number = 0;\n bottomCurrent: number = 0;\n\n _chartLayoutRect!: IRect;\n _chartViewBox!: IBoundsLike;\n\n protected _onError: (msg: string) => void;\n\n constructor(_spec?: unknown, ctx?: utilFunctionCtx) {\n this._onError = ctx?.onError;\n }\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 // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n this.layoutNormalInlineItems(items.filter(x => x.layoutType === 'normal-inline'));\n this.layoutNormalItems(items.filter(x => x.layoutType === 'normal'));\n\n const layoutTemp: LayoutSideType = {\n left: this.leftCurrent,\n top: this.topCurrent,\n right: this.rightCurrent,\n bottom: this.bottomCurrent\n };\n const regionItems = items.filter(x => x.layoutType === 'region');\n const relativeItems = items.filter(x => x.layoutType === 'region-relative');\n // 有元素开启了自动缩进\n // TODO:目前只有普通占位布局下的 region-relative 元素支持\n // 主要考虑常规元素超出画布一般为用户个性设置,而且可以设置padding规避裁剪,不需要使用自动缩进\n this.layoutRegionItems(regionItems, relativeItems);\n if (relativeItems.some(i => i.autoIndent)) {\n // check auto indent\n const { top, bottom, left, right } = this._checkAutoIndent(relativeItems, layoutTemp);\n // 如果出现了需要自动缩进的场景 则基于缩进再次布局\n if (top || bottom || left || right) {\n // set outer bounds to padding\n this.topCurrent = layoutTemp.top + top;\n this.bottomCurrent = layoutTemp.bottom - bottom;\n this.leftCurrent = layoutTemp.left + left;\n this.rightCurrent = layoutTemp.right - right;\n // reLayout\n this.layoutRegionItems(regionItems, relativeItems);\n }\n }\n\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n }\n\n protected layoutNormalItems(normalItems: ILayoutItem[]): void {\n normalItems.forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this.leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this.topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'right') {\n item.setLayoutStartPosition({\n x: this.rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this.rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'bottom') {\n item.setLayoutStartPosition({\n x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingRight,\n y: this.bottomCurrent + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n this.bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n }\n });\n }\n\n protected layoutNormalInlineItems(normalItems: ILayoutItem[]): void {\n const leftItems = normalItems.filter(item => item.layoutOrient === 'left');\n const rightItems = normalItems.filter(item => item.layoutOrient === 'right');\n const topItems = normalItems.filter(item => item.layoutOrient === 'top');\n const bottomItems = normalItems.filter(item => item.layoutOrient === 'bottom');\n const limitWidth = this._chartLayoutRect.width + this._chartLayoutRect.x;\n const limitHeight = this._chartLayoutRect.height + this._chartLayoutRect.y;\n\n // 同 normal,按照 left、top、right、bottom 的顺序进行布局\n // 各个方向上再按照 position 进行分组布局,顺序为 start middle end\n layoutLeftInlineItems(leftItems, this, limitHeight);\n layoutTopInlineItems(topItems, this, limitWidth);\n layoutRightInlineItems(rightItems, this, limitHeight);\n layoutBottomInlineItems(bottomItems, this, limitWidth);\n }\n\n /**\n *\n * 1. 补全 region-relative rect 和部分 layoutStartPoint\n * 2. 补全 region rect 和 layoutStartPoint\n *\n */\n protected layoutRegionItems(regionItems: ILayoutItem[], regionRelativeItems: ILayoutItem[]): void {\n let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent;\n let regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\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\n });\n this.leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'right') {\n this.rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\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);\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\n });\n this.topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'bottom') {\n this.bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\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 const regionWidth = Math.min(\n regionRelativeTotalWidth,\n ...regionItems.map(region => region.maxWidth ?? Number.MAX_VALUE)\n );\n const regionHeight = Math.min(\n regionRelativeTotalHeight,\n ...regionItems.map(region => region.maxHeight ?? Number.MAX_VALUE)\n );\n regionItems.forEach(region => {\n region.setLayoutRect({\n width: regionWidth,\n height: regionHeight\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\n if (item.layoutOrient === 'right') {\n item.setLayoutStartPosition({\n x: item.getLayoutStartPoint().x + regionWidth - regionRelativeTotalWidth\n });\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 if (item.layoutOrient === 'bottom') {\n item.setLayoutStartPosition({\n y: item.getLayoutStartPoint().y + regionHeight - regionRelativeTotalHeight\n });\n }\n }\n });\n }\n\n /**\n * 再找出对 absolute 元素,无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n protected layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n // 对普通布局来说,只出一个 region 绑定\n filterRegionsWithID(items: ILayoutItem[], id: number): ILayoutItem {\n const target = items.find(x => x.getModelId() === id);\n if (!target) {\n (this._onError ?? error)('can not find target region item, invalid id');\n }\n return target as ILayoutItem;\n }\n\n /**\n * 工具方法 根据item属性获取给item提供的布局空间\n * @param item\n */\n getItemComputeLayoutRect(item: ILayoutItem) {\n const result = {\n width: this.rightCurrent - this.leftCurrent - item.layoutPaddingLeft - item.layoutPaddingRight,\n height: this.bottomCurrent - this.topCurrent - item.layoutPaddingTop - item.layoutPaddingBottom\n };\n return result;\n }\n\n protected _checkAutoIndent(\n items: ILayoutItem[],\n layoutTemp: {\n top: number;\n left: number;\n bottom: number;\n right: number;\n }\n ): IPadding {\n const result = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n };\n items.forEach(i => {\n if (!i.getModelVisible() || !i.autoIndent) {\n return;\n }\n const vOrH = i.layoutOrient === 'left' || i.layoutOrient === 'right';\n const itemOuter = i.getLastComputeOutBounds();\n const outer = this._getOutInLayout(itemOuter, i, layoutTemp);\n if (vOrH) {\n result.top = Math.max(result.top, outer.top);\n result.bottom = Math.max(result.bottom, outer.bottom);\n } else {\n result.left = Math.max(result.left, outer.left);\n result.right = Math.max(result.right, outer.right);\n }\n });\n return result;\n }\n\n private _getOutInLayout(itemOuter: IBoundsLike, i: ILayoutItem, tempBorder: LayoutSideType): LayoutSideType {\n const { x, y } = i.getLayoutStartPoint();\n const { width, height } = i.getLayoutRect();\n\n const result: LayoutSideType = {\n left: tempBorder.left - (x - itemOuter.x1),\n right: x + width + itemOuter.x2 - tempBorder.right,\n top: tempBorder.top - (y - itemOuter.y1),\n bottom: y + height + itemOuter.y2 - tempBorder.bottom\n };\n return result;\n }\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  import type { utilFunctionCtx } from '../../typings/params';
2
2
  import type { IChart } from '../../chart/interface/chart';
3
3
  import type { IBoundsLike } from '@visactor/vutils';
4
- import type { ILayoutItem } from '../../model/interface';
5
- import type { IBaseLayout, IGridLayoutSpec, ElementSpec } from '../interface';
4
+ import type { IBaseLayout, IGridLayoutSpec, ElementSpec, ILayoutItem } from '../interface';
6
5
  import type { IRect } from '../../typings/space';
7
6
  type GridSize = {
8
7
  value: number;
@@ -65,13 +65,15 @@ class GridLayout {
65
65
  var _a;
66
66
  const mapResult = this._elementMap.get(item);
67
67
  if (mapResult) return mapResult;
68
- const model = item;
69
68
  let result;
70
69
  return result = null === (_a = this._gridInfo.elements) || void 0 === _a ? void 0 : _a.find((e => {
70
+ var _a;
71
71
  if ("modelId" in e && (0, vutils_1.isValid)(e.modelId)) {
72
- if ((0, vutils_1.isValid)(model.userId) && model.userId === e.modelId) return !0;
72
+ if ((0, vutils_1.isValid)(item.model.userId) && item.model.userId === e.modelId) return !0;
73
73
  } else if ("modelKey" in e && (0, vutils_1.isValid)(e.modelKey) && "modelIndex" in e && (0,
74
- vutils_1.isValid)(e.modelIndex) && model.specKey === e.modelKey && model.getSpecIndex() === e.modelIndex) return !0;
74
+ vutils_1.isValid)(e.modelIndex)) {
75
+ if ((null !== (_a = item.model.specKey) && void 0 !== _a ? _a : item.model.type) === e.modelKey && item.model.getSpecIndex() === e.modelIndex) return !0;
76
+ }
75
77
  return !1;
76
78
  })), result || (result = {
77
79
  col: 0,
@@ -141,7 +143,7 @@ class GridLayout {
141
143
  layoutItems(_chart, items, chartLayoutRect, chartViewBox) {
142
144
  this._chartLayoutRect = chartLayoutRect, this._chartViewBox = chartViewBox, this.clearLayoutSize(),
143
145
  items.sort(((a, b) => b.layoutLevel - a.layoutLevel));
144
- const normalItems = items.filter((item => "normal" === item.layoutType && !1 !== item.getVisible())), normalItemsCol = normalItems.filter((item => isColItem(item))), normalItemsRow = normalItems.filter((item => !isColItem(item)));
146
+ const normalItems = items.filter((item => "normal" === item.layoutType && !1 !== item.getModelVisible())), normalItemsCol = normalItems.filter((item => isColItem(item))), normalItemsRow = normalItems.filter((item => !isColItem(item)));
145
147
  normalItems.forEach((item => {
146
148
  this.layoutOneItem(item, "user", !1);
147
149
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/grid-layout/grid-layout.ts"],"names":[],"mappings":"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","file":"grid-layout.js","sourcesContent":["import type { utilFunctionCtx } from '../../typings/params';\nimport type { IChart } from '../../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IModel } from '../../model/interface';\nimport type { ILayoutItem } from '../../model/interface';\nimport type { IBaseLayout, IGridLayoutSpec, ElementSpec } from '../interface';\nimport { isFunction, isValid, isValidNumber } from '@visactor/vutils';\nimport type { IRect } from '../../typings/space';\nimport { Factory } from '../../core/factory';\n\ntype GridSize = {\n value: number;\n isUserSetting: boolean;\n isLayoutSetting: boolean;\n};\n\nexport class GridLayout implements IBaseLayout {\n static type = 'grid';\n private _chartLayoutRect: IRect = { x: 0, y: 0, width: 1, height: 1 };\n private _chartViewBox: IBoundsLike;\n\n protected _col: number = 1;\n protected _row: number = 1;\n protected _colSize: GridSize[];\n protected _rowSize: GridSize[];\n\n protected _colElements: ILayoutItem[][];\n protected _rowElements: ILayoutItem[][];\n\n protected _gridInfo: IGridLayoutSpec;\n\n protected _elementMap: Map<ILayoutItem, ElementSpec> = new Map();\n\n protected _onError: (...args: any[]) => void;\n\n constructor(gridInfo: IGridLayoutSpec, ctx: utilFunctionCtx) {\n this.standardizationSpec(gridInfo);\n this._gridInfo = gridInfo;\n this._col = gridInfo.col;\n this._row = gridInfo.row;\n this._colSize = new Array(this._col).fill(null);\n this._rowSize = new Array(this._row).fill(null);\n this._colElements = new Array(this._col).fill([]);\n this._rowElements = new Array(this._row).fill([]);\n this._onError = ctx?.onError;\n\n this.initUserSetting();\n }\n\n protected standardizationSpec(gridInfo: IGridLayoutSpec) {\n gridInfo.col = gridInfo.col ?? 1;\n gridInfo.row = gridInfo.row ?? 1;\n gridInfo.elements = gridInfo.elements ?? [];\n }\n\n protected initUserSetting() {\n // 先对用户设置的宽高进行设置\n this._gridInfo.colWidth &&\n this.setSizeFromUserSetting(this._gridInfo.colWidth, this._colSize, this._col, this._chartLayoutRect.width);\n\n this._gridInfo.rowHeight &&\n this.setSizeFromUserSetting(this._gridInfo.rowHeight, this._rowSize, this._row, this._chartLayoutRect.height);\n // 其余位置默认填充0\n this._colSize.forEach((c, i) => {\n if (!c) {\n this._colSize[i] = {\n value: 0,\n isUserSetting: false,\n isLayoutSetting: false\n };\n }\n });\n this._rowSize.forEach((r, i) => {\n if (!r) {\n this._rowSize[i] = {\n value: 0,\n isUserSetting: false,\n isLayoutSetting: false\n };\n }\n });\n }\n\n /**\n * 设置用户设置的 colWidth 和 rowHeight\n */\n protected setSizeFromUserSetting(\n userSetting: {\n index: number;\n size: number | ((maxSize: number) => number);\n }[],\n gridSize: GridSize[],\n gridMax: number,\n maxSize: number\n ) {\n userSetting.forEach(userSet => {\n if (userSet.index < 0 && userSet.index >= gridMax) {\n return;\n }\n if (isValidNumber(userSet.size)) {\n gridSize[userSet.index] = {\n value: +userSet.size,\n isUserSetting: true,\n isLayoutSetting: false\n };\n } else if (isFunction(userSet.size)) {\n gridSize[userSet.index] = {\n value: userSet.size(maxSize),\n isUserSetting: true,\n isLayoutSetting: false\n };\n }\n });\n }\n\n protected clearLayoutSize() {\n // 其余位置默认填充0\n this._colSize.forEach(c => {\n c.isLayoutSetting = false;\n if (!c.isUserSetting) {\n c.value = 0;\n }\n });\n this._rowSize.forEach(r => {\n r.isLayoutSetting = false;\n if (!r.isUserSetting) {\n r.value = 0;\n }\n });\n }\n\n protected getItemGridInfo(item: ILayoutItem): ElementSpec {\n // map 中寻找\n const mapResult = this._elementMap.get(item);\n if (mapResult) {\n return mapResult;\n }\n // 配置中匹配\n const model = item as unknown as IModel;\n let result: ElementSpec | undefined;\n result = this._gridInfo.elements?.find(e => {\n if ('modelId' in e && isValid(e.modelId)) {\n if (isValid(model.userId) && model.userId === e.modelId) {\n return true;\n }\n } else if ('modelKey' in e && isValid(e.modelKey) && 'modelIndex' in e && isValid(e.modelIndex)) {\n if (model.specKey === e.modelKey && model.getSpecIndex() === e.modelIndex) {\n return true;\n }\n }\n return false;\n });\n // default\n if (!result) {\n result = {\n col: 0,\n colSpan: 1,\n row: 0,\n rowSpan: 1\n } as ElementSpec;\n }\n this._elementMap.set(item, result);\n return result;\n }\n\n protected getSizeFromGird(spec: ElementSpec, type: 'col' | 'row'): number | undefined {\n const sizeList = type === 'col' ? this._colSize : this._rowSize;\n let result = 0;\n for (let index = spec[type]; index < spec[type] + (spec[`${type}Span`] ?? 1); index++) {\n result += sizeList[index].value;\n }\n return result;\n }\n\n protected getSizeFromUser(spec: ElementSpec, type: 'col' | 'row'): number | undefined {\n const sizeList = type === 'col' ? this._colSize : this._rowSize;\n if (!sizeList[spec[type]]?.isUserSetting) {\n return undefined;\n }\n let result = 0;\n for (let index = spec[type]; index < spec[type] + (spec[`${type}Span`] ?? 1); index++) {\n if (!sizeList[index].isUserSetting) {\n return undefined;\n }\n result += sizeList[index].value;\n }\n return result;\n }\n\n protected setItemLayoutSizeToGrid(item: ILayoutItem, gridSpec: ElementSpec) {\n if (isColItem(item)) {\n if (gridSpec.colSpan && gridSpec.colSpan > 1) {\n return;\n }\n if (this._colSize[gridSpec.col].isUserSetting) {\n return;\n }\n this._colSize[gridSpec.col].value = Math.max(\n this._colSize[gridSpec.col].value,\n item.getLayoutRect().width + item.layoutPaddingLeft + item.layoutPaddingRight\n );\n this._colSize[gridSpec.col].isLayoutSetting = true;\n } else {\n if (gridSpec.rowSpan && gridSpec.rowSpan > 1) {\n return;\n }\n if (this._rowSize[gridSpec.row].isUserSetting) {\n return;\n }\n this._rowSize[gridSpec.row].value = Math.max(\n this._rowSize[gridSpec.row].value,\n item.getLayoutRect().height + item.layoutPaddingTop + item.layoutPaddingBottom\n );\n this._rowSize[gridSpec.row].isLayoutSetting = true;\n }\n }\n\n protected layoutGrid(type: 'col' | 'row') {\n const gridSize = type === 'col' ? this._colSize : this._rowSize;\n let unSetSize = type === 'col' ? this._chartLayoutRect.width : this._chartLayoutRect.height;\n const willSize: GridSize[] = [];\n gridSize.forEach(s => {\n if (s.isUserSetting || s.isLayoutSetting) {\n unSetSize -= s.value;\n } else {\n willSize.push(s);\n }\n });\n if (unSetSize < 0) {\n console.warn(`layout content ${type} size bigger than chart`);\n }\n willSize.forEach(s => (s.value = unSetSize / willSize.length));\n }\n\n protected getItemPosition(item: ILayoutItem) {\n const gridSpec = this.getItemGridInfo(item);\n const point = { x: this._chartLayoutRect.x, y: this._chartLayoutRect.y };\n for (let col = 0; col < gridSpec.col; col++) {\n point.x += this._colSize[col].value;\n }\n for (let row = 0; row < gridSpec.row; row++) {\n point.y += this._rowSize[row].value;\n }\n point.x += item.layoutPaddingLeft + item.layoutOffsetX;\n point.y += item.layoutPaddingTop + item.layoutOffsetY;\n return point;\n }\n\n protected getItemLayoutRect(item: ILayoutItem) {\n const gridSpec = this.getItemGridInfo(item);\n // 先设置空间\n const rect = {\n width:\n (this.getSizeFromGird(gridSpec, 'col') ?? this._chartLayoutRect.width) -\n item.layoutPaddingLeft -\n item.layoutPaddingRight,\n height:\n (this.getSizeFromGird(gridSpec, 'row') ?? this._chartLayoutRect.height) -\n item.layoutPaddingTop -\n item.layoutPaddingBottom\n };\n return rect;\n }\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n // 先清空旧布局信息\n this.clearLayoutSize();\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n // 剔除 region 后,其余元素先布局运算\n const normalItems = items.filter(item => item.layoutType === 'normal' && item.getVisible() !== false);\n const normalItemsCol = normalItems.filter(item => isColItem(item));\n const normalItemsRow = normalItems.filter(item => !isColItem(item));\n normalItems.forEach(item => {\n this.layoutOneItem(item, 'user', false);\n });\n\n // region 和 region 关联元素\n const regionsRelative = items.filter(x => x.layoutType === 'region-relative');\n const regionsRelativeCol = regionsRelative.filter(item => isColItem(item));\n const regionsRelativeRow = regionsRelative.filter(item => !isColItem(item));\n // 先进行 col 方向布局\n regionsRelativeCol.forEach(item => this.layoutOneItem(item, 'user', false));\n // 然后得到最终 col 信息 此时已经是最终 col 信息\n this.layoutGrid('col');\n // 再使用宽度信息辅助row方向排序\n // 此时普通占位元素,会因为布局宽度影响最终布局高度\n normalItemsRow.forEach(item => this.layoutOneItem(item, 'colGrid', false));\n regionsRelativeRow.forEach(item => {\n this.layoutOneItem(item, 'colGrid', false);\n });\n // 然后得到最终 row 信息\n this.layoutGrid('row');\n // 统一水平方向元素高度\n regionsRelativeRow.forEach(item => {\n this.layoutOneItem(item, 'grid', false);\n });\n // 再使用宽度信息,第二次次对 col 方向布局\n normalItemsCol.forEach(item => this.layoutOneItem(item, 'grid', false));\n regionsRelativeCol.forEach(item => {\n // 此时从布局逻辑可知,item的layoutRect会发生,将item的layoutTag设置为true\n this.layoutOneItem(item, 'grid', true);\n });\n this.layoutGrid('col');\n\n // region\n items.filter(x => x.layoutType === 'region').forEach(item => this.layoutOneItem(item, 'grid', false));\n\n // 再找出 absolute 元素,无需排序,在 compiler 层需要排序放置\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n\n // 最后基于grid 设置位置\n items\n .filter(x => x.layoutType !== 'absolute')\n .forEach(item => {\n item.setLayoutStartPosition(this.getItemPosition(item));\n });\n }\n\n /**\n *\n * 无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n\n private layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n protected layoutOneItem(item: ILayoutItem, sizeType: 'user' | 'grid' | 'colGrid' | 'rowGrid', ignoreTag: boolean) {\n const sizeCallRow =\n sizeType === 'rowGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);\n const sizeCallCol =\n sizeType === 'colGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);\n // 先获取 item 的 grid 信息\n const gridSpec = this.getItemGridInfo(item);\n // 先设置空间\n const computeRect = {\n width:\n (sizeCallCol(gridSpec, 'col') ?? this._chartLayoutRect.width) -\n item.layoutPaddingLeft -\n item.layoutPaddingRight,\n height:\n (sizeCallRow(gridSpec, 'row') ?? this._chartLayoutRect.height) -\n item.layoutPaddingTop -\n item.layoutPaddingBottom\n };\n const rect = item.computeBoundsInRect(computeRect);\n if (!isValidNumber(rect.width)) {\n rect.width = computeRect.width;\n }\n if (!isValidNumber(rect.height)) {\n rect.height = computeRect.height;\n }\n item.setLayoutRect(sizeType !== 'grid' ? rect : computeRect);\n // 设置大小到grid\n this.setItemLayoutSizeToGrid(item, gridSpec);\n }\n}\n\nfunction isColItem(item: ILayoutItem) {\n return item.layoutOrient === 'left' || item.layoutOrient === 'right';\n}\n\nexport const registerGridLayout = () => {\n Factory.registerLayout(GridLayout.type, GridLayout);\n};\n"]}
1
+ {"version":3,"sources":["../src/layout/grid-layout/grid-layout.ts"],"names":[],"mappings":"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","file":"grid-layout.js","sourcesContent":["import type { utilFunctionCtx } from '../../typings/params';\nimport type { IChart } from '../../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IBaseLayout, IGridLayoutSpec, ElementSpec, ILayoutItem } from '../interface';\nimport { isFunction, isValid, isValidNumber } from '@visactor/vutils';\nimport type { IRect } from '../../typings/space';\nimport { Factory } from '../../core/factory';\n\ntype GridSize = {\n value: number;\n isUserSetting: boolean;\n isLayoutSetting: boolean;\n};\n\nexport class GridLayout implements IBaseLayout {\n static type = 'grid';\n private _chartLayoutRect: IRect = { x: 0, y: 0, width: 1, height: 1 };\n private _chartViewBox: IBoundsLike;\n\n protected _col: number = 1;\n protected _row: number = 1;\n protected _colSize: GridSize[];\n protected _rowSize: GridSize[];\n\n protected _colElements: ILayoutItem[][];\n protected _rowElements: ILayoutItem[][];\n\n protected _gridInfo: IGridLayoutSpec;\n\n protected _elementMap: Map<ILayoutItem, ElementSpec> = new Map();\n\n protected _onError: (...args: any[]) => void;\n\n constructor(gridInfo: IGridLayoutSpec, ctx: utilFunctionCtx) {\n this.standardizationSpec(gridInfo);\n this._gridInfo = gridInfo;\n this._col = gridInfo.col;\n this._row = gridInfo.row;\n this._colSize = new Array(this._col).fill(null);\n this._rowSize = new Array(this._row).fill(null);\n this._colElements = new Array(this._col).fill([]);\n this._rowElements = new Array(this._row).fill([]);\n this._onError = ctx?.onError;\n\n this.initUserSetting();\n }\n\n protected standardizationSpec(gridInfo: IGridLayoutSpec) {\n gridInfo.col = gridInfo.col ?? 1;\n gridInfo.row = gridInfo.row ?? 1;\n gridInfo.elements = gridInfo.elements ?? [];\n }\n\n protected initUserSetting() {\n // 先对用户设置的宽高进行设置\n this._gridInfo.colWidth &&\n this.setSizeFromUserSetting(this._gridInfo.colWidth, this._colSize, this._col, this._chartLayoutRect.width);\n\n this._gridInfo.rowHeight &&\n this.setSizeFromUserSetting(this._gridInfo.rowHeight, this._rowSize, this._row, this._chartLayoutRect.height);\n // 其余位置默认填充0\n this._colSize.forEach((c, i) => {\n if (!c) {\n this._colSize[i] = {\n value: 0,\n isUserSetting: false,\n isLayoutSetting: false\n };\n }\n });\n this._rowSize.forEach((r, i) => {\n if (!r) {\n this._rowSize[i] = {\n value: 0,\n isUserSetting: false,\n isLayoutSetting: false\n };\n }\n });\n }\n\n /**\n * 设置用户设置的 colWidth 和 rowHeight\n */\n protected setSizeFromUserSetting(\n userSetting: {\n index: number;\n size: number | ((maxSize: number) => number);\n }[],\n gridSize: GridSize[],\n gridMax: number,\n maxSize: number\n ) {\n userSetting.forEach(userSet => {\n if (userSet.index < 0 && userSet.index >= gridMax) {\n return;\n }\n if (isValidNumber(userSet.size)) {\n gridSize[userSet.index] = {\n value: +userSet.size,\n isUserSetting: true,\n isLayoutSetting: false\n };\n } else if (isFunction(userSet.size)) {\n gridSize[userSet.index] = {\n value: userSet.size(maxSize),\n isUserSetting: true,\n isLayoutSetting: false\n };\n }\n });\n }\n\n protected clearLayoutSize() {\n // 其余位置默认填充0\n this._colSize.forEach(c => {\n c.isLayoutSetting = false;\n if (!c.isUserSetting) {\n c.value = 0;\n }\n });\n this._rowSize.forEach(r => {\n r.isLayoutSetting = false;\n if (!r.isUserSetting) {\n r.value = 0;\n }\n });\n }\n\n protected getItemGridInfo(item: ILayoutItem): ElementSpec {\n // map 中寻找\n const mapResult = this._elementMap.get(item);\n if (mapResult) {\n return mapResult;\n }\n // 配置中匹配\n let result: ElementSpec | undefined;\n result = this._gridInfo.elements?.find(e => {\n if ('modelId' in e && isValid(e.modelId)) {\n if (isValid(item.model.userId) && item.model.userId === e.modelId) {\n return true;\n }\n } else if ('modelKey' in e && isValid(e.modelKey) && 'modelIndex' in e && isValid(e.modelIndex)) {\n const specKey = item.model.specKey ?? item.model.type;\n if (specKey === e.modelKey && item.model.getSpecIndex() === e.modelIndex) {\n return true;\n }\n }\n return false;\n });\n // default\n if (!result) {\n result = {\n col: 0,\n colSpan: 1,\n row: 0,\n rowSpan: 1\n } as ElementSpec;\n }\n this._elementMap.set(item, result);\n return result;\n }\n\n protected getSizeFromGird(spec: ElementSpec, type: 'col' | 'row'): number | undefined {\n const sizeList = type === 'col' ? this._colSize : this._rowSize;\n let result = 0;\n for (let index = spec[type]; index < spec[type] + (spec[`${type}Span`] ?? 1); index++) {\n result += sizeList[index].value;\n }\n return result;\n }\n\n protected getSizeFromUser(spec: ElementSpec, type: 'col' | 'row'): number | undefined {\n const sizeList = type === 'col' ? this._colSize : this._rowSize;\n if (!sizeList[spec[type]]?.isUserSetting) {\n return undefined;\n }\n let result = 0;\n for (let index = spec[type]; index < spec[type] + (spec[`${type}Span`] ?? 1); index++) {\n if (!sizeList[index].isUserSetting) {\n return undefined;\n }\n result += sizeList[index].value;\n }\n return result;\n }\n\n protected setItemLayoutSizeToGrid(item: ILayoutItem, gridSpec: ElementSpec) {\n if (isColItem(item)) {\n if (gridSpec.colSpan && gridSpec.colSpan > 1) {\n return;\n }\n if (this._colSize[gridSpec.col].isUserSetting) {\n return;\n }\n this._colSize[gridSpec.col].value = Math.max(\n this._colSize[gridSpec.col].value,\n item.getLayoutRect().width + item.layoutPaddingLeft + item.layoutPaddingRight\n );\n this._colSize[gridSpec.col].isLayoutSetting = true;\n } else {\n if (gridSpec.rowSpan && gridSpec.rowSpan > 1) {\n return;\n }\n if (this._rowSize[gridSpec.row].isUserSetting) {\n return;\n }\n this._rowSize[gridSpec.row].value = Math.max(\n this._rowSize[gridSpec.row].value,\n item.getLayoutRect().height + item.layoutPaddingTop + item.layoutPaddingBottom\n );\n this._rowSize[gridSpec.row].isLayoutSetting = true;\n }\n }\n\n protected layoutGrid(type: 'col' | 'row') {\n const gridSize = type === 'col' ? this._colSize : this._rowSize;\n let unSetSize = type === 'col' ? this._chartLayoutRect.width : this._chartLayoutRect.height;\n const willSize: GridSize[] = [];\n gridSize.forEach(s => {\n if (s.isUserSetting || s.isLayoutSetting) {\n unSetSize -= s.value;\n } else {\n willSize.push(s);\n }\n });\n if (unSetSize < 0) {\n console.warn(`layout content ${type} size bigger than chart`);\n }\n willSize.forEach(s => (s.value = unSetSize / willSize.length));\n }\n\n protected getItemPosition(item: ILayoutItem) {\n const gridSpec = this.getItemGridInfo(item);\n const point = { x: this._chartLayoutRect.x, y: this._chartLayoutRect.y };\n for (let col = 0; col < gridSpec.col; col++) {\n point.x += this._colSize[col].value;\n }\n for (let row = 0; row < gridSpec.row; row++) {\n point.y += this._rowSize[row].value;\n }\n point.x += item.layoutPaddingLeft + item.layoutOffsetX;\n point.y += item.layoutPaddingTop + item.layoutOffsetY;\n return point;\n }\n\n protected getItemLayoutRect(item: ILayoutItem) {\n const gridSpec = this.getItemGridInfo(item);\n // 先设置空间\n const rect = {\n width:\n (this.getSizeFromGird(gridSpec, 'col') ?? this._chartLayoutRect.width) -\n item.layoutPaddingLeft -\n item.layoutPaddingRight,\n height:\n (this.getSizeFromGird(gridSpec, 'row') ?? this._chartLayoutRect.height) -\n item.layoutPaddingTop -\n item.layoutPaddingBottom\n };\n return rect;\n }\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n // 先清空旧布局信息\n this.clearLayoutSize();\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n // 剔除 region 后,其余元素先布局运算\n const normalItems = items.filter(item => item.layoutType === 'normal' && item.getModelVisible() !== false);\n const normalItemsCol = normalItems.filter(item => isColItem(item));\n const normalItemsRow = normalItems.filter(item => !isColItem(item));\n normalItems.forEach(item => {\n this.layoutOneItem(item, 'user', false);\n });\n\n // region 和 region 关联元素\n const regionsRelative = items.filter(x => x.layoutType === 'region-relative');\n const regionsRelativeCol = regionsRelative.filter(item => isColItem(item));\n const regionsRelativeRow = regionsRelative.filter(item => !isColItem(item));\n // 先进行 col 方向布局\n regionsRelativeCol.forEach(item => this.layoutOneItem(item, 'user', false));\n // 然后得到最终 col 信息 此时已经是最终 col 信息\n this.layoutGrid('col');\n // 再使用宽度信息辅助row方向排序\n // 此时普通占位元素,会因为布局宽度影响最终布局高度\n normalItemsRow.forEach(item => this.layoutOneItem(item, 'colGrid', false));\n regionsRelativeRow.forEach(item => {\n this.layoutOneItem(item, 'colGrid', false);\n });\n // 然后得到最终 row 信息\n this.layoutGrid('row');\n // 统一水平方向元素高度\n regionsRelativeRow.forEach(item => {\n this.layoutOneItem(item, 'grid', false);\n });\n // 再使用宽度信息,第二次次对 col 方向布局\n normalItemsCol.forEach(item => this.layoutOneItem(item, 'grid', false));\n regionsRelativeCol.forEach(item => {\n // 此时从布局逻辑可知,item的layoutRect会发生,将item的layoutTag设置为true\n this.layoutOneItem(item, 'grid', true);\n });\n this.layoutGrid('col');\n\n // region\n items.filter(x => x.layoutType === 'region').forEach(item => this.layoutOneItem(item, 'grid', false));\n\n // 再找出 absolute 元素,无需排序,在 compiler 层需要排序放置\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n\n // 最后基于grid 设置位置\n items\n .filter(x => x.layoutType !== 'absolute')\n .forEach(item => {\n item.setLayoutStartPosition(this.getItemPosition(item));\n });\n }\n\n /**\n *\n * 无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n\n private layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n protected layoutOneItem(item: ILayoutItem, sizeType: 'user' | 'grid' | 'colGrid' | 'rowGrid', ignoreTag: boolean) {\n const sizeCallRow =\n sizeType === 'rowGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);\n const sizeCallCol =\n sizeType === 'colGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);\n // 先获取 item 的 grid 信息\n const gridSpec = this.getItemGridInfo(item);\n // 先设置空间\n const computeRect = {\n width:\n (sizeCallCol(gridSpec, 'col') ?? this._chartLayoutRect.width) -\n item.layoutPaddingLeft -\n item.layoutPaddingRight,\n height:\n (sizeCallRow(gridSpec, 'row') ?? this._chartLayoutRect.height) -\n item.layoutPaddingTop -\n item.layoutPaddingBottom\n };\n const rect = item.computeBoundsInRect(computeRect);\n if (!isValidNumber(rect.width)) {\n rect.width = computeRect.width;\n }\n if (!isValidNumber(rect.height)) {\n rect.height = computeRect.height;\n }\n item.setLayoutRect(sizeType !== 'grid' ? rect : computeRect);\n // 设置大小到grid\n this.setItemLayoutSizeToGrid(item, gridSpec);\n }\n}\n\nfunction isColItem(item: ILayoutItem) {\n return item.layoutOrient === 'left' || item.layoutOrient === 'right';\n}\n\nexport const registerGridLayout = () => {\n Factory.registerLayout(GridLayout.type, GridLayout);\n};\n"]}
@@ -1,12 +1,13 @@
1
- import type { utilFunctionCtx } from '../typings/params';
2
- import type { IRect } from '../typings/space';
3
- import type { ILayoutItem } from '../model/interface';
4
1
  import type { IBoundsLike } from '@visactor/vutils';
5
- import type { IChart } from '../chart/interface';
2
+ import type { StringOrNumber } from '../typings/common';
3
+ import type { IOrientType, IRect } from '../typings/space';
4
+ import type { IPoint } from '../typings/coordinate';
5
+ import type { ILayoutNumber, ILayoutPaddingSpec, ILayoutPoint, ILayoutRect, ILayoutType } from '../typings/layout';
6
+ import type { ILayoutModel } from '../model/interface';
6
7
  export interface IBaseLayout {
7
8
  layoutItems: LayoutCallBack;
8
9
  }
9
- export type LayoutCallBack = (chart: IChart, item: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike) => void;
10
+ export type LayoutCallBack = (chart: any, item: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike) => void;
10
11
  export interface ILayoutSpecBase {
11
12
  type: string;
12
13
  }
@@ -41,5 +42,72 @@ export interface IBaseLayoutSpec extends ILayoutSpecBase {
41
42
  export type ILayoutSpec = IBaseLayoutSpec | IGridLayoutSpec;
42
43
  export interface ILayoutConstructor {
43
44
  type: string;
44
- new (spec: ILayoutSpec | any, ctx?: utilFunctionCtx): IBaseLayout;
45
+ new (spec: ILayoutSpec | any, ctx?: any): IBaseLayout;
46
+ }
47
+ export interface ILayoutItem {
48
+ readonly type: string;
49
+ directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';
50
+ layoutClip: boolean;
51
+ layoutType: ILayoutType;
52
+ layoutBindRegionID: number | number[];
53
+ layoutOrient: IOrientType;
54
+ autoIndent: boolean;
55
+ layoutPaddingLeft: number;
56
+ layoutPaddingTop: number;
57
+ layoutPaddingRight: number;
58
+ layoutPaddingBottom: number;
59
+ layoutOffsetX: number;
60
+ layoutOffsetY: number;
61
+ layoutLevel: number;
62
+ chartLayoutRect: ILayoutRect;
63
+ readonly layoutRectLevelMap: ILayoutRect;
64
+ minWidth: number;
65
+ maxWidth: number;
66
+ minHeight: number;
67
+ maxHeight: number;
68
+ readonly model: ILayoutModel;
69
+ getModelId: () => StringOrNumber;
70
+ getModelVisible: () => boolean;
71
+ getSpec?: () => any;
72
+ setAttrFromSpec: (spec: ILayoutItemSpec, chartViewRect: ILayoutRect) => void;
73
+ setRectInSpec: (rect: ILayoutRect) => ILayoutRect;
74
+ getLayoutStartPoint: () => ILayoutPoint;
75
+ getLayoutRect: () => ILayoutRect;
76
+ getLayout: () => IRect;
77
+ getLastComputeOutBounds: () => IBoundsLike;
78
+ onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: any) => void;
79
+ onLayoutEnd: (option: any) => void;
80
+ setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>) => void;
81
+ computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;
82
+ setLayoutStartPosition: (pos: Partial<IPoint>) => void;
83
+ absoluteLayoutInRect: (rect: IRect) => void;
84
+ }
85
+ export interface ILayoutItemSpec {
86
+ layoutType?: ILayoutType;
87
+ layoutLevel?: number;
88
+ orient?: IOrientType;
89
+ padding?: ILayoutPaddingSpec;
90
+ noOuterPadding?: boolean;
91
+ width?: ILayoutNumber;
92
+ maxWidth?: ILayoutNumber;
93
+ minWidth?: ILayoutNumber;
94
+ height?: ILayoutNumber;
95
+ maxHeight?: ILayoutNumber;
96
+ minHeight?: ILayoutNumber;
97
+ offsetX?: ILayoutNumber;
98
+ offsetY?: ILayoutNumber;
99
+ zIndex?: number;
100
+ clip?: boolean;
101
+ left?: ILayoutNumber;
102
+ right?: ILayoutNumber;
103
+ top?: ILayoutNumber;
104
+ bottom?: ILayoutNumber;
105
+ center?: boolean;
106
+ }
107
+ export interface ILayoutItemInitOption {
108
+ layoutType: ILayoutType;
109
+ layoutLevel: number;
110
+ layoutOrient?: IOrientType;
111
+ transformLayoutRect?: (rect: ILayoutRect) => ILayoutRect;
112
+ transformLayoutPosition?: (pos: Partial<IPoint>) => Partial<IPoint>;
45
113
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { utilFunctionCtx } from '../typings/params';\nimport type { IRect } from '../typings/space';\nimport type { ILayoutItem } from '../model/interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IChart } from '../chart/interface';\n\nexport interface IBaseLayout {\n /**\n * 对一组布局元素布局\n * 布局策略随意\n * @param item 布局元素数组\n * @param chartLayoutRect 排除图表 padding 后的图表的布局矩形,原点是图表绘制区域左上角。\n * @param chartViewBox 图表在画布中的可用空间,包含图表padding,原点是画布左上角\n * @returns\n */\n layoutItems: LayoutCallBack;\n}\n\nexport type LayoutCallBack = (\n chart: IChart,\n item: ILayoutItem[],\n chartLayoutRect: IRect,\n chartViewBox: IBoundsLike\n) => void;\n\nexport interface ILayoutSpecBase {\n type: string;\n}\n\nexport type ElementSpec = (\n | {\n modelKey: string; // spec key\n modelIndex: number;\n }\n | {\n modelId: string;\n }\n) & {\n col: number;\n colSpan?: number;\n row: number;\n rowSpan?: number;\n};\n\nexport interface IGridLayoutSpec extends ILayoutSpecBase {\n type: 'grid';\n col: number;\n row: number;\n colWidth?: {\n index: number;\n size: number | ((maxSize: number) => number);\n }[];\n rowHeight?: {\n index: number;\n size: number | ((maxSize: number) => number);\n }[];\n elements: ElementSpec[];\n}\n\nexport interface IBaseLayoutSpec extends ILayoutSpecBase {\n type: 'base';\n}\n\nexport type ILayoutSpec = IBaseLayoutSpec | IGridLayoutSpec;\n\nexport interface ILayoutConstructor {\n type: string;\n // TODO: spec 类型生命\n new (spec: ILayoutSpec | any, ctx?: utilFunctionCtx): IBaseLayout;\n}\n"]}
1
+ {"version":3,"sources":["../src/layout/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { StringOrNumber } from '../typings/common';\nimport type { IOrientType, IRect } from '../typings/space';\nimport type { IPoint } from '../typings/coordinate';\nimport type { ILayoutNumber, ILayoutPaddingSpec, ILayoutPoint, ILayoutRect, ILayoutType } from '../typings/layout';\nimport type { ILayoutModel } from '../model/interface';\n\nexport interface IBaseLayout {\n /**\n * 对一组布局元素布局\n * 布局策略随意\n * @param item 布局元素数组\n * @param chartLayoutRect 排除图表 padding 后的图表的布局矩形,原点是图表绘制区域左上角。\n * @param chartViewBox 图表在画布中的可用空间,包含图表padding,原点是画布左上角\n * @returns\n */\n layoutItems: LayoutCallBack;\n}\n\nexport type LayoutCallBack = (\n chart: any,\n item: ILayoutItem[],\n chartLayoutRect: IRect,\n chartViewBox: IBoundsLike\n) => void;\n\nexport interface ILayoutSpecBase {\n type: string;\n}\n\nexport type ElementSpec = (\n | {\n modelKey: string; // spec key\n modelIndex: number;\n }\n | {\n modelId: string;\n }\n) & {\n col: number;\n colSpan?: number;\n row: number;\n rowSpan?: number;\n};\n\nexport interface IGridLayoutSpec extends ILayoutSpecBase {\n type: 'grid';\n col: number;\n row: number;\n colWidth?: {\n index: number;\n size: number | ((maxSize: number) => number);\n }[];\n rowHeight?: {\n index: number;\n size: number | ((maxSize: number) => number);\n }[];\n elements: ElementSpec[];\n}\n\nexport interface IBaseLayoutSpec extends ILayoutSpecBase {\n type: 'base';\n}\n\nexport type ILayoutSpec = IBaseLayoutSpec | IGridLayoutSpec;\n\nexport interface ILayoutConstructor {\n type: string;\n // TODO: spec 类型生命\n new (spec: ILayoutSpec | any, ctx?: any): IBaseLayout;\n}\n\n/**\n * 因为这些元素都会继承到各个模块,所以这里统一有前缀避免语意冲突\n */\nexport interface ILayoutItem {\n readonly type: string;\n /**\n * 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n */\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n layoutClip: boolean;\n layoutType: ILayoutType;\n layoutBindRegionID: number | number[];\n layoutOrient: IOrientType;\n /** 是否自动缩进 */\n autoIndent: boolean;\n\n layoutPaddingLeft: number;\n layoutPaddingTop: number;\n layoutPaddingRight: number;\n layoutPaddingBottom: number;\n\n layoutOffsetX: number;\n layoutOffsetY: number;\n\n // 越大越先处理\n layoutLevel: number;\n\n chartLayoutRect: ILayoutRect;\n\n readonly layoutRectLevelMap: ILayoutRect;\n minWidth: number;\n maxWidth: number;\n minHeight: number;\n maxHeight: number;\n\n readonly model: ILayoutModel;\n\n getModelId: () => StringOrNumber;\n getModelVisible: () => boolean;\n\n getSpec?: () => any;\n setAttrFromSpec: (spec: ILayoutItemSpec, chartViewRect: ILayoutRect) => void;\n\n setRectInSpec: (rect: ILayoutRect) => ILayoutRect;\n\n getLayoutStartPoint: () => ILayoutPoint;\n getLayoutRect: () => ILayoutRect;\n getLayout: () => IRect;\n getLastComputeOutBounds: () => IBoundsLike;\n\n /** 生命周期 */\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: any) => void;\n onLayoutEnd: (option: any) => void;\n\n /**\n * 更新元素布局的 layoutRect 大小,用来更新指定布局空间\n */\n setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>) => void;\n /**\n * 基于元素内部逻辑计算占位空间,rect表示可用空间\n */\n computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;\n /**\n * 更新元素布局的起始点位置\n */\n setLayoutStartPosition: (pos: Partial<IPoint>) => void;\n /**\n * 更新绝对布局元素的位置信息\n */\n absoluteLayoutInRect: (rect: IRect) => void;\n}\n\nexport interface ILayoutItemSpec {\n /** 当前模块的布局类型,配置为 absolute 的话,当前元素会以图表左上角为原点进行绝对布局 */\n layoutType?: ILayoutType;\n /**\n * 布局顺序等级,等级越大的,越优先布局\n * 比如顶部同时有标题和图例的场景,期望标题先放在顶部,然后放置图例。\n */\n layoutLevel?: number;\n\n // 基础的布局配置\n /** 模块布局位置 */\n orient?: IOrientType;\n /** 模块的布局间距 */\n padding?: ILayoutPaddingSpec;\n /** 是否按照 orient 自动修改 padding,隐藏位于外侧的 padding。目前只在组件上生效 */\n noOuterPadding?: boolean;\n /** 模块的布局大小:宽度 */\n width?: ILayoutNumber;\n /** 模块的布局最大宽度 */\n maxWidth?: ILayoutNumber;\n /** 模块的布局最小宽度 */\n minWidth?: ILayoutNumber;\n /** 模块的布局大小:高度 */\n height?: ILayoutNumber;\n /** 模块的布局最大高度 */\n maxHeight?: ILayoutNumber;\n /** 模块的布局最小高度 */\n minHeight?: ILayoutNumber;\n /** 模块的布局位置偏移:X */\n offsetX?: ILayoutNumber;\n /** 模块的布局位置偏移:Y */\n offsetY?: ILayoutNumber;\n\n /** 模块的展示层级,当2个模块重叠时,层级较大的展示在上方 */\n zIndex?: number;\n /** 模块是否裁剪超出布局区域外的绘图内容 */\n clip?: boolean;\n\n // 绝对布局下的对齐设置\n\n /** 模块绝对布局下,与图表左侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n left?: ILayoutNumber;\n /** 模块绝对布局下,与图表右侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n right?: ILayoutNumber;\n /** 模块绝对布局下,与图表顶部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n top?: ILayoutNumber;\n /** 模块绝对布局下,与图表底部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n bottom?: ILayoutNumber;\n /** 模块绝对布局下,元素将放置在图表的正中间。注意仅在 layoutType === 'absolute' 时生效,同时将忽略 padding 属性 */\n center?: boolean;\n}\n\nexport interface ILayoutItemInitOption {\n layoutType: ILayoutType;\n layoutLevel: number;\n layoutOrient?: IOrientType;\n transformLayoutRect?: (rect: ILayoutRect) => ILayoutRect;\n transformLayoutPosition?: (pos: Partial<IPoint>) => Partial<IPoint>;\n}\n"]}