@visactor/vrender-core 0.16.19-alpha.2 → 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 +3 -1
  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
@@ -0,0 +1,13 @@
1
+ import type { IAABBBounds } from '@visactor/vutils';
2
+ import type { Releaseable, IAllocate } from '../interface';
3
+ export declare const BoundsAllocate: unique symbol;
4
+ export declare class DefaultBoundsAllocate implements IAllocate<IAABBBounds>, Releaseable {
5
+ protected pools: IAABBBounds[];
6
+ constructor();
7
+ allocate(x1: number, y1: number, x2: number, y2: number): IAABBBounds;
8
+ allocateByObj(b: IAABBBounds): IAABBBounds;
9
+ free(b: IAABBBounds): void;
10
+ get length(): number;
11
+ release(...params: any): void;
12
+ }
13
+ export declare const boundsAllocate: DefaultBoundsAllocate;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.boundsAllocate = exports.DefaultBoundsAllocate = exports.BoundsAllocate = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils");
8
+
9
+ exports.BoundsAllocate = Symbol.for("BoundsAllocate");
10
+
11
+ class DefaultBoundsAllocate {
12
+ constructor() {
13
+ this.pools = [];
14
+ for (let i = 0; i < 10; i++) this.pools.push(new vutils_1.AABBBounds);
15
+ }
16
+ allocate(x1, y1, x2, y2) {
17
+ if (!this.pools.length) return (new vutils_1.AABBBounds).setValue(x1, y1, x2, y2);
18
+ const b = this.pools.pop();
19
+ return b.x1 = x1, b.y1 = y1, b.x2 = x2, b.y2 = y2, b;
20
+ }
21
+ allocateByObj(b) {
22
+ if (!this.pools.length) return new vutils_1.AABBBounds(b);
23
+ const _b = this.pools.pop();
24
+ return _b.x1 = b.x1, _b.y1 = b.y1, _b.x2 = b.x2, _b.y2 = b.y2, _b;
25
+ }
26
+ free(b) {
27
+ this.pools.push(b);
28
+ }
29
+ get length() {
30
+ return this.pools.length;
31
+ }
32
+ release(...params) {
33
+ this.pools = [];
34
+ }
35
+ }
36
+
37
+ exports.DefaultBoundsAllocate = DefaultBoundsAllocate, exports.boundsAllocate = new DefaultBoundsAllocate;
38
+ //# sourceMappingURL=bounds-allocate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/allocator/bounds-allocate.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAGjC,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAE3D,MAAa,qBAAqB;IAEhC;QADU,UAAK,GAAkB,EAAE,CAAC;QAGlC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,mBAAU,EAAE,CAAC,CAAC;SACnC;IACH,CAAC;IACD,QAAQ,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QACrD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,OAAO,IAAI,mBAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SAClD;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACV,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACV,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACV,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACV,OAAO,CAAC,CAAC;IACX,CAAC;IACD,aAAa,CAAC,CAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,OAAO,IAAI,mBAAU,CAAC,CAAQ,CAAC,CAAC;SACjC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAS,CAAC;QACnC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACb,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACb,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACb,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,CAAc;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AAvCD,sDAuCC;AAEY,QAAA,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC","file":"bounds-allocate.js","sourcesContent":["import type { IAABBBounds, IAABBBoundsLike } from '@visactor/vutils';\nimport { AABBBounds } from '@visactor/vutils';\nimport type { Releaseable, IAllocate } from '../interface';\n\nexport const BoundsAllocate = Symbol.for('BoundsAllocate');\n\nexport class DefaultBoundsAllocate implements IAllocate<IAABBBounds>, Releaseable {\n protected pools: IAABBBounds[] = [];\n constructor() {\n // 默认添加10个\n for (let i = 0; i < 10; i++) {\n this.pools.push(new AABBBounds());\n }\n }\n allocate(x1: number, y1: number, x2: number, y2: number): IAABBBounds {\n if (!this.pools.length) {\n return new AABBBounds().setValue(x1, y1, x2, y2);\n }\n const b = this.pools.pop();\n b.x1 = x1;\n b.y1 = y1;\n b.x2 = x2;\n b.y2 = y2;\n return b;\n }\n allocateByObj(b: IAABBBounds): IAABBBounds {\n if (!this.pools.length) {\n return new AABBBounds(b as any);\n }\n const _b = this.pools.pop() as any;\n _b.x1 = b.x1;\n _b.y1 = b.y1;\n _b.x2 = b.x2;\n _b.y2 = b.y2;\n return _b;\n }\n free(b: IAABBBounds) {\n this.pools.push(b);\n }\n get length(): number {\n return this.pools.length;\n }\n release(...params: any): void {\n this.pools = [];\n }\n}\n\nexport const boundsAllocate = new DefaultBoundsAllocate();\n"]}
@@ -1,6 +1,10 @@
1
1
  import type { ICanvas, Releaseable, IAllocate } from '../interface';
2
2
  export declare class DefaultCanvasAllocate implements IAllocate<ICanvas>, Releaseable {
3
3
  protected pools: ICanvas[];
4
+ protected _commonCanvas: any;
5
+ protected allocatedCanvas: ICanvas[];
6
+ shareCanvas(): ICanvas;
7
+ getCommonCanvas(): ICanvas;
4
8
  allocate(data: {
5
9
  width: number;
6
10
  height: number;
@@ -8,12 +8,25 @@ const application_1 = require("../application"), util_1 = require("../canvas/uti
8
8
 
9
9
  class DefaultCanvasAllocate {
10
10
  constructor() {
11
- this.pools = [];
11
+ this.pools = [], this.allocatedCanvas = [];
12
+ }
13
+ shareCanvas() {
14
+ return this.allocatedCanvas.length ? this.allocatedCanvas[0] : this.getCommonCanvas();
15
+ }
16
+ getCommonCanvas() {
17
+ return this._commonCanvas || (this._commonCanvas = this.allocate({
18
+ width: 100,
19
+ height: 100,
20
+ dpr: 2
21
+ })), this._commonCanvas;
12
22
  }
13
23
  allocate(data) {
14
- if (!this.pools.length) return (0, util_1.wrapCanvas)(Object.assign({
15
- nativeCanvas: application_1.application.global.createCanvas(data)
16
- }, data));
24
+ if (!this.pools.length) {
25
+ const c = (0, util_1.wrapCanvas)(Object.assign({
26
+ nativeCanvas: application_1.application.global.createCanvas(data)
27
+ }, data));
28
+ return this.allocatedCanvas.push(c), c;
29
+ }
17
30
  const m = this.pools.pop();
18
31
  return m.resize(data.width, data.height), m.dpr = data.dpr, m;
19
32
  }
@@ -23,10 +36,10 @@ class DefaultCanvasAllocate {
23
36
  width: canvas.width / canvas.dpr,
24
37
  height: canvas.height / canvas.dpr,
25
38
  dpr: canvas.dpr
26
- };
27
- return (0, util_1.wrapCanvas)(Object.assign({
39
+ }, c = (0, util_1.wrapCanvas)(Object.assign({
28
40
  nativeCanvas: application_1.application.global.createCanvas(data)
29
41
  }, data));
42
+ return this.allocatedCanvas.push(c), c;
30
43
  }
31
44
  const m = this.pools.pop();
32
45
  return m.width = canvas.width, m.height = canvas.height, m;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/allocator/canvas-allocate.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAE7C,yCAA4C;AAE5C,MAAa,qBAAqB;IAAlC;QACY,UAAK,GAAc,EAAE,CAAC;IAuClC,CAAC;IAtCC,QAAQ,CAAC,IAAoD;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,OAAO,IAAA,iBAAU,kBACf,YAAY,EAAE,yBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAChD,IAAI,EACP,CAAC;SACJ;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,aAAa,CAAC,MAAe;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG;gBAChC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG;gBAClC,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC;YACF,OAAO,IAAA,iBAAU,kBACf,YAAY,EAAE,yBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAChD,IAAI,EACP,CAAC;SACJ;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AAxCD,sDAwCC;AAEY,QAAA,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC","file":"canvas-allocate.js","sourcesContent":["import { application } from '../application';\nimport type { ICanvas, Releaseable, IAllocate } from '../interface';\nimport { wrapCanvas } from '../canvas/util';\n\nexport class DefaultCanvasAllocate implements IAllocate<ICanvas>, Releaseable {\n protected pools: ICanvas[] = [];\n allocate(data: { width: number; height: number; dpr: number }): ICanvas {\n if (!this.pools.length) {\n return wrapCanvas({\n nativeCanvas: application.global.createCanvas(data),\n ...data\n });\n }\n const m = this.pools.pop();\n m.resize(data.width, data.height);\n m.dpr = data.dpr;\n return m;\n }\n allocateByObj(canvas: ICanvas): ICanvas {\n if (!this.pools.length) {\n const data = {\n width: canvas.width / canvas.dpr,\n height: canvas.height / canvas.dpr,\n dpr: canvas.dpr\n };\n return wrapCanvas({\n nativeCanvas: application.global.createCanvas(data),\n ...data\n });\n }\n const m = this.pools.pop();\n m.width = canvas.width;\n m.height = canvas.height;\n return m;\n }\n free(d: ICanvas) {\n this.pools.push(d);\n }\n get length(): number {\n return this.pools.length;\n }\n release(...params: any): void {\n this.pools = [];\n }\n}\n\nexport const canvasAllocate = new DefaultCanvasAllocate();\n"]}
1
+ {"version":3,"sources":["../src/allocator/canvas-allocate.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAE7C,yCAA4C;AAE5C,MAAa,qBAAqB;IAAlC;QACY,UAAK,GAAc,EAAE,CAAC;QAGtB,oBAAe,GAAc,EAAE,CAAC;IAuD5C,CAAC;IAtDC,WAAW;QACT,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IACD,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;SACzE;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,QAAQ,CAAC,IAAoD;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,MAAM,CAAC,GAAG,IAAA,iBAAU,kBAClB,YAAY,EAAE,yBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAChD,IAAI,EACP,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC;SACV;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACjB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,aAAa,CAAC,MAAe;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG;gBAChC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG;gBAClC,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC;YACF,MAAM,CAAC,GAAG,IAAA,iBAAU,kBAClB,YAAY,EAAE,yBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAChD,IAAI,EACP,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC;SACV;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AA3DD,sDA2DC;AAEY,QAAA,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC","file":"canvas-allocate.js","sourcesContent":["import { application } from '../application';\nimport type { ICanvas, Releaseable, IAllocate } from '../interface';\nimport { wrapCanvas } from '../canvas/util';\n\nexport class DefaultCanvasAllocate implements IAllocate<ICanvas>, Releaseable {\n protected pools: ICanvas[] = [];\n protected _commonCanvas: any;\n // 已经被分配出去的canvas\n protected allocatedCanvas: ICanvas[] = [];\n shareCanvas(): ICanvas {\n if (this.allocatedCanvas.length) {\n return this.allocatedCanvas[0];\n }\n return this.getCommonCanvas();\n }\n getCommonCanvas(): ICanvas {\n if (!this._commonCanvas) {\n this._commonCanvas = this.allocate({ width: 100, height: 100, dpr: 2 });\n }\n return this._commonCanvas;\n }\n allocate(data: { width: number; height: number; dpr: number }): ICanvas {\n if (!this.pools.length) {\n const c = wrapCanvas({\n nativeCanvas: application.global.createCanvas(data),\n ...data\n });\n this.allocatedCanvas.push(c);\n return c;\n }\n const m = this.pools.pop();\n m.resize(data.width, data.height);\n m.dpr = data.dpr;\n return m;\n }\n allocateByObj(canvas: ICanvas): ICanvas {\n if (!this.pools.length) {\n const data = {\n width: canvas.width / canvas.dpr,\n height: canvas.height / canvas.dpr,\n dpr: canvas.dpr\n };\n const c = wrapCanvas({\n nativeCanvas: application.global.createCanvas(data),\n ...data\n });\n this.allocatedCanvas.push(c);\n return c;\n }\n const m = this.pools.pop();\n m.width = canvas.width;\n m.height = canvas.height;\n return m;\n }\n free(d: ICanvas) {\n this.pools.push(d);\n }\n get length(): number {\n return this.pools.length;\n }\n release(...params: any): void {\n this.pools = [];\n }\n}\n\nexport const canvasAllocate = new DefaultCanvasAllocate();\n"]}
@@ -1 +1,56 @@
1
-
1
+ import type { IAllocate } from '../interface';
2
+ import type { IArc, IArcGraphicAttribute, IArea, IAreaGraphicAttribute, ICircle, ICircleGraphicAttribute, IGraphic, ILine, ILineGraphicAttribute, IPath, IPathGraphicAttribute, IRect, IRectGraphicAttribute, ISymbol, ISymbolGraphicAttribute, IText, ITextGraphicAttribute, Releaseable } from '../interface';
3
+ export declare abstract class DefaultGraphicAllocate<T extends IGraphic, IGraphicAttribute> implements IAllocate<T>, Releaseable {
4
+ protected pools: T[];
5
+ abstract allocate(attribute: IGraphicAttribute): T;
6
+ abstract allocateByObj(g: T): T;
7
+ free(d: T): void;
8
+ get length(): number;
9
+ release(...params: any): void;
10
+ }
11
+ export declare class DefaultRectAllocate extends DefaultGraphicAllocate<IRect, IRectGraphicAttribute> {
12
+ allocate(attribute: IRectGraphicAttribute): IRect;
13
+ allocateByObj(rect: IRect): IRect;
14
+ }
15
+ export declare const defaultRectAllocate: DefaultRectAllocate;
16
+ export declare class DefaultArcAllocate extends DefaultGraphicAllocate<IArc, IArcGraphicAttribute> {
17
+ allocate(attribute: IArcGraphicAttribute): IArc;
18
+ allocateByObj(arc: IArc): IArc;
19
+ }
20
+ export declare const defaultArcAllocate: DefaultArcAllocate;
21
+ export declare class DefaultAreaAllocate extends DefaultGraphicAllocate<IArea, IAreaGraphicAttribute> {
22
+ allocate(attribute: IAreaGraphicAttribute): IArea;
23
+ allocateByObj(area: IArea): IArea;
24
+ }
25
+ export declare const defaultAreaAllocate: DefaultAreaAllocate;
26
+ export declare class DefaultCircleAllocate extends DefaultGraphicAllocate<ICircle, ICircleGraphicAttribute> {
27
+ allocate(attribute: ICircleGraphicAttribute): ICircle;
28
+ allocateByObj(area: ICircle): ICircle;
29
+ }
30
+ export declare const defaultCircleAllocate: DefaultCircleAllocate;
31
+ export declare class DefaultLineAllocate extends DefaultGraphicAllocate<ILine, ILineGraphicAttribute> {
32
+ allocate(attribute: ILineGraphicAttribute): ILine;
33
+ allocateByObj(line: ILine): ILine;
34
+ }
35
+ export declare const defaultLineAllocate: DefaultLineAllocate;
36
+ export declare class DefaultPathAllocate extends DefaultGraphicAllocate<IPath, IPathGraphicAttribute> {
37
+ allocate(attribute: IPathGraphicAttribute): IPath;
38
+ allocateByObj(path: IPath): IPath;
39
+ }
40
+ export declare const defaultPathAllocate: DefaultPathAllocate;
41
+ export declare class DefaultSymbolAllocate extends DefaultGraphicAllocate<ISymbol, ISymbolGraphicAttribute> {
42
+ allocate(attribute: ISymbolGraphicAttribute): ISymbol;
43
+ allocateByObj(symbol: ISymbol): ISymbol;
44
+ }
45
+ export declare const defaultSymbolAllocate: DefaultSymbolAllocate;
46
+ export declare class DefaultTextAllocate extends DefaultGraphicAllocate<IText, ITextGraphicAttribute> {
47
+ allocate(attribute: ITextGraphicAttribute): IText;
48
+ allocateByObj(text: IText): IText;
49
+ }
50
+ export declare const defaultTextAllocate: DefaultTextAllocate;
51
+ export declare class DefaultGraphicMemoryManager {
52
+ map: Record<string, DefaultGraphicAllocate<any, any>>;
53
+ gc(g: IGraphic): void;
54
+ gcItem(g: IGraphic): void;
55
+ }
56
+ export declare const defaultGraphicMemoryManager: DefaultGraphicMemoryManager;
@@ -1 +1,163 @@
1
- //# sourceMappingURL=graphic-allocate.js.map
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.defaultGraphicMemoryManager = exports.DefaultGraphicMemoryManager = exports.defaultTextAllocate = exports.DefaultTextAllocate = exports.defaultSymbolAllocate = exports.DefaultSymbolAllocate = exports.defaultPathAllocate = exports.DefaultPathAllocate = exports.defaultLineAllocate = exports.DefaultLineAllocate = exports.defaultCircleAllocate = exports.DefaultCircleAllocate = exports.defaultAreaAllocate = exports.DefaultAreaAllocate = exports.defaultArcAllocate = exports.DefaultArcAllocate = exports.defaultRectAllocate = exports.DefaultRectAllocate = exports.DefaultGraphicAllocate = void 0;
6
+
7
+ const application_1 = require("../application");
8
+
9
+ class DefaultGraphicAllocate {
10
+ constructor() {
11
+ this.pools = [];
12
+ }
13
+ free(d) {
14
+ this.pools.push(d);
15
+ }
16
+ get length() {
17
+ return this.pools.length;
18
+ }
19
+ release(...params) {
20
+ this.pools = [];
21
+ }
22
+ }
23
+
24
+ exports.DefaultGraphicAllocate = DefaultGraphicAllocate;
25
+
26
+ class DefaultRectAllocate extends DefaultGraphicAllocate {
27
+ allocate(attribute) {
28
+ if (!this.pools.length) return application_1.application.graphicService.creator.rect(attribute);
29
+ const g = this.pools.pop();
30
+ return g.initAttributes(attribute), g;
31
+ }
32
+ allocateByObj(rect) {
33
+ if (!this.pools.length) return application_1.application.graphicService.creator.rect(rect.attribute);
34
+ const g = this.pools.pop();
35
+ return g.initAttributes(rect.attribute), g;
36
+ }
37
+ }
38
+
39
+ exports.DefaultRectAllocate = DefaultRectAllocate, exports.defaultRectAllocate = new DefaultRectAllocate;
40
+
41
+ class DefaultArcAllocate extends DefaultGraphicAllocate {
42
+ allocate(attribute) {
43
+ if (!this.pools.length) return application_1.application.graphicService.creator.arc(attribute);
44
+ const g = this.pools.pop();
45
+ return g.initAttributes(attribute), g;
46
+ }
47
+ allocateByObj(arc) {
48
+ if (!this.pools.length) return application_1.application.graphicService.creator.arc(arc.attribute);
49
+ const g = this.pools.pop();
50
+ return g.initAttributes(arc.attribute), g;
51
+ }
52
+ }
53
+
54
+ exports.DefaultArcAllocate = DefaultArcAllocate, exports.defaultArcAllocate = new DefaultArcAllocate;
55
+
56
+ class DefaultAreaAllocate extends DefaultGraphicAllocate {
57
+ allocate(attribute) {
58
+ if (!this.pools.length) return application_1.application.graphicService.creator.area(attribute);
59
+ const g = this.pools.pop();
60
+ return g.initAttributes(attribute), g;
61
+ }
62
+ allocateByObj(area) {
63
+ if (!this.pools.length) return application_1.application.graphicService.creator.area(area.attribute);
64
+ const g = this.pools.pop();
65
+ return g.initAttributes(area.attribute), g;
66
+ }
67
+ }
68
+
69
+ exports.DefaultAreaAllocate = DefaultAreaAllocate, exports.defaultAreaAllocate = new DefaultAreaAllocate;
70
+
71
+ class DefaultCircleAllocate extends DefaultGraphicAllocate {
72
+ allocate(attribute) {
73
+ if (!this.pools.length) return application_1.application.graphicService.creator.circle(attribute);
74
+ const g = this.pools.pop();
75
+ return g.initAttributes(attribute), g;
76
+ }
77
+ allocateByObj(area) {
78
+ if (!this.pools.length) return application_1.application.graphicService.creator.circle(area.attribute);
79
+ const g = this.pools.pop();
80
+ return g.initAttributes(area.attribute), g;
81
+ }
82
+ }
83
+
84
+ exports.DefaultCircleAllocate = DefaultCircleAllocate, exports.defaultCircleAllocate = new DefaultCircleAllocate;
85
+
86
+ class DefaultLineAllocate extends DefaultGraphicAllocate {
87
+ allocate(attribute) {
88
+ if (!this.pools.length) return application_1.application.graphicService.creator.line(attribute);
89
+ const g = this.pools.pop();
90
+ return g.initAttributes(attribute), g;
91
+ }
92
+ allocateByObj(line) {
93
+ if (!this.pools.length) return application_1.application.graphicService.creator.line(line.attribute);
94
+ const g = this.pools.pop();
95
+ return g.initAttributes(line.attribute), g;
96
+ }
97
+ }
98
+
99
+ exports.DefaultLineAllocate = DefaultLineAllocate, exports.defaultLineAllocate = new DefaultLineAllocate;
100
+
101
+ class DefaultPathAllocate extends DefaultGraphicAllocate {
102
+ allocate(attribute) {
103
+ if (!this.pools.length) return application_1.application.graphicService.creator.path(attribute);
104
+ const g = this.pools.pop();
105
+ return g.initAttributes(attribute), g;
106
+ }
107
+ allocateByObj(path) {
108
+ if (!this.pools.length) return application_1.application.graphicService.creator.path(path.attribute);
109
+ const g = this.pools.pop();
110
+ return g.initAttributes(path.attribute), g;
111
+ }
112
+ }
113
+
114
+ exports.DefaultPathAllocate = DefaultPathAllocate, exports.defaultPathAllocate = new DefaultPathAllocate;
115
+
116
+ class DefaultSymbolAllocate extends DefaultGraphicAllocate {
117
+ allocate(attribute) {
118
+ if (!this.pools.length) return application_1.application.graphicService.creator.symbol(attribute);
119
+ const g = this.pools.pop();
120
+ return g.initAttributes(attribute), g;
121
+ }
122
+ allocateByObj(symbol) {
123
+ if (!this.pools.length) return application_1.application.graphicService.creator.symbol(symbol.attribute);
124
+ const g = this.pools.pop();
125
+ return g.initAttributes(symbol.attribute), g;
126
+ }
127
+ }
128
+
129
+ exports.DefaultSymbolAllocate = DefaultSymbolAllocate, exports.defaultSymbolAllocate = new DefaultSymbolAllocate;
130
+
131
+ class DefaultTextAllocate extends DefaultGraphicAllocate {
132
+ allocate(attribute) {
133
+ if (!this.pools.length) return application_1.application.graphicService.creator.text(attribute);
134
+ const g = this.pools.pop();
135
+ return g.initAttributes(attribute), g;
136
+ }
137
+ allocateByObj(text) {
138
+ if (!this.pools.length) return application_1.application.graphicService.creator.text(text.attribute);
139
+ const g = this.pools.pop();
140
+ return g.initAttributes(text.attribute), g;
141
+ }
142
+ }
143
+
144
+ exports.DefaultTextAllocate = DefaultTextAllocate, exports.defaultTextAllocate = new DefaultTextAllocate;
145
+
146
+ class DefaultGraphicMemoryManager {
147
+ constructor() {
148
+ this.map = {
149
+ text: exports.defaultTextAllocate,
150
+ symbol: exports.defaultSymbolAllocate
151
+ };
152
+ }
153
+ gc(g) {
154
+ g.isContainer ? g.forEachChildren((i => this.gc(i))) : this.gcItem(g);
155
+ }
156
+ gcItem(g) {
157
+ const allocate = this.map[g.type];
158
+ allocate && allocate.free(g);
159
+ }
160
+ }
161
+
162
+ exports.DefaultGraphicMemoryManager = DefaultGraphicMemoryManager, exports.defaultGraphicMemoryManager = new DefaultGraphicMemoryManager;
163
+ //# sourceMappingURL=graphic-allocate.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/allocator/graphic-allocate.ts"],"names":[],"mappings":"","file":"graphic-allocate.js","sourcesContent":["// // import { IMatrix, IMatrixLike, Matrix } from '@visactor/vutils';\n// import { IAllocate } from './interface';\n// import {\n// IArc,\n// IArcGraphicAttribute,\n// IArea,\n// IAreaGraphicAttribute,\n// ICircle,\n// ICircleGraphicAttribute,\n// IGraphic,\n// ILine,\n// ILineGraphicAttribute,\n// IPath,\n// IPathGraphicAttribute,\n// IRect,\n// IRectGraphicAttribute,\n// ISymbol,\n// ISymbolGraphicAttribute,\n// IText,\n// ITextGraphicAttribute,\n// Releaseable\n// } from '../interface';\n// import { application } from '../application';\n\n// @injectable()\n// export abstract class DefaultGraphicAllocate<T extends IGraphic, IGraphicAttribute>\n// implements IAllocate<T>, Releaseable\n// {\n// protected pools: T[] = [];\n// abstract allocate(attribute: IGraphicAttribute): T;\n// abstract allocateByObj(g: T): T;\n// free(d: T) {\n// this.pools.push(d);\n// }\n// get length(): number {\n// return this.pools.length;\n// }\n// release(...params: any): void {\n// this.pools = [];\n// }\n// }\n\n// @injectable()\n// export class DefaultRectAllocate extends DefaultGraphicAllocate<IRect, IRectGraphicAttribute> {\n// allocate(attribute: IRectGraphicAttribute): IRect {\n// if (!this.pools.length) {\n// return application.graphicService.creator.rect(attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(attribute);\n// return g;\n// }\n\n// allocateByObj(rect: IRect): IRect {\n// if (!this.pools.length) {\n// return application.graphicService.creator.rect(rect.attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(rect.attribute);\n// return g;\n// }\n// }\n\n// @injectable()\n// export class DefaultArcAllocate extends DefaultGraphicAllocate<IArc, IArcGraphicAttribute> {\n// allocate(attribute: IArcGraphicAttribute): IArc {\n// if (!this.pools.length) {\n// return application.graphicService.creator.arc(attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(attribute);\n// return g;\n// }\n\n// allocateByObj(arc: IArc): IArc {\n// if (!this.pools.length) {\n// return application.graphicService.creator.arc(arc.attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(arc.attribute);\n// return g;\n// }\n// }\n\n// @injectable()\n// export class DefaultAreaAllocate extends DefaultGraphicAllocate<IArea, IAreaGraphicAttribute> {\n// allocate(attribute: IAreaGraphicAttribute): IArea {\n// if (!this.pools.length) {\n// return application.graphicService.creator.area(attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(attribute);\n// return g;\n// }\n\n// allocateByObj(area: IArea): IArea {\n// if (!this.pools.length) {\n// return application.graphicService.creator.area(area.attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(area.attribute);\n// return g;\n// }\n// }\n\n// @injectable()\n// export class DefaultCircleAllocate extends DefaultGraphicAllocate<ICircle, ICircleGraphicAttribute> {\n// allocate(attribute: ICircleGraphicAttribute): ICircle {\n// if (!this.pools.length) {\n// return application.graphicService.creator.circle(attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(attribute);\n// return g;\n// }\n\n// allocateByObj(area: ICircle): ICircle {\n// if (!this.pools.length) {\n// return application.graphicService.creator.circle(area.attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(area.attribute);\n// return g;\n// }\n// }\n\n// @injectable()\n// export class DefaultLineAllocate extends DefaultGraphicAllocate<ILine, ILineGraphicAttribute> {\n// allocate(attribute: ILineGraphicAttribute): ILine {\n// if (!this.pools.length) {\n// return application.graphicService.creator.line(attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(attribute);\n// return g;\n// }\n\n// allocateByObj(line: ILine): ILine {\n// if (!this.pools.length) {\n// return application.graphicService.creator.line(line.attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(line.attribute);\n// return g;\n// }\n// }\n\n// @injectable()\n// export class DefaultPathAllocate extends DefaultGraphicAllocate<IPath, IPathGraphicAttribute> {\n// allocate(attribute: IPathGraphicAttribute): IPath {\n// if (!this.pools.length) {\n// return application.graphicService.creator.path(attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(attribute);\n// return g;\n// }\n\n// allocateByObj(path: IPath): IPath {\n// if (!this.pools.length) {\n// return application.graphicService.creator.path(path.attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(path.attribute);\n// return g;\n// }\n// }\n\n// @injectable()\n// export class DefaultSymbolAllocate extends DefaultGraphicAllocate<ISymbol, ISymbolGraphicAttribute> {\n// allocate(attribute: ISymbolGraphicAttribute): ISymbol {\n// if (!this.pools.length) {\n// return application.graphicService.creator.symbol(attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(attribute);\n// return g;\n// }\n\n// allocateByObj(symbol: ISymbol): ISymbol {\n// if (!this.pools.length) {\n// return application.graphicService.creator.symbol(symbol.attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(symbol.attribute);\n// return g;\n// }\n// }\n\n// @injectable()\n// export class DefaultTextAllocate extends DefaultGraphicAllocate<IText, ITextGraphicAttribute> {\n// allocate(attribute: ITextGraphicAttribute): IText {\n// if (!this.pools.length) {\n// return application.graphicService.creator.text(attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(attribute);\n// return g;\n// }\n\n// allocateByObj(text: IText): IText {\n// if (!this.pools.length) {\n// return application.graphicService.creator.text(text.attribute);\n// }\n// const g = this.pools.pop();\n// g.initAttributes(text.attribute);\n// return g;\n// }\n// }\n"]}
1
+ {"version":3,"sources":["../src/allocator/graphic-allocate.ts"],"names":[],"mappings":"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","file":"graphic-allocate.js","sourcesContent":["// import { IMatrix, IMatrixLike, Matrix } from '@visactor/vutils';\nimport type { IAllocate } from '../interface';\nimport type {\n IArc,\n IArcGraphicAttribute,\n IArea,\n IAreaGraphicAttribute,\n ICircle,\n ICircleGraphicAttribute,\n IGraphic,\n ILine,\n ILineGraphicAttribute,\n IPath,\n IPathGraphicAttribute,\n IRect,\n IRectGraphicAttribute,\n ISymbol,\n ISymbolGraphicAttribute,\n IText,\n ITextGraphicAttribute,\n Releaseable\n} from '../interface';\nimport { application } from '../application';\n\nexport abstract class DefaultGraphicAllocate<T extends IGraphic, IGraphicAttribute>\n implements IAllocate<T>, Releaseable\n{\n protected pools: T[] = [];\n abstract allocate(attribute: IGraphicAttribute): T;\n abstract allocateByObj(g: T): T;\n free(d: T) {\n this.pools.push(d);\n }\n get length(): number {\n return this.pools.length;\n }\n release(...params: any): void {\n this.pools = [];\n }\n}\n\nexport class DefaultRectAllocate extends DefaultGraphicAllocate<IRect, IRectGraphicAttribute> {\n allocate(attribute: IRectGraphicAttribute): IRect {\n if (!this.pools.length) {\n return application.graphicService.creator.rect(attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(attribute);\n return g;\n }\n\n allocateByObj(rect: IRect): IRect {\n if (!this.pools.length) {\n return application.graphicService.creator.rect(rect.attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(rect.attribute);\n return g;\n }\n}\nexport const defaultRectAllocate = new DefaultRectAllocate();\n\nexport class DefaultArcAllocate extends DefaultGraphicAllocate<IArc, IArcGraphicAttribute> {\n allocate(attribute: IArcGraphicAttribute): IArc {\n if (!this.pools.length) {\n return application.graphicService.creator.arc(attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(attribute);\n return g;\n }\n\n allocateByObj(arc: IArc): IArc {\n if (!this.pools.length) {\n return application.graphicService.creator.arc(arc.attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(arc.attribute);\n return g;\n }\n}\n\nexport const defaultArcAllocate = new DefaultArcAllocate();\n\nexport class DefaultAreaAllocate extends DefaultGraphicAllocate<IArea, IAreaGraphicAttribute> {\n allocate(attribute: IAreaGraphicAttribute): IArea {\n if (!this.pools.length) {\n return application.graphicService.creator.area(attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(attribute);\n return g;\n }\n\n allocateByObj(area: IArea): IArea {\n if (!this.pools.length) {\n return application.graphicService.creator.area(area.attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(area.attribute);\n return g;\n }\n}\n\nexport const defaultAreaAllocate = new DefaultAreaAllocate();\n\nexport class DefaultCircleAllocate extends DefaultGraphicAllocate<ICircle, ICircleGraphicAttribute> {\n allocate(attribute: ICircleGraphicAttribute): ICircle {\n if (!this.pools.length) {\n return application.graphicService.creator.circle(attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(attribute);\n return g;\n }\n\n allocateByObj(area: ICircle): ICircle {\n if (!this.pools.length) {\n return application.graphicService.creator.circle(area.attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(area.attribute);\n return g;\n }\n}\n\nexport const defaultCircleAllocate = new DefaultCircleAllocate();\n\nexport class DefaultLineAllocate extends DefaultGraphicAllocate<ILine, ILineGraphicAttribute> {\n allocate(attribute: ILineGraphicAttribute): ILine {\n if (!this.pools.length) {\n return application.graphicService.creator.line(attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(attribute);\n return g;\n }\n\n allocateByObj(line: ILine): ILine {\n if (!this.pools.length) {\n return application.graphicService.creator.line(line.attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(line.attribute);\n return g;\n }\n}\n\nexport const defaultLineAllocate = new DefaultLineAllocate();\n\nexport class DefaultPathAllocate extends DefaultGraphicAllocate<IPath, IPathGraphicAttribute> {\n allocate(attribute: IPathGraphicAttribute): IPath {\n if (!this.pools.length) {\n return application.graphicService.creator.path(attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(attribute);\n return g;\n }\n\n allocateByObj(path: IPath): IPath {\n if (!this.pools.length) {\n return application.graphicService.creator.path(path.attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(path.attribute);\n return g;\n }\n}\n\nexport const defaultPathAllocate = new DefaultPathAllocate();\n\nexport class DefaultSymbolAllocate extends DefaultGraphicAllocate<ISymbol, ISymbolGraphicAttribute> {\n allocate(attribute: ISymbolGraphicAttribute): ISymbol {\n if (!this.pools.length) {\n return application.graphicService.creator.symbol(attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(attribute);\n return g;\n }\n\n allocateByObj(symbol: ISymbol): ISymbol {\n if (!this.pools.length) {\n return application.graphicService.creator.symbol(symbol.attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(symbol.attribute);\n return g;\n }\n}\n\nexport const defaultSymbolAllocate = new DefaultSymbolAllocate();\n\nexport class DefaultTextAllocate extends DefaultGraphicAllocate<IText, ITextGraphicAttribute> {\n allocate(attribute: ITextGraphicAttribute): IText {\n if (!this.pools.length) {\n return application.graphicService.creator.text(attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(attribute);\n return g;\n }\n\n allocateByObj(text: IText): IText {\n if (!this.pools.length) {\n return application.graphicService.creator.text(text.attribute);\n }\n const g = this.pools.pop();\n g.initAttributes(text.attribute);\n return g;\n }\n}\n\nexport const defaultTextAllocate = new DefaultTextAllocate();\n\nexport class DefaultGraphicMemoryManager {\n map: Record<string, DefaultGraphicAllocate<any, any>> = {\n text: defaultTextAllocate,\n symbol: defaultSymbolAllocate\n };\n gc(g: IGraphic) {\n if (g.isContainer) {\n g.forEachChildren(i => this.gc(i as any));\n } else {\n this.gcItem(g);\n }\n }\n\n gcItem(g: IGraphic) {\n const allocate = this.map[g.type];\n if (allocate) {\n allocate.free(g);\n }\n }\n}\n\nexport const defaultGraphicMemoryManager = new DefaultGraphicMemoryManager();\n"]}
@@ -107,7 +107,7 @@ class DefaultTicker {
107
107
  this.autoStop = !0;
108
108
  }
109
109
  init() {
110
- this.interval = NaN, this.status = STATUS.INITIAL, application_1.application.global.hooks.onSetEnv.tap("window", (() => {
110
+ this.interval = NaN, this.status = STATUS.INITIAL, application_1.application.global.hooks.onSetEnv.tap("default-ticker", (() => {
111
111
  this.initHandler();
112
112
  })), application_1.application.global.env && this.initHandler();
113
113
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/animate/Ticker/default-ticker.ts"],"names":[],"mappings":"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","file":"default-ticker.js","sourcesContent":["import { Logger } from '@visactor/vutils';\nimport type { ITickHandler, ITickerHandlerStatic, ITimeline, ITicker } from '../../interface';\nimport { application } from '../../application';\nexport class ManualTickHandler implements ITickHandler {\n protected timerId: number;\n protected time: number = 0;\n\n static Avaliable(): boolean {\n return true;\n }\n\n avaliable(): boolean {\n return ManualTickHandler.Avaliable();\n }\n\n tick(interval: number, cb: (handler: ITickHandler, params?: { once: boolean }) => void): void {\n this.time = Math.max(0, interval + this.time);\n cb(this, { once: true });\n }\n\n tickTo(t: number, cb: (handler: ITickHandler, params?: { once: boolean }) => void): void {\n this.time = Math.max(0, t);\n cb(this, { once: true });\n }\n\n release() {\n if (this.timerId > 0) {\n // clearTimeout(this.timerId);\n this.timerId = -1;\n }\n }\n\n getTime() {\n return this.time;\n }\n}\n\nexport class TimeOutTickHandler implements ITickHandler {\n protected timerId: number;\n\n static Avaliable(): boolean {\n return true;\n }\n\n avaliable(): boolean {\n return TimeOutTickHandler.Avaliable();\n }\n\n tick(interval: number, cb: (handler: ITickHandler) => void): void {\n this.timerId = setTimeout(() => {\n cb(this);\n }, interval) as unknown as number;\n }\n\n release() {\n if (this.timerId > 0) {\n clearTimeout(this.timerId);\n this.timerId = -1;\n }\n }\n getTime() {\n return Date.now();\n }\n}\n\nexport class RAFTickHandler implements ITickHandler {\n protected released: boolean;\n\n static Avaliable(): boolean {\n return !!application.global.getRequestAnimationFrame();\n }\n avaliable(): boolean {\n return RAFTickHandler.Avaliable();\n }\n\n tick(interval: number, cb: (handler: ITickHandler) => void): void {\n const raf = application.global.getRequestAnimationFrame();\n raf(() => {\n if (this.released) {\n return;\n }\n cb(this);\n });\n }\n\n release() {\n this.released = true;\n }\n getTime() {\n return Date.now();\n }\n}\n\ntype TickerMode = 'raf' | 'timeout' | 'manual';\n\nenum STATUS {\n INITIAL = 0, // initial表示初始状态\n RUNNING = 1, // running表示正在执行\n PAUSE = 2 // PULSE表示tick还是继续,只是不执行函数了\n}\n\nexport class DefaultTicker implements ITicker {\n protected interval: number;\n protected tickerHandler: ITickHandler;\n protected _mode: TickerMode;\n protected status: STATUS;\n protected lastFrameTime: number;\n protected tickCounts: number;\n protected timelines: ITimeline[];\n autoStop: boolean;\n\n set mode(m: TickerMode) {\n if (this._mode === m) {\n return;\n }\n this._mode = m;\n this.setupTickHandler();\n }\n get mode(): TickerMode {\n return this._mode;\n }\n\n constructor(timelines: ITimeline[] = []) {\n this.init();\n this.lastFrameTime = -1;\n this.tickCounts = 0;\n this.timelines = timelines;\n this.autoStop = true;\n }\n\n init() {\n this.interval = NaN;\n this.status = STATUS.INITIAL;\n application.global.hooks.onSetEnv.tap('window', () => {\n this.initHandler();\n });\n if (application.global.env) {\n this.initHandler();\n }\n }\n\n addTimeline(timeline: ITimeline) {\n this.timelines.push(timeline);\n }\n remTimeline(timeline: ITimeline) {\n this.timelines = this.timelines.filter(t => t !== timeline);\n }\n\n protected initHandler(): ITickHandler | null {\n if (this._mode) {\n return null;\n }\n const ticks: { mode: TickerMode; cons: ITickerHandlerStatic }[] = [\n { mode: 'raf', cons: RAFTickHandler },\n { mode: 'timeout', cons: TimeOutTickHandler },\n { mode: 'manual', cons: ManualTickHandler }\n ];\n for (let i = 0; i < ticks.length; i++) {\n if (ticks[i].cons.Avaliable()) {\n this.mode = ticks[i].mode;\n break;\n }\n }\n return null;\n }\n\n /**\n * 设置tickHandler\n * @returns 返回true表示设置成功,false表示设置失败\n */\n protected setupTickHandler(): boolean {\n let handler: ITickHandler;\n // 创建下一个tickHandler\n switch (this._mode) {\n case 'raf':\n handler = new RAFTickHandler();\n break;\n case 'timeout':\n handler = new TimeOutTickHandler();\n break;\n case 'manual':\n handler = new ManualTickHandler();\n break;\n default:\n Logger.getInstance().warn('非法的计时器模式');\n handler = new RAFTickHandler();\n break;\n }\n if (!handler.avaliable()) {\n return false;\n }\n\n // 销毁上一个tickerHandler\n if (this.tickerHandler) {\n this.tickerHandler.release();\n }\n this.tickerHandler = handler;\n return true;\n }\n\n setInterval(interval: number) {\n this.interval = interval;\n }\n getInterval(): number {\n return this.interval;\n }\n\n setFPS(fps: number): void {\n this.setInterval(1000 / fps);\n }\n getFPS(): number {\n return 1000 / this.interval;\n }\n tick(interval: number): void {\n this.tickerHandler.tick(interval, (handler: ITickHandler) => {\n this.handleTick(handler, { once: true });\n });\n }\n tickTo(t: number): void {\n if (!this.tickerHandler.tickTo) {\n return;\n }\n this.tickerHandler.tickTo(t, (handler: ITickHandler) => {\n this.handleTick(handler, { once: true });\n });\n }\n pause(): boolean {\n if (this.status === STATUS.INITIAL) {\n return false;\n }\n this.status = STATUS.PAUSE;\n return true;\n }\n resume(): boolean {\n if (this.status === STATUS.INITIAL) {\n return false;\n }\n this.status = STATUS.RUNNING;\n return true;\n }\n\n ifCanStop(): boolean {\n if (this.autoStop) {\n if (!this.timelines.length) {\n return true;\n }\n if (this.timelines.reduce((a, b) => a + b.animateCount, 0) === 0) {\n return true;\n }\n }\n return false;\n }\n\n start(force: boolean = false): boolean {\n if (this.status === STATUS.RUNNING) {\n return false;\n }\n if (!this.tickerHandler) {\n return false;\n }\n // 如果不需要start,那就不start\n if (!force) {\n // 暂停状态不执行\n if (this.status === STATUS.PAUSE) {\n return false;\n }\n if (!this.timelines.length) {\n return false;\n }\n if (this.timelines.reduce((a, b) => a + b.animateCount, 0) === 0) {\n return false;\n }\n }\n this.status = STATUS.RUNNING;\n this.tickerHandler.tick(0, this.handleTick);\n return true;\n }\n stop(): void {\n // 重新设置tickHandler\n this.status = STATUS.INITIAL;\n this.setupTickHandler();\n this.lastFrameTime = -1;\n }\n\n protected handleTick = (handler: ITickHandler, params?: { once?: boolean }) => {\n const { once = false } = params ?? {};\n // 尝试停止\n if (this.ifCanStop()) {\n this.stop();\n return;\n }\n this._handlerTick(handler);\n if (!once) {\n handler.tick(this.interval, this.handleTick);\n }\n };\n\n protected _handlerTick = (handler: ITickHandler) => {\n // 具体执行函数\n const tickerHandler = this.tickerHandler;\n const time = tickerHandler.getTime();\n // 上一帧经过的时间\n let delta = 0;\n if (this.lastFrameTime >= 0) {\n delta = time - this.lastFrameTime;\n }\n this.lastFrameTime = time;\n\n if (this.status !== STATUS.RUNNING) {\n return;\n }\n this.tickCounts++;\n\n this.timelines.forEach(t => {\n t.tick(delta);\n });\n };\n}\n\nexport class ManualTicker extends DefaultTicker implements ITicker {\n protected declare interval: number;\n protected declare tickerHandler: ITickHandler;\n protected declare _mode: TickerMode;\n protected declare status: STATUS;\n protected declare lastFrameTime: number;\n protected declare tickCounts: number;\n protected declare timelines: ITimeline[];\n declare autoStop: boolean;\n\n set mode(m: TickerMode) {\n m = 'manual';\n this.setupTickHandler();\n }\n get mode(): TickerMode {\n return this._mode;\n }\n\n protected initHandler(): ITickHandler | null {\n this.mode = 'manual';\n return null;\n }\n\n /**\n * 设置tickHandler\n * @returns 返回true表示设置成功,false表示设置失败\n */\n protected setupTickHandler(): boolean {\n const handler: ITickHandler = new ManualTickHandler();\n this._mode = 'manual';\n\n // 销毁上一个tickerHandler\n if (this.tickerHandler) {\n this.tickerHandler.release();\n }\n this.tickerHandler = handler;\n return true;\n }\n\n tickAt(time: number) {\n this.tickerHandler.tick(time - this.lastFrameTime, (handler: ITickHandler) => {\n this.handleTick(handler, { once: true });\n });\n }\n\n ifCanStop(): boolean {\n return false;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/animate/Ticker/default-ticker.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,mDAAgD;AAChD,MAAa,iBAAiB;IAA9B;QAEY,SAAI,GAAW,CAAC,CAAC;IA8B7B,CAAC;IA5BC,MAAM,CAAC,SAAS;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,OAAO,iBAAiB,CAAC,SAAS,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,QAAgB,EAAE,EAA+D;QACpF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,EAA+D;QAC/E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YAEpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;SACnB;IACH,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAhCD,8CAgCC;AAED,MAAa,kBAAkB;IAG7B,MAAM,CAAC,SAAS;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,OAAO,kBAAkB,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,QAAgB,EAAE,EAAmC;QACxD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,EAAE,CAAC,IAAI,CAAC,CAAC;QACX,CAAC,EAAE,QAAQ,CAAsB,CAAC;IACpC,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;SACnB;IACH,CAAC;IACD,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AA1BD,gDA0BC;AAED,MAAa,cAAc;IAGzB,MAAM,CAAC,SAAS;QACd,OAAO,CAAC,CAAC,yBAAW,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;IACzD,CAAC;IACD,SAAS;QACP,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,QAAgB,EAAE,EAAmC;QACxD,MAAM,GAAG,GAAG,yBAAW,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;QAC1D,GAAG,CAAC,GAAG,EAAE;YACP,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;aACR;YACD,EAAE,CAAC,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AA1BD,wCA0BC;AAID,IAAK,MAIJ;AAJD,WAAK,MAAM;IACT,yCAAW,CAAA;IACX,yCAAW,CAAA;IACX,qCAAS,CAAA;AACX,CAAC,EAJI,MAAM,KAAN,MAAM,QAIV;AAED,MAAa,aAAa;IAUxB,IAAI,IAAI,CAAC,CAAa;QACpB,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;YACpB,OAAO;SACR;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,YAAY,YAAyB,EAAE;QAkK7B,eAAU,GAAG,CAAC,OAAqB,EAAE,MAA2B,EAAE,EAAE;YAC5E,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;YAEtC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACpB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO;aACR;YACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC;QAEQ,iBAAY,GAAG,CAAC,OAAqB,EAAE,EAAE;YAEjD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;YAErC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;gBAC3B,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;aACnC;YACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;gBAClC,OAAO;aACR;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAElB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAjMA,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,yBAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,yBAAW,CAAC,MAAM,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAED,WAAW,CAAC,QAAmB;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,WAAW,CAAC,QAAmB;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAES,WAAW;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QACD,MAAM,KAAK,GAAuD;YAChE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;YACrC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE;SAC5C,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1B,MAAM;aACP;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMS,gBAAgB;QACxB,IAAI,OAAqB,CAAC;QAE1B,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,KAAK;gBACR,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;gBAC/B,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;gBACnC,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;gBAClC,MAAM;YACR;gBACE,eAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtC,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;gBAC/B,MAAM;SACT;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAGD,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM;QACJ,OAAO,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,QAAgB;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAqB,EAAE,EAAE;YAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,CAAS;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC9B,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAqB,EAAE,EAAE;YACrD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM;QACJ,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBAC1B,OAAO,IAAI,CAAC;aACb;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;gBAChE,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAiB,KAAK;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,KAAK,EAAE;YAEV,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,EAAE;gBAChC,OAAO,KAAK,CAAC;aACd;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBAC1B,OAAO,KAAK,CAAC;aACd;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;gBAChE,OAAO,KAAK,CAAC;aACd;SACF;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI;QAEF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC1B,CAAC;CAmCF;AAxND,sCAwNC;AAED,MAAa,YAAa,SAAQ,aAAa;IAU7C,IAAI,IAAI,CAAC,CAAa;QACpB,CAAC,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAMS,gBAAgB;QACxB,MAAM,OAAO,GAAiB,IAAI,iBAAiB,EAAE,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QAGtB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,OAAqB,EAAE,EAAE;YAC3E,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhDD,oCAgDC","file":"default-ticker.js","sourcesContent":["import { Logger } from '@visactor/vutils';\nimport type { ITickHandler, ITickerHandlerStatic, ITimeline, ITicker } from '../../interface';\nimport { application } from '../../application';\nexport class ManualTickHandler implements ITickHandler {\n protected timerId: number;\n protected time: number = 0;\n\n static Avaliable(): boolean {\n return true;\n }\n\n avaliable(): boolean {\n return ManualTickHandler.Avaliable();\n }\n\n tick(interval: number, cb: (handler: ITickHandler, params?: { once: boolean }) => void): void {\n this.time = Math.max(0, interval + this.time);\n cb(this, { once: true });\n }\n\n tickTo(t: number, cb: (handler: ITickHandler, params?: { once: boolean }) => void): void {\n this.time = Math.max(0, t);\n cb(this, { once: true });\n }\n\n release() {\n if (this.timerId > 0) {\n // clearTimeout(this.timerId);\n this.timerId = -1;\n }\n }\n\n getTime() {\n return this.time;\n }\n}\n\nexport class TimeOutTickHandler implements ITickHandler {\n protected timerId: number;\n\n static Avaliable(): boolean {\n return true;\n }\n\n avaliable(): boolean {\n return TimeOutTickHandler.Avaliable();\n }\n\n tick(interval: number, cb: (handler: ITickHandler) => void): void {\n this.timerId = setTimeout(() => {\n cb(this);\n }, interval) as unknown as number;\n }\n\n release() {\n if (this.timerId > 0) {\n clearTimeout(this.timerId);\n this.timerId = -1;\n }\n }\n getTime() {\n return Date.now();\n }\n}\n\nexport class RAFTickHandler implements ITickHandler {\n protected released: boolean;\n\n static Avaliable(): boolean {\n return !!application.global.getRequestAnimationFrame();\n }\n avaliable(): boolean {\n return RAFTickHandler.Avaliable();\n }\n\n tick(interval: number, cb: (handler: ITickHandler) => void): void {\n const raf = application.global.getRequestAnimationFrame();\n raf(() => {\n if (this.released) {\n return;\n }\n cb(this);\n });\n }\n\n release() {\n this.released = true;\n }\n getTime() {\n return Date.now();\n }\n}\n\ntype TickerMode = 'raf' | 'timeout' | 'manual';\n\nenum STATUS {\n INITIAL = 0, // initial表示初始状态\n RUNNING = 1, // running表示正在执行\n PAUSE = 2 // PULSE表示tick还是继续,只是不执行函数了\n}\n\nexport class DefaultTicker implements ITicker {\n protected interval: number;\n protected tickerHandler: ITickHandler;\n protected _mode: TickerMode;\n protected status: STATUS;\n protected lastFrameTime: number;\n protected tickCounts: number;\n protected timelines: ITimeline[];\n autoStop: boolean;\n\n set mode(m: TickerMode) {\n if (this._mode === m) {\n return;\n }\n this._mode = m;\n this.setupTickHandler();\n }\n get mode(): TickerMode {\n return this._mode;\n }\n\n constructor(timelines: ITimeline[] = []) {\n this.init();\n this.lastFrameTime = -1;\n this.tickCounts = 0;\n this.timelines = timelines;\n this.autoStop = true;\n }\n\n init() {\n this.interval = NaN;\n this.status = STATUS.INITIAL;\n application.global.hooks.onSetEnv.tap('default-ticker', () => {\n this.initHandler();\n });\n if (application.global.env) {\n this.initHandler();\n }\n }\n\n addTimeline(timeline: ITimeline) {\n this.timelines.push(timeline);\n }\n remTimeline(timeline: ITimeline) {\n this.timelines = this.timelines.filter(t => t !== timeline);\n }\n\n protected initHandler(): ITickHandler | null {\n if (this._mode) {\n return null;\n }\n const ticks: { mode: TickerMode; cons: ITickerHandlerStatic }[] = [\n { mode: 'raf', cons: RAFTickHandler },\n { mode: 'timeout', cons: TimeOutTickHandler },\n { mode: 'manual', cons: ManualTickHandler }\n ];\n for (let i = 0; i < ticks.length; i++) {\n if (ticks[i].cons.Avaliable()) {\n this.mode = ticks[i].mode;\n break;\n }\n }\n return null;\n }\n\n /**\n * 设置tickHandler\n * @returns 返回true表示设置成功,false表示设置失败\n */\n protected setupTickHandler(): boolean {\n let handler: ITickHandler;\n // 创建下一个tickHandler\n switch (this._mode) {\n case 'raf':\n handler = new RAFTickHandler();\n break;\n case 'timeout':\n handler = new TimeOutTickHandler();\n break;\n case 'manual':\n handler = new ManualTickHandler();\n break;\n default:\n Logger.getInstance().warn('非法的计时器模式');\n handler = new RAFTickHandler();\n break;\n }\n if (!handler.avaliable()) {\n return false;\n }\n\n // 销毁上一个tickerHandler\n if (this.tickerHandler) {\n this.tickerHandler.release();\n }\n this.tickerHandler = handler;\n return true;\n }\n\n setInterval(interval: number) {\n this.interval = interval;\n }\n getInterval(): number {\n return this.interval;\n }\n\n setFPS(fps: number): void {\n this.setInterval(1000 / fps);\n }\n getFPS(): number {\n return 1000 / this.interval;\n }\n tick(interval: number): void {\n this.tickerHandler.tick(interval, (handler: ITickHandler) => {\n this.handleTick(handler, { once: true });\n });\n }\n tickTo(t: number): void {\n if (!this.tickerHandler.tickTo) {\n return;\n }\n this.tickerHandler.tickTo(t, (handler: ITickHandler) => {\n this.handleTick(handler, { once: true });\n });\n }\n pause(): boolean {\n if (this.status === STATUS.INITIAL) {\n return false;\n }\n this.status = STATUS.PAUSE;\n return true;\n }\n resume(): boolean {\n if (this.status === STATUS.INITIAL) {\n return false;\n }\n this.status = STATUS.RUNNING;\n return true;\n }\n\n ifCanStop(): boolean {\n if (this.autoStop) {\n if (!this.timelines.length) {\n return true;\n }\n if (this.timelines.reduce((a, b) => a + b.animateCount, 0) === 0) {\n return true;\n }\n }\n return false;\n }\n\n start(force: boolean = false): boolean {\n if (this.status === STATUS.RUNNING) {\n return false;\n }\n if (!this.tickerHandler) {\n return false;\n }\n // 如果不需要start,那就不start\n if (!force) {\n // 暂停状态不执行\n if (this.status === STATUS.PAUSE) {\n return false;\n }\n if (!this.timelines.length) {\n return false;\n }\n if (this.timelines.reduce((a, b) => a + b.animateCount, 0) === 0) {\n return false;\n }\n }\n this.status = STATUS.RUNNING;\n this.tickerHandler.tick(0, this.handleTick);\n return true;\n }\n stop(): void {\n // 重新设置tickHandler\n this.status = STATUS.INITIAL;\n this.setupTickHandler();\n this.lastFrameTime = -1;\n }\n\n protected handleTick = (handler: ITickHandler, params?: { once?: boolean }) => {\n const { once = false } = params ?? {};\n // 尝试停止\n if (this.ifCanStop()) {\n this.stop();\n return;\n }\n this._handlerTick(handler);\n if (!once) {\n handler.tick(this.interval, this.handleTick);\n }\n };\n\n protected _handlerTick = (handler: ITickHandler) => {\n // 具体执行函数\n const tickerHandler = this.tickerHandler;\n const time = tickerHandler.getTime();\n // 上一帧经过的时间\n let delta = 0;\n if (this.lastFrameTime >= 0) {\n delta = time - this.lastFrameTime;\n }\n this.lastFrameTime = time;\n\n if (this.status !== STATUS.RUNNING) {\n return;\n }\n this.tickCounts++;\n\n this.timelines.forEach(t => {\n t.tick(delta);\n });\n };\n}\n\nexport class ManualTicker extends DefaultTicker implements ITicker {\n protected declare interval: number;\n protected declare tickerHandler: ITickHandler;\n protected declare _mode: TickerMode;\n protected declare status: STATUS;\n protected declare lastFrameTime: number;\n protected declare tickCounts: number;\n protected declare timelines: ITimeline[];\n declare autoStop: boolean;\n\n set mode(m: TickerMode) {\n m = 'manual';\n this.setupTickHandler();\n }\n get mode(): TickerMode {\n return this._mode;\n }\n\n protected initHandler(): ITickHandler | null {\n this.mode = 'manual';\n return null;\n }\n\n /**\n * 设置tickHandler\n * @returns 返回true表示设置成功,false表示设置失败\n */\n protected setupTickHandler(): boolean {\n const handler: ITickHandler = new ManualTickHandler();\n this._mode = 'manual';\n\n // 销毁上一个tickerHandler\n if (this.tickerHandler) {\n this.tickerHandler.release();\n }\n this.tickerHandler = handler;\n return true;\n }\n\n tickAt(time: number) {\n this.tickerHandler.tick(time - this.lastFrameTime, (handler: ITickHandler) => {\n this.handleTick(handler, { once: true });\n });\n }\n\n ifCanStop(): boolean {\n return false;\n }\n}\n"]}
@@ -9,5 +9,4 @@ exports.DefaultStateAnimateConfig = {
9
9
  }, exports.DefaultMorphingAnimateConfig = {
10
10
  duration: 1e3,
11
11
  easing: "quadInOut"
12
- };
13
- //# sourceMappingURL=config.js.map
12
+ };
@@ -734,4 +734,5 @@ class AnimateGroup1 extends animate_1.ACustomAnimate {
734
734
  }
735
735
  }
736
736
 
737
- exports.AnimateGroup1 = AnimateGroup1;
737
+ exports.AnimateGroup1 = AnimateGroup1;
738
+ //# sourceMappingURL=custom-animate.js.map
@@ -71,11 +71,13 @@ let BaseCanvas = class {
71
71
  this._dpr = dpr, this.resize(this._displayWidth, this._displayHeight);
72
72
  }
73
73
  constructor(params) {
74
- const {nativeCanvas: nativeCanvas, width: width = DefaultConfig.WIDTH, height: height = DefaultConfig.HEIGHT, dpr: dpr = DefaultConfig.DPR, x: x, y: y, canvasControled: canvasControled = !0} = params;
74
+ var _a;
75
+ const {nativeCanvas: nativeCanvas, width: width = DefaultConfig.WIDTH, height: height = DefaultConfig.HEIGHT, dpr: dpr = DefaultConfig.DPR, x: x, y: y, id: id, canvasControled: canvasControled = !0} = params;
75
76
  this._x = null != x ? x : 0, this._y = null != y ? y : 0, this._pixelWidth = width * dpr,
76
77
  this._pixelHeight = height * dpr, this._visiable = !1 !== params.visiable, this.controled = canvasControled,
77
78
  this._displayWidth = width, this._displayHeight = height, this._dpr = dpr, this._nativeCanvas = nativeCanvas,
78
- this._id = nativeCanvas.id, this.init(params);
79
+ this._id = null !== (_a = nativeCanvas.id) && void 0 !== _a ? _a : id, id && (nativeCanvas.id = id),
80
+ this.init(params);
79
81
  }
80
82
  getNativeCanvas() {
81
83
  return this._nativeCanvas;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/base-canvas.ts"],"names":[],"mappings":"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","file":"base-canvas.js","sourcesContent":["import { injectable } from '../../common/inversify-lite';\nimport type { CanvasConfigType, ICanvas, IContext2d, EnvType } from '../../interface';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport abstract class BaseCanvas implements ICanvas {\n static env: EnvType = 'browser';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n protected _displayWidth: number; // 显示的宽度\n protected _displayHeight: number; // 显示的高度\n protected _id: number | string;\n // 像素宽高\n protected _pixelWidth: number; // 像素宽度\n protected _pixelHeight: number; // 像素高度\n\n protected _x: number;\n protected _y: number;\n protected _dpr: number;\n\n protected _container?: HTMLElement | null;\n protected _nativeCanvas: HTMLCanvasElement;\n protected _context: IContext2d;\n protected _visiable: boolean;\n protected controled: boolean;\n\n get displayWidth(): number {\n return this._pixelWidth / this._dpr;\n }\n\n get displayHeight(): number {\n return this._pixelHeight / this._dpr;\n }\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n set x(_x: number) {\n this._x = _x;\n }\n get y(): number {\n return this._y;\n }\n set y(_y: number) {\n this._y = _y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n this.resize(this._displayWidth, this._displayHeight);\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR,\n x,\n y,\n canvasControled = true\n } = params;\n const offsetX = 0;\n const offsetY = 0;\n this._x = x ?? offsetX;\n this._y = y ?? offsetY;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._id = nativeCanvas.id;\n\n this.init(params);\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n hide() {\n return;\n }\n show() {\n return;\n }\n\n abstract init(params: CanvasConfigType): void;\n\n applyPosition(): void {\n return;\n }\n\n resetStyle(params: Partial<CanvasConfigType>): void {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number): void {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n if (this.controled) {\n this._nativeCanvas.parentElement && this._nativeCanvas.parentElement.removeChild(this._nativeCanvas);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/base-canvas.ts"],"names":[],"mappings":"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","file":"base-canvas.js","sourcesContent":["import { injectable } from '../../common/inversify-lite';\nimport type { CanvasConfigType, ICanvas, IContext2d, EnvType } from '../../interface';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport abstract class BaseCanvas implements ICanvas {\n static env: EnvType = 'browser';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n protected _displayWidth: number; // 显示的宽度\n protected _displayHeight: number; // 显示的高度\n protected _id: number | string;\n // 像素宽高\n protected _pixelWidth: number; // 像素宽度\n protected _pixelHeight: number; // 像素高度\n\n protected _x: number;\n protected _y: number;\n protected _dpr: number;\n\n protected _container?: HTMLElement | null;\n protected _nativeCanvas: HTMLCanvasElement;\n protected _context: IContext2d;\n protected _visiable: boolean;\n protected controled: boolean;\n\n get displayWidth(): number {\n return this._pixelWidth / this._dpr;\n }\n\n get displayHeight(): number {\n return this._pixelHeight / this._dpr;\n }\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n set x(_x: number) {\n this._x = _x;\n }\n get y(): number {\n return this._y;\n }\n set y(_y: number) {\n this._y = _y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n this.resize(this._displayWidth, this._displayHeight);\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR,\n x,\n y,\n id,\n canvasControled = true\n } = params;\n const offsetX = 0;\n const offsetY = 0;\n this._x = x ?? offsetX;\n this._y = y ?? offsetY;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._id = nativeCanvas.id ?? id;\n if (id) {\n nativeCanvas.id = id;\n }\n\n this.init(params);\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n hide() {\n return;\n }\n show() {\n return;\n }\n\n abstract init(params: CanvasConfigType): void;\n\n applyPosition(): void {\n return;\n }\n\n resetStyle(params: Partial<CanvasConfigType>): void {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number): void {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n if (this.controled) {\n this._nativeCanvas.parentElement && this._nativeCanvas.parentElement.removeChild(this._nativeCanvas);\n }\n }\n}\n"]}