@visactor/vrender-core 0.16.19 → 0.16.20-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/cjs/allocator/bounds-allocate.d.ts +13 -0
  2. package/cjs/allocator/bounds-allocate.js +38 -0
  3. package/cjs/allocator/bounds-allocate.js.map +1 -0
  4. package/cjs/allocator/canvas-allocate.d.ts +4 -0
  5. package/cjs/allocator/canvas-allocate.js +19 -6
  6. package/cjs/allocator/canvas-allocate.js.map +1 -1
  7. package/cjs/allocator/graphic-allocate.d.ts +56 -1
  8. package/cjs/allocator/graphic-allocate.js +163 -1
  9. package/cjs/allocator/graphic-allocate.js.map +1 -1
  10. package/cjs/animate/Ticker/default-ticker.js +1 -1
  11. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  12. package/cjs/animate/config.js +1 -2
  13. package/cjs/animate/custom-animate.js +2 -1
  14. package/cjs/canvas/contributions/base-canvas.js +4 -2
  15. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  16. package/cjs/common/Reflect-metadata.js +349 -359
  17. package/cjs/common/Reflect-metadata.js.map +1 -1
  18. package/cjs/common/bezier-utils.js +2 -1
  19. package/cjs/common/inversify/annotation/inject.d.ts +1 -0
  20. package/cjs/common/inversify/annotation/inject.js +10 -0
  21. package/cjs/common/inversify/annotation/inject.js.map +1 -0
  22. package/cjs/common/inversify/annotation/inject_base.d.ts +14 -0
  23. package/cjs/common/inversify/annotation/inject_base.js +39 -0
  24. package/cjs/common/inversify/annotation/inject_base.js.map +1 -0
  25. package/cjs/common/inversify/annotation/injectable.d.ts +1 -0
  26. package/cjs/common/{inversify-lite/annotation/post_construct.js → inversify/annotation/injectable.js} +15 -5
  27. package/cjs/common/inversify/annotation/injectable.js.map +1 -0
  28. package/cjs/common/inversify/annotation/multi_inject.d.ts +1 -0
  29. package/cjs/common/inversify/annotation/multi_inject.js +10 -0
  30. package/cjs/common/inversify/annotation/multi_inject.js.map +1 -0
  31. package/cjs/common/inversify/annotation/named.d.ts +1 -0
  32. package/cjs/common/inversify/annotation/named.js +14 -0
  33. package/cjs/common/inversify/annotation/named.js.map +1 -0
  34. package/cjs/common/inversify/binding.d.ts +18 -0
  35. package/cjs/common/inversify/binding.js +26 -0
  36. package/cjs/common/inversify/binding.js.map +1 -0
  37. package/cjs/common/inversify/container.d.ts +28 -0
  38. package/cjs/common/inversify/container.js +155 -0
  39. package/cjs/common/inversify/container.js.map +1 -0
  40. package/cjs/common/inversify/cotainer-module.d.ts +6 -0
  41. package/cjs/common/inversify/cotainer-module.js +16 -0
  42. package/cjs/common/inversify/cotainer-module.js.map +1 -0
  43. package/cjs/common/inversify/index.d.ts +7 -0
  44. package/cjs/common/inversify/index.js +75 -0
  45. package/cjs/common/inversify/index.js.map +1 -0
  46. package/cjs/common/inversify/interfaces.d.ts +218 -0
  47. package/cjs/common/inversify/interfaces.js +6 -0
  48. package/cjs/common/inversify/interfaces.js.map +1 -0
  49. package/cjs/common/inversify/literal_types.d.ts +5 -0
  50. package/cjs/common/inversify/literal_types.js +34 -0
  51. package/cjs/common/inversify/literal_types.js.map +1 -0
  52. package/cjs/common/inversify/meta-data.d.ts +6 -0
  53. package/cjs/common/inversify/meta-data.js +19 -0
  54. package/cjs/common/inversify/meta-data.js.map +1 -0
  55. package/cjs/common/inversify/metadata_keys.d.ts +12 -0
  56. package/cjs/common/inversify/metadata_keys.js +15 -0
  57. package/cjs/common/inversify/metadata_keys.js.map +1 -0
  58. package/cjs/common/inversify/metadata_reader.d.ts +6 -0
  59. package/cjs/common/inversify/metadata_reader.js +28 -0
  60. package/cjs/common/inversify/metadata_reader.js.map +1 -0
  61. package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
  62. package/cjs/common/inversify/syntax/binding_in_syntax.js +29 -0
  63. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -0
  64. package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
  65. package/cjs/common/inversify/syntax/binding_to_syntax.js +40 -0
  66. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -0
  67. package/cjs/common/inversify/syntax/constraint_helpers.d.ts +2 -0
  68. package/cjs/common/inversify/syntax/constraint_helpers.js +20 -0
  69. package/cjs/common/inversify/syntax/constraint_helpers.js.map +1 -0
  70. package/cjs/common/inversify-lite/container/container.js +1 -3
  71. package/cjs/common/inversify-lite/container/container.js.map +1 -1
  72. package/cjs/common/inversify-lite/index.d.ts +1 -8
  73. package/cjs/common/inversify-lite/index.js +1 -64
  74. package/cjs/common/inversify-lite/index.js.map +1 -1
  75. package/cjs/common/inversify-lite/interfaces/interfaces.d.ts +0 -2
  76. package/cjs/common/inversify-lite/interfaces/interfaces.js.map +1 -1
  77. package/cjs/common/inversify-lite/planning/queryable_string.d.ts +0 -2
  78. package/cjs/common/inversify-lite/planning/queryable_string.js +0 -10
  79. package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
  80. package/cjs/common/inversify-lite/resolution/resolver.js.map +1 -1
  81. package/cjs/common/shape/rect.js +2 -1
  82. package/cjs/common/shape/rect.js.map +1 -1
  83. package/cjs/common/sort.js +1 -2
  84. package/cjs/common/split-path.js +2 -1
  85. package/cjs/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -2
  86. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +4 -9
  87. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  88. package/cjs/core/contributions/layerHandler/empty-contribution.d.ts +2 -2
  89. package/cjs/core/contributions/layerHandler/empty-contribution.js +4 -9
  90. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  91. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.d.ts +2 -2
  92. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +4 -9
  93. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  94. package/cjs/core/contributions/textMeasure/modules.js +1 -2
  95. package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
  96. package/cjs/core/core-modules.js +5 -6
  97. package/cjs/core/core-modules.js.map +1 -1
  98. package/cjs/core/global.d.ts +4 -0
  99. package/cjs/core/global.js +8 -5
  100. package/cjs/core/global.js.map +1 -1
  101. package/cjs/core/graphic-utils.d.ts +7 -4
  102. package/cjs/core/graphic-utils.js +18 -14
  103. package/cjs/core/graphic-utils.js.map +1 -1
  104. package/cjs/core/layer-service.d.ts +5 -2
  105. package/cjs/core/layer-service.js +13 -13
  106. package/cjs/core/layer-service.js.map +1 -1
  107. package/cjs/core/stage.d.ts +7 -4
  108. package/cjs/core/stage.js +38 -34
  109. package/cjs/core/stage.js.map +1 -1
  110. package/cjs/core/window.d.ts +2 -2
  111. package/cjs/core/window.js +7 -12
  112. package/cjs/core/window.js.map +1 -1
  113. package/cjs/event/event-manager.js +3 -2
  114. package/cjs/event/event-manager.js.map +1 -1
  115. package/cjs/graphic/config.d.ts +1 -2
  116. package/cjs/graphic/config.js +7 -5
  117. package/cjs/graphic/config.js.map +1 -1
  118. package/cjs/graphic/graphic-service/arc-contribution.d.ts +1 -5
  119. package/cjs/graphic/graphic-service/arc-contribution.js +0 -18
  120. package/cjs/graphic/graphic-service/arc-contribution.js.map +1 -1
  121. package/cjs/graphic/graphic-service/area-contribution.d.ts +1 -1
  122. package/cjs/graphic/graphic-service/area-contribution.js +1 -4
  123. package/cjs/graphic/graphic-service/area-contribution.js.map +1 -1
  124. package/cjs/graphic/graphic-service/circle-contribution.d.ts +1 -5
  125. package/cjs/graphic/graphic-service/circle-contribution.js +0 -18
  126. package/cjs/graphic/graphic-service/circle-contribution.js.map +1 -1
  127. package/cjs/graphic/graphic-service/common-contribution.js +2 -11
  128. package/cjs/graphic/graphic-service/common-contribution.js.map +1 -1
  129. package/cjs/graphic/graphic-service/graphic-module.js +2 -17
  130. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
  131. package/cjs/graphic/graphic-service/graphic-service.d.ts +2 -7
  132. package/cjs/graphic/graphic-service/graphic-service.js +24 -30
  133. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  134. package/cjs/graphic/graphic-service/path-contribution.d.ts +1 -5
  135. package/cjs/graphic/graphic-service/path-contribution.js +0 -18
  136. package/cjs/graphic/graphic-service/path-contribution.js.map +1 -1
  137. package/cjs/graphic/graphic-service/rect-contribution.d.ts +1 -5
  138. package/cjs/graphic/graphic-service/rect-contribution.js +0 -18
  139. package/cjs/graphic/graphic-service/rect-contribution.js.map +1 -1
  140. package/cjs/graphic/graphic-service/symbol-contribution.d.ts +0 -1
  141. package/cjs/graphic/graphic-service/symbol-contribution.js +4 -13
  142. package/cjs/graphic/graphic-service/symbol-contribution.js.map +1 -1
  143. package/cjs/graphic/graphic.js +3 -2
  144. package/cjs/graphic/graphic.js.map +1 -1
  145. package/cjs/graphic/group.d.ts +1 -0
  146. package/cjs/graphic/group.js +7 -3
  147. package/cjs/graphic/group.js.map +1 -1
  148. package/cjs/graphic/rect.d.ts +2 -3
  149. package/cjs/graphic/rect.js +3 -5
  150. package/cjs/graphic/rect.js.map +1 -1
  151. package/cjs/graphic/symbol.js +7 -4
  152. package/cjs/graphic/symbol.js.map +1 -1
  153. package/cjs/graphic/theme.d.ts +4 -4
  154. package/cjs/graphic/theme.js +25 -26
  155. package/cjs/graphic/theme.js.map +1 -1
  156. package/cjs/index.d.ts +2 -0
  157. package/cjs/index.js +1 -0
  158. package/cjs/index.js.map +1 -1
  159. package/cjs/interface/allocator.d.ts +1 -0
  160. package/cjs/interface/allocator.js.map +1 -1
  161. package/cjs/interface/global.d.ts +1 -0
  162. package/cjs/interface/global.js.map +1 -1
  163. package/cjs/interface/graphic/rect.d.ts +2 -0
  164. package/cjs/interface/graphic/rect.js.map +1 -1
  165. package/cjs/interface/graphic.d.ts +1 -4
  166. package/cjs/interface/graphic.js.map +1 -1
  167. package/cjs/interface/render.d.ts +2 -2
  168. package/cjs/interface/render.js.map +1 -1
  169. package/cjs/interface/stage.d.ts +2 -1
  170. package/cjs/interface/stage.js.map +1 -1
  171. package/cjs/modules.d.ts +1 -2
  172. package/cjs/modules.js +8 -8
  173. package/cjs/modules.js.map +1 -1
  174. package/cjs/picker/global-picker-service.d.ts +2 -2
  175. package/cjs/picker/global-picker-service.js +4 -9
  176. package/cjs/picker/global-picker-service.js.map +1 -1
  177. package/cjs/picker/pick-modules.js +2 -4
  178. package/cjs/picker/pick-modules.js.map +1 -1
  179. package/cjs/picker/picker-service.d.ts +2 -2
  180. package/cjs/picker/picker-service.js +6 -6
  181. package/cjs/picker/picker-service.js.map +1 -1
  182. package/cjs/plugins/plugin-modules.js +1 -2
  183. package/cjs/plugins/plugin-modules.js.map +1 -1
  184. package/cjs/render/contributions/render/arc-render.js +2 -1
  185. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  186. package/cjs/render/contributions/render/area-render.d.ts +1 -0
  187. package/cjs/render/contributions/render/area-render.js +44 -6
  188. package/cjs/render/contributions/render/area-render.js.map +1 -1
  189. package/cjs/render/contributions/render/base-render.d.ts +1 -1
  190. package/cjs/render/contributions/render/base-render.js +15 -18
  191. package/cjs/render/contributions/render/base-render.js.map +1 -1
  192. package/cjs/render/contributions/render/circle-render.js +2 -1
  193. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  194. package/cjs/render/contributions/render/contributions/arc-contribution-render.d.ts +3 -7
  195. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +7 -30
  196. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  197. package/cjs/render/contributions/render/contributions/area-contribution-render.d.ts +3 -4
  198. package/cjs/render/contributions/render/contributions/area-contribution-render.js +7 -21
  199. package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  200. package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +2 -0
  201. package/cjs/render/contributions/render/contributions/base-contribution-render.js +9 -9
  202. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  203. package/cjs/render/contributions/render/contributions/circle-contribution-render.d.ts +3 -7
  204. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +7 -30
  205. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  206. package/cjs/render/contributions/render/contributions/constants.d.ts +1 -0
  207. package/cjs/render/contributions/render/contributions/constants.js +2 -2
  208. package/cjs/render/contributions/render/contributions/constants.js.map +1 -1
  209. package/cjs/render/contributions/render/contributions/group-contribution-render.d.ts +1 -0
  210. package/cjs/render/contributions/render/contributions/group-contribution-render.js +6 -12
  211. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  212. package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +1 -0
  213. package/cjs/render/contributions/render/contributions/image-contribution-render.js +6 -12
  214. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  215. package/cjs/render/contributions/render/contributions/path-contribution-render.d.ts +2 -9
  216. package/cjs/render/contributions/render/contributions/path-contribution-render.js +4 -25
  217. package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  218. package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +2 -9
  219. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +4 -25
  220. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  221. package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +5 -7
  222. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +17 -37
  223. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  224. package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +3 -7
  225. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +6 -27
  226. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  227. package/cjs/render/contributions/render/contributions/text-contribution-render.d.ts +8 -1
  228. package/cjs/render/contributions/render/contributions/text-contribution-render.js +25 -1
  229. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  230. package/cjs/render/contributions/render/draw-contribution.d.ts +7 -6
  231. package/cjs/render/contributions/render/draw-contribution.js +31 -22
  232. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  233. package/cjs/render/contributions/render/draw-interceptor.d.ts +9 -1
  234. package/cjs/render/contributions/render/draw-interceptor.js +41 -27
  235. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  236. package/cjs/render/contributions/render/group-render.js +3 -2
  237. package/cjs/render/contributions/render/group-render.js.map +1 -1
  238. package/cjs/render/contributions/render/image-render.js +2 -1
  239. package/cjs/render/contributions/render/image-render.js.map +1 -1
  240. package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +2 -6
  241. package/cjs/render/contributions/render/incremental-draw-contribution.js +8 -11
  242. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  243. package/cjs/render/contributions/render/line-render.d.ts +1 -0
  244. package/cjs/render/contributions/render/line-render.js +21 -6
  245. package/cjs/render/contributions/render/line-render.js.map +1 -1
  246. package/cjs/render/contributions/render/module.js +32 -87
  247. package/cjs/render/contributions/render/module.js.map +1 -1
  248. package/cjs/render/contributions/render/path-render.d.ts +2 -1
  249. package/cjs/render/contributions/render/path-render.js +8 -5
  250. package/cjs/render/contributions/render/path-render.js.map +1 -1
  251. package/cjs/render/contributions/render/polygon-render.js +2 -1
  252. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  253. package/cjs/render/contributions/render/rect-render.d.ts +2 -1
  254. package/cjs/render/contributions/render/rect-render.js +11 -5
  255. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  256. package/cjs/render/contributions/render/render-slector.d.ts +1 -4
  257. package/cjs/render/contributions/render/render-slector.js +0 -20
  258. package/cjs/render/contributions/render/render-slector.js.map +1 -1
  259. package/cjs/render/contributions/render/richtext-render.d.ts +1 -0
  260. package/cjs/render/contributions/render/richtext-render.js +12 -7
  261. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  262. package/cjs/render/contributions/render/symbol-render.js +2 -1
  263. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  264. package/cjs/render/contributions/render/text-render.js +12 -9
  265. package/cjs/render/contributions/render/text-render.js.map +1 -1
  266. package/cjs/render/contributions/render/utils.js +2 -2
  267. package/cjs/render/contributions/render/utils.js.map +1 -1
  268. package/cjs/render/render-modules.js +1 -1
  269. package/cjs/render/render-modules.js.map +1 -1
  270. package/cjs/render/render-service.js +1 -1
  271. package/cjs/render/render-service.js.map +1 -1
  272. package/dist/index.js +5444 -6358
  273. package/dist/index.min.js +1 -1
  274. package/es/allocator/bounds-allocate.d.ts +13 -0
  275. package/es/allocator/bounds-allocate.js +32 -0
  276. package/es/allocator/bounds-allocate.js.map +1 -0
  277. package/es/allocator/canvas-allocate.d.ts +4 -0
  278. package/es/allocator/canvas-allocate.js +19 -6
  279. package/es/allocator/canvas-allocate.js.map +1 -1
  280. package/es/allocator/graphic-allocate.d.ts +56 -1
  281. package/es/allocator/graphic-allocate.js +155 -1
  282. package/es/allocator/graphic-allocate.js.map +1 -1
  283. package/es/animate/Ticker/default-ticker.js +1 -1
  284. package/es/animate/Ticker/default-ticker.js.map +1 -1
  285. package/es/animate/config.js +1 -2
  286. package/es/animate/custom-animate.js +2 -1
  287. package/es/canvas/contributions/base-canvas.js +4 -2
  288. package/es/canvas/contributions/base-canvas.js.map +1 -1
  289. package/es/common/Reflect-metadata.js +349 -359
  290. package/es/common/Reflect-metadata.js.map +1 -1
  291. package/es/common/bezier-utils.js +2 -1
  292. package/es/common/inversify/annotation/inject.d.ts +1 -0
  293. package/es/common/inversify/annotation/inject.js +6 -0
  294. package/es/common/inversify/annotation/inject.js.map +1 -0
  295. package/es/common/inversify/annotation/inject_base.d.ts +14 -0
  296. package/es/common/inversify/annotation/inject_base.js +29 -0
  297. package/es/common/inversify/annotation/inject_base.js.map +1 -0
  298. package/es/common/inversify/annotation/injectable.d.ts +1 -0
  299. package/es/common/inversify/annotation/injectable.js +10 -0
  300. package/es/common/inversify/annotation/injectable.js.map +1 -0
  301. package/es/common/inversify/annotation/multi_inject.d.ts +1 -0
  302. package/es/common/inversify/annotation/multi_inject.js +6 -0
  303. package/es/common/inversify/annotation/multi_inject.js.map +1 -0
  304. package/es/common/inversify/annotation/named.d.ts +1 -0
  305. package/es/common/inversify/annotation/named.js +10 -0
  306. package/es/common/inversify/annotation/named.js.map +1 -0
  307. package/es/common/inversify/binding.d.ts +18 -0
  308. package/es/common/inversify/binding.js +22 -0
  309. package/es/common/inversify/binding.js.map +1 -0
  310. package/es/common/inversify/container.d.ts +28 -0
  311. package/es/common/inversify/container.js +155 -0
  312. package/es/common/inversify/container.js.map +1 -0
  313. package/es/common/inversify/cotainer-module.d.ts +6 -0
  314. package/es/common/inversify/cotainer-module.js +8 -0
  315. package/es/common/inversify/cotainer-module.js.map +1 -0
  316. package/es/common/inversify/index.d.ts +7 -0
  317. package/es/common/inversify/index.js +14 -0
  318. package/es/common/inversify/index.js.map +1 -0
  319. package/es/common/inversify/interfaces.d.ts +218 -0
  320. package/es/common/inversify/interfaces.js +2 -0
  321. package/es/common/inversify/interfaces.js.map +1 -0
  322. package/es/common/inversify/literal_types.d.ts +5 -0
  323. package/es/common/inversify/literal_types.js +20 -0
  324. package/es/common/inversify/literal_types.js.map +1 -0
  325. package/es/common/inversify/meta-data.d.ts +6 -0
  326. package/es/common/inversify/meta-data.js +11 -0
  327. package/es/common/inversify/meta-data.js.map +1 -0
  328. package/es/common/inversify/metadata_keys.d.ts +12 -0
  329. package/es/common/inversify/metadata_keys.js +28 -0
  330. package/es/common/inversify/metadata_keys.js.map +1 -0
  331. package/es/common/inversify/metadata_reader.d.ts +6 -0
  332. package/es/common/inversify/metadata_reader.js +18 -0
  333. package/es/common/inversify/metadata_reader.js.map +1 -0
  334. package/es/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
  335. package/es/common/inversify/syntax/binding_in_syntax.js +24 -0
  336. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -0
  337. package/es/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
  338. package/es/common/inversify/syntax/binding_to_syntax.js +36 -0
  339. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -0
  340. package/es/common/inversify/syntax/constraint_helpers.d.ts +2 -0
  341. package/es/common/inversify/syntax/constraint_helpers.js +18 -0
  342. package/es/common/inversify/syntax/constraint_helpers.js.map +1 -0
  343. package/es/common/inversify-lite/container/container.js +2 -4
  344. package/es/common/inversify-lite/container/container.js.map +1 -1
  345. package/es/common/inversify-lite/index.d.ts +1 -8
  346. package/es/common/inversify-lite/index.js +1 -15
  347. package/es/common/inversify-lite/index.js.map +1 -1
  348. package/es/common/inversify-lite/interfaces/interfaces.d.ts +0 -2
  349. package/es/common/inversify-lite/interfaces/interfaces.js.map +1 -1
  350. package/es/common/inversify-lite/planning/queryable_string.d.ts +0 -2
  351. package/es/common/inversify-lite/planning/queryable_string.js +0 -10
  352. package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
  353. package/es/common/inversify-lite/resolution/resolver.js.map +1 -1
  354. package/es/common/shape/rect.js +2 -1
  355. package/es/common/shape/rect.js.map +1 -1
  356. package/es/common/sort.js +1 -2
  357. package/es/common/split-path.js +2 -1
  358. package/es/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -2
  359. package/es/core/contributions/layerHandler/canvas2d-contribution.js +5 -9
  360. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  361. package/es/core/contributions/layerHandler/empty-contribution.d.ts +2 -2
  362. package/es/core/contributions/layerHandler/empty-contribution.js +5 -9
  363. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  364. package/es/core/contributions/layerHandler/offscreen2d-contribution.d.ts +2 -2
  365. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +5 -9
  366. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  367. package/es/core/contributions/textMeasure/modules.js +1 -1
  368. package/es/core/contributions/textMeasure/modules.js.map +1 -1
  369. package/es/core/core-modules.js +4 -6
  370. package/es/core/core-modules.js.map +1 -1
  371. package/es/core/global.d.ts +4 -0
  372. package/es/core/global.js +8 -4
  373. package/es/core/global.js.map +1 -1
  374. package/es/core/graphic-utils.d.ts +7 -4
  375. package/es/core/graphic-utils.js +20 -15
  376. package/es/core/graphic-utils.js.map +1 -1
  377. package/es/core/layer-service.d.ts +5 -2
  378. package/es/core/layer-service.js +14 -13
  379. package/es/core/layer-service.js.map +1 -1
  380. package/es/core/stage.d.ts +7 -4
  381. package/es/core/stage.js +42 -36
  382. package/es/core/stage.js.map +1 -1
  383. package/es/core/window.d.ts +2 -2
  384. package/es/core/window.js +8 -12
  385. package/es/core/window.js.map +1 -1
  386. package/es/event/event-manager.js +3 -2
  387. package/es/event/event-manager.js.map +1 -1
  388. package/es/graphic/config.d.ts +1 -2
  389. package/es/graphic/config.js +6 -6
  390. package/es/graphic/config.js.map +1 -1
  391. package/es/graphic/graphic-service/arc-contribution.d.ts +1 -5
  392. package/es/graphic/graphic-service/arc-contribution.js +0 -15
  393. package/es/graphic/graphic-service/arc-contribution.js.map +1 -1
  394. package/es/graphic/graphic-service/area-contribution.d.ts +1 -1
  395. package/es/graphic/graphic-service/area-contribution.js +2 -1
  396. package/es/graphic/graphic-service/area-contribution.js.map +1 -1
  397. package/es/graphic/graphic-service/circle-contribution.d.ts +1 -5
  398. package/es/graphic/graphic-service/circle-contribution.js +0 -15
  399. package/es/graphic/graphic-service/circle-contribution.js.map +1 -1
  400. package/es/graphic/graphic-service/common-contribution.js +2 -14
  401. package/es/graphic/graphic-service/common-contribution.js.map +1 -1
  402. package/es/graphic/graphic-service/graphic-module.js +1 -23
  403. package/es/graphic/graphic-service/graphic-module.js.map +1 -1
  404. package/es/graphic/graphic-service/graphic-service.d.ts +2 -7
  405. package/es/graphic/graphic-service/graphic-service.js +25 -32
  406. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  407. package/es/graphic/graphic-service/path-contribution.d.ts +1 -5
  408. package/es/graphic/graphic-service/path-contribution.js +0 -15
  409. package/es/graphic/graphic-service/path-contribution.js.map +1 -1
  410. package/es/graphic/graphic-service/rect-contribution.d.ts +1 -5
  411. package/es/graphic/graphic-service/rect-contribution.js +0 -15
  412. package/es/graphic/graphic-service/rect-contribution.js.map +1 -1
  413. package/es/graphic/graphic-service/symbol-contribution.d.ts +0 -1
  414. package/es/graphic/graphic-service/symbol-contribution.js +2 -16
  415. package/es/graphic/graphic-service/symbol-contribution.js.map +1 -1
  416. package/es/graphic/graphic.js +3 -2
  417. package/es/graphic/graphic.js.map +1 -1
  418. package/es/graphic/group.d.ts +1 -0
  419. package/es/graphic/group.js +8 -1
  420. package/es/graphic/group.js.map +1 -1
  421. package/es/graphic/rect.d.ts +2 -3
  422. package/es/graphic/rect.js +3 -7
  423. package/es/graphic/rect.js.map +1 -1
  424. package/es/graphic/symbol.js +6 -4
  425. package/es/graphic/symbol.js.map +1 -1
  426. package/es/graphic/theme.d.ts +4 -4
  427. package/es/graphic/theme.js +26 -27
  428. package/es/graphic/theme.js.map +1 -1
  429. package/es/index.d.ts +2 -0
  430. package/es/index.js +4 -0
  431. package/es/index.js.map +1 -1
  432. package/es/interface/allocator.d.ts +1 -0
  433. package/es/interface/allocator.js.map +1 -1
  434. package/es/interface/global.d.ts +1 -0
  435. package/es/interface/global.js.map +1 -1
  436. package/es/interface/graphic/rect.d.ts +2 -0
  437. package/es/interface/graphic/rect.js.map +1 -1
  438. package/es/interface/graphic.d.ts +1 -4
  439. package/es/interface/graphic.js.map +1 -1
  440. package/es/interface/render.d.ts +2 -2
  441. package/es/interface/render.js.map +1 -1
  442. package/es/interface/stage.d.ts +2 -1
  443. package/es/interface/stage.js.map +1 -1
  444. package/es/modules.d.ts +1 -2
  445. package/es/modules.js +0 -4
  446. package/es/modules.js.map +1 -1
  447. package/es/picker/global-picker-service.d.ts +2 -2
  448. package/es/picker/global-picker-service.js +5 -9
  449. package/es/picker/global-picker-service.js.map +1 -1
  450. package/es/picker/pick-modules.js +1 -4
  451. package/es/picker/pick-modules.js.map +1 -1
  452. package/es/picker/picker-service.d.ts +2 -2
  453. package/es/picker/picker-service.js +5 -5
  454. package/es/picker/picker-service.js.map +1 -1
  455. package/es/plugins/plugin-modules.js +1 -2
  456. package/es/plugins/plugin-modules.js.map +1 -1
  457. package/es/render/contributions/render/arc-render.js +3 -0
  458. package/es/render/contributions/render/arc-render.js.map +1 -1
  459. package/es/render/contributions/render/area-render.d.ts +1 -0
  460. package/es/render/contributions/render/area-render.js +45 -5
  461. package/es/render/contributions/render/area-render.js.map +1 -1
  462. package/es/render/contributions/render/base-render.d.ts +1 -1
  463. package/es/render/contributions/render/base-render.js +15 -22
  464. package/es/render/contributions/render/base-render.js.map +1 -1
  465. package/es/render/contributions/render/circle-render.js +3 -0
  466. package/es/render/contributions/render/circle-render.js.map +1 -1
  467. package/es/render/contributions/render/contributions/arc-contribution-render.d.ts +3 -7
  468. package/es/render/contributions/render/contributions/arc-contribution-render.js +6 -32
  469. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  470. package/es/render/contributions/render/contributions/area-contribution-render.d.ts +3 -4
  471. package/es/render/contributions/render/contributions/area-contribution-render.js +5 -23
  472. package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  473. package/es/render/contributions/render/contributions/base-contribution-render.d.ts +2 -0
  474. package/es/render/contributions/render/contributions/base-contribution-render.js +6 -10
  475. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  476. package/es/render/contributions/render/contributions/circle-contribution-render.d.ts +3 -7
  477. package/es/render/contributions/render/contributions/circle-contribution-render.js +6 -32
  478. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  479. package/es/render/contributions/render/contributions/constants.d.ts +1 -0
  480. package/es/render/contributions/render/contributions/constants.js +2 -0
  481. package/es/render/contributions/render/contributions/constants.js.map +1 -1
  482. package/es/render/contributions/render/contributions/group-contribution-render.d.ts +1 -0
  483. package/es/render/contributions/render/contributions/group-contribution-render.js +3 -13
  484. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  485. package/es/render/contributions/render/contributions/image-contribution-render.d.ts +1 -0
  486. package/es/render/contributions/render/contributions/image-contribution-render.js +4 -14
  487. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  488. package/es/render/contributions/render/contributions/path-contribution-render.d.ts +2 -9
  489. package/es/render/contributions/render/contributions/path-contribution-render.js +3 -29
  490. package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  491. package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +2 -9
  492. package/es/render/contributions/render/contributions/polygon-contribution-render.js +3 -29
  493. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  494. package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +5 -7
  495. package/es/render/contributions/render/contributions/rect-contribution-render.js +19 -46
  496. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  497. package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +3 -7
  498. package/es/render/contributions/render/contributions/symbol-contribution-render.js +6 -24
  499. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  500. package/es/render/contributions/render/contributions/text-contribution-render.d.ts +8 -1
  501. package/es/render/contributions/render/contributions/text-contribution-render.js +24 -1
  502. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  503. package/es/render/contributions/render/draw-contribution.d.ts +7 -6
  504. package/es/render/contributions/render/draw-contribution.js +35 -24
  505. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  506. package/es/render/contributions/render/draw-interceptor.d.ts +9 -1
  507. package/es/render/contributions/render/draw-interceptor.js +38 -35
  508. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  509. package/es/render/contributions/render/group-render.js +4 -1
  510. package/es/render/contributions/render/group-render.js.map +1 -1
  511. package/es/render/contributions/render/image-render.js +3 -1
  512. package/es/render/contributions/render/image-render.js.map +1 -1
  513. package/es/render/contributions/render/incremental-draw-contribution.d.ts +2 -6
  514. package/es/render/contributions/render/incremental-draw-contribution.js +5 -11
  515. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  516. package/es/render/contributions/render/line-render.d.ts +1 -0
  517. package/es/render/contributions/render/line-render.js +21 -6
  518. package/es/render/contributions/render/line-render.js.map +1 -1
  519. package/es/render/contributions/render/module.js +29 -83
  520. package/es/render/contributions/render/module.js.map +1 -1
  521. package/es/render/contributions/render/path-render.d.ts +2 -1
  522. package/es/render/contributions/render/path-render.js +8 -4
  523. package/es/render/contributions/render/path-render.js.map +1 -1
  524. package/es/render/contributions/render/polygon-render.js +3 -0
  525. package/es/render/contributions/render/polygon-render.js.map +1 -1
  526. package/es/render/contributions/render/rect-render.d.ts +2 -1
  527. package/es/render/contributions/render/rect-render.js +11 -3
  528. package/es/render/contributions/render/rect-render.js.map +1 -1
  529. package/es/render/contributions/render/render-slector.d.ts +1 -4
  530. package/es/render/contributions/render/render-slector.js +0 -15
  531. package/es/render/contributions/render/render-slector.js.map +1 -1
  532. package/es/render/contributions/render/richtext-render.d.ts +1 -0
  533. package/es/render/contributions/render/richtext-render.js +12 -6
  534. package/es/render/contributions/render/richtext-render.js.map +1 -1
  535. package/es/render/contributions/render/symbol-render.js +3 -0
  536. package/es/render/contributions/render/symbol-render.js.map +1 -1
  537. package/es/render/contributions/render/text-render.js +13 -9
  538. package/es/render/contributions/render/text-render.js.map +1 -1
  539. package/es/render/contributions/render/utils.js +2 -2
  540. package/es/render/contributions/render/utils.js.map +1 -1
  541. package/es/render/render-modules.js +1 -1
  542. package/es/render/render-modules.js.map +1 -1
  543. package/es/render/render-service.js +1 -1
  544. package/es/render/render-service.js.map +1 -1
  545. package/package.json +5 -3
  546. package/cjs/common/inversify-lite/annotation/post_construct.d.ts +0 -4
  547. package/cjs/common/inversify-lite/annotation/post_construct.js.map +0 -1
  548. package/es/common/inversify-lite/annotation/post_construct.d.ts +0 -4
  549. package/es/common/inversify-lite/annotation/post_construct.js +0 -10
  550. package/es/common/inversify-lite/annotation/post_construct.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/global.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAWvE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,UAAU,GAAY,SAAS,CAAC;AAE/B,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAGD,IAAI,gBAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,YAAY;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;IAC3C,CAAC;IAED,IAAI,YAAY,CAAC,OAAgB;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9C,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;IAClD,CAAC;IAED,IAAI,mBAAmB,CAAC,OAAgB;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACrD,CAAC;IAED,IAAI,qBAAqB;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC;IACpD,CAAC;IAED,IAAI,qBAAqB,CAAC,OAAgB;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,qBAAqB,GAAG,OAAO,CAAC;IACvD,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;IAClD,CAAC;IAED,IAAI,mBAAmB,CAAC,OAAgB;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACrD,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW,CAAC,OAAgB;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7C,CAAC;IAQD,YAIqB,aAAsD;QAAtD,kBAAa,GAAb,aAAa,CAAyC;QAEzE,IAAI,CAAC,KAAK,GAAG;YACX,QAAQ,EAAE,IAAI,QAAQ,CAA0C,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC9F,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;IAES,gBAAgB,CAAC,MAAY;QACrC,MAAM,UAAU,GAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC3D,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClD,IAAK,IAAY,IAAK,IAAY,CAAC,IAAI,EAAE;gBACvC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAChC;IACH,CAAC;IAKD,qBAAqB;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;IACtD,CAAC;IAKD,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC;IACrD,CAAC;IASD,MAAM,CAAC,GAAY,EAAE,MAA+B;QAElD,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YAC3D,OAAO;SACR;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACzD,CAAC;IAES,SAAS,CAAC,GAAY,EAAE,MAA+B;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB,CAAC,YAA8B;QACrD,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,MAA2B;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,qBAAqB,CAAC,MAA2B;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa,CAAC,MAAwC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAOD,gBAAgB,CACd,IAAY,EACZ,QAA4C,EAC5C,OAA2C;QAE3C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAMD,mBAAmB,CACjB,IAAY,EACZ,QAA4C,EAC5C,OAAwC;QAExC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IACD,aAAa,CAAC,KAAU;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,CAAC;IACzD,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;IACxD,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;IAC/C,CAAC;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,gBAAgB,CAAC,KAAU,EAAE,UAAgB;QAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;YAC1C,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9G,CAAC;IAED,mBAAmB,CAAC,GAA+B;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,GAAgB;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,MAA2B;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,aAAa,CAAC,GAAQ,EAAE,aAAsB,KAAK;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,cAAc,CAAC,GAAQ,EAAE,aAAsB,KAAK;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IACD,iBAAiB,CAAC,GAAQ,EAAE,aAAsB,KAAK;QACrD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;CACF,CAAA;AArXY,aAAa;IADzB,UAAU,EAAE;IA6FR,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,KAAK,CAAC,eAAe,CAAC,CAAA;;GA7Fd,aAAa,CAqXzB;SArXY,aAAa","file":"global.js","sourcesContent":["import { inject, injectable, named } from '../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport type {\n CreateDOMParamsType,\n EnvType,\n IContributionProvider,\n ICreateCanvasParams,\n IEnvContribution,\n IEnvParamsMap,\n IGlobal,\n ISyncHook\n} from '../interface';\nimport { SyncHook } from '../tapable';\nimport { EnvContribution } from '../constants';\nimport type { IAABBBoundsLike } from '@visactor/vutils';\n\nconst defaultEnv: EnvType = 'browser';\n@injectable()\nexport class DefaultGlobal implements IGlobal {\n private _env: EnvType;\n get env(): EnvType {\n return this._env;\n }\n private envContribution: IEnvContribution;\n\n get devicePixelRatio(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getDevicePixelRatio();\n }\n\n get supportEvent(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportEvent;\n }\n\n set supportEvent(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportEvent = support;\n }\n\n get supportsTouchEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsTouchEvents;\n }\n\n set supportsTouchEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsTouchEvents = support;\n }\n\n get supportsPointerEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsPointerEvents;\n }\n\n set supportsPointerEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsPointerEvents = support;\n }\n\n get supportsMouseEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsMouseEvents;\n }\n\n set supportsMouseEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsMouseEvents = support;\n }\n\n get applyStyles(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.applyStyles;\n }\n\n set applyStyles(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.applyStyles = support;\n }\n\n envParams?: any;\n declare measureTextMethod: 'native' | 'simple' | 'quick';\n declare hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n constructor(\n // todo: 不需要创建,动态获取就行?\n @inject(ContributionProvider)\n @named(EnvContribution)\n protected readonly contributions: IContributionProvider<IEnvContribution>\n ) {\n this.hooks = {\n onSetEnv: new SyncHook<[EnvType | undefined, EnvType, IGlobal]>(['lastEnv', 'env', 'global'])\n };\n this.measureTextMethod = 'native';\n }\n\n protected bindContribution(params?: any): void | Promise<any> {\n const promiseArr: any[] = [];\n this.contributions.getContributions().forEach(contribution => {\n const data = contribution.configure(this, params);\n if ((data as any) && (data as any).then) {\n promiseArr.push(data);\n }\n });\n if (promiseArr.length) {\n return Promise.all(promiseArr);\n }\n }\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getDynamicCanvasCount();\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getStaticCanvasCount();\n }\n\n /**\n * 设置当前环境\n * @param env\n * @param params 环境参数\n * 默认重复设置不生效,但如果params.force为true那么每次设置env都会重复执行初始化逻辑\n * @returns\n */\n setEnv(env: EnvType, params?: IEnvParamsMap[EnvType]): void | Promise<any> {\n // 如果环境设置过了,但是没有设置force为true,就直接跳过\n if (!(params && params.force === true) && this._env === env) {\n return;\n }\n this.deactiveCurrentEnv();\n return this.activeEnv(env, params);\n }\n\n protected deactiveCurrentEnv() {\n this.envContribution && this.envContribution.release();\n }\n\n protected activeEnv(env: EnvType, params?: IEnvParamsMap[EnvType]): void | Promise<any> {\n const lastEnv = this._env;\n this._env = env;\n const data = this.bindContribution(params);\n if (data && data.then) {\n return data.then(() => {\n this.envParams = params;\n this.hooks.onSetEnv.call(lastEnv, env, this);\n });\n }\n this.envParams = params;\n this.hooks.onSetEnv.call(lastEnv, env, this);\n }\n\n setActiveEnvContribution(contribution: IEnvContribution) {\n this.envContribution = contribution;\n }\n\n createCanvas(params: ICreateCanvasParams) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.createCanvas(params);\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.createOffscreenCanvas(params);\n }\n\n releaseCanvas(canvas: HTMLCanvasElement | string | any) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.releaseCanvas(canvas);\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.addEventListener(type, listener, options);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.removeEventListener(type, listener, options);\n }\n dispatchEvent(event: any): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.dispatchEvent(event);\n }\n\n getRequestAnimationFrame() {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getRequestAnimationFrame();\n }\n\n getCancelAnimationFrame() {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getCancelAnimationFrame();\n }\n\n getElementById(str: string): HTMLElement | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getElementById) {\n return null;\n }\n return this.envContribution.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getRootElement) {\n return null;\n }\n return this.envContribution.getRootElement();\n }\n\n getDocument(): Document | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getDocument) {\n return null;\n }\n return this.envContribution.getDocument();\n }\n\n mapToCanvasPoint(event: any, domElement?: any) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.mapToCanvasPoint) {\n return null;\n }\n return this.envContribution.mapToCanvasPoint(event, domElement);\n }\n\n loadImage(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadImage(url);\n }\n\n loadSvg(str: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadSvg(str);\n }\n\n loadJson(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadJson(url);\n }\n\n loadArrayBuffer(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadArrayBuffer(url);\n }\n\n loadBlob(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadBlob(url);\n }\n\n isChrome(): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this._env === 'browser' && navigator.userAgent.indexOf('Chrome') > -1;\n }\n\n isSafari(): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this._env === 'browser' && /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);\n }\n\n getNativeAABBBounds(dom: string | HTMLElement | any): IAABBBoundsLike {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getNativeAABBBounds(dom);\n }\n\n removeDom(dom: HTMLElement): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.removeDom(dom);\n }\n\n createDom(params: CreateDOMParamsType): HTMLElement | null {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.createDom(params);\n }\n\n getElementTop(dom: any, baseWindow: boolean = false): number {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementTop(dom, baseWindow);\n }\n getElementLeft(dom: any, baseWindow: boolean = false): number {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementLeft(dom, baseWindow);\n }\n getElementTopLeft(dom: any, baseWindow: boolean = false): { top: number; left: number } {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementTopLeft(dom, baseWindow);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/global.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAWvE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,UAAU,GAAY,SAAS,CAAC;AAE/B,IAAM,aAAa,GAAnB,MAAM,aAAa;IAKxB,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAGD,IAAI,gBAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,YAAY;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;IAC3C,CAAC;IAED,IAAI,YAAY,CAAC,OAAgB;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9C,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;IAClD,CAAC;IAED,IAAI,mBAAmB,CAAC,OAAgB;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACrD,CAAC;IAED,IAAI,qBAAqB;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC;IACpD,CAAC;IAED,IAAI,qBAAqB,CAAC,OAAgB;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,qBAAqB,GAAG,OAAO,CAAC;IACvD,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;IAClD,CAAC;IAED,IAAI,mBAAmB,CAAC,OAAgB;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACrD,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW,CAAC,OAAgB;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7C,CAAC;IAWD,YAIqB,aAAsD;QAAtD,kBAAa,GAAb,aAAa,CAAyC;QAEzE,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG;YACX,QAAQ,EAAE,IAAI,QAAQ,CAA0C,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC9F,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAES,gBAAgB,CAAC,MAAY;QACrC,MAAM,UAAU,GAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC3D,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClD,IAAK,IAAY,IAAK,IAAY,CAAC,IAAI,EAAE;gBACvC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAChC;IACH,CAAC;IAKD,qBAAqB;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;IACtD,CAAC;IAKD,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC;IACrD,CAAC;IASD,MAAM,CAAC,GAAY,EAAE,MAA+B;QAElD,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YAC3D,OAAO;SACR;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACzD,CAAC;IAES,SAAS,CAAC,GAAY,EAAE,MAA+B;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB,CAAC,YAA8B;QACrD,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,MAA2B;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,qBAAqB,CAAC,MAA2B;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa,CAAC,MAAwC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAOD,gBAAgB,CACd,IAAY,EACZ,QAA4C,EAC5C,OAA2C;QAE3C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAMD,mBAAmB,CACjB,IAAY,EACZ,QAA4C,EAC5C,OAAwC;QAExC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IACD,aAAa,CAAC,KAAU;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,CAAC;IACzD,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;IACxD,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;IAC/C,CAAC;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,gBAAgB,CAAC,KAAU,EAAE,UAAgB;QAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;YAC1C,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvG,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,mBAAmB,CAAC,GAA+B;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,GAAgB;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,MAA2B;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,aAAa,CAAC,GAAQ,EAAE,aAAsB,KAAK;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,cAAc,CAAC,GAAQ,EAAE,aAAsB,KAAK;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IACD,iBAAiB,CAAC,GAAQ,EAAE,aAAsB,KAAK;QACrD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;CACF,CAAA;AAtYY,aAAa;IADzB,UAAU,EAAE;IAmGR,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,KAAK,CAAC,eAAe,CAAC,CAAA;;GAnGd,aAAa,CAsYzB;SAtYY,aAAa","file":"global.js","sourcesContent":["import { inject, injectable, named } from '../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport type {\n CreateDOMParamsType,\n EnvType,\n IContributionProvider,\n ICreateCanvasParams,\n IEnvContribution,\n IEnvParamsMap,\n IGlobal,\n ISyncHook\n} from '../interface';\nimport { SyncHook } from '../tapable';\nimport { EnvContribution } from '../constants';\nimport type { IAABBBoundsLike } from '@visactor/vutils';\nimport { container } from '../container';\nimport { Generator } from '../common/generator';\n\nconst defaultEnv: EnvType = 'browser';\n@injectable()\nexport class DefaultGlobal implements IGlobal {\n readonly id: number;\n private _env: EnvType;\n private _isSafari?: boolean;\n private _isChrome?: boolean;\n get env(): EnvType {\n return this._env;\n }\n private envContribution: IEnvContribution;\n\n get devicePixelRatio(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getDevicePixelRatio();\n }\n\n get supportEvent(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportEvent;\n }\n\n set supportEvent(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportEvent = support;\n }\n\n get supportsTouchEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsTouchEvents;\n }\n\n set supportsTouchEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsTouchEvents = support;\n }\n\n get supportsPointerEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsPointerEvents;\n }\n\n set supportsPointerEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsPointerEvents = support;\n }\n\n get supportsMouseEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsMouseEvents;\n }\n\n set supportsMouseEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsMouseEvents = support;\n }\n\n get applyStyles(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.applyStyles;\n }\n\n set applyStyles(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.applyStyles = support;\n }\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n envParams?: any;\n declare measureTextMethod: 'native' | 'simple' | 'quick';\n declare hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n constructor(\n // todo: 不需要创建,动态获取就行?\n @inject(ContributionProvider)\n @named(EnvContribution)\n protected readonly contributions: IContributionProvider<IEnvContribution>\n ) {\n this.id = Generator.GenAutoIncrementId();\n this.hooks = {\n onSetEnv: new SyncHook<[EnvType | undefined, EnvType, IGlobal]>(['lastEnv', 'env', 'global'])\n };\n this.measureTextMethod = 'native';\n this.optimizeVisible = false;\n }\n\n protected bindContribution(params?: any): void | Promise<any> {\n const promiseArr: any[] = [];\n this.contributions.getContributions().forEach(contribution => {\n const data = contribution.configure(this, params);\n if ((data as any) && (data as any).then) {\n promiseArr.push(data);\n }\n });\n if (promiseArr.length) {\n return Promise.all(promiseArr);\n }\n }\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getDynamicCanvasCount();\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getStaticCanvasCount();\n }\n\n /**\n * 设置当前环境\n * @param env\n * @param params 环境参数\n * 默认重复设置不生效,但如果params.force为true那么每次设置env都会重复执行初始化逻辑\n * @returns\n */\n setEnv(env: EnvType, params?: IEnvParamsMap[EnvType]): void | Promise<any> {\n // 如果环境设置过了,但是没有设置force为true,就直接跳过\n if (!(params && params.force === true) && this._env === env) {\n return;\n }\n this.deactiveCurrentEnv();\n return this.activeEnv(env, params);\n }\n\n protected deactiveCurrentEnv() {\n this.envContribution && this.envContribution.release();\n }\n\n protected activeEnv(env: EnvType, params?: IEnvParamsMap[EnvType]): void | Promise<any> {\n const lastEnv = this._env;\n this._env = env;\n const data = this.bindContribution(params);\n if (data && data.then) {\n return data.then(() => {\n this.envParams = params;\n this.hooks.onSetEnv.call(lastEnv, env, this);\n });\n }\n this.envParams = params;\n this.hooks.onSetEnv.call(lastEnv, env, this);\n }\n\n setActiveEnvContribution(contribution: IEnvContribution) {\n this.envContribution = contribution;\n }\n\n createCanvas(params: ICreateCanvasParams) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.createCanvas(params);\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.createOffscreenCanvas(params);\n }\n\n releaseCanvas(canvas: HTMLCanvasElement | string | any) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.releaseCanvas(canvas);\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.addEventListener(type, listener, options);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.removeEventListener(type, listener, options);\n }\n dispatchEvent(event: any): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.dispatchEvent(event);\n }\n\n getRequestAnimationFrame() {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getRequestAnimationFrame();\n }\n\n getCancelAnimationFrame() {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getCancelAnimationFrame();\n }\n\n getElementById(str: string): HTMLElement | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getElementById) {\n return null;\n }\n return this.envContribution.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getRootElement) {\n return null;\n }\n return this.envContribution.getRootElement();\n }\n\n getDocument(): Document | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getDocument) {\n return null;\n }\n return this.envContribution.getDocument();\n }\n\n mapToCanvasPoint(event: any, domElement?: any) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.mapToCanvasPoint) {\n return null;\n }\n return this.envContribution.mapToCanvasPoint(event, domElement);\n }\n\n loadImage(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadImage(url);\n }\n\n loadSvg(str: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadSvg(str);\n }\n\n loadJson(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadJson(url);\n }\n\n loadArrayBuffer(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadArrayBuffer(url);\n }\n\n loadBlob(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadBlob(url);\n }\n\n isChrome(): boolean {\n if (this._isChrome != null) {\n return this._isChrome;\n }\n if (!this._env) {\n this.setEnv('browser');\n }\n this._isChrome = this._env === 'browser' && navigator.userAgent.indexOf('Chrome') > -1;\n return this._isChrome;\n }\n\n isSafari(): boolean {\n if (this._isSafari != null) {\n return this._isSafari;\n }\n if (!this._env) {\n this.setEnv('browser');\n }\n this._isSafari =\n this._env === 'browser' && /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);\n return this._isSafari;\n }\n\n getNativeAABBBounds(dom: string | HTMLElement | any): IAABBBoundsLike {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getNativeAABBBounds(dom);\n }\n\n removeDom(dom: HTMLElement): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.removeDom(dom);\n }\n\n createDom(params: CreateDOMParamsType): HTMLElement | null {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.createDom(params);\n }\n\n getElementTop(dom: any, baseWindow: boolean = false): number {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementTop(dom, baseWindow);\n }\n getElementLeft(dom: any, baseWindow: boolean = false): number {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementLeft(dom, baseWindow);\n }\n getElementTopLeft(dom: any, baseWindow: boolean = false): { top: number; left: number } {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementTopLeft(dom, baseWindow);\n }\n}\n"]}
@@ -5,14 +5,17 @@ import { TextMeasure } from '@visactor/vutils';
5
5
  import type { IGraphicUtil, ITransformUtil, TransformType } from '../interface/core';
6
6
  export declare class DefaultGraphicUtil implements IGraphicUtil {
7
7
  protected readonly contributions: IContributionProvider<ITextMeasure>;
8
- readonly global: IGlobal;
9
- canvas?: ICanvas;
10
- context?: IContext2d | null;
8
+ get canvas(): ICanvas;
9
+ get context(): IContext2d | null;
10
+ _canvas?: ICanvas;
11
+ _context?: IContext2d | null;
11
12
  _textMeasure: ITextMeasure;
12
13
  configured: boolean;
13
- constructor(contributions: IContributionProvider<ITextMeasure>, global: IGlobal);
14
+ global: IGlobal;
15
+ constructor(contributions: IContributionProvider<ITextMeasure>);
14
16
  get textMeasure(): ITextMeasure;
15
17
  configure(global: IGlobal, env: EnvType): void;
18
+ tryInitCanvas(): void;
16
19
  bindTextMeasure(tm: ITextMeasure): void;
17
20
  measureText(text: string, tc: TextOptionsType, method?: 'native' | 'simple' | 'quick'): {
18
21
  width: number;
@@ -16,17 +16,23 @@ import { TextMeasureContribution } from "./contributions/textMeasure/textMeasure
16
16
 
17
17
  import { ContributionProvider } from "../common/contribution-provider";
18
18
 
19
- import { wrapCanvas } from "../canvas/util";
20
-
21
19
  import { DefaultTextStyle } from "../graphic/config";
22
20
 
23
21
  import { Matrix, TextMeasure } from "@visactor/vutils";
24
22
 
25
- import { VGlobal } from "../constants";
23
+ import { canvasAllocate } from "../allocator/canvas-allocate";
24
+
25
+ import { application } from "../application";
26
26
 
27
27
  let DefaultGraphicUtil = class {
28
- constructor(contributions, global) {
29
- this.contributions = contributions, this.global = global, this.configured = !1,
28
+ get canvas() {
29
+ return this.tryInitCanvas(), this._canvas;
30
+ }
31
+ get context() {
32
+ return this.tryInitCanvas(), this._context;
33
+ }
34
+ constructor(contributions) {
35
+ this.contributions = contributions, this.configured = !1, this.global = application.global,
30
36
  this.global.hooks.onSetEnv.tap("graphic-util", ((lastEnv, env, global) => {
31
37
  this.configured = !1, this.configure(global, env);
32
38
  }));
@@ -35,16 +41,15 @@ let DefaultGraphicUtil = class {
35
41
  return this._textMeasure || this.configure(this.global, this.global.env), this._textMeasure;
36
42
  }
37
43
  configure(global, env) {
38
- if (this.configured) return;
39
- const canvas = wrapCanvas({
40
- nativeCanvas: global.createCanvas({
41
- width: 100,
42
- height: 100
43
- })
44
- });
45
- this.canvas = canvas, this.context = canvas.getContext("2d"), this.contributions.getContributions().forEach((contribution => {
44
+ this.configured || (this.contributions.getContributions().forEach((contribution => {
46
45
  contribution.configure(this, env);
47
- })), this.configured = !0;
46
+ })), this.configured = !0);
47
+ }
48
+ tryInitCanvas() {
49
+ if (!this._canvas) {
50
+ const canvas = canvasAllocate.shareCanvas();
51
+ this._canvas = canvas, this._context = canvas.getContext("2d");
52
+ }
48
53
  }
49
54
  bindTextMeasure(tm) {
50
55
  this._textMeasure = tm;
@@ -73,7 +78,7 @@ let DefaultGraphicUtil = class {
73
78
  }
74
79
  };
75
80
 
76
- DefaultGraphicUtil = __decorate([ injectable(), __param(0, inject(ContributionProvider)), __param(0, named(TextMeasureContribution)), __param(1, inject(VGlobal)), __metadata("design:paramtypes", [ Object, Object ]) ], DefaultGraphicUtil);
81
+ DefaultGraphicUtil = __decorate([ injectable(), __param(0, inject(ContributionProvider)), __param(0, named(TextMeasureContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultGraphicUtil);
77
82
 
78
83
  export { DefaultGraphicUtil };
79
84
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/graphic-utils.ts"],"names":[],"mappings":"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","file":"graphic-utils.js","sourcesContent":["import { injectable, inject, named } from '../common/inversify-lite';\nimport type { ICanvas, IContext2d, EnvType, IGlobal, ITextAttribute, IContributionProvider } from '../interface';\nimport type { ITextMeasure, TextOptionsType } from '../interface/text';\nimport { TextMeasureContribution } from './contributions/textMeasure/textMeasure-contribution';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { wrapCanvas } from '../canvas/util';\nimport { DefaultTextStyle } from '../graphic/config';\nimport type { IMatrix, IPointLike, ITextMeasureOption } from '@visactor/vutils';\nimport { Matrix, TextMeasure } from '@visactor/vutils';\nimport type { IGraphicUtil, ITransformUtil, TransformType } from '../interface/core';\nimport { VGlobal } from '../constants';\n\n@injectable()\nexport class DefaultGraphicUtil implements IGraphicUtil {\n canvas?: ICanvas;\n context?: IContext2d | null;\n _textMeasure: ITextMeasure;\n configured: boolean;\n\n constructor(\n @inject(ContributionProvider)\n @named(TextMeasureContribution)\n protected readonly contributions: IContributionProvider<ITextMeasure>,\n @inject(VGlobal) public readonly global: IGlobal\n ) {\n this.configured = false;\n this.global.hooks.onSetEnv.tap('graphic-util', (lastEnv, env, global) => {\n this.configured = false;\n this.configure(global, env);\n });\n }\n\n get textMeasure(): ITextMeasure {\n if (!this._textMeasure) {\n this.configure(this.global, this.global.env);\n }\n return this._textMeasure;\n }\n\n configure(global: IGlobal, env: EnvType) {\n if (this.configured) {\n return;\n }\n const canvas = wrapCanvas({\n nativeCanvas: global.createCanvas({ width: 100, height: 100 })\n });\n this.canvas = canvas;\n this.context = canvas.getContext('2d');\n this.contributions.getContributions().forEach(contribution => {\n contribution.configure(this, env);\n });\n this.configured = true;\n }\n\n bindTextMeasure(tm: ITextMeasure) {\n this._textMeasure = tm;\n }\n\n measureText(\n text: string,\n tc: TextOptionsType,\n method: 'native' | 'simple' | 'quick' = 'native'\n ): { width: number; height: number } {\n this.configure(this.global, this.global.env);\n const m = this.global.measureTextMethod;\n this.global.measureTextMethod = method;\n const data = {\n width: this._textMeasure.measureTextWidth(text, tc),\n height: tc.fontSize ?? DefaultTextStyle.fontSize\n };\n this.global.measureTextMethod = m;\n return data;\n }\n\n createTextMeasureInstance(\n textSpec?: Partial<ITextAttribute>,\n option?: Partial<ITextMeasureOption>,\n getCanvasForMeasure?: () => any\n ) {\n this.configure(this.global, this.global.env);\n return new TextMeasure<ITextAttribute>(\n {\n defaultFontParams: {\n fontFamily: DefaultTextStyle.fontFamily,\n fontSize: DefaultTextStyle.fontSize\n },\n getCanvasForMeasure: getCanvasForMeasure || (() => this.canvas),\n getTextBounds: undefined,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n }\n}\n\nenum TransformMode {\n transform = 0,\n matrix = 1\n}\n\nconst _matrix = new Matrix();\n\n@injectable()\nexport class DefaultTransformUtil implements ITransformUtil {\n private matrix: IMatrix;\n private originTransform: TransformType;\n\n private outSourceMatrix: IMatrix;\n private outTargetMatrix: IMatrix;\n\n private mode: TransformMode;\n constructor() {\n this.matrix = new Matrix();\n }\n init(origin: TransformType): this {\n this.mode = TransformMode.transform;\n this.originTransform = origin;\n this.matrix.reset();\n return this;\n }\n fromMatrix(source: IMatrix, target: IMatrix): this {\n this.mode = TransformMode.matrix;\n this.outSourceMatrix = source;\n this.outTargetMatrix = target;\n return this;\n }\n\n // translate: (x: number, y: number) => Transform;\n // translateTo: (x: number, y: number) => Transform;\n private scaleMatrix(sx: number, sy: number, center?: IPointLike): this {\n // if (this.outSourceMatrix !== this.outTargetMatrix) {\n // // copy\n // const m = this.outSourceMatrix;\n // this.outTargetMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n // }\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n if (center) {\n const { x, y } = center;\n this.outTargetMatrix.translate(x, y);\n this.outTargetMatrix.scale(sx, sy);\n this.outTargetMatrix.translate(-x, -y);\n } else {\n this.outTargetMatrix.scale(sx, sy);\n }\n\n // _matrix.reset();\n // if (center) {\n // const { x, y } = center;\n // _matrix.translate(x, y);\n // _matrix.scale(sx, sy);\n // _matrix.translate(-x, -y);\n // } else {\n // _matrix.scale(sx, sy);\n // }\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n\n private rotateMatrix(angle: number, center?: IPointLike): this {\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n if (center) {\n const { x, y } = center;\n this.outTargetMatrix.translate(x, y);\n this.outTargetMatrix.rotate(angle);\n this.outTargetMatrix.translate(-x, -y);\n } else {\n this.outTargetMatrix.rotate(angle);\n }\n\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n scale(sx: number, sy: number, center?: IPointLike): this {\n if (this.mode === TransformMode.matrix) {\n return this.scaleMatrix(sx, sy, center);\n }\n return this;\n }\n rotate(angle: number, center?: IPointLike): this {\n if (this.mode === TransformMode.matrix) {\n return this.rotateMatrix(angle, center);\n }\n return this;\n }\n private translateMatrix(dx: number, dy: number): this {\n // if (this.outSourceMatrix !== this.outTargetMatrix) {\n // // copy\n // const m = this.outSourceMatrix;\n // this.outTargetMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n // }\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n this.outTargetMatrix.translate(dx, dy);\n\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n translate(dx: number, dy: number): this {\n if (this.mode === TransformMode.matrix) {\n return this.translateMatrix(dx, dy);\n }\n return this;\n }\n // scaleTo: (sx: number, sy: number, center: IPointLike) => Transform;\n // rotate: (rx: number, ry: number, center: IPointLike) => Transform;\n // rotateTo: (rx: number, ry: number, center: IPointLike) => Transform;\n // 语法糖\n // interactive: (dx: number, dy: number, dsx: number, dsy: number, drx: number, dry: number) => Transform;\n // // 扩展padding像素,用于外描边,内描边\n // extend: (origin: TransformType, padding: number) => Transform;\n // 将所有的transform生成为一次的transform\n simplify(target: TransformType): this {\n if (this.mode === TransformMode.matrix) {\n return this.simplifyMatrix(target);\n }\n return this;\n }\n private simplifyMatrix(target: TransformType): this {\n // let { a, b, c, d, e, f } = this.outTargetMatrix;\n // if (a === 0 || d === 0) return this;\n // const { dx=0, dy=0 } = target;\n // // 不处理dx和dy\n // e -= dx;\n // f -= dy;\n // const tanTheta = b / a;\n // const angle = Math.atan(tanTheta);\n // const cosTheta = cos(angle);\n // const sinTheta = sin(angle);\n // const sx = cosTheta !== 0 ? (a / cosTheta) : (b / sinTheta);\n // const sy = sinTheta !== 0 ? (-c / sinTheta) : (d / cosTheta);\n // const x = e;\n // const y = f;\n // target.x = x;\n // target.y = y;\n // target.dx = dx;\n return this;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/graphic-utils.ts"],"names":[],"mappings":"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","file":"graphic-utils.js","sourcesContent":["import { injectable, inject, named } from '../common/inversify-lite';\nimport type { ICanvas, IContext2d, EnvType, IGlobal, ITextAttribute, IContributionProvider } from '../interface';\nimport type { ITextMeasure, TextOptionsType } from '../interface/text';\nimport { TextMeasureContribution } from './contributions/textMeasure/textMeasure-contribution';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { DefaultTextStyle } from '../graphic/config';\nimport type { IMatrix, IPointLike, ITextMeasureOption } from '@visactor/vutils';\nimport { Matrix, TextMeasure } from '@visactor/vutils';\nimport type { IGraphicUtil, ITransformUtil, TransformType } from '../interface/core';\nimport { canvasAllocate } from '../allocator/canvas-allocate';\nimport { application } from '../application';\n\n@injectable()\nexport class DefaultGraphicUtil implements IGraphicUtil {\n get canvas(): ICanvas {\n this.tryInitCanvas();\n return this._canvas;\n }\n get context(): IContext2d | null {\n this.tryInitCanvas();\n return this._context;\n }\n _canvas?: ICanvas;\n _context?: IContext2d | null;\n _textMeasure: ITextMeasure;\n configured: boolean;\n global: IGlobal;\n\n constructor(\n @inject(ContributionProvider)\n @named(TextMeasureContribution)\n protected readonly contributions: IContributionProvider<ITextMeasure>\n ) {\n this.configured = false;\n this.global = application.global;\n this.global.hooks.onSetEnv.tap('graphic-util', (lastEnv, env, global) => {\n this.configured = false;\n this.configure(global, env);\n });\n }\n\n get textMeasure(): ITextMeasure {\n if (!this._textMeasure) {\n this.configure(this.global, this.global.env);\n }\n return this._textMeasure;\n }\n\n configure(global: IGlobal, env: EnvType) {\n if (this.configured) {\n return;\n }\n this.contributions.getContributions().forEach(contribution => {\n contribution.configure(this, env);\n });\n this.configured = true;\n }\n\n tryInitCanvas() {\n if (!this._canvas) {\n const canvas = canvasAllocate.shareCanvas();\n this._canvas = canvas;\n this._context = canvas.getContext('2d');\n }\n }\n\n bindTextMeasure(tm: ITextMeasure) {\n this._textMeasure = tm;\n }\n\n measureText(\n text: string,\n tc: TextOptionsType,\n method: 'native' | 'simple' | 'quick' = 'native'\n ): { width: number; height: number } {\n this.configure(this.global, this.global.env);\n const m = this.global.measureTextMethod;\n this.global.measureTextMethod = method;\n const data = {\n width: this._textMeasure.measureTextWidth(text, tc),\n height: tc.fontSize ?? DefaultTextStyle.fontSize\n };\n this.global.measureTextMethod = m;\n return data;\n }\n\n createTextMeasureInstance(\n textSpec?: Partial<ITextAttribute>,\n option?: Partial<ITextMeasureOption>,\n getCanvasForMeasure?: () => any\n ) {\n this.configure(this.global, this.global.env);\n return new TextMeasure<ITextAttribute>(\n {\n defaultFontParams: {\n fontFamily: DefaultTextStyle.fontFamily,\n fontSize: DefaultTextStyle.fontSize\n },\n getCanvasForMeasure: getCanvasForMeasure || (() => this.canvas),\n getTextBounds: undefined,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n }\n}\n\nenum TransformMode {\n transform = 0,\n matrix = 1\n}\n\nconst _matrix = new Matrix();\n\n@injectable()\nexport class DefaultTransformUtil implements ITransformUtil {\n private matrix: IMatrix;\n private originTransform: TransformType;\n\n private outSourceMatrix: IMatrix;\n private outTargetMatrix: IMatrix;\n\n private mode: TransformMode;\n constructor() {\n this.matrix = new Matrix();\n }\n init(origin: TransformType): this {\n this.mode = TransformMode.transform;\n this.originTransform = origin;\n this.matrix.reset();\n return this;\n }\n fromMatrix(source: IMatrix, target: IMatrix): this {\n this.mode = TransformMode.matrix;\n this.outSourceMatrix = source;\n this.outTargetMatrix = target;\n return this;\n }\n\n // translate: (x: number, y: number) => Transform;\n // translateTo: (x: number, y: number) => Transform;\n private scaleMatrix(sx: number, sy: number, center?: IPointLike): this {\n // if (this.outSourceMatrix !== this.outTargetMatrix) {\n // // copy\n // const m = this.outSourceMatrix;\n // this.outTargetMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n // }\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n if (center) {\n const { x, y } = center;\n this.outTargetMatrix.translate(x, y);\n this.outTargetMatrix.scale(sx, sy);\n this.outTargetMatrix.translate(-x, -y);\n } else {\n this.outTargetMatrix.scale(sx, sy);\n }\n\n // _matrix.reset();\n // if (center) {\n // const { x, y } = center;\n // _matrix.translate(x, y);\n // _matrix.scale(sx, sy);\n // _matrix.translate(-x, -y);\n // } else {\n // _matrix.scale(sx, sy);\n // }\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n\n private rotateMatrix(angle: number, center?: IPointLike): this {\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n if (center) {\n const { x, y } = center;\n this.outTargetMatrix.translate(x, y);\n this.outTargetMatrix.rotate(angle);\n this.outTargetMatrix.translate(-x, -y);\n } else {\n this.outTargetMatrix.rotate(angle);\n }\n\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n scale(sx: number, sy: number, center?: IPointLike): this {\n if (this.mode === TransformMode.matrix) {\n return this.scaleMatrix(sx, sy, center);\n }\n return this;\n }\n rotate(angle: number, center?: IPointLike): this {\n if (this.mode === TransformMode.matrix) {\n return this.rotateMatrix(angle, center);\n }\n return this;\n }\n private translateMatrix(dx: number, dy: number): this {\n // if (this.outSourceMatrix !== this.outTargetMatrix) {\n // // copy\n // const m = this.outSourceMatrix;\n // this.outTargetMatrix.setValue(m.a, m.b, m.c, m.d, m.e, m.f);\n // }\n const sMatrix = this.outSourceMatrix;\n _matrix.setValue(sMatrix.a, sMatrix.b, sMatrix.c, sMatrix.d, sMatrix.e, sMatrix.f);\n this.outTargetMatrix.reset();\n this.outTargetMatrix.translate(dx, dy);\n\n this.outTargetMatrix.multiply(_matrix.a, _matrix.b, _matrix.c, _matrix.d, _matrix.e, _matrix.f);\n return this;\n }\n translate(dx: number, dy: number): this {\n if (this.mode === TransformMode.matrix) {\n return this.translateMatrix(dx, dy);\n }\n return this;\n }\n // scaleTo: (sx: number, sy: number, center: IPointLike) => Transform;\n // rotate: (rx: number, ry: number, center: IPointLike) => Transform;\n // rotateTo: (rx: number, ry: number, center: IPointLike) => Transform;\n // 语法糖\n // interactive: (dx: number, dy: number, dsx: number, dsy: number, drx: number, dry: number) => Transform;\n // // 扩展padding像素,用于外描边,内描边\n // extend: (origin: TransformType, padding: number) => Transform;\n // 将所有的transform生成为一次的transform\n simplify(target: TransformType): this {\n if (this.mode === TransformMode.matrix) {\n return this.simplifyMatrix(target);\n }\n return this;\n }\n private simplifyMatrix(target: TransformType): this {\n // let { a, b, c, d, e, f } = this.outTargetMatrix;\n // if (a === 0 || d === 0) return this;\n // const { dx=0, dy=0 } = target;\n // // 不处理dx和dy\n // e -= dx;\n // f -= dy;\n // const tanTheta = b / a;\n // const angle = Math.atan(tanTheta);\n // const cosTheta = cos(angle);\n // const sinTheta = sin(angle);\n // const sx = cosTheta !== 0 ? (a / cosTheta) : (b / sinTheta);\n // const sy = sinTheta !== 0 ? (-c / sinTheta) : (d / cosTheta);\n // const x = e;\n // const y = f;\n // target.x = x;\n // target.y = y;\n // target.dx = dx;\n return this;\n }\n}\n"]}
@@ -1,12 +1,15 @@
1
1
  import type { ILayer, IStage, IGlobal, ILayerParams, LayerMode, ILayerHandlerContribution } from '../interface';
2
2
  import type { ILayerService } from '../interface/core';
3
3
  export declare class DefaultLayerService implements ILayerService {
4
- readonly global: IGlobal;
5
4
  layerMap: Map<IStage, ILayer[]>;
6
5
  staticLayerCountInEnv: number;
7
6
  dynamicLayerCountInEnv: number;
8
7
  inited: boolean;
9
- constructor(global: IGlobal);
8
+ global: IGlobal;
9
+ static idprefix: string;
10
+ static prefix_count: number;
11
+ static GenerateLayerId(): string;
12
+ constructor();
10
13
  tryInit(): void;
11
14
  getStageLayer(stage: IStage): ILayer[];
12
15
  getRecommendedLayerType(layerMode?: LayerMode): LayerMode;
@@ -1,28 +1,27 @@
1
- var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
1
+ var DefaultLayerService_1, __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
2
  var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
3
  if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
4
  return c > 3 && r && Object.defineProperty(target, key, r), r;
5
5
  }, __metadata = this && this.__metadata || function(k, v) {
6
6
  if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- }, __param = this && this.__param || function(paramIndex, decorator) {
8
- return function(target, key) {
9
- decorator(target, key, paramIndex);
10
- };
11
7
  };
12
8
 
13
- import { inject, injectable } from "../common/inversify-lite";
9
+ import { injectable } from "../common/inversify-lite";
14
10
 
15
11
  import { Layer } from "./layer";
16
12
 
17
- import { VGlobal } from "../constants";
18
-
19
13
  import { container } from "../container";
20
14
 
21
15
  import { DynamicLayerHandlerContribution, StaticLayerHandlerContribution, VirtualLayerHandlerContribution } from "./constants";
22
16
 
23
- let DefaultLayerService = class {
24
- constructor(global) {
25
- this.global = global, this.layerMap = new Map;
17
+ import { application } from "../application";
18
+
19
+ let DefaultLayerService = DefaultLayerService_1 = class {
20
+ static GenerateLayerId() {
21
+ return `${DefaultLayerService_1.idprefix}_${DefaultLayerService_1.prefix_count++}`;
22
+ }
23
+ constructor() {
24
+ this.layerMap = new Map, this.global = application.global;
26
25
  }
27
26
  tryInit() {
28
27
  this.inited || (this.staticLayerCountInEnv = this.global.getStaticCanvasCount(),
@@ -42,6 +41,7 @@ let DefaultLayerService = class {
42
41
  createLayer(stage, options = {
43
42
  main: !1
44
43
  }) {
44
+ var _a;
45
45
  this.tryInit();
46
46
  let layerMode = this.getRecommendedLayerType(options.layerMode);
47
47
  layerMode = options.canvasId ? "static" : layerMode;
@@ -49,7 +49,7 @@ let DefaultLayerService = class {
49
49
  main: !1
50
50
  }, options), {
51
51
  layerMode: layerMode,
52
- canvasId: options.canvasId,
52
+ canvasId: null !== (_a = options.canvasId) && void 0 !== _a ? _a : DefaultLayerService_1.GenerateLayerId(),
53
53
  layerHandler: layerHandler
54
54
  })), stageLayers = this.layerMap.get(stage) || [];
55
55
  return stageLayers.push(layer), this.layerMap.set(stage, stageLayers), this.staticLayerCountInEnv--,
@@ -76,7 +76,8 @@ let DefaultLayerService = class {
76
76
  }
77
77
  };
78
78
 
79
- DefaultLayerService = __decorate([ injectable(), __param(0, inject(VGlobal)), __metadata("design:paramtypes", [ Object ]) ], DefaultLayerService);
79
+ DefaultLayerService.idprefix = "visactor_layer", DefaultLayerService.prefix_count = 0,
80
+ DefaultLayerService = DefaultLayerService_1 = __decorate([ injectable(), __metadata("design:paramtypes", []) ], DefaultLayerService);
80
81
 
81
82
  export { DefaultLayerService };
82
83
  //# sourceMappingURL=layer-service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/layer-service.ts"],"names":[],"mappings":"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","file":"layer-service.js","sourcesContent":["import { inject, injectable } from '../common/inversify-lite';\nimport type { ILayer, IStage, IGlobal, ILayerParams, LayerMode, ILayerHandlerContribution } from '../interface';\nimport { Layer } from './layer';\nimport type { ILayerService } from '../interface/core';\nimport { VGlobal } from '../constants';\nimport { container } from '../container';\nimport {\n DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution,\n VirtualLayerHandlerContribution\n} from './constants';\n\n@injectable()\nexport class DefaultLayerService implements ILayerService {\n declare layerMap: Map<IStage, ILayer[]>;\n declare staticLayerCountInEnv: number;\n declare dynamicLayerCountInEnv: number;\n declare inited: boolean;\n constructor(@inject(VGlobal) public readonly global: IGlobal) {\n this.layerMap = new Map();\n }\n\n tryInit() {\n if (!this.inited) {\n this.staticLayerCountInEnv = this.global.getStaticCanvasCount();\n this.dynamicLayerCountInEnv = this.global.getDynamicCanvasCount();\n this.inited = true;\n }\n }\n\n getStageLayer(stage: IStage) {\n return this.layerMap.get(stage);\n }\n\n getRecommendedLayerType(layerMode?: LayerMode): LayerMode {\n if (layerMode) {\n return layerMode;\n }\n // 默认推荐实体canvas,不行就推荐离屏canvas,最次才是virtual\n if (this.staticLayerCountInEnv !== 0) {\n return 'static';\n } else if (this.dynamicLayerCountInEnv !== 0) {\n return 'dynamic';\n }\n return 'virtual';\n }\n\n getLayerHandler(layerMode: LayerMode) {\n let layerHandler: ILayerHandlerContribution;\n if (layerMode === 'static') {\n layerHandler = container.get<ILayerHandlerContribution>(StaticLayerHandlerContribution);\n } else if (layerMode === 'dynamic') {\n layerHandler = container.get<ILayerHandlerContribution>(DynamicLayerHandlerContribution);\n } else {\n layerHandler = container.get<ILayerHandlerContribution>(VirtualLayerHandlerContribution);\n }\n return layerHandler;\n }\n\n createLayer(stage: IStage, options: Partial<ILayerParams> = { main: false }): ILayer {\n this.tryInit();\n let layerMode = this.getRecommendedLayerType(options.layerMode);\n layerMode = options.canvasId ? 'static' : layerMode;\n const layerHandler = this.getLayerHandler(layerMode);\n const layer = new Layer(stage, this.global, stage.window, {\n main: false,\n ...options,\n layerMode,\n canvasId: options.canvasId,\n layerHandler\n });\n const stageLayers = this.layerMap.get(stage) || [];\n stageLayers.push(layer);\n this.layerMap.set(stage, stageLayers);\n this.staticLayerCountInEnv--;\n return layer;\n }\n\n prepareStageLayer(stage: IStage) {\n let mainHandler: ILayerHandlerContribution;\n stage.forEachChildren((l: ILayer) => {\n const handler = l.getNativeHandler();\n if (handler.type === 'virtual') {\n handler.mainHandler = mainHandler;\n mainHandler.secondaryHandlers.push(handler);\n } else {\n mainHandler = handler;\n mainHandler.secondaryHandlers = [];\n }\n });\n }\n\n releaseLayer(stage: IStage, layer: ILayer): void {\n layer.release();\n const stageLayers = this.layerMap.get(stage) || [];\n this.layerMap.set(\n stage,\n stageLayers.filter(l => l !== layer)\n );\n }\n\n layerCount(stage: IStage): number {\n return (this.layerMap.get(stage) || []).length;\n }\n restLayerCount(stage: IStage): number {\n // TODO: 设置精确的值\n if (this.global.env === 'browser') {\n return 10;\n }\n return 0;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/layer-service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAU,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAChC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGtC,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAS9B,MAAM,CAAC,eAAe;QACpB,OAAO,GAAG,qBAAmB,CAAC,QAAQ,IAAI,qBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC;IACjF,CAAC;IAED;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;IACH,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,uBAAuB,CAAC,SAAqB;QAC3C,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;YACpC,OAAO,QAAQ,CAAC;SACjB;aAAM,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,EAAE;YAC5C,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,SAAoB;QAClC,IAAI,YAAuC,CAAC;QAC5C,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,YAAY,GAAG,SAAS,CAAC,GAAG,CAA4B,8BAA8B,CAAC,CAAC;SACzF;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE;YAClC,YAAY,GAAG,SAAS,CAAC,GAAG,CAA4B,+BAA+B,CAAC,CAAC;SAC1F;aAAM;YACL,YAAY,GAAG,SAAS,CAAC,GAAG,CAA4B,+BAA+B,CAAC,CAAC;SAC1F;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,UAAiC,EAAE,IAAI,EAAE,KAAK,EAAE;;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,gCACtD,IAAI,EAAE,KAAK,IACR,OAAO,KACV,SAAS,EACT,QAAQ,EAAE,MAAA,OAAO,CAAC,QAAQ,mCAAI,qBAAmB,CAAC,eAAe,EAAE,EACnE,YAAY,IACZ,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,IAAI,WAAsC,CAAC;QAC3C,KAAK,CAAC,eAAe,CAAC,CAAC,CAAS,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC9B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;gBAClC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7C;iBAAM;gBACL,WAAW,GAAG,OAAO,CAAC;gBACtB,WAAW,CAAC,iBAAiB,GAAG,EAAE,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,KAAa;QACvC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,KAAK,EACL,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CACrC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IACD,cAAc,CAAC,KAAa;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;YACjC,OAAO,EAAE,CAAC;SACX;QACD,OAAO,CAAC,CAAC;IACX,CAAC;;AApGM,4BAAQ,GAAW,gBAAgB,CAAC;AACpC,gCAAY,GAAW,CAAC,CAAC;AAPrB,mBAAmB;IAD/B,UAAU,EAAE;;GACA,mBAAmB,CA2G/B;SA3GY,mBAAmB","file":"layer-service.js","sourcesContent":["import { inject, injectable } from '../common/inversify-lite';\nimport type { ILayer, IStage, IGlobal, ILayerParams, LayerMode, ILayerHandlerContribution } from '../interface';\nimport { Layer } from './layer';\nimport type { ILayerService } from '../interface/core';\nimport { container } from '../container';\nimport {\n DynamicLayerHandlerContribution,\n StaticLayerHandlerContribution,\n VirtualLayerHandlerContribution\n} from './constants';\nimport { application } from '../application';\n\n@injectable()\nexport class DefaultLayerService implements ILayerService {\n declare layerMap: Map<IStage, ILayer[]>;\n declare staticLayerCountInEnv: number;\n declare dynamicLayerCountInEnv: number;\n declare inited: boolean;\n declare global: IGlobal;\n static idprefix: string = 'visactor_layer';\n static prefix_count: number = 0;\n\n static GenerateLayerId() {\n return `${DefaultLayerService.idprefix}_${DefaultLayerService.prefix_count++}`;\n }\n\n constructor() {\n this.layerMap = new Map();\n this.global = application.global;\n }\n\n tryInit() {\n if (!this.inited) {\n this.staticLayerCountInEnv = this.global.getStaticCanvasCount();\n this.dynamicLayerCountInEnv = this.global.getDynamicCanvasCount();\n this.inited = true;\n }\n }\n\n getStageLayer(stage: IStage) {\n return this.layerMap.get(stage);\n }\n\n getRecommendedLayerType(layerMode?: LayerMode): LayerMode {\n if (layerMode) {\n return layerMode;\n }\n // 默认推荐实体canvas,不行就推荐离屏canvas,最次才是virtual\n if (this.staticLayerCountInEnv !== 0) {\n return 'static';\n } else if (this.dynamicLayerCountInEnv !== 0) {\n return 'dynamic';\n }\n return 'virtual';\n }\n\n getLayerHandler(layerMode: LayerMode) {\n let layerHandler: ILayerHandlerContribution;\n if (layerMode === 'static') {\n layerHandler = container.get<ILayerHandlerContribution>(StaticLayerHandlerContribution);\n } else if (layerMode === 'dynamic') {\n layerHandler = container.get<ILayerHandlerContribution>(DynamicLayerHandlerContribution);\n } else {\n layerHandler = container.get<ILayerHandlerContribution>(VirtualLayerHandlerContribution);\n }\n return layerHandler;\n }\n\n createLayer(stage: IStage, options: Partial<ILayerParams> = { main: false }): ILayer {\n this.tryInit();\n let layerMode = this.getRecommendedLayerType(options.layerMode);\n layerMode = options.canvasId ? 'static' : layerMode;\n const layerHandler = this.getLayerHandler(layerMode);\n const layer = new Layer(stage, this.global, stage.window, {\n main: false,\n ...options,\n layerMode,\n canvasId: options.canvasId ?? DefaultLayerService.GenerateLayerId(),\n layerHandler\n });\n const stageLayers = this.layerMap.get(stage) || [];\n stageLayers.push(layer);\n this.layerMap.set(stage, stageLayers);\n this.staticLayerCountInEnv--;\n return layer;\n }\n\n prepareStageLayer(stage: IStage) {\n let mainHandler: ILayerHandlerContribution;\n stage.forEachChildren((l: ILayer) => {\n const handler = l.getNativeHandler();\n if (handler.type === 'virtual') {\n handler.mainHandler = mainHandler;\n mainHandler.secondaryHandlers.push(handler);\n } else {\n mainHandler = handler;\n mainHandler.secondaryHandlers = [];\n }\n });\n }\n\n releaseLayer(stage: IStage, layer: ILayer): void {\n layer.release();\n const stageLayers = this.layerMap.get(stage) || [];\n this.layerMap.set(\n stage,\n stageLayers.filter(l => l !== layer)\n );\n }\n\n layerCount(stage: IStage): number {\n return (this.layerMap.get(stage) || []).length;\n }\n restLayerCount(stage: IStage): number {\n // TODO: 设置精确的值\n if (this.global.env === 'browser') {\n return 10;\n }\n return 0;\n }\n}\n"]}
@@ -51,10 +51,11 @@ export declare class Stage extends Group implements IStage {
51
51
  readonly window: IWindow;
52
52
  private readonly global;
53
53
  readonly renderService: IRenderService;
54
- readonly pickerService: IPickerService;
54
+ pickerService?: IPickerService;
55
55
  readonly pluginService: IPluginService;
56
56
  readonly layerService: ILayerService;
57
- private readonly eventSystem?;
57
+ private _eventSystem?;
58
+ private get eventSystem();
58
59
  protected _beforeRender?: (stage: IStage) => void;
59
60
  protected _afterRender?: (stage: IStage) => void;
60
61
  protected _skipRender?: number;
@@ -64,10 +65,12 @@ export declare class Stage extends Group implements IStage {
64
65
  protected supportInteractiveLayer: boolean;
65
66
  protected timeline: ITimeline;
66
67
  params: Partial<IStageParams>;
67
- constructor(params: Partial<IStageParams>);
68
+ constructor(params?: Partial<IStageParams>);
69
+ protected tryInitEventSystem(): void;
68
70
  preventRender(prevent: boolean): void;
69
- optmize(params?: IOptimizeType): void;
71
+ optmize(params: IOptimizeType): void;
70
72
  protected optmizeRender(skipRenderWithOutRange?: boolean): void;
73
+ protected _onVisibleChange: (visible: boolean) => void;
71
74
  getTimeline(): ITimeline;
72
75
  get3dOptions(options: IOption3D): {
73
76
  center: {
package/es/core/stage.js CHANGED
@@ -34,12 +34,14 @@ import { DirectionalLight } from "./light";
34
34
 
35
35
  import { OrthoCamera } from "./camera";
36
36
 
37
- import { VGlobal } from "../constants";
38
-
39
37
  import { LayerService } from "./constants";
40
38
 
41
39
  import { DefaultTimeline } from "../animate";
42
40
 
41
+ import { application } from "../application";
42
+
43
+ import { isBrowserEnv } from "../env-check";
44
+
43
45
  const DefaultConfig = {
44
46
  WIDTH: 500,
45
47
  HEIGHT: 500,
@@ -107,9 +109,15 @@ export class Stage extends Group {
107
109
  get defaultLayer() {
108
110
  return this.at(0);
109
111
  }
110
- constructor(params) {
112
+ get eventSystem() {
113
+ return this._eventSystem;
114
+ }
115
+ constructor(params = {}) {
111
116
  var _a;
112
- super({}), this.beforeRender = stage => {
117
+ super({}), this._onVisibleChange = visible => {
118
+ this._skipRender < 0 || (visible ? (this.dirtyBounds && this.dirtyBounds.setValue(0, 0, this._viewBox.width(), this._viewBox.height()),
119
+ this._skipRender > 1 && this.renderNextFrame(), this._skipRender = 0) : this._skipRender = 1);
120
+ }, this.beforeRender = stage => {
113
121
  this._beforeRender && this._beforeRender(stage);
114
122
  }, this.afterRender = stage => {
115
123
  this.renderCount++, this._afterRender && this._afterRender(stage), this._afterNextRenderCbs && this._afterNextRenderCbs.forEach((cb => cb(stage))),
@@ -117,10 +125,10 @@ export class Stage extends Group {
117
125
  }, this.params = params, this.theme = new Theme, this.hooks = {
118
126
  beforeRender: new SyncHook([ "stage" ]),
119
127
  afterRender: new SyncHook([ "stage" ])
120
- }, this.global = container.get(VGlobal), this.window = container.get(VWindow), this.renderService = container.get(RenderService),
121
- this.pickerService = container.get(PickerService), this.pluginService = container.get(PluginService),
122
- this.layerService = container.get(LayerService), this.pluginService.active(this, params),
123
- this.window.create({
128
+ }, this.global = application.global, !this.global.env && isBrowserEnv() && this.global.setEnv("browser"),
129
+ this.window = container.get(VWindow), this.renderService = container.get(RenderService),
130
+ this.pluginService = container.get(PluginService), this.layerService = container.get(LayerService),
131
+ this.pluginService.active(this, params), this.window.create({
124
132
  width: params.width,
125
133
  height: params.height,
126
134
  container: params.container,
@@ -129,15 +137,24 @@ export class Stage extends Group {
129
137
  title: params.title || "",
130
138
  canvas: params.canvas
131
139
  }), this._viewBox = new AABBBounds, params.viewBox ? this._viewBox.setValue(params.viewBox.x1, params.viewBox.y1, params.viewBox.x2, params.viewBox.y2) : this._viewBox.setValue(0, 0, this.width, this.height),
132
- this.state = "normal", this.renderCount = 0, this._subView = !(this._viewBox.width() === this.width && this._viewBox.height() === this.height),
140
+ this.state = "normal", this.renderCount = 0, this.tryInitEventSystem(), this._subView = !(this._viewBox.width() === this.width && this._viewBox.height() === this.height),
133
141
  this._background = null !== (_a = params.background) && void 0 !== _a ? _a : DefaultConfig.BACKGROUND,
134
- this.appendChild(this.layerService.createLayer(this, params.canvas && isString(params.canvas) ? {
135
- main: !0,
136
- canvasId: params.canvas
137
- } : {
142
+ this.appendChild(this.layerService.createLayer(this, {
138
143
  main: !0
139
144
  })), this.nextFrameRenderLayerSet = new Set, this.willNextFrameRender = !1, this.stage = this,
140
- this.renderStyle = params.renderStyle, this.global.supportEvent && (this.eventSystem = new EventSystem(Object.assign({
145
+ this.renderStyle = params.renderStyle, params.autoRender && this.enableAutoRender(),
146
+ !1 === params.disableDirtyBounds && this.enableDirtyBounds(), params.enableHtmlAttribute && this.enableHtmlAttribute(params.enableHtmlAttribute),
147
+ params.enableLayout && this.enableLayout(), this.hooks.beforeRender.tap("constructor", this.beforeRender),
148
+ this.hooks.afterRender.tap("constructor", this.afterRender), this._beforeRender = params.beforeRender,
149
+ this._afterRender = params.afterRender, this.ticker = params.ticker || defaultTicker,
150
+ this.supportInteractiveLayer = !1 !== params.interactiveLayer, this.timeline = new DefaultTimeline,
151
+ this.ticker.addTimeline(this.timeline), this.timeline.pause(), params.optimize || (params.optimize = {}),
152
+ this.optmize(params.optimize), params.background && isString(this._background) && this._background.includes("/") && this.setAttributes({
153
+ background: this._background
154
+ });
155
+ }
156
+ tryInitEventSystem() {
157
+ this.global.supportEvent && !this._eventSystem && (this._eventSystem = new EventSystem(Object.assign({
141
158
  targetElement: this.window,
142
159
  resolution: this.window.dpr || this.global.devicePixelRatio,
143
160
  rootNode: this,
@@ -157,29 +174,17 @@ export class Stage extends Group {
157
174
  return this.viewBox.height();
158
175
  }
159
176
  }
160
- }, params.event))), params.autoRender && this.enableAutoRender(), !1 === params.disableDirtyBounds && this.enableDirtyBounds(),
161
- params.enableHtmlAttribute && this.enableHtmlAttribute(params.enableHtmlAttribute),
162
- params.enableLayout && this.enableLayout(), this.hooks.beforeRender.tap("constructor", this.beforeRender),
163
- this.hooks.afterRender.tap("constructor", this.afterRender), this._beforeRender = params.beforeRender,
164
- this._afterRender = params.afterRender, this.ticker = params.ticker || defaultTicker,
165
- this.supportInteractiveLayer = !1 !== params.interactiveLayer, this.timeline = new DefaultTimeline,
166
- this.ticker.addTimeline(this.timeline), this.timeline.pause(), this.optmize(params.optimize),
167
- params.background && isString(this._background) && this._background.includes("/") && this.setAttributes({
168
- background: this._background
169
- });
177
+ }, this.params.event)));
170
178
  }
171
179
  preventRender(prevent) {
172
- prevent ? this._skipRender = -1 / 0 : this.params && this.params.optimize && !1 !== this.params.optimize.skipRenderWithOutRange ? this._skipRender = this.window.isVisible() ? 0 : 1 : this._skipRender = 0;
180
+ prevent ? this._skipRender = -1 / 0 : !1 !== this.params.optimize.skipRenderWithOutRange ? this._skipRender = this.window.isVisible() ? 0 : 1 : this._skipRender = 0;
173
181
  }
174
182
  optmize(params) {
175
- this.optmizeRender(null == params ? void 0 : params.skipRenderWithOutRange);
183
+ this.optmizeRender(params.skipRenderWithOutRange), this.params.optimize = params;
176
184
  }
177
- optmizeRender(skipRenderWithOutRange = !0) {
185
+ optmizeRender(skipRenderWithOutRange = !1) {
178
186
  skipRenderWithOutRange && (this._skipRender = this._skipRender < 0 ? this._skipRender : this.window.isVisible() ? 0 : 1,
179
- this.window.onVisibleChange((visible => {
180
- this._skipRender < 0 || (visible ? (this.dirtyBounds && this.dirtyBounds.setValue(0, 0, this._viewBox.width(), this._viewBox.height()),
181
- this._skipRender > 1 && this.renderNextFrame(), this._skipRender = 0) : this._skipRender = 1);
182
- })));
187
+ this.window.onVisibleChange(this._onVisibleChange));
183
188
  }
184
189
  getTimeline() {
185
190
  return this.timeline;
@@ -263,8 +268,8 @@ export class Stage extends Group {
263
268
  if (this.dirtyBounds) return;
264
269
  this.dirtyBounds = new Bounds;
265
270
  let plugin = this.pluginService.findPluginsByName("DirtyBoundsPlugin")[0];
266
- plugin || (plugin = new DirtyBoundsPlugin, this.pluginService.register(plugin)),
267
- plugin.activate(this.pluginService);
271
+ plugin ? plugin.activate(this.pluginService) : (plugin = new DirtyBoundsPlugin,
272
+ this.pluginService.register(plugin));
268
273
  }
269
274
  disableDirtyBounds() {
270
275
  this.dirtyBounds && (this.dirtyBounds = null, this.pluginService.findPluginsByName("DirtyBoundsPlugin").forEach((plugin => {
@@ -354,13 +359,13 @@ export class Stage extends Group {
354
359
  layer.render({
355
360
  renderService: this.renderService,
356
361
  background: layer === this.defaultLayer ? this.background : void 0,
357
- updateBounds: !!this.dirtyBounds
362
+ updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty())
358
363
  }, Object.assign({
359
364
  renderStyle: this.renderStyle
360
365
  }, params)));
361
366
  })), this.interactiveLayer && !layerList.includes(this.interactiveLayer) && this.interactiveLayer.render({
362
367
  renderService: this.renderService,
363
- updateBounds: !!this.dirtyBounds
368
+ updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty())
364
369
  }, Object.assign({
365
370
  renderStyle: this.renderStyle
366
371
  }, params));
@@ -402,6 +407,7 @@ export class Stage extends Group {
402
407
  throw new Error("暂不支持");
403
408
  }
404
409
  pick(x, y) {
410
+ this.pickerService || (this.pickerService = container.get(PickerService));
405
411
  const result = this.pickerService.pick(this.children, new Point(x, y), {
406
412
  bounds: this.AABBBounds
407
413
  });
@@ -433,7 +439,7 @@ export class Stage extends Group {
433
439
  renderService: this.renderService,
434
440
  background: layer === this.defaultLayer ? this.background : void 0,
435
441
  clear: 0 === i,
436
- updateBounds: !!this.dirtyBounds
442
+ updateBounds: !(!this.dirtyBounds || this.dirtyBounds.empty())
437
443
  }));
438
444
  }));
439
445
  }