@visactor/vrender-core 0.19.6-alpha.3 → 0.19.7-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (760) hide show
  1. package/cjs/allocator/bounds-allocate.js +1 -1
  2. package/cjs/allocator/bounds-allocate.js.map +1 -1
  3. package/cjs/allocator/canvas-allocate.js +9 -11
  4. package/cjs/allocator/canvas-allocate.js.map +1 -1
  5. package/cjs/allocator/graphic-allocate.js +9 -5
  6. package/cjs/allocator/graphic-allocate.js.map +1 -1
  7. package/cjs/allocator/matrix-allocate.js +6 -2
  8. package/cjs/allocator/matrix-allocate.js.map +1 -1
  9. package/cjs/animate/Ticker/default-ticker.js +14 -25
  10. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  11. package/cjs/animate/animate.js +7 -8
  12. package/cjs/animate/animate.js.map +1 -1
  13. package/cjs/animate/custom-animate.d.ts +1 -0
  14. package/cjs/animate/custom-animate.js +82 -67
  15. package/cjs/animate/custom-animate.js.map +1 -1
  16. package/cjs/animate/easing.js +8 -19
  17. package/cjs/animate/easing.js.map +1 -1
  18. package/cjs/animate/morphing.js +23 -20
  19. package/cjs/animate/morphing.js.map +1 -1
  20. package/cjs/application.js +1 -7
  21. package/cjs/application.js.map +1 -1
  22. package/cjs/canvas/conical-gradient.js +5 -12
  23. package/cjs/canvas/conical-gradient.js.map +1 -1
  24. package/cjs/canvas/contributions/base-canvas.js +7 -19
  25. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  26. package/cjs/color-string/interpolate.js +3 -5
  27. package/cjs/color-string/interpolate.js.map +1 -1
  28. package/cjs/color-string/store.js +1 -3
  29. package/cjs/color-string/store.js.map +1 -1
  30. package/cjs/common/bounds-context.js +0 -1
  31. package/cjs/common/bounds-context.js.map +1 -1
  32. package/cjs/common/canvas-utils.js +6 -3
  33. package/cjs/common/canvas-utils.js.map +1 -1
  34. package/cjs/common/contribution-provider.js +0 -3
  35. package/cjs/common/contribution-provider.js.map +1 -1
  36. package/cjs/common/custom-path2d.js +1 -7
  37. package/cjs/common/custom-path2d.js.map +1 -1
  38. package/cjs/common/generator.js +1 -2
  39. package/cjs/common/generator.js.map +1 -1
  40. package/cjs/common/inversify/binding.js +0 -12
  41. package/cjs/common/inversify/binding.js.map +1 -1
  42. package/cjs/common/inversify/container.js +0 -4
  43. package/cjs/common/inversify/container.js.map +1 -1
  44. package/cjs/common/inversify/cotainer-module.js +0 -2
  45. package/cjs/common/inversify/cotainer-module.js.map +1 -1
  46. package/cjs/common/inversify/meta-data.js +0 -2
  47. package/cjs/common/inversify/meta-data.js.map +1 -1
  48. package/cjs/common/inversify/syntax/binding_in_syntax.js +0 -1
  49. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  50. package/cjs/common/inversify/syntax/binding_to_syntax.js +0 -1
  51. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  52. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +0 -1
  53. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  54. package/cjs/common/inversify-lite/bindings/binding.js +0 -14
  55. package/cjs/common/inversify-lite/bindings/binding.js.map +1 -1
  56. package/cjs/common/inversify-lite/container/container.js +46 -22
  57. package/cjs/common/inversify-lite/container/container.js.map +1 -1
  58. package/cjs/common/inversify-lite/container/container_module.js +0 -4
  59. package/cjs/common/inversify-lite/container/container_module.js.map +1 -1
  60. package/cjs/common/inversify-lite/container/lookup.js +0 -1
  61. package/cjs/common/inversify-lite/container/lookup.js.map +1 -1
  62. package/cjs/common/inversify-lite/planning/context.js +0 -4
  63. package/cjs/common/inversify-lite/planning/context.js.map +1 -1
  64. package/cjs/common/inversify-lite/planning/metadata.js +0 -2
  65. package/cjs/common/inversify-lite/planning/metadata.js.map +1 -1
  66. package/cjs/common/inversify-lite/planning/plan.js +0 -2
  67. package/cjs/common/inversify-lite/planning/plan.js.map +1 -1
  68. package/cjs/common/inversify-lite/planning/queryable_string.js +0 -1
  69. package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
  70. package/cjs/common/inversify-lite/planning/request.js +0 -8
  71. package/cjs/common/inversify-lite/planning/request.js.map +1 -1
  72. package/cjs/common/inversify-lite/planning/target.js +0 -7
  73. package/cjs/common/inversify-lite/planning/target.js.map +1 -1
  74. package/cjs/common/inversify-lite/resolution/instantiation.js +42 -16
  75. package/cjs/common/inversify-lite/resolution/instantiation.js.map +1 -1
  76. package/cjs/common/inversify-lite/scope/scope.js +29 -3
  77. package/cjs/common/inversify-lite/scope/scope.js.map +1 -1
  78. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +0 -1
  79. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  80. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -3
  81. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  82. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +0 -1
  83. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  84. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +0 -1
  85. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  86. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -2
  87. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  88. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +0 -1
  89. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  90. package/cjs/common/polygon.js +2 -1
  91. package/cjs/common/polygon.js.map +1 -1
  92. package/cjs/common/render-area.js +3 -2
  93. package/cjs/common/render-area.js.map +1 -1
  94. package/cjs/common/render-curve.js +8 -4
  95. package/cjs/common/render-curve.js.map +1 -1
  96. package/cjs/common/seg-context.js +3 -12
  97. package/cjs/common/seg-context.js.map +1 -1
  98. package/cjs/common/segment/basis.js +0 -13
  99. package/cjs/common/segment/basis.js.map +1 -1
  100. package/cjs/common/segment/common.js +2 -2
  101. package/cjs/common/segment/common.js.map +1 -1
  102. package/cjs/common/segment/curve/arc.js +2 -2
  103. package/cjs/common/segment/curve/arc.js.map +1 -1
  104. package/cjs/common/segment/curve/base.js +0 -4
  105. package/cjs/common/segment/curve/base.js.map +1 -1
  106. package/cjs/common/segment/curve/cubic-bezier.js +2 -2
  107. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  108. package/cjs/common/segment/curve/curve-context.js +0 -4
  109. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  110. package/cjs/common/segment/curve/ellipse.js +3 -3
  111. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  112. package/cjs/common/segment/curve/line.js +1 -2
  113. package/cjs/common/segment/curve/line.js.map +1 -1
  114. package/cjs/common/segment/curve/move.js +1 -2
  115. package/cjs/common/segment/curve/move.js.map +1 -1
  116. package/cjs/common/segment/curve/path.js +0 -2
  117. package/cjs/common/segment/curve/path.js.map +1 -1
  118. package/cjs/common/segment/curve/quadratic-bezier.js +2 -2
  119. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  120. package/cjs/common/segment/linear.js +0 -10
  121. package/cjs/common/segment/linear.js.map +1 -1
  122. package/cjs/common/segment/monotone.js +0 -13
  123. package/cjs/common/segment/monotone.js.map +1 -1
  124. package/cjs/common/segment/step.js +2 -13
  125. package/cjs/common/segment/step.js.map +1 -1
  126. package/cjs/common/sort.js +34 -3
  127. package/cjs/common/sort.js.map +1 -1
  128. package/cjs/common/split-path.js +11 -4
  129. package/cjs/common/split-path.js.map +1 -1
  130. package/cjs/common/utils.js +4 -8
  131. package/cjs/common/utils.js.map +1 -1
  132. package/cjs/common/xml/parser.js +2 -3
  133. package/cjs/common/xml/parser.js.map +1 -1
  134. package/cjs/core/camera.js +4 -11
  135. package/cjs/core/camera.js.map +1 -1
  136. package/cjs/core/contributions/env/base-contribution.js +0 -6
  137. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  138. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +11 -20
  139. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  140. package/cjs/core/contributions/layerHandler/empty-contribution.js +8 -8
  141. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  142. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +6 -5
  143. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  144. package/cjs/core/contributions/textMeasure/AtextMeasure.js +8 -11
  145. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  146. package/cjs/core/contributions/textMeasure/layout.js +0 -3
  147. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  148. package/cjs/core/contributions/window/base-contribution.js +0 -2
  149. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  150. package/cjs/core/global.js +0 -8
  151. package/cjs/core/global.js.map +1 -1
  152. package/cjs/core/graphic-utils.js +5 -16
  153. package/cjs/core/graphic-utils.js.map +1 -1
  154. package/cjs/core/layer-service.js +7 -7
  155. package/cjs/core/layer-service.js.map +1 -1
  156. package/cjs/core/layer.js +9 -7
  157. package/cjs/core/layer.js.map +1 -1
  158. package/cjs/core/stage.js +34 -68
  159. package/cjs/core/stage.js.map +1 -1
  160. package/cjs/core/window.js +13 -16
  161. package/cjs/core/window.js.map +1 -1
  162. package/cjs/event/event-manager.js +145 -153
  163. package/cjs/event/event-manager.js.map +1 -1
  164. package/cjs/event/event-system.js +43 -60
  165. package/cjs/event/event-system.js.map +1 -1
  166. package/cjs/event/event-target.js +3 -1
  167. package/cjs/event/event-target.js.map +1 -1
  168. package/cjs/event/federated-event/base-event.js +15 -43
  169. package/cjs/event/federated-event/base-event.js.map +1 -1
  170. package/cjs/event/federated-event/mouse-event.js +18 -27
  171. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  172. package/cjs/event/federated-event/pointer-event.js +8 -12
  173. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  174. package/cjs/event/federated-event/wheel-event.js +10 -13
  175. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  176. package/cjs/graphic/arc.js +5 -10
  177. package/cjs/graphic/arc.js.map +1 -1
  178. package/cjs/graphic/arc3d.js +4 -7
  179. package/cjs/graphic/arc3d.js.map +1 -1
  180. package/cjs/graphic/area.js +9 -14
  181. package/cjs/graphic/area.js.map +1 -1
  182. package/cjs/graphic/builtin-symbol/arrow.js +3 -2
  183. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  184. package/cjs/graphic/builtin-symbol/arrow2-down.js +3 -2
  185. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  186. package/cjs/graphic/builtin-symbol/arrow2-left.js +3 -2
  187. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  188. package/cjs/graphic/builtin-symbol/arrow2-right.js +3 -2
  189. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  190. package/cjs/graphic/builtin-symbol/arrow2-up.js +3 -2
  191. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  192. package/cjs/graphic/builtin-symbol/circle.js +3 -2
  193. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  194. package/cjs/graphic/builtin-symbol/close.js +3 -2
  195. package/cjs/graphic/builtin-symbol/close.js.map +1 -1
  196. package/cjs/graphic/builtin-symbol/cross.js +3 -2
  197. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  198. package/cjs/graphic/builtin-symbol/diamond.js +3 -2
  199. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  200. package/cjs/graphic/builtin-symbol/line-h.js +3 -2
  201. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
  202. package/cjs/graphic/builtin-symbol/line-v.js +3 -2
  203. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
  204. package/cjs/graphic/builtin-symbol/rect.js +3 -2
  205. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  206. package/cjs/graphic/builtin-symbol/square.js +3 -2
  207. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  208. package/cjs/graphic/builtin-symbol/star.js +3 -2
  209. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  210. package/cjs/graphic/builtin-symbol/stroke.js +3 -2
  211. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  212. package/cjs/graphic/builtin-symbol/thin-triangle.js +3 -2
  213. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  214. package/cjs/graphic/builtin-symbol/triangle-down.js +3 -2
  215. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  216. package/cjs/graphic/builtin-symbol/triangle-left.js +3 -2
  217. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  218. package/cjs/graphic/builtin-symbol/triangle-right.js +3 -2
  219. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  220. package/cjs/graphic/builtin-symbol/triangle-up.js +3 -2
  221. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  222. package/cjs/graphic/builtin-symbol/triangle.js +3 -1
  223. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  224. package/cjs/graphic/builtin-symbol/utils.js +1 -6
  225. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  226. package/cjs/graphic/builtin-symbol/wedge.js +3 -2
  227. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  228. package/cjs/graphic/builtin-symbol/wye.js +3 -2
  229. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  230. package/cjs/graphic/circle.js +6 -8
  231. package/cjs/graphic/circle.js.map +1 -1
  232. package/cjs/graphic/config.js +32 -58
  233. package/cjs/graphic/config.js.map +1 -1
  234. package/cjs/graphic/glyph.js +9 -10
  235. package/cjs/graphic/glyph.js.map +1 -1
  236. package/cjs/graphic/graphic-service/graphic-service.js +8 -12
  237. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  238. package/cjs/graphic/graphic.js +44 -27
  239. package/cjs/graphic/graphic.js.map +1 -1
  240. package/cjs/graphic/group.js +5 -9
  241. package/cjs/graphic/group.js.map +1 -1
  242. package/cjs/graphic/image.js +16 -18
  243. package/cjs/graphic/image.js.map +1 -1
  244. package/cjs/graphic/line.js +6 -11
  245. package/cjs/graphic/line.js.map +1 -1
  246. package/cjs/graphic/node-tree.js +44 -25
  247. package/cjs/graphic/node-tree.js.map +1 -1
  248. package/cjs/graphic/path.js +6 -12
  249. package/cjs/graphic/path.js.map +1 -1
  250. package/cjs/graphic/polygon.js +4 -7
  251. package/cjs/graphic/polygon.js.map +1 -1
  252. package/cjs/graphic/pyramid3d.js +3 -4
  253. package/cjs/graphic/pyramid3d.js.map +1 -1
  254. package/cjs/graphic/rect.js +3 -7
  255. package/cjs/graphic/rect.js.map +1 -1
  256. package/cjs/graphic/rect3d.js +4 -5
  257. package/cjs/graphic/rect3d.js.map +1 -1
  258. package/cjs/graphic/richtext/frame.js +0 -19
  259. package/cjs/graphic/richtext/frame.js.map +1 -1
  260. package/cjs/graphic/richtext/icon.js +6 -14
  261. package/cjs/graphic/richtext/icon.js.map +1 -1
  262. package/cjs/graphic/richtext/line.js +2 -14
  263. package/cjs/graphic/richtext/line.js.map +1 -1
  264. package/cjs/graphic/richtext/paragraph.js +0 -22
  265. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  266. package/cjs/graphic/richtext/utils.js +2 -1
  267. package/cjs/graphic/richtext/utils.js.map +1 -1
  268. package/cjs/graphic/richtext/wrapper.js +0 -12
  269. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  270. package/cjs/graphic/richtext.js +45 -38
  271. package/cjs/graphic/richtext.js.map +1 -1
  272. package/cjs/graphic/shadow-root.js +1 -2
  273. package/cjs/graphic/shadow-root.js.map +1 -1
  274. package/cjs/graphic/symbol.js +5 -12
  275. package/cjs/graphic/symbol.js.map +1 -1
  276. package/cjs/graphic/text.js +45 -45
  277. package/cjs/graphic/text.js.map +1 -1
  278. package/cjs/graphic/theme.js +0 -4
  279. package/cjs/graphic/theme.js.map +1 -1
  280. package/cjs/graphic/tools.js +44 -16
  281. package/cjs/graphic/tools.js.map +1 -1
  282. package/cjs/graphic/wrap-text.js +7 -7
  283. package/cjs/graphic/wrap-text.js.map +1 -1
  284. package/cjs/picker/global-picker-service.js +0 -1
  285. package/cjs/picker/global-picker-service.js.map +1 -1
  286. package/cjs/picker/pick-interceptor.js +15 -5
  287. package/cjs/picker/pick-interceptor.js.map +1 -1
  288. package/cjs/picker/picker-service.js +5 -5
  289. package/cjs/picker/picker-service.js.map +1 -1
  290. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js +20 -26
  291. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  292. package/cjs/plugins/builtin-plugin/auto-render-plugin.js +4 -5
  293. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  294. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +4 -5
  295. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  296. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +8 -11
  297. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  298. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +19 -28
  299. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  300. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +8 -12
  301. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  302. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +7 -6
  303. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  304. package/cjs/plugins/plugin-service.js +0 -1
  305. package/cjs/plugins/plugin-service.js.map +1 -1
  306. package/cjs/render/contributions/render/arc-render.js +4 -6
  307. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  308. package/cjs/render/contributions/render/arc3d-render.js +7 -5
  309. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  310. package/cjs/render/contributions/render/area-render.js +23 -21
  311. package/cjs/render/contributions/render/area-render.js.map +1 -1
  312. package/cjs/render/contributions/render/base-render.js +0 -5
  313. package/cjs/render/contributions/render/base-render.js.map +1 -1
  314. package/cjs/render/contributions/render/circle-render.js +4 -6
  315. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  316. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +4 -3
  317. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  318. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js +9 -6
  319. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  320. package/cjs/render/contributions/render/contributions/base-contribution-render.js +8 -10
  321. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  322. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +4 -4
  323. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  324. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +4 -3
  325. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  326. package/cjs/render/contributions/render/contributions/group-contribution-render.js +3 -1
  327. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  328. package/cjs/render/contributions/render/contributions/image-contribution-render.js +3 -1
  329. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  330. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +14 -11
  331. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  332. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +4 -3
  333. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  334. package/cjs/render/contributions/render/contributions/text-contribution-render.js +8 -6
  335. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  336. package/cjs/render/contributions/render/draw-contribution.js +14 -12
  337. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  338. package/cjs/render/contributions/render/draw-interceptor.js +21 -11
  339. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  340. package/cjs/render/contributions/render/glyph-render.js +3 -2
  341. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  342. package/cjs/render/contributions/render/graphic-render.js +1 -4
  343. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  344. package/cjs/render/contributions/render/group-render.js +3 -7
  345. package/cjs/render/contributions/render/group-render.js.map +1 -1
  346. package/cjs/render/contributions/render/image-render.js +2 -4
  347. package/cjs/render/contributions/render/image-render.js.map +1 -1
  348. package/cjs/render/contributions/render/incremental-area-render.js +3 -1
  349. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  350. package/cjs/render/contributions/render/incremental-draw-contribution.js +109 -80
  351. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  352. package/cjs/render/contributions/render/incremental-line-render.js +3 -1
  353. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  354. package/cjs/render/contributions/render/line-render.js +16 -12
  355. package/cjs/render/contributions/render/line-render.js.map +1 -1
  356. package/cjs/render/contributions/render/path-render.js +7 -8
  357. package/cjs/render/contributions/render/path-render.js.map +1 -1
  358. package/cjs/render/contributions/render/polygon-render.js +4 -6
  359. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  360. package/cjs/render/contributions/render/pyramid3d-render.js +5 -3
  361. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  362. package/cjs/render/contributions/render/rect-render.js +7 -8
  363. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  364. package/cjs/render/contributions/render/rect3d-render.js +7 -5
  365. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  366. package/cjs/render/contributions/render/richtext-render.js +3 -4
  367. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  368. package/cjs/render/contributions/render/symbol-render.js +14 -11
  369. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  370. package/cjs/render/contributions/render/text-render.js +8 -8
  371. package/cjs/render/contributions/render/text-render.js.map +1 -1
  372. package/cjs/render/contributions/render/utils.js +1 -1
  373. package/cjs/render/contributions/render/utils.js.map +1 -1
  374. package/cjs/render/render-service.js +2 -11
  375. package/cjs/render/render-service.js.map +1 -1
  376. package/cjs/resource-loader/loader.js +16 -13
  377. package/cjs/resource-loader/loader.js.map +1 -1
  378. package/cjs/tapable/Hook.js +0 -3
  379. package/cjs/tapable/Hook.js.map +1 -1
  380. package/dist/index.es.js +1759 -2166
  381. package/es/allocator/bounds-allocate.js +1 -1
  382. package/es/allocator/bounds-allocate.js.map +1 -1
  383. package/es/allocator/canvas-allocate.js +9 -11
  384. package/es/allocator/canvas-allocate.js.map +1 -1
  385. package/es/allocator/graphic-allocate.js +9 -5
  386. package/es/allocator/graphic-allocate.js.map +1 -1
  387. package/es/allocator/matrix-allocate.js +6 -2
  388. package/es/allocator/matrix-allocate.js.map +1 -1
  389. package/es/animate/Ticker/default-ticker.js +14 -25
  390. package/es/animate/Ticker/default-ticker.js.map +1 -1
  391. package/es/animate/animate.js +8 -7
  392. package/es/animate/animate.js.map +1 -1
  393. package/es/animate/custom-animate.d.ts +1 -0
  394. package/es/animate/custom-animate.js +81 -65
  395. package/es/animate/custom-animate.js.map +1 -1
  396. package/es/animate/easing.js +8 -18
  397. package/es/animate/easing.js.map +1 -1
  398. package/es/animate/morphing.js +23 -20
  399. package/es/animate/morphing.js.map +1 -1
  400. package/es/application.js +1 -7
  401. package/es/application.js.map +1 -1
  402. package/es/canvas/conical-gradient.js +6 -12
  403. package/es/canvas/conical-gradient.js.map +1 -1
  404. package/es/canvas/contributions/base-canvas.js +7 -19
  405. package/es/canvas/contributions/base-canvas.js.map +1 -1
  406. package/es/color-string/interpolate.js +3 -5
  407. package/es/color-string/interpolate.js.map +1 -1
  408. package/es/color-string/store.js +2 -2
  409. package/es/color-string/store.js.map +1 -1
  410. package/es/common/bounds-context.js +0 -1
  411. package/es/common/bounds-context.js.map +1 -1
  412. package/es/common/canvas-utils.js +6 -3
  413. package/es/common/canvas-utils.js.map +1 -1
  414. package/es/common/contribution-provider.js +0 -3
  415. package/es/common/contribution-provider.js.map +1 -1
  416. package/es/common/custom-path2d.js +1 -7
  417. package/es/common/custom-path2d.js.map +1 -1
  418. package/es/common/generator.js +2 -1
  419. package/es/common/generator.js.map +1 -1
  420. package/es/common/inversify/binding.js +0 -12
  421. package/es/common/inversify/binding.js.map +1 -1
  422. package/es/common/inversify/container.js +0 -4
  423. package/es/common/inversify/container.js.map +1 -1
  424. package/es/common/inversify/cotainer-module.js +0 -2
  425. package/es/common/inversify/cotainer-module.js.map +1 -1
  426. package/es/common/inversify/meta-data.js +0 -2
  427. package/es/common/inversify/meta-data.js.map +1 -1
  428. package/es/common/inversify/syntax/binding_in_syntax.js +0 -1
  429. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  430. package/es/common/inversify/syntax/binding_to_syntax.js +0 -1
  431. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  432. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +0 -1
  433. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  434. package/es/common/inversify-lite/bindings/binding.js +0 -14
  435. package/es/common/inversify-lite/bindings/binding.js.map +1 -1
  436. package/es/common/inversify-lite/container/container.js +48 -22
  437. package/es/common/inversify-lite/container/container.js.map +1 -1
  438. package/es/common/inversify-lite/container/container_module.js +0 -4
  439. package/es/common/inversify-lite/container/container_module.js.map +1 -1
  440. package/es/common/inversify-lite/container/lookup.js +0 -1
  441. package/es/common/inversify-lite/container/lookup.js.map +1 -1
  442. package/es/common/inversify-lite/planning/context.js +0 -4
  443. package/es/common/inversify-lite/planning/context.js.map +1 -1
  444. package/es/common/inversify-lite/planning/metadata.js +0 -2
  445. package/es/common/inversify-lite/planning/metadata.js.map +1 -1
  446. package/es/common/inversify-lite/planning/plan.js +0 -2
  447. package/es/common/inversify-lite/planning/plan.js.map +1 -1
  448. package/es/common/inversify-lite/planning/queryable_string.js +0 -1
  449. package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
  450. package/es/common/inversify-lite/planning/request.js +0 -8
  451. package/es/common/inversify-lite/planning/request.js.map +1 -1
  452. package/es/common/inversify-lite/planning/target.js +0 -7
  453. package/es/common/inversify-lite/planning/target.js.map +1 -1
  454. package/es/common/inversify-lite/resolution/instantiation.js +44 -16
  455. package/es/common/inversify-lite/resolution/instantiation.js.map +1 -1
  456. package/es/common/inversify-lite/scope/scope.js +29 -3
  457. package/es/common/inversify-lite/scope/scope.js.map +1 -1
  458. package/es/common/inversify-lite/syntax/binding_in_syntax.js +0 -1
  459. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  460. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -3
  461. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  462. package/es/common/inversify-lite/syntax/binding_on_syntax.js +0 -1
  463. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  464. package/es/common/inversify-lite/syntax/binding_to_syntax.js +0 -1
  465. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  466. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -2
  467. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  468. package/es/common/inversify-lite/syntax/binding_when_syntax.js +0 -1
  469. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  470. package/es/common/polygon.js +2 -1
  471. package/es/common/polygon.js.map +1 -1
  472. package/es/common/render-area.js +3 -2
  473. package/es/common/render-area.js.map +1 -1
  474. package/es/common/render-curve.js +8 -4
  475. package/es/common/render-curve.js.map +1 -1
  476. package/es/common/seg-context.js +3 -12
  477. package/es/common/seg-context.js.map +1 -1
  478. package/es/common/segment/basis.js +0 -13
  479. package/es/common/segment/basis.js.map +1 -1
  480. package/es/common/segment/common.js +1 -1
  481. package/es/common/segment/common.js.map +1 -1
  482. package/es/common/segment/curve/arc.js +1 -2
  483. package/es/common/segment/curve/arc.js.map +1 -1
  484. package/es/common/segment/curve/base.js +0 -4
  485. package/es/common/segment/curve/base.js.map +1 -1
  486. package/es/common/segment/curve/cubic-bezier.js +2 -2
  487. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  488. package/es/common/segment/curve/curve-context.js +0 -4
  489. package/es/common/segment/curve/curve-context.js.map +1 -1
  490. package/es/common/segment/curve/ellipse.js +3 -3
  491. package/es/common/segment/curve/ellipse.js.map +1 -1
  492. package/es/common/segment/curve/line.js +1 -2
  493. package/es/common/segment/curve/line.js.map +1 -1
  494. package/es/common/segment/curve/move.js +1 -2
  495. package/es/common/segment/curve/move.js.map +1 -1
  496. package/es/common/segment/curve/path.js +0 -2
  497. package/es/common/segment/curve/path.js.map +1 -1
  498. package/es/common/segment/curve/quadratic-bezier.js +2 -2
  499. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  500. package/es/common/segment/linear.js +0 -10
  501. package/es/common/segment/linear.js.map +1 -1
  502. package/es/common/segment/monotone.js +0 -13
  503. package/es/common/segment/monotone.js.map +1 -1
  504. package/es/common/segment/step.js +1 -12
  505. package/es/common/segment/step.js.map +1 -1
  506. package/es/common/sort.js +34 -3
  507. package/es/common/sort.js.map +1 -1
  508. package/es/common/split-path.js +11 -4
  509. package/es/common/split-path.js.map +1 -1
  510. package/es/common/utils.js +5 -7
  511. package/es/common/utils.js.map +1 -1
  512. package/es/common/xml/parser.js +2 -2
  513. package/es/common/xml/parser.js.map +1 -1
  514. package/es/core/camera.js +4 -11
  515. package/es/core/camera.js.map +1 -1
  516. package/es/core/contributions/env/base-contribution.js +0 -6
  517. package/es/core/contributions/env/base-contribution.js.map +1 -1
  518. package/es/core/contributions/layerHandler/canvas2d-contribution.js +11 -20
  519. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  520. package/es/core/contributions/layerHandler/empty-contribution.js +8 -8
  521. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  522. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +6 -5
  523. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  524. package/es/core/contributions/textMeasure/AtextMeasure.js +8 -11
  525. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  526. package/es/core/contributions/textMeasure/layout.js +0 -3
  527. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  528. package/es/core/contributions/window/base-contribution.js +0 -2
  529. package/es/core/contributions/window/base-contribution.js.map +1 -1
  530. package/es/core/global.js +0 -8
  531. package/es/core/global.js.map +1 -1
  532. package/es/core/graphic-utils.js +5 -16
  533. package/es/core/graphic-utils.js.map +1 -1
  534. package/es/core/layer-service.js +7 -7
  535. package/es/core/layer-service.js.map +1 -1
  536. package/es/core/layer.js +9 -7
  537. package/es/core/layer.js.map +1 -1
  538. package/es/core/stage.js +34 -68
  539. package/es/core/stage.js.map +1 -1
  540. package/es/core/window.js +14 -16
  541. package/es/core/window.js.map +1 -1
  542. package/es/event/event-manager.js +145 -153
  543. package/es/event/event-manager.js.map +1 -1
  544. package/es/event/event-system.js +43 -60
  545. package/es/event/event-system.js.map +1 -1
  546. package/es/event/event-target.js +3 -1
  547. package/es/event/event-target.js.map +1 -1
  548. package/es/event/federated-event/base-event.js +15 -43
  549. package/es/event/federated-event/base-event.js.map +1 -1
  550. package/es/event/federated-event/mouse-event.js +18 -27
  551. package/es/event/federated-event/mouse-event.js.map +1 -1
  552. package/es/event/federated-event/pointer-event.js +8 -12
  553. package/es/event/federated-event/pointer-event.js.map +1 -1
  554. package/es/event/federated-event/wheel-event.js +11 -12
  555. package/es/event/federated-event/wheel-event.js.map +1 -1
  556. package/es/graphic/arc.js +6 -9
  557. package/es/graphic/arc.js.map +1 -1
  558. package/es/graphic/arc3d.js +5 -6
  559. package/es/graphic/arc3d.js.map +1 -1
  560. package/es/graphic/area.js +10 -13
  561. package/es/graphic/area.js.map +1 -1
  562. package/es/graphic/builtin-symbol/arrow.js +3 -2
  563. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  564. package/es/graphic/builtin-symbol/arrow2-down.js +3 -2
  565. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  566. package/es/graphic/builtin-symbol/arrow2-left.js +3 -2
  567. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  568. package/es/graphic/builtin-symbol/arrow2-right.js +3 -2
  569. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  570. package/es/graphic/builtin-symbol/arrow2-up.js +3 -2
  571. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  572. package/es/graphic/builtin-symbol/circle.js +3 -2
  573. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  574. package/es/graphic/builtin-symbol/close.js +3 -2
  575. package/es/graphic/builtin-symbol/close.js.map +1 -1
  576. package/es/graphic/builtin-symbol/cross.js +3 -2
  577. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  578. package/es/graphic/builtin-symbol/diamond.js +3 -2
  579. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  580. package/es/graphic/builtin-symbol/line-h.js +3 -2
  581. package/es/graphic/builtin-symbol/line-h.js.map +1 -1
  582. package/es/graphic/builtin-symbol/line-v.js +3 -2
  583. package/es/graphic/builtin-symbol/line-v.js.map +1 -1
  584. package/es/graphic/builtin-symbol/rect.js +3 -2
  585. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  586. package/es/graphic/builtin-symbol/square.js +3 -2
  587. package/es/graphic/builtin-symbol/square.js.map +1 -1
  588. package/es/graphic/builtin-symbol/star.js +3 -2
  589. package/es/graphic/builtin-symbol/star.js.map +1 -1
  590. package/es/graphic/builtin-symbol/stroke.js +3 -2
  591. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  592. package/es/graphic/builtin-symbol/thin-triangle.js +3 -2
  593. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  594. package/es/graphic/builtin-symbol/triangle-down.js +3 -2
  595. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  596. package/es/graphic/builtin-symbol/triangle-left.js +3 -2
  597. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  598. package/es/graphic/builtin-symbol/triangle-right.js +3 -2
  599. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  600. package/es/graphic/builtin-symbol/triangle-up.js +3 -2
  601. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  602. package/es/graphic/builtin-symbol/triangle.js +3 -1
  603. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  604. package/es/graphic/builtin-symbol/utils.js +2 -6
  605. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  606. package/es/graphic/builtin-symbol/wedge.js +3 -2
  607. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  608. package/es/graphic/builtin-symbol/wye.js +3 -2
  609. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  610. package/es/graphic/circle.js +6 -7
  611. package/es/graphic/circle.js.map +1 -1
  612. package/es/graphic/config.js +44 -72
  613. package/es/graphic/config.js.map +1 -1
  614. package/es/graphic/glyph.js +9 -9
  615. package/es/graphic/glyph.js.map +1 -1
  616. package/es/graphic/graphic-service/graphic-service.js +8 -12
  617. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  618. package/es/graphic/graphic.js +44 -27
  619. package/es/graphic/graphic.js.map +1 -1
  620. package/es/graphic/group.js +5 -8
  621. package/es/graphic/group.js.map +1 -1
  622. package/es/graphic/image.js +16 -17
  623. package/es/graphic/image.js.map +1 -1
  624. package/es/graphic/line.js +7 -10
  625. package/es/graphic/line.js.map +1 -1
  626. package/es/graphic/node-tree.js +44 -25
  627. package/es/graphic/node-tree.js.map +1 -1
  628. package/es/graphic/path.js +7 -11
  629. package/es/graphic/path.js.map +1 -1
  630. package/es/graphic/polygon.js +4 -6
  631. package/es/graphic/polygon.js.map +1 -1
  632. package/es/graphic/pyramid3d.js +3 -3
  633. package/es/graphic/pyramid3d.js.map +1 -1
  634. package/es/graphic/rect.js +4 -6
  635. package/es/graphic/rect.js.map +1 -1
  636. package/es/graphic/rect3d.js +4 -4
  637. package/es/graphic/rect3d.js.map +1 -1
  638. package/es/graphic/richtext/frame.js +0 -19
  639. package/es/graphic/richtext/frame.js.map +1 -1
  640. package/es/graphic/richtext/icon.js +6 -14
  641. package/es/graphic/richtext/icon.js.map +1 -1
  642. package/es/graphic/richtext/line.js +2 -14
  643. package/es/graphic/richtext/line.js.map +1 -1
  644. package/es/graphic/richtext/paragraph.js +0 -22
  645. package/es/graphic/richtext/paragraph.js.map +1 -1
  646. package/es/graphic/richtext/utils.js +2 -1
  647. package/es/graphic/richtext/utils.js.map +1 -1
  648. package/es/graphic/richtext/wrapper.js +0 -12
  649. package/es/graphic/richtext/wrapper.js.map +1 -1
  650. package/es/graphic/richtext.js +46 -37
  651. package/es/graphic/richtext.js.map +1 -1
  652. package/es/graphic/shadow-root.js +1 -2
  653. package/es/graphic/shadow-root.js.map +1 -1
  654. package/es/graphic/symbol.js +6 -11
  655. package/es/graphic/symbol.js.map +1 -1
  656. package/es/graphic/text.js +40 -39
  657. package/es/graphic/text.js.map +1 -1
  658. package/es/graphic/theme.js +0 -4
  659. package/es/graphic/theme.js.map +1 -1
  660. package/es/graphic/tools.js +44 -16
  661. package/es/graphic/tools.js.map +1 -1
  662. package/es/graphic/wrap-text.js +6 -6
  663. package/es/graphic/wrap-text.js.map +1 -1
  664. package/es/picker/global-picker-service.js +0 -1
  665. package/es/picker/global-picker-service.js.map +1 -1
  666. package/es/picker/pick-interceptor.js +15 -5
  667. package/es/picker/pick-interceptor.js.map +1 -1
  668. package/es/picker/picker-service.js +5 -5
  669. package/es/picker/picker-service.js.map +1 -1
  670. package/es/plugins/builtin-plugin/3dview-transform-plugin.js +20 -26
  671. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  672. package/es/plugins/builtin-plugin/auto-render-plugin.js +4 -5
  673. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  674. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +4 -5
  675. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  676. package/es/plugins/builtin-plugin/flex-layout-plugin.js +8 -11
  677. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  678. package/es/plugins/builtin-plugin/html-attribute-plugin.js +17 -28
  679. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  680. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +8 -12
  681. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  682. package/es/plugins/builtin-plugin/react-attribute-plugin.js +6 -6
  683. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  684. package/es/plugins/plugin-service.js +0 -1
  685. package/es/plugins/plugin-service.js.map +1 -1
  686. package/es/render/contributions/render/arc-render.js +4 -6
  687. package/es/render/contributions/render/arc-render.js.map +1 -1
  688. package/es/render/contributions/render/arc3d-render.js +7 -5
  689. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  690. package/es/render/contributions/render/area-render.js +23 -21
  691. package/es/render/contributions/render/area-render.js.map +1 -1
  692. package/es/render/contributions/render/base-render.js +0 -5
  693. package/es/render/contributions/render/base-render.js.map +1 -1
  694. package/es/render/contributions/render/circle-render.js +4 -6
  695. package/es/render/contributions/render/circle-render.js.map +1 -1
  696. package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -3
  697. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  698. package/es/render/contributions/render/contributions/area-texture-contribution-render.js +5 -2
  699. package/es/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  700. package/es/render/contributions/render/contributions/base-contribution-render.js +7 -10
  701. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  702. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +3 -4
  703. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  704. package/es/render/contributions/render/contributions/circle-contribution-render.js +3 -3
  705. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  706. package/es/render/contributions/render/contributions/group-contribution-render.js +3 -1
  707. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  708. package/es/render/contributions/render/contributions/image-contribution-render.js +3 -1
  709. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  710. package/es/render/contributions/render/contributions/rect-contribution-render.js +11 -11
  711. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  712. package/es/render/contributions/render/contributions/symbol-contribution-render.js +3 -3
  713. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  714. package/es/render/contributions/render/contributions/text-contribution-render.js +8 -6
  715. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  716. package/es/render/contributions/render/draw-contribution.js +14 -12
  717. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  718. package/es/render/contributions/render/draw-interceptor.js +21 -11
  719. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  720. package/es/render/contributions/render/glyph-render.js +3 -2
  721. package/es/render/contributions/render/glyph-render.js.map +1 -1
  722. package/es/render/contributions/render/graphic-render.js +1 -4
  723. package/es/render/contributions/render/graphic-render.js.map +1 -1
  724. package/es/render/contributions/render/group-render.js +3 -7
  725. package/es/render/contributions/render/group-render.js.map +1 -1
  726. package/es/render/contributions/render/image-render.js +2 -5
  727. package/es/render/contributions/render/image-render.js.map +1 -1
  728. package/es/render/contributions/render/incremental-area-render.js +3 -1
  729. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  730. package/es/render/contributions/render/incremental-draw-contribution.js +109 -80
  731. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  732. package/es/render/contributions/render/incremental-line-render.js +3 -1
  733. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  734. package/es/render/contributions/render/line-render.js +16 -12
  735. package/es/render/contributions/render/line-render.js.map +1 -1
  736. package/es/render/contributions/render/path-render.js +6 -8
  737. package/es/render/contributions/render/path-render.js.map +1 -1
  738. package/es/render/contributions/render/polygon-render.js +4 -6
  739. package/es/render/contributions/render/polygon-render.js.map +1 -1
  740. package/es/render/contributions/render/pyramid3d-render.js +5 -3
  741. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  742. package/es/render/contributions/render/rect-render.js +6 -8
  743. package/es/render/contributions/render/rect-render.js.map +1 -1
  744. package/es/render/contributions/render/rect3d-render.js +7 -5
  745. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  746. package/es/render/contributions/render/richtext-render.js +3 -4
  747. package/es/render/contributions/render/richtext-render.js.map +1 -1
  748. package/es/render/contributions/render/symbol-render.js +14 -11
  749. package/es/render/contributions/render/symbol-render.js.map +1 -1
  750. package/es/render/contributions/render/text-render.js +8 -9
  751. package/es/render/contributions/render/text-render.js.map +1 -1
  752. package/es/render/contributions/render/utils.js +1 -1
  753. package/es/render/contributions/render/utils.js.map +1 -1
  754. package/es/render/render-service.js +2 -11
  755. package/es/render/render-service.js.map +1 -1
  756. package/es/resource-loader/loader.js +17 -12
  757. package/es/resource-loader/loader.js.map +1 -1
  758. package/es/tapable/Hook.js +0 -3
  759. package/es/tapable/Hook.js.map +1 -1
  760. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/graphic-utils.ts"],"names":[],"mappings":"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","file":"graphic-utils.js","sourcesContent":["import { injectable, inject, named } from '../common/inversify-lite';\nimport type {\n ICanvas,\n IContext2d,\n EnvType,\n IGlobal,\n ITextAttribute,\n IContributionProvider,\n IGraphic,\n IGraphicAttribute,\n IStage,\n IWindow\n} from '../interface';\nimport type { ITextMeasure, TextOptionsType } from '../interface/text';\nimport { TextMeasureContribution } from './contributions/textMeasure/textMeasure-contribution';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { DefaultTextStyle } from '../graphic/config';\nimport type { IMatrix, IPointLike, ITextMeasureOption } from '@visactor/vutils';\nimport { Matrix, TextMeasure } from '@visactor/vutils';\nimport type { IGraphicUtil, ITransformUtil, TransformType } from '../interface/core';\nimport { canvasAllocate } from '../allocator/canvas-allocate';\nimport { application } from '../application';\nimport { container } from '../container';\nimport { VWindow } from './window';\nimport { graphicCreator } from '../graphic';\nimport { matrixAllocate } from '../allocator/matrix-allocate';\n\n@injectable()\nexport class DefaultGraphicUtil implements IGraphicUtil {\n get canvas(): ICanvas {\n this.tryInitCanvas();\n return this._canvas;\n }\n get context(): IContext2d | null {\n this.tryInitCanvas();\n return this._context;\n }\n _canvas?: ICanvas;\n _context?: IContext2d | null;\n _textMeasure: ITextMeasure;\n configured: boolean;\n global: IGlobal;\n\n constructor(\n @inject(ContributionProvider)\n @named(TextMeasureContribution)\n protected readonly contributions: IContributionProvider<ITextMeasure>\n ) {\n this.configured = false;\n this.global = application.global;\n this.global.hooks.onSetEnv.tap('graphic-util', (lastEnv, env, global) => {\n this.configured = false;\n this.configure(global, env);\n });\n }\n\n get textMeasure(): ITextMeasure {\n if (!this._textMeasure) {\n this.configure(this.global, this.global.env);\n }\n return this._textMeasure;\n }\n\n configure(global: IGlobal, env: EnvType) {\n if (this.configured) {\n return;\n }\n this.contributions.getContributions().forEach(contribution => {\n contribution.configure(this, env);\n });\n this.configured = true;\n }\n\n tryInitCanvas() {\n if (!this._canvas) {\n const canvas = canvasAllocate.shareCanvas();\n this._canvas = canvas;\n this._context = canvas.getContext('2d');\n }\n }\n\n bindTextMeasure(tm: ITextMeasure) {\n this._textMeasure = tm;\n }\n\n measureText(\n text: string,\n tc: TextOptionsType,\n method: 'native' | 'simple' | 'quick' = 'native'\n ): { width: number; height: number } {\n this.configure(this.global, this.global.env);\n const m = this.global.measureTextMethod;\n this.global.measureTextMethod = method;\n const data = {\n width: this._textMeasure.measureTextWidth(text, tc),\n height: tc.fontSize ?? DefaultTextStyle.fontSize\n };\n this.global.measureTextMethod = m;\n return data;\n }\n\n createTextMeasureInstance(\n textSpec?: Partial<ITextAttribute>,\n option?: Partial<ITextMeasureOption>,\n getCanvasForMeasure?: () => any\n ) {\n this.configure(this.global, this.global.env);\n return new TextMeasure<ITextAttribute>(\n {\n defaultFontParams: {\n fontFamily: DefaultTextStyle.fontFamily,\n fontSize: DefaultTextStyle.fontSize\n },\n getCanvasForMeasure: getCanvasForMeasure || (() => this.canvas),\n getTextBounds: undefined,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n }\n\n drawGraphicToCanvas(\n graphic: IGraphic<Partial<IGraphicAttribute>>,\n stage: IStage,\n canvas?: HTMLCanvasElement\n ): HTMLCanvasElement | null | Promise<HTMLCanvasElement> {\n if (!stage.defaultLayer) {\n return null;\n }\n const window = container.get<IWindow>(VWindow);\n const bounds = graphic.AABBBounds;\n const width = bounds.width();\n const height = bounds.height();\n const x1 = -bounds.x1;\n const y1 = -bounds.y1;\n window.create({\n viewBox: { x1, y1, x2: bounds.x2, y2: bounds.y2 },\n width,\n height,\n canvas,\n dpr: stage.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n\n const disableCheckGraphicWidthOutRange = stage.params.optimize.disableCheckGraphicWidthOutRange;\n // 关掉dirtyBounds检测\n stage.params.optimize.disableCheckGraphicWidthOutRange = true;\n stage.defaultLayer.getNativeHandler().drawTo(window, [graphic as any], {\n transMatrix: window.getViewBoxTransform(),\n viewBox: window.getViewBox(),\n stage,\n layer: stage.defaultLayer,\n renderService: stage.renderService,\n background: 'transparent',\n clear: true, // 第一个layer需要clear\n updateBounds: false\n });\n stage.params.optimize.disableCheckGraphicWidthOutRange = disableCheckGraphicWidthOutRange;\n\n const c = window.getNativeHandler();\n if (c.nativeCanvas) {\n return c.nativeCanvas;\n }\n return null;\n }\n}\n\nenum TransformMode {\n transform = 0,\n matrix = 1\n}\n\nconst _matrix = new Matrix();\n\n@injectable()\nexport class DefaultTransformUtil implements ITransformUtil {\n private matrix: IMatrix;\n private originTransform: TransformType;\n\n private outSourceMatrix: IMatrix;\n private outTargetMatrix: IMatrix;\n\n private mode: TransformMode;\n constructor() {\n this.matrix = new Matrix();\n }\n init(origin: TransformType): this {\n this.mode = TransformMode.transform;\n this.originTransform = origin;\n this.matrix.reset();\n return this;\n }\n fromMatrix(source: IMatrix, target: IMatrix): this {\n this.mode = TransformMode.matrix;\n this.outSourceMatrix = source;\n this.outTargetMatrix = target;\n return this;\n }\n\n // translate: (x: number, y: number) => Transform;\n // translateTo: (x: number, y: number) => Transform;\n private scaleMatrix(sx: number, sy: number, center?: IPointLike): this {\n // if (this.outSourceMatrix !== this.outTargetMatrix) {\n // // copy\n // const m = this.outSourceMatrix;\n // this.outTargetMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n // }\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n if (center) {\n const { x, y } = center;\n this.outTargetMatrix.translate(x, y);\n this.outTargetMatrix.scale(sx, sy);\n this.outTargetMatrix.translate(-x, -y);\n } else {\n this.outTargetMatrix.scale(sx, sy);\n }\n\n // _matrix.reset();\n // if (center) {\n // const { x, y } = center;\n // _matrix.translate(x, y);\n // _matrix.scale(sx, sy);\n // _matrix.translate(-x, -y);\n // } else {\n // _matrix.scale(sx, sy);\n // }\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n\n private rotateMatrix(angle: number, center?: IPointLike): this {\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n if (center) {\n const { x, y } = center;\n this.outTargetMatrix.translate(x, y);\n this.outTargetMatrix.rotate(angle);\n this.outTargetMatrix.translate(-x, -y);\n } else {\n this.outTargetMatrix.rotate(angle);\n }\n\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n scale(sx: number, sy: number, center?: IPointLike): this {\n if (this.mode === TransformMode.matrix) {\n return this.scaleMatrix(sx, sy, center);\n }\n return this;\n }\n rotate(angle: number, center?: IPointLike): this {\n if (this.mode === TransformMode.matrix) {\n return this.rotateMatrix(angle, center);\n }\n return this;\n }\n private translateMatrix(dx: number, dy: number): this {\n // if (this.outSourceMatrix !== this.outTargetMatrix) {\n // // copy\n // const m = this.outSourceMatrix;\n // this.outTargetMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n // }\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n this.outTargetMatrix.translate(dx, dy);\n\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n translate(dx: number, dy: number): this {\n if (this.mode === TransformMode.matrix) {\n return this.translateMatrix(dx, dy);\n }\n return this;\n }\n // scaleTo: (sx: number, sy: number, center: IPointLike) => Transform;\n // rotate: (rx: number, ry: number, center: IPointLike) => Transform;\n // rotateTo: (rx: number, ry: number, center: IPointLike) => Transform;\n // 语法糖\n // interactive: (dx: number, dy: number, dsx: number, dsy: number, drx: number, dry: number) => Transform;\n // // 扩展padding像素,用于外描边,内描边\n // extend: (origin: TransformType, padding: number) => Transform;\n // 将所有的transform生成为一次的transform\n simplify(target: TransformType): this {\n if (this.mode === TransformMode.matrix) {\n return this.simplifyMatrix(target);\n }\n return this;\n }\n private simplifyMatrix(target: TransformType): this {\n // let { a, b, c, d, e, f } = this.outTargetMatrix;\n // if (a === 0 || d === 0) return this;\n // const { dx=0, dy=0 } = target;\n // // 不处理dx和dy\n // e -= dx;\n // f -= dy;\n // const tanTheta = b / a;\n // const angle = Math.atan(tanTheta);\n // const cosTheta = cos(angle);\n // const sinTheta = sin(angle);\n // const sx = cosTheta !== 0 ? (a / cosTheta) : (b / sinTheta);\n // const sy = sinTheta !== 0 ? (-c / sinTheta) : (d / cosTheta);\n // const x = e;\n // const y = f;\n // target.x = x;\n // target.y = y;\n // target.dx = dx;\n return this;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/graphic-utils.ts"],"names":[],"mappings":"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","file":"graphic-utils.js","sourcesContent":["import { injectable, inject, named } from '../common/inversify-lite';\nimport type {\n ICanvas,\n IContext2d,\n EnvType,\n IGlobal,\n ITextAttribute,\n IContributionProvider,\n IGraphic,\n IGraphicAttribute,\n IStage,\n IWindow\n} from '../interface';\nimport type { ITextMeasure, TextOptionsType } from '../interface/text';\nimport { TextMeasureContribution } from './contributions/textMeasure/textMeasure-contribution';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { DefaultTextStyle } from '../graphic/config';\nimport type { IMatrix, IPointLike, ITextMeasureOption } from '@visactor/vutils';\nimport { Matrix, TextMeasure } from '@visactor/vutils';\nimport type { IGraphicUtil, ITransformUtil, TransformType } from '../interface/core';\nimport { canvasAllocate } from '../allocator/canvas-allocate';\nimport { application } from '../application';\nimport { container } from '../container';\nimport { VWindow } from './window';\nimport { graphicCreator } from '../graphic';\nimport { matrixAllocate } from '../allocator/matrix-allocate';\n\n@injectable()\nexport class DefaultGraphicUtil implements IGraphicUtil {\n get canvas(): ICanvas {\n this.tryInitCanvas();\n return this._canvas;\n }\n get context(): IContext2d | null {\n this.tryInitCanvas();\n return this._context;\n }\n _canvas?: ICanvas;\n _context?: IContext2d | null;\n _textMeasure: ITextMeasure;\n configured: boolean;\n global: IGlobal;\n\n constructor(\n @inject(ContributionProvider)\n @named(TextMeasureContribution)\n protected readonly contributions: IContributionProvider<ITextMeasure>\n ) {\n this.configured = false;\n this.global = application.global;\n this.global.hooks.onSetEnv.tap('graphic-util', (lastEnv, env, global) => {\n this.configured = false;\n this.configure(global, env);\n });\n }\n\n get textMeasure(): ITextMeasure {\n if (!this._textMeasure) {\n this.configure(this.global, this.global.env);\n }\n return this._textMeasure;\n }\n\n configure(global: IGlobal, env: EnvType) {\n if (this.configured) {\n return;\n }\n this.contributions.getContributions().forEach(contribution => {\n contribution.configure(this, env);\n });\n this.configured = true;\n }\n\n tryInitCanvas() {\n if (!this._canvas) {\n const canvas = canvasAllocate.shareCanvas();\n this._canvas = canvas;\n this._context = canvas.getContext('2d');\n }\n }\n\n bindTextMeasure(tm: ITextMeasure) {\n this._textMeasure = tm;\n }\n\n measureText(\n text: string,\n tc: TextOptionsType,\n method: 'native' | 'simple' | 'quick' = 'native'\n ): { width: number; height: number } {\n this.configure(this.global, this.global.env);\n const m = this.global.measureTextMethod;\n this.global.measureTextMethod = method;\n const data = {\n width: this._textMeasure.measureTextWidth(text, tc),\n height: tc.fontSize ?? DefaultTextStyle.fontSize\n };\n this.global.measureTextMethod = m;\n return data;\n }\n\n createTextMeasureInstance(\n textSpec?: Partial<ITextAttribute>,\n option?: Partial<ITextMeasureOption>,\n getCanvasForMeasure?: () => any\n ) {\n this.configure(this.global, this.global.env);\n return new TextMeasure<ITextAttribute>(\n {\n defaultFontParams: {\n fontFamily: DefaultTextStyle.fontFamily,\n fontSize: DefaultTextStyle.fontSize\n },\n getCanvasForMeasure: getCanvasForMeasure || (() => this.canvas),\n getTextBounds: undefined,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n }\n\n drawGraphicToCanvas(\n graphic: IGraphic<Partial<IGraphicAttribute>>,\n stage: IStage,\n canvas?: HTMLCanvasElement\n ): HTMLCanvasElement | null | Promise<HTMLCanvasElement> {\n if (!stage.defaultLayer) {\n return null;\n }\n const window = container.get<IWindow>(VWindow);\n const bounds = graphic.AABBBounds;\n const width = bounds.width();\n const height = bounds.height();\n const x1 = -bounds.x1;\n const y1 = -bounds.y1;\n window.create({\n viewBox: { x1, y1, x2: bounds.x2, y2: bounds.y2 },\n width,\n height,\n canvas,\n dpr: stage.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n\n const disableCheckGraphicWidthOutRange = stage.params.optimize.disableCheckGraphicWidthOutRange;\n // 关掉dirtyBounds检测\n stage.params.optimize.disableCheckGraphicWidthOutRange = true;\n stage.defaultLayer.getNativeHandler().drawTo(window, [graphic as any], {\n transMatrix: window.getViewBoxTransform(),\n viewBox: window.getViewBox(),\n stage,\n layer: stage.defaultLayer,\n renderService: stage.renderService,\n background: 'transparent',\n clear: true, // 第一个layer需要clear\n updateBounds: false\n });\n stage.params.optimize.disableCheckGraphicWidthOutRange = disableCheckGraphicWidthOutRange;\n\n const c = window.getNativeHandler();\n if (c.nativeCanvas) {\n return c.nativeCanvas;\n }\n return null;\n }\n}\n\nenum TransformMode {\n transform = 0,\n matrix = 1\n}\n\nconst _matrix = new Matrix();\n\n@injectable()\nexport class DefaultTransformUtil implements ITransformUtil {\n private matrix: IMatrix;\n private originTransform: TransformType;\n\n private outSourceMatrix: IMatrix;\n private outTargetMatrix: IMatrix;\n\n private mode: TransformMode;\n constructor() {\n this.matrix = new Matrix();\n }\n init(origin: TransformType): this {\n this.mode = TransformMode.transform;\n this.originTransform = origin;\n this.matrix.reset();\n return this;\n }\n fromMatrix(source: IMatrix, target: IMatrix): this {\n this.mode = TransformMode.matrix;\n this.outSourceMatrix = source;\n this.outTargetMatrix = target;\n return this;\n }\n\n // translate: (x: number, y: number) => Transform;\n // translateTo: (x: number, y: number) => Transform;\n private scaleMatrix(sx: number, sy: number, center?: IPointLike): this {\n // if (this.outSourceMatrix !== this.outTargetMatrix) {\n // // copy\n // const m = this.outSourceMatrix;\n // this.outTargetMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n // }\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n if (center) {\n const { x, y } = center;\n this.outTargetMatrix.translate(x, y);\n this.outTargetMatrix.scale(sx, sy);\n this.outTargetMatrix.translate(-x, -y);\n } else {\n this.outTargetMatrix.scale(sx, sy);\n }\n\n // _matrix.reset();\n // if (center) {\n // const { x, y } = center;\n // _matrix.translate(x, y);\n // _matrix.scale(sx, sy);\n // _matrix.translate(-x, -y);\n // } else {\n // _matrix.scale(sx, sy);\n // }\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n\n private rotateMatrix(angle: number, center?: IPointLike): this {\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n if (center) {\n const { x, y } = center;\n this.outTargetMatrix.translate(x, y);\n this.outTargetMatrix.rotate(angle);\n this.outTargetMatrix.translate(-x, -y);\n } else {\n this.outTargetMatrix.rotate(angle);\n }\n\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n scale(sx: number, sy: number, center?: IPointLike): this {\n if (this.mode === TransformMode.matrix) {\n return this.scaleMatrix(sx, sy, center);\n }\n return this;\n }\n rotate(angle: number, center?: IPointLike): this {\n if (this.mode === TransformMode.matrix) {\n return this.rotateMatrix(angle, center);\n }\n return this;\n }\n private translateMatrix(dx: number, dy: number): this {\n // if (this.outSourceMatrix !== this.outTargetMatrix) {\n // // copy\n // const m = this.outSourceMatrix;\n // this.outTargetMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n // }\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n this.outTargetMatrix.translate(dx, dy);\n\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n translate(dx: number, dy: number): this {\n if (this.mode === TransformMode.matrix) {\n return this.translateMatrix(dx, dy);\n }\n return this;\n }\n // scaleTo: (sx: number, sy: number, center: IPointLike) => Transform;\n // rotate: (rx: number, ry: number, center: IPointLike) => Transform;\n // rotateTo: (rx: number, ry: number, center: IPointLike) => Transform;\n // 语法糖\n // interactive: (dx: number, dy: number, dsx: number, dsy: number, drx: number, dry: number) => Transform;\n // // 扩展padding像素,用于外描边,内描边\n // extend: (origin: TransformType, padding: number) => Transform;\n // 将所有的transform生成为一次的transform\n simplify(target: TransformType): this {\n if (this.mode === TransformMode.matrix) {\n return this.simplifyMatrix(target);\n }\n return this;\n }\n private simplifyMatrix(target: TransformType): this {\n // let { a, b, c, d, e, f } = this.outTargetMatrix;\n // if (a === 0 || d === 0) return this;\n // const { dx=0, dy=0 } = target;\n // // 不处理dx和dy\n // e -= dx;\n // f -= dy;\n // const tanTheta = b / a;\n // const angle = Math.atan(tanTheta);\n // const cosTheta = cos(angle);\n // const sinTheta = sin(angle);\n // const sx = cosTheta !== 0 ? (a / cosTheta) : (b / sinTheta);\n // const sy = sinTheta !== 0 ? (-c / sinTheta) : (d / cosTheta);\n // const x = e;\n // const y = f;\n // target.x = x;\n // target.y = y;\n // target.dx = dx;\n return this;\n }\n}\n"]}
@@ -15,8 +15,6 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const inversify_lite_1 = require("../common/inversify-lite"), layer_1 = require("./layer"), container_1 = require("../container"), constants_1 = require("./constants"), application_1 = require("../application");
16
16
 
17
17
  let DefaultLayerService = DefaultLayerService_1 = class {
18
- static idprefix="visactor_layer";
19
- static prefix_count=0;
20
18
  static GenerateLayerId() {
21
19
  return `${DefaultLayerService_1.idprefix}_${DefaultLayerService_1.prefix_count++}`;
22
20
  }
@@ -41,16 +39,17 @@ let DefaultLayerService = DefaultLayerService_1 = class {
41
39
  createLayer(stage, options = {
42
40
  main: !1
43
41
  }) {
42
+ var _a;
44
43
  this.tryInit();
45
44
  let layerMode = this.getRecommendedLayerType(options.layerMode);
46
45
  layerMode = options.main || options.canvasId ? "static" : layerMode;
47
- const layerHandler = this.getLayerHandler(layerMode), layer = new layer_1.Layer(stage, this.global, stage.window, {
48
- main: !1,
49
- ...options,
46
+ const layerHandler = this.getLayerHandler(layerMode), layer = new layer_1.Layer(stage, this.global, stage.window, Object.assign(Object.assign({
47
+ main: !1
48
+ }, options), {
50
49
  layerMode: layerMode,
51
- canvasId: options.canvasId ?? DefaultLayerService_1.GenerateLayerId(),
50
+ canvasId: null !== (_a = options.canvasId) && void 0 !== _a ? _a : DefaultLayerService_1.GenerateLayerId(),
52
51
  layerHandler: layerHandler
53
- }), stageLayers = this.layerMap.get(stage) || [];
52
+ })), stageLayers = this.layerMap.get(stage) || [];
54
53
  return stageLayers.push(layer), this.layerMap.set(stage, stageLayers), this.staticLayerCountInEnv--,
55
54
  layer;
56
55
  }
@@ -78,6 +77,7 @@ let DefaultLayerService = DefaultLayerService_1 = class {
78
77
  }
79
78
  };
80
79
 
80
+ DefaultLayerService.idprefix = "visactor_layer", DefaultLayerService.prefix_count = 0,
81
81
  DefaultLayerService = DefaultLayerService_1 = __decorate([ (0, inversify_lite_1.injectable)(), __metadata("design:paramtypes", []) ], DefaultLayerService),
82
82
  exports.DefaultLayerService = DefaultLayerService;
83
83
  //# sourceMappingURL=layer-service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/layer-service.ts"],"names":[],"mappings":"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","file":"layer-service.js","sourcesContent":["import { inject, injectable } from '../common/inversify-lite';\nimport type { ILayer, IStage, IGlobal, ILayerParams, LayerMode, ILayerHandlerContribution } from '../interface';\nimport { Layer } from './layer';\nimport type { ILayerService } from '../interface/core';\nimport { container } from '../container';\nimport {\n DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution,\n VirtualLayerHandlerContribution\n} from './constants';\nimport { application } from '../application';\n\n@injectable()\nexport class DefaultLayerService implements ILayerService {\n declare layerMap: Map<IStage, ILayer[]>;\n declare staticLayerCountInEnv: number;\n declare dynamicLayerCountInEnv: number;\n declare inited: boolean;\n declare global: IGlobal;\n static idprefix: string = 'visactor_layer';\n static prefix_count: number = 0;\n\n static GenerateLayerId() {\n return `${DefaultLayerService.idprefix}_${DefaultLayerService.prefix_count++}`;\n }\n\n constructor() {\n this.layerMap = new Map();\n this.global = application.global;\n }\n\n tryInit() {\n if (!this.inited) {\n this.staticLayerCountInEnv = this.global.getStaticCanvasCount();\n this.dynamicLayerCountInEnv = this.global.getDynamicCanvasCount();\n this.inited = true;\n }\n }\n\n getStageLayer(stage: IStage) {\n return this.layerMap.get(stage);\n }\n\n getRecommendedLayerType(layerMode?: LayerMode): LayerMode {\n if (layerMode) {\n return layerMode;\n }\n // 默认推荐实体canvas,不行就推荐离屏canvas,最次才是virtual\n if (this.staticLayerCountInEnv !== 0) {\n return 'static';\n } else if (this.dynamicLayerCountInEnv !== 0) {\n return 'dynamic';\n }\n return 'virtual';\n }\n\n getLayerHandler(layerMode: LayerMode) {\n let layerHandler: ILayerHandlerContribution;\n if (layerMode === 'static') {\n layerHandler = container.get<ILayerHandlerContribution>(StaticLayerHandlerContribution);\n } else if (layerMode === 'dynamic') {\n layerHandler = container.get<ILayerHandlerContribution>(DynamicLayerHandlerContribution);\n } else {\n layerHandler = container.get<ILayerHandlerContribution>(VirtualLayerHandlerContribution);\n }\n return layerHandler;\n }\n\n createLayer(stage: IStage, options: Partial<ILayerParams> = { main: false }): ILayer {\n this.tryInit();\n let layerMode = this.getRecommendedLayerType(options.layerMode);\n layerMode = options.main ? 'static' : options.canvasId ? 'static' : layerMode;\n const layerHandler = this.getLayerHandler(layerMode);\n const layer = new Layer(stage, this.global, stage.window, {\n main: false,\n ...options,\n layerMode,\n canvasId: options.canvasId ?? DefaultLayerService.GenerateLayerId(),\n layerHandler\n });\n const stageLayers = this.layerMap.get(stage) || [];\n stageLayers.push(layer);\n this.layerMap.set(stage, stageLayers);\n this.staticLayerCountInEnv--;\n return layer;\n }\n\n prepareStageLayer(stage: IStage) {\n let mainHandler: ILayerHandlerContribution;\n stage.forEachChildren((l: ILayer) => {\n const handler = l.getNativeHandler();\n if (handler.type === 'virtual') {\n handler.mainHandler = mainHandler;\n mainHandler.secondaryHandlers.push(handler);\n } else {\n mainHandler = handler;\n mainHandler.secondaryHandlers = [];\n }\n });\n }\n\n releaseLayer(stage: IStage, layer: ILayer): void {\n layer.release();\n const stageLayers = this.layerMap.get(stage) || [];\n this.layerMap.set(\n stage,\n stageLayers.filter(l => l !== layer)\n );\n }\n\n layerCount(stage: IStage): number {\n return (this.layerMap.get(stage) || []).length;\n }\n restLayerCount(stage: IStage): number {\n // TODO: 设置精确的值\n if (this.global.env === 'browser') {\n return 10;\n }\n return 0;\n }\n\n releaseStage(stage: IStage) {\n this.layerMap.delete(stage);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/layer-service.ts"],"names":[],"mappings":"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","file":"layer-service.js","sourcesContent":["import { inject, injectable } from '../common/inversify-lite';\nimport type { ILayer, IStage, IGlobal, ILayerParams, LayerMode, ILayerHandlerContribution } from '../interface';\nimport { Layer } from './layer';\nimport type { ILayerService } from '../interface/core';\nimport { container } from '../container';\nimport {\n DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution,\n VirtualLayerHandlerContribution\n} from './constants';\nimport { application } from '../application';\n\n@injectable()\nexport class DefaultLayerService implements ILayerService {\n declare layerMap: Map<IStage, ILayer[]>;\n declare staticLayerCountInEnv: number;\n declare dynamicLayerCountInEnv: number;\n declare inited: boolean;\n declare global: IGlobal;\n static idprefix: string = 'visactor_layer';\n static prefix_count: number = 0;\n\n static GenerateLayerId() {\n return `${DefaultLayerService.idprefix}_${DefaultLayerService.prefix_count++}`;\n }\n\n constructor() {\n this.layerMap = new Map();\n this.global = application.global;\n }\n\n tryInit() {\n if (!this.inited) {\n this.staticLayerCountInEnv = this.global.getStaticCanvasCount();\n this.dynamicLayerCountInEnv = this.global.getDynamicCanvasCount();\n this.inited = true;\n }\n }\n\n getStageLayer(stage: IStage) {\n return this.layerMap.get(stage);\n }\n\n getRecommendedLayerType(layerMode?: LayerMode): LayerMode {\n if (layerMode) {\n return layerMode;\n }\n // 默认推荐实体canvas,不行就推荐离屏canvas,最次才是virtual\n if (this.staticLayerCountInEnv !== 0) {\n return 'static';\n } else if (this.dynamicLayerCountInEnv !== 0) {\n return 'dynamic';\n }\n return 'virtual';\n }\n\n getLayerHandler(layerMode: LayerMode) {\n let layerHandler: ILayerHandlerContribution;\n if (layerMode === 'static') {\n layerHandler = container.get<ILayerHandlerContribution>(StaticLayerHandlerContribution);\n } else if (layerMode === 'dynamic') {\n layerHandler = container.get<ILayerHandlerContribution>(DynamicLayerHandlerContribution);\n } else {\n layerHandler = container.get<ILayerHandlerContribution>(VirtualLayerHandlerContribution);\n }\n return layerHandler;\n }\n\n createLayer(stage: IStage, options: Partial<ILayerParams> = { main: false }): ILayer {\n this.tryInit();\n let layerMode = this.getRecommendedLayerType(options.layerMode);\n layerMode = options.main ? 'static' : options.canvasId ? 'static' : layerMode;\n const layerHandler = this.getLayerHandler(layerMode);\n const layer = new Layer(stage, this.global, stage.window, {\n main: false,\n ...options,\n layerMode,\n canvasId: options.canvasId ?? DefaultLayerService.GenerateLayerId(),\n layerHandler\n });\n const stageLayers = this.layerMap.get(stage) || [];\n stageLayers.push(layer);\n this.layerMap.set(stage, stageLayers);\n this.staticLayerCountInEnv--;\n return layer;\n }\n\n prepareStageLayer(stage: IStage) {\n let mainHandler: ILayerHandlerContribution;\n stage.forEachChildren((l: ILayer) => {\n const handler = l.getNativeHandler();\n if (handler.type === 'virtual') {\n handler.mainHandler = mainHandler;\n mainHandler.secondaryHandlers.push(handler);\n } else {\n mainHandler = handler;\n mainHandler.secondaryHandlers = [];\n }\n });\n }\n\n releaseLayer(stage: IStage, layer: ILayer): void {\n layer.release();\n const stageLayers = this.layerMap.get(stage) || [];\n this.layerMap.set(\n stage,\n stageLayers.filter(l => l !== layer)\n );\n }\n\n layerCount(stage: IStage): number {\n return (this.layerMap.get(stage) || []).length;\n }\n restLayerCount(stage: IStage): number {\n // TODO: 设置精确的值\n if (this.global.env === 'browser') {\n return 10;\n }\n return 0;\n }\n\n releaseStage(stage: IStage) {\n this.layerMap.delete(stage);\n }\n}\n"]}
package/cjs/core/layer.js CHANGED
@@ -32,13 +32,14 @@ class Layer extends group_1.Group {
32
32
  return this._dpr;
33
33
  }
34
34
  constructor(stage, global, window, params) {
35
+ var _a;
35
36
  super({}), this.stage = stage, this.global = global, this.window = window, this.main = params.main,
36
37
  this.layerHandler = params.layerHandler, this.layerHandler.init(this, window, {
37
38
  main: params.main,
38
39
  canvasId: params.canvasId,
39
40
  width: this.viewWidth,
40
41
  height: this.viewHeight,
41
- zIndex: params.zIndex ?? 0
42
+ zIndex: null !== (_a = params.zIndex) && void 0 !== _a ? _a : 0
42
43
  }), this.layer = this, this.subLayers = new Map, this.theme = new theme_1.Theme,
43
44
  this.background = "rgba(0, 0, 0, 0)", this.afterDrawCbs = [];
44
45
  }
@@ -66,13 +67,14 @@ class Layer extends group_1.Group {
66
67
  }));
67
68
  }
68
69
  render(params, userParams) {
70
+ var _a;
69
71
  this.layerHandler.render([ this ], {
70
72
  renderService: params.renderService,
71
73
  stage: this.stage,
72
74
  layer: this,
73
75
  viewBox: params.viewBox,
74
76
  transMatrix: params.transMatrix,
75
- background: params.background ?? this.background,
77
+ background: null !== (_a = params.background) && void 0 !== _a ? _a : this.background,
76
78
  updateBounds: params.updateBounds
77
79
  }, userParams), this.afterDrawCbs.forEach((c => c(this))), this.tryRenderSecondaryLayer(params, userParams);
78
80
  }
@@ -101,15 +103,15 @@ class Layer extends group_1.Group {
101
103
  }));
102
104
  }
103
105
  drawTo(target, params) {
104
- this.layerHandler.drawTo(target, [ this ], {
105
- background: params.background ?? this.background,
106
+ var _a;
107
+ this.layerHandler.drawTo(target, [ this ], Object.assign({
108
+ background: null !== (_a = params.background) && void 0 !== _a ? _a : this.background,
106
109
  renderService: params.renderService,
107
110
  viewBox: params.viewBox,
108
111
  transMatrix: params.transMatrix,
109
112
  stage: this.stage,
110
- layer: this,
111
- ...params
112
- }), this.afterDrawCbs.forEach((c => c(this)));
113
+ layer: this
114
+ }, params)), this.afterDrawCbs.forEach((c => c(this)));
113
115
  }
114
116
  }
115
117
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/layer.ts"],"names":[],"mappings":"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","file":"layer.js","sourcesContent":["import type { AABBBounds, IBoundsLike } from '@visactor/vutils';\nimport { application } from '../application';\nimport { container } from '../container';\nimport type {\n IDrawToParams,\n IGraphic,\n IGroup,\n ILayer,\n ILayerDrawParams,\n IStage,\n IGlobal,\n ILayerHandlerContribution,\n IDrawContext,\n ILayerHandlerDrawParams,\n IDrawContribution,\n IWindow,\n ILayerParams,\n LayerMode\n} from '../interface';\nimport { Theme } from '../graphic/theme';\nimport { Group } from '../graphic/group';\n\ntype BlendMode = 'normal';\n\n// layer需要有多个,对于Canvas来说,layer可以绑定一个canvas或一个ImageData\n// 对于WebGL来说,layer对应一个FrameBuffer\n// 对于Native来说,layer保留一个FrameBufferHandler\nexport class Layer extends Group implements ILayer {\n declare parent: any;\n\n declare _dpr: number;\n declare main: boolean;\n declare renderCount: number;\n\n declare afterDrawCbs: ((l: this) => void)[];\n\n declare imageData?: ImageData;\n // 混合模式,用于多图层混合\n declare blendMode: BlendMode;\n\n declare background: string;\n declare opacity: number;\n\n declare layer: this;\n declare subLayers: Map<\n number,\n { layer: ILayer; group?: IGroup; zIndex: number; drawContribution?: IDrawContribution }\n >;\n\n get offscreen(): boolean {\n return this.layerHandler.offscreen;\n }\n\n get layerMode(): LayerMode {\n return this.layerHandler.type;\n }\n\n // stage控制\n // width: number;\n // height: number;\n get width(): number {\n if (!this.stage) {\n return 0;\n }\n return this.stage.width;\n }\n get height(): number {\n if (!this.stage) {\n return 0;\n }\n return this.stage.height;\n }\n get viewWidth(): number {\n if (!this.stage) {\n return 0;\n }\n return this.stage.viewWidth;\n }\n get viewHeight(): number {\n if (!this.stage) {\n return 0;\n }\n return this.stage.viewHeight;\n }\n declare pickable: boolean;\n\n get dirtyBound(): AABBBounds {\n // this.getRootNode<any>();\n throw new Error('暂不支持');\n }\n\n get dpr(): number {\n return this._dpr;\n }\n\n declare stage?: IStage;\n protected declare global: IGlobal;\n protected declare window: IWindow;\n protected declare layerHandler: ILayerHandlerContribution;\n\n constructor(stage: IStage, global: IGlobal, window: IWindow, params: ILayerParams) {\n super({});\n this.stage = stage;\n this.global = global;\n this.window = window;\n this.main = params.main;\n this.layerHandler = params.layerHandler;\n // this.layerHandler = container.get<ILayerHandlerContribution>(LayerHandlerContribution);\n this.layerHandler.init(this, window, {\n main: params.main,\n canvasId: params.canvasId,\n width: this.viewWidth,\n height: this.viewHeight,\n zIndex: params.zIndex ?? 0\n });\n this.layer = this;\n this.subLayers = new Map();\n this.theme = new Theme();\n this.background = 'rgba(0, 0, 0, 0)';\n this.afterDrawCbs = [];\n }\n\n combineSubLayer(removeIncrementalKey: boolean = true) {\n const subLayers = Array.from(this.subLayers.values()).sort((a, b) => {\n return a.zIndex - b.zIndex;\n });\n this.layerHandler.merge(\n subLayers.map(l => {\n if (l.layer.subLayers.size) {\n l.layer.combineSubLayer(removeIncrementalKey);\n }\n return l.layer.getNativeHandler();\n })\n );\n if (removeIncrementalKey) {\n subLayers.forEach(l => {\n l.group && (l.group.incremental = 0);\n });\n }\n subLayers.forEach(l => {\n // l.layer.release();\n application.layerService.releaseLayer(this.stage, l.layer);\n });\n this.subLayers.clear();\n }\n\n getNativeHandler(): ILayerHandlerContribution {\n return this.layerHandler;\n }\n\n setStage(stage?: IStage, layer?: ILayer) {\n super.setStage(stage, this);\n }\n\n // 选中图层中的节点\n pick(x: number, y: number): { graphic?: IGraphic; group?: IGroup } | false {\n throw new Error('暂不支持');\n }\n // 绘制依赖的副layer\n protected tryRenderSecondaryLayer(params: ILayerDrawParams, userParams?: Partial<IDrawContext>) {\n if (this.layerHandler.secondaryHandlers && this.layerHandler.secondaryHandlers.length) {\n this.layerHandler.secondaryHandlers.forEach(h => {\n h.layer.renderCount = this.renderCount;\n h.layer.render(params, userParams);\n });\n }\n }\n // 绘制图层\n render(params: ILayerDrawParams, userParams?: Partial<IDrawContext>) {\n this.layerHandler.render(\n [this],\n {\n renderService: params.renderService,\n stage: this.stage,\n layer: this,\n viewBox: params.viewBox,\n transMatrix: params.transMatrix,\n // TODO: 多图层时不应该再用默认background\n background: params.background ?? this.background,\n updateBounds: params.updateBounds\n },\n userParams\n );\n this.afterDrawCbs.forEach(c => c(this));\n this.tryRenderSecondaryLayer(params, userParams);\n }\n resize(w: number, h: number) {\n this.layerHandler.resize(w, h);\n }\n resizeView(w: number, h: number) {\n this.layerHandler.resizeView(w, h);\n }\n setDpr(dpr: number) {\n this.layerHandler.setDpr(dpr);\n }\n afterDraw(cb: (l: this) => void) {\n this.afterDrawCbs.push(cb);\n }\n\n // 动画相关\n startAnimate(t: number) {\n throw new Error('暂不支持');\n }\n\n setToFrame(t: number) {\n throw new Error('暂不支持');\n }\n\n prepare(dirtyBounds: IBoundsLike, params: ILayerHandlerDrawParams) {\n return;\n }\n\n // // 合并到某个target上\n // combineTo(target: IWindow, params: IDrawToParams) {\n // if (this.offscreen) {\n // this.layerHandler.drawTo(target, [this], {\n // // TODO: 多图层时不应该再用默认background\n // background: params.background ?? this.background,\n // renderService: params.renderService,\n // stage: this.stage,\n // layer: this,\n // ...params\n // });\n // this.afterDrawCbs.forEach(c => c(this));\n // }\n // }\n\n release(): void {\n super.release();\n this.layerHandler.release();\n if (this.subLayers) {\n this.subLayers.forEach(l => {\n // l.layer.release();\n application.layerService.releaseLayer(this.stage, l.layer);\n });\n }\n }\n\n drawTo(target: IWindow, params: IDrawToParams) {\n this.layerHandler.drawTo(target, [this], {\n // TODO: 多图层时不应该再用默认background\n background: params.background ?? this.background,\n renderService: params.renderService,\n viewBox: params.viewBox,\n transMatrix: params.transMatrix,\n stage: this.stage,\n layer: this,\n ...params\n });\n this.afterDrawCbs.forEach(c => c(this));\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/layer.ts"],"names":[],"mappings":";;;AACA,gDAA6C;AAkB7C,4CAAyC;AACzC,4CAAyC;AAOzC,MAAa,KAAM,SAAQ,aAAK;IAsB9B,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;IAKD,IAAI,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,CAAC,CAAC;SACV;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,CAAC,CAAC;SACV;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,IAAI,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,CAAC,CAAC;SACV;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,CAAC,CAAC;SACV;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC/B,CAAC;IAGD,IAAI,UAAU;QAEZ,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAOD,YAAY,KAAa,EAAE,MAAe,EAAE,MAAe,EAAE,MAAoB;;QAC/E,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAExC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;YACnC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,MAAM,EAAE,MAAA,MAAM,CAAC,MAAM,mCAAI,CAAC;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,eAAe,CAAC,uBAAgC,IAAI;QAClD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,KAAK,CACrB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;gBAC1B,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;aAC/C;YACD,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACpC,CAAC,CAAC,CACH,CAAC;QACF,IAAI,oBAAoB,EAAE;YACxB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;SACJ;QACD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAEpB,yBAAW,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,KAAc,EAAE,KAAc;QACrC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAGD,IAAI,CAAC,CAAS,EAAE,CAAS;QACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAES,uBAAuB,CAAC,MAAwB,EAAE,UAAkC;QAC5F,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACrF,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC9C,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBACvC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,MAAM,CAAC,MAAwB,EAAE,UAAkC;;QACjE,IAAI,CAAC,YAAY,CAAC,MAAM,CACtB,CAAC,IAAI,CAAC,EACN;YACE,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAE/B,UAAU,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC,UAAU;YAChD,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,EACD,UAAU,CACX,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,UAAU,CAAC,CAAS,EAAE,CAAS;QAC7B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,SAAS,CAAC,EAAqB;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAGD,YAAY,CAAC,CAAS;QACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,WAAwB,EAAE,MAA+B;QAC/D,OAAO;IACT,CAAC;IAiBD,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAEzB,yBAAW,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,MAAM,CAAC,MAAe,EAAE,MAAqB;;QAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,kBAErC,UAAU,EAAE,MAAA,MAAM,CAAC,UAAU,mCAAI,IAAI,CAAC,UAAU,EAChD,aAAa,EAAE,MAAM,CAAC,aAAa,EACnC,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE,IAAI,IACR,MAAM,EACT,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAhOD,sBAgOC","file":"layer.js","sourcesContent":["import type { AABBBounds, IBoundsLike } from '@visactor/vutils';\nimport { application } from '../application';\nimport { container } from '../container';\nimport type {\n IDrawToParams,\n IGraphic,\n IGroup,\n ILayer,\n ILayerDrawParams,\n IStage,\n IGlobal,\n ILayerHandlerContribution,\n IDrawContext,\n ILayerHandlerDrawParams,\n IDrawContribution,\n IWindow,\n ILayerParams,\n LayerMode\n} from '../interface';\nimport { Theme } from '../graphic/theme';\nimport { Group } from '../graphic/group';\n\ntype BlendMode = 'normal';\n\n// layer需要有多个,对于Canvas来说,layer可以绑定一个canvas或一个ImageData\n// 对于WebGL来说,layer对应一个FrameBuffer\n// 对于Native来说,layer保留一个FrameBufferHandler\nexport class Layer extends Group implements ILayer {\n declare parent: any;\n\n declare _dpr: number;\n declare main: boolean;\n declare renderCount: number;\n\n declare afterDrawCbs: ((l: this) => void)[];\n\n declare imageData?: ImageData;\n // 混合模式,用于多图层混合\n declare blendMode: BlendMode;\n\n declare background: string;\n declare opacity: number;\n\n declare layer: this;\n declare subLayers: Map<\n number,\n { layer: ILayer; group?: IGroup; zIndex: number; drawContribution?: IDrawContribution }\n >;\n\n get offscreen(): boolean {\n return this.layerHandler.offscreen;\n }\n\n get layerMode(): LayerMode {\n return this.layerHandler.type;\n }\n\n // stage控制\n // width: number;\n // height: number;\n get width(): number {\n if (!this.stage) {\n return 0;\n }\n return this.stage.width;\n }\n get height(): number {\n if (!this.stage) {\n return 0;\n }\n return this.stage.height;\n }\n get viewWidth(): number {\n if (!this.stage) {\n return 0;\n }\n return this.stage.viewWidth;\n }\n get viewHeight(): number {\n if (!this.stage) {\n return 0;\n }\n return this.stage.viewHeight;\n }\n declare pickable: boolean;\n\n get dirtyBound(): AABBBounds {\n // this.getRootNode<any>();\n throw new Error('暂不支持');\n }\n\n get dpr(): number {\n return this._dpr;\n }\n\n declare stage?: IStage;\n protected declare global: IGlobal;\n protected declare window: IWindow;\n protected declare layerHandler: ILayerHandlerContribution;\n\n constructor(stage: IStage, global: IGlobal, window: IWindow, params: ILayerParams) {\n super({});\n this.stage = stage;\n this.global = global;\n this.window = window;\n this.main = params.main;\n this.layerHandler = params.layerHandler;\n // this.layerHandler = container.get<ILayerHandlerContribution>(LayerHandlerContribution);\n this.layerHandler.init(this, window, {\n main: params.main,\n canvasId: params.canvasId,\n width: this.viewWidth,\n height: this.viewHeight,\n zIndex: params.zIndex ?? 0\n });\n this.layer = this;\n this.subLayers = new Map();\n this.theme = new Theme();\n this.background = 'rgba(0, 0, 0, 0)';\n this.afterDrawCbs = [];\n }\n\n combineSubLayer(removeIncrementalKey: boolean = true) {\n const subLayers = Array.from(this.subLayers.values()).sort((a, b) => {\n return a.zIndex - b.zIndex;\n });\n this.layerHandler.merge(\n subLayers.map(l => {\n if (l.layer.subLayers.size) {\n l.layer.combineSubLayer(removeIncrementalKey);\n }\n return l.layer.getNativeHandler();\n })\n );\n if (removeIncrementalKey) {\n subLayers.forEach(l => {\n l.group && (l.group.incremental = 0);\n });\n }\n subLayers.forEach(l => {\n // l.layer.release();\n application.layerService.releaseLayer(this.stage, l.layer);\n });\n this.subLayers.clear();\n }\n\n getNativeHandler(): ILayerHandlerContribution {\n return this.layerHandler;\n }\n\n setStage(stage?: IStage, layer?: ILayer) {\n super.setStage(stage, this);\n }\n\n // 选中图层中的节点\n pick(x: number, y: number): { graphic?: IGraphic; group?: IGroup } | false {\n throw new Error('暂不支持');\n }\n // 绘制依赖的副layer\n protected tryRenderSecondaryLayer(params: ILayerDrawParams, userParams?: Partial<IDrawContext>) {\n if (this.layerHandler.secondaryHandlers && this.layerHandler.secondaryHandlers.length) {\n this.layerHandler.secondaryHandlers.forEach(h => {\n h.layer.renderCount = this.renderCount;\n h.layer.render(params, userParams);\n });\n }\n }\n // 绘制图层\n render(params: ILayerDrawParams, userParams?: Partial<IDrawContext>) {\n this.layerHandler.render(\n [this],\n {\n renderService: params.renderService,\n stage: this.stage,\n layer: this,\n viewBox: params.viewBox,\n transMatrix: params.transMatrix,\n // TODO: 多图层时不应该再用默认background\n background: params.background ?? this.background,\n updateBounds: params.updateBounds\n },\n userParams\n );\n this.afterDrawCbs.forEach(c => c(this));\n this.tryRenderSecondaryLayer(params, userParams);\n }\n resize(w: number, h: number) {\n this.layerHandler.resize(w, h);\n }\n resizeView(w: number, h: number) {\n this.layerHandler.resizeView(w, h);\n }\n setDpr(dpr: number) {\n this.layerHandler.setDpr(dpr);\n }\n afterDraw(cb: (l: this) => void) {\n this.afterDrawCbs.push(cb);\n }\n\n // 动画相关\n startAnimate(t: number) {\n throw new Error('暂不支持');\n }\n\n setToFrame(t: number) {\n throw new Error('暂不支持');\n }\n\n prepare(dirtyBounds: IBoundsLike, params: ILayerHandlerDrawParams) {\n return;\n }\n\n // // 合并到某个target上\n // combineTo(target: IWindow, params: IDrawToParams) {\n // if (this.offscreen) {\n // this.layerHandler.drawTo(target, [this], {\n // // TODO: 多图层时不应该再用默认background\n // background: params.background ?? this.background,\n // renderService: params.renderService,\n // stage: this.stage,\n // layer: this,\n // ...params\n // });\n // this.afterDrawCbs.forEach(c => c(this));\n // }\n // }\n\n release(): void {\n super.release();\n this.layerHandler.release();\n if (this.subLayers) {\n this.subLayers.forEach(l => {\n // l.layer.release();\n application.layerService.releaseLayer(this.stage, l.layer);\n });\n }\n }\n\n drawTo(target: IWindow, params: IDrawToParams) {\n this.layerHandler.drawTo(target, [this], {\n // TODO: 多图层时不应该再用默认background\n background: params.background ?? this.background,\n renderService: params.renderService,\n viewBox: params.viewBox,\n transMatrix: params.transMatrix,\n stage: this.stage,\n layer: this,\n ...params\n });\n this.afterDrawCbs.forEach(c => c(this));\n }\n}\n"]}
package/cjs/core/stage.js CHANGED
@@ -13,13 +13,6 @@ const vutils_1 = require("@visactor/vutils"), window_1 = require("./window"), ev
13
13
  };
14
14
 
15
15
  class Stage extends graphic_1.Group {
16
- _background;
17
- nextFrameRenderLayerSet;
18
- willNextFrameRender;
19
- _cursor;
20
- renderCount;
21
- dirtyBounds;
22
- option3d;
23
16
  set viewBox(b) {
24
17
  this.window.setViewBox(b);
25
18
  }
@@ -71,7 +64,8 @@ class Stage extends graphic_1.Group {
71
64
  this.setDpr(r);
72
65
  }
73
66
  get background() {
74
- return this._background ?? DefaultConfig.BACKGROUND;
67
+ var _a;
68
+ return null !== (_a = this._background) && void 0 !== _a ? _a : DefaultConfig.BACKGROUND;
75
69
  }
76
70
  set background(b) {
77
71
  this._background = b;
@@ -79,33 +73,25 @@ class Stage extends graphic_1.Group {
79
73
  get defaultLayer() {
80
74
  return this.at(0);
81
75
  }
82
- ticker;
83
- autoRender;
84
- _enableLayout;
85
- htmlAttribute;
86
- reactAttribute;
87
- increaseAutoRender;
88
- view3dTranform;
89
- window;
90
- global;
91
- renderService;
92
- pickerService;
93
- pluginService;
94
- layerService;
95
- _eventSystem;
96
76
  get eventSystem() {
97
77
  return this._eventSystem;
98
78
  }
99
- _beforeRender;
100
- _afterRender;
101
- _skipRender;
102
- _afterNextRenderCbs;
103
- lastRenderparams;
104
- interactiveLayer;
105
- supportInteractiveLayer;
106
- timeline;
107
79
  constructor(params = {}) {
108
- super({}), this.params = params, this.theme = new graphic_1.Theme, this.hooks = {
80
+ var _a;
81
+ super({}), this._onVisibleChange = visible => {
82
+ if (!(this._skipRender < 0)) if (visible) {
83
+ if (this.dirtyBounds) {
84
+ const b = this.window.getViewBox();
85
+ this.dirtyBounds.setValue(b.x1, b.y1, b.width(), b.height());
86
+ }
87
+ this._skipRender > 1 && this.renderNextFrame(), this._skipRender = 0;
88
+ } else this._skipRender = 1;
89
+ }, this.beforeRender = stage => {
90
+ this._beforeRender && this._beforeRender(stage);
91
+ }, this.afterRender = stage => {
92
+ this.renderCount++, this._afterRender && this._afterRender(stage), this._afterNextRenderCbs && this._afterNextRenderCbs.forEach((cb => cb(stage))),
93
+ this._afterNextRenderCbs = null;
94
+ }, this.params = params, this.theme = new graphic_1.Theme, this.hooks = {
109
95
  beforeRender: new tapable_1.SyncHook([ "stage" ]),
110
96
  afterRender: new tapable_1.SyncHook([ "stage" ])
111
97
  }, this.global = application_1.application.global, !this.global.env && (0, env_check_1.isBrowserEnv)() && this.global.setEnv("browser"),
@@ -120,7 +106,7 @@ class Stage extends graphic_1.Group {
120
106
  canvasControled: !1 !== params.canvasControled,
121
107
  title: params.title || "",
122
108
  canvas: params.canvas
123
- }), this.state = "normal", this.renderCount = 0, this.tryInitEventSystem(), this._background = params.background ?? DefaultConfig.BACKGROUND,
109
+ }), this.state = "normal", this.renderCount = 0, this.tryInitEventSystem(), this._background = null !== (_a = params.background) && void 0 !== _a ? _a : DefaultConfig.BACKGROUND,
124
110
  this.appendChild(this.layerService.createLayer(this, {
125
111
  main: !0
126
112
  })), this.nextFrameRenderLayerSet = new Set, this.willNextFrameRender = !1, this.stage = this,
@@ -143,15 +129,14 @@ class Stage extends graphic_1.Group {
143
129
  this._skipRender = 0;
144
130
  }
145
131
  tryInitEventSystem() {
146
- this.global.supportEvent && !this._eventSystem && (this._eventSystem = new event_1.EventSystem({
132
+ this.global.supportEvent && !this._eventSystem && (this._eventSystem = new event_1.EventSystem(Object.assign({
147
133
  targetElement: this.window,
148
134
  resolution: this.window.dpr || this.global.devicePixelRatio,
149
135
  rootNode: this,
150
136
  global: this.global,
151
137
  supportsPointerEvents: this.params.supportsPointerEvents,
152
- supportsTouchEvents: this.params.supportsTouchEvents,
153
- ...this.params.event
154
- }));
138
+ supportsTouchEvents: this.params.supportsTouchEvents
139
+ }, this.params.event)));
155
140
  }
156
141
  preventRender(prevent) {
157
142
  prevent ? this._skipRender = -1 / 0 : !1 !== this.params.optimize.skipRenderWithOutRange ? this._skipRender = this.window.isVisible() ? 0 : 1 : this._skipRender = 0;
@@ -163,15 +148,6 @@ class Stage extends graphic_1.Group {
163
148
  skipRenderWithOutRange && (this._skipRender = this._skipRender < 0 ? this._skipRender : this.window.isVisible() ? 0 : 1,
164
149
  this.window.onVisibleChange(this._onVisibleChange));
165
150
  }
166
- _onVisibleChange=visible => {
167
- if (!(this._skipRender < 0)) if (visible) {
168
- if (this.dirtyBounds) {
169
- const b = this.window.getViewBox();
170
- this.dirtyBounds.setValue(b.x1, b.y1, b.width(), b.height());
171
- }
172
- this._skipRender > 1 && this.renderNextFrame(), this._skipRender = 0;
173
- } else this._skipRender = 1;
174
- };
175
151
  getTimeline() {
176
152
  return this.timeline;
177
153
  }
@@ -184,8 +160,7 @@ class Stage extends graphic_1.Group {
184
160
  dy: 0,
185
161
  dz: 0
186
162
  }, light: light = {}, alpha: alpha = 0, beta: beta = 0, camera: camera, fieldRatio: fieldRatio = 1, fieldDepth: fieldDepth} = options;
187
- return {
188
- ...options,
163
+ return Object.assign(Object.assign({}, options), {
189
164
  center: center,
190
165
  light: light,
191
166
  alpha: alpha,
@@ -193,11 +168,12 @@ class Stage extends graphic_1.Group {
193
168
  camera: camera,
194
169
  fieldRatio: fieldRatio,
195
170
  fieldDepth: fieldDepth
196
- };
171
+ });
197
172
  }
198
173
  set3dOptions(options) {
174
+ var _a, _b, _d, _e, _f, _g;
199
175
  this.option3d = options;
200
- const options3d = this.get3dOptions(options), {light: light, center: center, camera: camera, alpha: alpha, beta: beta, fieldRatio: fieldRatio, fieldDepth: fieldDepth} = options3d, {dir: dir = [ 1, 1, -1 ], color: color = "white", ambient: ambient} = light, centerX = (center.x ?? this.width / 2) + (center.dx ?? 0), centerY = (center.y ?? this.height / 2) + (center.dy ?? 0), centerVec3 = [ centerX, centerY, (center.z ?? 0) + (center.dz ?? 0) ];
176
+ const options3d = this.get3dOptions(options), {light: light, center: center, camera: camera, alpha: alpha, beta: beta, fieldRatio: fieldRatio, fieldDepth: fieldDepth} = options3d, {dir: dir = [ 1, 1, -1 ], color: color = "white", ambient: ambient} = light, centerX = (null !== (_a = center.x) && void 0 !== _a ? _a : this.width / 2) + (null !== (_b = center.dx) && void 0 !== _b ? _b : 0), centerY = (null !== (_d = center.y) && void 0 !== _d ? _d : this.height / 2) + (null !== (_e = center.dy) && void 0 !== _e ? _e : 0), centerVec3 = [ centerX, centerY, (null !== (_f = center.z) && void 0 !== _f ? _f : 0) + (null !== (_g = center.dz) && void 0 !== _g ? _g : 0) ];
201
177
  let cameraX = 0, cameraY = 0, cameraZ = 0;
202
178
  camera || (cameraX = Math.sin(alpha) + centerX, cameraY = Math.sin(beta) + centerY,
203
179
  cameraZ = Math.cos(alpha) * Math.cos(beta) * 1), this.light = new light_1.DirectionalLight(dir, color, ambient);
@@ -217,13 +193,6 @@ class Stage extends graphic_1.Group {
217
193
  this.camera ? this.camera.params = cameraParams : this.camera = new camera_1.OrthoCamera(cameraParams),
218
194
  options.enableView3dTransform && this.enableView3dTransform();
219
195
  }
220
- beforeRender=stage => {
221
- this._beforeRender && this._beforeRender(stage);
222
- };
223
- afterRender=stage => {
224
- this.renderCount++, this._afterRender && this._afterRender(stage), this._afterNextRenderCbs && this._afterNextRenderCbs.forEach((cb => cb(stage))),
225
- this._afterNextRenderCbs = null;
226
- };
227
196
  setBeforeRender(cb) {
228
197
  this._beforeRender = cb;
229
198
  }
@@ -377,19 +346,17 @@ class Stage extends graphic_1.Group {
377
346
  updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty()),
378
347
  viewBox: this.window.getViewBox(),
379
348
  transMatrix: this.window.getViewBoxTransform()
380
- }, {
381
- renderStyle: this.renderStyle,
382
- ...params
383
- }));
349
+ }, Object.assign({
350
+ renderStyle: this.renderStyle
351
+ }, params)));
384
352
  })), this.interactiveLayer && !layerList.includes(this.interactiveLayer) && this.interactiveLayer.render({
385
353
  renderService: this.renderService,
386
354
  updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty()),
387
355
  viewBox: this.window.getViewBox(),
388
356
  transMatrix: this.window.getViewBoxTransform()
389
- }, {
390
- renderStyle: this.renderStyle,
391
- ...params
392
- });
357
+ }, Object.assign({
358
+ renderStyle: this.renderStyle
359
+ }, params));
393
360
  }
394
361
  resizeWindow(w, h, rerender = !0) {
395
362
  this.window.resize(w, h), rerender && this.render();
@@ -404,11 +371,10 @@ class Stage extends graphic_1.Group {
404
371
  this.viewBox.setValue(this.viewBox.x1, this.viewBox.y1, this.viewBox.x1 + w, this.viewBox.y1 + h),
405
372
  this.forEachChildren((c => {
406
373
  c.resizeView(w, h);
407
- })), this.camera && (this.camera.params = {
408
- ...this.camera.params,
374
+ })), this.camera && (this.camera.params = Object.assign(Object.assign({}, this.camera.params), {
409
375
  right: this.width,
410
376
  bottom: this.height
411
- }), rerender && this.render();
377
+ })), rerender && this.render();
412
378
  }
413
379
  setViewBox(x, y, w, h, rerender) {
414
380
  let isRerender = !0;
@@ -433,7 +399,7 @@ class Stage extends graphic_1.Group {
433
399
  const result = this.pickerService.pick(this.children, new vutils_1.Point(x, y), {
434
400
  bounds: this.AABBBounds
435
401
  });
436
- return !(!result?.graphic && !result?.group) && result;
402
+ return !(!(null == result ? void 0 : result.graphic) && !(null == result ? void 0 : result.group)) && result;
437
403
  }
438
404
  startAnimate(t) {
439
405
  throw new Error("暂不支持");