@visactor/vrender-core 0.19.4-alpha.4 → 0.19.4

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 (776) hide show
  1. package/cjs/allocator/allocator-modules.js +0 -2
  2. package/cjs/allocator/bounds-allocate.js +1 -1
  3. package/cjs/allocator/bounds-allocate.js.map +1 -1
  4. package/cjs/allocator/canvas-allocate.js +11 -9
  5. package/cjs/allocator/canvas-allocate.js.map +1 -1
  6. package/cjs/allocator/graphic-allocate.js +5 -9
  7. package/cjs/allocator/graphic-allocate.js.map +1 -1
  8. package/cjs/allocator/matrix-allocate.js +2 -6
  9. package/cjs/allocator/matrix-allocate.js.map +1 -1
  10. package/cjs/animate/Ticker/default-ticker.js +25 -14
  11. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  12. package/cjs/animate/animate.js +8 -7
  13. package/cjs/animate/animate.js.map +1 -1
  14. package/cjs/animate/config.js +1 -2
  15. package/cjs/animate/custom-animate.js +54 -51
  16. package/cjs/animate/custom-animate.js.map +1 -1
  17. package/cjs/animate/easing.js +19 -8
  18. package/cjs/animate/easing.js.map +1 -1
  19. package/cjs/animate/morphing.js +20 -23
  20. package/cjs/animate/morphing.js.map +1 -1
  21. package/cjs/application.js +7 -1
  22. package/cjs/application.js.map +1 -1
  23. package/cjs/canvas/conical-gradient.js +12 -5
  24. package/cjs/canvas/conical-gradient.js.map +1 -1
  25. package/cjs/canvas/contributions/base-canvas.js +19 -7
  26. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  27. package/cjs/color-string/interpolate.js +5 -3
  28. package/cjs/color-string/interpolate.js.map +1 -1
  29. package/cjs/color-string/store.js +3 -1
  30. package/cjs/color-string/store.js.map +1 -1
  31. package/cjs/common/bounds-context.js +1 -0
  32. package/cjs/common/bounds-context.js.map +1 -1
  33. package/cjs/common/canvas-utils.js +3 -6
  34. package/cjs/common/canvas-utils.js.map +1 -1
  35. package/cjs/common/contribution-provider.js +3 -0
  36. package/cjs/common/contribution-provider.js.map +1 -1
  37. package/cjs/common/custom-path2d.js +7 -1
  38. package/cjs/common/custom-path2d.js.map +1 -1
  39. package/cjs/common/generator.js +2 -1
  40. package/cjs/common/generator.js.map +1 -1
  41. package/cjs/common/inversify/binding.js +12 -0
  42. package/cjs/common/inversify/binding.js.map +1 -1
  43. package/cjs/common/inversify/container.js +4 -0
  44. package/cjs/common/inversify/container.js.map +1 -1
  45. package/cjs/common/inversify/cotainer-module.js +2 -0
  46. package/cjs/common/inversify/cotainer-module.js.map +1 -1
  47. package/cjs/common/inversify/meta-data.js +2 -0
  48. package/cjs/common/inversify/meta-data.js.map +1 -1
  49. package/cjs/common/inversify/syntax/binding_in_syntax.js +1 -0
  50. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  51. package/cjs/common/inversify/syntax/binding_to_syntax.js +1 -0
  52. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  53. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +1 -0
  54. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  55. package/cjs/common/inversify-lite/bindings/binding.js +14 -0
  56. package/cjs/common/inversify-lite/bindings/binding.js.map +1 -1
  57. package/cjs/common/inversify-lite/container/container.js +22 -46
  58. package/cjs/common/inversify-lite/container/container.js.map +1 -1
  59. package/cjs/common/inversify-lite/container/container_module.js +4 -0
  60. package/cjs/common/inversify-lite/container/container_module.js.map +1 -1
  61. package/cjs/common/inversify-lite/container/lookup.js +1 -0
  62. package/cjs/common/inversify-lite/container/lookup.js.map +1 -1
  63. package/cjs/common/inversify-lite/planning/context.js +4 -0
  64. package/cjs/common/inversify-lite/planning/context.js.map +1 -1
  65. package/cjs/common/inversify-lite/planning/metadata.js +2 -0
  66. package/cjs/common/inversify-lite/planning/metadata.js.map +1 -1
  67. package/cjs/common/inversify-lite/planning/plan.js +2 -0
  68. package/cjs/common/inversify-lite/planning/plan.js.map +1 -1
  69. package/cjs/common/inversify-lite/planning/queryable_string.js +1 -0
  70. package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
  71. package/cjs/common/inversify-lite/planning/request.js +8 -0
  72. package/cjs/common/inversify-lite/planning/request.js.map +1 -1
  73. package/cjs/common/inversify-lite/planning/target.js +7 -0
  74. package/cjs/common/inversify-lite/planning/target.js.map +1 -1
  75. package/cjs/common/inversify-lite/resolution/instantiation.js +16 -42
  76. package/cjs/common/inversify-lite/resolution/instantiation.js.map +1 -1
  77. package/cjs/common/inversify-lite/scope/scope.js +3 -29
  78. package/cjs/common/inversify-lite/scope/scope.js.map +1 -1
  79. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +1 -0
  80. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  81. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +3 -0
  82. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  83. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +1 -0
  84. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  85. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +1 -0
  86. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  87. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +2 -0
  88. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  89. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +1 -0
  90. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  91. package/cjs/common/polygon.js +1 -2
  92. package/cjs/common/polygon.js.map +1 -1
  93. package/cjs/common/render-area.js +2 -3
  94. package/cjs/common/render-area.js.map +1 -1
  95. package/cjs/common/render-curve.js +4 -8
  96. package/cjs/common/render-curve.js.map +1 -1
  97. package/cjs/common/seg-context.js +12 -3
  98. package/cjs/common/seg-context.js.map +1 -1
  99. package/cjs/common/segment/basis.js +13 -0
  100. package/cjs/common/segment/basis.js.map +1 -1
  101. package/cjs/common/segment/common.js +2 -2
  102. package/cjs/common/segment/common.js.map +1 -1
  103. package/cjs/common/segment/curve/arc.js +2 -2
  104. package/cjs/common/segment/curve/arc.js.map +1 -1
  105. package/cjs/common/segment/curve/base.js +4 -0
  106. package/cjs/common/segment/curve/base.js.map +1 -1
  107. package/cjs/common/segment/curve/cubic-bezier.js +2 -2
  108. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  109. package/cjs/common/segment/curve/curve-context.js +4 -0
  110. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  111. package/cjs/common/segment/curve/ellipse.js +3 -3
  112. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  113. package/cjs/common/segment/curve/line.js +2 -1
  114. package/cjs/common/segment/curve/line.js.map +1 -1
  115. package/cjs/common/segment/curve/move.js +2 -1
  116. package/cjs/common/segment/curve/move.js.map +1 -1
  117. package/cjs/common/segment/curve/path.js +2 -0
  118. package/cjs/common/segment/curve/path.js.map +1 -1
  119. package/cjs/common/segment/curve/quadratic-bezier.js +2 -2
  120. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  121. package/cjs/common/segment/linear-closed.js.map +1 -1
  122. package/cjs/common/segment/linear.js +10 -0
  123. package/cjs/common/segment/linear.js.map +1 -1
  124. package/cjs/common/segment/monotone.js +13 -0
  125. package/cjs/common/segment/monotone.js.map +1 -1
  126. package/cjs/common/segment/step.js +13 -2
  127. package/cjs/common/segment/step.js.map +1 -1
  128. package/cjs/common/sort.js +3 -34
  129. package/cjs/common/sort.js.map +1 -1
  130. package/cjs/common/split-path.js +4 -11
  131. package/cjs/common/split-path.js.map +1 -1
  132. package/cjs/common/utils.d.ts +1 -1
  133. package/cjs/common/utils.js +10 -6
  134. package/cjs/common/utils.js.map +1 -1
  135. package/cjs/common/xml/parser.js +3 -2
  136. package/cjs/common/xml/parser.js.map +1 -1
  137. package/cjs/core/camera.js +11 -4
  138. package/cjs/core/camera.js.map +1 -1
  139. package/cjs/core/contributions/env/base-contribution.js +6 -0
  140. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  141. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +20 -11
  142. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  143. package/cjs/core/contributions/layerHandler/empty-contribution.js +8 -8
  144. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  145. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +5 -6
  146. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  147. package/cjs/core/contributions/textMeasure/AtextMeasure.js +11 -8
  148. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  149. package/cjs/core/contributions/textMeasure/layout.js +3 -0
  150. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  151. package/cjs/core/contributions/window/base-contribution.js +2 -0
  152. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  153. package/cjs/core/global.js +8 -0
  154. package/cjs/core/global.js.map +1 -1
  155. package/cjs/core/graphic-utils.js +16 -5
  156. package/cjs/core/graphic-utils.js.map +1 -1
  157. package/cjs/core/layer-service.js +7 -7
  158. package/cjs/core/layer-service.js.map +1 -1
  159. package/cjs/core/layer.js +7 -9
  160. package/cjs/core/layer.js.map +1 -1
  161. package/cjs/core/stage.js +79 -35
  162. package/cjs/core/stage.js.map +1 -1
  163. package/cjs/core/window.js +16 -13
  164. package/cjs/core/window.js.map +1 -1
  165. package/cjs/event/event-manager.js +152 -143
  166. package/cjs/event/event-manager.js.map +1 -1
  167. package/cjs/event/event-system.js +60 -43
  168. package/cjs/event/event-system.js.map +1 -1
  169. package/cjs/event/event-target.js +1 -3
  170. package/cjs/event/event-target.js.map +1 -1
  171. package/cjs/event/federated-event/base-event.js +43 -15
  172. package/cjs/event/federated-event/base-event.js.map +1 -1
  173. package/cjs/event/federated-event/mouse-event.js +27 -18
  174. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  175. package/cjs/event/federated-event/pointer-event.js +13 -8
  176. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  177. package/cjs/event/federated-event/wheel-event.js +14 -10
  178. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  179. package/cjs/graphic/arc.js +10 -5
  180. package/cjs/graphic/arc.js.map +1 -1
  181. package/cjs/graphic/arc3d.js +7 -4
  182. package/cjs/graphic/arc3d.js.map +1 -1
  183. package/cjs/graphic/area.js +14 -9
  184. package/cjs/graphic/area.js.map +1 -1
  185. package/cjs/graphic/builtin-symbol/arrow.js +2 -3
  186. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  187. package/cjs/graphic/builtin-symbol/arrow2-down.js +2 -3
  188. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  189. package/cjs/graphic/builtin-symbol/arrow2-left.js +2 -3
  190. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  191. package/cjs/graphic/builtin-symbol/arrow2-right.js +2 -3
  192. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  193. package/cjs/graphic/builtin-symbol/arrow2-up.js +2 -3
  194. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  195. package/cjs/graphic/builtin-symbol/circle.js +2 -3
  196. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  197. package/cjs/graphic/builtin-symbol/close.js +2 -3
  198. package/cjs/graphic/builtin-symbol/close.js.map +1 -1
  199. package/cjs/graphic/builtin-symbol/cross.js +2 -3
  200. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  201. package/cjs/graphic/builtin-symbol/diamond.js +2 -3
  202. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  203. package/cjs/graphic/builtin-symbol/line-h.js +2 -3
  204. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
  205. package/cjs/graphic/builtin-symbol/line-v.js +2 -3
  206. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
  207. package/cjs/graphic/builtin-symbol/rect.js +2 -3
  208. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  209. package/cjs/graphic/builtin-symbol/square.js +2 -3
  210. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  211. package/cjs/graphic/builtin-symbol/star.js +2 -3
  212. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  213. package/cjs/graphic/builtin-symbol/stroke.js +2 -3
  214. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  215. package/cjs/graphic/builtin-symbol/thin-triangle.js +2 -3
  216. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  217. package/cjs/graphic/builtin-symbol/triangle-down.js +2 -3
  218. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  219. package/cjs/graphic/builtin-symbol/triangle-left.js +2 -3
  220. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  221. package/cjs/graphic/builtin-symbol/triangle-right.js +2 -3
  222. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  223. package/cjs/graphic/builtin-symbol/triangle-up.js +2 -3
  224. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  225. package/cjs/graphic/builtin-symbol/triangle.js +1 -3
  226. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  227. package/cjs/graphic/builtin-symbol/utils.js +6 -1
  228. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  229. package/cjs/graphic/builtin-symbol/wedge.js +2 -3
  230. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  231. package/cjs/graphic/builtin-symbol/wye.js +2 -3
  232. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  233. package/cjs/graphic/circle.js +8 -6
  234. package/cjs/graphic/circle.js.map +1 -1
  235. package/cjs/graphic/config.js +59 -32
  236. package/cjs/graphic/config.js.map +1 -1
  237. package/cjs/graphic/glyph.js +10 -9
  238. package/cjs/graphic/glyph.js.map +1 -1
  239. package/cjs/graphic/graphic-service/graphic-service.js +12 -8
  240. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  241. package/cjs/graphic/graphic.d.ts +1 -0
  242. package/cjs/graphic/graphic.js +32 -42
  243. package/cjs/graphic/graphic.js.map +1 -1
  244. package/cjs/graphic/group.js +9 -5
  245. package/cjs/graphic/group.js.map +1 -1
  246. package/cjs/graphic/image.js +18 -16
  247. package/cjs/graphic/image.js.map +1 -1
  248. package/cjs/graphic/line.js +11 -6
  249. package/cjs/graphic/line.js.map +1 -1
  250. package/cjs/graphic/node-tree.js +25 -44
  251. package/cjs/graphic/node-tree.js.map +1 -1
  252. package/cjs/graphic/path.js +12 -6
  253. package/cjs/graphic/path.js.map +1 -1
  254. package/cjs/graphic/polygon.js +7 -4
  255. package/cjs/graphic/polygon.js.map +1 -1
  256. package/cjs/graphic/pyramid3d.js +4 -3
  257. package/cjs/graphic/pyramid3d.js.map +1 -1
  258. package/cjs/graphic/rect.js +7 -3
  259. package/cjs/graphic/rect.js.map +1 -1
  260. package/cjs/graphic/rect3d.js +5 -4
  261. package/cjs/graphic/rect3d.js.map +1 -1
  262. package/cjs/graphic/richtext/frame.js +19 -0
  263. package/cjs/graphic/richtext/frame.js.map +1 -1
  264. package/cjs/graphic/richtext/icon.js +14 -6
  265. package/cjs/graphic/richtext/icon.js.map +1 -1
  266. package/cjs/graphic/richtext/line.js +14 -2
  267. package/cjs/graphic/richtext/line.js.map +1 -1
  268. package/cjs/graphic/richtext/paragraph.js +22 -0
  269. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  270. package/cjs/graphic/richtext/utils.js +1 -2
  271. package/cjs/graphic/richtext/utils.js.map +1 -1
  272. package/cjs/graphic/richtext/wrapper.js +12 -0
  273. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  274. package/cjs/graphic/richtext.js +38 -45
  275. package/cjs/graphic/richtext.js.map +1 -1
  276. package/cjs/graphic/shadow-root.js +2 -1
  277. package/cjs/graphic/shadow-root.js.map +1 -1
  278. package/cjs/graphic/symbol.js +12 -5
  279. package/cjs/graphic/symbol.js.map +1 -1
  280. package/cjs/graphic/text.js +45 -45
  281. package/cjs/graphic/text.js.map +1 -1
  282. package/cjs/graphic/theme.js +4 -0
  283. package/cjs/graphic/theme.js.map +1 -1
  284. package/cjs/graphic/tools.js +16 -44
  285. package/cjs/graphic/tools.js.map +1 -1
  286. package/cjs/graphic/wrap-text.js +7 -7
  287. package/cjs/graphic/wrap-text.js.map +1 -1
  288. package/cjs/interface/global.d.ts +2 -1
  289. package/cjs/interface/global.js.map +1 -1
  290. package/cjs/interface/graphic.d.ts +1 -0
  291. package/cjs/interface/graphic.js.map +1 -1
  292. package/cjs/picker/global-picker-service.js +1 -0
  293. package/cjs/picker/global-picker-service.js.map +1 -1
  294. package/cjs/picker/pick-interceptor.js +5 -15
  295. package/cjs/picker/pick-interceptor.js.map +1 -1
  296. package/cjs/picker/picker-service.js +5 -5
  297. package/cjs/picker/picker-service.js.map +1 -1
  298. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js +26 -20
  299. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  300. package/cjs/plugins/builtin-plugin/auto-render-plugin.js +5 -4
  301. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  302. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +5 -4
  303. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  304. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +11 -8
  305. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  306. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +28 -19
  307. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  308. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +12 -8
  309. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  310. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +6 -7
  311. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  312. package/cjs/plugins/plugin-service.js +1 -0
  313. package/cjs/plugins/plugin-service.js.map +1 -1
  314. package/cjs/render/contributions/render/arc-render.js +6 -4
  315. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  316. package/cjs/render/contributions/render/arc3d-render.js +5 -7
  317. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  318. package/cjs/render/contributions/render/area-render.js +21 -23
  319. package/cjs/render/contributions/render/area-render.js.map +1 -1
  320. package/cjs/render/contributions/render/base-render.js +5 -0
  321. package/cjs/render/contributions/render/base-render.js.map +1 -1
  322. package/cjs/render/contributions/render/circle-render.js +6 -4
  323. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  324. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +3 -4
  325. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  326. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js +6 -9
  327. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  328. package/cjs/render/contributions/render/contributions/base-contribution-render.js +10 -8
  329. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  330. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +4 -4
  331. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  332. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +3 -4
  333. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  334. package/cjs/render/contributions/render/contributions/group-contribution-render.js +1 -3
  335. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  336. package/cjs/render/contributions/render/contributions/image-contribution-render.js +1 -3
  337. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  338. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +11 -14
  339. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  340. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +3 -4
  341. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  342. package/cjs/render/contributions/render/contributions/text-contribution-render.js +6 -8
  343. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  344. package/cjs/render/contributions/render/draw-contribution.js +12 -14
  345. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  346. package/cjs/render/contributions/render/draw-interceptor.js +11 -21
  347. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  348. package/cjs/render/contributions/render/glyph-render.js +2 -3
  349. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  350. package/cjs/render/contributions/render/graphic-render.js +4 -1
  351. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  352. package/cjs/render/contributions/render/group-render.js +7 -3
  353. package/cjs/render/contributions/render/group-render.js.map +1 -1
  354. package/cjs/render/contributions/render/image-render.js +4 -2
  355. package/cjs/render/contributions/render/image-render.js.map +1 -1
  356. package/cjs/render/contributions/render/incremental-area-render.js +1 -3
  357. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  358. package/cjs/render/contributions/render/incremental-draw-contribution.js +80 -109
  359. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  360. package/cjs/render/contributions/render/incremental-line-render.js +1 -3
  361. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  362. package/cjs/render/contributions/render/line-render.js +12 -16
  363. package/cjs/render/contributions/render/line-render.js.map +1 -1
  364. package/cjs/render/contributions/render/path-render.js +8 -7
  365. package/cjs/render/contributions/render/path-render.js.map +1 -1
  366. package/cjs/render/contributions/render/polygon-render.js +6 -4
  367. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  368. package/cjs/render/contributions/render/pyramid3d-render.js +3 -5
  369. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  370. package/cjs/render/contributions/render/rect-render.js +8 -7
  371. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  372. package/cjs/render/contributions/render/rect3d-render.js +5 -7
  373. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  374. package/cjs/render/contributions/render/richtext-render.js +4 -3
  375. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  376. package/cjs/render/contributions/render/symbol-render.js +11 -14
  377. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  378. package/cjs/render/contributions/render/text-render.js +8 -8
  379. package/cjs/render/contributions/render/text-render.js.map +1 -1
  380. package/cjs/render/contributions/render/utils.js +1 -1
  381. package/cjs/render/contributions/render/utils.js.map +1 -1
  382. package/cjs/render/render-service.js +11 -2
  383. package/cjs/render/render-service.js.map +1 -1
  384. package/cjs/resource-loader/loader.js +13 -16
  385. package/cjs/resource-loader/loader.js.map +1 -1
  386. package/cjs/tapable/Hook.js +3 -0
  387. package/cjs/tapable/Hook.js.map +1 -1
  388. package/dist/index.es.js +28908 -0
  389. package/es/allocator/allocator-modules.js +0 -2
  390. package/es/allocator/bounds-allocate.js +1 -1
  391. package/es/allocator/bounds-allocate.js.map +1 -1
  392. package/es/allocator/canvas-allocate.js +11 -9
  393. package/es/allocator/canvas-allocate.js.map +1 -1
  394. package/es/allocator/graphic-allocate.js +5 -9
  395. package/es/allocator/graphic-allocate.js.map +1 -1
  396. package/es/allocator/matrix-allocate.js +2 -6
  397. package/es/allocator/matrix-allocate.js.map +1 -1
  398. package/es/animate/Ticker/default-ticker.js +25 -14
  399. package/es/animate/Ticker/default-ticker.js.map +1 -1
  400. package/es/animate/animate.js +7 -8
  401. package/es/animate/animate.js.map +1 -1
  402. package/es/animate/config.js +1 -2
  403. package/es/animate/custom-animate.js +52 -50
  404. package/es/animate/custom-animate.js.map +1 -1
  405. package/es/animate/easing.js +18 -8
  406. package/es/animate/easing.js.map +1 -1
  407. package/es/animate/morphing.js +20 -23
  408. package/es/animate/morphing.js.map +1 -1
  409. package/es/application.js +7 -1
  410. package/es/application.js.map +1 -1
  411. package/es/canvas/conical-gradient.js +12 -6
  412. package/es/canvas/conical-gradient.js.map +1 -1
  413. package/es/canvas/contributions/base-canvas.js +19 -7
  414. package/es/canvas/contributions/base-canvas.js.map +1 -1
  415. package/es/color-string/interpolate.js +5 -3
  416. package/es/color-string/interpolate.js.map +1 -1
  417. package/es/color-string/store.js +2 -2
  418. package/es/color-string/store.js.map +1 -1
  419. package/es/common/bounds-context.js +1 -0
  420. package/es/common/bounds-context.js.map +1 -1
  421. package/es/common/canvas-utils.js +3 -6
  422. package/es/common/canvas-utils.js.map +1 -1
  423. package/es/common/contribution-provider.js +3 -0
  424. package/es/common/contribution-provider.js.map +1 -1
  425. package/es/common/custom-path2d.js +7 -1
  426. package/es/common/custom-path2d.js.map +1 -1
  427. package/es/common/generator.js +1 -2
  428. package/es/common/generator.js.map +1 -1
  429. package/es/common/inversify/binding.js +12 -0
  430. package/es/common/inversify/binding.js.map +1 -1
  431. package/es/common/inversify/container.js +4 -0
  432. package/es/common/inversify/container.js.map +1 -1
  433. package/es/common/inversify/cotainer-module.js +2 -0
  434. package/es/common/inversify/cotainer-module.js.map +1 -1
  435. package/es/common/inversify/meta-data.js +2 -0
  436. package/es/common/inversify/meta-data.js.map +1 -1
  437. package/es/common/inversify/syntax/binding_in_syntax.js +1 -0
  438. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  439. package/es/common/inversify/syntax/binding_to_syntax.js +1 -0
  440. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  441. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +1 -0
  442. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  443. package/es/common/inversify-lite/bindings/binding.js +14 -0
  444. package/es/common/inversify-lite/bindings/binding.js.map +1 -1
  445. package/es/common/inversify-lite/container/container.js +22 -48
  446. package/es/common/inversify-lite/container/container.js.map +1 -1
  447. package/es/common/inversify-lite/container/container_module.js +4 -0
  448. package/es/common/inversify-lite/container/container_module.js.map +1 -1
  449. package/es/common/inversify-lite/container/lookup.js +1 -0
  450. package/es/common/inversify-lite/container/lookup.js.map +1 -1
  451. package/es/common/inversify-lite/planning/context.js +4 -0
  452. package/es/common/inversify-lite/planning/context.js.map +1 -1
  453. package/es/common/inversify-lite/planning/metadata.js +2 -0
  454. package/es/common/inversify-lite/planning/metadata.js.map +1 -1
  455. package/es/common/inversify-lite/planning/plan.js +2 -0
  456. package/es/common/inversify-lite/planning/plan.js.map +1 -1
  457. package/es/common/inversify-lite/planning/queryable_string.js +1 -0
  458. package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
  459. package/es/common/inversify-lite/planning/request.js +8 -0
  460. package/es/common/inversify-lite/planning/request.js.map +1 -1
  461. package/es/common/inversify-lite/planning/target.js +7 -0
  462. package/es/common/inversify-lite/planning/target.js.map +1 -1
  463. package/es/common/inversify-lite/resolution/instantiation.js +16 -44
  464. package/es/common/inversify-lite/resolution/instantiation.js.map +1 -1
  465. package/es/common/inversify-lite/scope/scope.js +3 -29
  466. package/es/common/inversify-lite/scope/scope.js.map +1 -1
  467. package/es/common/inversify-lite/syntax/binding_in_syntax.js +1 -0
  468. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  469. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +3 -0
  470. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  471. package/es/common/inversify-lite/syntax/binding_on_syntax.js +1 -0
  472. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  473. package/es/common/inversify-lite/syntax/binding_to_syntax.js +1 -0
  474. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  475. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +2 -0
  476. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  477. package/es/common/inversify-lite/syntax/binding_when_syntax.js +1 -0
  478. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  479. package/es/common/polygon.js +1 -2
  480. package/es/common/polygon.js.map +1 -1
  481. package/es/common/render-area.js +2 -3
  482. package/es/common/render-area.js.map +1 -1
  483. package/es/common/render-curve.js +4 -8
  484. package/es/common/render-curve.js.map +1 -1
  485. package/es/common/seg-context.js +12 -3
  486. package/es/common/seg-context.js.map +1 -1
  487. package/es/common/segment/basis.js +13 -0
  488. package/es/common/segment/basis.js.map +1 -1
  489. package/es/common/segment/common.js +1 -1
  490. package/es/common/segment/common.js.map +1 -1
  491. package/es/common/segment/curve/arc.js +2 -1
  492. package/es/common/segment/curve/arc.js.map +1 -1
  493. package/es/common/segment/curve/base.js +4 -0
  494. package/es/common/segment/curve/base.js.map +1 -1
  495. package/es/common/segment/curve/cubic-bezier.js +2 -2
  496. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  497. package/es/common/segment/curve/curve-context.js +4 -0
  498. package/es/common/segment/curve/curve-context.js.map +1 -1
  499. package/es/common/segment/curve/ellipse.js +3 -3
  500. package/es/common/segment/curve/ellipse.js.map +1 -1
  501. package/es/common/segment/curve/line.js +2 -1
  502. package/es/common/segment/curve/line.js.map +1 -1
  503. package/es/common/segment/curve/move.js +2 -1
  504. package/es/common/segment/curve/move.js.map +1 -1
  505. package/es/common/segment/curve/path.js +2 -0
  506. package/es/common/segment/curve/path.js.map +1 -1
  507. package/es/common/segment/curve/quadratic-bezier.js +2 -2
  508. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  509. package/es/common/segment/linear-closed.js.map +1 -1
  510. package/es/common/segment/linear.js +10 -0
  511. package/es/common/segment/linear.js.map +1 -1
  512. package/es/common/segment/monotone.js +13 -0
  513. package/es/common/segment/monotone.js.map +1 -1
  514. package/es/common/segment/step.js +12 -1
  515. package/es/common/segment/step.js.map +1 -1
  516. package/es/common/sort.js +3 -34
  517. package/es/common/sort.js.map +1 -1
  518. package/es/common/split-path.js +4 -11
  519. package/es/common/split-path.js.map +1 -1
  520. package/es/common/utils.d.ts +1 -1
  521. package/es/common/utils.js +9 -7
  522. package/es/common/utils.js.map +1 -1
  523. package/es/common/xml/parser.js +2 -2
  524. package/es/common/xml/parser.js.map +1 -1
  525. package/es/core/camera.js +11 -4
  526. package/es/core/camera.js.map +1 -1
  527. package/es/core/contributions/env/base-contribution.js +6 -0
  528. package/es/core/contributions/env/base-contribution.js.map +1 -1
  529. package/es/core/contributions/layerHandler/canvas2d-contribution.js +20 -11
  530. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  531. package/es/core/contributions/layerHandler/empty-contribution.js +8 -8
  532. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  533. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +5 -6
  534. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  535. package/es/core/contributions/textMeasure/AtextMeasure.js +11 -8
  536. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  537. package/es/core/contributions/textMeasure/layout.js +3 -0
  538. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  539. package/es/core/contributions/window/base-contribution.js +2 -0
  540. package/es/core/contributions/window/base-contribution.js.map +1 -1
  541. package/es/core/global.js +8 -0
  542. package/es/core/global.js.map +1 -1
  543. package/es/core/graphic-utils.js +16 -5
  544. package/es/core/graphic-utils.js.map +1 -1
  545. package/es/core/layer-service.js +7 -7
  546. package/es/core/layer-service.js.map +1 -1
  547. package/es/core/layer.js +7 -9
  548. package/es/core/layer.js.map +1 -1
  549. package/es/core/stage.js +79 -35
  550. package/es/core/stage.js.map +1 -1
  551. package/es/core/window.js +16 -14
  552. package/es/core/window.js.map +1 -1
  553. package/es/event/event-manager.js +152 -143
  554. package/es/event/event-manager.js.map +1 -1
  555. package/es/event/event-system.js +60 -43
  556. package/es/event/event-system.js.map +1 -1
  557. package/es/event/event-target.js +1 -3
  558. package/es/event/event-target.js.map +1 -1
  559. package/es/event/federated-event/base-event.js +43 -15
  560. package/es/event/federated-event/base-event.js.map +1 -1
  561. package/es/event/federated-event/mouse-event.js +27 -18
  562. package/es/event/federated-event/mouse-event.js.map +1 -1
  563. package/es/event/federated-event/pointer-event.js +13 -8
  564. package/es/event/federated-event/pointer-event.js.map +1 -1
  565. package/es/event/federated-event/wheel-event.js +13 -11
  566. package/es/event/federated-event/wheel-event.js.map +1 -1
  567. package/es/graphic/arc.js +9 -6
  568. package/es/graphic/arc.js.map +1 -1
  569. package/es/graphic/arc3d.js +6 -5
  570. package/es/graphic/arc3d.js.map +1 -1
  571. package/es/graphic/area.js +13 -10
  572. package/es/graphic/area.js.map +1 -1
  573. package/es/graphic/builtin-symbol/arrow.js +2 -3
  574. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  575. package/es/graphic/builtin-symbol/arrow2-down.js +2 -3
  576. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  577. package/es/graphic/builtin-symbol/arrow2-left.js +2 -3
  578. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  579. package/es/graphic/builtin-symbol/arrow2-right.js +2 -3
  580. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  581. package/es/graphic/builtin-symbol/arrow2-up.js +2 -3
  582. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  583. package/es/graphic/builtin-symbol/circle.js +2 -3
  584. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  585. package/es/graphic/builtin-symbol/close.js +2 -3
  586. package/es/graphic/builtin-symbol/close.js.map +1 -1
  587. package/es/graphic/builtin-symbol/cross.js +2 -3
  588. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  589. package/es/graphic/builtin-symbol/diamond.js +2 -3
  590. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  591. package/es/graphic/builtin-symbol/line-h.js +2 -3
  592. package/es/graphic/builtin-symbol/line-h.js.map +1 -1
  593. package/es/graphic/builtin-symbol/line-v.js +2 -3
  594. package/es/graphic/builtin-symbol/line-v.js.map +1 -1
  595. package/es/graphic/builtin-symbol/rect.js +2 -3
  596. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  597. package/es/graphic/builtin-symbol/square.js +2 -3
  598. package/es/graphic/builtin-symbol/square.js.map +1 -1
  599. package/es/graphic/builtin-symbol/star.js +2 -3
  600. package/es/graphic/builtin-symbol/star.js.map +1 -1
  601. package/es/graphic/builtin-symbol/stroke.js +2 -3
  602. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  603. package/es/graphic/builtin-symbol/thin-triangle.js +2 -3
  604. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  605. package/es/graphic/builtin-symbol/triangle-down.js +2 -3
  606. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  607. package/es/graphic/builtin-symbol/triangle-left.js +2 -3
  608. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  609. package/es/graphic/builtin-symbol/triangle-right.js +2 -3
  610. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  611. package/es/graphic/builtin-symbol/triangle-up.js +2 -3
  612. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  613. package/es/graphic/builtin-symbol/triangle.js +1 -3
  614. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  615. package/es/graphic/builtin-symbol/utils.js +6 -2
  616. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  617. package/es/graphic/builtin-symbol/wedge.js +2 -3
  618. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  619. package/es/graphic/builtin-symbol/wye.js +2 -3
  620. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  621. package/es/graphic/circle.js +7 -6
  622. package/es/graphic/circle.js.map +1 -1
  623. package/es/graphic/config.js +73 -44
  624. package/es/graphic/config.js.map +1 -1
  625. package/es/graphic/glyph.js +9 -9
  626. package/es/graphic/glyph.js.map +1 -1
  627. package/es/graphic/graphic-service/graphic-service.js +12 -8
  628. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  629. package/es/graphic/graphic.d.ts +1 -0
  630. package/es/graphic/graphic.js +32 -42
  631. package/es/graphic/graphic.js.map +1 -1
  632. package/es/graphic/group.js +8 -5
  633. package/es/graphic/group.js.map +1 -1
  634. package/es/graphic/image.js +17 -16
  635. package/es/graphic/image.js.map +1 -1
  636. package/es/graphic/line.js +10 -7
  637. package/es/graphic/line.js.map +1 -1
  638. package/es/graphic/node-tree.js +25 -44
  639. package/es/graphic/node-tree.js.map +1 -1
  640. package/es/graphic/path.js +11 -7
  641. package/es/graphic/path.js.map +1 -1
  642. package/es/graphic/polygon.js +6 -4
  643. package/es/graphic/polygon.js.map +1 -1
  644. package/es/graphic/pyramid3d.js +3 -3
  645. package/es/graphic/pyramid3d.js.map +1 -1
  646. package/es/graphic/rect.js +6 -4
  647. package/es/graphic/rect.js.map +1 -1
  648. package/es/graphic/rect3d.js +4 -4
  649. package/es/graphic/rect3d.js.map +1 -1
  650. package/es/graphic/richtext/frame.js +19 -0
  651. package/es/graphic/richtext/frame.js.map +1 -1
  652. package/es/graphic/richtext/icon.js +14 -6
  653. package/es/graphic/richtext/icon.js.map +1 -1
  654. package/es/graphic/richtext/line.js +14 -2
  655. package/es/graphic/richtext/line.js.map +1 -1
  656. package/es/graphic/richtext/paragraph.js +22 -0
  657. package/es/graphic/richtext/paragraph.js.map +1 -1
  658. package/es/graphic/richtext/utils.js +1 -2
  659. package/es/graphic/richtext/utils.js.map +1 -1
  660. package/es/graphic/richtext/wrapper.js +12 -0
  661. package/es/graphic/richtext/wrapper.js.map +1 -1
  662. package/es/graphic/richtext.js +37 -46
  663. package/es/graphic/richtext.js.map +1 -1
  664. package/es/graphic/shadow-root.js +2 -1
  665. package/es/graphic/shadow-root.js.map +1 -1
  666. package/es/graphic/symbol.js +11 -6
  667. package/es/graphic/symbol.js.map +1 -1
  668. package/es/graphic/text.js +39 -40
  669. package/es/graphic/text.js.map +1 -1
  670. package/es/graphic/theme.js +4 -0
  671. package/es/graphic/theme.js.map +1 -1
  672. package/es/graphic/tools.js +16 -44
  673. package/es/graphic/tools.js.map +1 -1
  674. package/es/graphic/wrap-text.js +6 -6
  675. package/es/graphic/wrap-text.js.map +1 -1
  676. package/es/interface/global.d.ts +2 -1
  677. package/es/interface/global.js.map +1 -1
  678. package/es/interface/graphic.d.ts +1 -0
  679. package/es/interface/graphic.js.map +1 -1
  680. package/es/picker/global-picker-service.js +1 -0
  681. package/es/picker/global-picker-service.js.map +1 -1
  682. package/es/picker/pick-interceptor.js +5 -15
  683. package/es/picker/pick-interceptor.js.map +1 -1
  684. package/es/picker/picker-service.js +5 -5
  685. package/es/picker/picker-service.js.map +1 -1
  686. package/es/plugins/builtin-plugin/3dview-transform-plugin.js +26 -20
  687. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  688. package/es/plugins/builtin-plugin/auto-render-plugin.js +5 -4
  689. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  690. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +5 -4
  691. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  692. package/es/plugins/builtin-plugin/flex-layout-plugin.js +11 -8
  693. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  694. package/es/plugins/builtin-plugin/html-attribute-plugin.js +28 -17
  695. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  696. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +12 -8
  697. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  698. package/es/plugins/builtin-plugin/react-attribute-plugin.js +6 -6
  699. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  700. package/es/plugins/plugin-service.js +1 -0
  701. package/es/plugins/plugin-service.js.map +1 -1
  702. package/es/render/contributions/render/arc-render.js +6 -4
  703. package/es/render/contributions/render/arc-render.js.map +1 -1
  704. package/es/render/contributions/render/arc3d-render.js +5 -7
  705. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  706. package/es/render/contributions/render/area-render.js +21 -23
  707. package/es/render/contributions/render/area-render.js.map +1 -1
  708. package/es/render/contributions/render/base-render.js +5 -0
  709. package/es/render/contributions/render/base-render.js.map +1 -1
  710. package/es/render/contributions/render/circle-render.js +6 -4
  711. package/es/render/contributions/render/circle-render.js.map +1 -1
  712. package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -3
  713. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  714. package/es/render/contributions/render/contributions/area-texture-contribution-render.js +2 -5
  715. package/es/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  716. package/es/render/contributions/render/contributions/base-contribution-render.js +10 -7
  717. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  718. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +4 -3
  719. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  720. package/es/render/contributions/render/contributions/circle-contribution-render.js +3 -3
  721. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  722. package/es/render/contributions/render/contributions/group-contribution-render.js +1 -3
  723. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  724. package/es/render/contributions/render/contributions/image-contribution-render.js +1 -3
  725. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  726. package/es/render/contributions/render/contributions/rect-contribution-render.js +11 -11
  727. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  728. package/es/render/contributions/render/contributions/symbol-contribution-render.js +3 -3
  729. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  730. package/es/render/contributions/render/contributions/text-contribution-render.js +6 -8
  731. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  732. package/es/render/contributions/render/draw-contribution.js +12 -14
  733. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  734. package/es/render/contributions/render/draw-interceptor.js +11 -21
  735. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  736. package/es/render/contributions/render/glyph-render.js +2 -3
  737. package/es/render/contributions/render/glyph-render.js.map +1 -1
  738. package/es/render/contributions/render/graphic-render.js +4 -1
  739. package/es/render/contributions/render/graphic-render.js.map +1 -1
  740. package/es/render/contributions/render/group-render.js +7 -3
  741. package/es/render/contributions/render/group-render.js.map +1 -1
  742. package/es/render/contributions/render/image-render.js +5 -2
  743. package/es/render/contributions/render/image-render.js.map +1 -1
  744. package/es/render/contributions/render/incremental-area-render.js +1 -3
  745. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  746. package/es/render/contributions/render/incremental-draw-contribution.js +80 -109
  747. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  748. package/es/render/contributions/render/incremental-line-render.js +1 -3
  749. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  750. package/es/render/contributions/render/line-render.js +12 -16
  751. package/es/render/contributions/render/line-render.js.map +1 -1
  752. package/es/render/contributions/render/path-render.js +8 -6
  753. package/es/render/contributions/render/path-render.js.map +1 -1
  754. package/es/render/contributions/render/polygon-render.js +6 -4
  755. package/es/render/contributions/render/polygon-render.js.map +1 -1
  756. package/es/render/contributions/render/pyramid3d-render.js +3 -5
  757. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  758. package/es/render/contributions/render/rect-render.js +8 -6
  759. package/es/render/contributions/render/rect-render.js.map +1 -1
  760. package/es/render/contributions/render/rect3d-render.js +5 -7
  761. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  762. package/es/render/contributions/render/richtext-render.js +4 -3
  763. package/es/render/contributions/render/richtext-render.js.map +1 -1
  764. package/es/render/contributions/render/symbol-render.js +11 -14
  765. package/es/render/contributions/render/symbol-render.js.map +1 -1
  766. package/es/render/contributions/render/text-render.js +9 -8
  767. package/es/render/contributions/render/text-render.js.map +1 -1
  768. package/es/render/contributions/render/utils.js +1 -1
  769. package/es/render/contributions/render/utils.js.map +1 -1
  770. package/es/render/render-service.js +11 -2
  771. package/es/render/render-service.js.map +1 -1
  772. package/es/resource-loader/loader.js +12 -17
  773. package/es/resource-loader/loader.js.map +1 -1
  774. package/es/tapable/Hook.js +3 -0
  775. package/es/tapable/Hook.js.map +1 -1
  776. package/package.json +1 -1
@@ -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,6 +15,8 @@ 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;
18
20
  static GenerateLayerId() {
19
21
  return `${DefaultLayerService_1.idprefix}_${DefaultLayerService_1.prefix_count++}`;
20
22
  }
@@ -39,17 +41,16 @@ let DefaultLayerService = DefaultLayerService_1 = class {
39
41
  createLayer(stage, options = {
40
42
  main: !1
41
43
  }) {
42
- var _a;
43
44
  this.tryInit();
44
45
  let layerMode = this.getRecommendedLayerType(options.layerMode);
45
46
  layerMode = options.main || options.canvasId ? "static" : layerMode;
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), {
47
+ const layerHandler = this.getLayerHandler(layerMode), layer = new layer_1.Layer(stage, this.global, stage.window, {
48
+ main: !1,
49
+ ...options,
49
50
  layerMode: layerMode,
50
- canvasId: null !== (_a = options.canvasId) && void 0 !== _a ? _a : DefaultLayerService_1.GenerateLayerId(),
51
+ canvasId: options.canvasId ?? DefaultLayerService_1.GenerateLayerId(),
51
52
  layerHandler: layerHandler
52
- })), stageLayers = this.layerMap.get(stage) || [];
53
+ }), stageLayers = this.layerMap.get(stage) || [];
53
54
  return stageLayers.push(layer), this.layerMap.set(stage, stageLayers), this.staticLayerCountInEnv--,
54
55
  layer;
55
56
  }
@@ -77,7 +78,6 @@ let DefaultLayerService = DefaultLayerService_1 = class {
77
78
  }
78
79
  };
79
80
 
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":";;;;;;;;;;;;;AAAA,6DAA8D;AAE9D,mCAAgC;AAEhC,4CAAyC;AACzC,2CAIqB;AACrB,gDAA6C;AAGtC,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAS9B,MAAM,CAAC,eAAe;QACpB,OAAO,GAAG,qBAAmB,CAAC,QAAQ,IAAI,qBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC;IACjF,CAAC;IAED;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,yBAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;IACH,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,uBAAuB,CAAC,SAAqB;QAC3C,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;YACpC,OAAO,QAAQ,CAAC;SACjB;aAAM,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,EAAE;YAC5C,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,SAAoB;QAClC,IAAI,YAAuC,CAAC;QAC5C,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,0CAA8B,CAAC,CAAC;SACzF;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE;YAClC,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,2CAA+B,CAAC,CAAC;SAC1F;aAAM;YACL,YAAY,GAAG,qBAAS,CAAC,GAAG,CAA4B,2CAA+B,CAAC,CAAC;SAC1F;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,UAAiC,EAAE,IAAI,EAAE,KAAK,EAAE;;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,gCACtD,IAAI,EAAE,KAAK,IACR,OAAO,KACV,SAAS,EACT,QAAQ,EAAE,MAAA,OAAO,CAAC,QAAQ,mCAAI,qBAAmB,CAAC,eAAe,EAAE,EACnE,YAAY,IACZ,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,IAAI,WAAsC,CAAC;QAC3C,KAAK,CAAC,eAAe,CAAC,CAAC,CAAS,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC9B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;gBAClC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7C;iBAAM;gBACL,WAAW,GAAG,OAAO,CAAC;gBACtB,WAAW,CAAC,iBAAiB,GAAG,EAAE,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,KAAa;QACvC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,KAAK,EACL,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CACrC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IACD,cAAc,CAAC,KAAa;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;YACjC,OAAO,EAAE,CAAC;SACX;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;;AAxGM,4BAAQ,GAAW,gBAAgB,CAAC;AACpC,gCAAY,GAAW,CAAC,CAAC;AAPrB,mBAAmB;IAD/B,IAAA,2BAAU,GAAE;;GACA,mBAAmB,CA+G/B;AA/GY,kDAAmB","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,14 +32,13 @@ class Layer extends group_1.Group {
32
32
  return this._dpr;
33
33
  }
34
34
  constructor(stage, global, window, params) {
35
- var _a;
36
35
  super({}), this.stage = stage, this.global = global, this.window = window, this.main = params.main,
37
36
  this.layerHandler = params.layerHandler, this.layerHandler.init(this, window, {
38
37
  main: params.main,
39
38
  canvasId: params.canvasId,
40
39
  width: this.viewWidth,
41
40
  height: this.viewHeight,
42
- zIndex: null !== (_a = params.zIndex) && void 0 !== _a ? _a : 0
41
+ zIndex: params.zIndex ?? 0
43
42
  }), this.layer = this, this.subLayers = new Map, this.theme = new theme_1.Theme,
44
43
  this.background = "rgba(0, 0, 0, 0)", this.afterDrawCbs = [];
45
44
  }
@@ -67,14 +66,13 @@ class Layer extends group_1.Group {
67
66
  }));
68
67
  }
69
68
  render(params, userParams) {
70
- var _a;
71
69
  this.layerHandler.render([ this ], {
72
70
  renderService: params.renderService,
73
71
  stage: this.stage,
74
72
  layer: this,
75
73
  viewBox: params.viewBox,
76
74
  transMatrix: params.transMatrix,
77
- background: null !== (_a = params.background) && void 0 !== _a ? _a : this.background,
75
+ background: params.background ?? this.background,
78
76
  updateBounds: params.updateBounds
79
77
  }, userParams), this.afterDrawCbs.forEach((c => c(this))), this.tryRenderSecondaryLayer(params, userParams);
80
78
  }
@@ -103,15 +101,15 @@ class Layer extends group_1.Group {
103
101
  }));
104
102
  }
105
103
  drawTo(target, params) {
106
- var _a;
107
- this.layerHandler.drawTo(target, [ this ], Object.assign({
108
- background: null !== (_a = params.background) && void 0 !== _a ? _a : this.background,
104
+ this.layerHandler.drawTo(target, [ this ], {
105
+ background: params.background ?? this.background,
109
106
  renderService: params.renderService,
110
107
  viewBox: params.viewBox,
111
108
  transMatrix: params.transMatrix,
112
109
  stage: this.stage,
113
- layer: this
114
- }, params)), this.afterDrawCbs.forEach((c => c(this)));
110
+ layer: this,
111
+ ...params
112
+ }), this.afterDrawCbs.forEach((c => c(this)));
115
113
  }
116
114
  }
117
115
 
@@ -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":"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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"]}
package/cjs/core/stage.js CHANGED
@@ -13,6 +13,13 @@ 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;
16
23
  set viewBox(b) {
17
24
  this.window.setViewBox(b);
18
25
  }
@@ -64,8 +71,7 @@ class Stage extends graphic_1.Group {
64
71
  this.setDpr(r);
65
72
  }
66
73
  get background() {
67
- var _a;
68
- return null !== (_a = this._background) && void 0 !== _a ? _a : DefaultConfig.BACKGROUND;
74
+ return this._background ?? DefaultConfig.BACKGROUND;
69
75
  }
70
76
  set background(b) {
71
77
  this._background = b;
@@ -73,25 +79,33 @@ class Stage extends graphic_1.Group {
73
79
  get defaultLayer() {
74
80
  return this.at(0);
75
81
  }
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;
76
96
  get eventSystem() {
77
97
  return this._eventSystem;
78
98
  }
99
+ _beforeRender;
100
+ _afterRender;
101
+ _skipRender;
102
+ _afterNextRenderCbs;
103
+ lastRenderparams;
104
+ interactiveLayer;
105
+ supportInteractiveLayer;
106
+ timeline;
79
107
  constructor(params = {}) {
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 = {
108
+ super({}), this.params = params, this.theme = new graphic_1.Theme, this.hooks = {
95
109
  beforeRender: new tapable_1.SyncHook([ "stage" ]),
96
110
  afterRender: new tapable_1.SyncHook([ "stage" ])
97
111
  }, this.global = application_1.application.global, !this.global.env && (0, env_check_1.isBrowserEnv)() && this.global.setEnv("browser"),
@@ -106,7 +120,7 @@ class Stage extends graphic_1.Group {
106
120
  canvasControled: !1 !== params.canvasControled,
107
121
  title: params.title || "",
108
122
  canvas: params.canvas
109
- }), this.state = "normal", this.renderCount = 0, this.tryInitEventSystem(), this._background = null !== (_a = params.background) && void 0 !== _a ? _a : DefaultConfig.BACKGROUND,
123
+ }), this.state = "normal", this.renderCount = 0, this.tryInitEventSystem(), this._background = params.background ?? DefaultConfig.BACKGROUND,
110
124
  this.appendChild(this.layerService.createLayer(this, {
111
125
  main: !0
112
126
  })), this.nextFrameRenderLayerSet = new Set, this.willNextFrameRender = !1, this.stage = this,
@@ -129,14 +143,15 @@ class Stage extends graphic_1.Group {
129
143
  this._skipRender = 0;
130
144
  }
131
145
  tryInitEventSystem() {
132
- this.global.supportEvent && !this._eventSystem && (this._eventSystem = new event_1.EventSystem(Object.assign({
146
+ this.global.supportEvent && !this._eventSystem && (this._eventSystem = new event_1.EventSystem({
133
147
  targetElement: this.window,
134
148
  resolution: this.window.dpr || this.global.devicePixelRatio,
135
149
  rootNode: this,
136
150
  global: this.global,
137
151
  supportsPointerEvents: this.params.supportsPointerEvents,
138
- supportsTouchEvents: this.params.supportsTouchEvents
139
- }, this.params.event)));
152
+ supportsTouchEvents: this.params.supportsTouchEvents,
153
+ ...this.params.event
154
+ }));
140
155
  }
141
156
  preventRender(prevent) {
142
157
  prevent ? this._skipRender = -1 / 0 : !1 !== this.params.optimize.skipRenderWithOutRange ? this._skipRender = this.window.isVisible() ? 0 : 1 : this._skipRender = 0;
@@ -148,6 +163,15 @@ class Stage extends graphic_1.Group {
148
163
  skipRenderWithOutRange && (this._skipRender = this._skipRender < 0 ? this._skipRender : this.window.isVisible() ? 0 : 1,
149
164
  this.window.onVisibleChange(this._onVisibleChange));
150
165
  }
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
+ };
151
175
  getTimeline() {
152
176
  return this.timeline;
153
177
  }
@@ -160,7 +184,8 @@ class Stage extends graphic_1.Group {
160
184
  dy: 0,
161
185
  dz: 0
162
186
  }, light: light = {}, alpha: alpha = 0, beta: beta = 0, camera: camera, fieldRatio: fieldRatio = 1, fieldDepth: fieldDepth} = options;
163
- return Object.assign(Object.assign({}, options), {
187
+ return {
188
+ ...options,
164
189
  center: center,
165
190
  light: light,
166
191
  alpha: alpha,
@@ -168,12 +193,11 @@ class Stage extends graphic_1.Group {
168
193
  camera: camera,
169
194
  fieldRatio: fieldRatio,
170
195
  fieldDepth: fieldDepth
171
- });
196
+ };
172
197
  }
173
198
  set3dOptions(options) {
174
- var _a, _b, _c, _d, _e, _f;
175
199
  this.option3d = options;
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 !== (_c = center.y) && void 0 !== _c ? _c : this.height / 2) + (null !== (_d = center.dy) && void 0 !== _d ? _d : 0), centerVec3 = [ centerX, centerY, (null !== (_e = center.z) && void 0 !== _e ? _e : 0) + (null !== (_f = center.dz) && void 0 !== _f ? _f : 0) ];
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) ];
177
201
  let cameraX = 0, cameraY = 0, cameraZ = 0;
178
202
  camera || (cameraX = Math.sin(alpha) + centerX, cameraY = Math.sin(beta) + centerY,
179
203
  cameraZ = Math.cos(alpha) * Math.cos(beta) * 1), this.light = new light_1.DirectionalLight(dir, color, ambient);
@@ -193,6 +217,13 @@ class Stage extends graphic_1.Group {
193
217
  this.camera ? this.camera.params = cameraParams : this.camera = new camera_1.OrthoCamera(cameraParams),
194
218
  options.enableView3dTransform && this.enableView3dTransform();
195
219
  }
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
+ };
196
227
  setBeforeRender(cb) {
197
228
  this._beforeRender = cb;
198
229
  }
@@ -306,7 +337,17 @@ class Stage extends graphic_1.Group {
306
337
  this.combineLayersToWindow(), this.nextFrameRenderLayerSet.clear()), this.hooks.afterRender.call(this)),
307
338
  this.state = state, this._skipRender && this._skipRender++;
308
339
  }
309
- combineLayersToWindow() {}
340
+ combineLayersToWindow() {
341
+ if ("harmony" === this.global.env) {
342
+ const ctx = this.window.getContext().nativeContext;
343
+ this.forEachChildren(((layer, i) => {
344
+ if (i > 0) {
345
+ const image = layer.getNativeHandler().getContext().canvas.nativeCanvas.nativeCanvas._c.transferToImageBitmap();
346
+ ctx.transferFromImageBitmap(image);
347
+ }
348
+ }));
349
+ }
350
+ }
310
351
  renderNextFrame(layers, force) {
311
352
  this.nextFrameRenderLayerSet.size !== this.childrenCount && (layers || this).forEach((layer => {
312
353
  this.nextFrameRenderLayerSet.add(layer);
@@ -336,17 +377,19 @@ class Stage extends graphic_1.Group {
336
377
  updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty()),
337
378
  viewBox: this.window.getViewBox(),
338
379
  transMatrix: this.window.getViewBoxTransform()
339
- }, Object.assign({
340
- renderStyle: this.renderStyle
341
- }, params)));
380
+ }, {
381
+ renderStyle: this.renderStyle,
382
+ ...params
383
+ }));
342
384
  })), this.interactiveLayer && !layerList.includes(this.interactiveLayer) && this.interactiveLayer.render({
343
385
  renderService: this.renderService,
344
386
  updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty()),
345
387
  viewBox: this.window.getViewBox(),
346
388
  transMatrix: this.window.getViewBoxTransform()
347
- }, Object.assign({
348
- renderStyle: this.renderStyle
349
- }, params));
389
+ }, {
390
+ renderStyle: this.renderStyle,
391
+ ...params
392
+ });
350
393
  }
351
394
  resizeWindow(w, h, rerender = !0) {
352
395
  this.window.resize(w, h), rerender && this.render();
@@ -361,10 +404,11 @@ class Stage extends graphic_1.Group {
361
404
  this.viewBox.setValue(this.viewBox.x1, this.viewBox.y1, this.viewBox.x1 + w, this.viewBox.y1 + h),
362
405
  this.forEachChildren((c => {
363
406
  c.resizeView(w, h);
364
- })), this.camera && (this.camera.params = Object.assign(Object.assign({}, this.camera.params), {
407
+ })), this.camera && (this.camera.params = {
408
+ ...this.camera.params,
365
409
  right: this.width,
366
410
  bottom: this.height
367
- })), rerender && this.render();
411
+ }), rerender && this.render();
368
412
  }
369
413
  setViewBox(x, y, w, h, rerender) {
370
414
  let isRerender = !0;
@@ -389,7 +433,7 @@ class Stage extends graphic_1.Group {
389
433
  const result = this.pickerService.pick(this.children, new vutils_1.Point(x, y), {
390
434
  bounds: this.AABBBounds
391
435
  });
392
- return !(!(null == result ? void 0 : result.graphic) && !(null == result ? void 0 : result.group)) && result;
436
+ return !(!result?.graphic && !result?.group) && result;
393
437
  }
394
438
  startAnimate(t) {
395
439
  throw new Error("暂不支持");