@visactor/vrender-core 0.19.6-alpha.2 → 0.19.6

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 (758) hide show
  1. package/cjs/allocator/bounds-allocate.js +1 -1
  2. package/cjs/allocator/bounds-allocate.js.map +1 -1
  3. package/cjs/allocator/canvas-allocate.js +9 -11
  4. package/cjs/allocator/canvas-allocate.js.map +1 -1
  5. package/cjs/allocator/graphic-allocate.js +9 -5
  6. package/cjs/allocator/graphic-allocate.js.map +1 -1
  7. package/cjs/allocator/matrix-allocate.js +6 -2
  8. package/cjs/allocator/matrix-allocate.js.map +1 -1
  9. package/cjs/animate/Ticker/default-ticker.js +14 -25
  10. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  11. package/cjs/animate/animate.js +7 -8
  12. package/cjs/animate/animate.js.map +1 -1
  13. package/cjs/animate/custom-animate.js +51 -54
  14. package/cjs/animate/custom-animate.js.map +1 -1
  15. package/cjs/animate/easing.js +8 -19
  16. package/cjs/animate/easing.js.map +1 -1
  17. package/cjs/animate/morphing.js +23 -20
  18. package/cjs/animate/morphing.js.map +1 -1
  19. package/cjs/application.js +1 -7
  20. package/cjs/application.js.map +1 -1
  21. package/cjs/canvas/conical-gradient.js +5 -12
  22. package/cjs/canvas/conical-gradient.js.map +1 -1
  23. package/cjs/canvas/contributions/base-canvas.js +7 -19
  24. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  25. package/cjs/color-string/interpolate.js +3 -5
  26. package/cjs/color-string/interpolate.js.map +1 -1
  27. package/cjs/color-string/store.js +1 -3
  28. package/cjs/color-string/store.js.map +1 -1
  29. package/cjs/common/bounds-context.js +0 -1
  30. package/cjs/common/bounds-context.js.map +1 -1
  31. package/cjs/common/canvas-utils.js +6 -3
  32. package/cjs/common/canvas-utils.js.map +1 -1
  33. package/cjs/common/contribution-provider.js +0 -3
  34. package/cjs/common/contribution-provider.js.map +1 -1
  35. package/cjs/common/custom-path2d.js +1 -7
  36. package/cjs/common/custom-path2d.js.map +1 -1
  37. package/cjs/common/generator.js +1 -2
  38. package/cjs/common/generator.js.map +1 -1
  39. package/cjs/common/inversify/binding.js +0 -12
  40. package/cjs/common/inversify/binding.js.map +1 -1
  41. package/cjs/common/inversify/container.js +0 -4
  42. package/cjs/common/inversify/container.js.map +1 -1
  43. package/cjs/common/inversify/cotainer-module.js +0 -2
  44. package/cjs/common/inversify/cotainer-module.js.map +1 -1
  45. package/cjs/common/inversify/meta-data.js +0 -2
  46. package/cjs/common/inversify/meta-data.js.map +1 -1
  47. package/cjs/common/inversify/syntax/binding_in_syntax.js +0 -1
  48. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  49. package/cjs/common/inversify/syntax/binding_to_syntax.js +0 -1
  50. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  51. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +0 -1
  52. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  53. package/cjs/common/inversify-lite/bindings/binding.js +0 -14
  54. package/cjs/common/inversify-lite/bindings/binding.js.map +1 -1
  55. package/cjs/common/inversify-lite/container/container.js +46 -22
  56. package/cjs/common/inversify-lite/container/container.js.map +1 -1
  57. package/cjs/common/inversify-lite/container/container_module.js +0 -4
  58. package/cjs/common/inversify-lite/container/container_module.js.map +1 -1
  59. package/cjs/common/inversify-lite/container/lookup.js +0 -1
  60. package/cjs/common/inversify-lite/container/lookup.js.map +1 -1
  61. package/cjs/common/inversify-lite/planning/context.js +0 -4
  62. package/cjs/common/inversify-lite/planning/context.js.map +1 -1
  63. package/cjs/common/inversify-lite/planning/metadata.js +0 -2
  64. package/cjs/common/inversify-lite/planning/metadata.js.map +1 -1
  65. package/cjs/common/inversify-lite/planning/plan.js +0 -2
  66. package/cjs/common/inversify-lite/planning/plan.js.map +1 -1
  67. package/cjs/common/inversify-lite/planning/queryable_string.js +0 -1
  68. package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
  69. package/cjs/common/inversify-lite/planning/request.js +0 -8
  70. package/cjs/common/inversify-lite/planning/request.js.map +1 -1
  71. package/cjs/common/inversify-lite/planning/target.js +0 -7
  72. package/cjs/common/inversify-lite/planning/target.js.map +1 -1
  73. package/cjs/common/inversify-lite/resolution/instantiation.js +42 -16
  74. package/cjs/common/inversify-lite/resolution/instantiation.js.map +1 -1
  75. package/cjs/common/inversify-lite/scope/scope.js +29 -3
  76. package/cjs/common/inversify-lite/scope/scope.js.map +1 -1
  77. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +0 -1
  78. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  79. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -3
  80. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  81. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +0 -1
  82. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  83. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +0 -1
  84. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  85. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -2
  86. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  87. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +0 -1
  88. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  89. package/cjs/common/polygon.js +2 -1
  90. package/cjs/common/polygon.js.map +1 -1
  91. package/cjs/common/render-area.js +3 -2
  92. package/cjs/common/render-area.js.map +1 -1
  93. package/cjs/common/render-curve.js +8 -4
  94. package/cjs/common/render-curve.js.map +1 -1
  95. package/cjs/common/seg-context.js +3 -12
  96. package/cjs/common/seg-context.js.map +1 -1
  97. package/cjs/common/segment/basis.js +0 -13
  98. package/cjs/common/segment/basis.js.map +1 -1
  99. package/cjs/common/segment/common.js +2 -2
  100. package/cjs/common/segment/common.js.map +1 -1
  101. package/cjs/common/segment/curve/arc.js +2 -2
  102. package/cjs/common/segment/curve/arc.js.map +1 -1
  103. package/cjs/common/segment/curve/base.js +0 -4
  104. package/cjs/common/segment/curve/base.js.map +1 -1
  105. package/cjs/common/segment/curve/cubic-bezier.js +2 -2
  106. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  107. package/cjs/common/segment/curve/curve-context.js +0 -4
  108. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  109. package/cjs/common/segment/curve/ellipse.js +3 -3
  110. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  111. package/cjs/common/segment/curve/line.js +1 -2
  112. package/cjs/common/segment/curve/line.js.map +1 -1
  113. package/cjs/common/segment/curve/move.js +1 -2
  114. package/cjs/common/segment/curve/move.js.map +1 -1
  115. package/cjs/common/segment/curve/path.js +0 -2
  116. package/cjs/common/segment/curve/path.js.map +1 -1
  117. package/cjs/common/segment/curve/quadratic-bezier.js +2 -2
  118. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  119. package/cjs/common/segment/linear.js +0 -10
  120. package/cjs/common/segment/linear.js.map +1 -1
  121. package/cjs/common/segment/monotone.js +0 -13
  122. package/cjs/common/segment/monotone.js.map +1 -1
  123. package/cjs/common/segment/step.js +2 -13
  124. package/cjs/common/segment/step.js.map +1 -1
  125. package/cjs/common/sort.js +34 -3
  126. package/cjs/common/sort.js.map +1 -1
  127. package/cjs/common/split-path.js +11 -4
  128. package/cjs/common/split-path.js.map +1 -1
  129. package/cjs/common/utils.js +4 -8
  130. package/cjs/common/utils.js.map +1 -1
  131. package/cjs/common/xml/parser.js +2 -3
  132. package/cjs/common/xml/parser.js.map +1 -1
  133. package/cjs/core/camera.js +4 -11
  134. package/cjs/core/camera.js.map +1 -1
  135. package/cjs/core/contributions/env/base-contribution.js +0 -6
  136. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  137. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +11 -20
  138. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  139. package/cjs/core/contributions/layerHandler/empty-contribution.js +8 -8
  140. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  141. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +6 -5
  142. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  143. package/cjs/core/contributions/textMeasure/AtextMeasure.js +8 -11
  144. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  145. package/cjs/core/contributions/textMeasure/layout.js +0 -3
  146. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  147. package/cjs/core/contributions/window/base-contribution.js +0 -2
  148. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  149. package/cjs/core/global.js +0 -8
  150. package/cjs/core/global.js.map +1 -1
  151. package/cjs/core/graphic-utils.js +5 -16
  152. package/cjs/core/graphic-utils.js.map +1 -1
  153. package/cjs/core/layer-service.js +7 -7
  154. package/cjs/core/layer-service.js.map +1 -1
  155. package/cjs/core/layer.js +9 -7
  156. package/cjs/core/layer.js.map +1 -1
  157. package/cjs/core/stage.js +34 -68
  158. package/cjs/core/stage.js.map +1 -1
  159. package/cjs/core/window.js +13 -16
  160. package/cjs/core/window.js.map +1 -1
  161. package/cjs/event/event-manager.js +145 -153
  162. package/cjs/event/event-manager.js.map +1 -1
  163. package/cjs/event/event-system.js +43 -60
  164. package/cjs/event/event-system.js.map +1 -1
  165. package/cjs/event/event-target.js +3 -1
  166. package/cjs/event/event-target.js.map +1 -1
  167. package/cjs/event/federated-event/base-event.js +15 -43
  168. package/cjs/event/federated-event/base-event.js.map +1 -1
  169. package/cjs/event/federated-event/mouse-event.js +18 -27
  170. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  171. package/cjs/event/federated-event/pointer-event.js +8 -12
  172. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  173. package/cjs/event/federated-event/wheel-event.js +10 -13
  174. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  175. package/cjs/graphic/arc.js +5 -10
  176. package/cjs/graphic/arc.js.map +1 -1
  177. package/cjs/graphic/arc3d.js +4 -7
  178. package/cjs/graphic/arc3d.js.map +1 -1
  179. package/cjs/graphic/area.js +9 -14
  180. package/cjs/graphic/area.js.map +1 -1
  181. package/cjs/graphic/builtin-symbol/arrow.js +3 -2
  182. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  183. package/cjs/graphic/builtin-symbol/arrow2-down.js +3 -2
  184. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  185. package/cjs/graphic/builtin-symbol/arrow2-left.js +3 -2
  186. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  187. package/cjs/graphic/builtin-symbol/arrow2-right.js +3 -2
  188. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  189. package/cjs/graphic/builtin-symbol/arrow2-up.js +3 -2
  190. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  191. package/cjs/graphic/builtin-symbol/circle.js +3 -2
  192. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  193. package/cjs/graphic/builtin-symbol/close.js +3 -2
  194. package/cjs/graphic/builtin-symbol/close.js.map +1 -1
  195. package/cjs/graphic/builtin-symbol/cross.js +3 -2
  196. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  197. package/cjs/graphic/builtin-symbol/diamond.js +3 -2
  198. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  199. package/cjs/graphic/builtin-symbol/line-h.js +3 -2
  200. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
  201. package/cjs/graphic/builtin-symbol/line-v.js +3 -2
  202. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
  203. package/cjs/graphic/builtin-symbol/rect.js +3 -2
  204. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  205. package/cjs/graphic/builtin-symbol/square.js +3 -2
  206. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  207. package/cjs/graphic/builtin-symbol/star.js +3 -2
  208. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  209. package/cjs/graphic/builtin-symbol/stroke.js +3 -2
  210. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  211. package/cjs/graphic/builtin-symbol/thin-triangle.js +3 -2
  212. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  213. package/cjs/graphic/builtin-symbol/triangle-down.js +3 -2
  214. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  215. package/cjs/graphic/builtin-symbol/triangle-left.js +3 -2
  216. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  217. package/cjs/graphic/builtin-symbol/triangle-right.js +3 -2
  218. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  219. package/cjs/graphic/builtin-symbol/triangle-up.js +3 -2
  220. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  221. package/cjs/graphic/builtin-symbol/triangle.js +3 -1
  222. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  223. package/cjs/graphic/builtin-symbol/utils.js +1 -6
  224. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  225. package/cjs/graphic/builtin-symbol/wedge.js +3 -2
  226. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  227. package/cjs/graphic/builtin-symbol/wye.js +3 -2
  228. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  229. package/cjs/graphic/circle.js +6 -8
  230. package/cjs/graphic/circle.js.map +1 -1
  231. package/cjs/graphic/config.js +32 -58
  232. package/cjs/graphic/config.js.map +1 -1
  233. package/cjs/graphic/glyph.js +9 -10
  234. package/cjs/graphic/glyph.js.map +1 -1
  235. package/cjs/graphic/graphic-service/graphic-service.js +8 -12
  236. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  237. package/cjs/graphic/graphic.js +44 -27
  238. package/cjs/graphic/graphic.js.map +1 -1
  239. package/cjs/graphic/group.js +5 -9
  240. package/cjs/graphic/group.js.map +1 -1
  241. package/cjs/graphic/image.js +16 -18
  242. package/cjs/graphic/image.js.map +1 -1
  243. package/cjs/graphic/line.js +6 -11
  244. package/cjs/graphic/line.js.map +1 -1
  245. package/cjs/graphic/node-tree.js +44 -25
  246. package/cjs/graphic/node-tree.js.map +1 -1
  247. package/cjs/graphic/path.js +6 -12
  248. package/cjs/graphic/path.js.map +1 -1
  249. package/cjs/graphic/polygon.js +4 -7
  250. package/cjs/graphic/polygon.js.map +1 -1
  251. package/cjs/graphic/pyramid3d.js +3 -4
  252. package/cjs/graphic/pyramid3d.js.map +1 -1
  253. package/cjs/graphic/rect.js +3 -7
  254. package/cjs/graphic/rect.js.map +1 -1
  255. package/cjs/graphic/rect3d.js +4 -5
  256. package/cjs/graphic/rect3d.js.map +1 -1
  257. package/cjs/graphic/richtext/frame.js +0 -19
  258. package/cjs/graphic/richtext/frame.js.map +1 -1
  259. package/cjs/graphic/richtext/icon.js +6 -14
  260. package/cjs/graphic/richtext/icon.js.map +1 -1
  261. package/cjs/graphic/richtext/line.js +2 -14
  262. package/cjs/graphic/richtext/line.js.map +1 -1
  263. package/cjs/graphic/richtext/paragraph.js +0 -22
  264. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  265. package/cjs/graphic/richtext/utils.js +2 -1
  266. package/cjs/graphic/richtext/utils.js.map +1 -1
  267. package/cjs/graphic/richtext/wrapper.js +0 -12
  268. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  269. package/cjs/graphic/richtext.js +45 -38
  270. package/cjs/graphic/richtext.js.map +1 -1
  271. package/cjs/graphic/shadow-root.js +1 -2
  272. package/cjs/graphic/shadow-root.js.map +1 -1
  273. package/cjs/graphic/symbol.js +5 -12
  274. package/cjs/graphic/symbol.js.map +1 -1
  275. package/cjs/graphic/text.js +45 -45
  276. package/cjs/graphic/text.js.map +1 -1
  277. package/cjs/graphic/theme.js +0 -4
  278. package/cjs/graphic/theme.js.map +1 -1
  279. package/cjs/graphic/tools.js +44 -16
  280. package/cjs/graphic/tools.js.map +1 -1
  281. package/cjs/graphic/wrap-text.js +7 -7
  282. package/cjs/graphic/wrap-text.js.map +1 -1
  283. package/cjs/picker/global-picker-service.js +0 -1
  284. package/cjs/picker/global-picker-service.js.map +1 -1
  285. package/cjs/picker/pick-interceptor.js +15 -5
  286. package/cjs/picker/pick-interceptor.js.map +1 -1
  287. package/cjs/picker/picker-service.js +5 -5
  288. package/cjs/picker/picker-service.js.map +1 -1
  289. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js +20 -26
  290. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  291. package/cjs/plugins/builtin-plugin/auto-render-plugin.js +4 -5
  292. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  293. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +4 -5
  294. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  295. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +8 -11
  296. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  297. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +19 -28
  298. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  299. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +8 -12
  300. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  301. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +7 -6
  302. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  303. package/cjs/plugins/plugin-service.js +0 -1
  304. package/cjs/plugins/plugin-service.js.map +1 -1
  305. package/cjs/render/contributions/render/arc-render.js +4 -6
  306. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  307. package/cjs/render/contributions/render/arc3d-render.js +7 -5
  308. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  309. package/cjs/render/contributions/render/area-render.js +23 -21
  310. package/cjs/render/contributions/render/area-render.js.map +1 -1
  311. package/cjs/render/contributions/render/base-render.js +0 -5
  312. package/cjs/render/contributions/render/base-render.js.map +1 -1
  313. package/cjs/render/contributions/render/circle-render.js +4 -6
  314. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  315. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +4 -3
  316. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  317. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js +9 -6
  318. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  319. package/cjs/render/contributions/render/contributions/base-contribution-render.js +8 -10
  320. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  321. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +4 -4
  322. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  323. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +4 -3
  324. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  325. package/cjs/render/contributions/render/contributions/group-contribution-render.js +3 -1
  326. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  327. package/cjs/render/contributions/render/contributions/image-contribution-render.js +3 -1
  328. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  329. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +14 -11
  330. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  331. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +4 -3
  332. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  333. package/cjs/render/contributions/render/contributions/text-contribution-render.js +8 -6
  334. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  335. package/cjs/render/contributions/render/draw-contribution.js +14 -12
  336. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  337. package/cjs/render/contributions/render/draw-interceptor.js +21 -11
  338. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  339. package/cjs/render/contributions/render/glyph-render.js +3 -2
  340. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  341. package/cjs/render/contributions/render/graphic-render.js +1 -4
  342. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  343. package/cjs/render/contributions/render/group-render.js +3 -7
  344. package/cjs/render/contributions/render/group-render.js.map +1 -1
  345. package/cjs/render/contributions/render/image-render.js +2 -4
  346. package/cjs/render/contributions/render/image-render.js.map +1 -1
  347. package/cjs/render/contributions/render/incremental-area-render.js +3 -1
  348. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  349. package/cjs/render/contributions/render/incremental-draw-contribution.js +109 -80
  350. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  351. package/cjs/render/contributions/render/incremental-line-render.js +3 -1
  352. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  353. package/cjs/render/contributions/render/line-render.js +16 -12
  354. package/cjs/render/contributions/render/line-render.js.map +1 -1
  355. package/cjs/render/contributions/render/path-render.js +7 -8
  356. package/cjs/render/contributions/render/path-render.js.map +1 -1
  357. package/cjs/render/contributions/render/polygon-render.js +4 -6
  358. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  359. package/cjs/render/contributions/render/pyramid3d-render.js +5 -3
  360. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  361. package/cjs/render/contributions/render/rect-render.js +7 -8
  362. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  363. package/cjs/render/contributions/render/rect3d-render.js +7 -5
  364. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  365. package/cjs/render/contributions/render/richtext-render.js +3 -4
  366. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  367. package/cjs/render/contributions/render/symbol-render.js +14 -11
  368. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  369. package/cjs/render/contributions/render/text-render.js +8 -8
  370. package/cjs/render/contributions/render/text-render.js.map +1 -1
  371. package/cjs/render/contributions/render/utils.js +1 -1
  372. package/cjs/render/contributions/render/utils.js.map +1 -1
  373. package/cjs/render/render-service.js +2 -11
  374. package/cjs/render/render-service.js.map +1 -1
  375. package/cjs/resource-loader/loader.js +16 -13
  376. package/cjs/resource-loader/loader.js.map +1 -1
  377. package/cjs/tapable/Hook.js +0 -3
  378. package/cjs/tapable/Hook.js.map +1 -1
  379. package/dist/index.es.js +1709 -2151
  380. package/es/allocator/bounds-allocate.js +1 -1
  381. package/es/allocator/bounds-allocate.js.map +1 -1
  382. package/es/allocator/canvas-allocate.js +9 -11
  383. package/es/allocator/canvas-allocate.js.map +1 -1
  384. package/es/allocator/graphic-allocate.js +9 -5
  385. package/es/allocator/graphic-allocate.js.map +1 -1
  386. package/es/allocator/matrix-allocate.js +6 -2
  387. package/es/allocator/matrix-allocate.js.map +1 -1
  388. package/es/animate/Ticker/default-ticker.js +14 -25
  389. package/es/animate/Ticker/default-ticker.js.map +1 -1
  390. package/es/animate/animate.js +8 -7
  391. package/es/animate/animate.js.map +1 -1
  392. package/es/animate/custom-animate.js +50 -52
  393. package/es/animate/custom-animate.js.map +1 -1
  394. package/es/animate/easing.js +8 -18
  395. package/es/animate/easing.js.map +1 -1
  396. package/es/animate/morphing.js +23 -20
  397. package/es/animate/morphing.js.map +1 -1
  398. package/es/application.js +1 -7
  399. package/es/application.js.map +1 -1
  400. package/es/canvas/conical-gradient.js +6 -12
  401. package/es/canvas/conical-gradient.js.map +1 -1
  402. package/es/canvas/contributions/base-canvas.js +7 -19
  403. package/es/canvas/contributions/base-canvas.js.map +1 -1
  404. package/es/color-string/interpolate.js +3 -5
  405. package/es/color-string/interpolate.js.map +1 -1
  406. package/es/color-string/store.js +2 -2
  407. package/es/color-string/store.js.map +1 -1
  408. package/es/common/bounds-context.js +0 -1
  409. package/es/common/bounds-context.js.map +1 -1
  410. package/es/common/canvas-utils.js +6 -3
  411. package/es/common/canvas-utils.js.map +1 -1
  412. package/es/common/contribution-provider.js +0 -3
  413. package/es/common/contribution-provider.js.map +1 -1
  414. package/es/common/custom-path2d.js +1 -7
  415. package/es/common/custom-path2d.js.map +1 -1
  416. package/es/common/generator.js +2 -1
  417. package/es/common/generator.js.map +1 -1
  418. package/es/common/inversify/binding.js +0 -12
  419. package/es/common/inversify/binding.js.map +1 -1
  420. package/es/common/inversify/container.js +0 -4
  421. package/es/common/inversify/container.js.map +1 -1
  422. package/es/common/inversify/cotainer-module.js +0 -2
  423. package/es/common/inversify/cotainer-module.js.map +1 -1
  424. package/es/common/inversify/meta-data.js +0 -2
  425. package/es/common/inversify/meta-data.js.map +1 -1
  426. package/es/common/inversify/syntax/binding_in_syntax.js +0 -1
  427. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  428. package/es/common/inversify/syntax/binding_to_syntax.js +0 -1
  429. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  430. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +0 -1
  431. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  432. package/es/common/inversify-lite/bindings/binding.js +0 -14
  433. package/es/common/inversify-lite/bindings/binding.js.map +1 -1
  434. package/es/common/inversify-lite/container/container.js +48 -22
  435. package/es/common/inversify-lite/container/container.js.map +1 -1
  436. package/es/common/inversify-lite/container/container_module.js +0 -4
  437. package/es/common/inversify-lite/container/container_module.js.map +1 -1
  438. package/es/common/inversify-lite/container/lookup.js +0 -1
  439. package/es/common/inversify-lite/container/lookup.js.map +1 -1
  440. package/es/common/inversify-lite/planning/context.js +0 -4
  441. package/es/common/inversify-lite/planning/context.js.map +1 -1
  442. package/es/common/inversify-lite/planning/metadata.js +0 -2
  443. package/es/common/inversify-lite/planning/metadata.js.map +1 -1
  444. package/es/common/inversify-lite/planning/plan.js +0 -2
  445. package/es/common/inversify-lite/planning/plan.js.map +1 -1
  446. package/es/common/inversify-lite/planning/queryable_string.js +0 -1
  447. package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
  448. package/es/common/inversify-lite/planning/request.js +0 -8
  449. package/es/common/inversify-lite/planning/request.js.map +1 -1
  450. package/es/common/inversify-lite/planning/target.js +0 -7
  451. package/es/common/inversify-lite/planning/target.js.map +1 -1
  452. package/es/common/inversify-lite/resolution/instantiation.js +44 -16
  453. package/es/common/inversify-lite/resolution/instantiation.js.map +1 -1
  454. package/es/common/inversify-lite/scope/scope.js +29 -3
  455. package/es/common/inversify-lite/scope/scope.js.map +1 -1
  456. package/es/common/inversify-lite/syntax/binding_in_syntax.js +0 -1
  457. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  458. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -3
  459. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  460. package/es/common/inversify-lite/syntax/binding_on_syntax.js +0 -1
  461. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  462. package/es/common/inversify-lite/syntax/binding_to_syntax.js +0 -1
  463. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  464. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -2
  465. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  466. package/es/common/inversify-lite/syntax/binding_when_syntax.js +0 -1
  467. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  468. package/es/common/polygon.js +2 -1
  469. package/es/common/polygon.js.map +1 -1
  470. package/es/common/render-area.js +3 -2
  471. package/es/common/render-area.js.map +1 -1
  472. package/es/common/render-curve.js +8 -4
  473. package/es/common/render-curve.js.map +1 -1
  474. package/es/common/seg-context.js +3 -12
  475. package/es/common/seg-context.js.map +1 -1
  476. package/es/common/segment/basis.js +0 -13
  477. package/es/common/segment/basis.js.map +1 -1
  478. package/es/common/segment/common.js +1 -1
  479. package/es/common/segment/common.js.map +1 -1
  480. package/es/common/segment/curve/arc.js +1 -2
  481. package/es/common/segment/curve/arc.js.map +1 -1
  482. package/es/common/segment/curve/base.js +0 -4
  483. package/es/common/segment/curve/base.js.map +1 -1
  484. package/es/common/segment/curve/cubic-bezier.js +2 -2
  485. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  486. package/es/common/segment/curve/curve-context.js +0 -4
  487. package/es/common/segment/curve/curve-context.js.map +1 -1
  488. package/es/common/segment/curve/ellipse.js +3 -3
  489. package/es/common/segment/curve/ellipse.js.map +1 -1
  490. package/es/common/segment/curve/line.js +1 -2
  491. package/es/common/segment/curve/line.js.map +1 -1
  492. package/es/common/segment/curve/move.js +1 -2
  493. package/es/common/segment/curve/move.js.map +1 -1
  494. package/es/common/segment/curve/path.js +0 -2
  495. package/es/common/segment/curve/path.js.map +1 -1
  496. package/es/common/segment/curve/quadratic-bezier.js +2 -2
  497. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  498. package/es/common/segment/linear.js +0 -10
  499. package/es/common/segment/linear.js.map +1 -1
  500. package/es/common/segment/monotone.js +0 -13
  501. package/es/common/segment/monotone.js.map +1 -1
  502. package/es/common/segment/step.js +1 -12
  503. package/es/common/segment/step.js.map +1 -1
  504. package/es/common/sort.js +34 -3
  505. package/es/common/sort.js.map +1 -1
  506. package/es/common/split-path.js +11 -4
  507. package/es/common/split-path.js.map +1 -1
  508. package/es/common/utils.js +5 -7
  509. package/es/common/utils.js.map +1 -1
  510. package/es/common/xml/parser.js +2 -2
  511. package/es/common/xml/parser.js.map +1 -1
  512. package/es/core/camera.js +4 -11
  513. package/es/core/camera.js.map +1 -1
  514. package/es/core/contributions/env/base-contribution.js +0 -6
  515. package/es/core/contributions/env/base-contribution.js.map +1 -1
  516. package/es/core/contributions/layerHandler/canvas2d-contribution.js +11 -20
  517. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  518. package/es/core/contributions/layerHandler/empty-contribution.js +8 -8
  519. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  520. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +6 -5
  521. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  522. package/es/core/contributions/textMeasure/AtextMeasure.js +8 -11
  523. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  524. package/es/core/contributions/textMeasure/layout.js +0 -3
  525. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  526. package/es/core/contributions/window/base-contribution.js +0 -2
  527. package/es/core/contributions/window/base-contribution.js.map +1 -1
  528. package/es/core/global.js +0 -8
  529. package/es/core/global.js.map +1 -1
  530. package/es/core/graphic-utils.js +5 -16
  531. package/es/core/graphic-utils.js.map +1 -1
  532. package/es/core/layer-service.js +7 -7
  533. package/es/core/layer-service.js.map +1 -1
  534. package/es/core/layer.js +9 -7
  535. package/es/core/layer.js.map +1 -1
  536. package/es/core/stage.js +34 -68
  537. package/es/core/stage.js.map +1 -1
  538. package/es/core/window.js +14 -16
  539. package/es/core/window.js.map +1 -1
  540. package/es/event/event-manager.js +145 -153
  541. package/es/event/event-manager.js.map +1 -1
  542. package/es/event/event-system.js +43 -60
  543. package/es/event/event-system.js.map +1 -1
  544. package/es/event/event-target.js +3 -1
  545. package/es/event/event-target.js.map +1 -1
  546. package/es/event/federated-event/base-event.js +15 -43
  547. package/es/event/federated-event/base-event.js.map +1 -1
  548. package/es/event/federated-event/mouse-event.js +18 -27
  549. package/es/event/federated-event/mouse-event.js.map +1 -1
  550. package/es/event/federated-event/pointer-event.js +8 -12
  551. package/es/event/federated-event/pointer-event.js.map +1 -1
  552. package/es/event/federated-event/wheel-event.js +11 -12
  553. package/es/event/federated-event/wheel-event.js.map +1 -1
  554. package/es/graphic/arc.js +6 -9
  555. package/es/graphic/arc.js.map +1 -1
  556. package/es/graphic/arc3d.js +5 -6
  557. package/es/graphic/arc3d.js.map +1 -1
  558. package/es/graphic/area.js +10 -13
  559. package/es/graphic/area.js.map +1 -1
  560. package/es/graphic/builtin-symbol/arrow.js +3 -2
  561. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  562. package/es/graphic/builtin-symbol/arrow2-down.js +3 -2
  563. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  564. package/es/graphic/builtin-symbol/arrow2-left.js +3 -2
  565. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  566. package/es/graphic/builtin-symbol/arrow2-right.js +3 -2
  567. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  568. package/es/graphic/builtin-symbol/arrow2-up.js +3 -2
  569. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  570. package/es/graphic/builtin-symbol/circle.js +3 -2
  571. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  572. package/es/graphic/builtin-symbol/close.js +3 -2
  573. package/es/graphic/builtin-symbol/close.js.map +1 -1
  574. package/es/graphic/builtin-symbol/cross.js +3 -2
  575. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  576. package/es/graphic/builtin-symbol/diamond.js +3 -2
  577. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  578. package/es/graphic/builtin-symbol/line-h.js +3 -2
  579. package/es/graphic/builtin-symbol/line-h.js.map +1 -1
  580. package/es/graphic/builtin-symbol/line-v.js +3 -2
  581. package/es/graphic/builtin-symbol/line-v.js.map +1 -1
  582. package/es/graphic/builtin-symbol/rect.js +3 -2
  583. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  584. package/es/graphic/builtin-symbol/square.js +3 -2
  585. package/es/graphic/builtin-symbol/square.js.map +1 -1
  586. package/es/graphic/builtin-symbol/star.js +3 -2
  587. package/es/graphic/builtin-symbol/star.js.map +1 -1
  588. package/es/graphic/builtin-symbol/stroke.js +3 -2
  589. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  590. package/es/graphic/builtin-symbol/thin-triangle.js +3 -2
  591. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  592. package/es/graphic/builtin-symbol/triangle-down.js +3 -2
  593. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  594. package/es/graphic/builtin-symbol/triangle-left.js +3 -2
  595. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  596. package/es/graphic/builtin-symbol/triangle-right.js +3 -2
  597. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  598. package/es/graphic/builtin-symbol/triangle-up.js +3 -2
  599. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  600. package/es/graphic/builtin-symbol/triangle.js +3 -1
  601. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  602. package/es/graphic/builtin-symbol/utils.js +2 -6
  603. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  604. package/es/graphic/builtin-symbol/wedge.js +3 -2
  605. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  606. package/es/graphic/builtin-symbol/wye.js +3 -2
  607. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  608. package/es/graphic/circle.js +6 -7
  609. package/es/graphic/circle.js.map +1 -1
  610. package/es/graphic/config.js +44 -72
  611. package/es/graphic/config.js.map +1 -1
  612. package/es/graphic/glyph.js +9 -9
  613. package/es/graphic/glyph.js.map +1 -1
  614. package/es/graphic/graphic-service/graphic-service.js +8 -12
  615. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  616. package/es/graphic/graphic.js +44 -27
  617. package/es/graphic/graphic.js.map +1 -1
  618. package/es/graphic/group.js +5 -8
  619. package/es/graphic/group.js.map +1 -1
  620. package/es/graphic/image.js +16 -17
  621. package/es/graphic/image.js.map +1 -1
  622. package/es/graphic/line.js +7 -10
  623. package/es/graphic/line.js.map +1 -1
  624. package/es/graphic/node-tree.js +44 -25
  625. package/es/graphic/node-tree.js.map +1 -1
  626. package/es/graphic/path.js +7 -11
  627. package/es/graphic/path.js.map +1 -1
  628. package/es/graphic/polygon.js +4 -6
  629. package/es/graphic/polygon.js.map +1 -1
  630. package/es/graphic/pyramid3d.js +3 -3
  631. package/es/graphic/pyramid3d.js.map +1 -1
  632. package/es/graphic/rect.js +4 -6
  633. package/es/graphic/rect.js.map +1 -1
  634. package/es/graphic/rect3d.js +4 -4
  635. package/es/graphic/rect3d.js.map +1 -1
  636. package/es/graphic/richtext/frame.js +0 -19
  637. package/es/graphic/richtext/frame.js.map +1 -1
  638. package/es/graphic/richtext/icon.js +6 -14
  639. package/es/graphic/richtext/icon.js.map +1 -1
  640. package/es/graphic/richtext/line.js +2 -14
  641. package/es/graphic/richtext/line.js.map +1 -1
  642. package/es/graphic/richtext/paragraph.js +0 -22
  643. package/es/graphic/richtext/paragraph.js.map +1 -1
  644. package/es/graphic/richtext/utils.js +2 -1
  645. package/es/graphic/richtext/utils.js.map +1 -1
  646. package/es/graphic/richtext/wrapper.js +0 -12
  647. package/es/graphic/richtext/wrapper.js.map +1 -1
  648. package/es/graphic/richtext.js +46 -37
  649. package/es/graphic/richtext.js.map +1 -1
  650. package/es/graphic/shadow-root.js +1 -2
  651. package/es/graphic/shadow-root.js.map +1 -1
  652. package/es/graphic/symbol.js +6 -11
  653. package/es/graphic/symbol.js.map +1 -1
  654. package/es/graphic/text.js +40 -39
  655. package/es/graphic/text.js.map +1 -1
  656. package/es/graphic/theme.js +0 -4
  657. package/es/graphic/theme.js.map +1 -1
  658. package/es/graphic/tools.js +44 -16
  659. package/es/graphic/tools.js.map +1 -1
  660. package/es/graphic/wrap-text.js +6 -6
  661. package/es/graphic/wrap-text.js.map +1 -1
  662. package/es/picker/global-picker-service.js +0 -1
  663. package/es/picker/global-picker-service.js.map +1 -1
  664. package/es/picker/pick-interceptor.js +15 -5
  665. package/es/picker/pick-interceptor.js.map +1 -1
  666. package/es/picker/picker-service.js +5 -5
  667. package/es/picker/picker-service.js.map +1 -1
  668. package/es/plugins/builtin-plugin/3dview-transform-plugin.js +20 -26
  669. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  670. package/es/plugins/builtin-plugin/auto-render-plugin.js +4 -5
  671. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  672. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +4 -5
  673. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  674. package/es/plugins/builtin-plugin/flex-layout-plugin.js +8 -11
  675. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  676. package/es/plugins/builtin-plugin/html-attribute-plugin.js +17 -28
  677. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  678. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +8 -12
  679. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  680. package/es/plugins/builtin-plugin/react-attribute-plugin.js +6 -6
  681. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  682. package/es/plugins/plugin-service.js +0 -1
  683. package/es/plugins/plugin-service.js.map +1 -1
  684. package/es/render/contributions/render/arc-render.js +4 -6
  685. package/es/render/contributions/render/arc-render.js.map +1 -1
  686. package/es/render/contributions/render/arc3d-render.js +7 -5
  687. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  688. package/es/render/contributions/render/area-render.js +23 -21
  689. package/es/render/contributions/render/area-render.js.map +1 -1
  690. package/es/render/contributions/render/base-render.js +0 -5
  691. package/es/render/contributions/render/base-render.js.map +1 -1
  692. package/es/render/contributions/render/circle-render.js +4 -6
  693. package/es/render/contributions/render/circle-render.js.map +1 -1
  694. package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -3
  695. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  696. package/es/render/contributions/render/contributions/area-texture-contribution-render.js +5 -2
  697. package/es/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  698. package/es/render/contributions/render/contributions/base-contribution-render.js +7 -10
  699. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  700. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +3 -4
  701. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  702. package/es/render/contributions/render/contributions/circle-contribution-render.js +3 -3
  703. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  704. package/es/render/contributions/render/contributions/group-contribution-render.js +3 -1
  705. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  706. package/es/render/contributions/render/contributions/image-contribution-render.js +3 -1
  707. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  708. package/es/render/contributions/render/contributions/rect-contribution-render.js +11 -11
  709. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  710. package/es/render/contributions/render/contributions/symbol-contribution-render.js +3 -3
  711. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  712. package/es/render/contributions/render/contributions/text-contribution-render.js +8 -6
  713. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  714. package/es/render/contributions/render/draw-contribution.js +14 -12
  715. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  716. package/es/render/contributions/render/draw-interceptor.js +21 -11
  717. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  718. package/es/render/contributions/render/glyph-render.js +3 -2
  719. package/es/render/contributions/render/glyph-render.js.map +1 -1
  720. package/es/render/contributions/render/graphic-render.js +1 -4
  721. package/es/render/contributions/render/graphic-render.js.map +1 -1
  722. package/es/render/contributions/render/group-render.js +3 -7
  723. package/es/render/contributions/render/group-render.js.map +1 -1
  724. package/es/render/contributions/render/image-render.js +2 -5
  725. package/es/render/contributions/render/image-render.js.map +1 -1
  726. package/es/render/contributions/render/incremental-area-render.js +3 -1
  727. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  728. package/es/render/contributions/render/incremental-draw-contribution.js +109 -80
  729. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  730. package/es/render/contributions/render/incremental-line-render.js +3 -1
  731. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  732. package/es/render/contributions/render/line-render.js +16 -12
  733. package/es/render/contributions/render/line-render.js.map +1 -1
  734. package/es/render/contributions/render/path-render.js +6 -8
  735. package/es/render/contributions/render/path-render.js.map +1 -1
  736. package/es/render/contributions/render/polygon-render.js +4 -6
  737. package/es/render/contributions/render/polygon-render.js.map +1 -1
  738. package/es/render/contributions/render/pyramid3d-render.js +5 -3
  739. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  740. package/es/render/contributions/render/rect-render.js +6 -8
  741. package/es/render/contributions/render/rect-render.js.map +1 -1
  742. package/es/render/contributions/render/rect3d-render.js +7 -5
  743. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  744. package/es/render/contributions/render/richtext-render.js +3 -4
  745. package/es/render/contributions/render/richtext-render.js.map +1 -1
  746. package/es/render/contributions/render/symbol-render.js +14 -11
  747. package/es/render/contributions/render/symbol-render.js.map +1 -1
  748. package/es/render/contributions/render/text-render.js +8 -9
  749. package/es/render/contributions/render/text-render.js.map +1 -1
  750. package/es/render/contributions/render/utils.js +1 -1
  751. package/es/render/contributions/render/utils.js.map +1 -1
  752. package/es/render/render-service.js +2 -11
  753. package/es/render/render-service.js.map +1 -1
  754. package/es/resource-loader/loader.js +17 -12
  755. package/es/resource-loader/loader.js.map +1 -1
  756. package/es/tapable/Hook.js +0 -3
  757. package/es/tapable/Hook.js.map +1 -1
  758. package/package.json +6 -5
@@ -14,12 +14,13 @@ var Edge;
14
14
  }(Edge = exports.Edge || (exports.Edge = {}));
15
15
 
16
16
  const _strokeVec4 = [ !1, !1, !1, !1 ], parseStroke = stroke => {
17
+ var _a;
17
18
  let isFullStroke = !0;
18
19
  if ((0, vutils_1.isBoolean)(stroke, !0)) {
19
- for (let i = 0; i < 4; i++) _strokeVec4[i] = stroke, isFullStroke &&= !!(_strokeVec4[i] ?? 1);
20
+ for (let i = 0; i < 4; i++) _strokeVec4[i] = stroke, isFullStroke && (isFullStroke = !(null !== (_a = _strokeVec4[i]) && void 0 !== _a && !_a));
20
21
  isFullStroke = stroke;
21
22
  } else if (Array.isArray(stroke)) for (let i = 0; i < 4; i++) _strokeVec4[i] = !!stroke[i],
22
- isFullStroke &&= !!_strokeVec4[i]; else _strokeVec4[0] = !1, _strokeVec4[1] = !1,
23
+ isFullStroke && (isFullStroke = !!_strokeVec4[i]); else _strokeVec4[0] = !1, _strokeVec4[1] = !1,
23
24
  _strokeVec4[2] = !1, _strokeVec4[3] = !1;
24
25
  return {
25
26
  isFullStroke: isFullStroke,
@@ -132,11 +133,6 @@ function getAttributeFromDefaultAttrList(attr, key) {
132
133
  exports.isTransformKey = isTransformKey, exports.getAttributeFromDefaultAttrList = getAttributeFromDefaultAttrList;
133
134
 
134
135
  class RafBasedSTO {
135
- static TimeOut=1e3 / 60;
136
- durations;
137
- timeout;
138
- lastDate;
139
- durationsListThreshold;
140
136
  constructor(timeout = RafBasedSTO.TimeOut) {
141
137
  this.durations = [], this.timeout = timeout, this.lastDate = 0, this.durationsListThreshold = 30;
142
138
  }
@@ -154,7 +150,7 @@ class RafBasedSTO {
154
150
  }
155
151
  }
156
152
 
157
- exports.RafBasedSTO = RafBasedSTO, exports.rafBasedSto = new RafBasedSTO;
153
+ exports.RafBasedSTO = RafBasedSTO, RafBasedSTO.TimeOut = 1e3 / 60, exports.rafBasedSto = new RafBasedSTO;
158
154
 
159
155
  const calculateLineHeight = (lineHeight, fontSize) => {
160
156
  if ((0, vutils_1.isString)(lineHeight) && "%" === lineHeight[lineHeight.length - 1]) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { IBounds, IPointLike } from '@visactor/vutils';\nimport { isBoolean, halfPi, pi, pi2, sin, cos, isArray, pointAt, Point, isString } from '@visactor/vutils';\nimport type { IGraphicAttribute, IStrokeStyle } from '../interface';\n\n// todo: 迁移到@visactor/vutils\n\nexport enum Edge {\n Top = 0b000001,\n Right = 0b000010,\n Bottom = 0b000100,\n Left = 0b001000,\n\n ALL = 0b001111\n}\n\n// 公共的stroke数组,避免大量数组生成\nconst _strokeVec4: [boolean | string, boolean | string, boolean | string, boolean | string] = [\n false,\n false,\n false,\n false\n];\n/**\n * 解析stroke配置\n * @param stroke\n * @returns\n */\nexport const parseStroke = (\n stroke: IStrokeStyle['stroke']\n): {\n isFullStroke: boolean;\n stroke: (boolean | string)[];\n} => {\n let isFullStroke: boolean = true;\n // 首先判断\n if (isBoolean(stroke, true)) {\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = stroke as boolean;\n isFullStroke &&= !!(_strokeVec4[i] ?? true);\n }\n isFullStroke = stroke as boolean;\n } else if (Array.isArray(stroke)) {\n // array\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = !!stroke[i];\n isFullStroke &&= !!_strokeVec4[i];\n }\n } else {\n _strokeVec4[0] = false;\n _strokeVec4[1] = false;\n _strokeVec4[2] = false;\n _strokeVec4[3] = false;\n }\n\n return {\n isFullStroke,\n stroke: _strokeVec4\n };\n};\n\n// 公共的padding数组,避免大量数组生成\nconst _paddingVec4: [number, number, number, number] = [0, 0, 0, 0];\n/**\n * 解析padding配置\n * @param padding\n * @returns\n */\nexport const parsePadding = (\n padding: IGraphicAttribute['boundsPadding']\n): number | [number, number, number, number] => {\n if (!padding) {\n return 0;\n }\n if (isArray(padding)) {\n if (padding.length === 0) {\n return 0;\n } else if (padding.length === 1) {\n return padding[0];\n } else if (padding.length === 2) {\n _paddingVec4[0] = padding[0];\n _paddingVec4[2] = padding[0];\n _paddingVec4[1] = padding[1];\n _paddingVec4[3] = padding[1];\n return _paddingVec4;\n }\n // 不考虑三个数的情况,三个数是用户传错了\n return padding as [number, number, number, number];\n }\n\n return padding as number;\n};\n\nconst _coords: [IPointLike, IPointLike, IPointLike, IPointLike] = [\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n];\nconst indexList = [1, 2, 3, 0, 1, 2, 3, 0];\n/**\n * 计算circle一段弧线的bounds\n * @param startAngle 小于2pi\n * @param endAngle\n * @param radius\n * @param bounds\n */\nexport function circleBounds(startAngle: number, endAngle: number, radius: number, bounds: IBounds) {\n // startAngle小于2pi\n // endAngle - startAngle小于2pi\n while (startAngle >= pi2) {\n startAngle -= pi2;\n }\n while (startAngle < 0) {\n startAngle += pi2;\n }\n while (startAngle > endAngle) {\n endAngle += pi2;\n }\n _coords[0].x = radius;\n // _coords[0].y = 0;\n // _coords[1].x = 0;\n _coords[1].y = radius;\n _coords[2].x = -radius;\n // _coords[2].y = -radius;\n // _coords[3].x = 0;\n _coords[3].y = -radius;\n\n // (0,pi/2], (pi/2, pi], (pi, pi/2*3], (pi/2*3, 2pi]\n // 1, 2, 3, 0\n const startIdx = Math.ceil(startAngle / halfPi) % 4;\n const endIdx = Math.ceil(endAngle / halfPi) % 4;\n // console.log(startAngle, endAngle, cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle));\n bounds.add(cos(startAngle) * radius, sin(startAngle) * radius);\n bounds.add(cos(endAngle) * radius, sin(endAngle) * radius);\n if (startIdx !== endIdx || endAngle - startAngle > pi) {\n let match = false;\n for (let i = 0; i < indexList.length; i++) {\n if (!match && startIdx === indexList[i]) {\n match = true;\n const p = _coords[startIdx];\n bounds.add(p.x, p.y);\n continue;\n } else if (match && endIdx === indexList[i]) {\n break;\n }\n if (match) {\n const p = _coords[indexList[i]];\n bounds.add(p.x, p.y);\n }\n }\n }\n // const delta = Math.floor((endAngle - startAngle) / halfPi);\n // for (let i = 0; i < delta; i++) {\n // const p = _coords[(startIdx + i) % 4];\n // bounds.add(p.x, p.y);\n // }\n\n // // 计算y1, y2\n // const y2 = halfPi >= startAngle && halfPi <= endAngle ? radius : max(sin(startAngle), sin(endAngle)) * radius;\n // const y1 =\n // halfPi + pi >= startAngle && halfPi + pi <= endAngle ? -radius : min(sin(startAngle), sin(endAngle)) * radius;\n // const x2 = pi2 >= startAngle && pi2 <= endAngle ? radius : max(cos(startAngle), cos(endAngle)) * radius;\n // const x1 = pi >= startAngle && pi <= endAngle ? -radius : min(cos(startAngle), cos(endAngle)) * radius;\n\n // // bounds.set(x1, y1, x2, y2);\n // bounds.add(x1, y1);\n // bounds.add(x2, y2);\n}\n\n/**\n * 比较两个点数组是否相同\n * @param pointsA 数组A\n * @param pointsB 数组B\n */\nexport function pointsEqual(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike): boolean {\n if (!pointsA || !pointsB) {\n return false;\n } // 需要传入pointsA和pointsB\n if (Array.isArray(pointsA) && Array.isArray(pointsB)) {\n // 如果pointsA和pointsB是数组\n if (pointsA.length !== pointsB.length) {\n return false;\n }\n return pointsA.every((point, index) => pointEqual(point, pointsB[index]));\n }\n if (!Number.isNaN((pointsA as IPointLike).x + (pointsA as IPointLike).y)) {\n // 如果pointA是IPoint(防止参数是undefined)\n return pointEqual(pointsA as IPointLike, pointsB as IPointLike);\n }\n return false;\n}\n\n/**\n * 比较两个点是否相同\n * @param pointA 点A\n * @param pointB 点B\n */\nexport function pointEqual(pointA: IPointLike, pointB: IPointLike): boolean {\n return (\n pointA.x === pointB.x &&\n pointA.y === pointB.y &&\n pointA.x1 === pointB.x1 &&\n pointA.y1 === pointB.y1 &&\n pointA.defined === pointB.defined\n );\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n const point = new Point(x as number, y as number, x1, y1);\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolationHighPerformance(\n pointA: IPointLike,\n pointB: IPointLike,\n ratio: number,\n point: IPointLike\n): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n // const point = new Point(x as number, y as number, x1, y1);\n point.x = x as number;\n point.y = y as number;\n point.x1 = x1;\n point.y1 = y1;\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 点数组插值\n * @param pointsA 点数组A\n * @param pointsB 点数组B\n * @param ratio 比例\n */\nexport function pointsInterpolation(\n pointsA: IPointLike[] | IPointLike,\n pointsB: IPointLike[] | IPointLike,\n ratio: number\n): IPointLike[] {\n if (!pointsA || !pointsB) {\n return [];\n } // 需要传入pointsA和pointsB\n if (!Array.isArray(pointsA)) {\n pointsA = [pointsA];\n }\n if (!Array.isArray(pointsB)) {\n pointsB = [pointsB];\n }\n\n let points: IPointLike[] = [];\n if (pointsA.length > pointsB.length) {\n // 如果变短了,那么后面点的直接clip\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsB.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n } else {\n // 如果变长了,加上后面的点\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsA.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n }\n return points;\n}\n\nexport const transformKeys = [\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'anchor',\n 'postMatrix',\n 'scrollX',\n 'scrollY'\n];\nexport const isTransformKey = (key: string) => {\n return transformKeys.includes(key);\n};\n\nexport function getAttributeFromDefaultAttrList(attr: Record<string, any> | Record<string, any>[], key: string) {\n if (isArray(attr)) {\n let val;\n for (let i = 0; i < attr.length && val === undefined; i++) {\n val = attr[i][key];\n }\n return val;\n }\n return attr[key];\n}\n\nexport class RafBasedSTO {\n static TimeOut = 1000 / 60;\n durations: number[];\n timeout: number;\n lastDate: number;\n durationsListThreshold: number;\n\n constructor(timeout: number = RafBasedSTO.TimeOut) {\n this.durations = [];\n this.timeout = timeout;\n this.lastDate = 0;\n this.durationsListThreshold = 30;\n }\n\n call(cb: FrameRequestCallback) {\n this.lastDate = Date.now();\n return setTimeout(\n () => {\n this.appendDuration(Date.now() - this.lastDate);\n cb(0);\n },\n this.timeout,\n true\n );\n }\n\n clear(h: number) {\n clearTimeout(h);\n }\n\n appendDuration(d: number) {\n this.durations.push(d);\n if (this.durations.length > this.durationsListThreshold) {\n this.durations.shift();\n }\n // 最多60fps, 最少30fps\n this.timeout = Math.min(\n Math.max(this.durations.reduce((a, b) => a + b, 0) / this.durations.length, 1000 / 60),\n 1000 / 30\n );\n }\n}\n\nexport const rafBasedSto = new RafBasedSTO();\n\nexport const calculateLineHeight = (lineHeight: string | number, fontSize: number): number => {\n if (isString(lineHeight) && lineHeight[lineHeight.length - 1] === '%') {\n const scale = Number.parseFloat(lineHeight.substring(0, lineHeight.length - 1)) / 100;\n return fontSize * scale;\n }\n return lineHeight as number;\n};\n"]}
1
+ {"version":3,"sources":["../src/common/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { IBounds, IPointLike } from '@visactor/vutils';\nimport { isBoolean, halfPi, pi, pi2, sin, cos, isArray, pointAt, Point, isString } from '@visactor/vutils';\nimport type { IGraphicAttribute, IStrokeStyle } from '../interface';\n\n// todo: 迁移到@visactor/vutils\n\nexport enum Edge {\n Top = 0b000001,\n Right = 0b000010,\n Bottom = 0b000100,\n Left = 0b001000,\n\n ALL = 0b001111\n}\n\n// 公共的stroke数组,避免大量数组生成\nconst _strokeVec4: [boolean | string, boolean | string, boolean | string, boolean | string] = [\n false,\n false,\n false,\n false\n];\n/**\n * 解析stroke配置\n * @param stroke\n * @returns\n */\nexport const parseStroke = (\n stroke: IStrokeStyle['stroke']\n): {\n isFullStroke: boolean;\n stroke: (boolean | string)[];\n} => {\n let isFullStroke: boolean = true;\n // 首先判断\n if (isBoolean(stroke, true)) {\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = stroke as boolean;\n isFullStroke &&= !!(_strokeVec4[i] ?? true);\n }\n isFullStroke = stroke as boolean;\n } else if (Array.isArray(stroke)) {\n // array\n for (let i = 0; i < 4; i++) {\n _strokeVec4[i] = !!stroke[i];\n isFullStroke &&= !!_strokeVec4[i];\n }\n } else {\n _strokeVec4[0] = false;\n _strokeVec4[1] = false;\n _strokeVec4[2] = false;\n _strokeVec4[3] = false;\n }\n\n return {\n isFullStroke,\n stroke: _strokeVec4\n };\n};\n\n// 公共的padding数组,避免大量数组生成\nconst _paddingVec4: [number, number, number, number] = [0, 0, 0, 0];\n/**\n * 解析padding配置\n * @param padding\n * @returns\n */\nexport const parsePadding = (\n padding: IGraphicAttribute['boundsPadding']\n): number | [number, number, number, number] => {\n if (!padding) {\n return 0;\n }\n if (isArray(padding)) {\n if (padding.length === 0) {\n return 0;\n } else if (padding.length === 1) {\n return padding[0];\n } else if (padding.length === 2) {\n _paddingVec4[0] = padding[0];\n _paddingVec4[2] = padding[0];\n _paddingVec4[1] = padding[1];\n _paddingVec4[3] = padding[1];\n return _paddingVec4;\n }\n // 不考虑三个数的情况,三个数是用户传错了\n return padding as [number, number, number, number];\n }\n\n return padding as number;\n};\n\nconst _coords: [IPointLike, IPointLike, IPointLike, IPointLike] = [\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n];\nconst indexList = [1, 2, 3, 0, 1, 2, 3, 0];\n/**\n * 计算circle一段弧线的bounds\n * @param startAngle 小于2pi\n * @param endAngle\n * @param radius\n * @param bounds\n */\nexport function circleBounds(startAngle: number, endAngle: number, radius: number, bounds: IBounds) {\n // startAngle小于2pi\n // endAngle - startAngle小于2pi\n while (startAngle >= pi2) {\n startAngle -= pi2;\n }\n while (startAngle < 0) {\n startAngle += pi2;\n }\n while (startAngle > endAngle) {\n endAngle += pi2;\n }\n _coords[0].x = radius;\n // _coords[0].y = 0;\n // _coords[1].x = 0;\n _coords[1].y = radius;\n _coords[2].x = -radius;\n // _coords[2].y = -radius;\n // _coords[3].x = 0;\n _coords[3].y = -radius;\n\n // (0,pi/2], (pi/2, pi], (pi, pi/2*3], (pi/2*3, 2pi]\n // 1, 2, 3, 0\n const startIdx = Math.ceil(startAngle / halfPi) % 4;\n const endIdx = Math.ceil(endAngle / halfPi) % 4;\n // console.log(startAngle, endAngle, cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle));\n bounds.add(cos(startAngle) * radius, sin(startAngle) * radius);\n bounds.add(cos(endAngle) * radius, sin(endAngle) * radius);\n if (startIdx !== endIdx || endAngle - startAngle > pi) {\n let match = false;\n for (let i = 0; i < indexList.length; i++) {\n if (!match && startIdx === indexList[i]) {\n match = true;\n const p = _coords[startIdx];\n bounds.add(p.x, p.y);\n continue;\n } else if (match && endIdx === indexList[i]) {\n break;\n }\n if (match) {\n const p = _coords[indexList[i]];\n bounds.add(p.x, p.y);\n }\n }\n }\n // const delta = Math.floor((endAngle - startAngle) / halfPi);\n // for (let i = 0; i < delta; i++) {\n // const p = _coords[(startIdx + i) % 4];\n // bounds.add(p.x, p.y);\n // }\n\n // // 计算y1, y2\n // const y2 = halfPi >= startAngle && halfPi <= endAngle ? radius : max(sin(startAngle), sin(endAngle)) * radius;\n // const y1 =\n // halfPi + pi >= startAngle && halfPi + pi <= endAngle ? -radius : min(sin(startAngle), sin(endAngle)) * radius;\n // const x2 = pi2 >= startAngle && pi2 <= endAngle ? radius : max(cos(startAngle), cos(endAngle)) * radius;\n // const x1 = pi >= startAngle && pi <= endAngle ? -radius : min(cos(startAngle), cos(endAngle)) * radius;\n\n // // bounds.set(x1, y1, x2, y2);\n // bounds.add(x1, y1);\n // bounds.add(x2, y2);\n}\n\n/**\n * 比较两个点数组是否相同\n * @param pointsA 数组A\n * @param pointsB 数组B\n */\nexport function pointsEqual(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike): boolean {\n if (!pointsA || !pointsB) {\n return false;\n } // 需要传入pointsA和pointsB\n if (Array.isArray(pointsA) && Array.isArray(pointsB)) {\n // 如果pointsA和pointsB是数组\n if (pointsA.length !== pointsB.length) {\n return false;\n }\n return pointsA.every((point, index) => pointEqual(point, pointsB[index]));\n }\n if (!Number.isNaN((pointsA as IPointLike).x + (pointsA as IPointLike).y)) {\n // 如果pointA是IPoint(防止参数是undefined)\n return pointEqual(pointsA as IPointLike, pointsB as IPointLike);\n }\n return false;\n}\n\n/**\n * 比较两个点是否相同\n * @param pointA 点A\n * @param pointB 点B\n */\nexport function pointEqual(pointA: IPointLike, pointB: IPointLike): boolean {\n return (\n pointA.x === pointB.x &&\n pointA.y === pointB.y &&\n pointA.x1 === pointB.x1 &&\n pointA.y1 === pointB.y1 &&\n pointA.defined === pointB.defined\n );\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n const point = new Point(x as number, y as number, x1, y1);\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 两点插值\n * @param pointA 点A\n * @param pointB 点B\n * @param ratio 比例\n */\nexport function pointInterpolationHighPerformance(\n pointA: IPointLike,\n pointB: IPointLike,\n ratio: number,\n point: IPointLike\n): IPointLike {\n const { x, y } = pointAt(pointA.x, pointA.y, pointB.x, pointB.y, ratio);\n const { x: x1, y: y1 } = pointAt(pointA.x1, pointA.y1, pointB.x1, pointB.y1, ratio);\n // const point = new Point(x as number, y as number, x1, y1);\n point.x = x as number;\n point.y = y as number;\n point.x1 = x1;\n point.y1 = y1;\n point.defined = pointB.defined;\n return point;\n}\n\n/**\n * 点数组插值\n * @param pointsA 点数组A\n * @param pointsB 点数组B\n * @param ratio 比例\n */\nexport function pointsInterpolation(\n pointsA: IPointLike[] | IPointLike,\n pointsB: IPointLike[] | IPointLike,\n ratio: number\n): IPointLike[] {\n if (!pointsA || !pointsB) {\n return [];\n } // 需要传入pointsA和pointsB\n if (!Array.isArray(pointsA)) {\n pointsA = [pointsA];\n }\n if (!Array.isArray(pointsB)) {\n pointsB = [pointsB];\n }\n\n let points: IPointLike[] = [];\n if (pointsA.length > pointsB.length) {\n // 如果变短了,那么后面点的直接clip\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsB.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n } else {\n // 如果变长了,加上后面的点\n points = pointsB.map(point => {\n const p = new Point(point.x, point.y, point.x1, point.y1);\n p.defined = point.defined;\n return p;\n });\n for (let i = 0; i < pointsA.length; i++) {\n points[i] = pointInterpolation(pointsA[i], pointsB[i], ratio);\n }\n }\n return points;\n}\n\nexport const transformKeys = [\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'anchor',\n 'postMatrix',\n 'scrollX',\n 'scrollY'\n];\nexport const isTransformKey = (key: string) => {\n return transformKeys.includes(key);\n};\n\nexport function getAttributeFromDefaultAttrList(attr: Record<string, any> | Record<string, any>[], key: string) {\n if (isArray(attr)) {\n let val;\n for (let i = 0; i < attr.length && val === undefined; i++) {\n val = attr[i][key];\n }\n return val;\n }\n return attr[key];\n}\n\nexport class RafBasedSTO {\n static TimeOut = 1000 / 60;\n durations: number[];\n timeout: number;\n lastDate: number;\n durationsListThreshold: number;\n\n constructor(timeout: number = RafBasedSTO.TimeOut) {\n this.durations = [];\n this.timeout = timeout;\n this.lastDate = 0;\n this.durationsListThreshold = 30;\n }\n\n call(cb: FrameRequestCallback) {\n this.lastDate = Date.now();\n return setTimeout(\n () => {\n this.appendDuration(Date.now() - this.lastDate);\n cb(0);\n },\n this.timeout,\n true\n );\n }\n\n clear(h: number) {\n clearTimeout(h);\n }\n\n appendDuration(d: number) {\n this.durations.push(d);\n if (this.durations.length > this.durationsListThreshold) {\n this.durations.shift();\n }\n // 最多60fps, 最少30fps\n this.timeout = Math.min(\n Math.max(this.durations.reduce((a, b) => a + b, 0) / this.durations.length, 1000 / 60),\n 1000 / 30\n );\n }\n}\n\nexport const rafBasedSto = new RafBasedSTO();\n\nexport const calculateLineHeight = (lineHeight: string | number, fontSize: number): number => {\n if (isString(lineHeight) && lineHeight[lineHeight.length - 1] === '%') {\n const scale = Number.parseFloat(lineHeight.substring(0, lineHeight.length - 1)) / 100;\n return fontSize * scale;\n }\n return lineHeight as number;\n};\n"]}
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const OrderedObjParser_1 = require("./OrderedObjParser"), node2json_1 = require("./node2json");
8
8
 
9
9
  class XMLParser {
10
- static defaultOptions={};
11
- options;
12
10
  constructor(options) {
13
11
  this.options = Object.assign({}, XMLParser.defaultOptions, options);
14
12
  }
@@ -30,5 +28,6 @@ function isXML(str) {
30
28
  return str.startsWith("<");
31
29
  }
32
30
 
33
- exports.XMLParser = XMLParser, exports.isSvg = isSvg, exports.isXML = isXML;
31
+ exports.XMLParser = XMLParser, XMLParser.defaultOptions = {}, exports.isSvg = isSvg,
32
+ exports.isXML = isXML;
34
33
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/xml/parser.ts"],"names":[],"mappings":";;;AA2BA,yDAAsD;AACtD,2CAAuC;AAGvC,MAAa,SAAS;IACpB,MAAM,CAAC,cAAc,GAAwB,EAAE,CAAC;IAChD,OAAO,CAAsB;IAE7B,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,GAAW;QACf,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QACD,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,IAAA,oBAAQ,EAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;;AAnBH,8BAoBC;AAED,SAAgB,KAAK,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAFD,sBAEC;AAED,SAAgB,KAAK,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAFD,sBAEC","file":"parser.js","sourcesContent":["// 参考fast-xml-parser\n// https://github.com/NaturalIntelligence/fast-xml-parser\n/**\n * MIT License\n\nCopyright (c) 2017 Amit Kumar Gupta\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n */\n\nimport { OrderedObjParser } from './OrderedObjParser';\nimport { prettify } from './node2json';\nimport type { X2jOptions } from './type';\n\nexport class XMLParser {\n static defaultOptions: Partial<X2jOptions> = {};\n options: Partial<X2jOptions>;\n\n constructor(options?: Partial<X2jOptions>) {\n this.options = Object.assign({}, XMLParser.defaultOptions, options);\n }\n\n valid(xml: string) {\n return xml.startsWith('<');\n }\n\n parse(xmlData: string): any {\n if (!this.valid) {\n return false;\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n return prettify(orderedResult, this.options);\n }\n}\n\nexport function isSvg(str: string) {\n return str.startsWith('<svg') || str.startsWith('<?xml');\n}\n\nexport function isXML(str: string) {\n return str.startsWith('<');\n}\n"]}
1
+ {"version":3,"sources":["../src/common/xml/parser.ts"],"names":[],"mappings":";;;AA2BA,yDAAsD;AACtD,2CAAuC;AAGvC,MAAa,SAAS;IAIpB,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,GAAW;QACf,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QACD,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,IAAA,oBAAQ,EAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;;AAnBH,8BAoBC;AAnBQ,wBAAc,GAAwB,EAAE,CAAC;AAqBlD,SAAgB,KAAK,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC;AAFD,sBAEC;AAED,SAAgB,KAAK,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAFD,sBAEC","file":"parser.js","sourcesContent":["// 参考fast-xml-parser\n// https://github.com/NaturalIntelligence/fast-xml-parser\n/**\n * MIT License\n\nCopyright (c) 2017 Amit Kumar Gupta\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n */\n\nimport { OrderedObjParser } from './OrderedObjParser';\nimport { prettify } from './node2json';\nimport type { X2jOptions } from './type';\n\nexport class XMLParser {\n static defaultOptions: Partial<X2jOptions> = {};\n options: Partial<X2jOptions>;\n\n constructor(options?: Partial<X2jOptions>) {\n this.options = Object.assign({}, XMLParser.defaultOptions, options);\n }\n\n valid(xml: string) {\n return xml.startsWith('<');\n }\n\n parse(xmlData: string): any {\n if (!this.valid) {\n return false;\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n return prettify(orderedResult, this.options);\n }\n}\n\nexport function isSvg(str: string) {\n return str.startsWith('<svg') || str.startsWith('<?xml');\n}\n\nexport function isXML(str: string) {\n return str.startsWith('<');\n}\n"]}
@@ -7,19 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const matrix_allocate_1 = require("../allocator/matrix-allocate"), matrix_1 = require("../common/matrix");
8
8
 
9
9
  class OrthoCamera {
10
- _params;
11
- _projectionMatrixCached;
12
- _viewMatrixCached;
13
- _vp;
14
10
  set params(params) {
15
- this._params = {
16
- ...params
17
- }, this._projectionMatrixCached = this.forceGetProjectionMatrix(), this._viewMatrixCached = this.forceGetViewMatrix();
11
+ this._params = Object.assign({}, params), this._projectionMatrixCached = this.forceGetProjectionMatrix(),
12
+ this._viewMatrixCached = this.forceGetViewMatrix();
18
13
  }
19
14
  get params() {
20
- return {
21
- ...this._params
22
- };
15
+ return Object.assign({}, this._params);
23
16
  }
24
17
  constructor(params) {
25
18
  this.params = params;
@@ -49,7 +42,7 @@ class OrthoCamera {
49
42
  }
50
43
  getField() {
51
44
  const {fieldRatio: fieldRatio = .8, fieldDepth: fieldDepth, left: left, right: right} = this._params;
52
- return (fieldDepth ?? right - left) * fieldRatio;
45
+ return (null != fieldDepth ? fieldDepth : right - left) * fieldRatio;
53
46
  }
54
47
  getProjectionScale(z) {
55
48
  const field = this.getField();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/camera.ts"],"names":[],"mappings":"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","file":"camera.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { epsilon, IPoint } from '@visactor/vutils';\nimport { DefaultMat4Allocate } from '../allocator/matrix-allocate';\nimport type { ICamera, mat4, OrthoParameters, vec3 } from '../interface';\nimport { mat4Allocate } from '../allocator/matrix-allocate';\nimport { lookAt, multiply, ortho, transformMat4 } from '../common/matrix';\n\n/**\n * 部分代码参考 https://github.com/toji/gl-matrix\n * Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n// /**\n// * 代码来自gl-matrix https://github.com/toji/gl-matrix\n// * Generates a matrix that makes something look at something else.\n// *\n// * @param {mat4} out mat4 frustum matrix will be written into\n// * @param {ReadonlyVec3} eye Position of the viewer\n// * @param {ReadonlyVec3} center Point the viewer is looking at\n// * @param {ReadonlyVec3} up vec3 pointing up\n// * @returns {mat4} out\n// */\n\n// function targetTo(out: mat4, eye: vec3, target: vec3, up: vec3) {\n// const eyex = eye[0];\n// const eyey = eye[1];\n// const eyez = eye[2];\n// const upx = up[0];\n// const upy = up[1];\n// const upz = up[2];\n// let z0 = eyex - target[0];\n// let z1 = eyey - target[1];\n// let z2 = eyez - target[2];\n// let len = z0 * z0 + z1 * z1 + z2 * z2;\n\n// if (len > 0) {\n// len = 1 / Math.sqrt(len);\n// z0 *= len;\n// z1 *= len;\n// z2 *= len;\n// }\n\n// let x0 = upy * z2 - upz * z1;\n// let x1 = upz * z0 - upx * z2;\n// let x2 = upx * z1 - upy * z0;\n// len = x0 * x0 + x1 * x1 + x2 * x2;\n\n// if (len > 0) {\n// len = 1 / Math.sqrt(len);\n// x0 *= len;\n// x1 *= len;\n// x2 *= len;\n// }\n\n// out[0] = x0;\n// out[1] = x1;\n// out[2] = x2;\n// out[3] = 0;\n// out[4] = z1 * x2 - z2 * x1;\n// out[5] = z2 * x0 - z0 * x2;\n// out[6] = z0 * x1 - z1 * x0;\n// out[7] = 0;\n// out[8] = z0;\n// out[9] = z1;\n// out[10] = z2;\n// out[11] = 0;\n// out[12] = eyex;\n// out[13] = eyey;\n// out[14] = eyez;\n// out[15] = 1;\n// return out;\n// }\n\n/**\n * 正交投影摄像机\n */\nexport class OrthoCamera implements ICamera {\n private _params: OrthoParameters;\n\n /* cache */\n private _projectionMatrixCached: mat4;\n private _viewMatrixCached: mat4;\n private _vp: mat4;\n\n set params(params: OrthoParameters) {\n this._params = { ...params };\n this._projectionMatrixCached = this.forceGetProjectionMatrix();\n this._viewMatrixCached = this.forceGetViewMatrix();\n }\n get params(): OrthoParameters {\n return { ...this._params };\n }\n\n constructor(params: OrthoParameters) {\n this.params = params;\n }\n\n /**\n * 获取视图矩阵\n */\n getViewMatrix(): mat4 {\n if (!this._viewMatrixCached) {\n this._viewMatrixCached = mat4Allocate.allocate();\n }\n return this._viewMatrixCached;\n }\n forceGetViewMatrix(): mat4 {\n if (!this._viewMatrixCached) {\n this._viewMatrixCached = mat4Allocate.allocate();\n }\n const { pos, center, up } = this.params.viewParams;\n lookAt(this._viewMatrixCached, pos, center, up);\n\n if (!this._vp) {\n this._vp = mat4Allocate.allocate();\n }\n this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix());\n return this._viewMatrixCached;\n }\n\n /**\n * 获取projection矩阵\n */\n getProjectionMatrix(): mat4 {\n if (!this._projectionMatrixCached) {\n this._projectionMatrixCached = mat4Allocate.allocate();\n }\n return this._projectionMatrixCached;\n }\n forceGetProjectionMatrix(): mat4 {\n if (!this._projectionMatrixCached) {\n this._projectionMatrixCached = mat4Allocate.allocate();\n }\n const { left, top, right, bottom } = this._params;\n // 从0到2000000的Z轴范围,小于0的会被裁剪\n ortho(this._projectionMatrixCached, left, right, bottom, top, 0.0, -2000000.0);\n\n if (!this._vp) {\n this._vp = mat4Allocate.allocate();\n }\n this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix());\n return this._projectionMatrixCached;\n }\n\n getField() {\n const { fieldRatio = 0.8, fieldDepth, left, right } = this._params;\n return (fieldDepth ?? right - left) * fieldRatio;\n }\n\n getProjectionScale(z: number): number {\n const field = this.getField();\n return field / (field + z);\n }\n\n view(x: number, y: number, z: number): [number, number, number] {\n const outP: vec3 = [0, 0, 0];\n transformMat4(outP, [x, y, z], this._viewMatrixCached);\n return outP;\n }\n\n // 部分参考:https://www.mamboleoo.be/articles/how-to-render-3d-in-2d-canvas\n vp(x: number, y: number, z: number): IPointLike {\n const outP: vec3 = [0, 0, 0];\n const { pos } = this._params.viewParams;\n transformMat4(outP, [x, y, z], this._viewMatrixCached);\n x = outP[0];\n y = outP[1];\n z = outP[2];\n\n const sizeProjection = this.getProjectionScale(z);\n const xProject = x * sizeProjection + pos[0];\n const yProject = y * sizeProjection + pos[1];\n return {\n x: xProject,\n y: yProject\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/camera.ts"],"names":[],"mappings":"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","file":"camera.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { epsilon, IPoint } from '@visactor/vutils';\nimport { DefaultMat4Allocate } from '../allocator/matrix-allocate';\nimport type { ICamera, mat4, OrthoParameters, vec3 } from '../interface';\nimport { mat4Allocate } from '../allocator/matrix-allocate';\nimport { lookAt, multiply, ortho, transformMat4 } from '../common/matrix';\n\n/**\n * 部分代码参考 https://github.com/toji/gl-matrix\n * Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n// /**\n// * 代码来自gl-matrix https://github.com/toji/gl-matrix\n// * Generates a matrix that makes something look at something else.\n// *\n// * @param {mat4} out mat4 frustum matrix will be written into\n// * @param {ReadonlyVec3} eye Position of the viewer\n// * @param {ReadonlyVec3} center Point the viewer is looking at\n// * @param {ReadonlyVec3} up vec3 pointing up\n// * @returns {mat4} out\n// */\n\n// function targetTo(out: mat4, eye: vec3, target: vec3, up: vec3) {\n// const eyex = eye[0];\n// const eyey = eye[1];\n// const eyez = eye[2];\n// const upx = up[0];\n// const upy = up[1];\n// const upz = up[2];\n// let z0 = eyex - target[0];\n// let z1 = eyey - target[1];\n// let z2 = eyez - target[2];\n// let len = z0 * z0 + z1 * z1 + z2 * z2;\n\n// if (len > 0) {\n// len = 1 / Math.sqrt(len);\n// z0 *= len;\n// z1 *= len;\n// z2 *= len;\n// }\n\n// let x0 = upy * z2 - upz * z1;\n// let x1 = upz * z0 - upx * z2;\n// let x2 = upx * z1 - upy * z0;\n// len = x0 * x0 + x1 * x1 + x2 * x2;\n\n// if (len > 0) {\n// len = 1 / Math.sqrt(len);\n// x0 *= len;\n// x1 *= len;\n// x2 *= len;\n// }\n\n// out[0] = x0;\n// out[1] = x1;\n// out[2] = x2;\n// out[3] = 0;\n// out[4] = z1 * x2 - z2 * x1;\n// out[5] = z2 * x0 - z0 * x2;\n// out[6] = z0 * x1 - z1 * x0;\n// out[7] = 0;\n// out[8] = z0;\n// out[9] = z1;\n// out[10] = z2;\n// out[11] = 0;\n// out[12] = eyex;\n// out[13] = eyey;\n// out[14] = eyez;\n// out[15] = 1;\n// return out;\n// }\n\n/**\n * 正交投影摄像机\n */\nexport class OrthoCamera implements ICamera {\n private _params: OrthoParameters;\n\n /* cache */\n private _projectionMatrixCached: mat4;\n private _viewMatrixCached: mat4;\n private _vp: mat4;\n\n set params(params: OrthoParameters) {\n this._params = { ...params };\n this._projectionMatrixCached = this.forceGetProjectionMatrix();\n this._viewMatrixCached = this.forceGetViewMatrix();\n }\n get params(): OrthoParameters {\n return { ...this._params };\n }\n\n constructor(params: OrthoParameters) {\n this.params = params;\n }\n\n /**\n * 获取视图矩阵\n */\n getViewMatrix(): mat4 {\n if (!this._viewMatrixCached) {\n this._viewMatrixCached = mat4Allocate.allocate();\n }\n return this._viewMatrixCached;\n }\n forceGetViewMatrix(): mat4 {\n if (!this._viewMatrixCached) {\n this._viewMatrixCached = mat4Allocate.allocate();\n }\n const { pos, center, up } = this.params.viewParams;\n lookAt(this._viewMatrixCached, pos, center, up);\n\n if (!this._vp) {\n this._vp = mat4Allocate.allocate();\n }\n this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix());\n return this._viewMatrixCached;\n }\n\n /**\n * 获取projection矩阵\n */\n getProjectionMatrix(): mat4 {\n if (!this._projectionMatrixCached) {\n this._projectionMatrixCached = mat4Allocate.allocate();\n }\n return this._projectionMatrixCached;\n }\n forceGetProjectionMatrix(): mat4 {\n if (!this._projectionMatrixCached) {\n this._projectionMatrixCached = mat4Allocate.allocate();\n }\n const { left, top, right, bottom } = this._params;\n // 从0到2000000的Z轴范围,小于0的会被裁剪\n ortho(this._projectionMatrixCached, left, right, bottom, top, 0.0, -2000000.0);\n\n if (!this._vp) {\n this._vp = mat4Allocate.allocate();\n }\n this._vp = multiply(this._vp, this.getProjectionMatrix(), this.getViewMatrix());\n return this._projectionMatrixCached;\n }\n\n getField() {\n const { fieldRatio = 0.8, fieldDepth, left, right } = this._params;\n return (fieldDepth ?? right - left) * fieldRatio;\n }\n\n getProjectionScale(z: number): number {\n const field = this.getField();\n return field / (field + z);\n }\n\n view(x: number, y: number, z: number): [number, number, number] {\n const outP: vec3 = [0, 0, 0];\n transformMat4(outP, [x, y, z], this._viewMatrixCached);\n return outP;\n }\n\n // 部分参考:https://www.mamboleoo.be/articles/how-to-render-3d-in-2d-canvas\n vp(x: number, y: number, z: number): IPointLike {\n const outP: vec3 = [0, 0, 0];\n const { pos } = this._params.viewParams;\n transformMat4(outP, [x, y, z], this._viewMatrixCached);\n x = outP[0];\n y = outP[1];\n z = outP[2];\n\n const sizeProjection = this.getProjectionScale(z);\n const xProject = x * sizeProjection + pos[0];\n const yProject = y * sizeProjection + pos[1];\n return {\n x: xProject,\n y: yProject\n };\n }\n}\n"]}
@@ -13,12 +13,6 @@ Object.defineProperty(exports, "__esModule", {
13
13
  const inversify_lite_1 = require("../../../common/inversify-lite"), vutils_1 = require("@visactor/vutils");
14
14
 
15
15
  let BaseEnvContribution = class {
16
- type;
17
- supportsTouchEvents;
18
- supportsPointerEvents;
19
- supportsMouseEvents;
20
- applyStyles;
21
- supportEvent;
22
16
  configure(service, ...p) {
23
17
  service.env === this.type && service.setActiveEnvContribution(this);
24
18
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/env/base-contribution.ts"],"names":[],"mappings":"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","file":"base-contribution.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n CreateDOMParamsType\n} from '../../../interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\n\n@injectable()\nexport abstract class BaseEnvContribution implements IEnvContribution {\n type: EnvType;\n\n supportsTouchEvents: boolean;\n supportsPointerEvents: boolean;\n supportsMouseEvents: boolean;\n applyStyles: boolean;\n supportEvent: boolean;\n\n configure(service: IGlobal, ...p: any) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n }\n }\n\n getNativeAABBBounds(dom: any): IBoundsLike {\n return new AABBBounds();\n }\n\n removeDom(dom: HTMLElement): boolean {\n return false;\n }\n\n createDom(params: CreateDOMParamsType): any {\n return null;\n }\n\n updateDom(dom: HTMLElement, params: CreateDOMParamsType): boolean {\n return false;\n }\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return 999;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return 999;\n }\n\n abstract loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n\n abstract loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n\n abstract createCanvas(params: ICreateCanvasParams): ICanvasLike | any;\n abstract createOffscreenCanvas(params: ICreateCanvasParams): ICanvasLike | any;\n\n abstract releaseCanvas(canvas: ICanvasLike | string): void;\n\n abstract getDevicePixelRatio(): number;\n\n abstract getRequestAnimationFrame(): (callback: FrameRequestCallback) => number;\n abstract getCancelAnimationFrame(): (h: number) => void;\n\n abstract addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n abstract addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n abstract addEventListener(type: unknown, listener: unknown, options?: unknown): void;\n\n abstract removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n abstract removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n abstract removeEventListener(type: unknown, listener: unknown, options?: unknown): void;\n\n abstract dispatchEvent(event: any): boolean;\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n abstract release(...params: any): void;\n\n loadJson(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }> {\n const jsonPromise = fetch(url).then(data => data.json());\n jsonPromise\n .then(json => {\n return {\n data: json,\n state: 'success'\n };\n })\n .catch(() => {\n return {\n data: null,\n state: 'fail'\n };\n });\n return jsonPromise;\n }\n\n loadArrayBuffer(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }> {\n const arrayBufferPromise = fetch(url).then(data => data.arrayBuffer());\n return arrayBufferPromise\n .then((arrayBuffer: ArrayBuffer) => {\n return {\n data: arrayBuffer,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadBlob(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }> {\n const blobPromise = fetch(url).then(data => data.blob());\n return blobPromise\n .then((blob: Blob) => {\n return {\n data: blob,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n getElementTop(dom: any, baseWindow?: boolean) {\n return 0;\n }\n getElementLeft(dom: any, baseWindow?: boolean) {\n return 0;\n }\n getElementTopLeft(dom: any, baseWindow?: boolean): { top: number; left: number } {\n return { top: 0, left: 0 };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/env/base-contribution.ts"],"names":[],"mappings":"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","file":"base-contribution.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n IGlobal,\n CreateDOMParamsType\n} from '../../../interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\n\n@injectable()\nexport abstract class BaseEnvContribution implements IEnvContribution {\n type: EnvType;\n\n supportsTouchEvents: boolean;\n supportsPointerEvents: boolean;\n supportsMouseEvents: boolean;\n applyStyles: boolean;\n supportEvent: boolean;\n\n configure(service: IGlobal, ...p: any) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n }\n }\n\n getNativeAABBBounds(dom: any): IBoundsLike {\n return new AABBBounds();\n }\n\n removeDom(dom: HTMLElement): boolean {\n return false;\n }\n\n createDom(params: CreateDOMParamsType): any {\n return null;\n }\n\n updateDom(dom: HTMLElement, params: CreateDOMParamsType): boolean {\n return false;\n }\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return 999;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return 999;\n }\n\n abstract loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n\n abstract loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n\n abstract createCanvas(params: ICreateCanvasParams): ICanvasLike | any;\n abstract createOffscreenCanvas(params: ICreateCanvasParams): ICanvasLike | any;\n\n abstract releaseCanvas(canvas: ICanvasLike | string): void;\n\n abstract getDevicePixelRatio(): number;\n\n abstract getRequestAnimationFrame(): (callback: FrameRequestCallback) => number;\n abstract getCancelAnimationFrame(): (h: number) => void;\n\n abstract addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n abstract addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n abstract addEventListener(type: unknown, listener: unknown, options?: unknown): void;\n\n abstract removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n abstract removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n abstract removeEventListener(type: unknown, listener: unknown, options?: unknown): void;\n\n abstract dispatchEvent(event: any): boolean;\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n abstract release(...params: any): void;\n\n loadJson(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }> {\n const jsonPromise = fetch(url).then(data => data.json());\n jsonPromise\n .then(json => {\n return {\n data: json,\n state: 'success'\n };\n })\n .catch(() => {\n return {\n data: null,\n state: 'fail'\n };\n });\n return jsonPromise;\n }\n\n loadArrayBuffer(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }> {\n const arrayBufferPromise = fetch(url).then(data => data.arrayBuffer());\n return arrayBufferPromise\n .then((arrayBuffer: ArrayBuffer) => {\n return {\n data: arrayBuffer,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadBlob(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }> {\n const blobPromise = fetch(url).then(data => data.blob());\n return blobPromise\n .then((blob: Blob) => {\n return {\n data: blob,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n getElementTop(dom: any, baseWindow?: boolean) {\n return 0;\n }\n getElementLeft(dom: any, baseWindow?: boolean) {\n return 0;\n }\n getElementTopLeft(dom: any, baseWindow?: boolean): { top: number; left: number } {\n return { top: 0, left: 0 };\n }\n}\n"]}
@@ -15,17 +15,8 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const inversify_lite_1 = require("../../../common/inversify-lite"), util_1 = require("../../../canvas/util"), application_1 = require("../../../application");
16
16
 
17
17
  let CanvasLayerHandlerContribution = class {
18
- layer;
19
- canvas;
20
- context;
21
- offscreen;
22
- main;
23
- window;
24
- type="static";
25
- global;
26
- secondaryHandlers;
27
18
  constructor() {
28
- this.offscreen = !1, this.global = application_1.application.global;
19
+ this.type = "static", this.offscreen = !1, this.global = application_1.application.global;
29
20
  }
30
21
  setDpr(dpr) {
31
22
  this.canvas.dpr = dpr;
@@ -59,17 +50,16 @@ let CanvasLayerHandlerContribution = class {
59
50
  }
60
51
  resizeView(w, h) {}
61
52
  render(group, params, userParams) {
53
+ var _a;
62
54
  if (!this.main) {
63
55
  const windowCanvas = this.window.getContext().getCanvas().nativeCanvas;
64
56
  !windowCanvas || this.canvas.x === windowCanvas.offsetLeft && this.canvas.y === windowCanvas.offsetTop || (this.canvas.x = windowCanvas.offsetLeft,
65
57
  this.canvas.y = windowCanvas.offsetTop, this.canvas.applyPosition());
66
58
  }
67
- params.renderService.render(group, {
59
+ params.renderService.render(group, Object.assign(Object.assign({
68
60
  context: this.context,
69
- clear: params.background ?? "#ffffff",
70
- ...params,
71
- ...userParams
72
- });
61
+ clear: null !== (_a = params.background) && void 0 !== _a ? _a : "#ffffff"
62
+ }, params), userParams));
73
63
  }
74
64
  merge(layerHandlers) {
75
65
  layerHandlers.forEach((l => {
@@ -79,12 +69,13 @@ let CanvasLayerHandlerContribution = class {
79
69
  }
80
70
  prepare(dirtyBounds, params) {}
81
71
  drawTo(target, group, params) {
72
+ var _a;
82
73
  const context = target.getContext();
83
- params.renderService.render(group, {
84
- context: context,
85
- ...params,
86
- clear: params.clear ? params.background ?? "#fff" : void 0
87
- });
74
+ params.renderService.render(group, Object.assign(Object.assign({
75
+ context: context
76
+ }, params), {
77
+ clear: params.clear ? null !== (_a = params.background) && void 0 !== _a ? _a : "#fff" : void 0
78
+ }));
88
79
  }
89
80
  getContext() {
90
81
  return this.context;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/layerHandler/canvas2d-contribution.ts"],"names":[],"mappings":"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","file":"canvas2d-contribution.js","sourcesContent":["import { inject, injectable } from '../../../common/inversify-lite';\nimport { wrapCanvas } from '../../../canvas/util';\nimport type {\n IGlobal,\n ICanvas,\n IContext2d,\n IDrawToParams,\n IGroup,\n ILayer,\n ILayerHandlerContribution,\n IWindow,\n ILayerHandlerInitParams,\n ILayerHandlerDrawParams,\n IDrawContext,\n LayerMode\n} from '../../../interface';\nimport type { IBounds } from '@visactor/vutils';\nimport { application } from '../../../application';\n\n@injectable()\nexport class CanvasLayerHandlerContribution implements ILayerHandlerContribution {\n layer: ILayer;\n canvas: ICanvas;\n context: IContext2d;\n offscreen: boolean;\n main: boolean;\n window: IWindow;\n type: LayerMode = 'static';\n global: IGlobal;\n // 所绑定的副layer handler\n secondaryHandlers: ILayerHandlerContribution[];\n\n constructor() {\n this.offscreen = false;\n this.global = application.global;\n }\n\n setDpr(dpr: number) {\n this.canvas.dpr = dpr;\n return;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n this.window = window;\n // 默认图层,那么直接拿window上的上下文和canvas即可\n if (params.main) {\n this.main = true;\n this.context = window.getContext();\n this.canvas = this.context.getCanvas();\n } else {\n this.main = false;\n let nativeCanvas: HTMLElement;\n if (params.canvasId) {\n nativeCanvas = this.global.getElementById(params.canvasId);\n }\n if (!nativeCanvas) {\n nativeCanvas = this.global.createCanvas({\n width: window.width,\n height: window.height\n });\n }\n // 不是main的话,就穿透点击事件\n if (nativeCanvas.style) {\n nativeCanvas.style['pointer-events'] = 'none';\n }\n const windowContext = window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n const canvas = wrapCanvas({\n nativeCanvas,\n width: window.width,\n height: window.height,\n dpr: window.dpr,\n id: params.canvasId,\n canvasControled: true,\n container: window.getContainer(),\n x: windowCanvas.offsetLeft,\n y: windowCanvas.offsetTop\n });\n canvas.applyPosition();\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams, userParams?: Partial<IDrawContext>): void {\n // 调整位置\n if (!this.main) {\n const windowContext = this.window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n if (windowCanvas && (this.canvas.x !== windowCanvas.offsetLeft || this.canvas.y !== windowCanvas.offsetTop)) {\n this.canvas.x = windowCanvas.offsetLeft;\n this.canvas.y = windowCanvas.offsetTop;\n this.canvas.applyPosition();\n }\n }\n params.renderService.render(group, {\n context: this.context,\n clear: params.background ?? '#ffffff',\n ...params,\n ...userParams\n });\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n layerHandlers.forEach(l => {\n const ctx = l.getContext();\n const canvas = ctx.canvas.nativeCanvas;\n this.context.drawImage(canvas, 0, 0);\n });\n }\n\n prepare(dirtyBounds: IBounds, params: ILayerHandlerDrawParams) {\n return;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n params.renderService.render(group, {\n context,\n ...params,\n clear: params.clear ? params.background ?? '#fff' : undefined\n });\n return;\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n release() {\n this.canvas.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/layerHandler/canvas2d-contribution.ts"],"names":[],"mappings":"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","file":"canvas2d-contribution.js","sourcesContent":["import { inject, injectable } from '../../../common/inversify-lite';\nimport { wrapCanvas } from '../../../canvas/util';\nimport type {\n IGlobal,\n ICanvas,\n IContext2d,\n IDrawToParams,\n IGroup,\n ILayer,\n ILayerHandlerContribution,\n IWindow,\n ILayerHandlerInitParams,\n ILayerHandlerDrawParams,\n IDrawContext,\n LayerMode\n} from '../../../interface';\nimport type { IBounds } from '@visactor/vutils';\nimport { application } from '../../../application';\n\n@injectable()\nexport class CanvasLayerHandlerContribution implements ILayerHandlerContribution {\n layer: ILayer;\n canvas: ICanvas;\n context: IContext2d;\n offscreen: boolean;\n main: boolean;\n window: IWindow;\n type: LayerMode = 'static';\n global: IGlobal;\n // 所绑定的副layer handler\n secondaryHandlers: ILayerHandlerContribution[];\n\n constructor() {\n this.offscreen = false;\n this.global = application.global;\n }\n\n setDpr(dpr: number) {\n this.canvas.dpr = dpr;\n return;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n this.window = window;\n // 默认图层,那么直接拿window上的上下文和canvas即可\n if (params.main) {\n this.main = true;\n this.context = window.getContext();\n this.canvas = this.context.getCanvas();\n } else {\n this.main = false;\n let nativeCanvas: HTMLElement;\n if (params.canvasId) {\n nativeCanvas = this.global.getElementById(params.canvasId);\n }\n if (!nativeCanvas) {\n nativeCanvas = this.global.createCanvas({\n width: window.width,\n height: window.height\n });\n }\n // 不是main的话,就穿透点击事件\n if (nativeCanvas.style) {\n nativeCanvas.style['pointer-events'] = 'none';\n }\n const windowContext = window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n const canvas = wrapCanvas({\n nativeCanvas,\n width: window.width,\n height: window.height,\n dpr: window.dpr,\n id: params.canvasId,\n canvasControled: true,\n container: window.getContainer(),\n x: windowCanvas.offsetLeft,\n y: windowCanvas.offsetTop\n });\n canvas.applyPosition();\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams, userParams?: Partial<IDrawContext>): void {\n // 调整位置\n if (!this.main) {\n const windowContext = this.window.getContext();\n const windowCanvas = windowContext.getCanvas().nativeCanvas;\n if (windowCanvas && (this.canvas.x !== windowCanvas.offsetLeft || this.canvas.y !== windowCanvas.offsetTop)) {\n this.canvas.x = windowCanvas.offsetLeft;\n this.canvas.y = windowCanvas.offsetTop;\n this.canvas.applyPosition();\n }\n }\n params.renderService.render(group, {\n context: this.context,\n clear: params.background ?? '#ffffff',\n ...params,\n ...userParams\n });\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n layerHandlers.forEach(l => {\n const ctx = l.getContext();\n const canvas = ctx.canvas.nativeCanvas;\n this.context.drawImage(canvas, 0, 0);\n });\n }\n\n prepare(dirtyBounds: IBounds, params: ILayerHandlerDrawParams) {\n return;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n params.renderService.render(group, {\n context,\n ...params,\n clear: params.clear ? params.background ?? '#fff' : undefined\n });\n return;\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n release() {\n this.canvas.release();\n }\n}\n"]}
@@ -26,20 +26,20 @@ let EmptyLayerHandlerContribution = class {
26
26
  resize(w, h) {}
27
27
  resizeView(w, h) {}
28
28
  render(group, params, userParams) {
29
- this.mainHandler.render(group, params, {
30
- ...userParams,
29
+ this.mainHandler.render(group, params, Object.assign(Object.assign({}, userParams), {
31
30
  clear: !1
32
- });
31
+ }));
33
32
  }
34
33
  merge(layerHandlers) {}
35
34
  prepare(dirtyBounds, params) {}
36
35
  drawTo(target, group, params) {
36
+ var _a;
37
37
  const context = target.getContext();
38
- params.renderService.render(group, {
39
- context: context,
40
- ...params,
41
- clear: params.clear ? params.background ?? "#fff" : void 0
42
- });
38
+ params.renderService.render(group, Object.assign(Object.assign({
39
+ context: context
40
+ }, params), {
41
+ clear: params.clear ? null !== (_a = params.background) && void 0 !== _a ? _a : "#fff" : void 0
42
+ }));
43
43
  }
44
44
  getContext() {
45
45
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/layerHandler/empty-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAAoE;AAcpE,sDAAmD;AAG5C,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAYxC;QACE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,yBAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,MAAe,EAAE,MAA+B;QAClE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,OAAO;IACT,CAAC;IACD,UAAU,CAAC,CAAS,EAAE,CAAS;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,CAAC,KAAe,EAAE,MAA+B,EAAE,UAAkC;QACzF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,KAAK,CAAC,aAA0C;QAC9C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,WAAoB,EAAE,MAA+B;QAC3D,OAAO;IACT,CAAC;IAED,MAAM,CAAC,MAAe,EAAE,KAAe,EAAE,MAA+C;QACtF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE;YACjC,OAAO;YACP,GAAG,MAAM;YACT,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS;SAC9D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO;IACT,CAAC;CACF,CAAA;AAtEY,6BAA6B;IADzC,IAAA,2BAAU,GAAE;;GACA,6BAA6B,CAsEzC;AAtEY,sEAA6B","file":"empty-contribution.js","sourcesContent":["import { inject, injectable } from '../../../common/inversify-lite';\nimport type {\n IGlobal,\n IDrawToParams,\n IGroup,\n ILayer,\n ILayerHandlerContribution,\n IWindow,\n ILayerHandlerInitParams,\n ILayerHandlerDrawParams,\n IDrawContext,\n LayerMode\n} from '../../../interface';\nimport type { IBounds } from '@visactor/vutils';\nimport { application } from '../../../application';\n\n@injectable()\nexport class EmptyLayerHandlerContribution implements ILayerHandlerContribution {\n declare layer: ILayer;\n declare canvas: null;\n declare context: null;\n declare offscreen: boolean;\n declare main: boolean;\n declare window: IWindow;\n declare type: LayerMode;\n // 所依赖的主layer handler\n declare mainHandler: ILayerHandlerContribution;\n declare global: IGlobal;\n\n constructor() {\n this.offscreen = false;\n this.type = 'virtual';\n this.global = application.global;\n }\n\n setDpr(dpr: number) {\n return;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n this.window = window;\n if (params.main) {\n throw new Error('virtual layer不能作为main layer');\n }\n this.main = false;\n this.canvas = null;\n this.context = null;\n }\n\n resize(w: number, h: number) {\n return;\n }\n resizeView(w: number, h: number) {\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams, userParams?: Partial<IDrawContext>): void {\n this.mainHandler.render(group, params, { ...userParams, clear: false });\n return;\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n return;\n }\n\n prepare(dirtyBounds: IBounds, params: ILayerHandlerDrawParams) {\n return;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n params.renderService.render(group, {\n context,\n ...params,\n clear: params.clear ? params.background ?? '#fff' : undefined\n });\n return;\n }\n\n getContext(): null {\n return null;\n }\n\n release() {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/layerHandler/empty-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAAoE;AAcpE,sDAAmD;AAG5C,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAYxC;QACE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,yBAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,MAAe,EAAE,MAA+B;QAClE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,OAAO;IACT,CAAC;IACD,UAAU,CAAC,CAAS,EAAE,CAAS;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,CAAC,KAAe,EAAE,MAA+B,EAAE,UAAkC;QACzF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,kCAAO,UAAU,KAAE,KAAK,EAAE,KAAK,IAAG,CAAC;QACxE,OAAO;IACT,CAAC;IAED,KAAK,CAAC,aAA0C;QAC9C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,WAAoB,EAAE,MAA+B;QAC3D,OAAO;IACT,CAAC;IAED,MAAM,CAAC,MAAe,EAAE,KAAe,EAAE,MAA+C;;QACtF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,gCAC/B,OAAO,IACJ,MAAM,KACT,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,UAAU,mCAAI,MAAM,CAAC,CAAC,CAAC,SAAS,IAC7D,CAAC;QACH,OAAO;IACT,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO;IACT,CAAC;CACF,CAAA;AAtEY,6BAA6B;IADzC,IAAA,2BAAU,GAAE;;GACA,6BAA6B,CAsEzC;AAtEY,sEAA6B","file":"empty-contribution.js","sourcesContent":["import { inject, injectable } from '../../../common/inversify-lite';\nimport type {\n IGlobal,\n IDrawToParams,\n IGroup,\n ILayer,\n ILayerHandlerContribution,\n IWindow,\n ILayerHandlerInitParams,\n ILayerHandlerDrawParams,\n IDrawContext,\n LayerMode\n} from '../../../interface';\nimport type { IBounds } from '@visactor/vutils';\nimport { application } from '../../../application';\n\n@injectable()\nexport class EmptyLayerHandlerContribution implements ILayerHandlerContribution {\n declare layer: ILayer;\n declare canvas: null;\n declare context: null;\n declare offscreen: boolean;\n declare main: boolean;\n declare window: IWindow;\n declare type: LayerMode;\n // 所依赖的主layer handler\n declare mainHandler: ILayerHandlerContribution;\n declare global: IGlobal;\n\n constructor() {\n this.offscreen = false;\n this.type = 'virtual';\n this.global = application.global;\n }\n\n setDpr(dpr: number) {\n return;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n this.window = window;\n if (params.main) {\n throw new Error('virtual layer不能作为main layer');\n }\n this.main = false;\n this.canvas = null;\n this.context = null;\n }\n\n resize(w: number, h: number) {\n return;\n }\n resizeView(w: number, h: number) {\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams, userParams?: Partial<IDrawContext>): void {\n this.mainHandler.render(group, params, { ...userParams, clear: false });\n return;\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n return;\n }\n\n prepare(dirtyBounds: IBounds, params: ILayerHandlerDrawParams) {\n return;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n params.renderService.render(group, {\n context,\n ...params,\n clear: params.clear ? params.background ?? '#fff' : undefined\n });\n return;\n }\n\n getContext(): null {\n return null;\n }\n\n release() {\n return;\n }\n}\n"]}
@@ -43,13 +43,14 @@ let OffscreenLayerHandlerContribution = class {
43
43
  this.canvas.resize(w, h);
44
44
  }
45
45
  render(group, params) {
46
- params.renderService.render(group, {
46
+ var _a;
47
+ params.renderService.render(group, Object.assign(Object.assign({
47
48
  context: this.context,
48
49
  viewBox: params.stage.window.getViewBox(),
49
- transMatrix: params.stage.window.getViewBoxTransform(),
50
- ...params,
51
- clear: params.background ?? "#ffffff"
52
- });
50
+ transMatrix: params.stage.window.getViewBoxTransform()
51
+ }, params), {
52
+ clear: null !== (_a = params.background) && void 0 !== _a ? _a : "#ffffff"
53
+ }));
53
54
  }
54
55
  prepare(dirtyBounds, params) {}
55
56
  release() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/contributions/layerHandler/offscreen2d-contribution.ts"],"names":[],"mappings":"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","file":"offscreen2d-contribution.js","sourcesContent":["import { inject, injectable } from '../../../common/inversify-lite';\nimport { wrapCanvas } from '../../../canvas/util';\nimport type {\n IGlobal,\n ICanvas,\n IContext2d,\n IDrawToParams,\n IGroup,\n ILayer,\n ILayerHandlerContribution,\n ILayerHandlerInitParams,\n IWindow,\n ILayerHandlerDrawParams,\n LayerMode\n} from '../../../interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { application } from '../../../application';\n\n@injectable()\nexport class OffscreenLayerHandlerContribution implements ILayerHandlerContribution {\n declare layer: ILayer;\n declare canvas: ICanvas;\n declare context: IContext2d;\n declare offscreen: boolean;\n declare type: LayerMode;\n // 所绑定的副layer handler\n declare secondaryHandlers: ILayerHandlerContribution[];\n declare global: IGlobal;\n\n constructor() {\n this.offscreen = true;\n this.type = 'dynamic';\n this.global = application.global;\n }\n\n setDpr(dpr: number) {\n this.canvas.dpr = dpr;\n return;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n const nativeCanvas = this.global.createOffscreenCanvas({\n width: params.width,\n height: params.height,\n dpr: window.dpr\n });\n const canvas = wrapCanvas({\n nativeCanvas,\n width: params.width,\n height: params.height,\n dpr: window.dpr,\n canvasControled: true\n });\n\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams): void {\n params.renderService.render(group, {\n context: this.context,\n viewBox: params.stage.window.getViewBox(),\n transMatrix: params.stage.window.getViewBoxTransform(),\n ...params,\n clear: params.background ?? '#ffffff'\n });\n }\n\n prepare(dirtyBounds: IBoundsLike, params: ILayerHandlerDrawParams) {\n return;\n }\n\n release() {\n this.canvas.release();\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n const targetDpr = target.dpr;\n\n const { viewBox } = params;\n const x = viewBox.x1;\n const y = viewBox.y1;\n const width = viewBox.width();\n const height = viewBox.height();\n // 这个context可能是外部的,不要使用内置的状态,直接用原生的context\n context.nativeContext.save();\n context.nativeContext.setTransform(targetDpr, 0, 0, targetDpr, 0, 0);\n if (params.clear) {\n context.clearRect(x, y, width, height);\n }\n context.drawImage(this.canvas.nativeCanvas, 0, 0, this.canvas.width, this.canvas.height, x, y, width, height);\n context.nativeContext.restore();\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/contributions/layerHandler/offscreen2d-contribution.ts"],"names":[],"mappings":"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","file":"offscreen2d-contribution.js","sourcesContent":["import { inject, injectable } from '../../../common/inversify-lite';\nimport { wrapCanvas } from '../../../canvas/util';\nimport type {\n IGlobal,\n ICanvas,\n IContext2d,\n IDrawToParams,\n IGroup,\n ILayer,\n ILayerHandlerContribution,\n ILayerHandlerInitParams,\n IWindow,\n ILayerHandlerDrawParams,\n LayerMode\n} from '../../../interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { application } from '../../../application';\n\n@injectable()\nexport class OffscreenLayerHandlerContribution implements ILayerHandlerContribution {\n declare layer: ILayer;\n declare canvas: ICanvas;\n declare context: IContext2d;\n declare offscreen: boolean;\n declare type: LayerMode;\n // 所绑定的副layer handler\n declare secondaryHandlers: ILayerHandlerContribution[];\n declare global: IGlobal;\n\n constructor() {\n this.offscreen = true;\n this.type = 'dynamic';\n this.global = application.global;\n }\n\n setDpr(dpr: number) {\n this.canvas.dpr = dpr;\n return;\n }\n\n init(layer: ILayer, window: IWindow, params: ILayerHandlerInitParams): void {\n this.layer = layer;\n const nativeCanvas = this.global.createOffscreenCanvas({\n width: params.width,\n height: params.height,\n dpr: window.dpr\n });\n const canvas = wrapCanvas({\n nativeCanvas,\n width: params.width,\n height: params.height,\n dpr: window.dpr,\n canvasControled: true\n });\n\n this.canvas = canvas;\n this.context = canvas.getContext();\n }\n\n resize(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n resizeView(w: number, h: number) {\n this.canvas.resize(w, h);\n return;\n }\n\n render(group: IGroup[], params: ILayerHandlerDrawParams): void {\n params.renderService.render(group, {\n context: this.context,\n viewBox: params.stage.window.getViewBox(),\n transMatrix: params.stage.window.getViewBoxTransform(),\n ...params,\n clear: params.background ?? '#ffffff'\n });\n }\n\n prepare(dirtyBounds: IBoundsLike, params: ILayerHandlerDrawParams) {\n return;\n }\n\n release() {\n this.canvas.release();\n }\n\n getContext(): IContext2d {\n return this.context;\n }\n\n drawTo(target: IWindow, group: IGroup[], params: IDrawToParams & ILayerHandlerDrawParams) {\n const context = target.getContext();\n const targetDpr = target.dpr;\n\n const { viewBox } = params;\n const x = viewBox.x1;\n const y = viewBox.y1;\n const width = viewBox.width();\n const height = viewBox.height();\n // 这个context可能是外部的,不要使用内置的状态,直接用原生的context\n context.nativeContext.save();\n context.nativeContext.setTransform(targetDpr, 0, 0, targetDpr, 0, 0);\n if (params.clear) {\n context.clearRect(x, y, width, height);\n }\n context.drawImage(this.canvas.nativeCanvas, 0, 0, this.canvas.width, this.canvas.height, x, y, width, height);\n context.nativeContext.restore();\n }\n\n merge(layerHandlers: ILayerHandlerContribution[]) {\n return;\n }\n}\n"]}
@@ -13,9 +13,6 @@ Object.defineProperty(exports, "__esModule", {
13
13
  const inversify_lite_1 = require("../../../common/inversify-lite"), config_1 = require("../../../graphic/config"), utils_1 = require("../../../graphic/richtext/utils");
14
14
 
15
15
  let ATextMeasure = class {
16
- release;
17
- canvas;
18
- context;
19
16
  configure(service, env) {
20
17
  this.canvas = service.canvas, this.context = service.context, service.bindTextMeasure(this);
21
18
  }
@@ -33,13 +30,15 @@ let ATextMeasure = class {
33
30
  };
34
31
  }
35
32
  measureTextPixelHeight(text, options) {
36
- if (!this.context) return options.fontSize ?? config_1.DefaultTextStyle.fontSize;
33
+ var _a;
34
+ if (!this.context) return null !== (_a = options.fontSize) && void 0 !== _a ? _a : config_1.DefaultTextStyle.fontSize;
37
35
  this.context.setTextStyleWithoutAlignBaseline(options);
38
36
  const textMeasure = this.context.measureText(text);
39
37
  return Math.abs(textMeasure.actualBoundingBoxAscent - textMeasure.actualBoundingBoxDescent);
40
38
  }
41
39
  measureTextBoundHieght(text, options) {
42
- if (!this.context) return options.fontSize ?? config_1.DefaultTextStyle.fontSize;
40
+ var _a;
41
+ if (!this.context) return null !== (_a = options.fontSize) && void 0 !== _a ? _a : config_1.DefaultTextStyle.fontSize;
43
42
  this.context.setTextStyleWithoutAlignBaseline(options);
44
43
  const textMeasure = this.context.measureText(text);
45
44
  return Math.abs(textMeasure.fontBoundingBoxAscent - textMeasure.fontBoundingBoxDescent);
@@ -74,11 +73,10 @@ let ATextMeasure = class {
74
73
  index -= length, index !== clipedData.str.length - 1 && (clipedData.str = clipedData.str.substring(0, index),
75
74
  clipedData.width = this.measureTextWidth(clipedData.str, options));
76
75
  }
77
- out.push({
78
- ...verticalList[i],
76
+ out.push(Object.assign(Object.assign({}, verticalList[i]), {
79
77
  text: clipedData.str,
80
78
  width: clipedData.width
81
- }), length += clipedData.width;
79
+ })), length += clipedData.width;
82
80
  }
83
81
  return {
84
82
  verticalList: out,
@@ -234,10 +232,9 @@ let ATextMeasure = class {
234
232
  revertVerticalList(verticalList) {
235
233
  return verticalList.reverse().map((l => {
236
234
  const t = l.text.split("").reverse().join("");
237
- return {
238
- ...l,
235
+ return Object.assign(Object.assign({}, l), {
239
236
  text: t
240
- };
237
+ });
241
238
  }));
242
239
  }
243
240
  clipTextWithSuffix(text, options, width, suffix, wordBreak, position, forceSuffix = !1) {