@visactor/vrender 0.15.0-alpha.2 → 0.15.0-alpha.21

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 (966) hide show
  1. package/cjs/allocator/allocator-modules.js.map +1 -1
  2. package/cjs/allocator/canvas-allocate.js.map +1 -1
  3. package/cjs/allocator/constants.js.map +1 -1
  4. package/cjs/allocator/graphic-allocate.js.map +1 -1
  5. package/cjs/allocator/matrix-allocate.js.map +1 -1
  6. package/cjs/allocator/point-allocate.js.map +1 -1
  7. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  8. package/cjs/animate/Ticker/index.js.map +1 -1
  9. package/cjs/animate/animate.d.ts +1 -0
  10. package/cjs/animate/animate.js +3 -0
  11. package/cjs/animate/animate.js.map +1 -1
  12. package/cjs/animate/config.js.map +1 -1
  13. package/cjs/animate/custom-animate.js.map +1 -1
  14. package/cjs/animate/default-ticker.js +1 -1
  15. package/cjs/animate/default-ticker.js.map +1 -1
  16. package/cjs/animate/easing.js.map +1 -1
  17. package/cjs/animate/index.js.map +1 -1
  18. package/cjs/animate/morphing.js.map +1 -1
  19. package/cjs/animate/timeline.d.ts +1 -1
  20. package/cjs/animate/timeline.js +2 -2
  21. package/cjs/animate/timeline.js.map +1 -1
  22. package/cjs/application.js.map +1 -1
  23. package/cjs/canvas/constants.js.map +1 -1
  24. package/cjs/canvas/contributions/browser/canvas.js +1 -1
  25. package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
  26. package/cjs/canvas/contributions/browser/conical-gradient.js.map +1 -1
  27. package/cjs/canvas/contributions/browser/context.d.ts +1 -0
  28. package/cjs/canvas/contributions/browser/context.js.map +1 -1
  29. package/cjs/canvas/contributions/browser/index.js.map +1 -1
  30. package/cjs/canvas/contributions/browser/modules.js.map +1 -1
  31. package/cjs/canvas/contributions/feishu/canvas.js.map +1 -1
  32. package/cjs/canvas/contributions/feishu/context.js.map +1 -1
  33. package/cjs/canvas/contributions/feishu/index.js.map +1 -1
  34. package/cjs/canvas/contributions/feishu/modules.js.map +1 -1
  35. package/cjs/canvas/contributions/lynx/canvas.js.map +1 -1
  36. package/cjs/canvas/contributions/lynx/context.js.map +1 -1
  37. package/cjs/canvas/contributions/lynx/index.js.map +1 -1
  38. package/cjs/canvas/contributions/lynx/modules.js.map +1 -1
  39. package/cjs/canvas/contributions/modules.js.map +1 -1
  40. package/cjs/canvas/contributions/node/canvas.js.map +1 -1
  41. package/cjs/canvas/contributions/node/context.js.map +1 -1
  42. package/cjs/canvas/contributions/node/index.js.map +1 -1
  43. package/cjs/canvas/contributions/node/modules.js.map +1 -1
  44. package/cjs/canvas/contributions/taro/canvas.js.map +1 -1
  45. package/cjs/canvas/contributions/taro/context.js.map +1 -1
  46. package/cjs/canvas/contributions/taro/index.js.map +1 -1
  47. package/cjs/canvas/contributions/taro/modules.js.map +1 -1
  48. package/cjs/canvas/contributions/tt/canvas.js.map +1 -1
  49. package/cjs/canvas/contributions/tt/context.js.map +1 -1
  50. package/cjs/canvas/contributions/tt/index.js.map +1 -1
  51. package/cjs/canvas/contributions/tt/modules.js.map +1 -1
  52. package/cjs/canvas/contributions/wx/canvas.js.map +1 -1
  53. package/cjs/canvas/contributions/wx/context.js.map +1 -1
  54. package/cjs/canvas/contributions/wx/index.js.map +1 -1
  55. package/cjs/canvas/contributions/wx/modules.js.map +1 -1
  56. package/cjs/canvas/empty-context.js.map +1 -1
  57. package/cjs/canvas/index.js.map +1 -1
  58. package/cjs/canvas/util.js.map +1 -1
  59. package/cjs/color-string/colorName.js.map +1 -1
  60. package/cjs/color-string/index.js.map +1 -1
  61. package/cjs/color-string/interpolate.js.map +1 -1
  62. package/cjs/common/bezier-utils.js.map +1 -1
  63. package/cjs/common/bounds-context.js.map +1 -1
  64. package/cjs/common/canvas-utils.js.map +1 -1
  65. package/cjs/common/contribution-provider.d.ts +1 -0
  66. package/cjs/common/contribution-provider.js +7 -2
  67. package/cjs/common/contribution-provider.js.map +1 -1
  68. package/cjs/common/custom-path2d.js.map +1 -1
  69. package/cjs/common/enums.d.ts +4 -2
  70. package/cjs/common/enums.js +3 -2
  71. package/cjs/common/enums.js.map +1 -1
  72. package/cjs/common/generator.js.map +1 -1
  73. package/cjs/common/matrix.js.map +1 -1
  74. package/cjs/common/morphing-utils.js.map +1 -1
  75. package/cjs/common/path-svg.js.map +1 -1
  76. package/cjs/common/polygon.js.map +1 -1
  77. package/cjs/common/render-area.js.map +1 -1
  78. package/cjs/common/render-command-list.js.map +1 -1
  79. package/cjs/common/render-curve.js.map +1 -1
  80. package/cjs/common/seg-context.js.map +1 -1
  81. package/cjs/common/segment/basis.js.map +1 -1
  82. package/cjs/common/segment/common.js.map +1 -1
  83. package/cjs/common/segment/curve/arc.js.map +1 -1
  84. package/cjs/common/segment/curve/base.js.map +1 -1
  85. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  86. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  87. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  88. package/cjs/common/segment/curve/line.js.map +1 -1
  89. package/cjs/common/segment/curve/move.js.map +1 -1
  90. package/cjs/common/segment/curve/path.js.map +1 -1
  91. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  92. package/cjs/common/segment/index.js.map +1 -1
  93. package/cjs/common/segment/linear-closed.js.map +1 -1
  94. package/cjs/common/segment/linear.js.map +1 -1
  95. package/cjs/common/segment/monotone.js.map +1 -1
  96. package/cjs/common/segment/step.js.map +1 -1
  97. package/cjs/common/shape/arc.js.map +1 -1
  98. package/cjs/common/shape/rect.js.map +1 -1
  99. package/cjs/common/sort.js.map +1 -1
  100. package/cjs/common/split-path.js.map +1 -1
  101. package/cjs/common/store.js.map +1 -1
  102. package/cjs/common/text.js.map +1 -1
  103. package/cjs/common/utils.js.map +1 -1
  104. package/cjs/constants.js.map +1 -1
  105. package/cjs/container.js.map +1 -1
  106. package/cjs/core/application.js.map +1 -1
  107. package/cjs/core/camera.js.map +1 -1
  108. package/cjs/core/constants.js.map +1 -1
  109. package/cjs/core/contributions/env/base-contribution.d.ts +6 -0
  110. package/cjs/core/contributions/env/base-contribution.js +12 -0
  111. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  112. package/cjs/core/contributions/env/browser-contribution.d.ts +6 -0
  113. package/cjs/core/contributions/env/browser-contribution.js +19 -0
  114. package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
  115. package/cjs/core/contributions/env/feishu-contribution.js.map +1 -1
  116. package/cjs/core/contributions/env/lynx-contribution.js.map +1 -1
  117. package/cjs/core/contributions/env/modules.js.map +1 -1
  118. package/cjs/core/contributions/env/node-contribution.js.map +1 -1
  119. package/cjs/core/contributions/env/taro-contribution.js.map +1 -1
  120. package/cjs/core/contributions/env/wx-contribution.d.ts +1 -0
  121. package/cjs/core/contributions/env/wx-contribution.js +5 -3
  122. package/cjs/core/contributions/env/wx-contribution.js.map +1 -1
  123. package/cjs/core/contributions/index.js.map +1 -1
  124. package/cjs/core/contributions/layerHandler/canvas2d-contribution.d.ts +1 -0
  125. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +3 -0
  126. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  127. package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
  128. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.d.ts +1 -0
  129. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +3 -0
  130. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  131. package/cjs/core/contributions/modules.js.map +1 -1
  132. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  133. package/cjs/core/contributions/textMeasure/layout.js +1 -1
  134. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  135. package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
  136. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  137. package/cjs/core/contributions/window/base-contribution.d.ts +11 -5
  138. package/cjs/core/contributions/window/base-contribution.js +10 -0
  139. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  140. package/cjs/core/contributions/window/browser-contribution.d.ts +11 -0
  141. package/cjs/core/contributions/window/browser-contribution.js +33 -2
  142. package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
  143. package/cjs/core/contributions/window/feishu-contribution.js.map +1 -1
  144. package/cjs/core/contributions/window/lynx-contribution.js.map +1 -1
  145. package/cjs/core/contributions/window/modules.js.map +1 -1
  146. package/cjs/core/contributions/window/native-contribution.js.map +1 -1
  147. package/cjs/core/contributions/window/node-contribution.js.map +1 -1
  148. package/cjs/core/contributions/window/taro-contribution.js.map +1 -1
  149. package/cjs/core/contributions/window/wx-contribution.js.map +1 -1
  150. package/cjs/core/core-modules.js.map +1 -1
  151. package/cjs/core/global-module.js.map +1 -1
  152. package/cjs/core/global.d.ts +6 -0
  153. package/cjs/core/global.js +9 -0
  154. package/cjs/core/global.js.map +1 -1
  155. package/cjs/core/graphic-utils.d.ts +2 -0
  156. package/cjs/core/graphic-utils.js +13 -0
  157. package/cjs/core/graphic-utils.js.map +1 -1
  158. package/cjs/core/index.js.map +1 -1
  159. package/cjs/core/layer-service.js.map +1 -1
  160. package/cjs/core/layer.js +1 -1
  161. package/cjs/core/layer.js.map +1 -1
  162. package/cjs/core/light.js.map +1 -1
  163. package/cjs/core/stage.d.ts +7 -2
  164. package/cjs/core/stage.js +27 -12
  165. package/cjs/core/stage.js.map +1 -1
  166. package/cjs/core/window.d.ts +6 -0
  167. package/cjs/core/window.js +10 -1
  168. package/cjs/core/window.js.map +1 -1
  169. package/cjs/create.js.map +1 -1
  170. package/cjs/event/constant.js.map +1 -1
  171. package/cjs/event/event-manager.js +13 -11
  172. package/cjs/event/event-manager.js.map +1 -1
  173. package/cjs/event/event-system.js.map +1 -1
  174. package/cjs/event/event-target.js.map +1 -1
  175. package/cjs/event/extension/drag.js.map +1 -1
  176. package/cjs/event/extension/gesture.js.map +1 -1
  177. package/cjs/event/extension/index.js.map +1 -1
  178. package/cjs/event/federated-event/base-event.js.map +1 -1
  179. package/cjs/event/federated-event/custom-event.js.map +1 -1
  180. package/cjs/event/federated-event/index.js.map +1 -1
  181. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  182. package/cjs/event/federated-event/pointer-event.d.ts +1 -0
  183. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  184. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  185. package/cjs/event/index.js.map +1 -1
  186. package/cjs/event/util.js.map +1 -1
  187. package/cjs/export.js.map +1 -1
  188. package/cjs/graphic/arc.d.ts +7 -0
  189. package/cjs/graphic/arc.js +3 -1
  190. package/cjs/graphic/arc.js.map +1 -1
  191. package/cjs/graphic/arc3d.js.map +1 -1
  192. package/cjs/graphic/area.js.map +1 -1
  193. package/cjs/graphic/bounds.js.map +1 -1
  194. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  195. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  196. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  197. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  198. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  199. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  200. package/cjs/graphic/builtin-symbol/close.js.map +1 -1
  201. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  202. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  203. package/cjs/graphic/builtin-symbol/index.js.map +1 -1
  204. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
  205. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
  206. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  207. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  208. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  209. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  210. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  211. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  212. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  213. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  214. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  215. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  216. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  217. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  218. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  219. package/cjs/graphic/circle.js.map +1 -1
  220. package/cjs/graphic/config.js +9 -4
  221. package/cjs/graphic/config.js.map +1 -1
  222. package/cjs/graphic/constants.js.map +1 -1
  223. package/cjs/graphic/glyph.js.map +1 -1
  224. package/cjs/graphic/graphic-creator.js.map +1 -1
  225. package/cjs/graphic/graphic-service/arc-contribution.js.map +1 -1
  226. package/cjs/graphic/graphic-service/area-contribution.js.map +1 -1
  227. package/cjs/graphic/graphic-service/circle-contribution.js.map +1 -1
  228. package/cjs/graphic/graphic-service/common-contribution.js.map +1 -1
  229. package/cjs/graphic/graphic-service/default-theme.js.map +1 -1
  230. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
  231. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  232. package/cjs/graphic/graphic-service/path-contribution.js.map +1 -1
  233. package/cjs/graphic/graphic-service/rect-contribution.js.map +1 -1
  234. package/cjs/graphic/graphic-service/symbol-contribution.js.map +1 -1
  235. package/cjs/graphic/graphic.d.ts +4 -1
  236. package/cjs/graphic/graphic.js +58 -23
  237. package/cjs/graphic/graphic.js.map +1 -1
  238. package/cjs/graphic/group.js +1 -1
  239. package/cjs/graphic/group.js.map +1 -1
  240. package/cjs/graphic/image.js.map +1 -1
  241. package/cjs/graphic/index.js.map +1 -1
  242. package/cjs/graphic/line.js.map +1 -1
  243. package/cjs/graphic/node-tree.js.map +1 -1
  244. package/cjs/graphic/path.js.map +1 -1
  245. package/cjs/graphic/polygon.js.map +1 -1
  246. package/cjs/graphic/pyramid3d.js.map +1 -1
  247. package/cjs/graphic/rect.js.map +1 -1
  248. package/cjs/graphic/rect3d.js.map +1 -1
  249. package/cjs/graphic/richtext/frame.js.map +1 -1
  250. package/cjs/graphic/richtext/icon.js.map +1 -1
  251. package/cjs/graphic/richtext/line.js.map +1 -1
  252. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  253. package/cjs/graphic/richtext/utils.js.map +1 -1
  254. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  255. package/cjs/graphic/richtext.js.map +1 -1
  256. package/cjs/graphic/shadow-root.js.map +1 -1
  257. package/cjs/graphic/symbol.js.map +1 -1
  258. package/cjs/graphic/text.js +35 -25
  259. package/cjs/graphic/text.js.map +1 -1
  260. package/cjs/graphic/theme.js.map +1 -1
  261. package/cjs/graphic/tools.js.map +1 -1
  262. package/cjs/graphic/wrap-text.js +16 -10
  263. package/cjs/graphic/wrap-text.js.map +1 -1
  264. package/cjs/index.d.ts +2 -1
  265. package/cjs/index.js +2 -2
  266. package/cjs/index.js.map +1 -1
  267. package/cjs/interface/allocator.js.map +1 -1
  268. package/cjs/interface/animate.d.ts +3 -1
  269. package/cjs/interface/animate.js.map +1 -1
  270. package/cjs/interface/camera.js.map +1 -1
  271. package/cjs/interface/canvas.js.map +1 -1
  272. package/cjs/interface/color.js.map +1 -1
  273. package/cjs/interface/common.js.map +1 -1
  274. package/cjs/interface/context.js.map +1 -1
  275. package/cjs/interface/contribution.js.map +1 -1
  276. package/cjs/interface/core.d.ts +1 -0
  277. package/cjs/interface/core.js.map +1 -1
  278. package/cjs/interface/creator.js.map +1 -1
  279. package/cjs/interface/curve.js.map +1 -1
  280. package/cjs/interface/event.js.map +1 -1
  281. package/cjs/interface/global.d.ts +12 -0
  282. package/cjs/interface/global.js.map +1 -1
  283. package/cjs/interface/graphic/arc.d.ts +2 -0
  284. package/cjs/interface/graphic/arc.js.map +1 -1
  285. package/cjs/interface/graphic/arc3d.js.map +1 -1
  286. package/cjs/interface/graphic/area.js.map +1 -1
  287. package/cjs/interface/graphic/bounds.js.map +1 -1
  288. package/cjs/interface/graphic/circle.js.map +1 -1
  289. package/cjs/interface/graphic/creator.js.map +1 -1
  290. package/cjs/interface/graphic/dynamic-path.js.map +1 -1
  291. package/cjs/interface/graphic/ellipse.js.map +1 -1
  292. package/cjs/interface/graphic/face3d.js.map +1 -1
  293. package/cjs/interface/graphic/glyph.js.map +1 -1
  294. package/cjs/interface/graphic/group.js.map +1 -1
  295. package/cjs/interface/graphic/image.d.ts +1 -0
  296. package/cjs/interface/graphic/image.js.map +1 -1
  297. package/cjs/interface/graphic/index.js.map +1 -1
  298. package/cjs/interface/graphic/isogon.js.map +1 -1
  299. package/cjs/interface/graphic/line.d.ts +1 -0
  300. package/cjs/interface/graphic/line.js.map +1 -1
  301. package/cjs/interface/graphic/path.js.map +1 -1
  302. package/cjs/interface/graphic/polygon.js.map +1 -1
  303. package/cjs/interface/graphic/polyline.js.map +1 -1
  304. package/cjs/interface/graphic/pyramid3d.js.map +1 -1
  305. package/cjs/interface/graphic/rect.js.map +1 -1
  306. package/cjs/interface/graphic/rect3d.js.map +1 -1
  307. package/cjs/interface/graphic/richText.js.map +1 -1
  308. package/cjs/interface/graphic/shadow-root.js.map +1 -1
  309. package/cjs/interface/graphic/svg.js.map +1 -1
  310. package/cjs/interface/graphic/symbol.js.map +1 -1
  311. package/cjs/interface/graphic/text.d.ts +1 -0
  312. package/cjs/interface/graphic/text.js.map +1 -1
  313. package/cjs/interface/graphic/theme.js.map +1 -1
  314. package/cjs/interface/graphic/util.js.map +1 -1
  315. package/cjs/interface/graphic-service.js.map +1 -1
  316. package/cjs/interface/graphic-utils.js.map +1 -1
  317. package/cjs/interface/graphic.d.ts +15 -3
  318. package/cjs/interface/graphic.js.map +1 -1
  319. package/cjs/interface/index.js.map +1 -1
  320. package/cjs/interface/layer.d.ts +1 -0
  321. package/cjs/interface/layer.js.map +1 -1
  322. package/cjs/interface/light.js.map +1 -1
  323. package/cjs/interface/loader.js.map +1 -1
  324. package/cjs/interface/matrix.js.map +1 -1
  325. package/cjs/interface/node-tree.js.map +1 -1
  326. package/cjs/interface/path.js.map +1 -1
  327. package/cjs/interface/picker.d.ts +9 -1
  328. package/cjs/interface/picker.js.map +1 -1
  329. package/cjs/interface/plugin.js.map +1 -1
  330. package/cjs/interface/render.js.map +1 -1
  331. package/cjs/interface/stage.d.ts +7 -2
  332. package/cjs/interface/stage.js.map +1 -1
  333. package/cjs/interface/sync-hook.js.map +1 -1
  334. package/cjs/interface/text.js.map +1 -1
  335. package/cjs/interface/theme-service.js.map +1 -1
  336. package/cjs/interface/util.js.map +1 -1
  337. package/cjs/interface/window.d.ts +12 -0
  338. package/cjs/interface/window.js.map +1 -1
  339. package/cjs/jsx/graphicType.d.ts +96 -60
  340. package/cjs/jsx/graphicType.js.map +1 -1
  341. package/cjs/jsx/index.js.map +1 -1
  342. package/cjs/jsx/jsx-classic.d.ts +2 -4
  343. package/cjs/jsx/jsx-classic.js +7 -18
  344. package/cjs/jsx/jsx-classic.js.map +1 -1
  345. package/cjs/kits/env.js.map +1 -1
  346. package/cjs/kits/index.js.map +1 -1
  347. package/cjs/modules.js.map +1 -1
  348. package/cjs/picker/canvas-picker-service.d.ts +2 -2
  349. package/cjs/picker/canvas-picker-service.js +20 -3
  350. package/cjs/picker/canvas-picker-service.js.map +1 -1
  351. package/cjs/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
  352. package/cjs/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
  353. package/cjs/picker/contributions/canvas-picker/area-picker.js.map +1 -1
  354. package/cjs/picker/contributions/canvas-picker/base-picker.js.map +1 -1
  355. package/cjs/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
  356. package/cjs/picker/contributions/canvas-picker/glyph-picker.js +1 -1
  357. package/cjs/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  358. package/cjs/picker/contributions/canvas-picker/group-picker.d.ts +7 -0
  359. package/cjs/picker/contributions/canvas-picker/group-picker.js +26 -0
  360. package/cjs/picker/contributions/canvas-picker/group-picker.js.map +1 -0
  361. package/cjs/picker/contributions/canvas-picker/image-picker.js.map +1 -1
  362. package/cjs/picker/contributions/canvas-picker/line-picker.js.map +1 -1
  363. package/cjs/picker/contributions/canvas-picker/module.js +3 -1
  364. package/cjs/picker/contributions/canvas-picker/module.js.map +1 -1
  365. package/cjs/picker/contributions/canvas-picker/path-picker.js.map +1 -1
  366. package/cjs/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
  367. package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
  368. package/cjs/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  369. package/cjs/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
  370. package/cjs/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
  371. package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  372. package/cjs/picker/contributions/canvas-picker/text-picker.js.map +1 -1
  373. package/cjs/picker/contributions/constants.d.ts +1 -0
  374. package/cjs/picker/contributions/constants.js +9 -8
  375. package/cjs/picker/contributions/constants.js.map +1 -1
  376. package/cjs/picker/contributions/math-picker/arc-picker.js.map +1 -1
  377. package/cjs/picker/contributions/math-picker/area-picker.js.map +1 -1
  378. package/cjs/picker/contributions/math-picker/circle-picker.js.map +1 -1
  379. package/cjs/picker/contributions/math-picker/glyph-picker.js +1 -1
  380. package/cjs/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  381. package/cjs/picker/contributions/math-picker/line-picker.js.map +1 -1
  382. package/cjs/picker/contributions/math-picker/module.js.map +1 -1
  383. package/cjs/picker/contributions/math-picker/path-picker.js.map +1 -1
  384. package/cjs/picker/contributions/math-picker/polygon-picker.js.map +1 -1
  385. package/cjs/picker/contributions/math-picker/rect-picker.js.map +1 -1
  386. package/cjs/picker/contributions/math-picker/symbol-picker.js.map +1 -1
  387. package/cjs/picker/contributions/math-picker/text-picker.js.map +1 -1
  388. package/cjs/picker/contributions/modules.js.map +1 -1
  389. package/cjs/picker/contributions/old/circle-picker.js.map +1 -1
  390. package/cjs/picker/contributions/old/rect-picker.js.map +1 -1
  391. package/cjs/picker/global-picker-service.d.ts +1 -1
  392. package/cjs/picker/global-picker-service.js +12 -5
  393. package/cjs/picker/global-picker-service.js.map +1 -1
  394. package/cjs/picker/index.js.map +1 -1
  395. package/cjs/picker/math-picker-service.d.ts +2 -2
  396. package/cjs/picker/math-picker-service.js +1 -1
  397. package/cjs/picker/math-picker-service.js.map +1 -1
  398. package/cjs/picker/pick-interceptor.d.ts +12 -0
  399. package/cjs/picker/pick-interceptor.js +30 -2
  400. package/cjs/picker/pick-interceptor.js.map +1 -1
  401. package/cjs/picker/pick-modules.js +2 -0
  402. package/cjs/picker/pick-modules.js.map +1 -1
  403. package/cjs/picker/picker-service.d.ts +1 -1
  404. package/cjs/picker/picker-service.js +15 -6
  405. package/cjs/picker/picker-service.js.map +1 -1
  406. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  407. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  408. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  409. package/cjs/plugins/builtin-plugin/flex-layout-plugin.d.ts +2 -0
  410. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +42 -21
  411. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  412. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +8 -4
  413. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  414. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  415. package/cjs/plugins/builtin-plugin/poptip-plugin.js.map +1 -1
  416. package/cjs/plugins/constants.js.map +1 -1
  417. package/cjs/plugins/plugin-modules.js +1 -1
  418. package/cjs/plugins/plugin-modules.js.map +1 -1
  419. package/cjs/plugins/plugin-service.js.map +1 -1
  420. package/cjs/render/contributions/modules.js.map +1 -1
  421. package/cjs/render/contributions/render/arc-render.js +9 -2
  422. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  423. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  424. package/cjs/render/contributions/render/area-render.js +32 -22
  425. package/cjs/render/contributions/render/area-render.js.map +1 -1
  426. package/cjs/render/contributions/render/base-render.js.map +1 -1
  427. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  428. package/cjs/render/contributions/render/clear-screen.js.map +1 -1
  429. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +9 -7
  430. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  431. package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  432. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  433. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +9 -7
  434. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  435. package/cjs/render/contributions/render/contributions/constants.js.map +1 -1
  436. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  437. package/cjs/render/contributions/render/contributions/image-contribution-render.js +23 -1
  438. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  439. package/cjs/render/contributions/render/contributions/index.js.map +1 -1
  440. package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  441. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  442. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +9 -7
  443. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  444. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +24 -22
  445. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  446. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  447. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  448. package/cjs/render/contributions/render/draw-interceptor.d.ts +2 -0
  449. package/cjs/render/contributions/render/draw-interceptor.js +8 -0
  450. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  451. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  452. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  453. package/cjs/render/contributions/render/group-render.js.map +1 -1
  454. package/cjs/render/contributions/render/image-render.js +7 -3
  455. package/cjs/render/contributions/render/image-render.js.map +1 -1
  456. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  457. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  458. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  459. package/cjs/render/contributions/render/index.js.map +1 -1
  460. package/cjs/render/contributions/render/line-render.js +50 -23
  461. package/cjs/render/contributions/render/line-render.js.map +1 -1
  462. package/cjs/render/contributions/render/module.js.map +1 -1
  463. package/cjs/render/contributions/render/path-render.js.map +1 -1
  464. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  465. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  466. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  467. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  468. package/cjs/render/contributions/render/render-slector.js.map +1 -1
  469. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  470. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  471. package/cjs/render/contributions/render/symbol.js.map +1 -1
  472. package/cjs/render/contributions/render/text-render.js.map +1 -1
  473. package/cjs/render/contributions/render/utils.d.ts +2 -2
  474. package/cjs/render/contributions/render/utils.js.map +1 -1
  475. package/cjs/render/index.js.map +1 -1
  476. package/cjs/render/render-modules.js.map +1 -1
  477. package/cjs/render/render-service.js.map +1 -1
  478. package/cjs/resource-loader/loader.js.map +1 -1
  479. package/cjs/tapable/Hook.js.map +1 -1
  480. package/cjs/tapable/SyncHook.js.map +1 -1
  481. package/cjs/tapable/index.js.map +1 -1
  482. package/dist/index.js +1373 -933
  483. package/dist/index.min.js +1 -1
  484. package/es/allocator/allocator-modules.js.map +1 -1
  485. package/es/allocator/canvas-allocate.js.map +1 -1
  486. package/es/allocator/constants.js.map +1 -1
  487. package/es/allocator/graphic-allocate.js.map +1 -1
  488. package/es/allocator/matrix-allocate.js.map +1 -1
  489. package/es/allocator/point-allocate.js.map +1 -1
  490. package/es/animate/Ticker/default-ticker.js.map +1 -1
  491. package/es/animate/Ticker/index.js.map +1 -1
  492. package/es/animate/animate.d.ts +1 -0
  493. package/es/animate/animate.js +3 -0
  494. package/es/animate/animate.js.map +1 -1
  495. package/es/animate/config.js.map +1 -1
  496. package/es/animate/custom-animate.js.map +1 -1
  497. package/es/animate/default-ticker.js +1 -1
  498. package/es/animate/default-ticker.js.map +1 -1
  499. package/es/animate/easing.js.map +1 -1
  500. package/es/animate/index.js.map +1 -1
  501. package/es/animate/morphing.js.map +1 -1
  502. package/es/animate/timeline.d.ts +1 -1
  503. package/es/animate/timeline.js +2 -2
  504. package/es/animate/timeline.js.map +1 -1
  505. package/es/application.js.map +1 -1
  506. package/es/canvas/constants.js.map +1 -1
  507. package/es/canvas/contributions/browser/canvas.js +1 -1
  508. package/es/canvas/contributions/browser/canvas.js.map +1 -1
  509. package/es/canvas/contributions/browser/conical-gradient.js.map +1 -1
  510. package/es/canvas/contributions/browser/context.d.ts +1 -0
  511. package/es/canvas/contributions/browser/context.js.map +1 -1
  512. package/es/canvas/contributions/browser/index.js.map +1 -1
  513. package/es/canvas/contributions/browser/modules.js.map +1 -1
  514. package/es/canvas/contributions/feishu/canvas.js.map +1 -1
  515. package/es/canvas/contributions/feishu/context.js.map +1 -1
  516. package/es/canvas/contributions/feishu/index.js.map +1 -1
  517. package/es/canvas/contributions/feishu/modules.js.map +1 -1
  518. package/es/canvas/contributions/lynx/canvas.js.map +1 -1
  519. package/es/canvas/contributions/lynx/context.js.map +1 -1
  520. package/es/canvas/contributions/lynx/index.js.map +1 -1
  521. package/es/canvas/contributions/lynx/modules.js.map +1 -1
  522. package/es/canvas/contributions/modules.js.map +1 -1
  523. package/es/canvas/contributions/node/canvas.js.map +1 -1
  524. package/es/canvas/contributions/node/context.js.map +1 -1
  525. package/es/canvas/contributions/node/index.js.map +1 -1
  526. package/es/canvas/contributions/node/modules.js.map +1 -1
  527. package/es/canvas/contributions/taro/canvas.js.map +1 -1
  528. package/es/canvas/contributions/taro/context.js.map +1 -1
  529. package/es/canvas/contributions/taro/index.js.map +1 -1
  530. package/es/canvas/contributions/taro/modules.js.map +1 -1
  531. package/es/canvas/contributions/tt/canvas.js.map +1 -1
  532. package/es/canvas/contributions/tt/context.js.map +1 -1
  533. package/es/canvas/contributions/tt/index.js.map +1 -1
  534. package/es/canvas/contributions/tt/modules.js.map +1 -1
  535. package/es/canvas/contributions/wx/canvas.js.map +1 -1
  536. package/es/canvas/contributions/wx/context.js.map +1 -1
  537. package/es/canvas/contributions/wx/index.js.map +1 -1
  538. package/es/canvas/contributions/wx/modules.js.map +1 -1
  539. package/es/canvas/empty-context.js.map +1 -1
  540. package/es/canvas/index.js.map +1 -1
  541. package/es/canvas/util.js.map +1 -1
  542. package/es/color-string/colorName.js.map +1 -1
  543. package/es/color-string/index.js.map +1 -1
  544. package/es/color-string/interpolate.js.map +1 -1
  545. package/es/common/bezier-utils.js.map +1 -1
  546. package/es/common/bounds-context.js.map +1 -1
  547. package/es/common/canvas-utils.js.map +1 -1
  548. package/es/common/contribution-provider.d.ts +1 -0
  549. package/es/common/contribution-provider.js +4 -0
  550. package/es/common/contribution-provider.js.map +1 -1
  551. package/es/common/custom-path2d.js.map +1 -1
  552. package/es/common/enums.d.ts +4 -2
  553. package/es/common/enums.js +3 -2
  554. package/es/common/enums.js.map +1 -1
  555. package/es/common/generator.js.map +1 -1
  556. package/es/common/matrix.js.map +1 -1
  557. package/es/common/morphing-utils.js.map +1 -1
  558. package/es/common/path-svg.js.map +1 -1
  559. package/es/common/polygon.js.map +1 -1
  560. package/es/common/render-area.js.map +1 -1
  561. package/es/common/render-command-list.js.map +1 -1
  562. package/es/common/render-curve.js.map +1 -1
  563. package/es/common/seg-context.js.map +1 -1
  564. package/es/common/segment/basis.js.map +1 -1
  565. package/es/common/segment/common.js.map +1 -1
  566. package/es/common/segment/curve/arc.js.map +1 -1
  567. package/es/common/segment/curve/base.js.map +1 -1
  568. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  569. package/es/common/segment/curve/curve-context.js.map +1 -1
  570. package/es/common/segment/curve/ellipse.js.map +1 -1
  571. package/es/common/segment/curve/line.js.map +1 -1
  572. package/es/common/segment/curve/move.js.map +1 -1
  573. package/es/common/segment/curve/path.js.map +1 -1
  574. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  575. package/es/common/segment/index.js.map +1 -1
  576. package/es/common/segment/linear-closed.js.map +1 -1
  577. package/es/common/segment/linear.js.map +1 -1
  578. package/es/common/segment/monotone.js.map +1 -1
  579. package/es/common/segment/step.js.map +1 -1
  580. package/es/common/shape/arc.js.map +1 -1
  581. package/es/common/shape/rect.js.map +1 -1
  582. package/es/common/sort.js.map +1 -1
  583. package/es/common/split-path.js.map +1 -1
  584. package/es/common/store.js.map +1 -1
  585. package/es/common/text.js.map +1 -1
  586. package/es/common/utils.js.map +1 -1
  587. package/es/constants.js.map +1 -1
  588. package/es/container.js.map +1 -1
  589. package/es/core/application.js.map +1 -1
  590. package/es/core/camera.js.map +1 -1
  591. package/es/core/constants.js.map +1 -1
  592. package/es/core/contributions/env/base-contribution.d.ts +6 -0
  593. package/es/core/contributions/env/base-contribution.js +12 -0
  594. package/es/core/contributions/env/base-contribution.js.map +1 -1
  595. package/es/core/contributions/env/browser-contribution.d.ts +6 -0
  596. package/es/core/contributions/env/browser-contribution.js +19 -0
  597. package/es/core/contributions/env/browser-contribution.js.map +1 -1
  598. package/es/core/contributions/env/feishu-contribution.js.map +1 -1
  599. package/es/core/contributions/env/lynx-contribution.js.map +1 -1
  600. package/es/core/contributions/env/modules.js.map +1 -1
  601. package/es/core/contributions/env/node-contribution.js.map +1 -1
  602. package/es/core/contributions/env/taro-contribution.js.map +1 -1
  603. package/es/core/contributions/env/wx-contribution.d.ts +1 -0
  604. package/es/core/contributions/env/wx-contribution.js +5 -3
  605. package/es/core/contributions/env/wx-contribution.js.map +1 -1
  606. package/es/core/contributions/index.js.map +1 -1
  607. package/es/core/contributions/layerHandler/canvas2d-contribution.d.ts +1 -0
  608. package/es/core/contributions/layerHandler/canvas2d-contribution.js +3 -0
  609. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  610. package/es/core/contributions/layerHandler/modules.js.map +1 -1
  611. package/es/core/contributions/layerHandler/offscreen2d-contribution.d.ts +1 -0
  612. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +3 -0
  613. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  614. package/es/core/contributions/modules.js.map +1 -1
  615. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  616. package/es/core/contributions/textMeasure/layout.js +1 -1
  617. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  618. package/es/core/contributions/textMeasure/modules.js.map +1 -1
  619. package/es/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  620. package/es/core/contributions/window/base-contribution.d.ts +11 -5
  621. package/es/core/contributions/window/base-contribution.js +10 -0
  622. package/es/core/contributions/window/base-contribution.js.map +1 -1
  623. package/es/core/contributions/window/browser-contribution.d.ts +11 -0
  624. package/es/core/contributions/window/browser-contribution.js +33 -2
  625. package/es/core/contributions/window/browser-contribution.js.map +1 -1
  626. package/es/core/contributions/window/feishu-contribution.js.map +1 -1
  627. package/es/core/contributions/window/lynx-contribution.js.map +1 -1
  628. package/es/core/contributions/window/modules.js.map +1 -1
  629. package/es/core/contributions/window/native-contribution.js.map +1 -1
  630. package/es/core/contributions/window/node-contribution.js.map +1 -1
  631. package/es/core/contributions/window/taro-contribution.js.map +1 -1
  632. package/es/core/contributions/window/wx-contribution.js.map +1 -1
  633. package/es/core/core-modules.js.map +1 -1
  634. package/es/core/global-module.js.map +1 -1
  635. package/es/core/global.d.ts +6 -0
  636. package/es/core/global.js +9 -0
  637. package/es/core/global.js.map +1 -1
  638. package/es/core/graphic-utils.d.ts +2 -0
  639. package/es/core/graphic-utils.js +13 -0
  640. package/es/core/graphic-utils.js.map +1 -1
  641. package/es/core/index.js.map +1 -1
  642. package/es/core/layer-service.js.map +1 -1
  643. package/es/core/layer.js +1 -1
  644. package/es/core/layer.js.map +1 -1
  645. package/es/core/light.js.map +1 -1
  646. package/es/core/stage.d.ts +7 -2
  647. package/es/core/stage.js +28 -11
  648. package/es/core/stage.js.map +1 -1
  649. package/es/core/window.d.ts +6 -0
  650. package/es/core/window.js +10 -1
  651. package/es/core/window.js.map +1 -1
  652. package/es/create.js.map +1 -1
  653. package/es/event/constant.js.map +1 -1
  654. package/es/event/event-manager.js +13 -11
  655. package/es/event/event-manager.js.map +1 -1
  656. package/es/event/event-system.js.map +1 -1
  657. package/es/event/event-target.js.map +1 -1
  658. package/es/event/extension/drag.js.map +1 -1
  659. package/es/event/extension/gesture.js.map +1 -1
  660. package/es/event/extension/index.js.map +1 -1
  661. package/es/event/federated-event/base-event.js.map +1 -1
  662. package/es/event/federated-event/custom-event.js.map +1 -1
  663. package/es/event/federated-event/index.js.map +1 -1
  664. package/es/event/federated-event/mouse-event.js.map +1 -1
  665. package/es/event/federated-event/pointer-event.d.ts +1 -0
  666. package/es/event/federated-event/pointer-event.js.map +1 -1
  667. package/es/event/federated-event/wheel-event.js.map +1 -1
  668. package/es/event/index.js.map +1 -1
  669. package/es/event/util.js.map +1 -1
  670. package/es/export.js.map +1 -1
  671. package/es/graphic/arc.d.ts +7 -0
  672. package/es/graphic/arc.js +3 -1
  673. package/es/graphic/arc.js.map +1 -1
  674. package/es/graphic/arc3d.js.map +1 -1
  675. package/es/graphic/area.js.map +1 -1
  676. package/es/graphic/bounds.js.map +1 -1
  677. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  678. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  679. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  680. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  681. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  682. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  683. package/es/graphic/builtin-symbol/close.js.map +1 -1
  684. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  685. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  686. package/es/graphic/builtin-symbol/index.js.map +1 -1
  687. package/es/graphic/builtin-symbol/line-h.js.map +1 -1
  688. package/es/graphic/builtin-symbol/line-v.js.map +1 -1
  689. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  690. package/es/graphic/builtin-symbol/square.js.map +1 -1
  691. package/es/graphic/builtin-symbol/star.js.map +1 -1
  692. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  693. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  694. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  695. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  696. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  697. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  698. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  699. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  700. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  701. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  702. package/es/graphic/circle.js.map +1 -1
  703. package/es/graphic/config.js +9 -4
  704. package/es/graphic/config.js.map +1 -1
  705. package/es/graphic/constants.js.map +1 -1
  706. package/es/graphic/glyph.js.map +1 -1
  707. package/es/graphic/graphic-creator.js.map +1 -1
  708. package/es/graphic/graphic-service/arc-contribution.js.map +1 -1
  709. package/es/graphic/graphic-service/area-contribution.js.map +1 -1
  710. package/es/graphic/graphic-service/circle-contribution.js.map +1 -1
  711. package/es/graphic/graphic-service/common-contribution.js.map +1 -1
  712. package/es/graphic/graphic-service/default-theme.js.map +1 -1
  713. package/es/graphic/graphic-service/graphic-module.js.map +1 -1
  714. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  715. package/es/graphic/graphic-service/path-contribution.js.map +1 -1
  716. package/es/graphic/graphic-service/rect-contribution.js.map +1 -1
  717. package/es/graphic/graphic-service/symbol-contribution.js.map +1 -1
  718. package/es/graphic/graphic.d.ts +4 -1
  719. package/es/graphic/graphic.js +57 -23
  720. package/es/graphic/graphic.js.map +1 -1
  721. package/es/graphic/group.js +1 -1
  722. package/es/graphic/group.js.map +1 -1
  723. package/es/graphic/image.js.map +1 -1
  724. package/es/graphic/index.js.map +1 -1
  725. package/es/graphic/line.js.map +1 -1
  726. package/es/graphic/node-tree.js.map +1 -1
  727. package/es/graphic/path.js.map +1 -1
  728. package/es/graphic/polygon.js.map +1 -1
  729. package/es/graphic/pyramid3d.js.map +1 -1
  730. package/es/graphic/rect.js.map +1 -1
  731. package/es/graphic/rect3d.js.map +1 -1
  732. package/es/graphic/richtext/frame.js.map +1 -1
  733. package/es/graphic/richtext/icon.js.map +1 -1
  734. package/es/graphic/richtext/line.js.map +1 -1
  735. package/es/graphic/richtext/paragraph.js.map +1 -1
  736. package/es/graphic/richtext/utils.js.map +1 -1
  737. package/es/graphic/richtext/wrapper.js.map +1 -1
  738. package/es/graphic/richtext.js.map +1 -1
  739. package/es/graphic/shadow-root.js.map +1 -1
  740. package/es/graphic/symbol.js.map +1 -1
  741. package/es/graphic/text.js +34 -26
  742. package/es/graphic/text.js.map +1 -1
  743. package/es/graphic/theme.js.map +1 -1
  744. package/es/graphic/tools.js.map +1 -1
  745. package/es/graphic/wrap-text.js +16 -10
  746. package/es/graphic/wrap-text.js.map +1 -1
  747. package/es/index.d.ts +2 -1
  748. package/es/index.js +3 -1
  749. package/es/index.js.map +1 -1
  750. package/es/interface/allocator.js.map +1 -1
  751. package/es/interface/animate.d.ts +3 -1
  752. package/es/interface/animate.js.map +1 -1
  753. package/es/interface/camera.js.map +1 -1
  754. package/es/interface/canvas.js.map +1 -1
  755. package/es/interface/color.js.map +1 -1
  756. package/es/interface/common.js.map +1 -1
  757. package/es/interface/context.js.map +1 -1
  758. package/es/interface/contribution.js.map +1 -1
  759. package/es/interface/core.d.ts +1 -0
  760. package/es/interface/core.js.map +1 -1
  761. package/es/interface/creator.js.map +1 -1
  762. package/es/interface/curve.js.map +1 -1
  763. package/es/interface/event.js.map +1 -1
  764. package/es/interface/global.d.ts +12 -0
  765. package/es/interface/global.js.map +1 -1
  766. package/es/interface/graphic/arc.d.ts +2 -0
  767. package/es/interface/graphic/arc.js.map +1 -1
  768. package/es/interface/graphic/arc3d.js.map +1 -1
  769. package/es/interface/graphic/area.js.map +1 -1
  770. package/es/interface/graphic/bounds.js.map +1 -1
  771. package/es/interface/graphic/circle.js.map +1 -1
  772. package/es/interface/graphic/creator.js.map +1 -1
  773. package/es/interface/graphic/dynamic-path.js.map +1 -1
  774. package/es/interface/graphic/ellipse.js.map +1 -1
  775. package/es/interface/graphic/face3d.js.map +1 -1
  776. package/es/interface/graphic/glyph.js.map +1 -1
  777. package/es/interface/graphic/group.js.map +1 -1
  778. package/es/interface/graphic/image.d.ts +1 -0
  779. package/es/interface/graphic/image.js.map +1 -1
  780. package/es/interface/graphic/index.js.map +1 -1
  781. package/es/interface/graphic/isogon.js.map +1 -1
  782. package/es/interface/graphic/line.d.ts +1 -0
  783. package/es/interface/graphic/line.js.map +1 -1
  784. package/es/interface/graphic/path.js.map +1 -1
  785. package/es/interface/graphic/polygon.js.map +1 -1
  786. package/es/interface/graphic/polyline.js.map +1 -1
  787. package/es/interface/graphic/pyramid3d.js.map +1 -1
  788. package/es/interface/graphic/rect.js.map +1 -1
  789. package/es/interface/graphic/rect3d.js.map +1 -1
  790. package/es/interface/graphic/richText.js.map +1 -1
  791. package/es/interface/graphic/shadow-root.js.map +1 -1
  792. package/es/interface/graphic/svg.js.map +1 -1
  793. package/es/interface/graphic/symbol.js.map +1 -1
  794. package/es/interface/graphic/text.d.ts +1 -0
  795. package/es/interface/graphic/text.js.map +1 -1
  796. package/es/interface/graphic/theme.js.map +1 -1
  797. package/es/interface/graphic/util.js.map +1 -1
  798. package/es/interface/graphic-service.js.map +1 -1
  799. package/es/interface/graphic-utils.js.map +1 -1
  800. package/es/interface/graphic.d.ts +15 -3
  801. package/es/interface/graphic.js.map +1 -1
  802. package/es/interface/index.js.map +1 -1
  803. package/es/interface/layer.d.ts +1 -0
  804. package/es/interface/layer.js.map +1 -1
  805. package/es/interface/light.js.map +1 -1
  806. package/es/interface/loader.js.map +1 -1
  807. package/es/interface/matrix.js.map +1 -1
  808. package/es/interface/node-tree.js.map +1 -1
  809. package/es/interface/path.js.map +1 -1
  810. package/es/interface/picker.d.ts +9 -1
  811. package/es/interface/picker.js.map +1 -1
  812. package/es/interface/plugin.js.map +1 -1
  813. package/es/interface/render.js.map +1 -1
  814. package/es/interface/stage.d.ts +7 -2
  815. package/es/interface/stage.js.map +1 -1
  816. package/es/interface/sync-hook.js.map +1 -1
  817. package/es/interface/text.js.map +1 -1
  818. package/es/interface/theme-service.js.map +1 -1
  819. package/es/interface/util.js.map +1 -1
  820. package/es/interface/window.d.ts +12 -0
  821. package/es/interface/window.js.map +1 -1
  822. package/es/jsx/graphicType.d.ts +96 -60
  823. package/es/jsx/graphicType.js.map +1 -1
  824. package/es/jsx/index.js.map +1 -1
  825. package/es/jsx/jsx-classic.d.ts +2 -4
  826. package/es/jsx/jsx-classic.js +8 -15
  827. package/es/jsx/jsx-classic.js.map +1 -1
  828. package/es/kits/env.js.map +1 -1
  829. package/es/kits/index.js.map +1 -1
  830. package/es/modules.js.map +1 -1
  831. package/es/picker/canvas-picker-service.d.ts +2 -2
  832. package/es/picker/canvas-picker-service.js +20 -3
  833. package/es/picker/canvas-picker-service.js.map +1 -1
  834. package/es/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
  835. package/es/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
  836. package/es/picker/contributions/canvas-picker/area-picker.js.map +1 -1
  837. package/es/picker/contributions/canvas-picker/base-picker.js.map +1 -1
  838. package/es/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
  839. package/es/picker/contributions/canvas-picker/glyph-picker.js +1 -1
  840. package/es/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  841. package/es/picker/contributions/canvas-picker/group-picker.d.ts +7 -0
  842. package/es/picker/contributions/canvas-picker/group-picker.js +23 -0
  843. package/es/picker/contributions/canvas-picker/group-picker.js.map +1 -0
  844. package/es/picker/contributions/canvas-picker/image-picker.js.map +1 -1
  845. package/es/picker/contributions/canvas-picker/line-picker.js.map +1 -1
  846. package/es/picker/contributions/canvas-picker/module.js +6 -2
  847. package/es/picker/contributions/canvas-picker/module.js.map +1 -1
  848. package/es/picker/contributions/canvas-picker/path-picker.js.map +1 -1
  849. package/es/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
  850. package/es/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
  851. package/es/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  852. package/es/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
  853. package/es/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
  854. package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  855. package/es/picker/contributions/canvas-picker/text-picker.js.map +1 -1
  856. package/es/picker/contributions/constants.d.ts +1 -0
  857. package/es/picker/contributions/constants.js +2 -0
  858. package/es/picker/contributions/constants.js.map +1 -1
  859. package/es/picker/contributions/math-picker/arc-picker.js.map +1 -1
  860. package/es/picker/contributions/math-picker/area-picker.js.map +1 -1
  861. package/es/picker/contributions/math-picker/circle-picker.js.map +1 -1
  862. package/es/picker/contributions/math-picker/glyph-picker.js +1 -1
  863. package/es/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  864. package/es/picker/contributions/math-picker/line-picker.js.map +1 -1
  865. package/es/picker/contributions/math-picker/module.js.map +1 -1
  866. package/es/picker/contributions/math-picker/path-picker.js.map +1 -1
  867. package/es/picker/contributions/math-picker/polygon-picker.js.map +1 -1
  868. package/es/picker/contributions/math-picker/rect-picker.js.map +1 -1
  869. package/es/picker/contributions/math-picker/symbol-picker.js.map +1 -1
  870. package/es/picker/contributions/math-picker/text-picker.js.map +1 -1
  871. package/es/picker/contributions/modules.js.map +1 -1
  872. package/es/picker/contributions/old/circle-picker.js.map +1 -1
  873. package/es/picker/contributions/old/rect-picker.js.map +1 -1
  874. package/es/picker/global-picker-service.d.ts +1 -1
  875. package/es/picker/global-picker-service.js +12 -5
  876. package/es/picker/global-picker-service.js.map +1 -1
  877. package/es/picker/index.js.map +1 -1
  878. package/es/picker/math-picker-service.d.ts +2 -2
  879. package/es/picker/math-picker-service.js +1 -1
  880. package/es/picker/math-picker-service.js.map +1 -1
  881. package/es/picker/pick-interceptor.d.ts +12 -0
  882. package/es/picker/pick-interceptor.js +32 -1
  883. package/es/picker/pick-interceptor.js.map +1 -1
  884. package/es/picker/pick-modules.js +4 -2
  885. package/es/picker/pick-modules.js.map +1 -1
  886. package/es/picker/picker-service.d.ts +1 -1
  887. package/es/picker/picker-service.js +15 -6
  888. package/es/picker/picker-service.js.map +1 -1
  889. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  890. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  891. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  892. package/es/plugins/builtin-plugin/flex-layout-plugin.d.ts +2 -0
  893. package/es/plugins/builtin-plugin/flex-layout-plugin.js +47 -20
  894. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  895. package/es/plugins/builtin-plugin/html-attribute-plugin.js +8 -4
  896. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  897. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  898. package/es/plugins/builtin-plugin/poptip-plugin.js.map +1 -1
  899. package/es/plugins/constants.js.map +1 -1
  900. package/es/plugins/plugin-modules.js +2 -2
  901. package/es/plugins/plugin-modules.js.map +1 -1
  902. package/es/plugins/plugin-service.js.map +1 -1
  903. package/es/render/contributions/modules.js.map +1 -1
  904. package/es/render/contributions/render/arc-render.js +10 -3
  905. package/es/render/contributions/render/arc-render.js.map +1 -1
  906. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  907. package/es/render/contributions/render/area-render.js +31 -21
  908. package/es/render/contributions/render/area-render.js.map +1 -1
  909. package/es/render/contributions/render/base-render.js.map +1 -1
  910. package/es/render/contributions/render/circle-render.js.map +1 -1
  911. package/es/render/contributions/render/clear-screen.js.map +1 -1
  912. package/es/render/contributions/render/contributions/arc-contribution-render.js +9 -7
  913. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  914. package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  915. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  916. package/es/render/contributions/render/contributions/circle-contribution-render.js +9 -7
  917. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  918. package/es/render/contributions/render/contributions/constants.js.map +1 -1
  919. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  920. package/es/render/contributions/render/contributions/image-contribution-render.js +27 -0
  921. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  922. package/es/render/contributions/render/contributions/index.js.map +1 -1
  923. package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  924. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  925. package/es/render/contributions/render/contributions/rect-contribution-render.js +9 -7
  926. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  927. package/es/render/contributions/render/contributions/symbol-contribution-render.js +22 -20
  928. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  929. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  930. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  931. package/es/render/contributions/render/draw-interceptor.d.ts +2 -0
  932. package/es/render/contributions/render/draw-interceptor.js +8 -0
  933. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  934. package/es/render/contributions/render/glyph-render.js.map +1 -1
  935. package/es/render/contributions/render/graphic-render.js.map +1 -1
  936. package/es/render/contributions/render/group-render.js.map +1 -1
  937. package/es/render/contributions/render/image-render.js +10 -2
  938. package/es/render/contributions/render/image-render.js.map +1 -1
  939. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  940. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  941. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  942. package/es/render/contributions/render/index.js.map +1 -1
  943. package/es/render/contributions/render/line-render.js +49 -22
  944. package/es/render/contributions/render/line-render.js.map +1 -1
  945. package/es/render/contributions/render/module.js.map +1 -1
  946. package/es/render/contributions/render/path-render.js.map +1 -1
  947. package/es/render/contributions/render/polygon-render.js.map +1 -1
  948. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  949. package/es/render/contributions/render/rect-render.js.map +1 -1
  950. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  951. package/es/render/contributions/render/render-slector.js.map +1 -1
  952. package/es/render/contributions/render/richtext-render.js.map +1 -1
  953. package/es/render/contributions/render/symbol-render.js.map +1 -1
  954. package/es/render/contributions/render/symbol.js.map +1 -1
  955. package/es/render/contributions/render/text-render.js.map +1 -1
  956. package/es/render/contributions/render/utils.d.ts +2 -2
  957. package/es/render/contributions/render/utils.js.map +1 -1
  958. package/es/render/index.js.map +1 -1
  959. package/es/render/render-modules.js.map +1 -1
  960. package/es/render/render-service.js.map +1 -1
  961. package/es/resource-loader/loader.js.map +1 -1
  962. package/es/tapable/Hook.js.map +1 -1
  963. package/es/tapable/SyncHook.js.map +1 -1
  964. package/es/tapable/index.js.map +1 -1
  965. package/package.json +7 -7
  966. package/es/tsconfig.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/stage.ts"],"names":[],"mappings":"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","file":"stage.js","sourcesContent":["import type { IAABBBounds, IBounds, IBoundsLike, IMatrix } from '@visactor/vutils';\nimport { AABBBounds, Bounds, Point } from '@visactor/vutils';\nimport type {\n IGraphic,\n IGroup,\n IExportType,\n IStage,\n IStageParams,\n ILayer,\n IColor,\n IGlobal,\n IOption3D,\n ICamera,\n vec3,\n IDirectionLight,\n ITicker,\n IRenderService,\n IPickerService,\n IPluginService,\n ISyncHook,\n IDrawContext,\n IWindow,\n IPlugin,\n IContributionProvider,\n ILayerService\n} from '../interface';\nimport { VWindow } from './window';\nimport type { Layer } from './layer';\nimport { EventSystem } from '../event';\nimport { container } from '../container';\nimport { RenderService } from '../render';\nimport { Group, Theme } from '../graphic';\nimport { PickerService } from '../picker/picker-service';\nimport { PluginService } from '../plugins/constants';\nimport { AutoRenderPlugin } from '../plugins/builtin-plugin/auto-render-plugin';\nimport { ViewTransform3dPlugin } from '../plugins/builtin-plugin/3dview-transform-plugin';\nimport { IncrementalAutoRenderPlugin } from '../plugins/builtin-plugin/incremental-auto-render-plugin';\nimport { HtmlAttributePlugin } from '../plugins/builtin-plugin/html-attribute-plugin';\nimport { DirtyBoundsPlugin } from '../plugins/builtin-plugin/dirty-bounds-plugin';\nimport { FlexLayoutPlugin } from '../plugins/builtin-plugin/flex-layout-plugin';\nimport { defaultTicker } from '../animate/default-ticker';\nimport { SyncHook } from '../tapable';\nimport { DirectionalLight } from './light';\nimport { OrthoCamera } from './camera';\nimport { VGlobal } from '../constants';\nimport { LayerService } from './constants';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n X: 0,\n Y: 0,\n BACKGROUND: 'white'\n};\n\n/**\n * Stage是一个舞台或一个视口,并不直接对应一个或多个Canvas,逻辑上和Canvas无关\n *\n * 1. Stage对应一个Canvas的整体,Stage的宽高即为Canvas的宽高\n * 2. Stage小于Canvas,Stage作为Canvas某个区域的视口,只管理这个区域\n * 3. 多图层时Stage的多个图层对应多个Canvas\n *\n * 原生环境下Stage可以拥有一个Window或者使用Window的一块区域\n *\n * 【注】如果希望获取完整的Canvas或窗口或者调整窗口信息,请使用Window模块\n */\nexport class Stage extends Group implements IStage {\n declare parent: IStage | null;\n\n // protected _x: number;\n // protected _y: number;\n // // 窗口的宽高\n // private _width: number;\n // private _height: number;\n // 视口的宽高\n // private _viewWidth: number;\n // private _viewHeight: number;\n protected _viewBox: AABBBounds;\n private _background: string | IColor;\n private _subView: boolean; // 是否是存在子视图\n protected nextFrameRenderLayerSet: Set<Layer>;\n protected willNextFrameRender: boolean;\n protected _cursor: string;\n renderCount: number;\n dirtyBounds: IBounds | null;\n option3d?: IOption3D;\n declare light?: IDirectionLight;\n declare camera?: ICamera;\n declare renderStyle?: string;\n\n declare hooks: {\n beforeRender: ISyncHook<[IStage]>;\n afterRender: ISyncHook<[IStage]>;\n };\n\n set viewBox(b: IBoundsLike) {\n this._viewBox.setValue(b.x1, b.y1, b.x2, b.y2);\n }\n get viewBox(): AABBBounds {\n return this._viewBox;\n }\n\n get x(): number {\n return this._viewBox.x1;\n }\n set x(x: number) {\n this._viewBox.translate(x - this._viewBox.x1, 0);\n }\n get y(): number {\n return this._viewBox.y1;\n }\n set y(y: number) {\n this._viewBox.translate(0, y - this._viewBox.y1);\n }\n get width(): number {\n return this.window.width;\n }\n set width(w: number) {\n this.resize(w, this.height);\n }\n get viewWidth(): number {\n return this._viewBox.width();\n }\n set viewWidth(w: number) {\n this.resizeView(w, this.viewHeight);\n }\n get viewHeight(): number {\n return this._viewBox.height();\n }\n set viewHeight(h: number) {\n this.resizeView(this.viewWidth, h);\n }\n get height(): number {\n return this.window.height;\n }\n set height(h: number) {\n this.resize(this.width, h);\n }\n get dpr(): number {\n return this.window.dpr;\n }\n set dpr(r: number) {\n this.setDpr(r);\n }\n get background(): string | IColor {\n return this._background ?? DefaultConfig.BACKGROUND;\n }\n set background(b: string | IColor) {\n this._background = b;\n }\n get defaultLayer(): ILayer {\n return this.at(0) as unknown as ILayer;\n }\n\n ticker: ITicker;\n\n autoRender: boolean;\n _enableLayout: boolean;\n htmlAttribute: boolean | string | any;\n increaseAutoRender: boolean;\n view3dTranform: boolean;\n readonly window: IWindow;\n private readonly global: IGlobal;\n readonly renderService: IRenderService;\n readonly pickerService: IPickerService;\n readonly pluginService: IPluginService;\n readonly layerService: ILayerService;\n private readonly eventSystem?: EventSystem;\n\n protected _beforeRender?: (stage: IStage) => void;\n protected _afterRender?: (stage: IStage) => void;\n protected _afterNextRenderCbs?: ((stage: IStage) => void)[];\n protected lastRenderparams?: Partial<IDrawContext>;\n\n protected interactiveLayer?: ILayer;\n protected supportInteractiveLayer: boolean;\n\n declare params: Partial<IStageParams>;\n\n /**\n * 所有属性都具有默认值。\n * Canvas为字符串或者Canvas元素,那么默认图层就会绑定到这个Canvas上\n * 如果不传入Canvas,那么会新建一个Canvas,用户可以通过Window模块管理这个Canvas\n * 1. 如果没有传入宽高,那么默认为canvas宽高,如果传入了宽高则stage使用传入宽高作为视口宽高\n * @param params\n */\n constructor(params: Partial<IStageParams>) {\n super({});\n this.params = params;\n this.theme = new Theme();\n this.hooks = {\n beforeRender: new SyncHook(['stage']),\n afterRender: new SyncHook(['stage'])\n };\n this.global = container.get<IGlobal>(VGlobal);\n this.window = container.get<IWindow>(VWindow);\n this.renderService = container.get<IRenderService>(RenderService);\n this.pickerService = container.get<IPickerService>(PickerService);\n this.pluginService = container.get<IPluginService>(PluginService);\n this.layerService = container.get<ILayerService>(LayerService);\n this.pluginService.active(this, params);\n\n this.window.create({\n width: params.width,\n height: params.height,\n container: params.container,\n dpr: params.dpr || this.global.devicePixelRatio,\n canvasControled: params.canvasControled !== false,\n title: params.title || '',\n canvas: params.canvas\n });\n\n this._viewBox = new AABBBounds();\n if (params.viewBox) {\n this._viewBox.setValue(params.viewBox.x1, params.viewBox.y1, params.viewBox.x2, params.viewBox.y2);\n } else {\n this._viewBox.setValue(0, 0, this.width, this.height);\n }\n\n this.renderCount = 0;\n\n // // 没有传入xy就默认为0\n // this._x = params.x ?? DefaultConfig.X;\n // this._y = params.y ?? DefaultConfig.Y;\n // // 没有传入view的宽高则默认为window的宽高\n // this._viewWidth = params.viewWidth ?? this.window.width;\n // this._viewHeight = params.viewHeight ?? this.window.height;\n this._subView = !(this._viewBox.width() === this.width && this._viewBox.height() === this.height);\n // this._AABBBounds.set(this._x, this._y, this._viewWidth + this._x, this._viewHeight + this._y);\n // 背景色默认为纯白色\n this._background = params.background ?? DefaultConfig.BACKGROUND;\n\n // 创建一个默认layer图层\n // this.appendChild(new Layer(this, this.global, this.window, { main: true }));\n this.appendChild(this.layerService.createLayer(this, { main: true }));\n\n this.nextFrameRenderLayerSet = new Set();\n this.willNextFrameRender = false;\n this.stage = this;\n this.renderStyle = params.renderStyle;\n\n if (this.global.supportEvent) {\n this.eventSystem = new EventSystem({\n targetElement: this.window,\n resolution: this.window.dpr || this.global.devicePixelRatio,\n rootNode: this as any,\n global: this.global,\n viewport: {\n viewBox: this._viewBox,\n get x(): number {\n return this.viewBox.x1;\n },\n get y(): number {\n return this.viewBox.y1;\n },\n get width(): number {\n return this.viewBox.width();\n },\n get height(): number {\n return this.viewBox.height();\n }\n }\n });\n }\n\n // this.autoRender = params.autoRender;\n if (params.autoRender) {\n this.enableAutoRender();\n }\n // 默认不开启dirtyBounds\n if (params.disableDirtyBounds === false) {\n this.enableDirtyBounds();\n }\n\n if (params.enableHtmlAttribute) {\n this.enableHtmlAttribute(params.enableHtmlAttribute);\n }\n\n params.enableLayout && this.enableLayout();\n this.hooks.beforeRender.tap('constructor', this.beforeRender);\n this.hooks.afterRender.tap('constructor', this.afterRender);\n this._beforeRender = params.beforeRender;\n this._afterRender = params.afterRender;\n this.ticker = params.ticker || defaultTicker;\n this.supportInteractiveLayer = params.interactiveLayer !== false;\n }\n\n get3dOptions(options: IOption3D) {\n const {\n center = { x: this.width / 2, y: this.height / 2, z: 0, dx: 0, dy: 0, dz: 0 },\n light = {},\n alpha = 0,\n beta = 0,\n camera,\n fieldRatio = 1,\n fieldDepth\n } = options;\n\n return {\n ...options,\n center,\n light,\n alpha,\n beta,\n camera,\n fieldRatio,\n fieldDepth\n };\n }\n\n set3dOptions(options: IOption3D) {\n this.option3d = options;\n const options3d = this.get3dOptions(options);\n const { light, center, camera, alpha, beta, fieldRatio, fieldDepth } = options3d;\n const { dir = [1, 1, -1], color = 'white', ambient } = light;\n\n const centerX = (center.x ?? this.width / 2) + (center.dx ?? 0);\n const centerY = (center.y ?? this.height / 2) + (center.dy ?? 0);\n const centerZ = (center.z ?? 0) + (center.dz ?? 0);\n const centerVec3: vec3 = [centerX, centerY, centerZ];\n const z = 1;\n let cameraX = 0;\n let cameraY = 0;\n let cameraZ = 0;\n if (!camera) {\n cameraX = Math.sin(alpha) + centerX;\n cameraY = Math.sin(beta) + centerY;\n cameraZ = Math.cos(alpha) * Math.cos(beta) * z;\n }\n\n this.light = new DirectionalLight(dir, color, ambient);\n const cameraParams = {\n left: 0,\n right: this.width,\n top: 0,\n bottom: this.height,\n fieldRatio: fieldRatio,\n fieldDepth,\n viewParams: {\n pos: [cameraX, cameraY, cameraZ] as vec3,\n center: centerVec3,\n up: [0, 1, 0] as vec3\n }\n };\n if (this.camera) {\n this.camera.params = cameraParams;\n } else {\n this.camera = new OrthoCamera(cameraParams);\n }\n\n if (options.enableView3dTransform) {\n this.enableView3dTransform();\n }\n }\n\n protected beforeRender = (stage: IStage) => {\n this._beforeRender && this._beforeRender(stage);\n };\n\n protected afterRender = (stage: IStage) => {\n this.renderCount++;\n this._afterRender && this._afterRender(stage);\n this._afterNextRenderCbs && this._afterNextRenderCbs.forEach(cb => cb(stage));\n this._afterNextRenderCbs = null;\n };\n\n setBeforeRender(cb: (stage: IStage) => void) {\n this._beforeRender = cb;\n }\n\n setAfterRender(cb: (stage: IStage) => void) {\n this._afterRender = cb;\n }\n\n afterNextRender(cb: (stage: IStage) => void) {\n if (!this._afterNextRenderCbs) {\n this._afterNextRenderCbs = [];\n }\n this._afterNextRenderCbs.push(cb);\n }\n\n enableView3dTransform() {\n if (this.view3dTranform) {\n return;\n }\n this.view3dTranform = true;\n this.pluginService.register(new ViewTransform3dPlugin());\n }\n\n disableView3dTranform() {\n if (!this.view3dTranform) {\n return;\n }\n this.view3dTranform = false;\n this.pluginService.findPluginsByName('ViewTransform3dPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n\n enableAutoRender() {\n if (this.autoRender) {\n return;\n }\n this.autoRender = true;\n this.pluginService.register(new AutoRenderPlugin());\n }\n disableAutoRender() {\n if (!this.autoRender) {\n return;\n }\n this.autoRender = false;\n this.pluginService.findPluginsByName('AutoRenderPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n enableIncrementalAutoRender() {\n if (this.increaseAutoRender) {\n return;\n }\n this.increaseAutoRender = true;\n this.pluginService.register(new IncrementalAutoRenderPlugin());\n }\n disableIncrementalAutoRender() {\n if (!this.increaseAutoRender) {\n return;\n }\n this.increaseAutoRender = false;\n this.pluginService.findPluginsByName('IncrementalAutoRenderPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n enableDirtyBounds() {\n if (this.dirtyBounds) {\n return;\n }\n this.dirtyBounds = new Bounds();\n let plugin = this.pluginService.findPluginsByName('DirtyBoundsPlugin')[0];\n if (!plugin) {\n plugin = new DirtyBoundsPlugin();\n this.pluginService.register(plugin);\n }\n plugin.activate(this.pluginService);\n }\n disableDirtyBounds() {\n if (!this.dirtyBounds) {\n return;\n }\n this.dirtyBounds = null;\n this.pluginService.findPluginsByName('DirtyBoundsPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n enableLayout() {\n if (this._enableLayout) {\n return;\n }\n this._enableLayout = true;\n this.pluginService.register(new FlexLayoutPlugin());\n }\n disableLayout() {\n if (!this._enableLayout) {\n return;\n }\n this._enableLayout = false;\n this.pluginService.findPluginsByName('FlexLayoutPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n enableHtmlAttribute(container?: any) {\n if (this.htmlAttribute) {\n return;\n }\n this.htmlAttribute = container;\n this.pluginService.register(new HtmlAttributePlugin());\n }\n disableHtmlAttribute() {\n if (!this.htmlAttribute) {\n return;\n }\n this.htmlAttribute = false;\n this.pluginService.findPluginsByName('HtmlAttributePlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n\n // /**\n // * stage的appendChild,add\n // * @param node\n // * @returns\n // */\n // appendChild<T extends Node>(node: T): T | null {\n // const layer = this.at(0);\n // if (!layer) {\n // return null;\n // }\n // return layer.appendChild<T>(node);\n // }\n\n protected tryUpdateAABBBounds(): AABBBounds {\n const viewBox = this._viewBox;\n this._AABBBounds.setValue(viewBox.x1, viewBox.y1, viewBox.x2, viewBox.y2);\n return this._AABBBounds;\n }\n\n combineLayer(ILayer1: ILayer, ILayer2: ILayer): ILayer {\n throw new Error('暂不支持');\n }\n // 如果传入CanvasId,如果存在相同Id,说明这两个图层使用相同的Canvas绘制\n // 但需要注意的是依然是两个图层(用于解决Table嵌入ChartSpace不影响Table的绘制)\n createLayer(canvasId?: string): ILayer {\n // 创建一个默认layer图层\n const layer = this.layerService.createLayer(this, {\n main: false,\n canvasId\n });\n this.appendChild(layer);\n return layer;\n // const layer = new Layer(this, this.global, this.window, {\n // main: false,\n // canvasId\n // });\n // this.appendChild(layer);\n // return layer;\n }\n sortLayer(cb: (ILayer1: ILayer, layer2: ILayer) => number): void {\n const children = this.children;\n children.sort(cb);\n this.removeAllChild();\n children.forEach(c => {\n this.appendChild(c);\n });\n }\n removeLayer(ILayerId: number): ILayer | false {\n return this.removeChild(this.findChildByUid(ILayerId) as IGraphic) as ILayer;\n }\n tryInitInteractiveLayer() {\n // TODO:顺序可能会存在问题\n // 支持交互层,且没有创建过,那就创建\n if (this.supportInteractiveLayer && !this.interactiveLayer) {\n this.interactiveLayer = this.createLayer();\n this.interactiveLayer.name = '_builtin_interactive';\n }\n // this.interactiveLayer.afterDraw(l => {\n // l.removeAllChild();\n // });\n }\n\n clearViewBox(color?: string) {\n this.window.clearViewBox(this._viewBox, color);\n }\n\n render(layers?: ILayer[], params?: Partial<IDrawContext>): void {\n this.ticker.start();\n this.lastRenderparams = params;\n this.hooks.beforeRender.call(this);\n (layers || this).forEach<ILayer>((layer, i) => {\n layer.render(\n {\n renderService: this.renderService,\n background: layer === this.defaultLayer ? this.background : undefined,\n updateBounds: !!this.dirtyBounds\n },\n { renderStyle: this.renderStyle, ...params }\n );\n });\n this.combineLayersToWindow();\n this.nextFrameRenderLayerSet.clear();\n this.hooks.afterRender.call(this);\n }\n\n protected combineLayersToWindow() {\n this.forEach<ILayer>((layer, i) => {\n layer.combineTo(this.window, {\n clear: i === 0,\n x: this.x,\n y: this.y,\n width: this.viewWidth,\n height: this.viewHeight,\n renderService: this.renderService,\n background: layer === this.defaultLayer ? this.background : undefined,\n updateBounds: !!this.dirtyBounds\n });\n });\n }\n\n renderNextFrame(layers?: ILayer[]): void {\n // 性能优化,避免重复add\n if (this.nextFrameRenderLayerSet.size !== this.childrenCount) {\n (layers || this).forEach<ILayer>((layer: any) => {\n this.nextFrameRenderLayerSet.add(layer);\n });\n }\n if (!this.willNextFrameRender) {\n this.willNextFrameRender = true;\n this.global.getRequestAnimationFrame()(() => {\n this._doRenderInThisFrame(), (this.willNextFrameRender = false);\n });\n }\n }\n\n _doRenderInThisFrame() {\n if (this.nextFrameRenderLayerSet.size) {\n this.ticker.start();\n this.hooks.beforeRender.call(this);\n this.forEach((layer: Layer) => {\n if (this.nextFrameRenderLayerSet.has(layer)) {\n layer.render(\n {\n renderService: this.renderService,\n background: layer === this.defaultLayer ? this.background : undefined,\n updateBounds: !!this.dirtyBounds\n },\n { renderStyle: this.renderStyle, ...(this.lastRenderparams || {}) }\n );\n }\n });\n this.combineLayersToWindow();\n this.hooks.afterRender.call(this);\n this.nextFrameRenderLayerSet.clear();\n }\n }\n\n resizeWindow(w: number, h: number, rerender: boolean = true) {\n this.window.resize(w, h);\n rerender && this.render();\n }\n\n /**\n * 语法糖,如果viewBox和window宽高一样的话,那么会同时缩放window和viewBox\n * @param w\n * @param h\n * @param rerender\n */\n resize(w: number, h: number, rerender: boolean = true): void {\n this.window.resize(w, h);\n this.forEachChildren<ILayer>(c => {\n c.resize(w, h);\n });\n // 如果不是子图的stage,那么认为用户也想要resize view\n if (!this._subView) {\n this.viewBox.setValue(this.viewBox.x1, this.viewBox.y1, this.viewBox.x1 + w, this.viewBox.y1 + h);\n }\n // 设置camera\n // this.camera && (this.camera.params = { ...this.camera.params, right: this.width, bottom: this.height });\n this.camera && this.option3d && this.set3dOptions(this.option3d);\n rerender && this.render();\n }\n resizeView(w: number, h: number, rerender: boolean = true) {\n this.viewBox.setValue(this.viewBox.x1, this.viewBox.y1, this.viewBox.x1 + w, this.viewBox.y1 + h);\n this.forEachChildren<ILayer>(c => {\n c.resizeView(w, h);\n });\n // 设置camera\n this.camera && (this.camera.params = { ...this.camera.params, right: this.width, bottom: this.height });\n rerender && this.render();\n }\n setViewBox(viewBox: IBoundsLike, rerender: boolean): void;\n setViewBox(x: number, y: number, w: number, h: number, rerender: boolean): void;\n setViewBox(x: number | IBoundsLike, y: number | boolean, w?: number, h?: number, rerender?: boolean): void {\n let isRerender: boolean = true;\n\n if (typeof x === 'object') {\n this.viewBox.setValue(x.x1, x.y1, x.x2, x.y2);\n if (y === false) {\n isRerender = false;\n }\n } else {\n this.viewBox.setValue(x, y as number, x + w, (y as number) + h);\n\n if (rerender === false) {\n isRerender = false;\n }\n }\n\n this.forEachChildren<ILayer>(c => {\n c.resizeView(this.viewBox.width(), this.viewBox.height());\n });\n isRerender && this.render();\n }\n setDpr(dpr: number): void {\n // this.window.setDpr(dpr);\n this.forEachChildren<ILayer>(c => {\n c.setDpr(dpr);\n });\n }\n setOrigin(x: number, y: number): void {\n throw new Error('暂不支持');\n }\n export(type: IExportType): HTMLCanvasElement | ImageData {\n throw new Error('暂不支持');\n }\n pick(x: number, y: number): { graphic: IGraphic | null; group: IGroup | null } | false {\n // 暂时不提供layer的pick\n const result = this.pickerService.pick(this.children as unknown as IGraphic[], new Point(x, y), {\n bounds: this.AABBBounds\n });\n if (result?.graphic || result?.group) {\n return result;\n }\n return false;\n }\n\n // 动画相关\n startAnimate(t: number): void {\n throw new Error('暂不支持');\n }\n setToFrame(t: number): void {\n throw new Error('暂不支持');\n }\n\n release() {\n super.release();\n this.eventSystem && this.eventSystem.release();\n this.pluginService.release();\n this.forEach(layer => {\n layer.release();\n });\n this.interactiveLayer && this.interactiveLayer.release();\n this.window.release();\n }\n\n setStage(stage?: IStage) {\n return;\n // this.stage = this;\n // this.forEachChildren(item => {\n // (item as Layer).setStage(this);\n // });\n }\n\n /**\n * 添加dirty区域,会修改参数b\n * @param b\n * @param matrix\n */\n dirty(b: IBounds, matrix?: IMatrix) {\n if (matrix) {\n b.transformWithMatrix(matrix);\n }\n if (this.dirtyBounds.empty()) {\n this.dirtyBounds.setValue(b.x1, b.y1, b.x2, b.y2);\n }\n this.dirtyBounds.union(b);\n }\n\n getLayer(name: string): undefined | ILayer {\n const layer = this.children.filter(layer => layer.name === name);\n return layer[0] as ILayer;\n }\n\n renderTo(window: IWindow, params: { x: number; y: number; width: number; height: number }) {\n this.forEachChildren<ILayer>((layer, i) => {\n layer.drawTo(window, {\n ...params,\n renderService: this.renderService,\n background: layer === this.defaultLayer ? this.background : undefined,\n clear: i === 0, // 第一个layer需要clear\n updateBounds: !!this.dirtyBounds\n });\n });\n }\n\n /**\n * 渲染到新的window上去\n * @param fullImage 是否是全量的image,因为可能之前的window有一部分场景树超过window的帧缓冲了\n * @returns\n */\n renderToNewWindow(fullImage: boolean = true, viewBox?: IAABBBounds): IWindow {\n const window = container.get<IWindow>(VWindow);\n if (fullImage) {\n window.create({\n width: this.viewWidth,\n height: this.viewHeight,\n dpr: this.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n } else {\n const width = viewBox ? viewBox.width() : Math.min(this.viewWidth, this.window.width - this.x);\n const height = viewBox ? viewBox.height() : Math.min(this.viewHeight, this.window.height - this.y);\n window.create({\n width,\n height,\n dpr: this.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n }\n\n const x = viewBox ? -viewBox.x1 : 0;\n const y = viewBox ? -viewBox.y1 : 0;\n this.renderTo(window, {\n x,\n y,\n width: window.width,\n height: window.height\n });\n return window;\n }\n\n toCanvas(fullImage: boolean = true, viewBox?: IAABBBounds): HTMLCanvasElement | null {\n const window = this.renderToNewWindow(fullImage, viewBox);\n const c = window.getNativeHandler();\n if (c.nativeCanvas) {\n return c.nativeCanvas;\n }\n return null;\n }\n\n setCursor(mode?: string): void {\n this._cursor = mode;\n this.eventSystem.setCursor(mode);\n }\n\n getCursor() {\n return this._cursor;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/stage.ts"],"names":[],"mappings":"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","file":"stage.js","sourcesContent":["import type { IAABBBounds, IBounds, IBoundsLike, IMatrix } from '@visactor/vutils';\nimport { AABBBounds, Bounds, Point } from '@visactor/vutils';\nimport type {\n IGraphic,\n IGroup,\n IExportType,\n IStage,\n IStageParams,\n ILayer,\n IColor,\n IGlobal,\n IOption3D,\n ICamera,\n vec3,\n IDirectionLight,\n ITicker,\n IRenderService,\n IPickerService,\n IPluginService,\n ISyncHook,\n IDrawContext,\n IWindow,\n IPlugin,\n IContributionProvider,\n ILayerService,\n ITimeline,\n IOptimizeType\n} from '../interface';\nimport { VWindow } from './window';\nimport type { Layer } from './layer';\nimport { EventSystem } from '../event';\nimport { container } from '../container';\nimport { RenderService } from '../render';\nimport { Group, Theme } from '../graphic';\nimport { PickerService } from '../picker/picker-service';\nimport { PluginService } from '../plugins/constants';\nimport { AutoRenderPlugin } from '../plugins/builtin-plugin/auto-render-plugin';\nimport { ViewTransform3dPlugin } from '../plugins/builtin-plugin/3dview-transform-plugin';\nimport { IncrementalAutoRenderPlugin } from '../plugins/builtin-plugin/incremental-auto-render-plugin';\nimport { HtmlAttributePlugin } from '../plugins/builtin-plugin/html-attribute-plugin';\nimport { DirtyBoundsPlugin } from '../plugins/builtin-plugin/dirty-bounds-plugin';\nimport { FlexLayoutPlugin } from '../plugins/builtin-plugin/flex-layout-plugin';\nimport { defaultTicker } from '../animate/default-ticker';\nimport { SyncHook } from '../tapable';\nimport { DirectionalLight } from './light';\nimport { OrthoCamera } from './camera';\nimport { VGlobal } from '../constants';\nimport { LayerService } from './constants';\nimport { DefaultTimeline } from '../animate';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n X: 0,\n Y: 0,\n BACKGROUND: 'white'\n};\n\n/**\n * Stage是一个舞台或一个视口,并不直接对应一个或多个Canvas,逻辑上和Canvas无关\n *\n * 1. Stage对应一个Canvas的整体,Stage的宽高即为Canvas的宽高\n * 2. Stage小于Canvas,Stage作为Canvas某个区域的视口,只管理这个区域\n * 3. 多图层时Stage的多个图层对应多个Canvas\n *\n * 原生环境下Stage可以拥有一个Window或者使用Window的一块区域\n *\n * 【注】如果希望获取完整的Canvas或窗口或者调整窗口信息,请使用Window模块\n */\nexport class Stage extends Group implements IStage {\n declare parent: IStage | null;\n\n protected _viewBox: AABBBounds;\n private _background: string | IColor;\n private _subView: boolean; // 是否是存在子视图\n protected nextFrameRenderLayerSet: Set<Layer>;\n protected willNextFrameRender: boolean;\n protected _cursor: string;\n renderCount: number;\n dirtyBounds: IBounds | null;\n option3d?: IOption3D;\n declare light?: IDirectionLight;\n declare camera?: ICamera;\n declare renderStyle?: string;\n\n declare hooks: {\n beforeRender: ISyncHook<[IStage]>;\n afterRender: ISyncHook<[IStage]>;\n };\n\n set viewBox(b: IBoundsLike) {\n this._viewBox.setValue(b.x1, b.y1, b.x2, b.y2);\n }\n get viewBox(): AABBBounds {\n return this._viewBox;\n }\n\n get x(): number {\n return this._viewBox.x1;\n }\n set x(x: number) {\n this._viewBox.translate(x - this._viewBox.x1, 0);\n }\n get y(): number {\n return this._viewBox.y1;\n }\n set y(y: number) {\n this._viewBox.translate(0, y - this._viewBox.y1);\n }\n get width(): number {\n return this.window.width;\n }\n set width(w: number) {\n this.resize(w, this.height);\n }\n get viewWidth(): number {\n return this._viewBox.width();\n }\n set viewWidth(w: number) {\n this.resizeView(w, this.viewHeight);\n }\n get viewHeight(): number {\n return this._viewBox.height();\n }\n set viewHeight(h: number) {\n this.resizeView(this.viewWidth, h);\n }\n get height(): number {\n return this.window.height;\n }\n set height(h: number) {\n this.resize(this.width, h);\n }\n get dpr(): number {\n return this.window.dpr;\n }\n set dpr(r: number) {\n this.setDpr(r);\n }\n get background(): string | IColor {\n return this._background ?? DefaultConfig.BACKGROUND;\n }\n set background(b: string | IColor) {\n this._background = b;\n }\n get defaultLayer(): ILayer {\n return this.at(0) as unknown as ILayer;\n }\n\n ticker: ITicker;\n\n autoRender: boolean;\n _enableLayout: boolean;\n htmlAttribute: boolean | string | any;\n increaseAutoRender: boolean;\n view3dTranform: boolean;\n readonly window: IWindow;\n private readonly global: IGlobal;\n readonly renderService: IRenderService;\n readonly pickerService: IPickerService;\n readonly pluginService: IPluginService;\n readonly layerService: ILayerService;\n private readonly eventSystem?: EventSystem;\n\n protected _beforeRender?: (stage: IStage) => void;\n protected _afterRender?: (stage: IStage) => void;\n protected _skipRender?: number;\n protected _afterNextRenderCbs?: ((stage: IStage) => void)[];\n protected lastRenderparams?: Partial<IDrawContext>;\n\n protected interactiveLayer?: ILayer;\n protected supportInteractiveLayer: boolean;\n protected timeline: ITimeline;\n\n declare params: Partial<IStageParams>;\n\n /**\n * 所有属性都具有默认值。\n * Canvas为字符串或者Canvas元素,那么默认图层就会绑定到这个Canvas上\n * 如果不传入Canvas,那么会新建一个Canvas,用户可以通过Window模块管理这个Canvas\n * 1. 如果没有传入宽高,那么默认为canvas宽高,如果传入了宽高则stage使用传入宽高作为视口宽高\n * @param params\n */\n constructor(params: Partial<IStageParams>) {\n super({});\n this.params = params;\n this.theme = new Theme();\n this.hooks = {\n beforeRender: new SyncHook(['stage']),\n afterRender: new SyncHook(['stage'])\n };\n this.global = container.get<IGlobal>(VGlobal);\n this.window = container.get<IWindow>(VWindow);\n this.renderService = container.get<IRenderService>(RenderService);\n this.pickerService = container.get<IPickerService>(PickerService);\n this.pluginService = container.get<IPluginService>(PluginService);\n this.layerService = container.get<ILayerService>(LayerService);\n this.pluginService.active(this, params);\n\n this.window.create({\n width: params.width,\n height: params.height,\n container: params.container,\n dpr: params.dpr || this.global.devicePixelRatio,\n canvasControled: params.canvasControled !== false,\n title: params.title || '',\n canvas: params.canvas\n });\n\n this._viewBox = new AABBBounds();\n if (params.viewBox) {\n this._viewBox.setValue(params.viewBox.x1, params.viewBox.y1, params.viewBox.x2, params.viewBox.y2);\n } else {\n this._viewBox.setValue(0, 0, this.width, this.height);\n }\n\n this.renderCount = 0;\n\n // // 没有传入xy就默认为0\n // this._x = params.x ?? DefaultConfig.X;\n // this._y = params.y ?? DefaultConfig.Y;\n // // 没有传入view的宽高则默认为window的宽高\n // this._viewWidth = params.viewWidth ?? this.window.width;\n // this._viewHeight = params.viewHeight ?? this.window.height;\n this._subView = !(this._viewBox.width() === this.width && this._viewBox.height() === this.height);\n // this._AABBBounds.set(this._x, this._y, this._viewWidth + this._x, this._viewHeight + this._y);\n // 背景色默认为纯白色\n this._background = params.background ?? DefaultConfig.BACKGROUND;\n\n // 创建一个默认layer图层\n // this.appendChild(new Layer(this, this.global, this.window, { main: true }));\n this.appendChild(this.layerService.createLayer(this, { main: true }));\n\n this.nextFrameRenderLayerSet = new Set();\n this.willNextFrameRender = false;\n this.stage = this;\n this.renderStyle = params.renderStyle;\n\n if (this.global.supportEvent) {\n this.eventSystem = new EventSystem({\n targetElement: this.window,\n resolution: this.window.dpr || this.global.devicePixelRatio,\n rootNode: this as any,\n global: this.global,\n viewport: {\n viewBox: this._viewBox,\n get x(): number {\n return this.viewBox.x1;\n },\n get y(): number {\n return this.viewBox.y1;\n },\n get width(): number {\n return this.viewBox.width();\n },\n get height(): number {\n return this.viewBox.height();\n }\n }\n });\n }\n\n // this.autoRender = params.autoRender;\n if (params.autoRender) {\n this.enableAutoRender();\n }\n // 默认不开启dirtyBounds\n if (params.disableDirtyBounds === false) {\n this.enableDirtyBounds();\n }\n\n if (params.enableHtmlAttribute) {\n this.enableHtmlAttribute(params.enableHtmlAttribute);\n }\n\n params.enableLayout && this.enableLayout();\n this.hooks.beforeRender.tap('constructor', this.beforeRender);\n this.hooks.afterRender.tap('constructor', this.afterRender);\n this._beforeRender = params.beforeRender;\n this._afterRender = params.afterRender;\n this.ticker = params.ticker || defaultTicker;\n this.supportInteractiveLayer = params.interactiveLayer !== false;\n this.timeline = new DefaultTimeline();\n this.ticker.addTimeline(this.timeline);\n this.timeline.pause();\n this.optmize(params.optimize);\n }\n\n // 优化策略\n optmize(params?: IOptimizeType) {\n this.optmizeRender(params?.skipRenderWithOutRange);\n }\n\n // 优化渲染\n protected optmizeRender(skipRenderWithOutRange: boolean = true) {\n if (!skipRenderWithOutRange) {\n return;\n }\n // 不在视口内的时候,跳过渲染\n this._skipRender = this.window.isVisible() ? 0 : 1;\n this.window.onVisibleChange(visible => {\n if (visible) {\n if (this.dirtyBounds) {\n this.dirtyBounds.setValue(0, 0, this._viewBox.width(), this._viewBox.height());\n }\n if (this._skipRender > 1) {\n this.renderNextFrame();\n }\n this._skipRender = 0;\n } else {\n this._skipRender = 1;\n }\n });\n }\n\n getTimeline() {\n return this.timeline;\n }\n\n get3dOptions(options: IOption3D) {\n const {\n center = { x: this.width / 2, y: this.height / 2, z: 0, dx: 0, dy: 0, dz: 0 },\n light = {},\n alpha = 0,\n beta = 0,\n camera,\n fieldRatio = 1,\n fieldDepth\n } = options;\n\n return {\n ...options,\n center,\n light,\n alpha,\n beta,\n camera,\n fieldRatio,\n fieldDepth\n };\n }\n\n set3dOptions(options: IOption3D) {\n this.option3d = options;\n const options3d = this.get3dOptions(options);\n const { light, center, camera, alpha, beta, fieldRatio, fieldDepth } = options3d;\n const { dir = [1, 1, -1], color = 'white', ambient } = light;\n\n const centerX = (center.x ?? this.width / 2) + (center.dx ?? 0);\n const centerY = (center.y ?? this.height / 2) + (center.dy ?? 0);\n const centerZ = (center.z ?? 0) + (center.dz ?? 0);\n const centerVec3: vec3 = [centerX, centerY, centerZ];\n const z = 1;\n let cameraX = 0;\n let cameraY = 0;\n let cameraZ = 0;\n if (!camera) {\n cameraX = Math.sin(alpha) + centerX;\n cameraY = Math.sin(beta) + centerY;\n cameraZ = Math.cos(alpha) * Math.cos(beta) * z;\n }\n\n this.light = new DirectionalLight(dir, color, ambient);\n const cameraParams = {\n left: 0,\n right: this.width,\n top: 0,\n bottom: this.height,\n fieldRatio: fieldRatio,\n fieldDepth,\n viewParams: {\n pos: [cameraX, cameraY, cameraZ] as vec3,\n center: centerVec3,\n up: [0, 1, 0] as vec3\n }\n };\n if (this.camera) {\n this.camera.params = cameraParams;\n } else {\n this.camera = new OrthoCamera(cameraParams);\n }\n\n if (options.enableView3dTransform) {\n this.enableView3dTransform();\n }\n }\n\n protected beforeRender = (stage: IStage) => {\n this._beforeRender && this._beforeRender(stage);\n };\n\n protected afterRender = (stage: IStage) => {\n this.renderCount++;\n this._afterRender && this._afterRender(stage);\n this._afterNextRenderCbs && this._afterNextRenderCbs.forEach(cb => cb(stage));\n this._afterNextRenderCbs = null;\n };\n\n setBeforeRender(cb: (stage: IStage) => void) {\n this._beforeRender = cb;\n }\n\n setAfterRender(cb: (stage: IStage) => void) {\n this._afterRender = cb;\n }\n\n afterNextRender(cb: (stage: IStage) => void) {\n if (!this._afterNextRenderCbs) {\n this._afterNextRenderCbs = [];\n }\n this._afterNextRenderCbs.push(cb);\n }\n\n enableView3dTransform() {\n if (this.view3dTranform) {\n return;\n }\n this.view3dTranform = true;\n this.pluginService.register(new ViewTransform3dPlugin());\n }\n\n disableView3dTranform() {\n if (!this.view3dTranform) {\n return;\n }\n this.view3dTranform = false;\n this.pluginService.findPluginsByName('ViewTransform3dPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n\n enableAutoRender() {\n if (this.autoRender) {\n return;\n }\n this.autoRender = true;\n this.pluginService.register(new AutoRenderPlugin());\n }\n disableAutoRender() {\n if (!this.autoRender) {\n return;\n }\n this.autoRender = false;\n this.pluginService.findPluginsByName('AutoRenderPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n enableIncrementalAutoRender() {\n if (this.increaseAutoRender) {\n return;\n }\n this.increaseAutoRender = true;\n this.pluginService.register(new IncrementalAutoRenderPlugin());\n }\n disableIncrementalAutoRender() {\n if (!this.increaseAutoRender) {\n return;\n }\n this.increaseAutoRender = false;\n this.pluginService.findPluginsByName('IncrementalAutoRenderPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n enableDirtyBounds() {\n if (this.dirtyBounds) {\n return;\n }\n this.dirtyBounds = new Bounds();\n let plugin = this.pluginService.findPluginsByName('DirtyBoundsPlugin')[0];\n if (!plugin) {\n plugin = new DirtyBoundsPlugin();\n this.pluginService.register(plugin);\n }\n plugin.activate(this.pluginService);\n }\n disableDirtyBounds() {\n if (!this.dirtyBounds) {\n return;\n }\n this.dirtyBounds = null;\n this.pluginService.findPluginsByName('DirtyBoundsPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n enableLayout() {\n if (this._enableLayout) {\n return;\n }\n this._enableLayout = true;\n this.pluginService.register(new FlexLayoutPlugin());\n }\n disableLayout() {\n if (!this._enableLayout) {\n return;\n }\n this._enableLayout = false;\n this.pluginService.findPluginsByName('FlexLayoutPlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n enableHtmlAttribute(container?: any) {\n if (this.htmlAttribute) {\n return;\n }\n this.htmlAttribute = container;\n this.pluginService.register(new HtmlAttributePlugin());\n }\n disableHtmlAttribute() {\n if (!this.htmlAttribute) {\n return;\n }\n this.htmlAttribute = false;\n this.pluginService.findPluginsByName('HtmlAttributePlugin').forEach(plugin => {\n plugin.deactivate(this.pluginService);\n });\n }\n\n // /**\n // * stage的appendChild,add\n // * @param node\n // * @returns\n // */\n // appendChild<T extends Node>(node: T): T | null {\n // const layer = this.at(0);\n // if (!layer) {\n // return null;\n // }\n // return layer.appendChild<T>(node);\n // }\n\n protected tryUpdateAABBBounds(): AABBBounds {\n const viewBox = this._viewBox;\n this._AABBBounds.setValue(viewBox.x1, viewBox.y1, viewBox.x2, viewBox.y2);\n return this._AABBBounds;\n }\n\n combineLayer(ILayer1: ILayer, ILayer2: ILayer): ILayer {\n throw new Error('暂不支持');\n }\n // 如果传入CanvasId,如果存在相同Id,说明这两个图层使用相同的Canvas绘制\n // 但需要注意的是依然是两个图层(用于解决Table嵌入ChartSpace不影响Table的绘制)\n createLayer(canvasId?: string): ILayer {\n // 创建一个默认layer图层\n const layer = this.layerService.createLayer(this, {\n main: false,\n canvasId\n });\n this.appendChild(layer);\n return layer;\n // const layer = new Layer(this, this.global, this.window, {\n // main: false,\n // canvasId\n // });\n // this.appendChild(layer);\n // return layer;\n }\n sortLayer(cb: (ILayer1: ILayer, layer2: ILayer) => number): void {\n const children = this.children;\n children.sort(cb);\n this.removeAllChild();\n children.forEach(c => {\n this.appendChild(c);\n });\n }\n removeLayer(ILayerId: number): ILayer | false {\n return this.removeChild(this.findChildByUid(ILayerId) as IGraphic) as ILayer;\n }\n tryInitInteractiveLayer() {\n // TODO:顺序可能会存在问题\n // 支持交互层,且没有创建过,那就创建\n if (this.supportInteractiveLayer && !this.interactiveLayer) {\n this.interactiveLayer = this.createLayer();\n this.interactiveLayer.name = '_builtin_interactive';\n this.nextFrameRenderLayerSet.add(this.interactiveLayer as any); // to be fixed\n }\n // this.interactiveLayer.afterDraw(l => {\n // l.removeAllChild();\n // });\n }\n\n clearViewBox(color?: string) {\n this.window.clearViewBox(this._viewBox, color);\n }\n\n render(layers?: ILayer[], params?: Partial<IDrawContext>): void {\n this.ticker.start();\n this.timeline.resume();\n if (!this._skipRender) {\n this.lastRenderparams = params;\n this.hooks.beforeRender.call(this);\n (layers || this).forEach<ILayer>((layer, i) => {\n layer.render(\n {\n renderService: this.renderService,\n background: layer === this.defaultLayer ? this.background : undefined,\n updateBounds: !!this.dirtyBounds\n },\n { renderStyle: this.renderStyle, ...params }\n );\n });\n this.combineLayersToWindow();\n this.nextFrameRenderLayerSet.clear();\n this.hooks.afterRender.call(this);\n }\n this._skipRender && this._skipRender++;\n }\n\n protected combineLayersToWindow() {\n this.forEach<ILayer>((layer, i) => {\n layer.combineTo(this.window, {\n clear: i === 0,\n x: this.x,\n y: this.y,\n width: this.viewWidth,\n height: this.viewHeight,\n renderService: this.renderService,\n background: layer === this.defaultLayer ? this.background : undefined,\n updateBounds: !!this.dirtyBounds\n });\n });\n }\n\n renderNextFrame(layers?: ILayer[]): void {\n // 性能优化,避免重复add\n if (this.nextFrameRenderLayerSet.size !== this.childrenCount) {\n (layers || this).forEach<ILayer>((layer: any) => {\n this.nextFrameRenderLayerSet.add(layer);\n });\n }\n if (!this.willNextFrameRender) {\n this.willNextFrameRender = true;\n this.global.getRequestAnimationFrame()(() => {\n this._doRenderInThisFrame(), (this.willNextFrameRender = false);\n });\n }\n }\n\n _doRenderInThisFrame() {\n this.timeline.resume();\n this.ticker.start();\n if (this.nextFrameRenderLayerSet.size && !this._skipRender) {\n this.hooks.beforeRender.call(this);\n this.forEach((layer: Layer) => {\n if (this.nextFrameRenderLayerSet.has(layer)) {\n layer.render(\n {\n renderService: this.renderService,\n background: layer === this.defaultLayer ? this.background : undefined,\n updateBounds: !!this.dirtyBounds\n },\n { renderStyle: this.renderStyle, ...(this.lastRenderparams || {}) }\n );\n }\n });\n this.combineLayersToWindow();\n this.hooks.afterRender.call(this);\n this.nextFrameRenderLayerSet.clear();\n }\n this._skipRender && this._skipRender++;\n }\n\n resizeWindow(w: number, h: number, rerender: boolean = true) {\n this.window.resize(w, h);\n rerender && this.render();\n }\n\n /**\n * 语法糖,如果viewBox和window宽高一样的话,那么会同时缩放window和viewBox\n * @param w\n * @param h\n * @param rerender\n */\n resize(w: number, h: number, rerender: boolean = true): void {\n this.window.resize(w, h);\n this.forEachChildren<ILayer>(c => {\n c.resize(w, h);\n });\n // 如果不是子图的stage,那么认为用户也想要resize view\n if (!this._subView) {\n this.viewBox.setValue(this.viewBox.x1, this.viewBox.y1, this.viewBox.x1 + w, this.viewBox.y1 + h);\n }\n // 设置camera\n // this.camera && (this.camera.params = { ...this.camera.params, right: this.width, bottom: this.height });\n this.camera && this.option3d && this.set3dOptions(this.option3d);\n rerender && this.render();\n }\n resizeView(w: number, h: number, rerender: boolean = true) {\n this.viewBox.setValue(this.viewBox.x1, this.viewBox.y1, this.viewBox.x1 + w, this.viewBox.y1 + h);\n this.forEachChildren<ILayer>(c => {\n c.resizeView(w, h);\n });\n // 设置camera\n this.camera && (this.camera.params = { ...this.camera.params, right: this.width, bottom: this.height });\n rerender && this.render();\n }\n setViewBox(viewBox: IBoundsLike, rerender: boolean): void;\n setViewBox(x: number, y: number, w: number, h: number, rerender: boolean): void;\n setViewBox(x: number | IBoundsLike, y: number | boolean, w?: number, h?: number, rerender?: boolean): void {\n let isRerender: boolean = true;\n\n if (typeof x === 'object') {\n this.viewBox.setValue(x.x1, x.y1, x.x2, x.y2);\n if (y === false) {\n isRerender = false;\n }\n } else {\n this.viewBox.setValue(x, y as number, x + w, (y as number) + h);\n\n if (rerender === false) {\n isRerender = false;\n }\n }\n\n this.forEachChildren<ILayer>(c => {\n c.resizeView(this.viewBox.width(), this.viewBox.height());\n });\n isRerender && this.render();\n }\n setDpr(dpr: number, rerender: boolean = true): void {\n // this.window.setDpr(dpr);\n this.forEachChildren<ILayer>(c => {\n c.setDpr(dpr);\n });\n\n rerender && this.render();\n }\n setOrigin(x: number, y: number): void {\n throw new Error('暂不支持');\n }\n export(type: IExportType): HTMLCanvasElement | ImageData {\n throw new Error('暂不支持');\n }\n pick(x: number, y: number): { graphic: IGraphic | null; group: IGroup | null } | false {\n // 暂时不提供layer的pick\n const result = this.pickerService.pick(this.children as unknown as IGraphic[], new Point(x, y), {\n bounds: this.AABBBounds\n });\n if (result?.graphic || result?.group) {\n return result;\n }\n return false;\n }\n\n // 动画相关\n startAnimate(t: number): void {\n throw new Error('暂不支持');\n }\n setToFrame(t: number): void {\n throw new Error('暂不支持');\n }\n\n release() {\n super.release();\n this.eventSystem && this.eventSystem.release();\n this.pluginService.release();\n this.forEach(layer => {\n layer.release();\n });\n this.interactiveLayer && this.interactiveLayer.release();\n this.window.release();\n }\n\n setStage(stage?: IStage) {\n return;\n // this.stage = this;\n // this.forEachChildren(item => {\n // (item as Layer).setStage(this);\n // });\n }\n\n /**\n * 添加dirty区域,会修改参数b\n * @param b\n * @param matrix\n */\n dirty(b: IBounds, matrix?: IMatrix) {\n if (matrix) {\n b.transformWithMatrix(matrix);\n }\n if (this.dirtyBounds.empty()) {\n this.dirtyBounds.setValue(b.x1, b.y1, b.x2, b.y2);\n }\n this.dirtyBounds.union(b);\n }\n\n getLayer(name: string): undefined | ILayer {\n const layer = this.children.filter(layer => layer.name === name);\n return layer[0] as ILayer;\n }\n\n renderTo(window: IWindow, params: { x: number; y: number; width: number; height: number }) {\n this.forEachChildren<ILayer>((layer, i) => {\n layer.drawTo(window, {\n ...params,\n renderService: this.renderService,\n background: layer === this.defaultLayer ? this.background : undefined,\n clear: i === 0, // 第一个layer需要clear\n updateBounds: !!this.dirtyBounds\n });\n });\n }\n\n /**\n * 渲染到新的window上去\n * @param fullImage 是否是全量的image,因为可能之前的window有一部分场景树超过window的帧缓冲了\n * @returns\n */\n renderToNewWindow(fullImage: boolean = true, viewBox?: IAABBBounds): IWindow {\n const window = container.get<IWindow>(VWindow);\n if (fullImage) {\n window.create({\n width: this.viewWidth,\n height: this.viewHeight,\n dpr: this.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n } else {\n const width = viewBox ? viewBox.width() : Math.min(this.viewWidth, this.window.width - this.x);\n const height = viewBox ? viewBox.height() : Math.min(this.viewHeight, this.window.height - this.y);\n window.create({\n width,\n height,\n dpr: this.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n }\n\n const x = viewBox ? -viewBox.x1 : 0;\n const y = viewBox ? -viewBox.y1 : 0;\n this.renderTo(window, {\n x,\n y,\n width: viewBox ? viewBox.x2 : window.width,\n height: viewBox ? viewBox.y2 : window.height\n });\n return window;\n }\n\n toCanvas(fullImage: boolean = true, viewBox?: IAABBBounds): HTMLCanvasElement | null {\n const window = this.renderToNewWindow(fullImage, viewBox);\n const c = window.getNativeHandler();\n if (c.nativeCanvas) {\n return c.nativeCanvas;\n }\n return null;\n }\n\n setCursor(mode?: string): void {\n this._cursor = mode;\n this.eventSystem.setCursor(mode);\n }\n\n getCursor() {\n return this._cursor;\n }\n}\n"]}
@@ -45,4 +45,10 @@ export declare class DefaultWindow implements IWindow {
45
45
  getBoundingClientRect(): IDomRectLike;
46
46
  getContainer(): HTMLElement | any;
47
47
  clearViewBox(viewBox: IBoundsLike, color?: string): void;
48
+ isVisible(bbox?: IBoundsLike): boolean;
49
+ onVisibleChange(cb: (currentVisible: boolean) => void): void;
50
+ getTopLeft(baseWindow?: boolean): {
51
+ top: number;
52
+ left: number;
53
+ };
48
54
  }
package/es/core/window.js CHANGED
@@ -56,7 +56,7 @@ let DefaultWindow = class {
56
56
  const global = this.global;
57
57
  if (!global.env || this.actived) return;
58
58
  container.getNamed(WindowHandlerContribution, global.env).configure(this, global),
59
- this.actived = !0;
59
+ this.actived = !0, this._handler;
60
60
  }
61
61
  get style() {
62
62
  return this._handler.getStyle();
@@ -112,6 +112,15 @@ let DefaultWindow = class {
112
112
  clearViewBox(viewBox, color) {
113
113
  this._handler.clearViewBox(viewBox, color);
114
114
  }
115
+ isVisible(bbox) {
116
+ return this._handler.isVisible(bbox);
117
+ }
118
+ onVisibleChange(cb) {
119
+ return this._handler.onVisibleChange(cb);
120
+ }
121
+ getTopLeft(baseWindow) {
122
+ return this._handler.getTopLeft(baseWindow);
123
+ }
115
124
  };
116
125
 
117
126
  __decorate([ postConstruct(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], DefaultWindow.prototype, "postInit", null),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/window.ts"],"names":[],"mappings":"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","file":"window.js","sourcesContent":["import { inject, injectable, postConstruct } from 'inversify';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { Generator } from '../common/generator';\nimport type {\n ICanvas,\n IContext2d,\n IDomRectLike,\n IGlobal,\n IWindow,\n IWindowHandlerContribution,\n IWindowParams\n} from '../interface';\nimport { container } from '../container';\nimport { SyncHook } from '../tapable';\nimport { VGlobal } from '../constants';\n\nexport const VWindow = Symbol.for('VWindow');\n\nexport const WindowHandlerContribution = Symbol.for('WindowHandlerContribution');\n\n/**\n * 窗口\n * 对于浏览器,就是管理某个Stage影响的Canvas\n * 对于原生,就是管理这个系统窗口\n */\n@injectable()\nexport class DefaultWindow implements IWindow {\n protected _width: number;\n protected _height: number;\n protected _handler: IWindowHandlerContribution;\n\n hooks = {\n onChange: new SyncHook<[number, number, number, number]>(['x', 'y', 'width', 'height'])\n };\n\n // 父窗口(容器),对于浏览器来说就是container dom\n declare parent: Window;\n // 窗口的大小\n get width(): number {\n if (this._handler) {\n const wh = this._handler.getWH();\n return (this._width = wh.width);\n }\n return this._width;\n }\n get height(): number {\n if (this._handler) {\n const wh = this._handler.getWH();\n return (this._height = wh.height);\n }\n return this._height;\n }\n // 窗口的位置\n // declare x: number;\n // declare y: number;\n declare _uid: number;\n // 窗口操作配置\n declare resizable: boolean;\n declare minHeight: number;\n declare minWidth: number;\n declare maxHeight: number;\n declare maxWidth: number;\n // 窗口配置\n declare title: string;\n\n /* 浏览器环境配置 */\n // 这是主体canvas,对于单图层来说就是绘图canvas\n // 对于多图层画布来说,就是用户传入的或者默认的一个canvas\n declare mainCanvas: ICanvas;\n declare layerCanvas: ICanvas[];\n declare actived: boolean;\n get dpr(): number {\n return this._handler.getDpr();\n }\n\n constructor(\n @inject(VGlobal) public readonly global: IGlobal // @inject(ContributionProvider) // @named(WindowHandlerContribution) // protected readonly contributions: ContributionProvider<IWindowHandlerContribution>\n ) {\n this._uid = Generator.GenAutoIncrementId();\n }\n\n @postConstruct()\n protected postInit() {\n this.global.hooks.onSetEnv.tap('window', () => {\n this.active();\n });\n this.active();\n }\n\n protected active() {\n const global = this.global;\n if (!global.env || this.actived) {\n return;\n }\n const handler = container.getNamed<IWindowHandlerContribution>(WindowHandlerContribution, global.env);\n handler.configure(this, global);\n // this.contributions.getContributions().forEach((handlerContribution) => {\n // handlerContribution.configure(this, this.global);\n // });\n this.actived = true;\n }\n\n get style(): CSSStyleDeclaration | Record<string, any> {\n return this._handler.getStyle();\n }\n\n set style(style: CSSStyleDeclaration | Record<string, any>) {\n this._handler.setStyle(style);\n }\n\n create(params: IWindowParams): void {\n // 通过handler创建窗口\n this._handler.createWindow(params);\n\n // 使用window的wh\n const windowWH = this._handler.getWH();\n this._width = windowWH.width;\n this._height = windowWH.height;\n // 使用window的xy\n // const windowXY = this._handler.getXY();\n // this.x = windowXY.x;\n // this.y = windowXY.y;\n // 使用window的title\n this.title = this._handler.getTitle();\n this.resizable = true;\n }\n\n setWindowHandler(handler: IWindowHandlerContribution) {\n this._handler = handler;\n }\n\n setDpr(dpr: number): void {\n return this._handler.setDpr(dpr);\n }\n resize(w: number, h: number): void {\n return this._handler.resizeWindow(w, h);\n }\n configure(): void {\n throw new Error('暂不支持');\n }\n release(): void {\n return this._handler.releaseWindow();\n }\n getContext(): IContext2d {\n return this._handler.getContext();\n }\n getNativeHandler(): ICanvas {\n return this._handler.getNativeHandler();\n }\n getImageBuffer(type?: string): any {\n if (!this._handler.getImageBuffer) {\n return null;\n }\n return this._handler.getImageBuffer(type);\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n return this._handler.addEventListener(type, listener, options);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n return this._handler.removeEventListener(type, listener, options);\n }\n\n dispatchEvent(event: any): boolean {\n return this._handler.dispatchEvent(event);\n }\n\n getBoundingClientRect(): IDomRectLike {\n return this._handler.getBoundingClientRect();\n }\n\n getContainer(): HTMLElement | any {\n return this._handler.container;\n }\n\n clearViewBox(viewBox: IBoundsLike, color?: string) {\n this._handler.clearViewBox(viewBox, color);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/window.ts"],"names":[],"mappings":"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","file":"window.js","sourcesContent":["import { inject, injectable, postConstruct } from 'inversify';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { Generator } from '../common/generator';\nimport type {\n ICanvas,\n IContext2d,\n IDomRectLike,\n IGlobal,\n IWindow,\n IWindowHandlerContribution,\n IWindowParams\n} from '../interface';\nimport { container } from '../container';\nimport { SyncHook } from '../tapable';\nimport { VGlobal } from '../constants';\n\nexport const VWindow = Symbol.for('VWindow');\n\nexport const WindowHandlerContribution = Symbol.for('WindowHandlerContribution');\n\n/**\n * 窗口\n * 对于浏览器,就是管理某个Stage影响的Canvas\n * 对于原生,就是管理这个系统窗口\n */\n@injectable()\nexport class DefaultWindow implements IWindow {\n protected _width: number;\n protected _height: number;\n protected _handler: IWindowHandlerContribution;\n\n hooks = {\n onChange: new SyncHook<[number, number, number, number]>(['x', 'y', 'width', 'height'])\n };\n\n // 父窗口(容器),对于浏览器来说就是container dom\n declare parent: Window;\n // 窗口的大小\n get width(): number {\n if (this._handler) {\n const wh = this._handler.getWH();\n return (this._width = wh.width);\n }\n return this._width;\n }\n get height(): number {\n if (this._handler) {\n const wh = this._handler.getWH();\n return (this._height = wh.height);\n }\n return this._height;\n }\n // 窗口的位置\n // declare x: number;\n // declare y: number;\n declare _uid: number;\n // 窗口操作配置\n declare resizable: boolean;\n declare minHeight: number;\n declare minWidth: number;\n declare maxHeight: number;\n declare maxWidth: number;\n // 窗口配置\n declare title: string;\n\n /* 浏览器环境配置 */\n // 这是主体canvas,对于单图层来说就是绘图canvas\n // 对于多图层画布来说,就是用户传入的或者默认的一个canvas\n declare mainCanvas: ICanvas;\n declare layerCanvas: ICanvas[];\n declare actived: boolean;\n get dpr(): number {\n return this._handler.getDpr();\n }\n\n constructor(\n @inject(VGlobal) public readonly global: IGlobal // @inject(ContributionProvider) // @named(WindowHandlerContribution) // protected readonly contributions: ContributionProvider<IWindowHandlerContribution>\n ) {\n this._uid = Generator.GenAutoIncrementId();\n }\n\n @postConstruct()\n protected postInit() {\n this.global.hooks.onSetEnv.tap('window', () => {\n this.active();\n });\n this.active();\n }\n\n protected active() {\n const global = this.global;\n if (!global.env || this.actived) {\n return;\n }\n const handler = container.getNamed<IWindowHandlerContribution>(WindowHandlerContribution, global.env);\n handler.configure(this, global);\n // this.contributions.getContributions().forEach((handlerContribution) => {\n // handlerContribution.configure(this, this.global);\n // });\n this.actived = true;\n this._handler;\n }\n\n get style(): CSSStyleDeclaration | Record<string, any> {\n return this._handler.getStyle();\n }\n\n set style(style: CSSStyleDeclaration | Record<string, any>) {\n this._handler.setStyle(style);\n }\n\n create(params: IWindowParams): void {\n // 通过handler创建窗口\n this._handler.createWindow(params);\n\n // 使用window的wh\n const windowWH = this._handler.getWH();\n this._width = windowWH.width;\n this._height = windowWH.height;\n // 使用window的xy\n // const windowXY = this._handler.getXY();\n // this.x = windowXY.x;\n // this.y = windowXY.y;\n // 使用window的title\n this.title = this._handler.getTitle();\n this.resizable = true;\n }\n\n setWindowHandler(handler: IWindowHandlerContribution) {\n this._handler = handler;\n }\n\n setDpr(dpr: number): void {\n return this._handler.setDpr(dpr);\n }\n resize(w: number, h: number): void {\n return this._handler.resizeWindow(w, h);\n }\n configure(): void {\n throw new Error('暂不支持');\n }\n release(): void {\n return this._handler.releaseWindow();\n }\n getContext(): IContext2d {\n return this._handler.getContext();\n }\n getNativeHandler(): ICanvas {\n return this._handler.getNativeHandler();\n }\n getImageBuffer(type?: string): any {\n if (!this._handler.getImageBuffer) {\n return null;\n }\n return this._handler.getImageBuffer(type);\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n return this._handler.addEventListener(type, listener, options);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n return this._handler.removeEventListener(type, listener, options);\n }\n\n dispatchEvent(event: any): boolean {\n return this._handler.dispatchEvent(event);\n }\n\n getBoundingClientRect(): IDomRectLike {\n return this._handler.getBoundingClientRect();\n }\n\n getContainer(): HTMLElement | any {\n return this._handler.container;\n }\n\n clearViewBox(viewBox: IBoundsLike, color?: string) {\n this._handler.clearViewBox(viewBox, color);\n }\n\n isVisible(bbox?: IBoundsLike): boolean {\n return this._handler.isVisible(bbox);\n }\n\n onVisibleChange(cb: (currentVisible: boolean) => void) {\n return this._handler.onVisibleChange(cb);\n }\n\n getTopLeft(baseWindow?: boolean): { top: number; left: number } {\n return this._handler.getTopLeft(baseWindow);\n }\n}\n"]}
package/es/create.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,MAAM,UAAU,WAAW,CAAC,MAA6B;IACvD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAE3B,CAAC","file":"create.js","sourcesContent":["import { Stage } from './core/stage';\nimport { IStageParams } from './interface/stage';\n\nexport function createStage(params: Partial<IStageParams>) {\n return new Stage(params);\n // return container.get<(params: Partial<IStageParams>) => IStage>(StageFactory)(params);\n}\n"]}
1
+ {"version":3,"sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,MAAM,UAAU,WAAW,CAAC,MAA6B;IACvD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAE3B,CAAC","file":"create.js","sourcesContent":["import { Stage } from './core/stage';\nimport { IStageParams } from './interface/stage';\n\nexport function createStage(params: Partial<IStageParams>) {\n return new Stage(params);\n // return container.get<(params: Partial<IStageParams>) => IStage>(StageFactory)(params);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/event/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC","file":"constant.js","sourcesContent":["export const WILDCARD = '*';\n"]}
1
+ {"version":3,"sources":["../src/event/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC","file":"constant.js","sourcesContent":["export const WILDCARD = '*';\n"]}
@@ -149,15 +149,16 @@ export class EventManager {
149
149
  this.dispatch.emit(type || e.type, e);
150
150
  }
151
151
  mapEvent(e) {
152
- var _a;
152
+ var _a, _b, _c, _d, _e;
153
153
  if (!this.rootTarget) return;
154
154
  const mappers = this.mappingTable[e.type];
155
155
  let target;
156
156
  const cacheKey = `${e.canvasX}-${e.canvasY}`;
157
- if ((null === (_a = this._prePointTargetCache) || void 0 === _a ? void 0 : _a[cacheKey]) ? target = this._prePointTargetCache[cacheKey] : (target = this.pickTarget(e.canvasX, e.canvasY),
158
- this._prePointTargetCache = {
159
- [cacheKey]: target
160
- }), mappers) for (let i = 0, j = mappers.length; i < j; i++) mappers[i].fn(e, target); else console.warn(`[EventManager]: Event mapping not defined for ${e.type}`);
157
+ if ((null === (_a = this._prePointTargetCache) || void 0 === _a ? void 0 : _a[cacheKey]) && (null === (_c = null === (_b = this._prePointTargetCache) || void 0 === _b ? void 0 : _b[cacheKey]) || void 0 === _c ? void 0 : _c.stage.renderCount) === (null === (_d = this._prePointTargetCache) || void 0 === _d ? void 0 : _d.stageRenderCount) ? target = this._prePointTargetCache[cacheKey] : (target = this.pickTarget(e.canvasX, e.canvasY, e),
158
+ e.pickParams || (this._prePointTargetCache = {
159
+ [cacheKey]: target,
160
+ stageRenderCount: null !== (_e = null == target ? void 0 : target.stage.renderCount) && void 0 !== _e ? _e : -1
161
+ })), mappers) for (let i = 0, j = mappers.length; i < j; i++) mappers[i].fn(e, target); else console.warn(`[EventManager]: Event mapping not defined for ${e.type}`);
161
162
  }
162
163
  propagate(e, type) {
163
164
  if (!e.target) return;
@@ -194,13 +195,13 @@ export class EventManager {
194
195
  createPointerEvent(from, type, target) {
195
196
  const event = this.allocateEvent(FederatedPointerEvent);
196
197
  return this.copyPointerData(from, event), this.copyMouseData(from, event), this.copyData(from, event),
197
- event.nativeEvent = from.nativeEvent, event.originalEvent = from, event.target = target || this.pickTarget(event.global.x, event.global.y),
198
+ event.nativeEvent = from.nativeEvent, event.originalEvent = from, event.target = target || this.pickTarget(event.global.x, event.global.y, event),
198
199
  "string" == typeof type && (event.type = type), event;
199
200
  }
200
201
  createWheelEvent(from, target) {
201
202
  const event = this.allocateEvent(FederatedWheelEvent);
202
203
  return this.copyWheelData(from, event), this.copyMouseData(from, event), this.copyData(from, event),
203
- event.nativeEvent = from.nativeEvent, event.originalEvent = from, event.target = target || this.pickTarget(event.global.x, event.global.y),
204
+ event.nativeEvent = from.nativeEvent, event.originalEvent = from, event.target = target || this.pickTarget(event.global.x, event.global.y, event),
204
205
  event;
205
206
  }
206
207
  clonePointerEvent(from, type) {
@@ -230,7 +231,7 @@ export class EventManager {
230
231
  copyData(from, to) {
231
232
  to.isTrusted = from.isTrusted, to.srcElement = from.srcElement, to.timeStamp = clock.now(),
232
233
  to.type = from.type, to.detail = from.detail, to.view = from.view, to.which = from.which,
233
- to.layer.copyFrom(from.layer), to.page.copyFrom(from.page);
234
+ to.layer.copyFrom(from.layer), to.page.copyFrom(from.page), to.pickParams = from.pickParams;
234
235
  }
235
236
  trackingData(id) {
236
237
  return this.mappingState.trackingData[id] || (this.mappingState.trackingData[id] = {
@@ -258,17 +259,18 @@ export class EventManager {
258
259
  once: !0
259
260
  }), listeners.fn.call(listeners.context, e); else for (let i = 0, j = listeners.length; i < j && !e.propagationImmediatelyStopped; i++) listeners[i].once && e.currentTarget.removeEventListener(type, listeners[i].fn, {
260
261
  once: !0
261
- }), listeners[i].fn.call(listeners[i].context, e); else this.emitDelegation(e, type);
262
+ }), listeners[i].fn.call(listeners[i].context, e);
263
+ this.emitDelegation(e, type);
262
264
  }
263
265
  emitDelegation(e, type) {
264
266
  const listeners = e.currentTarget._events[WILDCARD];
265
267
  if (listeners) if ("fn" in listeners) listeners.fn.call(listeners.context, e, type); else for (let i = 0, j = listeners.length; i < j && !e.propagationImmediatelyStopped; i++) listeners[i].fn.call(listeners[i].context, e, type);
266
268
  }
267
- pickTarget(x, y) {
269
+ pickTarget(x, y, e) {
268
270
  let target;
269
271
  const pickResult = this.rootTarget.pick(x, y);
270
272
  return target = pickResult && pickResult.graphic ? pickResult.graphic : pickResult && pickResult.group ? pickResult.group : x >= 0 && x <= get(this.rootTarget, "width") && y >= 0 && y <= get(this.rootTarget, "height") ? this.rootTarget : null,
271
- target;
273
+ e && (e.pickParams = pickResult.params), target;
272
274
  }
273
275
  }
274
276
  //# sourceMappingURL=event-manager.js.map