@visactor/vchart 1.8.8-alpha.1 → 1.8.8

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 (307) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +491 -357
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/stack.js +1 -2
  6. package/cjs/compile/grammar-item.js +2 -1
  7. package/cjs/component/axis/base-axis.d.ts +2 -1
  8. package/cjs/component/axis/base-axis.js +11 -1
  9. package/cjs/component/axis/base-axis.js.map +1 -1
  10. package/cjs/component/axis/cartesian/axis.d.ts +1 -1
  11. package/cjs/component/axis/cartesian/axis.js +2 -2
  12. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  13. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +6 -1
  14. package/cjs/component/axis/mixin/band-axis-mixin.js +17 -1
  15. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  16. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +9 -1
  17. package/cjs/component/axis/mixin/linear-axis-mixin.js +18 -5
  18. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  19. package/cjs/component/axis/polar/axis.d.ts +1 -1
  20. package/cjs/component/axis/polar/axis.js +2 -2
  21. package/cjs/component/axis/polar/axis.js.map +1 -1
  22. package/cjs/component/crosshair/cartesian.js +20 -17
  23. package/cjs/component/crosshair/cartesian.js.map +1 -1
  24. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
  25. package/cjs/component/data-zoom/data-filter-base-component.js +5 -2
  26. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  27. package/cjs/component/geo/geo-coordinate.d.ts +1 -0
  28. package/cjs/component/geo/geo-coordinate.js +6 -5
  29. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  30. package/cjs/component/label/util.js.map +1 -1
  31. package/cjs/component/player/player.js +2 -1
  32. package/cjs/component/player/player.js.map +1 -1
  33. package/cjs/constant/event.js +2 -1
  34. package/cjs/constant/scroll-bar.js +1 -2
  35. package/cjs/core/index.d.ts +1 -1
  36. package/cjs/core/index.js +1 -1
  37. package/cjs/core/index.js.map +1 -1
  38. package/cjs/env/env.js +1 -1
  39. package/cjs/env/index.js +1 -1
  40. package/cjs/event/event-dispatcher.js +4 -6
  41. package/cjs/event/event-dispatcher.js.map +1 -1
  42. package/cjs/event/event.js +1 -1
  43. package/cjs/event/index.js +1 -1
  44. package/cjs/event/interface.js +1 -1
  45. package/cjs/interaction/interface.js +2 -1
  46. package/cjs/interaction/trigger.js +1 -1
  47. package/cjs/interaction/zoom/zoomable.js +9 -9
  48. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  49. package/cjs/layout/base-layout.d.ts +46 -2
  50. package/cjs/layout/base-layout.js +186 -30
  51. package/cjs/layout/base-layout.js.map +1 -1
  52. package/cjs/layout/index.js +1 -1
  53. package/cjs/layout/interface.js +1 -1
  54. package/cjs/layout/layout-item.js +1 -1
  55. package/cjs/layout/layout3d/index.d.ts +1 -8
  56. package/cjs/layout/layout3d/index.js +10 -69
  57. package/cjs/layout/layout3d/index.js.map +1 -1
  58. package/cjs/layout/util.js +1 -1
  59. package/cjs/model/base-model-transformer.d.ts +2 -1
  60. package/cjs/model/base-model-transformer.js +6 -2
  61. package/cjs/model/base-model-transformer.js.map +1 -1
  62. package/cjs/series/area/area-transformer.d.ts +2 -0
  63. package/cjs/series/area/area-transformer.js +18 -1
  64. package/cjs/series/area/area-transformer.js.map +1 -1
  65. package/cjs/series/area/area.d.ts +0 -1
  66. package/cjs/series/area/area.js +1 -17
  67. package/cjs/series/area/area.js.map +1 -1
  68. package/cjs/series/base/base-series-transformer.js +1 -2
  69. package/cjs/series/base/base-series-transformer.js.map +1 -1
  70. package/cjs/series/base/base-series.js +10 -6
  71. package/cjs/series/base/base-series.js.map +1 -1
  72. package/cjs/series/cartesian/cartesian.js +4 -3
  73. package/cjs/series/cartesian/cartesian.js.map +1 -1
  74. package/cjs/theme/builtin/index.js +3 -1
  75. package/cjs/theme/builtin/index.js.map +1 -1
  76. package/cjs/typings/layout.d.ts +1 -1
  77. package/cjs/typings/layout.js.map +1 -1
  78. package/esm/chart/stack.js +1 -2
  79. package/esm/compile/grammar-item.js +2 -1
  80. package/esm/component/axis/base-axis.d.ts +2 -1
  81. package/esm/component/axis/base-axis.js +11 -1
  82. package/esm/component/axis/base-axis.js.map +1 -1
  83. package/esm/component/axis/cartesian/axis.d.ts +1 -1
  84. package/esm/component/axis/cartesian/axis.js +2 -2
  85. package/esm/component/axis/cartesian/axis.js.map +1 -1
  86. package/esm/component/axis/mixin/band-axis-mixin.d.ts +6 -1
  87. package/esm/component/axis/mixin/band-axis-mixin.js +17 -1
  88. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  89. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +9 -1
  90. package/esm/component/axis/mixin/linear-axis-mixin.js +19 -5
  91. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  92. package/esm/component/axis/polar/axis.d.ts +1 -1
  93. package/esm/component/axis/polar/axis.js +2 -2
  94. package/esm/component/axis/polar/axis.js.map +1 -1
  95. package/esm/component/crosshair/cartesian.js +20 -17
  96. package/esm/component/crosshair/cartesian.js.map +1 -1
  97. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
  98. package/esm/component/data-zoom/data-filter-base-component.js +5 -3
  99. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  100. package/esm/component/geo/geo-coordinate.d.ts +1 -0
  101. package/esm/component/geo/geo-coordinate.js +6 -5
  102. package/esm/component/geo/geo-coordinate.js.map +1 -1
  103. package/esm/component/label/util.js.map +1 -1
  104. package/esm/component/player/player.js +2 -1
  105. package/esm/component/player/player.js.map +1 -1
  106. package/esm/constant/event.js +2 -1
  107. package/esm/constant/scroll-bar.js +1 -2
  108. package/esm/core/index.d.ts +1 -1
  109. package/esm/core/index.js +1 -1
  110. package/esm/core/index.js.map +1 -1
  111. package/esm/env/env.js +1 -1
  112. package/esm/env/index.js +1 -1
  113. package/esm/event/event-dispatcher.js +4 -6
  114. package/esm/event/event-dispatcher.js.map +1 -1
  115. package/esm/event/event.js +1 -1
  116. package/esm/event/index.js +1 -1
  117. package/esm/event/interface.js +1 -1
  118. package/esm/interaction/interface.js +2 -1
  119. package/esm/interaction/trigger.js +1 -1
  120. package/esm/interaction/zoom/zoomable.js +8 -9
  121. package/esm/interaction/zoom/zoomable.js.map +1 -1
  122. package/esm/layout/base-layout.d.ts +46 -2
  123. package/esm/layout/base-layout.js +186 -30
  124. package/esm/layout/base-layout.js.map +1 -1
  125. package/esm/layout/index.js +1 -1
  126. package/esm/layout/interface.js +1 -1
  127. package/esm/layout/layout-item.js +1 -1
  128. package/esm/layout/layout3d/index.d.ts +1 -8
  129. package/esm/layout/layout3d/index.js +10 -69
  130. package/esm/layout/layout3d/index.js.map +1 -1
  131. package/esm/layout/util.js +1 -1
  132. package/esm/model/base-model-transformer.d.ts +2 -1
  133. package/esm/model/base-model-transformer.js +6 -2
  134. package/esm/model/base-model-transformer.js.map +1 -1
  135. package/esm/series/area/area-transformer.d.ts +2 -0
  136. package/esm/series/area/area-transformer.js +19 -0
  137. package/esm/series/area/area-transformer.js.map +1 -1
  138. package/esm/series/area/area.d.ts +0 -1
  139. package/esm/series/area/area.js +1 -18
  140. package/esm/series/area/area.js.map +1 -1
  141. package/esm/series/base/base-series-transformer.js +1 -2
  142. package/esm/series/base/base-series-transformer.js.map +1 -1
  143. package/esm/series/base/base-series.js +9 -5
  144. package/esm/series/base/base-series.js.map +1 -1
  145. package/esm/series/cartesian/cartesian.js +3 -2
  146. package/esm/series/cartesian/cartesian.js.map +1 -1
  147. package/esm/theme/builtin/index.js +2 -1
  148. package/esm/theme/builtin/index.js.map +1 -1
  149. package/esm/typings/layout.d.ts +1 -1
  150. package/esm/typings/layout.js.map +1 -1
  151. package/package.json +14 -14
  152. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.d.ts +0 -2
  153. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js +0 -22
  154. package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js.map +0 -1
  155. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +0 -4
  156. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js +0 -40
  157. package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +0 -1
  158. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.d.ts +0 -2
  159. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js +0 -42
  160. package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js.map +0 -1
  161. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +0 -2
  162. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js +0 -22
  163. package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js.map +0 -1
  164. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +0 -3
  165. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js +0 -25
  166. package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js.map +0 -1
  167. package/cjs/theme/builtin/common-mobile/component/crosshair.d.ts +0 -2
  168. package/cjs/theme/builtin/common-mobile/component/crosshair.js +0 -39
  169. package/cjs/theme/builtin/common-mobile/component/crosshair.js.map +0 -1
  170. package/cjs/theme/builtin/common-mobile/component/data-zoom.d.ts +0 -2
  171. package/cjs/theme/builtin/common-mobile/component/data-zoom.js +0 -40
  172. package/cjs/theme/builtin/common-mobile/component/data-zoom.js.map +0 -1
  173. package/cjs/theme/builtin/common-mobile/component/index.d.ts +0 -2
  174. package/cjs/theme/builtin/common-mobile/component/index.js +0 -34
  175. package/cjs/theme/builtin/common-mobile/component/index.js.map +0 -1
  176. package/cjs/theme/builtin/common-mobile/component/indicator.d.ts +0 -2
  177. package/cjs/theme/builtin/common-mobile/component/indicator.js +0 -23
  178. package/cjs/theme/builtin/common-mobile/component/indicator.js.map +0 -1
  179. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.d.ts +0 -2
  180. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js +0 -23
  181. package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js.map +0 -1
  182. package/cjs/theme/builtin/common-mobile/component/legend/continuous.d.ts +0 -2
  183. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js +0 -44
  184. package/cjs/theme/builtin/common-mobile/component/legend/continuous.js.map +0 -1
  185. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +0 -2
  186. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js +0 -39
  187. package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +0 -1
  188. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.d.ts +0 -2
  189. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js +0 -23
  190. package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js.map +0 -1
  191. package/cjs/theme/builtin/common-mobile/component/map-label.d.ts +0 -2
  192. package/cjs/theme/builtin/common-mobile/component/map-label.js +0 -39
  193. package/cjs/theme/builtin/common-mobile/component/map-label.js.map +0 -1
  194. package/cjs/theme/builtin/common-mobile/component/mark-area.d.ts +0 -2
  195. package/cjs/theme/builtin/common-mobile/component/mark-area.js +0 -24
  196. package/cjs/theme/builtin/common-mobile/component/mark-area.js.map +0 -1
  197. package/cjs/theme/builtin/common-mobile/component/mark-line.d.ts +0 -2
  198. package/cjs/theme/builtin/common-mobile/component/mark-line.js +0 -33
  199. package/cjs/theme/builtin/common-mobile/component/mark-line.js.map +0 -1
  200. package/cjs/theme/builtin/common-mobile/component/mark-point.d.ts +0 -2
  201. package/cjs/theme/builtin/common-mobile/component/mark-point.js +0 -19
  202. package/cjs/theme/builtin/common-mobile/component/mark-point.js.map +0 -1
  203. package/cjs/theme/builtin/common-mobile/component/player.d.ts +0 -2
  204. package/cjs/theme/builtin/common-mobile/component/player.js +0 -51
  205. package/cjs/theme/builtin/common-mobile/component/player.js.map +0 -1
  206. package/cjs/theme/builtin/common-mobile/component/poptip.d.ts +0 -2
  207. package/cjs/theme/builtin/common-mobile/component/poptip.js +0 -25
  208. package/cjs/theme/builtin/common-mobile/component/poptip.js.map +0 -1
  209. package/cjs/theme/builtin/common-mobile/component/title.d.ts +0 -2
  210. package/cjs/theme/builtin/common-mobile/component/title.js +0 -23
  211. package/cjs/theme/builtin/common-mobile/component/title.js.map +0 -1
  212. package/cjs/theme/builtin/common-mobile/component/tooltip.d.ts +0 -2
  213. package/cjs/theme/builtin/common-mobile/component/tooltip.js +0 -43
  214. package/cjs/theme/builtin/common-mobile/component/tooltip.js.map +0 -1
  215. package/cjs/theme/builtin/common-mobile/component/total-label.d.ts +0 -2
  216. package/cjs/theme/builtin/common-mobile/component/total-label.js +0 -16
  217. package/cjs/theme/builtin/common-mobile/component/total-label.js.map +0 -1
  218. package/cjs/theme/builtin/common-mobile/constants.d.ts +0 -2
  219. package/cjs/theme/builtin/common-mobile/constants.js +0 -23
  220. package/cjs/theme/builtin/common-mobile/constants.js.map +0 -1
  221. package/cjs/theme/builtin/common-mobile/mark.d.ts +0 -3
  222. package/cjs/theme/builtin/common-mobile/mark.js +0 -35
  223. package/cjs/theme/builtin/common-mobile/mark.js.map +0 -1
  224. package/cjs/theme/builtin/dark-mobile/index.d.ts +0 -2
  225. package/cjs/theme/builtin/dark-mobile/index.js +0 -18
  226. package/cjs/theme/builtin/dark-mobile/index.js.map +0 -1
  227. package/cjs/theme/builtin/light-mobile/index.d.ts +0 -2
  228. package/cjs/theme/builtin/light-mobile/index.js +0 -18
  229. package/cjs/theme/builtin/light-mobile/index.js.map +0 -1
  230. package/esm/theme/builtin/common-mobile/component/axis/band-axis.d.ts +0 -2
  231. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js +0 -18
  232. package/esm/theme/builtin/common-mobile/component/axis/band-axis.js.map +0 -1
  233. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +0 -4
  234. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js +0 -38
  235. package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +0 -1
  236. package/esm/theme/builtin/common-mobile/component/axis/common-axis.d.ts +0 -2
  237. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js +0 -36
  238. package/esm/theme/builtin/common-mobile/component/axis/common-axis.js.map +0 -1
  239. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +0 -2
  240. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js +0 -18
  241. package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js.map +0 -1
  242. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +0 -3
  243. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js +0 -23
  244. package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js.map +0 -1
  245. package/esm/theme/builtin/common-mobile/component/crosshair.d.ts +0 -2
  246. package/esm/theme/builtin/common-mobile/component/crosshair.js +0 -35
  247. package/esm/theme/builtin/common-mobile/component/crosshair.js.map +0 -1
  248. package/esm/theme/builtin/common-mobile/component/data-zoom.d.ts +0 -2
  249. package/esm/theme/builtin/common-mobile/component/data-zoom.js +0 -34
  250. package/esm/theme/builtin/common-mobile/component/data-zoom.js.map +0 -1
  251. package/esm/theme/builtin/common-mobile/component/index.d.ts +0 -2
  252. package/esm/theme/builtin/common-mobile/component/index.js +0 -66
  253. package/esm/theme/builtin/common-mobile/component/index.js.map +0 -1
  254. package/esm/theme/builtin/common-mobile/component/indicator.d.ts +0 -2
  255. package/esm/theme/builtin/common-mobile/component/indicator.js +0 -17
  256. package/esm/theme/builtin/common-mobile/component/indicator.js.map +0 -1
  257. package/esm/theme/builtin/common-mobile/component/legend/color-legend.d.ts +0 -2
  258. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js +0 -17
  259. package/esm/theme/builtin/common-mobile/component/legend/color-legend.js.map +0 -1
  260. package/esm/theme/builtin/common-mobile/component/legend/continuous.d.ts +0 -2
  261. package/esm/theme/builtin/common-mobile/component/legend/continuous.js +0 -38
  262. package/esm/theme/builtin/common-mobile/component/legend/continuous.js.map +0 -1
  263. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +0 -2
  264. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js +0 -33
  265. package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +0 -1
  266. package/esm/theme/builtin/common-mobile/component/legend/size-legend.d.ts +0 -2
  267. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js +0 -17
  268. package/esm/theme/builtin/common-mobile/component/legend/size-legend.js.map +0 -1
  269. package/esm/theme/builtin/common-mobile/component/map-label.d.ts +0 -2
  270. package/esm/theme/builtin/common-mobile/component/map-label.js +0 -33
  271. package/esm/theme/builtin/common-mobile/component/map-label.js.map +0 -1
  272. package/esm/theme/builtin/common-mobile/component/mark-area.d.ts +0 -2
  273. package/esm/theme/builtin/common-mobile/component/mark-area.js +0 -18
  274. package/esm/theme/builtin/common-mobile/component/mark-area.js.map +0 -1
  275. package/esm/theme/builtin/common-mobile/component/mark-line.d.ts +0 -2
  276. package/esm/theme/builtin/common-mobile/component/mark-line.js +0 -27
  277. package/esm/theme/builtin/common-mobile/component/mark-line.js.map +0 -1
  278. package/esm/theme/builtin/common-mobile/component/mark-point.d.ts +0 -2
  279. package/esm/theme/builtin/common-mobile/component/mark-point.js +0 -15
  280. package/esm/theme/builtin/common-mobile/component/mark-point.js.map +0 -1
  281. package/esm/theme/builtin/common-mobile/component/player.d.ts +0 -2
  282. package/esm/theme/builtin/common-mobile/component/player.js +0 -47
  283. package/esm/theme/builtin/common-mobile/component/player.js.map +0 -1
  284. package/esm/theme/builtin/common-mobile/component/poptip.d.ts +0 -2
  285. package/esm/theme/builtin/common-mobile/component/poptip.js +0 -19
  286. package/esm/theme/builtin/common-mobile/component/poptip.js.map +0 -1
  287. package/esm/theme/builtin/common-mobile/component/title.d.ts +0 -2
  288. package/esm/theme/builtin/common-mobile/component/title.js +0 -17
  289. package/esm/theme/builtin/common-mobile/component/title.js.map +0 -1
  290. package/esm/theme/builtin/common-mobile/component/tooltip.d.ts +0 -2
  291. package/esm/theme/builtin/common-mobile/component/tooltip.js +0 -37
  292. package/esm/theme/builtin/common-mobile/component/tooltip.js.map +0 -1
  293. package/esm/theme/builtin/common-mobile/component/total-label.d.ts +0 -2
  294. package/esm/theme/builtin/common-mobile/component/total-label.js +0 -10
  295. package/esm/theme/builtin/common-mobile/component/total-label.js.map +0 -1
  296. package/esm/theme/builtin/common-mobile/constants.d.ts +0 -2
  297. package/esm/theme/builtin/common-mobile/constants.js +0 -19
  298. package/esm/theme/builtin/common-mobile/constants.js.map +0 -1
  299. package/esm/theme/builtin/common-mobile/mark.d.ts +0 -3
  300. package/esm/theme/builtin/common-mobile/mark.js +0 -31
  301. package/esm/theme/builtin/common-mobile/mark.js.map +0 -1
  302. package/esm/theme/builtin/dark-mobile/index.d.ts +0 -2
  303. package/esm/theme/builtin/dark-mobile/index.js +0 -16
  304. package/esm/theme/builtin/dark-mobile/index.js.map +0 -1
  305. package/esm/theme/builtin/light-mobile/index.d.ts +0 -2
  306. package/esm/theme/builtin/light-mobile/index.js +0 -16
  307. package/esm/theme/builtin/light-mobile/index.js.map +0 -1
@@ -62,4 +62,4 @@ class Event {
62
62
  }
63
63
 
64
64
  exports.Event = Event;
65
- //# sourceMappingURL=event.js.map
65
+ //# sourceMappingURL=event.js.map
@@ -18,4 +18,4 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), __exportStar(require("./event"), exports), __exportStar(require("./events"), exports);
21
- //# sourceMappingURL=index.js.map
21
+ //# sourceMappingURL=index.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- //# sourceMappingURL=interface.js.map
6
+ //# sourceMappingURL=interface.js.map
@@ -2,4 +2,5 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- });
5
+ });
6
+ //# sourceMappingURL=interface.js.map
@@ -138,4 +138,4 @@ class Trigger {
138
138
  }
139
139
 
140
140
  exports.Trigger = Trigger;
141
- //# sourceMappingURL=trigger.js.map
141
+ //# sourceMappingURL=trigger.js.map
@@ -80,22 +80,24 @@ class Zoomable {
80
80
  }));
81
81
  }
82
82
  _scrollEventDispatch(params, regionOrSeries, callback) {
83
- if (!this._isGestureListener && (!params.event || this._option.disableTriggerEvent)) return;
83
+ let stopBubble = !1;
84
+ if (!this._isGestureListener && (!params.event || this._option.disableTriggerEvent)) return stopBubble;
84
85
  const event = this._isGestureListener ? params : params.event;
85
86
  this._zoomableTrigger.parserScrollEvent(event);
86
87
  const {scrollX: scrollX, scrollY: scrollY, canvasX: canvasX, canvasY: canvasY} = event;
87
- (0, vutils_1.isNil)(scrollX) && (0, vutils_1.isNil)(scrollY) || (0, vutils_1.pointInRect)({
88
+ return (0, vutils_1.isNil)(scrollX) && (0, vutils_1.isNil)(scrollY) ? stopBubble : (0,
89
+ vutils_1.pointInRect)({
88
90
  x: canvasX,
89
91
  y: canvasY
90
- }, this._getRegionOrSeriesLayout(regionOrSeries), !1) && (this._clickEnable = !1,
91
- callback && callback({
92
+ }, this._getRegionOrSeriesLayout(regionOrSeries), !1) ? (this._clickEnable = !1,
93
+ callback && (stopBubble = callback({
92
94
  scrollX: scrollX,
93
95
  scrollY: scrollY
94
- }, event), this._eventObj.emit("scroll", {
96
+ }, event)), this._eventObj.emit("scroll", {
95
97
  scrollX: scrollX,
96
98
  scrollY: scrollY,
97
99
  model: this
98
- }));
100
+ }), stopBubble) : stopBubble;
99
101
  }
100
102
  _bindScrollEventAsRegion(eventObj, regionOrSeries, callback, option) {
101
103
  var _a, _b;
@@ -108,9 +110,7 @@ class Zoomable {
108
110
  } ];
109
111
  event.on(...scrollEndParams, delayMap[delayType]((params => {
110
112
  this._zoomableTrigger.clearScroll();
111
- }), delayTime)), event.on(...scrollParams, delayMap[delayType]((params => {
112
- this._scrollEventDispatch(params, regionOrSeries, callback);
113
- }), delayTime));
113
+ }), delayTime)), event.on(...scrollParams, delayMap[delayType]((params => this._scrollEventDispatch(params, regionOrSeries, callback)), delayTime));
114
114
  }
115
115
  initScrollEventOfSeries(s, callback, option) {
116
116
  (0, config_1.getDefaultTriggerEventByMode)(this._renderMode) && this._bindScrollEventAsRegion(s.event, s, callback, option);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/zoom/zoomable.ts"],"names":[],"mappings":"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","file":"zoomable.js","sourcesContent":["import type { IModelOption } from './../../model/interface';\n/* eslint-disable no-duplicate-imports */\nimport { debounce, isNil, pointInRect, throttle } from '@visactor/vutils';\nimport type { BaseEventParams, EventQuery, 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 type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant';\nimport type { IDelayType } from '../../typings/event';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../../util';\nimport type { Gesture } from '@visactor/vrender-kits';\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 _option: IModelOption;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n private _gestureController!: Gesture | null;\n\n private _isGestureListener: boolean = false;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n this._gestureController = (this._option.getChart().getVGrammarView().renderer as any)._gestureController;\n this._isGestureListener = isMobileLikeMode(this._renderMode) || isMiniAppLikeMode(this._renderMode);\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 (!this._isGestureListener && !params.event) {\n return;\n }\n const event = this._isGestureListener ? params : 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 !pointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\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 const { x, y, width, height } = rs.layout.getLayout();\n return {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n };\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 const event = this._isGestureListener ? this._gestureController : eventObj;\n const zoomParams = this._isGestureListener\n ? [this._getTriggerEvent('zoom')]\n : [this._getTriggerEvent('zoom'), { level: Event_Bubble_Level.chart, consume: true }];\n const zoomEndParams: [string] | [string, EventQuery] = this._isGestureListener\n ? [this._getTriggerEvent('zoomEnd')]\n : [this._getTriggerEvent('zoomEnd'), { level: Event_Bubble_Level.chart, consume: false }];\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n (event as any).on(\n ...zoomEndParams,\n delayMap[delayType]((params: BaseEventParams) => {\n this._zoomableTrigger.clearZoom();\n }, delayTime) as any\n );\n\n (event as any).on(\n ...zoomParams,\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 (this._option.disableTriggerEvent) {\n return;\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 (this._option.disableTriggerEvent) {\n return;\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 (!this._isGestureListener && (!params.event || this._option.disableTriggerEvent)) {\n return;\n }\n const event = this._isGestureListener ? params : params.event;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY, canvasX, canvasY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return;\n }\n if (\n !pointInRect(\n {\n x: canvasX,\n y: canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n callback({ scrollX, scrollY }, event as any);\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 const event = this._isGestureListener ? this._gestureController : eventObj;\n const scrollParams = this._isGestureListener\n ? [this._getTriggerEvent('scroll')]\n : [this._getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }];\n const scrollEndParams = this._isGestureListener\n ? [this._getTriggerEvent('scrollEnd')]\n : [this._getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }];\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n (event as any).on(\n ...scrollEndParams,\n delayMap[delayType]((params: any) => {\n this._zoomableTrigger.clearScroll();\n }, delayTime)\n );\n\n (event as any).on(\n ...scrollParams,\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 (this._option.disableTriggerEvent) {\n return;\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 = pointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\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 (this._option.disableTriggerEvent) {\n return;\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 (this._option.disableTriggerEvent) {\n return;\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 if (this._option.disableTriggerEvent) {\n return;\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":"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","file":"zoomable.js","sourcesContent":["import type { IModelOption } from './../../model/interface';\n/* eslint-disable no-duplicate-imports */\nimport { debounce, isNil, pointInRect, throttle } from '@visactor/vutils';\nimport type { BaseEventParams, EventQuery, 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 type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant';\nimport type { IDelayType } from '../../typings/event';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../../util';\nimport type { Gesture } from '@visactor/vrender-kits';\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 _option: IModelOption;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n private _gestureController!: Gesture | null;\n\n private _isGestureListener: boolean = false;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n this._gestureController = (this._option.getChart().getVGrammarView().renderer as any)._gestureController;\n this._isGestureListener = isMobileLikeMode(this._renderMode) || isMiniAppLikeMode(this._renderMode);\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 (!this._isGestureListener && !params.event) {\n return;\n }\n const event = this._isGestureListener ? params : 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 !pointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\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 const { x, y, width, height } = rs.layout.getLayout();\n return {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n };\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 const event = this._isGestureListener ? this._gestureController : eventObj;\n const zoomParams = this._isGestureListener\n ? [this._getTriggerEvent('zoom')]\n : [this._getTriggerEvent('zoom'), { level: Event_Bubble_Level.chart, consume: true }];\n const zoomEndParams: [string] | [string, EventQuery] = this._isGestureListener\n ? [this._getTriggerEvent('zoomEnd')]\n : [this._getTriggerEvent('zoomEnd'), { level: Event_Bubble_Level.chart, consume: false }];\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n (event as any).on(\n ...zoomEndParams,\n delayMap[delayType]((params: BaseEventParams) => {\n this._zoomableTrigger.clearZoom();\n }, delayTime) as any\n );\n\n (event as any).on(\n ...zoomParams,\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 (this._option.disableTriggerEvent) {\n return;\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 (this._option.disableTriggerEvent) {\n return;\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']) => any\n ) {\n let stopBubble: boolean | undefined = false;\n if (!this._isGestureListener && (!params.event || this._option.disableTriggerEvent)) {\n return stopBubble;\n }\n const event = this._isGestureListener ? params : params.event;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY, canvasX, canvasY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return stopBubble;\n }\n if (\n !pointInRect(\n {\n x: canvasX,\n y: canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n )\n ) {\n return stopBubble;\n }\n this._clickEnable = false;\n\n if (callback) {\n stopBubble = callback({ scrollX, scrollY }, event as any);\n }\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n\n return stopBubble;\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => any,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n const event = this._isGestureListener ? this._gestureController : eventObj;\n const scrollParams = this._isGestureListener\n ? [this._getTriggerEvent('scroll')]\n : [this._getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }];\n const scrollEndParams = this._isGestureListener\n ? [this._getTriggerEvent('scrollEnd')]\n : [this._getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }];\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n (event as any).on(\n ...scrollEndParams,\n delayMap[delayType]((params: any) => {\n this._zoomableTrigger.clearScroll();\n }, delayTime)\n );\n\n (event as any).on(\n ...scrollParams,\n delayMap[delayType]((params: any) => {\n // if (realTime) {\n return 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 (this._option.disableTriggerEvent) {\n return;\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 = pointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\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 (this._option.disableTriggerEvent) {\n return;\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 (this._option.disableTriggerEvent) {\n return;\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 if (this._option.disableTriggerEvent) {\n return;\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"]}
@@ -2,7 +2,24 @@ import type { utilFunctionCtx } from '../typings/params';
2
2
  import type { IChart } from '../chart/interface/chart';
3
3
  import type { IBoundsLike } from '@visactor/vutils';
4
4
  import type { IBaseLayout, ILayoutItem } from './interface';
5
- import type { IPadding, IRect } from '../typings/space';
5
+ import type { IOrientType, IPadding, IRect } from '../typings/space';
6
+ import type { ILayoutRect } from '../typings/layout';
7
+ export type LayoutSideType = {
8
+ top: number;
9
+ left: number;
10
+ bottom: number;
11
+ right: number;
12
+ };
13
+ export interface IOffset {
14
+ offsetLeft: number;
15
+ offsetRight: number;
16
+ offsetTop: number;
17
+ offsetBottom: number;
18
+ }
19
+ type overlapInfo = {
20
+ items: ILayoutItem[];
21
+ rect: ILayoutRect;
22
+ };
6
23
  export declare class Layout implements IBaseLayout {
7
24
  static type: string;
8
25
  leftCurrent: number;
@@ -13,10 +30,36 @@ export declare class Layout implements IBaseLayout {
13
30
  _chartViewBox: IBoundsLike;
14
31
  protected _onError: (msg: string) => void;
15
32
  constructor(_spec?: unknown, ctx?: utilFunctionCtx);
33
+ protected _layoutInit(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void;
34
+ protected _layoutNormalItems(items: ILayoutItem[]): void;
35
+ protected _groupItems(items: ILayoutItem[]): {
36
+ regionItems: ILayoutItem[];
37
+ relativeItems: ILayoutItem[];
38
+ relativeOverlapItems: ILayoutItem[];
39
+ allRelatives: ILayoutItem[];
40
+ overlapItems: {
41
+ left: overlapInfo;
42
+ top: overlapInfo;
43
+ right: overlapInfo;
44
+ bottom: overlapInfo;
45
+ z: overlapInfo;
46
+ };
47
+ };
16
48
  layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void;
49
+ protected _processAutoIndent(regionItems: ILayoutItem[], relativeItems: ILayoutItem[], relativeOverlapItems: ILayoutItem[], overlapItems: {
50
+ [key in IOrientType]: overlapInfo;
51
+ }, allRelatives: ILayoutItem[], layoutTemp: LayoutSideType): void;
17
52
  protected layoutNormalItems(normalItems: ILayoutItem[]): void;
18
53
  protected layoutNormalInlineItems(normalItems: ILayoutItem[]): void;
19
- protected layoutRegionItems(regionItems: ILayoutItem[], regionRelativeItems: ILayoutItem[]): void;
54
+ protected _layoutRelativeOverlap(orient: IOrientType, info: overlapInfo): void;
55
+ protected _layoutRelativeItem(item: ILayoutItem, layoutRect: ILayoutRect): void;
56
+ protected _layoutRegionItem(regionItems: ILayoutItem[], regionRelativeTotalWidth: number, regionRelativeTotalHeight: number): {
57
+ regionHeight: number;
58
+ regionWidth: number;
59
+ };
60
+ protected layoutRegionItems(regionItems: ILayoutItem[], regionRelativeItems: ILayoutItem[], regionRelativeOverlapItems: ILayoutItem[], overlapItems?: {
61
+ [key in IOrientType]: overlapInfo;
62
+ }): void;
20
63
  protected layoutAbsoluteItems(absoluteItems: ILayoutItem[]): void;
21
64
  filterRegionsWithID(items: ILayoutItem[], id: number): ILayoutItem;
22
65
  getItemComputeLayoutRect(item: ILayoutItem): {
@@ -31,3 +74,4 @@ export declare class Layout implements IBaseLayout {
31
74
  }): IPadding;
32
75
  private _getOutInLayout;
33
76
  }
77
+ export {};
@@ -11,25 +11,118 @@ class Layout {
11
11
  this.leftCurrent = 0, this.topCurrent = 0, this.rightCurrent = 0, this.bottomCurrent = 0,
12
12
  this._onError = null == ctx ? void 0 : ctx.onError;
13
13
  }
14
- layoutItems(_chart, items, chartLayoutRect, chartViewBox) {
14
+ _layoutInit(_chart, items, chartLayoutRect, chartViewBox) {
15
15
  this._chartLayoutRect = chartLayoutRect, this._chartViewBox = chartViewBox, this.leftCurrent = chartLayoutRect.x,
16
16
  this.topCurrent = chartLayoutRect.y, this.rightCurrent = chartLayoutRect.x + chartLayoutRect.width,
17
- this.bottomCurrent = chartLayoutRect.height + chartLayoutRect.y, items.sort(((a, b) => b.layoutLevel - a.layoutLevel)),
17
+ this.bottomCurrent = chartLayoutRect.height + chartLayoutRect.y, items.sort(((a, b) => b.layoutLevel - a.layoutLevel));
18
+ }
19
+ _layoutNormalItems(items) {
18
20
  this.layoutNormalInlineItems(items.filter((x => "normal-inline" === x.layoutType))),
19
21
  this.layoutNormalItems(items.filter((x => "normal" === x.layoutType)));
22
+ }
23
+ _groupItems(items) {
24
+ const regionItems = items.filter((x => "region" === x.layoutType)), relativeItems = items.filter((x => "region-relative" === x.layoutType)), relativeOverlapItems = items.filter((x => "region-relative-overlap" === x.layoutType)), allRelatives = relativeItems.concat(relativeOverlapItems), overlapItems = {
25
+ left: {
26
+ items: [],
27
+ rect: {
28
+ width: 0,
29
+ height: 0
30
+ }
31
+ },
32
+ right: {
33
+ items: [],
34
+ rect: {
35
+ width: 0,
36
+ height: 0
37
+ }
38
+ },
39
+ top: {
40
+ items: [],
41
+ rect: {
42
+ width: 0,
43
+ height: 0
44
+ }
45
+ },
46
+ bottom: {
47
+ items: [],
48
+ rect: {
49
+ width: 0,
50
+ height: 0
51
+ }
52
+ },
53
+ z: {
54
+ items: [],
55
+ rect: {
56
+ width: 0,
57
+ height: 0
58
+ }
59
+ }
60
+ };
61
+ return relativeOverlapItems.forEach((i => {
62
+ overlapItems[i.layoutOrient].items.push(i);
63
+ })), {
64
+ regionItems: regionItems,
65
+ relativeItems: relativeItems,
66
+ relativeOverlapItems: relativeOverlapItems,
67
+ allRelatives: allRelatives,
68
+ overlapItems: overlapItems
69
+ };
70
+ }
71
+ layoutItems(_chart, items, chartLayoutRect, chartViewBox) {
72
+ this._layoutInit(_chart, items, chartLayoutRect, chartViewBox), this._layoutNormalItems(items);
20
73
  const layoutTemp = {
21
74
  left: this.leftCurrent,
22
75
  top: this.topCurrent,
23
76
  right: this.rightCurrent,
24
77
  bottom: this.bottomCurrent
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.autoIndent))) {
27
- const {top: top, bottom: bottom, left: left, right: right} = this._checkAutoIndent(relativeItems, layoutTemp);
78
+ }, {regionItems: regionItems, relativeItems: relativeItems, relativeOverlapItems: relativeOverlapItems, allRelatives: allRelatives, overlapItems: overlapItems} = this._groupItems(items);
79
+ this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems),
80
+ this._processAutoIndent(regionItems, relativeItems, relativeOverlapItems, overlapItems, allRelatives, layoutTemp),
81
+ this.layoutAbsoluteItems(items.filter((x => "absolute" === x.layoutType)));
82
+ }
83
+ _processAutoIndent(regionItems, relativeItems, relativeOverlapItems, overlapItems = {
84
+ left: {
85
+ items: [],
86
+ rect: {
87
+ width: 0,
88
+ height: 0
89
+ }
90
+ },
91
+ right: {
92
+ items: [],
93
+ rect: {
94
+ width: 0,
95
+ height: 0
96
+ }
97
+ },
98
+ top: {
99
+ items: [],
100
+ rect: {
101
+ width: 0,
102
+ height: 0
103
+ }
104
+ },
105
+ bottom: {
106
+ items: [],
107
+ rect: {
108
+ width: 0,
109
+ height: 0
110
+ }
111
+ },
112
+ z: {
113
+ items: [],
114
+ rect: {
115
+ width: 0,
116
+ height: 0
117
+ }
118
+ }
119
+ }, allRelatives, layoutTemp) {
120
+ if (allRelatives.some((i => i.autoIndent))) {
121
+ const {top: top, bottom: bottom, left: left, right: right} = this._checkAutoIndent(allRelatives, layoutTemp);
28
122
  (top || bottom || left || right) && (this.topCurrent = layoutTemp.top + top, this.bottomCurrent = layoutTemp.bottom - bottom,
29
123
  this.leftCurrent = layoutTemp.left + left, this.rightCurrent = layoutTemp.right - right,
30
- this.layoutRegionItems(regionItems, relativeItems));
124
+ this.layoutRegionItems(regionItems, relativeItems, relativeOverlapItems, overlapItems));
31
125
  }
32
- this.layoutAbsoluteItems(items.filter((x => "absolute" === x.layoutType)));
33
126
  }
34
127
  layoutNormalItems(normalItems) {
35
128
  normalItems.forEach((item => {
@@ -54,29 +147,41 @@ class Layout {
54
147
  (0, util_1.layoutLeftInlineItems)(leftItems, this, limitHeight), (0, util_1.layoutTopInlineItems)(topItems, this, limitWidth),
55
148
  (0, util_1.layoutRightInlineItems)(rightItems, this, limitHeight), (0, util_1.layoutBottomInlineItems)(bottomItems, this, limitWidth);
56
149
  }
57
- layoutRegionItems(regionItems, regionRelativeItems) {
58
- let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent, regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
59
- regionRelativeItems.filter((x => "left" === x.layoutOrient || "right" === x.layoutOrient)).forEach((item => {
150
+ _layoutRelativeOverlap(orient, info) {
151
+ info.items.forEach((item => {
60
152
  const layoutRect = this.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
61
- item.setLayoutRect({
62
- width: rect.width
63
- }), "left" === item.layoutOrient ? (item.setLayoutStartPosition({
153
+ info.rect.width = Math.max(rect.width, info.rect.width), info.rect.height = Math.max(rect.height, info.rect.height);
154
+ })), info.items.forEach((item => {
155
+ item.setLayoutRect(info.rect), "left" === orient ? item.setLayoutStartPosition({
64
156
  x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft
65
- }), this.leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight) : "right" === item.layoutOrient && (this.rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight,
66
- item.setLayoutStartPosition({
157
+ }) : "right" === orient ? item.setLayoutStartPosition({
67
158
  x: this.rightCurrent + item.layoutOffsetX + item.layoutPaddingLeft
68
- }));
69
- })), regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent, regionRelativeItems.filter((x => "top" === x.layoutOrient || "bottom" === x.layoutOrient)).forEach((item => {
70
- const layoutRect = this.getItemComputeLayoutRect(item), rect = item.computeBoundsInRect(layoutRect);
71
- item.setLayoutRect({
72
- height: rect.height
73
- }), "top" === item.layoutOrient ? (item.setLayoutStartPosition({
74
- y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop
75
- }), this.topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom) : "bottom" === item.layoutOrient && (this.bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom,
76
- item.setLayoutStartPosition({
77
- y: this.bottomCurrent + item.layoutOffsetY + item.layoutPaddingTop
78
- }));
79
- })), regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
159
+ }) : "top" === orient ? item.setLayoutStartPosition({
160
+ x: this.topCurrent + item.layoutOffsetX + item.layoutPaddingLeft
161
+ }) : item.setLayoutStartPosition({
162
+ x: this.bottomCurrent + item.layoutOffsetX + item.layoutPaddingLeft
163
+ });
164
+ })), "left" === orient ? this.leftCurrent += info.rect.width : "right" === orient ? this.rightCurrent -= info.rect.width : "top" === orient ? this.topCurrent += info.rect.height : this.bottomCurrent -= info.rect.height;
165
+ }
166
+ _layoutRelativeItem(item, layoutRect) {
167
+ const rect = item.computeBoundsInRect(layoutRect);
168
+ "left" === item.layoutOrient || "right" === item.layoutOrient ? item.setLayoutRect({
169
+ width: rect.width
170
+ }) : item.setLayoutRect({
171
+ height: rect.height
172
+ }), "left" === item.layoutOrient ? (item.setLayoutStartPosition({
173
+ x: this.leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft
174
+ }), this.leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight) : "right" === item.layoutOrient ? (this.rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight,
175
+ item.setLayoutStartPosition({
176
+ x: this.rightCurrent + item.layoutOffsetX + item.layoutPaddingLeft
177
+ })) : "top" === item.layoutOrient ? (item.setLayoutStartPosition({
178
+ y: this.topCurrent + item.layoutOffsetY + item.layoutPaddingTop
179
+ }), this.topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom) : "bottom" === item.layoutOrient && (this.bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom,
180
+ item.setLayoutStartPosition({
181
+ y: this.bottomCurrent + item.layoutOffsetY + item.layoutPaddingTop
182
+ }));
183
+ }
184
+ _layoutRegionItem(regionItems, regionRelativeTotalWidth, regionRelativeTotalHeight) {
80
185
  const regionWidth = Math.max(Math.min(regionRelativeTotalWidth, ...regionItems.map((region => {
81
186
  var _a;
82
187
  return null !== (_a = region.maxWidth) && void 0 !== _a ? _a : Number.MAX_VALUE;
@@ -84,7 +189,7 @@ class Layout {
84
189
  var _a;
85
190
  return null !== (_a = region.maxHeight) && void 0 !== _a ? _a : Number.MAX_VALUE;
86
191
  }))), 0);
87
- regionItems.forEach((region => {
192
+ return regionItems.forEach((region => {
88
193
  region.setLayoutRect({
89
194
  width: regionWidth,
90
195
  height: regionHeight
@@ -92,7 +197,58 @@ class Layout {
92
197
  x: this.leftCurrent + region.layoutOffsetX + region.layoutPaddingLeft,
93
198
  y: this.topCurrent + region.layoutOffsetY + region.layoutPaddingTop
94
199
  });
95
- })), regionRelativeItems.forEach((item => {
200
+ })), {
201
+ regionHeight: regionHeight,
202
+ regionWidth: regionWidth
203
+ };
204
+ }
205
+ layoutRegionItems(regionItems, regionRelativeItems, regionRelativeOverlapItems, overlapItems = {
206
+ left: {
207
+ items: [],
208
+ rect: {
209
+ width: 0,
210
+ height: 0
211
+ }
212
+ },
213
+ right: {
214
+ items: [],
215
+ rect: {
216
+ width: 0,
217
+ height: 0
218
+ }
219
+ },
220
+ top: {
221
+ items: [],
222
+ rect: {
223
+ width: 0,
224
+ height: 0
225
+ }
226
+ },
227
+ bottom: {
228
+ items: [],
229
+ rect: {
230
+ width: 0,
231
+ height: 0
232
+ }
233
+ },
234
+ z: {
235
+ items: [],
236
+ rect: {
237
+ width: 0,
238
+ height: 0
239
+ }
240
+ }
241
+ }) {
242
+ let regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent, regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
243
+ regionRelativeItems.filter((x => "left" === x.layoutOrient || "right" === x.layoutOrient)).forEach((item => {
244
+ this._layoutRelativeItem(item, this.getItemComputeLayoutRect(item));
245
+ })), this._layoutRelativeOverlap("left", overlapItems.left), this._layoutRelativeOverlap("right", overlapItems.right),
246
+ regionRelativeTotalWidth = this.rightCurrent - this.leftCurrent, regionRelativeItems.filter((x => "top" === x.layoutOrient || "bottom" === x.layoutOrient)).forEach((item => {
247
+ this._layoutRelativeItem(item, this.getItemComputeLayoutRect(item));
248
+ })), this._layoutRelativeOverlap("top", overlapItems.top), this._layoutRelativeOverlap("bottom", overlapItems.bottom),
249
+ regionRelativeTotalHeight = this.bottomCurrent - this.topCurrent;
250
+ const {regionWidth: regionWidth, regionHeight: regionHeight} = this._layoutRegionItem(regionItems, regionRelativeTotalWidth, regionRelativeTotalHeight);
251
+ regionRelativeItems.concat(regionRelativeOverlapItems).forEach((item => {
96
252
  if ([ "left", "right" ].includes(item.layoutOrient)) {
97
253
  const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);
98
254
  item.setLayoutRect({
@@ -157,4 +313,4 @@ class Layout {
157
313
  }
158
314
 
159
315
  exports.Layout = Layout, Layout.type = "base";
160
- //# sourceMappingURL=base-layout.js.map
316
+ //# sourceMappingURL=base-layout.js.map