@visactor/vrender-core 1.0.47-alpha.0 → 1.1.0-alpha.1

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 (1271) hide show
  1. package/cjs/application.d.ts +14 -5
  2. package/cjs/application.js +1 -8
  3. package/cjs/application.js.map +1 -1
  4. package/cjs/canvas/empty-context.js +4 -14
  5. package/cjs/canvas/empty-context.js.map +1 -1
  6. package/cjs/canvas/util.d.ts +2 -3
  7. package/cjs/canvas/util.js +17 -3
  8. package/cjs/canvas/util.js.map +1 -1
  9. package/cjs/color-string/index.js +2 -1
  10. package/cjs/common/contribution-provider.d.ts +16 -9
  11. package/cjs/common/contribution-provider.js +9 -4
  12. package/cjs/common/contribution-provider.js.map +1 -1
  13. package/cjs/common/diff.js +1 -2
  14. package/cjs/common/enums.d.ts +2 -0
  15. package/cjs/common/enums.js +1 -0
  16. package/cjs/common/enums.js.map +1 -1
  17. package/cjs/common/event-transformer.js +43 -6
  18. package/cjs/common/event-transformer.js.map +1 -1
  19. package/cjs/common/explicit-binding.d.ts +5 -0
  20. package/cjs/common/explicit-binding.js +16 -0
  21. package/cjs/common/explicit-binding.js.map +1 -0
  22. package/cjs/common/performance-raf.d.ts +1 -0
  23. package/cjs/common/performance-raf.js +5 -0
  24. package/cjs/common/performance-raf.js.map +1 -1
  25. package/cjs/common/render-area.js +1 -1
  26. package/cjs/common/render-command-list.js +1 -1
  27. package/cjs/common/render-curve.js +1 -1
  28. package/cjs/common/render-utils.js +1 -1
  29. package/cjs/common/seg-context.js +1 -2
  30. package/cjs/common/simplify.js +1 -1
  31. package/cjs/common/sort.js +1 -1
  32. package/cjs/common/split-path.js +1 -1
  33. package/cjs/common/store.js +1 -1
  34. package/cjs/common/text.js +1 -1
  35. package/cjs/common/utils.js +1 -1
  36. package/cjs/core/application.js +1 -1
  37. package/cjs/core/camera.js +1 -1
  38. package/cjs/core/constants.js +1 -1
  39. package/cjs/core/contributions/env/base-contribution.js +4 -9
  40. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  41. package/cjs/core/contributions/env/modules.d.ts +4 -3
  42. package/cjs/core/contributions/env/modules.js +6 -4
  43. package/cjs/core/contributions/env/modules.js.map +1 -1
  44. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +3 -12
  45. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  46. package/cjs/core/contributions/layerHandler/empty-contribution.js +3 -12
  47. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  48. package/cjs/core/contributions/layerHandler/modules.d.ts +4 -3
  49. package/cjs/core/contributions/layerHandler/modules.js +6 -4
  50. package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
  51. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +3 -12
  52. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  53. package/cjs/core/contributions/modules.d.ts +2 -2
  54. package/cjs/core/contributions/modules.js +7 -1
  55. package/cjs/core/contributions/modules.js.map +1 -1
  56. package/cjs/core/contributions/textMeasure/AtextMeasure.js +3 -10
  57. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  58. package/cjs/core/contributions/textMeasure/modules.d.ts +4 -3
  59. package/cjs/core/contributions/textMeasure/modules.js +6 -4
  60. package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
  61. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js +3 -10
  62. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  63. package/cjs/core/contributions/window/base-contribution.js +3 -12
  64. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  65. package/cjs/core/core-modules.d.ts +4 -3
  66. package/cjs/core/core-modules.js +11 -7
  67. package/cjs/core/core-modules.js.map +1 -1
  68. package/cjs/core/global-module.js +2 -0
  69. package/cjs/core/global-module.js.map +1 -1
  70. package/cjs/core/global.d.ts +2 -0
  71. package/cjs/core/global.js +9 -18
  72. package/cjs/core/global.js.map +1 -1
  73. package/cjs/core/graphic-utils.d.ts +1 -2
  74. package/cjs/core/graphic-utils.js +8 -23
  75. package/cjs/core/graphic-utils.js.map +1 -1
  76. package/cjs/core/index.js +1 -1
  77. package/cjs/core/layer-service.d.ts +7 -2
  78. package/cjs/core/layer-service.js +29 -27
  79. package/cjs/core/layer-service.js.map +1 -1
  80. package/cjs/core/layer.js +1 -1
  81. package/cjs/core/layer.js.map +1 -1
  82. package/cjs/core/light.js +1 -1
  83. package/cjs/core/stage.d.ts +19 -7
  84. package/cjs/core/stage.js +50 -39
  85. package/cjs/core/stage.js.map +1 -1
  86. package/cjs/core/window.d.ts +7 -5
  87. package/cjs/core/window.js +14 -18
  88. package/cjs/core/window.js.map +1 -1
  89. package/cjs/create.d.ts +1 -2
  90. package/cjs/create.js +2 -2
  91. package/cjs/create.js.map +1 -1
  92. package/cjs/entries/app-context.d.ts +30 -0
  93. package/cjs/entries/app-context.js +84 -0
  94. package/cjs/entries/app-context.js.map +1 -0
  95. package/cjs/entries/browser.d.ts +25 -0
  96. package/cjs/entries/browser.js +44 -0
  97. package/cjs/entries/browser.js.map +1 -0
  98. package/cjs/entries/index.d.ts +7 -0
  99. package/cjs/entries/index.js +32 -0
  100. package/cjs/entries/index.js.map +1 -0
  101. package/cjs/entries/miniapp.d.ts +6 -0
  102. package/cjs/entries/miniapp.js +20 -0
  103. package/cjs/entries/miniapp.js.map +1 -0
  104. package/cjs/entries/node.d.ts +6 -0
  105. package/cjs/entries/node.js +20 -0
  106. package/cjs/entries/node.js.map +1 -0
  107. package/cjs/entries/runtime-installer.d.ts +11 -0
  108. package/cjs/entries/runtime-installer.js +111 -0
  109. package/cjs/entries/runtime-installer.js.map +1 -0
  110. package/cjs/entries/types.d.ts +29 -0
  111. package/cjs/{common/inversify-lite/interfaces/interfaces.js → entries/types.js} +1 -1
  112. package/cjs/entries/types.js.map +1 -0
  113. package/cjs/event/util.d.ts +1 -1
  114. package/cjs/factory/graphic-factory.d.ts +7 -0
  115. package/cjs/factory/graphic-factory.js +23 -0
  116. package/cjs/factory/graphic-factory.js.map +1 -0
  117. package/cjs/factory/index.d.ts +4 -0
  118. package/cjs/{common/inversify-lite → factory}/index.js +2 -1
  119. package/cjs/factory/index.js.map +1 -0
  120. package/cjs/factory/layer-factory.d.ts +7 -0
  121. package/cjs/factory/layer-factory.js +19 -0
  122. package/cjs/factory/layer-factory.js.map +1 -0
  123. package/cjs/factory/stage-factory.d.ts +8 -0
  124. package/cjs/factory/stage-factory.js +20 -0
  125. package/cjs/factory/stage-factory.js.map +1 -0
  126. package/cjs/factory/types.d.ts +34 -0
  127. package/cjs/{common/inversify/interfaces.js → factory/types.js} +1 -1
  128. package/cjs/factory/types.js.map +1 -0
  129. package/cjs/factory.d.ts +1 -0
  130. package/cjs/factory.js +16 -1
  131. package/cjs/factory.js.map +1 -1
  132. package/cjs/global.d.ts +2 -0
  133. package/cjs/global.js +11 -0
  134. package/cjs/global.js.map +1 -0
  135. package/cjs/graphic/area.js +1 -1
  136. package/cjs/graphic/area.js.map +1 -1
  137. package/cjs/graphic/bounds.js +3 -3
  138. package/cjs/graphic/bounds.js.map +1 -1
  139. package/cjs/graphic/config.js +0 -1
  140. package/cjs/graphic/config.js.map +1 -1
  141. package/cjs/graphic/glyph.js +9 -3
  142. package/cjs/graphic/glyph.js.map +1 -1
  143. package/cjs/graphic/graphic-creator.d.ts +9 -4
  144. package/cjs/graphic/graphic-creator.js +35 -7
  145. package/cjs/graphic/graphic-creator.js.map +1 -1
  146. package/cjs/graphic/graphic-service/graphic-module.d.ts +4 -3
  147. package/cjs/graphic/graphic-service/graphic-module.js +6 -4
  148. package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
  149. package/cjs/graphic/graphic-service/graphic-service.d.ts +2 -3
  150. package/cjs/graphic/graphic-service/graphic-service.js +5 -20
  151. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  152. package/cjs/graphic/graphic.d.ts +80 -11
  153. package/cjs/graphic/graphic.js +474 -152
  154. package/cjs/graphic/graphic.js.map +1 -1
  155. package/cjs/graphic/group.d.ts +11 -1
  156. package/cjs/graphic/group.js +46 -11
  157. package/cjs/graphic/group.js.map +1 -1
  158. package/cjs/graphic/index.d.ts +3 -0
  159. package/cjs/graphic/index.js +34 -15
  160. package/cjs/graphic/index.js.map +1 -1
  161. package/cjs/graphic/line.js +1 -1
  162. package/cjs/graphic/line.js.map +1 -1
  163. package/cjs/graphic/state/attribute-update-classifier.d.ts +13 -0
  164. package/cjs/graphic/state/attribute-update-classifier.js +67 -0
  165. package/cjs/graphic/state/attribute-update-classifier.js.map +1 -0
  166. package/cjs/graphic/state/shared-state-refresh.d.ts +6 -0
  167. package/cjs/graphic/state/shared-state-refresh.js +55 -0
  168. package/cjs/graphic/state/shared-state-refresh.js.map +1 -0
  169. package/cjs/graphic/state/shared-state-scope.d.ts +25 -0
  170. package/cjs/graphic/state/shared-state-scope.js +98 -0
  171. package/cjs/graphic/state/shared-state-scope.js.map +1 -0
  172. package/cjs/graphic/state/state-batch-scheduler.d.ts +42 -0
  173. package/cjs/graphic/state/state-batch-scheduler.js +285 -0
  174. package/cjs/graphic/state/state-batch-scheduler.js.map +1 -0
  175. package/cjs/graphic/state/state-definition-compiler.d.ts +6 -0
  176. package/cjs/graphic/state/state-definition-compiler.js +91 -0
  177. package/cjs/graphic/state/state-definition-compiler.js.map +1 -0
  178. package/cjs/graphic/state/state-definition.d.ts +44 -0
  179. package/cjs/graphic/state/state-definition.js +6 -0
  180. package/cjs/graphic/state/state-definition.js.map +1 -0
  181. package/cjs/graphic/state/state-engine.d.ts +38 -0
  182. package/cjs/graphic/state/state-engine.js +220 -0
  183. package/cjs/graphic/state/state-engine.js.map +1 -0
  184. package/cjs/graphic/state/state-model.d.ts +43 -0
  185. package/cjs/graphic/state/state-model.js +143 -0
  186. package/cjs/graphic/state/state-model.js.map +1 -0
  187. package/cjs/graphic/state/state-perf-monitor.d.ts +119 -0
  188. package/cjs/graphic/state/state-perf-monitor.js +217 -0
  189. package/cjs/graphic/state/state-perf-monitor.js.map +1 -0
  190. package/cjs/graphic/state/state-style-resolver.d.ts +22 -0
  191. package/cjs/graphic/state/state-style-resolver.js +73 -0
  192. package/cjs/graphic/state/state-style-resolver.js.map +1 -0
  193. package/cjs/graphic/state/state-transition-orchestrator.d.ts +41 -0
  194. package/cjs/graphic/state/state-transition-orchestrator.js +74 -0
  195. package/cjs/graphic/state/state-transition-orchestrator.js.map +1 -0
  196. package/cjs/graphic/text.d.ts +3 -2
  197. package/cjs/graphic/text.js +22 -14
  198. package/cjs/graphic/text.js.map +1 -1
  199. package/cjs/graphic/theme.d.ts +5 -0
  200. package/cjs/graphic/theme.js +7 -0
  201. package/cjs/graphic/theme.js.map +1 -1
  202. package/cjs/graphic/wrap-text.d.ts +1 -1
  203. package/cjs/graphic/wrap-text.js +17 -14
  204. package/cjs/graphic/wrap-text.js.map +1 -1
  205. package/cjs/index.d.ts +7 -4
  206. package/cjs/index.js +95 -25
  207. package/cjs/index.js.map +1 -1
  208. package/cjs/interface/global.d.ts +2 -0
  209. package/cjs/interface/global.js.map +1 -1
  210. package/cjs/interface/graphic/group.d.ts +6 -0
  211. package/cjs/interface/graphic/group.js.map +1 -1
  212. package/cjs/interface/graphic/theme.d.ts +3 -0
  213. package/cjs/interface/graphic/theme.js.map +1 -1
  214. package/cjs/interface/graphic.d.ts +24 -26
  215. package/cjs/interface/graphic.js.map +1 -1
  216. package/cjs/interface/plugin.d.ts +2 -0
  217. package/cjs/interface/plugin.js.map +1 -1
  218. package/cjs/interface/stage.d.ts +11 -3
  219. package/cjs/interface/stage.js.map +1 -1
  220. package/cjs/interface/theme-service.js.map +1 -1
  221. package/cjs/legacy/binding-context.d.ts +24 -0
  222. package/cjs/legacy/binding-context.js +98 -0
  223. package/cjs/legacy/binding-context.js.map +1 -0
  224. package/cjs/legacy/bootstrap.d.ts +10 -0
  225. package/cjs/legacy/bootstrap.js +72 -0
  226. package/cjs/legacy/bootstrap.js.map +1 -0
  227. package/cjs/legacy/module-types.d.ts +2 -0
  228. package/cjs/legacy/module-types.js +6 -0
  229. package/cjs/legacy/module-types.js.map +1 -0
  230. package/cjs/modules.d.ts +5 -6
  231. package/cjs/modules.js +54 -20
  232. package/cjs/modules.js.map +1 -1
  233. package/cjs/picker/global-picker-service.js +3 -12
  234. package/cjs/picker/global-picker-service.js.map +1 -1
  235. package/cjs/picker/pick-interceptor.js +9 -19
  236. package/cjs/picker/pick-interceptor.js.map +1 -1
  237. package/cjs/picker/pick-modules.d.ts +5 -3
  238. package/cjs/picker/pick-modules.js +6 -4
  239. package/cjs/picker/pick-modules.js.map +1 -1
  240. package/cjs/picker/picker-service.d.ts +13 -4
  241. package/cjs/picker/picker-service.js +16 -22
  242. package/cjs/picker/picker-service.js.map +1 -1
  243. package/cjs/plugins/base-plugin.d.ts +8 -0
  244. package/cjs/plugins/base-plugin.js +15 -0
  245. package/cjs/plugins/base-plugin.js.map +1 -0
  246. package/cjs/plugins/browser-env-plugin.d.ts +8 -0
  247. package/cjs/plugins/browser-env-plugin.js +24 -0
  248. package/cjs/plugins/browser-env-plugin.js.map +1 -0
  249. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
  250. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +25 -4
  251. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  252. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +3 -1
  253. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  254. package/cjs/plugins/index.d.ts +5 -0
  255. package/cjs/plugins/index.js +23 -0
  256. package/cjs/plugins/index.js.map +1 -0
  257. package/cjs/plugins/picker-plugin.d.ts +7 -0
  258. package/cjs/plugins/picker-plugin.js +19 -0
  259. package/cjs/plugins/picker-plugin.js.map +1 -0
  260. package/cjs/plugins/plugin-modules.d.ts +4 -3
  261. package/cjs/plugins/plugin-modules.js +6 -4
  262. package/cjs/plugins/plugin-modules.js.map +1 -1
  263. package/cjs/plugins/plugin-service.d.ts +16 -2
  264. package/cjs/plugins/plugin-service.js +24 -26
  265. package/cjs/plugins/plugin-service.js.map +1 -1
  266. package/cjs/plugins/renderer-plugin.d.ts +7 -0
  267. package/cjs/plugins/renderer-plugin.js +19 -0
  268. package/cjs/plugins/renderer-plugin.js.map +1 -0
  269. package/cjs/plugins/types.d.ts +28 -0
  270. package/cjs/plugins/types.js +6 -0
  271. package/cjs/plugins/types.js.map +1 -0
  272. package/cjs/register/register-arc.js +1 -1
  273. package/cjs/register/register-arc.js.map +1 -1
  274. package/cjs/register/register-arc3d.js +1 -1
  275. package/cjs/register/register-arc3d.js.map +1 -1
  276. package/cjs/register/register-area.js +1 -1
  277. package/cjs/register/register-area.js.map +1 -1
  278. package/cjs/register/register-circle.js +1 -1
  279. package/cjs/register/register-circle.js.map +1 -1
  280. package/cjs/register/register-glyph.js +1 -1
  281. package/cjs/register/register-glyph.js.map +1 -1
  282. package/cjs/register/register-group.js +1 -1
  283. package/cjs/register/register-group.js.map +1 -1
  284. package/cjs/register/register-image.js +1 -1
  285. package/cjs/register/register-image.js.map +1 -1
  286. package/cjs/register/register-line.js +1 -1
  287. package/cjs/register/register-line.js.map +1 -1
  288. package/cjs/register/register-path.js +1 -1
  289. package/cjs/register/register-path.js.map +1 -1
  290. package/cjs/register/register-polygon.js +1 -1
  291. package/cjs/register/register-polygon.js.map +1 -1
  292. package/cjs/register/register-pyramid3d.js +1 -1
  293. package/cjs/register/register-pyramid3d.js.map +1 -1
  294. package/cjs/register/register-rect.js +1 -1
  295. package/cjs/register/register-rect.js.map +1 -1
  296. package/cjs/register/register-rect3d.js +1 -1
  297. package/cjs/register/register-rect3d.js.map +1 -1
  298. package/cjs/register/register-richtext.js +1 -1
  299. package/cjs/register/register-richtext.js.map +1 -1
  300. package/cjs/register/register-shadowRoot.js +1 -1
  301. package/cjs/register/register-shadowRoot.js.map +1 -1
  302. package/cjs/register/register-star.js +1 -1
  303. package/cjs/register/register-star.js.map +1 -1
  304. package/cjs/register/register-symbol.js +1 -1
  305. package/cjs/register/register-symbol.js.map +1 -1
  306. package/cjs/register/register-text.js +1 -1
  307. package/cjs/register/register-text.js.map +1 -1
  308. package/cjs/register/register-wraptext.js +1 -1
  309. package/cjs/register/register-wraptext.js.map +1 -1
  310. package/cjs/registry/contribution-registry.d.ts +9 -0
  311. package/cjs/registry/contribution-registry.js +33 -0
  312. package/cjs/registry/contribution-registry.js.map +1 -0
  313. package/cjs/registry/index.d.ts +5 -0
  314. package/cjs/registry/index.js +23 -0
  315. package/cjs/registry/index.js.map +1 -0
  316. package/cjs/registry/picker-registry.d.ts +10 -0
  317. package/cjs/registry/picker-registry.js +29 -0
  318. package/cjs/registry/picker-registry.js.map +1 -0
  319. package/cjs/registry/plugin-registry.d.ts +10 -0
  320. package/cjs/registry/plugin-registry.js +29 -0
  321. package/cjs/registry/plugin-registry.js.map +1 -0
  322. package/cjs/registry/renderer-registry.d.ts +11 -0
  323. package/cjs/registry/renderer-registry.js +37 -0
  324. package/cjs/registry/renderer-registry.js.map +1 -0
  325. package/cjs/registry/types.d.ts +34 -0
  326. package/cjs/registry/types.js +6 -0
  327. package/cjs/registry/types.js.map +1 -0
  328. package/cjs/render/contributions/modules.d.ts +2 -2
  329. package/cjs/render/contributions/modules.js +3 -1
  330. package/cjs/render/contributions/modules.js.map +1 -1
  331. package/cjs/render/contributions/render/arc-module.d.ts +4 -2
  332. package/cjs/render/contributions/render/arc-module.js +6 -4
  333. package/cjs/render/contributions/render/arc-module.js.map +1 -1
  334. package/cjs/render/contributions/render/arc-render.js +4 -19
  335. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  336. package/cjs/render/contributions/render/arc3d-module.d.ts +4 -2
  337. package/cjs/render/contributions/render/arc3d-module.js +6 -4
  338. package/cjs/render/contributions/render/arc3d-module.js.map +1 -1
  339. package/cjs/render/contributions/render/arc3d-render.js +3 -10
  340. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  341. package/cjs/render/contributions/render/area-module.d.ts +4 -2
  342. package/cjs/render/contributions/render/area-module.js +6 -4
  343. package/cjs/render/contributions/render/area-module.js.map +1 -1
  344. package/cjs/render/contributions/render/area-render.js +4 -19
  345. package/cjs/render/contributions/render/area-render.js.map +1 -1
  346. package/cjs/render/contributions/render/base-render.js +9 -5
  347. package/cjs/render/contributions/render/base-render.js.map +1 -1
  348. package/cjs/render/contributions/render/circle-module.d.ts +4 -2
  349. package/cjs/render/contributions/render/circle-module.js +6 -4
  350. package/cjs/render/contributions/render/circle-module.js.map +1 -1
  351. package/cjs/render/contributions/render/circle-render.js +3 -18
  352. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  353. package/cjs/render/contributions/render/contributions/base-contribution-render.js +3 -18
  354. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  355. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +5 -13
  356. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  357. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  358. package/cjs/render/contributions/render/draw-contribution.d.ts +13 -4
  359. package/cjs/render/contributions/render/draw-contribution.js +22 -22
  360. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  361. package/cjs/render/contributions/render/draw-interceptor.js +5 -15
  362. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  363. package/cjs/render/contributions/render/glyph-module.d.ts +4 -2
  364. package/cjs/render/contributions/render/glyph-module.js +6 -4
  365. package/cjs/render/contributions/render/glyph-module.js.map +1 -1
  366. package/cjs/render/contributions/render/glyph-render.js +3 -10
  367. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  368. package/cjs/render/contributions/render/graphic-render.js +1 -10
  369. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  370. package/cjs/render/contributions/render/group-render.js +4 -19
  371. package/cjs/render/contributions/render/group-render.js.map +1 -1
  372. package/cjs/render/contributions/render/image-module.d.ts +4 -2
  373. package/cjs/render/contributions/render/image-module.js +6 -4
  374. package/cjs/render/contributions/render/image-module.js.map +1 -1
  375. package/cjs/render/contributions/render/image-render.d.ts +2 -2
  376. package/cjs/render/contributions/render/image-render.js +14 -30
  377. package/cjs/render/contributions/render/image-render.js.map +1 -1
  378. package/cjs/render/contributions/render/incremental-area-render.js +3 -10
  379. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  380. package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +2 -2
  381. package/cjs/render/contributions/render/incremental-draw-contribution.js +4 -19
  382. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  383. package/cjs/render/contributions/render/incremental-line-render.js +3 -10
  384. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  385. package/cjs/render/contributions/render/line-module.d.ts +4 -2
  386. package/cjs/render/contributions/render/line-module.js +6 -4
  387. package/cjs/render/contributions/render/line-module.js.map +1 -1
  388. package/cjs/render/contributions/render/line-render.js +3 -10
  389. package/cjs/render/contributions/render/line-render.js.map +1 -1
  390. package/cjs/render/contributions/render/module.d.ts +4 -3
  391. package/cjs/render/contributions/render/module.js +10 -6
  392. package/cjs/render/contributions/render/module.js.map +1 -1
  393. package/cjs/render/contributions/render/path-module.d.ts +4 -2
  394. package/cjs/render/contributions/render/path-module.js +6 -4
  395. package/cjs/render/contributions/render/path-module.js.map +1 -1
  396. package/cjs/render/contributions/render/path-render.js +3 -18
  397. package/cjs/render/contributions/render/path-render.js.map +1 -1
  398. package/cjs/render/contributions/render/polygon-module.d.ts +4 -2
  399. package/cjs/render/contributions/render/polygon-module.js +6 -4
  400. package/cjs/render/contributions/render/polygon-module.js.map +1 -1
  401. package/cjs/render/contributions/render/polygon-render.js +3 -18
  402. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  403. package/cjs/render/contributions/render/pyramid3d-module.d.ts +4 -2
  404. package/cjs/render/contributions/render/pyramid3d-module.js +6 -4
  405. package/cjs/render/contributions/render/pyramid3d-module.js.map +1 -1
  406. package/cjs/render/contributions/render/pyramid3d-render.js +3 -10
  407. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  408. package/cjs/render/contributions/render/rect-module.d.ts +4 -2
  409. package/cjs/render/contributions/render/rect-module.js +11 -8
  410. package/cjs/render/contributions/render/rect-module.js.map +1 -1
  411. package/cjs/render/contributions/render/rect-render.js +3 -18
  412. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  413. package/cjs/render/contributions/render/rect3d-module.d.ts +4 -2
  414. package/cjs/render/contributions/render/rect3d-module.js +6 -4
  415. package/cjs/render/contributions/render/rect3d-module.js.map +1 -1
  416. package/cjs/render/contributions/render/rect3d-render.js +3 -10
  417. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  418. package/cjs/render/contributions/render/render-slector.js.map +1 -1
  419. package/cjs/render/contributions/render/richtext-module.d.ts +4 -2
  420. package/cjs/render/contributions/render/richtext-module.js +6 -4
  421. package/cjs/render/contributions/render/richtext-module.js.map +1 -1
  422. package/cjs/render/contributions/render/richtext-render.js +3 -12
  423. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  424. package/cjs/render/contributions/render/star-module.d.ts +4 -2
  425. package/cjs/render/contributions/render/star-module.js +9 -6
  426. package/cjs/render/contributions/render/star-module.js.map +1 -1
  427. package/cjs/render/contributions/render/star-render.js +3 -18
  428. package/cjs/render/contributions/render/star-render.js.map +1 -1
  429. package/cjs/render/contributions/render/symbol-module.d.ts +4 -2
  430. package/cjs/render/contributions/render/symbol-module.js +6 -4
  431. package/cjs/render/contributions/render/symbol-module.js.map +1 -1
  432. package/cjs/render/contributions/render/symbol-render.js +3 -18
  433. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  434. package/cjs/render/contributions/render/text-module.d.ts +4 -2
  435. package/cjs/render/contributions/render/text-module.js +6 -4
  436. package/cjs/render/contributions/render/text-module.js.map +1 -1
  437. package/cjs/render/contributions/render/text-render.js +3 -18
  438. package/cjs/render/contributions/render/text-render.js.map +1 -1
  439. package/cjs/render/render-modules.d.ts +4 -3
  440. package/cjs/render/render-modules.js +6 -4
  441. package/cjs/render/render-modules.js.map +1 -1
  442. package/cjs/render/render-service.d.ts +1 -1
  443. package/cjs/render/render-service.js +4 -18
  444. package/cjs/render/render-service.js.map +1 -1
  445. package/dist/index.es.js +22505 -20114
  446. package/es/application.d.ts +14 -5
  447. package/es/application.js +1 -10
  448. package/es/application.js.map +1 -1
  449. package/es/canvas/empty-context.js +2 -17
  450. package/es/canvas/empty-context.js.map +1 -1
  451. package/es/canvas/util.d.ts +2 -3
  452. package/es/canvas/util.js +15 -5
  453. package/es/canvas/util.js.map +1 -1
  454. package/es/color-string/index.js +2 -1
  455. package/es/common/contribution-provider.d.ts +16 -9
  456. package/es/common/contribution-provider.js +6 -2
  457. package/es/common/contribution-provider.js.map +1 -1
  458. package/es/common/diff.js +1 -2
  459. package/es/common/enums.d.ts +2 -0
  460. package/es/common/enums.js +1 -0
  461. package/es/common/enums.js.map +1 -1
  462. package/es/common/event-transformer.js +43 -6
  463. package/es/common/event-transformer.js.map +1 -1
  464. package/es/common/explicit-binding.d.ts +5 -0
  465. package/es/common/explicit-binding.js +10 -0
  466. package/es/common/explicit-binding.js.map +1 -0
  467. package/es/common/performance-raf.d.ts +1 -0
  468. package/es/common/performance-raf.js +5 -0
  469. package/es/common/performance-raf.js.map +1 -1
  470. package/es/common/render-area.js +1 -1
  471. package/es/common/render-command-list.js +1 -1
  472. package/es/common/render-curve.js +1 -1
  473. package/es/common/render-utils.js +1 -1
  474. package/es/common/seg-context.js +1 -2
  475. package/es/common/simplify.js +1 -1
  476. package/es/common/sort.js +1 -1
  477. package/es/common/split-path.js +1 -1
  478. package/es/common/store.js +1 -1
  479. package/es/common/text.js +1 -1
  480. package/es/common/utils.js +1 -1
  481. package/es/core/application.js +1 -1
  482. package/es/core/camera.js +1 -1
  483. package/es/core/constants.js +1 -1
  484. package/es/core/contributions/env/base-contribution.js +3 -13
  485. package/es/core/contributions/env/base-contribution.js.map +1 -1
  486. package/es/core/contributions/env/modules.d.ts +4 -3
  487. package/es/core/contributions/env/modules.js +4 -4
  488. package/es/core/contributions/env/modules.js.map +1 -1
  489. package/es/core/contributions/layerHandler/canvas2d-contribution.js +2 -16
  490. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  491. package/es/core/contributions/layerHandler/empty-contribution.js +2 -16
  492. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  493. package/es/core/contributions/layerHandler/modules.d.ts +4 -3
  494. package/es/core/contributions/layerHandler/modules.js +4 -4
  495. package/es/core/contributions/layerHandler/modules.js.map +1 -1
  496. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +2 -16
  497. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  498. package/es/core/contributions/modules.d.ts +2 -2
  499. package/es/core/contributions/modules.js +7 -1
  500. package/es/core/contributions/modules.js.map +1 -1
  501. package/es/core/contributions/textMeasure/AtextMeasure.js +2 -14
  502. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  503. package/es/core/contributions/textMeasure/modules.d.ts +4 -3
  504. package/es/core/contributions/textMeasure/modules.js +4 -4
  505. package/es/core/contributions/textMeasure/modules.js.map +1 -1
  506. package/es/core/contributions/textMeasure/textMeasure-contribution.js +2 -14
  507. package/es/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  508. package/es/core/contributions/window/base-contribution.js +2 -16
  509. package/es/core/contributions/window/base-contribution.js.map +1 -1
  510. package/es/core/core-modules.d.ts +4 -3
  511. package/es/core/core-modules.js +13 -9
  512. package/es/core/core-modules.js.map +1 -1
  513. package/es/core/global-module.js +2 -0
  514. package/es/core/global-module.js.map +1 -1
  515. package/es/core/global.d.ts +2 -0
  516. package/es/core/global.js +8 -24
  517. package/es/core/global.js.map +1 -1
  518. package/es/core/graphic-utils.d.ts +1 -2
  519. package/es/core/graphic-utils.js +8 -35
  520. package/es/core/graphic-utils.js.map +1 -1
  521. package/es/core/index.js +1 -1
  522. package/es/core/layer-service.d.ts +7 -2
  523. package/es/core/layer-service.js +28 -34
  524. package/es/core/layer-service.js.map +1 -1
  525. package/es/core/layer.js +1 -1
  526. package/es/core/layer.js.map +1 -1
  527. package/es/core/light.js +1 -1
  528. package/es/core/stage.d.ts +19 -7
  529. package/es/core/stage.js +64 -48
  530. package/es/core/stage.js.map +1 -1
  531. package/es/core/window.d.ts +7 -5
  532. package/es/core/window.js +13 -25
  533. package/es/core/window.js.map +1 -1
  534. package/es/create.d.ts +1 -2
  535. package/es/create.js +4 -2
  536. package/es/create.js.map +1 -1
  537. package/es/entries/app-context.d.ts +30 -0
  538. package/es/entries/app-context.js +86 -0
  539. package/es/entries/app-context.js.map +1 -0
  540. package/es/entries/browser.d.ts +25 -0
  541. package/es/entries/browser.js +36 -0
  542. package/es/entries/browser.js.map +1 -0
  543. package/es/entries/index.d.ts +7 -0
  544. package/es/entries/index.js +14 -0
  545. package/es/entries/index.js.map +1 -0
  546. package/es/entries/miniapp.d.ts +6 -0
  547. package/es/entries/miniapp.js +12 -0
  548. package/es/entries/miniapp.js.map +1 -0
  549. package/es/entries/node.d.ts +6 -0
  550. package/es/entries/node.js +12 -0
  551. package/es/entries/node.js.map +1 -0
  552. package/es/entries/runtime-installer.d.ts +11 -0
  553. package/es/entries/runtime-installer.js +130 -0
  554. package/es/entries/runtime-installer.js.map +1 -0
  555. package/es/entries/types.d.ts +29 -0
  556. package/es/entries/types.js +2 -0
  557. package/es/entries/types.js.map +1 -0
  558. package/es/event/util.d.ts +1 -1
  559. package/es/factory/graphic-factory.d.ts +7 -0
  560. package/es/factory/graphic-factory.js +15 -0
  561. package/es/factory/graphic-factory.js.map +1 -0
  562. package/es/factory/index.d.ts +4 -0
  563. package/es/factory/index.js +8 -0
  564. package/es/factory/index.js.map +1 -0
  565. package/es/factory/layer-factory.d.ts +7 -0
  566. package/es/factory/layer-factory.js +11 -0
  567. package/es/factory/layer-factory.js.map +1 -0
  568. package/es/factory/stage-factory.d.ts +8 -0
  569. package/es/factory/stage-factory.js +12 -0
  570. package/es/factory/stage-factory.js.map +1 -0
  571. package/es/factory/types.d.ts +34 -0
  572. package/es/factory/types.js +2 -0
  573. package/es/factory/types.js.map +1 -0
  574. package/es/factory.d.ts +1 -0
  575. package/es/factory.js +2 -0
  576. package/es/factory.js.map +1 -1
  577. package/es/global.d.ts +2 -0
  578. package/es/global.js +10 -0
  579. package/es/global.js.map +1 -0
  580. package/es/graphic/area.js +1 -1
  581. package/es/graphic/area.js.map +1 -1
  582. package/es/graphic/bounds.js +3 -3
  583. package/es/graphic/bounds.js.map +1 -1
  584. package/es/graphic/config.js +0 -1
  585. package/es/graphic/config.js.map +1 -1
  586. package/es/graphic/glyph.js +9 -3
  587. package/es/graphic/glyph.js.map +1 -1
  588. package/es/graphic/graphic-creator.d.ts +9 -4
  589. package/es/graphic/graphic-creator.js +32 -5
  590. package/es/graphic/graphic-creator.js.map +1 -1
  591. package/es/graphic/graphic-service/graphic-module.d.ts +4 -3
  592. package/es/graphic/graphic-service/graphic-module.js +4 -4
  593. package/es/graphic/graphic-service/graphic-module.js.map +1 -1
  594. package/es/graphic/graphic-service/graphic-service.d.ts +2 -3
  595. package/es/graphic/graphic-service/graphic-service.js +6 -25
  596. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  597. package/es/graphic/graphic.d.ts +80 -11
  598. package/es/graphic/graphic.js +473 -139
  599. package/es/graphic/graphic.js.map +1 -1
  600. package/es/graphic/group.d.ts +11 -1
  601. package/es/graphic/group.js +46 -10
  602. package/es/graphic/group.js.map +1 -1
  603. package/es/graphic/index.d.ts +3 -0
  604. package/es/graphic/index.js +4 -0
  605. package/es/graphic/index.js.map +1 -1
  606. package/es/graphic/line.js +1 -1
  607. package/es/graphic/line.js.map +1 -1
  608. package/es/graphic/state/attribute-update-classifier.d.ts +13 -0
  609. package/es/graphic/state/attribute-update-classifier.js +61 -0
  610. package/es/graphic/state/attribute-update-classifier.js.map +1 -0
  611. package/es/graphic/state/shared-state-refresh.d.ts +6 -0
  612. package/es/graphic/state/shared-state-refresh.js +46 -0
  613. package/es/graphic/state/shared-state-refresh.js.map +1 -0
  614. package/es/graphic/state/shared-state-scope.d.ts +25 -0
  615. package/es/graphic/state/shared-state-scope.js +90 -0
  616. package/es/graphic/state/shared-state-scope.js.map +1 -0
  617. package/es/graphic/state/state-batch-scheduler.d.ts +42 -0
  618. package/es/graphic/state/state-batch-scheduler.js +278 -0
  619. package/es/graphic/state/state-batch-scheduler.js.map +1 -0
  620. package/es/graphic/state/state-definition-compiler.d.ts +6 -0
  621. package/es/graphic/state/state-definition-compiler.js +83 -0
  622. package/es/graphic/state/state-definition-compiler.js.map +1 -0
  623. package/es/graphic/state/state-definition.d.ts +44 -0
  624. package/es/graphic/state/state-definition.js +2 -0
  625. package/es/graphic/state/state-definition.js.map +1 -0
  626. package/es/graphic/state/state-engine.d.ts +38 -0
  627. package/es/graphic/state/state-engine.js +212 -0
  628. package/es/graphic/state/state-engine.js.map +1 -0
  629. package/es/graphic/state/state-model.d.ts +43 -0
  630. package/es/graphic/state/state-model.js +135 -0
  631. package/es/graphic/state/state-model.js.map +1 -0
  632. package/es/graphic/state/state-perf-monitor.d.ts +119 -0
  633. package/es/graphic/state/state-perf-monitor.js +207 -0
  634. package/es/graphic/state/state-perf-monitor.js.map +1 -0
  635. package/es/graphic/state/state-style-resolver.d.ts +22 -0
  636. package/es/graphic/state/state-style-resolver.js +65 -0
  637. package/es/graphic/state/state-style-resolver.js.map +1 -0
  638. package/es/graphic/state/state-transition-orchestrator.d.ts +41 -0
  639. package/es/graphic/state/state-transition-orchestrator.js +68 -0
  640. package/es/graphic/state/state-transition-orchestrator.js.map +1 -0
  641. package/es/graphic/text.d.ts +3 -2
  642. package/es/graphic/text.js +22 -13
  643. package/es/graphic/text.js.map +1 -1
  644. package/es/graphic/theme.d.ts +5 -0
  645. package/es/graphic/theme.js +7 -0
  646. package/es/graphic/theme.js.map +1 -1
  647. package/es/graphic/wrap-text.d.ts +1 -1
  648. package/es/graphic/wrap-text.js +18 -13
  649. package/es/graphic/wrap-text.js.map +1 -1
  650. package/es/index.d.ts +7 -4
  651. package/es/index.js +12 -6
  652. package/es/index.js.map +1 -1
  653. package/es/interface/global.d.ts +2 -0
  654. package/es/interface/global.js.map +1 -1
  655. package/es/interface/graphic/group.d.ts +6 -0
  656. package/es/interface/graphic/group.js.map +1 -1
  657. package/es/interface/graphic/theme.d.ts +3 -0
  658. package/es/interface/graphic/theme.js.map +1 -1
  659. package/es/interface/graphic.d.ts +24 -26
  660. package/es/interface/graphic.js.map +1 -1
  661. package/es/interface/plugin.d.ts +2 -0
  662. package/es/interface/plugin.js.map +1 -1
  663. package/es/interface/stage.d.ts +11 -3
  664. package/es/interface/stage.js.map +1 -1
  665. package/es/interface/theme-service.js.map +1 -1
  666. package/es/legacy/binding-context.d.ts +24 -0
  667. package/es/legacy/binding-context.js +90 -0
  668. package/es/legacy/binding-context.js.map +1 -0
  669. package/es/legacy/bootstrap.d.ts +10 -0
  670. package/es/legacy/bootstrap.js +73 -0
  671. package/es/legacy/bootstrap.js.map +1 -0
  672. package/es/legacy/module-types.d.ts +2 -0
  673. package/es/legacy/module-types.js +2 -0
  674. package/es/legacy/module-types.js.map +1 -0
  675. package/es/modules.d.ts +5 -6
  676. package/es/modules.js +37 -33
  677. package/es/modules.js.map +1 -1
  678. package/es/picker/global-picker-service.js +2 -16
  679. package/es/picker/global-picker-service.js.map +1 -1
  680. package/es/picker/pick-interceptor.js +8 -32
  681. package/es/picker/pick-interceptor.js.map +1 -1
  682. package/es/picker/pick-modules.d.ts +5 -3
  683. package/es/picker/pick-modules.js +4 -4
  684. package/es/picker/pick-modules.js.map +1 -1
  685. package/es/picker/picker-service.d.ts +13 -4
  686. package/es/picker/picker-service.js +16 -26
  687. package/es/picker/picker-service.js.map +1 -1
  688. package/es/plugins/base-plugin.d.ts +8 -0
  689. package/es/plugins/base-plugin.js +7 -0
  690. package/es/plugins/base-plugin.js.map +1 -0
  691. package/es/plugins/browser-env-plugin.d.ts +8 -0
  692. package/es/plugins/browser-env-plugin.js +16 -0
  693. package/es/plugins/browser-env-plugin.js.map +1 -0
  694. package/es/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
  695. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +26 -3
  696. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  697. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +3 -1
  698. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  699. package/es/plugins/index.d.ts +5 -0
  700. package/es/plugins/index.js +10 -0
  701. package/es/plugins/index.js.map +1 -0
  702. package/es/plugins/picker-plugin.d.ts +7 -0
  703. package/es/plugins/picker-plugin.js +11 -0
  704. package/es/plugins/picker-plugin.js.map +1 -0
  705. package/es/plugins/plugin-modules.d.ts +4 -3
  706. package/es/plugins/plugin-modules.js +4 -4
  707. package/es/plugins/plugin-modules.js.map +1 -1
  708. package/es/plugins/plugin-service.d.ts +16 -2
  709. package/es/plugins/plugin-service.js +25 -32
  710. package/es/plugins/plugin-service.js.map +1 -1
  711. package/es/plugins/renderer-plugin.d.ts +7 -0
  712. package/es/plugins/renderer-plugin.js +11 -0
  713. package/es/plugins/renderer-plugin.js.map +1 -0
  714. package/es/plugins/types.d.ts +28 -0
  715. package/es/plugins/types.js +2 -0
  716. package/es/plugins/types.js.map +1 -0
  717. package/es/register/register-arc.js +2 -2
  718. package/es/register/register-arc.js.map +1 -1
  719. package/es/register/register-arc3d.js +2 -2
  720. package/es/register/register-arc3d.js.map +1 -1
  721. package/es/register/register-area.js +2 -2
  722. package/es/register/register-area.js.map +1 -1
  723. package/es/register/register-circle.js +2 -2
  724. package/es/register/register-circle.js.map +1 -1
  725. package/es/register/register-glyph.js +2 -2
  726. package/es/register/register-glyph.js.map +1 -1
  727. package/es/register/register-group.js +2 -2
  728. package/es/register/register-group.js.map +1 -1
  729. package/es/register/register-image.js +2 -2
  730. package/es/register/register-image.js.map +1 -1
  731. package/es/register/register-line.js +2 -2
  732. package/es/register/register-line.js.map +1 -1
  733. package/es/register/register-path.js +2 -2
  734. package/es/register/register-path.js.map +1 -1
  735. package/es/register/register-polygon.js +2 -2
  736. package/es/register/register-polygon.js.map +1 -1
  737. package/es/register/register-pyramid3d.js +2 -2
  738. package/es/register/register-pyramid3d.js.map +1 -1
  739. package/es/register/register-rect.js +2 -2
  740. package/es/register/register-rect.js.map +1 -1
  741. package/es/register/register-rect3d.js +2 -2
  742. package/es/register/register-rect3d.js.map +1 -1
  743. package/es/register/register-richtext.js +2 -2
  744. package/es/register/register-richtext.js.map +1 -1
  745. package/es/register/register-shadowRoot.js +2 -2
  746. package/es/register/register-shadowRoot.js.map +1 -1
  747. package/es/register/register-star.js +2 -2
  748. package/es/register/register-star.js.map +1 -1
  749. package/es/register/register-symbol.js +2 -2
  750. package/es/register/register-symbol.js.map +1 -1
  751. package/es/register/register-text.js +2 -2
  752. package/es/register/register-text.js.map +1 -1
  753. package/es/register/register-wraptext.js +2 -2
  754. package/es/register/register-wraptext.js.map +1 -1
  755. package/es/registry/contribution-registry.d.ts +9 -0
  756. package/es/registry/contribution-registry.js +25 -0
  757. package/es/registry/contribution-registry.js.map +1 -0
  758. package/es/registry/index.d.ts +5 -0
  759. package/es/registry/index.js +10 -0
  760. package/es/registry/index.js.map +1 -0
  761. package/es/registry/picker-registry.d.ts +10 -0
  762. package/es/registry/picker-registry.js +21 -0
  763. package/es/registry/picker-registry.js.map +1 -0
  764. package/es/registry/plugin-registry.d.ts +10 -0
  765. package/es/registry/plugin-registry.js +21 -0
  766. package/es/registry/plugin-registry.js.map +1 -0
  767. package/es/registry/renderer-registry.d.ts +11 -0
  768. package/es/registry/renderer-registry.js +29 -0
  769. package/es/registry/renderer-registry.js.map +1 -0
  770. package/es/registry/types.d.ts +34 -0
  771. package/es/registry/types.js +2 -0
  772. package/es/registry/types.js.map +1 -0
  773. package/es/render/contributions/modules.d.ts +2 -2
  774. package/es/render/contributions/modules.js +3 -1
  775. package/es/render/contributions/modules.js.map +1 -1
  776. package/es/render/contributions/render/arc-module.d.ts +4 -2
  777. package/es/render/contributions/render/arc-module.js +4 -4
  778. package/es/render/contributions/render/arc-module.js.map +1 -1
  779. package/es/render/contributions/render/arc-render.js +2 -24
  780. package/es/render/contributions/render/arc-render.js.map +1 -1
  781. package/es/render/contributions/render/arc3d-module.d.ts +4 -2
  782. package/es/render/contributions/render/arc3d-module.js +4 -4
  783. package/es/render/contributions/render/arc3d-module.js.map +1 -1
  784. package/es/render/contributions/render/arc3d-render.js +2 -14
  785. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  786. package/es/render/contributions/render/area-module.d.ts +4 -2
  787. package/es/render/contributions/render/area-module.js +4 -4
  788. package/es/render/contributions/render/area-module.js.map +1 -1
  789. package/es/render/contributions/render/area-render.js +2 -24
  790. package/es/render/contributions/render/area-render.js.map +1 -1
  791. package/es/render/contributions/render/base-render.js +8 -5
  792. package/es/render/contributions/render/base-render.js.map +1 -1
  793. package/es/render/contributions/render/circle-module.d.ts +4 -2
  794. package/es/render/contributions/render/circle-module.js +4 -4
  795. package/es/render/contributions/render/circle-module.js.map +1 -1
  796. package/es/render/contributions/render/circle-render.js +2 -24
  797. package/es/render/contributions/render/circle-render.js.map +1 -1
  798. package/es/render/contributions/render/contributions/base-contribution-render.js +2 -24
  799. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  800. package/es/render/contributions/render/contributions/rect-contribution-render.js +4 -20
  801. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  802. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  803. package/es/render/contributions/render/draw-contribution.d.ts +13 -4
  804. package/es/render/contributions/render/draw-contribution.js +24 -34
  805. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  806. package/es/render/contributions/render/draw-interceptor.js +4 -19
  807. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  808. package/es/render/contributions/render/glyph-module.d.ts +4 -2
  809. package/es/render/contributions/render/glyph-module.js +4 -4
  810. package/es/render/contributions/render/glyph-module.js.map +1 -1
  811. package/es/render/contributions/render/glyph-render.js +2 -14
  812. package/es/render/contributions/render/glyph-render.js.map +1 -1
  813. package/es/render/contributions/render/graphic-render.js +1 -13
  814. package/es/render/contributions/render/graphic-render.js.map +1 -1
  815. package/es/render/contributions/render/group-render.js +2 -24
  816. package/es/render/contributions/render/group-render.js.map +1 -1
  817. package/es/render/contributions/render/image-module.d.ts +4 -2
  818. package/es/render/contributions/render/image-module.js +4 -4
  819. package/es/render/contributions/render/image-module.js.map +1 -1
  820. package/es/render/contributions/render/image-render.d.ts +2 -2
  821. package/es/render/contributions/render/image-render.js +9 -31
  822. package/es/render/contributions/render/image-render.js.map +1 -1
  823. package/es/render/contributions/render/incremental-area-render.js +2 -14
  824. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  825. package/es/render/contributions/render/incremental-draw-contribution.d.ts +2 -2
  826. package/es/render/contributions/render/incremental-draw-contribution.js +3 -29
  827. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  828. package/es/render/contributions/render/incremental-line-render.js +2 -14
  829. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  830. package/es/render/contributions/render/line-module.d.ts +4 -2
  831. package/es/render/contributions/render/line-module.js +4 -4
  832. package/es/render/contributions/render/line-module.js.map +1 -1
  833. package/es/render/contributions/render/line-render.js +2 -14
  834. package/es/render/contributions/render/line-render.js.map +1 -1
  835. package/es/render/contributions/render/module.d.ts +4 -3
  836. package/es/render/contributions/render/module.js +10 -10
  837. package/es/render/contributions/render/module.js.map +1 -1
  838. package/es/render/contributions/render/path-module.d.ts +4 -2
  839. package/es/render/contributions/render/path-module.js +4 -4
  840. package/es/render/contributions/render/path-module.js.map +1 -1
  841. package/es/render/contributions/render/path-render.js +2 -24
  842. package/es/render/contributions/render/path-render.js.map +1 -1
  843. package/es/render/contributions/render/polygon-module.d.ts +4 -2
  844. package/es/render/contributions/render/polygon-module.js +4 -4
  845. package/es/render/contributions/render/polygon-module.js.map +1 -1
  846. package/es/render/contributions/render/polygon-render.js +2 -24
  847. package/es/render/contributions/render/polygon-render.js.map +1 -1
  848. package/es/render/contributions/render/pyramid3d-module.d.ts +4 -2
  849. package/es/render/contributions/render/pyramid3d-module.js +4 -4
  850. package/es/render/contributions/render/pyramid3d-module.js.map +1 -1
  851. package/es/render/contributions/render/pyramid3d-render.js +2 -14
  852. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  853. package/es/render/contributions/render/rect-module.d.ts +4 -2
  854. package/es/render/contributions/render/rect-module.js +7 -7
  855. package/es/render/contributions/render/rect-module.js.map +1 -1
  856. package/es/render/contributions/render/rect-render.js +2 -24
  857. package/es/render/contributions/render/rect-render.js.map +1 -1
  858. package/es/render/contributions/render/rect3d-module.d.ts +4 -2
  859. package/es/render/contributions/render/rect3d-module.js +4 -4
  860. package/es/render/contributions/render/rect3d-module.js.map +1 -1
  861. package/es/render/contributions/render/rect3d-render.js +2 -14
  862. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  863. package/es/render/contributions/render/render-slector.js.map +1 -1
  864. package/es/render/contributions/render/richtext-module.d.ts +4 -2
  865. package/es/render/contributions/render/richtext-module.js +4 -4
  866. package/es/render/contributions/render/richtext-module.js.map +1 -1
  867. package/es/render/contributions/render/richtext-render.js +2 -16
  868. package/es/render/contributions/render/richtext-render.js.map +1 -1
  869. package/es/render/contributions/render/star-module.d.ts +4 -2
  870. package/es/render/contributions/render/star-module.js +9 -5
  871. package/es/render/contributions/render/star-module.js.map +1 -1
  872. package/es/render/contributions/render/star-render.js +2 -24
  873. package/es/render/contributions/render/star-render.js.map +1 -1
  874. package/es/render/contributions/render/symbol-module.d.ts +4 -2
  875. package/es/render/contributions/render/symbol-module.js +4 -4
  876. package/es/render/contributions/render/symbol-module.js.map +1 -1
  877. package/es/render/contributions/render/symbol-render.js +2 -24
  878. package/es/render/contributions/render/symbol-render.js.map +1 -1
  879. package/es/render/contributions/render/text-module.d.ts +4 -2
  880. package/es/render/contributions/render/text-module.js +4 -4
  881. package/es/render/contributions/render/text-module.js.map +1 -1
  882. package/es/render/contributions/render/text-render.js +2 -24
  883. package/es/render/contributions/render/text-render.js.map +1 -1
  884. package/es/render/render-modules.d.ts +4 -3
  885. package/es/render/render-modules.js +4 -4
  886. package/es/render/render-modules.js.map +1 -1
  887. package/es/render/render-service.d.ts +1 -1
  888. package/es/render/render-service.js +4 -22
  889. package/es/render/render-service.js.map +1 -1
  890. package/package.json +8 -7
  891. package/cjs/common/inversify/annotation/inject.d.ts +0 -1
  892. package/cjs/common/inversify/annotation/inject.js +0 -10
  893. package/cjs/common/inversify/annotation/inject.js.map +0 -1
  894. package/cjs/common/inversify/annotation/inject_base.d.ts +0 -14
  895. package/cjs/common/inversify/annotation/inject_base.js +0 -39
  896. package/cjs/common/inversify/annotation/inject_base.js.map +0 -1
  897. package/cjs/common/inversify/annotation/injectable.d.ts +0 -1
  898. package/cjs/common/inversify/annotation/injectable.js +0 -46
  899. package/cjs/common/inversify/annotation/injectable.js.map +0 -1
  900. package/cjs/common/inversify/annotation/multi_inject.d.ts +0 -1
  901. package/cjs/common/inversify/annotation/multi_inject.js +0 -10
  902. package/cjs/common/inversify/annotation/multi_inject.js.map +0 -1
  903. package/cjs/common/inversify/annotation/named.d.ts +0 -1
  904. package/cjs/common/inversify/annotation/named.js +0 -14
  905. package/cjs/common/inversify/annotation/named.js.map +0 -1
  906. package/cjs/common/inversify/annotation/optional.d.ts +0 -2
  907. package/cjs/common/inversify/annotation/optional.js +0 -14
  908. package/cjs/common/inversify/annotation/optional.js.map +0 -1
  909. package/cjs/common/inversify/binding.d.ts +0 -18
  910. package/cjs/common/inversify/binding.js +0 -26
  911. package/cjs/common/inversify/binding.js.map +0 -1
  912. package/cjs/common/inversify/container.d.ts +0 -28
  913. package/cjs/common/inversify/container.js +0 -158
  914. package/cjs/common/inversify/container.js.map +0 -1
  915. package/cjs/common/inversify/cotainer-module.d.ts +0 -6
  916. package/cjs/common/inversify/cotainer-module.js +0 -16
  917. package/cjs/common/inversify/cotainer-module.js.map +0 -1
  918. package/cjs/common/inversify/index.d.ts +0 -7
  919. package/cjs/common/inversify/index.js +0 -75
  920. package/cjs/common/inversify/index.js.map +0 -1
  921. package/cjs/common/inversify/interfaces.d.ts +0 -218
  922. package/cjs/common/inversify/interfaces.js.map +0 -1
  923. package/cjs/common/inversify/literal_types.d.ts +0 -5
  924. package/cjs/common/inversify/literal_types.js +0 -34
  925. package/cjs/common/inversify/literal_types.js.map +0 -1
  926. package/cjs/common/inversify/meta-data.d.ts +0 -6
  927. package/cjs/common/inversify/meta-data.js +0 -19
  928. package/cjs/common/inversify/meta-data.js.map +0 -1
  929. package/cjs/common/inversify/metadata_keys.d.ts +0 -12
  930. package/cjs/common/inversify/metadata_keys.js +0 -15
  931. package/cjs/common/inversify/metadata_keys.js.map +0 -1
  932. package/cjs/common/inversify/metadata_reader.d.ts +0 -6
  933. package/cjs/common/inversify/metadata_reader.js +0 -28
  934. package/cjs/common/inversify/metadata_reader.js.map +0 -1
  935. package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +0 -10
  936. package/cjs/common/inversify/syntax/binding_in_syntax.js +0 -29
  937. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +0 -1
  938. package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +0 -12
  939. package/cjs/common/inversify/syntax/binding_to_syntax.js +0 -40
  940. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +0 -1
  941. package/cjs/common/inversify/syntax/constraint_helpers.d.ts +0 -2
  942. package/cjs/common/inversify/syntax/constraint_helpers.js +0 -20
  943. package/cjs/common/inversify/syntax/constraint_helpers.js.map +0 -1
  944. package/cjs/common/inversify-lite/annotation/decorator_utils.d.ts +0 -16
  945. package/cjs/common/inversify-lite/annotation/decorator_utils.js +0 -97
  946. package/cjs/common/inversify-lite/annotation/decorator_utils.js.map +0 -1
  947. package/cjs/common/inversify-lite/annotation/inject.d.ts +0 -2
  948. package/cjs/common/inversify-lite/annotation/inject.js +0 -36
  949. package/cjs/common/inversify-lite/annotation/inject.js.map +0 -1
  950. package/cjs/common/inversify-lite/annotation/inject_base.d.ts +0 -3
  951. package/cjs/common/inversify-lite/annotation/inject_base.js +0 -20
  952. package/cjs/common/inversify-lite/annotation/inject_base.js.map +0 -1
  953. package/cjs/common/inversify-lite/annotation/injectable.d.ts +0 -2
  954. package/cjs/common/inversify-lite/annotation/injectable.js +0 -48
  955. package/cjs/common/inversify-lite/annotation/injectable.js.map +0 -1
  956. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.d.ts +0 -7
  957. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +0 -17
  958. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +0 -1
  959. package/cjs/common/inversify-lite/annotation/multi_inject.d.ts +0 -2
  960. package/cjs/common/inversify-lite/annotation/multi_inject.js +0 -36
  961. package/cjs/common/inversify-lite/annotation/multi_inject.js.map +0 -1
  962. package/cjs/common/inversify-lite/annotation/named.d.ts +0 -2
  963. package/cjs/common/inversify-lite/annotation/named.js +0 -39
  964. package/cjs/common/inversify-lite/annotation/named.js.map +0 -1
  965. package/cjs/common/inversify-lite/annotation/property_event_decorator.d.ts +0 -4
  966. package/cjs/common/inversify-lite/annotation/property_event_decorator.js +0 -24
  967. package/cjs/common/inversify-lite/annotation/property_event_decorator.js.map +0 -1
  968. package/cjs/common/inversify-lite/bindings/binding.d.ts +0 -20
  969. package/cjs/common/inversify-lite/bindings/binding.js +0 -27
  970. package/cjs/common/inversify-lite/bindings/binding.js.map +0 -1
  971. package/cjs/common/inversify-lite/bindings/binding_count.d.ts +0 -5
  972. package/cjs/common/inversify-lite/bindings/binding_count.js +0 -10
  973. package/cjs/common/inversify-lite/bindings/binding_count.js.map +0 -1
  974. package/cjs/common/inversify-lite/constants/error_msgs.d.ts +0 -32
  975. package/cjs/common/inversify-lite/constants/error_msgs.js +0 -50
  976. package/cjs/common/inversify-lite/constants/error_msgs.js.map +0 -1
  977. package/cjs/common/inversify-lite/constants/literal_types.d.ts +0 -5
  978. package/cjs/common/inversify-lite/constants/literal_types.js +0 -35
  979. package/cjs/common/inversify-lite/constants/literal_types.js.map +0 -1
  980. package/cjs/common/inversify-lite/constants/metadata_keys.d.ts +0 -13
  981. package/cjs/common/inversify-lite/constants/metadata_keys.js +0 -16
  982. package/cjs/common/inversify-lite/constants/metadata_keys.js.map +0 -1
  983. package/cjs/common/inversify-lite/container/container.d.ts +0 -46
  984. package/cjs/common/inversify-lite/container/container.js +0 -290
  985. package/cjs/common/inversify-lite/container/container.js.map +0 -1
  986. package/cjs/common/inversify-lite/container/container_module.d.ts +0 -11
  987. package/cjs/common/inversify-lite/container/container_module.js +0 -24
  988. package/cjs/common/inversify-lite/container/container_module.js.map +0 -1
  989. package/cjs/common/inversify-lite/container/lookup.d.ts +0 -16
  990. package/cjs/common/inversify-lite/container/lookup.js +0 -97
  991. package/cjs/common/inversify-lite/container/lookup.js.map +0 -1
  992. package/cjs/common/inversify-lite/index.d.ts +0 -1
  993. package/cjs/common/inversify-lite/index.js.map +0 -1
  994. package/cjs/common/inversify-lite/interfaces/interfaces.d.ts +0 -237
  995. package/cjs/common/inversify-lite/interfaces/interfaces.js.map +0 -1
  996. package/cjs/common/inversify-lite/planning/context.d.ts +0 -11
  997. package/cjs/common/inversify-lite/planning/context.js +0 -22
  998. package/cjs/common/inversify-lite/planning/context.js.map +0 -1
  999. package/cjs/common/inversify-lite/planning/metadata.d.ts +0 -8
  1000. package/cjs/common/inversify-lite/planning/metadata.js +0 -44
  1001. package/cjs/common/inversify-lite/planning/metadata.js.map +0 -1
  1002. package/cjs/common/inversify-lite/planning/metadata_reader.d.ts +0 -6
  1003. package/cjs/common/inversify-lite/planning/metadata_reader.js +0 -51
  1004. package/cjs/common/inversify-lite/planning/metadata_reader.js.map +0 -1
  1005. package/cjs/common/inversify-lite/planning/plan.d.ts +0 -7
  1006. package/cjs/common/inversify-lite/planning/plan.js +0 -14
  1007. package/cjs/common/inversify-lite/planning/plan.js.map +0 -1
  1008. package/cjs/common/inversify-lite/planning/planner.d.ts +0 -5
  1009. package/cjs/common/inversify-lite/planning/planner.js +0 -132
  1010. package/cjs/common/inversify-lite/planning/planner.js.map +0 -1
  1011. package/cjs/common/inversify-lite/planning/queryable_string.d.ts +0 -9
  1012. package/cjs/common/inversify-lite/planning/queryable_string.js +0 -23
  1013. package/cjs/common/inversify-lite/planning/queryable_string.js.map +0 -1
  1014. package/cjs/common/inversify-lite/planning/reflection_utils.d.ts +0 -5
  1015. package/cjs/common/inversify-lite/planning/reflection_utils.js +0 -129
  1016. package/cjs/common/inversify-lite/planning/reflection_utils.js.map +0 -1
  1017. package/cjs/common/inversify-lite/planning/request.d.ts +0 -14
  1018. package/cjs/common/inversify-lite/planning/request.js +0 -22
  1019. package/cjs/common/inversify-lite/planning/request.js.map +0 -1
  1020. package/cjs/common/inversify-lite/planning/target.d.ts +0 -23
  1021. package/cjs/common/inversify-lite/planning/target.js +0 -81
  1022. package/cjs/common/inversify-lite/planning/target.js.map +0 -1
  1023. package/cjs/common/inversify-lite/resolution/instantiation.d.ts +0 -3
  1024. package/cjs/common/inversify-lite/resolution/instantiation.js +0 -143
  1025. package/cjs/common/inversify-lite/resolution/instantiation.js.map +0 -1
  1026. package/cjs/common/inversify-lite/resolution/resolver.d.ts +0 -3
  1027. package/cjs/common/inversify-lite/resolution/resolver.js +0 -74
  1028. package/cjs/common/inversify-lite/resolution/resolver.js.map +0 -1
  1029. package/cjs/common/inversify-lite/scope/scope.d.ts +0 -3
  1030. package/cjs/common/inversify-lite/scope/scope.js +0 -56
  1031. package/cjs/common/inversify-lite/scope/scope.js.map +0 -1
  1032. package/cjs/common/inversify-lite/syntax/binding_in_syntax.d.ts +0 -9
  1033. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +0 -25
  1034. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +0 -1
  1035. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.d.ts +0 -12
  1036. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -29
  1037. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +0 -1
  1038. package/cjs/common/inversify-lite/syntax/binding_on_syntax.d.ts +0 -6
  1039. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +0 -14
  1040. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +0 -1
  1041. package/cjs/common/inversify-lite/syntax/binding_to_syntax.d.ts +0 -18
  1042. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +0 -88
  1043. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +0 -1
  1044. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.d.ts +0 -8
  1045. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -19
  1046. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +0 -1
  1047. package/cjs/common/inversify-lite/syntax/binding_when_syntax.d.ts +0 -7
  1048. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +0 -20
  1049. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +0 -1
  1050. package/cjs/common/inversify-lite/syntax/constraint_helpers.d.ts +0 -3
  1051. package/cjs/common/inversify-lite/syntax/constraint_helpers.js +0 -38
  1052. package/cjs/common/inversify-lite/syntax/constraint_helpers.js.map +0 -1
  1053. package/cjs/common/inversify-lite/utils/async.d.ts +0 -3
  1054. package/cjs/common/inversify-lite/utils/async.js +0 -15
  1055. package/cjs/common/inversify-lite/utils/async.js.map +0 -1
  1056. package/cjs/common/inversify-lite/utils/binding_utils.d.ts +0 -4
  1057. package/cjs/common/inversify-lite/utils/binding_utils.js +0 -94
  1058. package/cjs/common/inversify-lite/utils/binding_utils.js.map +0 -1
  1059. package/cjs/common/inversify-lite/utils/clonable.d.ts +0 -3
  1060. package/cjs/common/inversify-lite/utils/clonable.js +0 -10
  1061. package/cjs/common/inversify-lite/utils/clonable.js.map +0 -1
  1062. package/cjs/common/inversify-lite/utils/exceptions.d.ts +0 -2
  1063. package/cjs/common/inversify-lite/utils/exceptions.js +0 -43
  1064. package/cjs/common/inversify-lite/utils/exceptions.js.map +0 -1
  1065. package/cjs/common/inversify-lite/utils/factory_type.d.ts +0 -5
  1066. package/cjs/common/inversify-lite/utils/factory_type.js +0 -11
  1067. package/cjs/common/inversify-lite/utils/factory_type.js.map +0 -1
  1068. package/cjs/common/inversify-lite/utils/id.d.ts +0 -2
  1069. package/cjs/common/inversify-lite/utils/id.js +0 -14
  1070. package/cjs/common/inversify-lite/utils/id.js.map +0 -1
  1071. package/cjs/common/inversify-lite/utils/js.d.ts +0 -1
  1072. package/cjs/common/inversify-lite/utils/js.js +0 -14
  1073. package/cjs/common/inversify-lite/utils/js.js.map +0 -1
  1074. package/cjs/common/inversify-lite/utils/serialization.d.ts +0 -10
  1075. package/cjs/common/inversify-lite/utils/serialization.js +0 -99
  1076. package/cjs/common/inversify-lite/utils/serialization.js.map +0 -1
  1077. package/cjs/container.d.ts +0 -2
  1078. package/cjs/container.js +0 -10
  1079. package/cjs/container.js.map +0 -1
  1080. package/es/common/inversify/annotation/inject.d.ts +0 -1
  1081. package/es/common/inversify/annotation/inject.js +0 -6
  1082. package/es/common/inversify/annotation/inject.js.map +0 -1
  1083. package/es/common/inversify/annotation/inject_base.d.ts +0 -14
  1084. package/es/common/inversify/annotation/inject_base.js +0 -29
  1085. package/es/common/inversify/annotation/inject_base.js.map +0 -1
  1086. package/es/common/inversify/annotation/injectable.d.ts +0 -1
  1087. package/es/common/inversify/annotation/injectable.js +0 -10
  1088. package/es/common/inversify/annotation/injectable.js.map +0 -1
  1089. package/es/common/inversify/annotation/multi_inject.d.ts +0 -1
  1090. package/es/common/inversify/annotation/multi_inject.js +0 -6
  1091. package/es/common/inversify/annotation/multi_inject.js.map +0 -1
  1092. package/es/common/inversify/annotation/named.d.ts +0 -1
  1093. package/es/common/inversify/annotation/named.js +0 -10
  1094. package/es/common/inversify/annotation/named.js.map +0 -1
  1095. package/es/common/inversify/annotation/optional.d.ts +0 -2
  1096. package/es/common/inversify/annotation/optional.js +0 -12
  1097. package/es/common/inversify/annotation/optional.js.map +0 -1
  1098. package/es/common/inversify/binding.d.ts +0 -18
  1099. package/es/common/inversify/binding.js +0 -22
  1100. package/es/common/inversify/binding.js.map +0 -1
  1101. package/es/common/inversify/container.d.ts +0 -28
  1102. package/es/common/inversify/container.js +0 -158
  1103. package/es/common/inversify/container.js.map +0 -1
  1104. package/es/common/inversify/cotainer-module.d.ts +0 -6
  1105. package/es/common/inversify/cotainer-module.js +0 -8
  1106. package/es/common/inversify/cotainer-module.js.map +0 -1
  1107. package/es/common/inversify/index.d.ts +0 -7
  1108. package/es/common/inversify/index.js +0 -14
  1109. package/es/common/inversify/index.js.map +0 -1
  1110. package/es/common/inversify/interfaces.d.ts +0 -218
  1111. package/es/common/inversify/interfaces.js +0 -2
  1112. package/es/common/inversify/interfaces.js.map +0 -1
  1113. package/es/common/inversify/literal_types.d.ts +0 -5
  1114. package/es/common/inversify/literal_types.js +0 -20
  1115. package/es/common/inversify/literal_types.js.map +0 -1
  1116. package/es/common/inversify/meta-data.d.ts +0 -6
  1117. package/es/common/inversify/meta-data.js +0 -11
  1118. package/es/common/inversify/meta-data.js.map +0 -1
  1119. package/es/common/inversify/metadata_keys.d.ts +0 -12
  1120. package/es/common/inversify/metadata_keys.js +0 -28
  1121. package/es/common/inversify/metadata_keys.js.map +0 -1
  1122. package/es/common/inversify/metadata_reader.d.ts +0 -6
  1123. package/es/common/inversify/metadata_reader.js +0 -18
  1124. package/es/common/inversify/metadata_reader.js.map +0 -1
  1125. package/es/common/inversify/syntax/binding_in_syntax.d.ts +0 -10
  1126. package/es/common/inversify/syntax/binding_in_syntax.js +0 -24
  1127. package/es/common/inversify/syntax/binding_in_syntax.js.map +0 -1
  1128. package/es/common/inversify/syntax/binding_to_syntax.d.ts +0 -12
  1129. package/es/common/inversify/syntax/binding_to_syntax.js +0 -36
  1130. package/es/common/inversify/syntax/binding_to_syntax.js.map +0 -1
  1131. package/es/common/inversify/syntax/constraint_helpers.d.ts +0 -2
  1132. package/es/common/inversify/syntax/constraint_helpers.js +0 -18
  1133. package/es/common/inversify/syntax/constraint_helpers.js.map +0 -1
  1134. package/es/common/inversify-lite/annotation/decorator_utils.d.ts +0 -16
  1135. package/es/common/inversify-lite/annotation/decorator_utils.js +0 -67
  1136. package/es/common/inversify-lite/annotation/decorator_utils.js.map +0 -1
  1137. package/es/common/inversify-lite/annotation/inject.d.ts +0 -2
  1138. package/es/common/inversify-lite/annotation/inject.js +0 -8
  1139. package/es/common/inversify-lite/annotation/inject.js.map +0 -1
  1140. package/es/common/inversify-lite/annotation/inject_base.d.ts +0 -3
  1141. package/es/common/inversify-lite/annotation/inject_base.js +0 -16
  1142. package/es/common/inversify-lite/annotation/inject_base.js.map +0 -1
  1143. package/es/common/inversify-lite/annotation/injectable.d.ts +0 -2
  1144. package/es/common/inversify-lite/annotation/injectable.js +0 -16
  1145. package/es/common/inversify-lite/annotation/injectable.js.map +0 -1
  1146. package/es/common/inversify-lite/annotation/lazy_service_identifier.d.ts +0 -7
  1147. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +0 -9
  1148. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +0 -1
  1149. package/es/common/inversify-lite/annotation/multi_inject.d.ts +0 -2
  1150. package/es/common/inversify-lite/annotation/multi_inject.js +0 -8
  1151. package/es/common/inversify-lite/annotation/multi_inject.js.map +0 -1
  1152. package/es/common/inversify-lite/annotation/named.d.ts +0 -2
  1153. package/es/common/inversify-lite/annotation/named.js +0 -12
  1154. package/es/common/inversify-lite/annotation/named.js.map +0 -1
  1155. package/es/common/inversify-lite/annotation/property_event_decorator.d.ts +0 -4
  1156. package/es/common/inversify-lite/annotation/property_event_decorator.js +0 -14
  1157. package/es/common/inversify-lite/annotation/property_event_decorator.js.map +0 -1
  1158. package/es/common/inversify-lite/bindings/binding.d.ts +0 -20
  1159. package/es/common/inversify-lite/bindings/binding.js +0 -23
  1160. package/es/common/inversify-lite/bindings/binding.js.map +0 -1
  1161. package/es/common/inversify-lite/bindings/binding_count.d.ts +0 -5
  1162. package/es/common/inversify-lite/bindings/binding_count.js +0 -6
  1163. package/es/common/inversify-lite/bindings/binding_count.js.map +0 -1
  1164. package/es/common/inversify-lite/constants/error_msgs.d.ts +0 -32
  1165. package/es/common/inversify-lite/constants/error_msgs.js +0 -64
  1166. package/es/common/inversify-lite/constants/error_msgs.js.map +0 -1
  1167. package/es/common/inversify-lite/constants/literal_types.d.ts +0 -5
  1168. package/es/common/inversify-lite/constants/literal_types.js +0 -21
  1169. package/es/common/inversify-lite/constants/literal_types.js.map +0 -1
  1170. package/es/common/inversify-lite/constants/metadata_keys.d.ts +0 -13
  1171. package/es/common/inversify-lite/constants/metadata_keys.js +0 -30
  1172. package/es/common/inversify-lite/constants/metadata_keys.js.map +0 -1
  1173. package/es/common/inversify-lite/container/container.d.ts +0 -46
  1174. package/es/common/inversify-lite/container/container.js +0 -279
  1175. package/es/common/inversify-lite/container/container.js.map +0 -1
  1176. package/es/common/inversify-lite/container/container_module.d.ts +0 -11
  1177. package/es/common/inversify-lite/container/container_module.js +0 -14
  1178. package/es/common/inversify-lite/container/container_module.js.map +0 -1
  1179. package/es/common/inversify-lite/container/lookup.d.ts +0 -16
  1180. package/es/common/inversify-lite/container/lookup.js +0 -68
  1181. package/es/common/inversify-lite/container/lookup.js.map +0 -1
  1182. package/es/common/inversify-lite/index.d.ts +0 -1
  1183. package/es/common/inversify-lite/index.js +0 -2
  1184. package/es/common/inversify-lite/index.js.map +0 -1
  1185. package/es/common/inversify-lite/interfaces/interfaces.d.ts +0 -237
  1186. package/es/common/inversify-lite/interfaces/interfaces.js +0 -2
  1187. package/es/common/inversify-lite/interfaces/interfaces.js.map +0 -1
  1188. package/es/common/inversify-lite/planning/context.d.ts +0 -11
  1189. package/es/common/inversify-lite/planning/context.js +0 -16
  1190. package/es/common/inversify-lite/planning/context.js.map +0 -1
  1191. package/es/common/inversify-lite/planning/metadata.d.ts +0 -8
  1192. package/es/common/inversify-lite/planning/metadata.js +0 -13
  1193. package/es/common/inversify-lite/planning/metadata.js.map +0 -1
  1194. package/es/common/inversify-lite/planning/metadata_reader.d.ts +0 -6
  1195. package/es/common/inversify-lite/planning/metadata_reader.js +0 -18
  1196. package/es/common/inversify-lite/planning/metadata_reader.js.map +0 -1
  1197. package/es/common/inversify-lite/planning/plan.d.ts +0 -7
  1198. package/es/common/inversify-lite/planning/plan.js +0 -8
  1199. package/es/common/inversify-lite/planning/plan.js.map +0 -1
  1200. package/es/common/inversify-lite/planning/planner.d.ts +0 -5
  1201. package/es/common/inversify-lite/planning/planner.js +0 -120
  1202. package/es/common/inversify-lite/planning/planner.js.map +0 -1
  1203. package/es/common/inversify-lite/planning/queryable_string.d.ts +0 -9
  1204. package/es/common/inversify-lite/planning/queryable_string.js +0 -17
  1205. package/es/common/inversify-lite/planning/queryable_string.js.map +0 -1
  1206. package/es/common/inversify-lite/planning/reflection_utils.d.ts +0 -5
  1207. package/es/common/inversify-lite/planning/reflection_utils.js +0 -99
  1208. package/es/common/inversify-lite/planning/reflection_utils.js.map +0 -1
  1209. package/es/common/inversify-lite/planning/request.d.ts +0 -14
  1210. package/es/common/inversify-lite/planning/request.js +0 -16
  1211. package/es/common/inversify-lite/planning/request.js.map +0 -1
  1212. package/es/common/inversify-lite/planning/target.d.ts +0 -23
  1213. package/es/common/inversify-lite/planning/target.js +0 -58
  1214. package/es/common/inversify-lite/planning/target.js.map +0 -1
  1215. package/es/common/inversify-lite/resolution/instantiation.d.ts +0 -3
  1216. package/es/common/inversify-lite/resolution/instantiation.js +0 -117
  1217. package/es/common/inversify-lite/resolution/instantiation.js.map +0 -1
  1218. package/es/common/inversify-lite/resolution/resolver.d.ts +0 -3
  1219. package/es/common/inversify-lite/resolution/resolver.js +0 -55
  1220. package/es/common/inversify-lite/resolution/resolver.js.map +0 -1
  1221. package/es/common/inversify-lite/scope/scope.d.ts +0 -3
  1222. package/es/common/inversify-lite/scope/scope.js +0 -50
  1223. package/es/common/inversify-lite/scope/scope.js.map +0 -1
  1224. package/es/common/inversify-lite/syntax/binding_in_syntax.d.ts +0 -9
  1225. package/es/common/inversify-lite/syntax/binding_in_syntax.js +0 -21
  1226. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +0 -1
  1227. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.d.ts +0 -12
  1228. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -25
  1229. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +0 -1
  1230. package/es/common/inversify-lite/syntax/binding_on_syntax.d.ts +0 -6
  1231. package/es/common/inversify-lite/syntax/binding_on_syntax.js +0 -8
  1232. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +0 -1
  1233. package/es/common/inversify-lite/syntax/binding_to_syntax.d.ts +0 -18
  1234. package/es/common/inversify-lite/syntax/binding_to_syntax.js +0 -63
  1235. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +0 -1
  1236. package/es/common/inversify-lite/syntax/binding_when_on_syntax.d.ts +0 -8
  1237. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -13
  1238. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +0 -1
  1239. package/es/common/inversify-lite/syntax/binding_when_syntax.d.ts +0 -7
  1240. package/es/common/inversify-lite/syntax/binding_when_syntax.js +0 -15
  1241. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +0 -1
  1242. package/es/common/inversify-lite/syntax/constraint_helpers.d.ts +0 -3
  1243. package/es/common/inversify-lite/syntax/constraint_helpers.js +0 -11
  1244. package/es/common/inversify-lite/syntax/constraint_helpers.js.map +0 -1
  1245. package/es/common/inversify-lite/utils/async.d.ts +0 -3
  1246. package/es/common/inversify-lite/utils/async.js +0 -10
  1247. package/es/common/inversify-lite/utils/async.js.map +0 -1
  1248. package/es/common/inversify-lite/utils/binding_utils.d.ts +0 -4
  1249. package/es/common/inversify-lite/utils/binding_utils.js +0 -65
  1250. package/es/common/inversify-lite/utils/binding_utils.js.map +0 -1
  1251. package/es/common/inversify-lite/utils/clonable.d.ts +0 -3
  1252. package/es/common/inversify-lite/utils/clonable.js +0 -6
  1253. package/es/common/inversify-lite/utils/clonable.js.map +0 -1
  1254. package/es/common/inversify-lite/utils/exceptions.d.ts +0 -2
  1255. package/es/common/inversify-lite/utils/exceptions.js +0 -8
  1256. package/es/common/inversify-lite/utils/exceptions.js.map +0 -1
  1257. package/es/common/inversify-lite/utils/factory_type.d.ts +0 -5
  1258. package/es/common/inversify-lite/utils/factory_type.js +0 -7
  1259. package/es/common/inversify-lite/utils/factory_type.js.map +0 -1
  1260. package/es/common/inversify-lite/utils/id.d.ts +0 -2
  1261. package/es/common/inversify-lite/utils/id.js +0 -8
  1262. package/es/common/inversify-lite/utils/id.js.map +0 -1
  1263. package/es/common/inversify-lite/utils/js.d.ts +0 -1
  1264. package/es/common/inversify-lite/utils/js.js +0 -8
  1265. package/es/common/inversify-lite/utils/js.js.map +0 -1
  1266. package/es/common/inversify-lite/utils/serialization.d.ts +0 -10
  1267. package/es/common/inversify-lite/utils/serialization.js +0 -66
  1268. package/es/common/inversify-lite/utils/serialization.js.map +0 -1
  1269. package/es/container.d.ts +0 -2
  1270. package/es/container.js +0 -4
  1271. package/es/container.js.map +0 -1
@@ -1,31 +1,13 @@
1
- var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
- var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
- if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5
- }, __metadata = this && this.__metadata || function(k, v) {
6
- if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- }, __param = this && this.__param || function(paramIndex, decorator) {
8
- return function(target, key) {
9
- decorator(target, key, paramIndex);
10
- };
11
- };
12
-
13
- import { inject, injectable, named } from "../../../common/inversify-lite";
14
-
15
1
  import { getTheme } from "../../../graphic/theme";
16
2
 
17
3
  import { getModelMatrix } from "../../../graphic/graphic-service/graphic-service";
18
4
 
19
5
  import { isArray } from "@visactor/vutils";
20
6
 
21
- import { ContributionProvider } from "../../../common/contribution-provider";
22
-
23
7
  import { createRectPath } from "../../../common/shape/rect";
24
8
 
25
9
  import { rectFillVisible, rectStrokeVisible, runFill, runStroke } from "./utils";
26
10
 
27
- import { GroupRenderContribution } from "./contributions/constants";
28
-
29
11
  import { mat4Allocate } from "../../../allocator/matrix-allocate";
30
12
 
31
13
  import { GROUP_NUMBER_TYPE } from "../../../graphic/constants";
@@ -38,7 +20,7 @@ import { multiplyMat4Mat4 } from "../../../common/matrix";
38
20
 
39
21
  import { application } from "../../../application";
40
22
 
41
- let DefaultCanvasGroupRender = class {
23
+ export class DefaultCanvasGroupRender {
42
24
  constructor(groupRenderContribitions) {
43
25
  this.groupRenderContribitions = groupRenderContribitions, this.numberType = GROUP_NUMBER_TYPE;
44
26
  }
@@ -130,9 +112,5 @@ let DefaultCanvasGroupRender = class {
130
112
  clip ? context.restore() : context.highPerformanceRestore();
131
113
  })) : clip ? context.restore() : context.highPerformanceRestore();
132
114
  }
133
- };
134
-
135
- DefaultCanvasGroupRender = __decorate([ injectable(), __param(0, inject(ContributionProvider)), __param(0, named(GroupRenderContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasGroupRender);
136
-
137
- export { DefaultCanvasGroupRender };
115
+ }
138
116
  //# sourceMappingURL=group-render.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/group-render.ts"],"names":[],"mappings":"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","file":"group-render.js","sourcesContent":["import { inject, injectable, named } from '../../../common/inversify-lite';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IGroup,\n IMarkAttribute,\n IThemeAttribute,\n IGroupRenderContribution,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider,\n IGroupGraphicAttribute\n} from '../../../interface';\nimport { getTheme } from '../../../graphic/theme';\nimport { getModelMatrix } from '../../../graphic/graphic-service/graphic-service';\nimport { isArray } from '@visactor/vutils';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { GroupRenderContribution } from './contributions/constants';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { GROUP_NUMBER_TYPE } from '../../../graphic/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { defaultGroupBackgroundRenderContribution } from './contributions';\nimport { multiplyMat4Mat4 } from '../../../common/matrix';\nimport { application } from '../../../application';\n\n@injectable()\nexport class DefaultCanvasGroupRender implements IGraphicRender {\n type: 'group';\n numberType: number = GROUP_NUMBER_TYPE;\n\n _groupRenderContribitions: IGroupRenderContribution[];\n\n constructor(\n @inject(ContributionProvider)\n @named(GroupRenderContribution)\n protected readonly groupRenderContribitions: IContributionProvider<IGroupRenderContribution>\n ) {}\n\n reInit() {\n this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [];\n this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);\n }\n\n drawShape(\n group: IGroup,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n groupAttribute?: Required<IGroupGraphicAttribute>\n ) {\n // 提前判定,否则每次都要获取一堆属性\n const { clip, fill, stroke, background } = group.attribute;\n\n if (!(clip || fill || stroke || background)) {\n return;\n }\n\n groupAttribute = groupAttribute ?? getTheme(group, params?.theme).group;\n\n const {\n opacity = groupAttribute.opacity,\n width = groupAttribute.width,\n height = groupAttribute.height,\n fillOpacity = groupAttribute.fillOpacity,\n strokeOpacity = groupAttribute.strokeOpacity,\n cornerRadius = groupAttribute.cornerRadius,\n path = groupAttribute.path,\n lineWidth = groupAttribute.lineWidth,\n visible = groupAttribute.visible,\n fillStrokeOrder = groupAttribute.fillStrokeOrder,\n cornerType = groupAttribute.cornerType,\n x: originX = groupAttribute.x,\n y: originY = groupAttribute.y\n } = group.attribute;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill, background);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(group.valid && visible)) {\n return;\n }\n\n if (!clip) {\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n }\n\n if (path && path.length && drawContext.drawContribution) {\n // 禁用fill和stroke\n const disableFill = context.disableFill;\n const disableStroke = context.disableStroke;\n const disableBeginPath = context.disableBeginPath;\n context.disableFill = true;\n context.disableStroke = true;\n context.disableBeginPath = true;\n path.forEach(g => {\n const rc = drawContext.drawContribution.getRenderContribution(g);\n rc.draw(g, drawContext.renderService, drawContext, params);\n });\n context.disableFill = disableFill;\n context.disableStroke = disableStroke;\n context.disableBeginPath = disableBeginPath;\n } else if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x, y, width, height);\n } else {\n context.beginPath();\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n }\n\n if (!this._groupRenderContribitions) {\n this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [];\n this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);\n }\n\n const doFillOrStroke = {\n doFill,\n doStroke\n };\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(group, group.attribute, groupAttribute);\n\n this._groupRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.beforeFillStroke) {\n // c.useStyle && context.setCommonStyle(group, group.attribute, x, y, groupAttribute);\n c.drawShape(\n group,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n groupAttribute,\n drawContext,\n fillCb,\n strokeCb,\n doFillOrStroke\n );\n }\n });\n\n // beforeFillStroke contribition可以操作clip范围\n if (clip) {\n context.clip();\n }\n\n const _runFill = () => {\n if ((doFillOrStroke as any).doFill) {\n if (fillCb) {\n fillCb(context, group.attribute, groupAttribute);\n } else if (fVisible) {\n context.setCommonStyle(group, group.attribute, originX - x, originY - y, groupAttribute);\n context.fill();\n }\n }\n };\n\n const _runStroke = () => {\n if ((doFillOrStroke as any).doStroke) {\n if (strokeCb) {\n strokeCb(context, group.attribute, groupAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(group, group.attribute, originX - x, originY - y, groupAttribute);\n context.stroke();\n }\n }\n };\n\n if (!fillStrokeOrder) {\n _runFill();\n _runStroke();\n } else {\n _runStroke();\n _runFill();\n }\n\n this._groupRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.afterFillStroke) {\n // c.useStyle && context.setCommonStyle(group, group.attribute, x, y, groupAttribute);\n c.drawShape(\n group,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n groupAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n });\n }\n\n draw(group: IGroup, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n\n const { clip, baseOpacity = 1, drawMode } = group.attribute;\n const lastNativeContext = context.nativeContext;\n const lastNativeCanvas = context.canvas.nativeCanvas;\n\n if (drawMode > 0) {\n const { x, y, width, height } = group.attribute;\n // 绘制到新的Canvas上,然后再绘制回来\n const canvas = context.canvas;\n const newCanvas = application.global.createCanvas({ width: canvas.width, height: canvas.height, dpr: 1 });\n const newContext = newCanvas.getContext('2d');\n const transform = context.nativeContext.getTransform();\n // 首先应用transform\n newContext.setTransform(transform.a, transform.b, transform.c, transform.d, transform.e, transform.f);\n // 然后将背景绘制到新的canvas上,只绘制group的Bounds区域\n // 如果drawMode === 1,则需要背景\n // 如果drawMode === 2,则不需要背景,只需要group即可\n if (drawMode === 1) {\n newContext.save();\n newContext.clearRect(0, 0, canvas.width, canvas.height);\n newContext.beginPath();\n\n newContext.rect(x, y, width, height);\n newContext.clip();\n newContext.drawImage(\n canvas.nativeCanvas,\n 0,\n 0,\n canvas.width,\n canvas.height,\n 0,\n 0,\n canvas.displayWidth,\n canvas.displayHeight\n );\n newContext.restore();\n }\n // 狸猫换太子,把新的context赋值给context\n context.nativeContext = newContext;\n canvas.nativeCanvas = newCanvas;\n }\n if (clip) {\n context.save();\n } else {\n context.highPerformanceSave();\n }\n const baseGlobalAlpha = context.baseGlobalAlpha;\n context.baseGlobalAlpha *= baseOpacity;\n\n // const lastMatrix = context.modelMatrix;\n // if (context.camera) {\n // const m = group.transMatrix;\n // const matrix = createMat4();\n // mat3Tomat4(matrix, m);\n // const lastModelMatrix = context.modelMatrix;\n // if (lastModelMatrix) {\n // if (matrix) {\n // const m = createMat4();\n // context.modelMatrix = multiplyMat4Mat4(m, lastModelMatrix, matrix);\n // }\n // } else {\n // context.modelMatrix = matrix;\n // }\n // } else {\n // // group直接transform\n // context.transformFromMatrix(group.transMatrix, true);\n // }\n const lastModelMatrix = context.modelMatrix;\n const camera = context.camera;\n if (camera) {\n const groupAttribute = getTheme(group, params?.theme).group;\n const nextModelMatrix = mat4Allocate.allocate();\n // 计算模型矩阵\n const modelMatrix = mat4Allocate.allocate();\n getModelMatrix(modelMatrix, group, groupAttribute);\n if (lastModelMatrix) {\n multiplyMat4Mat4(nextModelMatrix, lastModelMatrix, modelMatrix);\n } else {\n multiplyMat4Mat4(nextModelMatrix, nextModelMatrix, modelMatrix);\n }\n context.modelMatrix = nextModelMatrix;\n mat4Allocate.free(modelMatrix);\n context.setTransform(1, 0, 0, 1, 0, 0, true);\n } else {\n // group直接transform\n context.transformFromMatrix(group.transMatrix, true);\n }\n\n context.beginPath();\n // 如果跳过绘制,那就不绘制\n if (params.skipDraw) {\n this.drawShape(\n group,\n context,\n 0,\n 0,\n drawContext,\n params,\n () => false,\n () => false\n );\n } else {\n this.drawShape(group, context, 0, 0, drawContext, null, null, null);\n }\n\n // 绘制子元素的时候要添加scroll\n const { scrollX, scrollY } = group.attribute;\n if (scrollX || scrollY) {\n context.translate(scrollX, scrollY);\n }\n let p: any;\n if (params && params.renderInGroup) {\n p = params.renderInGroup(\n params.renderInGroupParams?.skipSort,\n group,\n drawContext,\n params.renderInGroupParams?.nextM\n );\n }\n\n if (context.modelMatrix !== lastModelMatrix) {\n mat4Allocate.free(context.modelMatrix);\n }\n context.modelMatrix = lastModelMatrix;\n\n context.baseGlobalAlpha = baseGlobalAlpha;\n\n if (drawMode > 0) {\n const { x, y, width, height } = group.attribute;\n // 将原始的context和canvas恢复,另外将newCanvas上的内容绘制到lastCanvas上\n const newContext = context.nativeContext;\n const newCanvas = context.canvas.nativeCanvas;\n lastNativeContext.save();\n lastNativeContext.setTransform(context.dpr, 0, 0, context.dpr, 0, 0, true);\n // 如果drawMode === 1,则需要清一下之前的背景,否则背景就重复绘制了一次\n if (drawMode === 1) {\n newContext.rect(x, y, width, height);\n }\n lastNativeContext.drawImage(\n newCanvas,\n 0,\n 0,\n newCanvas.width,\n newCanvas.height,\n 0,\n 0,\n context.canvas.displayWidth,\n context.canvas.displayHeight\n );\n const transform = newContext.getTransform();\n lastNativeContext.setTransform(transform.a, transform.b, transform.c, transform.d, transform.e, transform.f);\n context.nativeContext = lastNativeContext;\n context.canvas.nativeCanvas = lastNativeCanvas;\n lastNativeContext.restore();\n }\n\n if (p && p.then) {\n p.then(() => {\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n });\n } else {\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/group-render.ts"],"names":[],"mappings":"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","file":"group-render.js","sourcesContent":["import type {\n IGraphicAttribute,\n IContext2d,\n IGroup,\n IMarkAttribute,\n IThemeAttribute,\n IGroupRenderContribution,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider,\n IGroupGraphicAttribute\n} from '../../../interface';\nimport { getTheme } from '../../../graphic/theme';\nimport { getModelMatrix } from '../../../graphic/graphic-service/graphic-service';\nimport { isArray } from '@visactor/vutils';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { GroupRenderContribution } from './contributions/constants';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { GROUP_NUMBER_TYPE } from '../../../graphic/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { defaultGroupBackgroundRenderContribution } from './contributions';\nimport { multiplyMat4Mat4 } from '../../../common/matrix';\nimport { application } from '../../../application';\n\nexport class DefaultCanvasGroupRender implements IGraphicRender {\n type: 'group';\n numberType: number = GROUP_NUMBER_TYPE;\n\n _groupRenderContribitions: IGroupRenderContribution[];\n\n constructor(protected readonly groupRenderContribitions: IContributionProvider<IGroupRenderContribution>) {}\n\n reInit() {\n this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [];\n this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);\n }\n\n drawShape(\n group: IGroup,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n groupAttribute?: Required<IGroupGraphicAttribute>\n ) {\n // 提前判定,否则每次都要获取一堆属性\n const { clip, fill, stroke, background } = group.attribute;\n\n if (!(clip || fill || stroke || background)) {\n return;\n }\n\n groupAttribute = groupAttribute ?? getTheme(group, params?.theme).group;\n\n const {\n opacity = groupAttribute.opacity,\n width = groupAttribute.width,\n height = groupAttribute.height,\n fillOpacity = groupAttribute.fillOpacity,\n strokeOpacity = groupAttribute.strokeOpacity,\n cornerRadius = groupAttribute.cornerRadius,\n path = groupAttribute.path,\n lineWidth = groupAttribute.lineWidth,\n visible = groupAttribute.visible,\n fillStrokeOrder = groupAttribute.fillStrokeOrder,\n cornerType = groupAttribute.cornerType,\n x: originX = groupAttribute.x,\n y: originY = groupAttribute.y\n } = group.attribute;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill, background);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(group.valid && visible)) {\n return;\n }\n\n if (!clip) {\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n }\n\n if (path && path.length && drawContext.drawContribution) {\n // 禁用fill和stroke\n const disableFill = context.disableFill;\n const disableStroke = context.disableStroke;\n const disableBeginPath = context.disableBeginPath;\n context.disableFill = true;\n context.disableStroke = true;\n context.disableBeginPath = true;\n path.forEach(g => {\n const rc = drawContext.drawContribution.getRenderContribution(g);\n rc.draw(g, drawContext.renderService, drawContext, params);\n });\n context.disableFill = disableFill;\n context.disableStroke = disableStroke;\n context.disableBeginPath = disableBeginPath;\n } else if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x, y, width, height);\n } else {\n context.beginPath();\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n }\n\n if (!this._groupRenderContribitions) {\n this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [];\n this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);\n }\n\n const doFillOrStroke = {\n doFill,\n doStroke\n };\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(group, group.attribute, groupAttribute);\n\n this._groupRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.beforeFillStroke) {\n // c.useStyle && context.setCommonStyle(group, group.attribute, x, y, groupAttribute);\n c.drawShape(\n group,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n groupAttribute,\n drawContext,\n fillCb,\n strokeCb,\n doFillOrStroke\n );\n }\n });\n\n // beforeFillStroke contribition可以操作clip范围\n if (clip) {\n context.clip();\n }\n\n const _runFill = () => {\n if ((doFillOrStroke as any).doFill) {\n if (fillCb) {\n fillCb(context, group.attribute, groupAttribute);\n } else if (fVisible) {\n context.setCommonStyle(group, group.attribute, originX - x, originY - y, groupAttribute);\n context.fill();\n }\n }\n };\n\n const _runStroke = () => {\n if ((doFillOrStroke as any).doStroke) {\n if (strokeCb) {\n strokeCb(context, group.attribute, groupAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(group, group.attribute, originX - x, originY - y, groupAttribute);\n context.stroke();\n }\n }\n };\n\n if (!fillStrokeOrder) {\n _runFill();\n _runStroke();\n } else {\n _runStroke();\n _runFill();\n }\n\n this._groupRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.afterFillStroke) {\n // c.useStyle && context.setCommonStyle(group, group.attribute, x, y, groupAttribute);\n c.drawShape(\n group,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n groupAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n });\n }\n\n draw(group: IGroup, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n\n const { clip, baseOpacity = 1, drawMode } = group.attribute;\n const lastNativeContext = context.nativeContext;\n const lastNativeCanvas = context.canvas.nativeCanvas;\n\n if (drawMode > 0) {\n const { x, y, width, height } = group.attribute;\n // 绘制到新的Canvas上,然后再绘制回来\n const canvas = context.canvas;\n const newCanvas = application.global.createCanvas({ width: canvas.width, height: canvas.height, dpr: 1 });\n const newContext = newCanvas.getContext('2d');\n const transform = context.nativeContext.getTransform();\n // 首先应用transform\n newContext.setTransform(transform.a, transform.b, transform.c, transform.d, transform.e, transform.f);\n // 然后将背景绘制到新的canvas上,只绘制group的Bounds区域\n // 如果drawMode === 1,则需要背景\n // 如果drawMode === 2,则不需要背景,只需要group即可\n if (drawMode === 1) {\n newContext.save();\n newContext.clearRect(0, 0, canvas.width, canvas.height);\n newContext.beginPath();\n\n newContext.rect(x, y, width, height);\n newContext.clip();\n newContext.drawImage(\n canvas.nativeCanvas,\n 0,\n 0,\n canvas.width,\n canvas.height,\n 0,\n 0,\n canvas.displayWidth,\n canvas.displayHeight\n );\n newContext.restore();\n }\n // 狸猫换太子,把新的context赋值给context\n context.nativeContext = newContext;\n canvas.nativeCanvas = newCanvas;\n }\n if (clip) {\n context.save();\n } else {\n context.highPerformanceSave();\n }\n const baseGlobalAlpha = context.baseGlobalAlpha;\n context.baseGlobalAlpha *= baseOpacity;\n\n // const lastMatrix = context.modelMatrix;\n // if (context.camera) {\n // const m = group.transMatrix;\n // const matrix = createMat4();\n // mat3Tomat4(matrix, m);\n // const lastModelMatrix = context.modelMatrix;\n // if (lastModelMatrix) {\n // if (matrix) {\n // const m = createMat4();\n // context.modelMatrix = multiplyMat4Mat4(m, lastModelMatrix, matrix);\n // }\n // } else {\n // context.modelMatrix = matrix;\n // }\n // } else {\n // // group直接transform\n // context.transformFromMatrix(group.transMatrix, true);\n // }\n const lastModelMatrix = context.modelMatrix;\n const camera = context.camera;\n if (camera) {\n const groupAttribute = getTheme(group, params?.theme).group;\n const nextModelMatrix = mat4Allocate.allocate();\n // 计算模型矩阵\n const modelMatrix = mat4Allocate.allocate();\n getModelMatrix(modelMatrix, group, groupAttribute);\n if (lastModelMatrix) {\n multiplyMat4Mat4(nextModelMatrix, lastModelMatrix, modelMatrix);\n } else {\n multiplyMat4Mat4(nextModelMatrix, nextModelMatrix, modelMatrix);\n }\n context.modelMatrix = nextModelMatrix;\n mat4Allocate.free(modelMatrix);\n context.setTransform(1, 0, 0, 1, 0, 0, true);\n } else {\n // group直接transform\n context.transformFromMatrix(group.transMatrix, true);\n }\n\n context.beginPath();\n // 如果跳过绘制,那就不绘制\n if (params.skipDraw) {\n this.drawShape(\n group,\n context,\n 0,\n 0,\n drawContext,\n params,\n () => false,\n () => false\n );\n } else {\n this.drawShape(group, context, 0, 0, drawContext, null, null, null);\n }\n\n // 绘制子元素的时候要添加scroll\n const { scrollX, scrollY } = group.attribute;\n if (scrollX || scrollY) {\n context.translate(scrollX, scrollY);\n }\n let p: any;\n if (params && params.renderInGroup) {\n p = params.renderInGroup(\n params.renderInGroupParams?.skipSort,\n group,\n drawContext,\n params.renderInGroupParams?.nextM\n );\n }\n\n if (context.modelMatrix !== lastModelMatrix) {\n mat4Allocate.free(context.modelMatrix);\n }\n context.modelMatrix = lastModelMatrix;\n\n context.baseGlobalAlpha = baseGlobalAlpha;\n\n if (drawMode > 0) {\n const { x, y, width, height } = group.attribute;\n // 将原始的context和canvas恢复,另外将newCanvas上的内容绘制到lastCanvas上\n const newContext = context.nativeContext;\n const newCanvas = context.canvas.nativeCanvas;\n lastNativeContext.save();\n lastNativeContext.setTransform(context.dpr, 0, 0, context.dpr, 0, 0, true);\n // 如果drawMode === 1,则需要清一下之前的背景,否则背景就重复绘制了一次\n if (drawMode === 1) {\n newContext.rect(x, y, width, height);\n }\n lastNativeContext.drawImage(\n newCanvas,\n 0,\n 0,\n newCanvas.width,\n newCanvas.height,\n 0,\n 0,\n context.canvas.displayWidth,\n context.canvas.displayHeight\n );\n const transform = newContext.getTransform();\n lastNativeContext.setTransform(transform.a, transform.b, transform.c, transform.d, transform.e, transform.f);\n context.nativeContext = lastNativeContext;\n context.canvas.nativeCanvas = lastNativeCanvas;\n lastNativeContext.restore();\n }\n\n if (p && p.then) {\n p.then(() => {\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n });\n } else {\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n }\n }\n}\n"]}
@@ -1,2 +1,4 @@
1
- import { ContainerModule } from '../../../common/inversify';
2
- export declare const imageModule: ContainerModule;
1
+ export declare function bindImageRenderModule({ bind }: {
2
+ bind: any;
3
+ }): void;
4
+ export declare const imageModule: typeof bindImageRenderModule;
@@ -1,7 +1,5 @@
1
1
  import { bindContributionProvider } from "../../../common/contribution-provider";
2
2
 
3
- import { ContainerModule } from "../../../common/inversify";
4
-
5
3
  import { DefaultBaseInteractiveRenderContribution } from "./contributions";
6
4
 
7
5
  import { ImageRenderContribution } from "./contributions/constants";
@@ -12,9 +10,11 @@ import { GraphicRender, ImageRender } from "./symbol";
12
10
 
13
11
  let loadImageModule = !1;
14
12
 
15
- export const imageModule = new ContainerModule((bind => {
13
+ export function bindImageRenderModule({bind: bind}) {
16
14
  loadImageModule || (loadImageModule = !0, bind(ImageRender).to(DefaultCanvasImageRender).inSingletonScope(),
17
15
  bind(GraphicRender).toService(ImageRender), bind(ImageRenderContribution).toService(DefaultBaseInteractiveRenderContribution),
18
16
  bindContributionProvider(bind, ImageRenderContribution));
19
- }));
17
+ }
18
+
19
+ export const imageModule = bindImageRenderModule;
20
20
  //# sourceMappingURL=image-module.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/image-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,wCAAwC,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;IACpD,IAAI,eAAe,EAAE;QACnB,OAAO;KACR;IACD,eAAe,GAAG,IAAI,CAAC;IAEvB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;IAElF,wBAAwB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC","file":"image-module.js","sourcesContent":["import { bindContributionProvider } from '../../../common/contribution-provider';\nimport { ContainerModule } from '../../../common/inversify';\nimport { DefaultBaseInteractiveRenderContribution } from './contributions';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { DefaultCanvasImageRender } from './image-render';\nimport { GraphicRender, ImageRender } from './symbol';\n\nlet loadImageModule = false;\nexport const imageModule = new ContainerModule(bind => {\n if (loadImageModule) {\n return;\n }\n loadImageModule = true;\n // image渲染器\n bind(ImageRender).to(DefaultCanvasImageRender).inSingletonScope();\n bind(GraphicRender).toService(ImageRender);\n bind(ImageRenderContribution).toService(DefaultBaseInteractiveRenderContribution);\n // image 渲染器注入contributions\n bindContributionProvider(bind, ImageRenderContribution);\n});\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/image-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,wCAAwC,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,MAAM,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAiB;IAC3D,IAAI,eAAe,EAAE;QACnB,OAAO;KACR;IACD,eAAe,GAAG,IAAI,CAAC;IAEvB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;IAElF,wBAAwB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC","file":"image-module.js","sourcesContent":["import { bindContributionProvider } from '../../../common/contribution-provider';\nimport { DefaultBaseInteractiveRenderContribution } from './contributions';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { DefaultCanvasImageRender } from './image-render';\nimport { GraphicRender, ImageRender } from './symbol';\n\nlet loadImageModule = false;\nexport function bindImageRenderModule({ bind }: { bind: any }) {\n if (loadImageModule) {\n return;\n }\n loadImageModule = true;\n // image渲染器\n bind(ImageRender).to(DefaultCanvasImageRender).inSingletonScope();\n bind(GraphicRender).toService(ImageRender);\n bind(ImageRenderContribution).toService(DefaultBaseInteractiveRenderContribution);\n // image 渲染器注入contributions\n bindContributionProvider(bind, ImageRenderContribution);\n}\n\nexport const imageModule = bindImageRenderModule;\n"]}
@@ -1,6 +1,7 @@
1
1
  import type { IGraphicAttribute, IContext2d, IMarkAttribute, BackgroundSizing, BackgroundMode, IImage, IImageGraphicAttribute, IThemeAttribute, IGraphicRender, IImageRenderContribution, IContributionProvider, IDrawContext, IGraphicRenderDrawParams, IRenderService } from '../../../interface';
2
2
  import { BaseRender } from './base-render';
3
3
  export type IImageLayoutDrawParams = Pick<IImageGraphicAttribute, 'repeatX' | 'repeatY' | 'imageMode' | 'imageScale' | 'imageOffsetX' | 'imageOffsetY' | 'imagePosition'>;
4
+ export declare function resolveImageRepeatMode(repeatX: IImageGraphicAttribute['repeatX'], repeatY: IImageGraphicAttribute['repeatY']): 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
4
5
  export declare function resolveImageMode({ repeatX, repeatY, imageMode }: Pick<IImageLayoutDrawParams, 'repeatX' | 'repeatY' | 'imageMode'>): {
5
6
  repeatMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
6
7
  sizingMode: BackgroundSizing;
@@ -10,8 +11,7 @@ export declare function resolveBackgroundParamsByImageSizing(sizingMode: Backgro
10
11
  backgroundFit: boolean;
11
12
  backgroundKeepAspectRatio: boolean;
12
13
  };
13
- export declare function resolveImageRepeatMode(repeatX: IImageGraphicAttribute['repeatX'], repeatY: IImageGraphicAttribute['repeatY']): 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
14
- export declare function shouldClipImageByLayout({ repeatX, repeatY, imageMode, imageScale, imageOffsetX, imageOffsetY, imagePosition }: IImageLayoutDrawParams): boolean;
14
+ export declare function shouldClipImageByLayout({ repeatX, repeatY, imageMode, imageScale, imageOffsetX, imageOffsetY }: IImageLayoutDrawParams): boolean;
15
15
  export declare function drawImageWithLayout(context: IContext2d, data: any, x: number, y: number, width: number, height: number, { repeatX, repeatY, imageMode, imageScale, imageOffsetX, imageOffsetY, imagePosition }: IImageLayoutDrawParams): void;
16
16
  export declare class DefaultCanvasImageRender extends BaseRender<IImage> implements IGraphicRender {
17
17
  protected readonly graphicRenderContributions: IContributionProvider<IImageRenderContribution>;
@@ -1,23 +1,5 @@
1
- var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
- var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
- if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5
- }, __metadata = this && this.__metadata || function(k, v) {
6
- if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- }, __param = this && this.__param || function(paramIndex, decorator) {
8
- return function(target, key) {
9
- decorator(target, key, paramIndex);
10
- };
11
- };
12
-
13
- import { inject, injectable, named } from "../../../common/inversify-lite";
14
-
15
- import { ContributionProvider } from "../../../common/contribution-provider";
16
-
17
1
  import { getTheme } from "../../../graphic/theme";
18
2
 
19
- import { ImageRenderContribution } from "./contributions/constants";
20
-
21
3
  import { IMAGE_NUMBER_TYPE } from "../../../graphic/constants";
22
4
 
23
5
  import { isArray, isString } from "@visactor/vutils";
@@ -34,6 +16,12 @@ import { drawBackgroundImage } from "./contributions/base-contribution-render";
34
16
 
35
17
  const repeatStr = [ "", "repeat-x", "repeat-y", "repeat" ];
36
18
 
19
+ export function resolveImageRepeatMode(repeatX, repeatY) {
20
+ let repeat = 0;
21
+ return "repeat" === repeatX && (repeat |= 1), "repeat" === repeatY && (repeat |= 2),
22
+ repeat ? repeatStr[repeat] : "no-repeat";
23
+ }
24
+
37
25
  export function resolveImageMode({repeatX: repeatX = "no-repeat", repeatY: repeatY = "no-repeat", imageMode: imageMode}) {
38
26
  const repeatMode = resolveImageRepeatMode(repeatX, repeatY);
39
27
  return {
@@ -57,13 +45,7 @@ export function resolveBackgroundParamsByImageSizing(sizingMode) {
57
45
  };
58
46
  }
59
47
 
60
- export function resolveImageRepeatMode(repeatX, repeatY) {
61
- let repeat = 0;
62
- return "repeat" === repeatX && (repeat |= 1), "repeat" === repeatY && (repeat |= 2),
63
- repeat ? repeatStr[repeat] : "no-repeat";
64
- }
65
-
66
- export function shouldClipImageByLayout({repeatX: repeatX = "no-repeat", repeatY: repeatY = "no-repeat", imageMode: imageMode, imageScale: imageScale = 1, imageOffsetX: imageOffsetX = 0, imageOffsetY: imageOffsetY = 0, imagePosition: imagePosition = "top-left"}) {
48
+ export function shouldClipImageByLayout({repeatX: repeatX = "no-repeat", repeatY: repeatY = "no-repeat", imageMode: imageMode, imageScale: imageScale = 1, imageOffsetX: imageOffsetX = 0, imageOffsetY: imageOffsetY = 0}) {
67
49
  const {repeatMode: repeatMode, sizingMode: sizingMode} = resolveImageMode({
68
50
  repeatX: repeatX,
69
51
  repeatY: repeatY,
@@ -100,7 +82,7 @@ export function drawImageWithLayout(context, data, x, y, width, height, {repeatX
100
82
  });
101
83
  }
102
84
 
103
- let DefaultCanvasImageRender = class extends BaseRender {
85
+ export class DefaultCanvasImageRender extends BaseRender {
104
86
  constructor(graphicRenderContributions) {
105
87
  super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = IMAGE_NUMBER_TYPE,
106
88
  this.builtinContributions = [ defaultImageRenderContribution, defaultImageBackgroundRenderContribution ],
@@ -157,9 +139,5 @@ let DefaultCanvasImageRender = class extends BaseRender {
157
139
  const imageAttribute = getTheme(image).image;
158
140
  this._draw(image, imageAttribute, !1, drawContext);
159
141
  }
160
- };
161
-
162
- DefaultCanvasImageRender = __decorate([ injectable(), __param(0, inject(ContributionProvider)), __param(0, named(ImageRenderContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasImageRender);
163
-
164
- export { DefaultCanvasImageRender };
142
+ }
165
143
  //# sourceMappingURL=image-render.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/image-render.ts"],"names":[],"mappings":"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","file":"image-render.js","sourcesContent":["import { inject, injectable, named } from '../../../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n BackgroundSizing,\n BackgroundMode,\n IImage,\n IImageGraphicAttribute,\n IThemeAttribute,\n IGraphicRender,\n IImageRenderContribution,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { IMAGE_NUMBER_TYPE } from '../../../graphic/constants';\nimport { isArray, isString } from '@visactor/vutils';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { BaseRender } from './base-render';\nimport { defaultImageBackgroundRenderContribution, defaultImageRenderContribution } from './contributions';\nimport { ResourceLoader } from '../../../resource-loader/loader';\nimport { drawBackgroundImage } from './contributions/base-contribution-render';\n\nconst repeatStr = ['', 'repeat-x', 'repeat-y', 'repeat'];\n\nexport type IImageLayoutDrawParams = Pick<\n IImageGraphicAttribute,\n 'repeatX' | 'repeatY' | 'imageMode' | 'imageScale' | 'imageOffsetX' | 'imageOffsetY' | 'imagePosition'\n>;\n\nexport function resolveImageMode({\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode\n}: Pick<IImageLayoutDrawParams, 'repeatX' | 'repeatY' | 'imageMode'>): {\n repeatMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';\n sizingMode: BackgroundSizing;\n} {\n const repeatMode = resolveImageRepeatMode(repeatX, repeatY);\n\n return {\n repeatMode,\n sizingMode: repeatMode === 'no-repeat' ? imageMode ?? 'fill' : 'fill'\n };\n}\n\nconst IMAGE_MODE_TO_BACKGROUND_MODE: Record<BackgroundSizing, BackgroundMode> = {\n cover: 'no-repeat-cover',\n contain: 'no-repeat-contain',\n fill: 'no-repeat-fill',\n auto: 'no-repeat-auto'\n};\n\nexport function resolveBackgroundParamsByImageSizing(sizingMode: BackgroundSizing): {\n backgroundMode: BackgroundMode;\n backgroundFit: boolean;\n backgroundKeepAspectRatio: boolean;\n} {\n return {\n backgroundMode: IMAGE_MODE_TO_BACKGROUND_MODE[sizingMode],\n backgroundFit: false,\n backgroundKeepAspectRatio: false\n };\n}\n\nexport function resolveImageRepeatMode(\n repeatX: IImageGraphicAttribute['repeatX'],\n repeatY: IImageGraphicAttribute['repeatY']\n): 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' {\n let repeat = 0;\n if (repeatX === 'repeat') {\n repeat |= 0b0001;\n }\n if (repeatY === 'repeat') {\n repeat |= 0b0010;\n }\n return repeat ? (repeatStr[repeat] as 'repeat' | 'repeat-x' | 'repeat-y') : 'no-repeat';\n}\n\nexport function shouldClipImageByLayout({\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode,\n imageScale = 1,\n imageOffsetX = 0,\n imageOffsetY = 0,\n imagePosition = 'top-left'\n}: IImageLayoutDrawParams): boolean {\n const { repeatMode, sizingMode } = resolveImageMode({\n repeatX,\n repeatY,\n imageMode\n });\n return (\n repeatMode === 'no-repeat' &&\n (sizingMode === 'cover' || sizingMode === 'auto' || imageScale !== 1 || imageOffsetX !== 0 || imageOffsetY !== 0)\n );\n}\n\nexport function drawImageWithLayout(\n context: IContext2d,\n data: any,\n x: number,\n y: number,\n width: number,\n height: number,\n {\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode,\n imageScale = 1,\n imageOffsetX = 0,\n imageOffsetY = 0,\n imagePosition = 'top-left'\n }: IImageLayoutDrawParams\n) {\n const { repeatMode, sizingMode } = resolveImageMode({\n repeatX,\n repeatY,\n imageMode\n });\n const imageBackgroundParams =\n repeatMode === 'no-repeat'\n ? resolveBackgroundParamsByImageSizing(sizingMode)\n : {\n backgroundMode: repeatMode,\n backgroundFit: false,\n backgroundKeepAspectRatio: false\n };\n drawBackgroundImage(\n context,\n data,\n {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height,\n width: () => width,\n height: () => height\n } as any,\n {\n backgroundMode: imageBackgroundParams.backgroundMode,\n backgroundFit: imageBackgroundParams.backgroundFit,\n backgroundKeepAspectRatio: imageBackgroundParams.backgroundKeepAspectRatio,\n backgroundScale: imageScale,\n backgroundOffsetX: imageOffsetX,\n backgroundOffsetY: imageOffsetY,\n backgroundPosition: imagePosition\n }\n );\n}\n\n@injectable()\nexport class DefaultCanvasImageRender extends BaseRender<IImage> implements IGraphicRender {\n type: 'image';\n numberType: number = IMAGE_NUMBER_TYPE;\n\n constructor(\n @inject(ContributionProvider)\n @named(ImageRenderContribution)\n protected readonly graphicRenderContributions: IContributionProvider<IImageRenderContribution>\n ) {\n super();\n this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution];\n this.init(graphicRenderContributions);\n }\n\n drawShape(\n image: IImage,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const imageAttribute = graphicService.themeService.getCurrentTheme().imageAttribute;\n const imageAttribute = getTheme(image).image;\n const {\n repeatX = imageAttribute.repeatX,\n repeatY = imageAttribute.repeatY,\n x: originX = imageAttribute.x,\n y: originY = imageAttribute.y,\n cornerRadius = imageAttribute.cornerRadius,\n fillStrokeOrder = imageAttribute.fillStrokeOrder,\n cornerType = imageAttribute.cornerType,\n imageMode = imageAttribute.imageMode,\n imageScale = imageAttribute.imageScale,\n imageOffsetX = imageAttribute.imageOffsetX,\n imageOffsetY = imageAttribute.imageOffsetY,\n imagePosition = imageAttribute.imagePosition,\n image: url\n } = image.attribute;\n\n const data = this.valid(image, imageAttribute, fillCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n if (res.state !== 'success') {\n return;\n }\n\n const width = image.width;\n const height = image.height;\n context.beginPath();\n\n // deal with cornerRadius\n let needCornerClip = false;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.rect(x, y, width, height);\n } else {\n // context.beginPath();\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n needCornerClip = true;\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(image, image.attribute, imageAttribute);\n // context.beginPath();\n // context.image(x, y, width, height);\n\n const _runFill = () => {\n if (doFill) {\n if (fillCb) {\n fillCb(context, image.attribute, imageAttribute);\n } else if (fVisible) {\n context.setCommonStyle(image, image.attribute, x, y, imageAttribute);\n drawImageWithLayout(context, res.data, x, y, width, height, {\n repeatX,\n repeatY,\n imageMode,\n imageScale,\n imageOffsetX,\n imageOffsetY,\n imagePosition\n });\n }\n }\n };\n\n const _runStroke = () => {\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, image.attribute, imageAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(image, image.attribute, originX - x, originY - y, imageAttribute);\n context.stroke();\n }\n }\n };\n\n const needLayoutClip = shouldClipImageByLayout({\n repeatX,\n repeatY,\n imageMode,\n imageScale,\n imageOffsetX,\n imageOffsetY,\n imagePosition\n });\n const needClip = needCornerClip || needLayoutClip;\n\n if (!fillStrokeOrder) {\n if (needClip) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needClip) {\n context.restore();\n }\n _runStroke();\n } else {\n _runStroke();\n if (needClip) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needClip) {\n context.restore();\n }\n }\n\n this.afterRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n }\n\n draw(image: IImage, renderService: IRenderService, drawContext: IDrawContext) {\n const { image: url } = image.attribute;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n // if (res.state !== 'success') {\n // return;\n // }\n if (res.state === 'loading' && isString(url)) {\n ResourceLoader.improveImageLoading(url);\n return;\n } else if (res.state !== 'success') {\n return;\n }\n\n const { context } = renderService.drawParams;\n if (!context) {\n return;\n }\n const imageAttribute = getTheme(image).image;\n this._draw(image, imageAttribute, false, drawContext);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/image-render.ts"],"names":[],"mappings":"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","file":"image-render.js","sourcesContent":["import { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n BackgroundSizing,\n BackgroundMode,\n IImage,\n IImageGraphicAttribute,\n IThemeAttribute,\n IGraphicRender,\n IImageRenderContribution,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { fillVisible, runFill } from './utils';\nimport { IMAGE_NUMBER_TYPE } from '../../../graphic/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { isArray, isString } from '@visactor/vutils';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { BaseRender } from './base-render';\nimport { defaultImageBackgroundRenderContribution, defaultImageRenderContribution } from './contributions';\nimport { ResourceLoader } from '../../../resource-loader/loader';\nimport { drawBackgroundImage } from './contributions/base-contribution-render';\n\nconst repeatStr = ['', 'repeat-x', 'repeat-y', 'repeat'];\n\nexport type IImageLayoutDrawParams = Pick<\n IImageGraphicAttribute,\n 'repeatX' | 'repeatY' | 'imageMode' | 'imageScale' | 'imageOffsetX' | 'imageOffsetY' | 'imagePosition'\n>;\n\nexport function resolveImageRepeatMode(\n repeatX: IImageGraphicAttribute['repeatX'],\n repeatY: IImageGraphicAttribute['repeatY']\n): 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' {\n let repeat = 0;\n if (repeatX === 'repeat') {\n repeat |= 0b0001;\n }\n if (repeatY === 'repeat') {\n repeat |= 0b0010;\n }\n return repeat ? (repeatStr[repeat] as 'repeat' | 'repeat-x' | 'repeat-y') : 'no-repeat';\n}\n\nexport function resolveImageMode({\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode\n}: Pick<IImageLayoutDrawParams, 'repeatX' | 'repeatY' | 'imageMode'>): {\n repeatMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';\n sizingMode: BackgroundSizing;\n} {\n const repeatMode = resolveImageRepeatMode(repeatX, repeatY);\n return {\n repeatMode,\n sizingMode: repeatMode === 'no-repeat' ? imageMode ?? 'fill' : 'fill'\n };\n}\n\nconst IMAGE_MODE_TO_BACKGROUND_MODE: Record<BackgroundSizing, BackgroundMode> = {\n cover: 'no-repeat-cover',\n contain: 'no-repeat-contain',\n fill: 'no-repeat-fill',\n auto: 'no-repeat-auto'\n};\n\nexport function resolveBackgroundParamsByImageSizing(sizingMode: BackgroundSizing): {\n backgroundMode: BackgroundMode;\n backgroundFit: boolean;\n backgroundKeepAspectRatio: boolean;\n} {\n return {\n backgroundMode: IMAGE_MODE_TO_BACKGROUND_MODE[sizingMode],\n backgroundFit: false,\n backgroundKeepAspectRatio: false\n };\n}\n\nexport function shouldClipImageByLayout({\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode,\n imageScale = 1,\n imageOffsetX = 0,\n imageOffsetY = 0\n}: IImageLayoutDrawParams): boolean {\n const { repeatMode, sizingMode } = resolveImageMode({\n repeatX,\n repeatY,\n imageMode\n });\n return (\n repeatMode === 'no-repeat' &&\n (sizingMode === 'cover' || sizingMode === 'auto' || imageScale !== 1 || imageOffsetX !== 0 || imageOffsetY !== 0)\n );\n}\n\nexport function drawImageWithLayout(\n context: IContext2d,\n data: any,\n x: number,\n y: number,\n width: number,\n height: number,\n {\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode,\n imageScale = 1,\n imageOffsetX = 0,\n imageOffsetY = 0,\n imagePosition = 'top-left'\n }: IImageLayoutDrawParams\n) {\n const { repeatMode, sizingMode } = resolveImageMode({\n repeatX,\n repeatY,\n imageMode\n });\n const imageBackgroundParams =\n repeatMode === 'no-repeat'\n ? resolveBackgroundParamsByImageSizing(sizingMode)\n : {\n backgroundMode: repeatMode,\n backgroundFit: false,\n backgroundKeepAspectRatio: false\n };\n\n drawBackgroundImage(\n context,\n data,\n {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height,\n width: () => width,\n height: () => height\n } as any,\n {\n backgroundMode: imageBackgroundParams.backgroundMode,\n backgroundFit: imageBackgroundParams.backgroundFit,\n backgroundKeepAspectRatio: imageBackgroundParams.backgroundKeepAspectRatio,\n backgroundScale: imageScale,\n backgroundOffsetX: imageOffsetX,\n backgroundOffsetY: imageOffsetY,\n backgroundPosition: imagePosition\n }\n );\n}\n\nexport class DefaultCanvasImageRender extends BaseRender<IImage> implements IGraphicRender {\n type: 'image';\n numberType: number = IMAGE_NUMBER_TYPE;\n\n constructor(protected readonly graphicRenderContributions: IContributionProvider<IImageRenderContribution>) {\n super();\n this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution];\n this.init(graphicRenderContributions);\n }\n\n drawShape(\n image: IImage,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const imageAttribute = graphicService.themeService.getCurrentTheme().imageAttribute;\n const imageAttribute = getTheme(image).image;\n const {\n repeatX = imageAttribute.repeatX,\n repeatY = imageAttribute.repeatY,\n x: originX = imageAttribute.x,\n y: originY = imageAttribute.y,\n cornerRadius = imageAttribute.cornerRadius,\n fillStrokeOrder = imageAttribute.fillStrokeOrder,\n cornerType = imageAttribute.cornerType,\n imageMode = imageAttribute.imageMode,\n imageScale = imageAttribute.imageScale,\n imageOffsetX = imageAttribute.imageOffsetX,\n imageOffsetY = imageAttribute.imageOffsetY,\n imagePosition = imageAttribute.imagePosition,\n image: url\n } = image.attribute;\n\n const data = this.valid(image, imageAttribute, fillCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n if (res.state !== 'success') {\n return;\n }\n\n const width = image.width;\n const height = image.height;\n context.beginPath();\n\n // deal with cornerRadius\n let needCornerClip = false;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.rect(x, y, width, height);\n } else {\n // context.beginPath();\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n needCornerClip = true;\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(image, image.attribute, imageAttribute);\n // context.beginPath();\n // context.image(x, y, width, height);\n\n const _runFill = () => {\n if (doFill) {\n if (fillCb) {\n fillCb(context, image.attribute, imageAttribute);\n } else if (fVisible) {\n context.setCommonStyle(image, image.attribute, x, y, imageAttribute);\n drawImageWithLayout(context, res.data, x, y, width, height, {\n repeatX,\n repeatY,\n imageMode,\n imageScale,\n imageOffsetX,\n imageOffsetY,\n imagePosition\n });\n }\n }\n };\n\n const _runStroke = () => {\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, image.attribute, imageAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(image, image.attribute, originX - x, originY - y, imageAttribute);\n context.stroke();\n }\n }\n };\n\n const needLayoutClip = shouldClipImageByLayout({\n repeatX,\n repeatY,\n imageMode,\n imageScale,\n imageOffsetX,\n imageOffsetY,\n imagePosition\n });\n const needClip = needCornerClip || needLayoutClip;\n\n if (!fillStrokeOrder) {\n if (needClip) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needClip) {\n context.restore();\n }\n _runStroke();\n } else {\n _runStroke();\n if (needClip) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needClip) {\n context.restore();\n }\n }\n\n this.afterRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n }\n\n draw(image: IImage, renderService: IRenderService, drawContext: IDrawContext) {\n const { image: url } = image.attribute;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n // if (res.state !== 'success') {\n // return;\n // }\n if (res.state === 'loading' && isString(url)) {\n ResourceLoader.improveImageLoading(url);\n return;\n } else if (res.state !== 'success') {\n return;\n }\n\n const { context } = renderService.drawParams;\n if (!context) {\n return;\n }\n const imageAttribute = getTheme(image).image;\n this._draw(image, imageAttribute, false, drawContext);\n }\n}\n"]}
@@ -1,11 +1,3 @@
1
- var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
- var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
- if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5
- };
6
-
7
- import { injectable } from "../../../common/inversify-lite";
8
-
9
1
  import { AREA_NUMBER_TYPE } from "../../../graphic/constants";
10
2
 
11
3
  import { getTheme } from "../../../graphic/theme";
@@ -16,7 +8,7 @@ import { DefaultCanvasAreaRender } from "./area-render";
16
8
 
17
9
  import { drawIncrementalAreaSegments } from "../../../common/render-curve";
18
10
 
19
- let DefaultIncrementalCanvasAreaRender = class extends DefaultCanvasAreaRender {
11
+ export class DefaultIncrementalCanvasAreaRender extends DefaultCanvasAreaRender {
20
12
  constructor() {
21
13
  super(...arguments), this.numberType = AREA_NUMBER_TYPE;
22
14
  }
@@ -38,9 +30,5 @@ let DefaultIncrementalCanvasAreaRender = class extends DefaultCanvasAreaRender {
38
30
  }), context.setShadowBlendStyle && context.setShadowBlendStyle(area, attribute, defaultAttribute),
39
31
  context.setCommonStyle(area, attribute, offsetX, offsetY, defaultAttribute), context.fill());
40
32
  }
41
- };
42
-
43
- DefaultIncrementalCanvasAreaRender = __decorate([ injectable() ], DefaultIncrementalCanvasAreaRender);
44
-
45
- export { DefaultIncrementalCanvasAreaRender };
33
+ }
46
34
  //# sourceMappingURL=incremental-area-render.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/incremental-area-render.ts"],"names":[],"mappings":"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","file":"incremental-area-render.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport type {\n IArea,\n IAreaGraphicAttribute,\n IAreaSegment,\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IThemeAttribute,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IDrawContext\n} from '../../../interface';\nimport { AREA_NUMBER_TYPE } from '../../../graphic/constants';\nimport { getTheme } from '../../../graphic/theme';\nimport { fillVisible, runFill } from './utils';\nimport { DefaultCanvasAreaRender } from './area-render';\nimport { drawIncrementalAreaSegments } from '../../../common/render-curve';\n\n/**\n * 默认的基于canvas的line渲染器\n * 单例\n */\n@injectable()\nexport class DefaultIncrementalCanvasAreaRender extends DefaultCanvasAreaRender implements IGraphicRender {\n declare type: 'area';\n numberType: number = AREA_NUMBER_TYPE;\n\n drawShape(\n area: IArea,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n lineAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n if (area.incremental && drawContext.multiGraphicOptions) {\n const { startAtIdx, length } = drawContext.multiGraphicOptions;\n const { segments = [] } = area.attribute;\n if (startAtIdx > segments.length) {\n return;\n }\n const areaAttribute = getTheme(area).area;\n const {\n fill = areaAttribute.fill,\n fillOpacity = areaAttribute.fillOpacity,\n opacity = areaAttribute.opacity,\n visible = areaAttribute.visible\n } = area.attribute;\n // 不绘制或者透明\n const fVisible = fillVisible(opacity, fillOpacity, fill);\n const doFill = runFill(fill);\n\n if (!(area.valid && visible)) {\n return;\n }\n\n if (!doFill) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || fillCb)) {\n return;\n }\n\n // 不支持clipRange,不支持pick,仅支持最基础的线段绘制\n for (let i = startAtIdx; i < startAtIdx + length; i++) {\n this.drawIncreaseSegment(\n area,\n context,\n segments[i - 1],\n segments[i],\n area.attribute.segments[i],\n [areaAttribute, area.attribute],\n x,\n y\n );\n }\n } else {\n super.drawShape(area, context, x, y, drawContext, params, fillCb);\n }\n }\n\n drawIncreaseSegment(\n area: IArea,\n context: IContext2d,\n lastSeg: IAreaSegment,\n seg: IAreaSegment,\n attribute: Partial<IAreaGraphicAttribute>,\n defaultAttribute: Required<IAreaGraphicAttribute> | Partial<IAreaGraphicAttribute>[],\n offsetX: number,\n offsetY: number\n ) {\n if (!seg) {\n return;\n }\n\n context.beginPath();\n drawIncrementalAreaSegments(context.camera ? context : context.nativeContext, lastSeg, seg, {\n offsetX,\n offsetY\n });\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(area, attribute, defaultAttribute);\n context.setCommonStyle(area, attribute, offsetX, offsetY, defaultAttribute);\n context.fill();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/incremental-area-render.ts"],"names":[],"mappings":"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","file":"incremental-area-render.js","sourcesContent":["import type {\n IArea,\n IAreaGraphicAttribute,\n IAreaSegment,\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IThemeAttribute,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IDrawContext\n} from '../../../interface';\nimport { AREA_NUMBER_TYPE } from '../../../graphic/constants';\nimport { getTheme } from '../../../graphic/theme';\nimport { fillVisible, runFill } from './utils';\nimport { DefaultCanvasAreaRender } from './area-render';\nimport { drawIncrementalAreaSegments } from '../../../common/render-curve';\n\n/**\n * 默认的基于canvas的line渲染器\n * 单例\n */\nexport class DefaultIncrementalCanvasAreaRender extends DefaultCanvasAreaRender implements IGraphicRender {\n declare type: 'area';\n numberType: number = AREA_NUMBER_TYPE;\n\n drawShape(\n area: IArea,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n lineAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n if (area.incremental && drawContext.multiGraphicOptions) {\n const { startAtIdx, length } = drawContext.multiGraphicOptions;\n const { segments = [] } = area.attribute;\n if (startAtIdx > segments.length) {\n return;\n }\n const areaAttribute = getTheme(area).area;\n const {\n fill = areaAttribute.fill,\n fillOpacity = areaAttribute.fillOpacity,\n opacity = areaAttribute.opacity,\n visible = areaAttribute.visible\n } = area.attribute;\n // 不绘制或者透明\n const fVisible = fillVisible(opacity, fillOpacity, fill);\n const doFill = runFill(fill);\n\n if (!(area.valid && visible)) {\n return;\n }\n\n if (!doFill) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || fillCb)) {\n return;\n }\n\n // 不支持clipRange,不支持pick,仅支持最基础的线段绘制\n for (let i = startAtIdx; i < startAtIdx + length; i++) {\n this.drawIncreaseSegment(\n area,\n context,\n segments[i - 1],\n segments[i],\n area.attribute.segments[i],\n [areaAttribute, area.attribute],\n x,\n y\n );\n }\n } else {\n super.drawShape(area, context, x, y, drawContext, params, fillCb);\n }\n }\n\n drawIncreaseSegment(\n area: IArea,\n context: IContext2d,\n lastSeg: IAreaSegment,\n seg: IAreaSegment,\n attribute: Partial<IAreaGraphicAttribute>,\n defaultAttribute: Required<IAreaGraphicAttribute> | Partial<IAreaGraphicAttribute>[],\n offsetX: number,\n offsetY: number\n ) {\n if (!seg) {\n return;\n }\n\n context.beginPath();\n drawIncrementalAreaSegments(context.camera ? context : context.nativeContext, lastSeg, seg, {\n offsetX,\n offsetY\n });\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(area, attribute, defaultAttribute);\n context.setCommonStyle(area, attribute, offsetX, offsetY, defaultAttribute);\n context.fill();\n }\n}\n"]}
@@ -6,10 +6,10 @@ declare enum STATUS {
6
6
  STOP = 1
7
7
  }
8
8
  export declare class DefaultIncrementalDrawContribution extends DefaultDrawContribution implements IDrawContribution {
9
- protected readonly contributions: IGraphicRender[];
9
+ protected contributions: IGraphicRender[];
10
10
  protected readonly lineRender: IGraphicRender;
11
11
  protected readonly areaRender: IGraphicRender;
12
- protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>;
12
+ protected drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>;
13
13
  rendering: boolean;
14
14
  protected currFrameStartAt: number;
15
15
  protected currentIdx: number;
@@ -1,14 +1,4 @@
1
- var STATUS, __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
- var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
- if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
4
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5
- }, __metadata = this && this.__metadata || function(k, v) {
6
- if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- }, __param = this && this.__param || function(paramIndex, decorator) {
8
- return function(target, key) {
9
- decorator(target, key, paramIndex);
10
- };
11
- }, __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
1
+ var STATUS, __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
12
2
  return new (P || (P = Promise))((function(resolve, reject) {
13
3
  function fulfilled(value) {
14
4
  try {
@@ -34,31 +24,19 @@ var STATUS, __decorate = this && this.__decorate || function(decorators, target,
34
24
  }));
35
25
  };
36
26
 
37
- import { injectable, inject, named, multiInject } from "../../../common/inversify-lite";
38
-
39
27
  import { DefaultAttribute } from "../../../graphic/config";
40
28
 
41
29
  import { DefaultDrawContribution } from "./draw-contribution";
42
30
 
43
31
  import { SyncHook } from "../../../tapable";
44
32
 
45
- import { GraphicRender } from "./symbol";
46
-
47
- import { DefaultIncrementalCanvasLineRender } from "./incremental-line-render";
48
-
49
- import { DefaultIncrementalCanvasAreaRender } from "./incremental-area-render";
50
-
51
- import { DrawItemInterceptor } from "./draw-interceptor";
52
-
53
- import { ContributionProvider } from "../../../common/contribution-provider";
54
-
55
33
  import { foreachAsync } from "../../../common/sort";
56
34
 
57
35
  !function(STATUS) {
58
36
  STATUS[STATUS.NORMAL = 0] = "NORMAL", STATUS[STATUS.STOP = 1] = "STOP";
59
37
  }(STATUS || (STATUS = {}));
60
38
 
61
- let DefaultIncrementalDrawContribution = class extends DefaultDrawContribution {
39
+ export class DefaultIncrementalDrawContribution extends DefaultDrawContribution {
62
40
  constructor(contributions, lineRender, areaRender, drawItemInterceptorContributions) {
63
41
  super(contributions, drawItemInterceptorContributions), this.contributions = contributions,
64
42
  this.lineRender = lineRender, this.areaRender = areaRender, this.drawItemInterceptorContributions = drawItemInterceptorContributions,
@@ -161,9 +139,5 @@ let DefaultIncrementalDrawContribution = class extends DefaultDrawContribution {
161
139
  })));
162
140
  }));
163
141
  }
164
- };
165
-
166
- DefaultIncrementalDrawContribution = __decorate([ injectable(), __param(0, multiInject(GraphicRender)), __param(1, inject(DefaultIncrementalCanvasLineRender)), __param(2, inject(DefaultIncrementalCanvasAreaRender)), __param(3, inject(ContributionProvider)), __param(3, named(DrawItemInterceptor)), __metadata("design:paramtypes", [ Array, Object, Object, Object ]) ], DefaultIncrementalDrawContribution);
167
-
168
- export { DefaultIncrementalDrawContribution };
142
+ }
169
143
  //# sourceMappingURL=incremental-draw-contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/incremental-draw-contribution.ts"],"names":[],"mappings":"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","file":"incremental-draw-contribution.js","sourcesContent":["import { injectable, inject, named, multiInject } from '../../../common/inversify-lite';\nimport type {\n IGraphic,\n IGroup,\n IRenderService,\n IDrawContext,\n IDrawContribution,\n IGraphicRender,\n IDrawItemInterceptorContribution,\n IContributionProvider\n} from '../../../interface';\nimport { DefaultAttribute } from '../../../graphic/config';\nimport { DefaultDrawContribution } from './draw-contribution';\nimport { SyncHook } from '../../../tapable';\nimport { GraphicRender } from './symbol';\nimport { DefaultIncrementalCanvasLineRender } from './incremental-line-render';\nimport { DefaultIncrementalCanvasAreaRender } from './incremental-area-render';\nimport { DrawItemInterceptor } from './draw-interceptor';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { foreachAsync } from '../../../common/sort';\n\nenum STATUS {\n NORMAL = 0,\n STOP = 1\n}\n\n/**\n * 增量渲染的contribution,基于树状结构针对图元的渲染\n * 不是单例模式\n */\n@injectable()\nexport class DefaultIncrementalDrawContribution extends DefaultDrawContribution implements IDrawContribution {\n rendering: boolean = false;\n protected currFrameStartAt: number = 0;\n protected currentIdx: number = 0;\n protected status: STATUS = STATUS.NORMAL;\n protected checkingForDrawPromise: Promise<any> | null = null;\n hooks = {\n completeDraw: new SyncHook<[]>([])\n };\n protected lastRenderService: IRenderService;\n protected lastDrawContext: IDrawContext;\n protected count: number;\n\n constructor(\n // @inject(ContributionProvider)\n // @named(GraphicRender)\n // protected readonly contributions: ContributionProvider<IGraphicRender>,\n @multiInject(GraphicRender) protected readonly contributions: IGraphicRender[],\n // @inject(RenderSelector) protected readonly renderSelector: IRenderSelector, // 根据图元类型选择对应的renderItem进行渲染\n @inject(DefaultIncrementalCanvasLineRender) protected readonly lineRender: IGraphicRender, // 默认的lineRender\n @inject(DefaultIncrementalCanvasAreaRender) protected readonly areaRender: IGraphicRender, // 默认的lineRender\n // 拦截器\n @inject(ContributionProvider)\n @named(DrawItemInterceptor)\n protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>\n ) {\n super(contributions, drawItemInterceptorContributions);\n this.defaultRenderMap.set(this.lineRender.numberType, this.lineRender);\n this.defaultRenderMap.set(this.areaRender.numberType, this.areaRender);\n }\n\n /**\n *\n * @param renderService\n * @param drawContext restartIncremental为true表示重新执行增量渲染,为false表示不执行增量渲染\n * @returns\n */\n async draw(renderService: IRenderService, drawContext: IDrawContext): Promise<void> {\n // 入口检查是否需要重新绘制\n if (this.checkingForDrawPromise) {\n return;\n }\n this.lastRenderService = renderService;\n this.lastDrawContext = drawContext;\n\n this.checkingForDrawPromise = this.checkForDraw(drawContext);\n const skipDraw = await this.checkingForDrawPromise;\n this.checkingForDrawPromise = null;\n if (skipDraw) {\n return;\n }\n\n this.currentRenderService = renderService;\n const { context, viewBox } = drawContext;\n\n if (!context) {\n return;\n }\n // 增量渲染不需要dirtyBounds\n // const dirtyBounds: IBounds | undefined = this.dirtyBounds.setValue(x, y, x + width, y + height);\n // if (stage.dirtyBounds) {\n // const b = getRectIntersect(dirtyBounds, stage.dirtyBounds, false);\n // dirtyBounds.x1 = Math.floor(b.x1);\n // dirtyBounds.y1 = Math.floor(b.y1);\n // dirtyBounds.x2 = Math.ceil(b.x2);\n // dirtyBounds.y2 = Math.ceil(b.y2);\n // }\n context.inuse = true;\n // 初始化context\n context.clearMatrix();\n context.setTransformForCurrent(true);\n\n // const drawInArea =\n // dirtyBounds.width() * context.dpr !== context.canvas.width ||\n // dirtyBounds.height() * context.dpr !== context.canvas.height;\n context.save();\n\n // if (drawInArea) {\n // context.beginPath();\n // context.rect(dirtyBounds.x1, dirtyBounds.y1, dirtyBounds.width(), dirtyBounds.height());\n // context.clip();\n // }\n\n // this.clearScreen(renderService, context, drawContext);\n\n // 绘制之前需要清空画布\n drawContext.restartIncremental && this.clearScreen(this.currentRenderService, context, drawContext);\n // 设置translate\n context.translate(viewBox.x1, viewBox.y1, true);\n\n context.save();\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroup(group as IGroup, drawContext);\n });\n\n this.hooks.completeDraw.tap('top-draw', () => {\n context.restore();\n context.restore();\n context.draw();\n context.inuse = false;\n this.rendering = false;\n });\n }\n\n protected async _increaseRender(group: IGroup, drawContext: IDrawContext) {\n this.rendering = true;\n await this._renderIncrementalGroup(group, drawContext);\n return;\n }\n\n // 默认group后只有一层节点,也就是group是叶子结点的父节点\n protected async _renderIncrementalGroup(group: IGroup, drawContext: IDrawContext) {\n this.count = group.count;\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n // 增量图元只支持一个,线段和面积图\n if (group.count === 2) {\n const graphic = group.getChildAt(0) as IGraphic;\n if (graphic.incremental && (graphic.attribute as any).segments) {\n if (!graphic.incrementalAt) {\n graphic.incrementalAt = 0;\n }\n while (graphic.incrementalAt < (graphic.attribute as any).segments.length) {\n drawContext.multiGraphicOptions = {\n startAtIdx: graphic.incrementalAt,\n length: graphic.incremental\n };\n this.renderItem(graphic, drawContext);\n graphic.incrementalAt += graphic.incremental;\n await this.waitToNextFrame();\n }\n } else {\n this.renderItem(graphic, drawContext);\n }\n resolve(false);\n return;\n }\n await foreachAsync(group, DefaultAttribute.zIndex, (item: IGraphic, i: number) => {\n if (this.status === STATUS.STOP) {\n return true;\n }\n if (item.isContainer) {\n // 增量渲染group下不应该有其他的group节点\n return false;\n }\n // 如果小于currentIdx,说明还没到当前的位置,那就直接跳过\n if (i < this.currentIdx) {\n return false;\n }\n const frameTail = this.currFrameStartAt + group.incremental;\n // 绘制 currentIdx到this.lastFrameIdx + group.incremental的内容\n if (i < frameTail) {\n this.currentIdx = i + 1;\n this.renderItem(item, drawContext);\n }\n // 下一帧\n if (i === frameTail - 1) {\n this.currFrameStartAt = this.currentIdx;\n // this.lastFrameIdx = this.currentIdx;\n return this.waitToNextFrame();\n }\n\n return false;\n });\n resolve(false);\n }\n });\n });\n this.hooks.completeDraw.call();\n }\n\n protected async waitToNextFrame(): Promise<boolean> {\n return new Promise(resolve => {\n this.global.getRequestAnimationFrame()(() => {\n resolve(false);\n });\n });\n }\n\n /**\n * 检查这次绘制是否跳过,以及执行一些准备\n * 增量渲染有自己的绘制逻辑流程,外部每次触发draw,该图层不一定会执行\n * @returns 返回true代表跳过绘制,false代表进行绘制\n */\n protected async checkForDraw(drawContext: IDrawContext): Promise<boolean> {\n let skip = this.rendering;\n if (drawContext.restartIncremental) {\n skip = false;\n await this.forceStop();\n this.resetToInit();\n }\n return skip;\n }\n\n protected async forceStop() {\n if (this.rendering) {\n this.status = STATUS.STOP;\n await new Promise(resolve => {\n this.hooks.completeDraw.tap('stopCb', () => {\n this.status = STATUS.NORMAL;\n this.hooks.completeDraw.taps = this.hooks.completeDraw.taps.filter(item => {\n return item.name !== 'stopCb';\n });\n resolve(false);\n });\n });\n }\n }\n\n protected resetToInit() {\n this.currFrameStartAt = 0;\n this.currentIdx = 0;\n }\n\n async renderGroup(group: IGroup, drawContext: IDrawContext) {\n if (drawContext.break || group.attribute.visibleAll === false) {\n return;\n }\n if (group.incremental && drawContext.startAtId === group._uid) {\n await this._increaseRender(group, drawContext);\n drawContext.break = true;\n return;\n }\n\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n await foreachAsync(group, DefaultAttribute.zIndex, async (item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n await this.renderGroup(item as IGroup, drawContext);\n } else {\n // 增量渲染不管非_increaseRender的内容\n return;\n }\n });\n resolve(false);\n }\n });\n });\n }\n\n // /**\n // * 一个每一帧都执行的脚本,用于检查和触发执行draw\n // */\n // protected autoRunner() {\n\n // }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/incremental-draw-contribution.ts"],"names":[],"mappings":";;;;;;;;;AAUA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,IAAK,MAGJ;AAHD,WAAK,MAAM;IACT,uCAAU,CAAA;IACV,mCAAQ,CAAA;AACV,CAAC,EAHI,MAAM,KAAN,MAAM,QAGV;AAMD,MAAM,OAAO,kCAAmC,SAAQ,uBAAuB;IAa7E,YACY,aAA+B,EAEtB,UAA0B,EAC1B,UAA0B,EAEnC,gCAAyF;QAEnG,KAAK,CAAC,aAAa,EAAE,gCAAgC,CAAC,CAAC;QAP7C,kBAAa,GAAb,aAAa,CAAkB;QAEtB,eAAU,GAAV,UAAU,CAAgB;QAC1B,eAAU,GAAV,UAAU,CAAgB;QAEnC,qCAAgC,GAAhC,gCAAgC,CAAyD;QAlBrG,cAAS,GAAY,KAAK,CAAC;QACjB,qBAAgB,GAAW,CAAC,CAAC;QAC7B,eAAU,GAAW,CAAC,CAAC;QACvB,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC;QAC/B,2BAAsB,GAAwB,IAAI,CAAC;QAC7D,UAAK,GAAG;YACN,YAAY,EAAE,IAAI,QAAQ,CAAK,EAAE,CAAC;SACnC,CAAC;QAcA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,CAAC;IAQK,IAAI,CAAC,aAA6B,EAAE,WAAyB;;YAEjE,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,OAAO;aACR;YACD,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;YAEnC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC;YACnD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,IAAI,QAAQ,EAAE;gBACZ,OAAO;aACR;YAED,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC;YAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAEzC,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO;aACR;YAUD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YAErB,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAKrC,OAAO,CAAC,IAAI,EAAE,CAAC;YAWf,WAAW,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAEpG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAEhD,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,aAAa,CAAC,eAAe;iBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;gBACb,OAAO,CAAC,MAAA,CAAC,CAAC,SAAS,CAAC,MAAM,mCAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,SAAS,CAAC,MAAM,mCAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC3G,CAAC,CAAC;iBACD,OAAO,CAAC,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,KAAe,EAAE,WAAW,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC3C,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEe,eAAe,CAAC,KAAa,EAAE,WAAyB;;YACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;KAAA;IAGe,uBAAuB,CAAC,KAAa,EAAE,WAAyB;;YAC9E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACzB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE;oBAClC,SAAS,EAAE,GAAS,EAAE;wBAEpB,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;4BACrB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAa,CAAC;4BAChD,IAAI,OAAO,CAAC,WAAW,IAAK,OAAO,CAAC,SAAiB,CAAC,QAAQ,EAAE;gCAC9D,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;oCAC1B,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;iCAC3B;gCACD,OAAO,OAAO,CAAC,aAAa,GAAI,OAAO,CAAC,SAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE;oCACzE,WAAW,CAAC,mBAAmB,GAAG;wCAChC,UAAU,EAAE,OAAO,CAAC,aAAa;wCACjC,MAAM,EAAE,OAAO,CAAC,WAAW;qCAC5B,CAAC;oCACF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oCACtC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;oCAC7C,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;iCAC9B;6BACF;iCAAM;gCACL,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;6BACvC;4BACD,OAAO,CAAC,KAAK,CAAC,CAAC;4BACf,OAAO;yBACR;wBACD,MAAM,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,CAAS,EAAE,EAAE;4BAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE;gCAC/B,OAAO,IAAI,CAAC;6BACb;4BACD,IAAI,IAAI,CAAC,WAAW,EAAE;gCAEpB,OAAO,KAAK,CAAC;6BACd;4BAED,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;gCACvB,OAAO,KAAK,CAAC;6BACd;4BACD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC;4BAE5D,IAAI,CAAC,GAAG,SAAS,EAAE;gCACjB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;gCACxB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;6BACpC;4BAED,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,EAAE;gCACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC;gCAExC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;6BAC/B;4BAED,OAAO,KAAK,CAAC;wBACf,CAAC,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,CAAA;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;KAAA;IAEe,eAAe;;YAC7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC,GAAG,EAAE;oBAC1C,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAOe,YAAY,CAAC,WAAyB;;YACpD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,IAAI,WAAW,CAAC,kBAAkB,EAAE;gBAClC,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEe,SAAS;;YACvB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC1B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE;wBACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;wBAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;4BACxE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;wBAChC,CAAC,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;QACH,CAAC;KAAA;IAES,WAAW;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IAEK,WAAW,CAAC,KAAa,EAAE,WAAyB;;YACxD,IAAI,WAAW,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC7D,OAAO;aACR;YACD,IAAI,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,EAAE;gBAC7D,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC/C,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;gBACzB,OAAO;aACR;YAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE;oBAClC,SAAS,EAAE,GAAS,EAAE;wBACpB,MAAM,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAO,IAAc,EAAE,EAAE;4BAC1E,IAAI,WAAW,CAAC,KAAK,EAAE;gCACrB,OAAO;6BACR;4BACD,IAAI,IAAI,CAAC,WAAW,EAAE;gCACpB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAc,EAAE,WAAW,CAAC,CAAC;6BACrD;iCAAM;gCAEL,OAAO;6BACR;wBACH,CAAC,CAAA,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,CAAA;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CAQF","file":"incremental-draw-contribution.js","sourcesContent":["import type {\n IGraphic,\n IGroup,\n IRenderService,\n IDrawContext,\n IDrawContribution,\n IGraphicRender,\n IDrawItemInterceptorContribution,\n IContributionProvider\n} from '../../../interface';\nimport { DefaultAttribute } from '../../../graphic/config';\nimport { DefaultDrawContribution } from './draw-contribution';\nimport { SyncHook } from '../../../tapable';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { foreachAsync } from '../../../common/sort';\n\nenum STATUS {\n NORMAL = 0,\n STOP = 1\n}\n\n/**\n * 增量渲染的contribution,基于树状结构针对图元的渲染\n * 不是单例模式\n */\nexport class DefaultIncrementalDrawContribution extends DefaultDrawContribution implements IDrawContribution {\n rendering: boolean = false;\n protected currFrameStartAt: number = 0;\n protected currentIdx: number = 0;\n protected status: STATUS = STATUS.NORMAL;\n protected checkingForDrawPromise: Promise<any> | null = null;\n hooks = {\n completeDraw: new SyncHook<[]>([])\n };\n protected lastRenderService: IRenderService;\n protected lastDrawContext: IDrawContext;\n protected count: number;\n\n constructor(\n protected contributions: IGraphicRender[],\n // protected readonly renderSelector: IRenderSelector, // 根据图元类型选择对应的renderItem进行渲染\n protected readonly lineRender: IGraphicRender, // 默认的lineRender\n protected readonly areaRender: IGraphicRender, // 默认的lineRender\n // 拦截器\n protected drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>\n ) {\n super(contributions, drawItemInterceptorContributions);\n this.defaultRenderMap.set(this.lineRender.numberType, this.lineRender);\n this.defaultRenderMap.set(this.areaRender.numberType, this.areaRender);\n }\n\n /**\n *\n * @param renderService\n * @param drawContext restartIncremental为true表示重新执行增量渲染,为false表示不执行增量渲染\n * @returns\n */\n async draw(renderService: IRenderService, drawContext: IDrawContext): Promise<void> {\n // 入口检查是否需要重新绘制\n if (this.checkingForDrawPromise) {\n return;\n }\n this.lastRenderService = renderService;\n this.lastDrawContext = drawContext;\n\n this.checkingForDrawPromise = this.checkForDraw(drawContext);\n const skipDraw = await this.checkingForDrawPromise;\n this.checkingForDrawPromise = null;\n if (skipDraw) {\n return;\n }\n\n this.currentRenderService = renderService;\n const { context, viewBox } = drawContext;\n\n if (!context) {\n return;\n }\n // 增量渲染不需要dirtyBounds\n // const dirtyBounds: IBounds | undefined = this.dirtyBounds.setValue(x, y, x + width, y + height);\n // if (stage.dirtyBounds) {\n // const b = getRectIntersect(dirtyBounds, stage.dirtyBounds, false);\n // dirtyBounds.x1 = Math.floor(b.x1);\n // dirtyBounds.y1 = Math.floor(b.y1);\n // dirtyBounds.x2 = Math.ceil(b.x2);\n // dirtyBounds.y2 = Math.ceil(b.y2);\n // }\n context.inuse = true;\n // 初始化context\n context.clearMatrix();\n context.setTransformForCurrent(true);\n\n // const drawInArea =\n // dirtyBounds.width() * context.dpr !== context.canvas.width ||\n // dirtyBounds.height() * context.dpr !== context.canvas.height;\n context.save();\n\n // if (drawInArea) {\n // context.beginPath();\n // context.rect(dirtyBounds.x1, dirtyBounds.y1, dirtyBounds.width(), dirtyBounds.height());\n // context.clip();\n // }\n\n // this.clearScreen(renderService, context, drawContext);\n\n // 绘制之前需要清空画布\n drawContext.restartIncremental && this.clearScreen(this.currentRenderService, context, drawContext);\n // 设置translate\n context.translate(viewBox.x1, viewBox.y1, true);\n\n context.save();\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroup(group as IGroup, drawContext);\n });\n\n this.hooks.completeDraw.tap('top-draw', () => {\n context.restore();\n context.restore();\n context.draw();\n context.inuse = false;\n this.rendering = false;\n });\n }\n\n protected async _increaseRender(group: IGroup, drawContext: IDrawContext) {\n this.rendering = true;\n await this._renderIncrementalGroup(group, drawContext);\n return;\n }\n\n // 默认group后只有一层节点,也就是group是叶子结点的父节点\n protected async _renderIncrementalGroup(group: IGroup, drawContext: IDrawContext) {\n this.count = group.count;\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n // 增量图元只支持一个,线段和面积图\n if (group.count === 2) {\n const graphic = group.getChildAt(0) as IGraphic;\n if (graphic.incremental && (graphic.attribute as any).segments) {\n if (!graphic.incrementalAt) {\n graphic.incrementalAt = 0;\n }\n while (graphic.incrementalAt < (graphic.attribute as any).segments.length) {\n drawContext.multiGraphicOptions = {\n startAtIdx: graphic.incrementalAt,\n length: graphic.incremental\n };\n this.renderItem(graphic, drawContext);\n graphic.incrementalAt += graphic.incremental;\n await this.waitToNextFrame();\n }\n } else {\n this.renderItem(graphic, drawContext);\n }\n resolve(false);\n return;\n }\n await foreachAsync(group, DefaultAttribute.zIndex, (item: IGraphic, i: number) => {\n if (this.status === STATUS.STOP) {\n return true;\n }\n if (item.isContainer) {\n // 增量渲染group下不应该有其他的group节点\n return false;\n }\n // 如果小于currentIdx,说明还没到当前的位置,那就直接跳过\n if (i < this.currentIdx) {\n return false;\n }\n const frameTail = this.currFrameStartAt + group.incremental;\n // 绘制 currentIdx到this.lastFrameIdx + group.incremental的内容\n if (i < frameTail) {\n this.currentIdx = i + 1;\n this.renderItem(item, drawContext);\n }\n // 下一帧\n if (i === frameTail - 1) {\n this.currFrameStartAt = this.currentIdx;\n // this.lastFrameIdx = this.currentIdx;\n return this.waitToNextFrame();\n }\n\n return false;\n });\n resolve(false);\n }\n });\n });\n this.hooks.completeDraw.call();\n }\n\n protected async waitToNextFrame(): Promise<boolean> {\n return new Promise(resolve => {\n this.global.getRequestAnimationFrame()(() => {\n resolve(false);\n });\n });\n }\n\n /**\n * 检查这次绘制是否跳过,以及执行一些准备\n * 增量渲染有自己的绘制逻辑流程,外部每次触发draw,该图层不一定会执行\n * @returns 返回true代表跳过绘制,false代表进行绘制\n */\n protected async checkForDraw(drawContext: IDrawContext): Promise<boolean> {\n let skip = this.rendering;\n if (drawContext.restartIncremental) {\n skip = false;\n await this.forceStop();\n this.resetToInit();\n }\n return skip;\n }\n\n protected async forceStop() {\n if (this.rendering) {\n this.status = STATUS.STOP;\n await new Promise(resolve => {\n this.hooks.completeDraw.tap('stopCb', () => {\n this.status = STATUS.NORMAL;\n this.hooks.completeDraw.taps = this.hooks.completeDraw.taps.filter(item => {\n return item.name !== 'stopCb';\n });\n resolve(false);\n });\n });\n }\n }\n\n protected resetToInit() {\n this.currFrameStartAt = 0;\n this.currentIdx = 0;\n }\n\n async renderGroup(group: IGroup, drawContext: IDrawContext) {\n if (drawContext.break || group.attribute.visibleAll === false) {\n return;\n }\n if (group.incremental && drawContext.startAtId === group._uid) {\n await this._increaseRender(group, drawContext);\n drawContext.break = true;\n return;\n }\n\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n await foreachAsync(group, DefaultAttribute.zIndex, async (item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n await this.renderGroup(item as IGroup, drawContext);\n } else {\n // 增量渲染不管非_increaseRender的内容\n return;\n }\n });\n resolve(false);\n }\n });\n });\n }\n\n // /**\n // * 一个每一帧都执行的脚本,用于检查和触发执行draw\n // */\n // protected autoRunner() {\n\n // }\n}\n"]}