@visactor/vrender-core 1.0.37 → 1.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (997) hide show
  1. package/cjs/allocator/canvas-allocate.js +7 -5
  2. package/cjs/allocator/canvas-allocate.js.map +1 -1
  3. package/cjs/allocator/graphic-allocate.js +17 -17
  4. package/cjs/allocator/graphic-allocate.js.map +1 -1
  5. package/cjs/application.d.ts +13 -5
  6. package/cjs/application.js +25 -2
  7. package/cjs/application.js.map +1 -1
  8. package/cjs/canvas/conical-gradient.js +2 -2
  9. package/cjs/canvas/conical-gradient.js.map +1 -1
  10. package/cjs/canvas/contributions/base-canvas.js +2 -2
  11. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  12. package/cjs/canvas/empty-context.js +3 -12
  13. package/cjs/canvas/empty-context.js.map +1 -1
  14. package/cjs/canvas/util.js +7 -3
  15. package/cjs/canvas/util.js.map +1 -1
  16. package/cjs/common/diff.js +2 -1
  17. package/cjs/common/enums.js +1 -2
  18. package/cjs/common/performance-raf.js +2 -2
  19. package/cjs/common/performance-raf.js.map +1 -1
  20. package/cjs/common/registry/contribution-registry.d.ts +24 -0
  21. package/cjs/common/registry/contribution-registry.js +61 -0
  22. package/cjs/common/registry/contribution-registry.js.map +1 -0
  23. package/cjs/common/registry/index.d.ts +5 -0
  24. package/cjs/common/registry/index.js +34 -0
  25. package/cjs/common/registry/index.js.map +1 -0
  26. package/cjs/common/registry/service-registry.d.ts +16 -0
  27. package/cjs/common/registry/service-registry.js +57 -0
  28. package/cjs/common/registry/service-registry.js.map +1 -0
  29. package/cjs/common/registry/types.d.ts +1 -0
  30. package/cjs/common/{inversify-lite/interfaces/interfaces.js → registry/types.js} +1 -1
  31. package/cjs/common/registry/types.js.map +1 -0
  32. package/cjs/common/simplify.js +2 -1
  33. package/cjs/common/sort.js +1 -2
  34. package/cjs/core/constants.js +1 -1
  35. package/cjs/core/contributions/env/base-contribution.js +4 -9
  36. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  37. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +4 -13
  38. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  39. package/cjs/core/contributions/layerHandler/empty-contribution.js +4 -13
  40. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  41. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +4 -13
  42. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  43. package/cjs/core/contributions/modules.d.ts +1 -2
  44. package/cjs/core/contributions/modules.js +2 -14
  45. package/cjs/core/contributions/modules.js.map +1 -1
  46. package/cjs/core/contributions/textMeasure/AtextMeasure.js +3 -10
  47. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  48. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js +3 -10
  49. package/cjs/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  50. package/cjs/core/contributions/window/base-contribution.js +3 -12
  51. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  52. package/cjs/core/global.d.ts +2 -2
  53. package/cjs/core/global.js +8 -20
  54. package/cjs/core/global.js.map +1 -1
  55. package/cjs/core/graphic-utils.d.ts +2 -2
  56. package/cjs/core/graphic-utils.js +9 -23
  57. package/cjs/core/graphic-utils.js.map +1 -1
  58. package/cjs/core/layer-service.js +9 -18
  59. package/cjs/core/layer-service.js.map +1 -1
  60. package/cjs/core/layer.js +3 -3
  61. package/cjs/core/layer.js.map +1 -1
  62. package/cjs/core/stage.js +10 -8
  63. package/cjs/core/stage.js.map +1 -1
  64. package/cjs/core/window.js +7 -15
  65. package/cjs/core/window.js.map +1 -1
  66. package/cjs/env-check.js +3 -3
  67. package/cjs/env-check.js.map +1 -1
  68. package/cjs/graphic/arc.js +3 -3
  69. package/cjs/graphic/arc.js.map +1 -1
  70. package/cjs/graphic/arc3d.js +3 -3
  71. package/cjs/graphic/arc3d.js.map +1 -1
  72. package/cjs/graphic/area.js +3 -3
  73. package/cjs/graphic/area.js.map +1 -1
  74. package/cjs/graphic/circle.js +3 -3
  75. package/cjs/graphic/circle.js.map +1 -1
  76. package/cjs/graphic/glyph.js.map +1 -1
  77. package/cjs/graphic/graphic-service/graphic-service.d.ts +2 -2
  78. package/cjs/graphic/graphic-service/graphic-service.js +5 -18
  79. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  80. package/cjs/graphic/graphic.js +11 -11
  81. package/cjs/graphic/graphic.js.map +1 -1
  82. package/cjs/graphic/group.js +3 -4
  83. package/cjs/graphic/group.js.map +1 -1
  84. package/cjs/graphic/image.js +3 -3
  85. package/cjs/graphic/image.js.map +1 -1
  86. package/cjs/graphic/line.js +3 -3
  87. package/cjs/graphic/line.js.map +1 -1
  88. package/cjs/graphic/path.js +3 -3
  89. package/cjs/graphic/path.js.map +1 -1
  90. package/cjs/graphic/polygon.js +3 -3
  91. package/cjs/graphic/polygon.js.map +1 -1
  92. package/cjs/graphic/pyramid3d.js +2 -3
  93. package/cjs/graphic/pyramid3d.js.map +1 -1
  94. package/cjs/graphic/rect.js +3 -3
  95. package/cjs/graphic/rect.js.map +1 -1
  96. package/cjs/graphic/richtext/utils.js +3 -3
  97. package/cjs/graphic/richtext/utils.js.map +1 -1
  98. package/cjs/graphic/richtext.js +4 -4
  99. package/cjs/graphic/richtext.js.map +1 -1
  100. package/cjs/graphic/star.js +3 -3
  101. package/cjs/graphic/star.js.map +1 -1
  102. package/cjs/graphic/symbol.js +3 -3
  103. package/cjs/graphic/symbol.js.map +1 -1
  104. package/cjs/graphic/text.js +6 -7
  105. package/cjs/graphic/text.js.map +1 -1
  106. package/cjs/graphic/tools.js +2 -2
  107. package/cjs/graphic/tools.js.map +1 -1
  108. package/cjs/graphic/wrap-text.js +2 -2
  109. package/cjs/graphic/wrap-text.js.map +1 -1
  110. package/cjs/index.d.ts +3 -22
  111. package/cjs/index.js +59 -27
  112. package/cjs/index.js.map +1 -1
  113. package/cjs/interface/canvas.d.ts +1 -1
  114. package/cjs/interface/canvas.js.map +1 -1
  115. package/cjs/modules.js +6 -17
  116. package/cjs/modules.js.map +1 -1
  117. package/cjs/picker/global-picker-service.js +4 -13
  118. package/cjs/picker/global-picker-service.js.map +1 -1
  119. package/cjs/picker/pick-interceptor.js +9 -19
  120. package/cjs/picker/pick-interceptor.js.map +1 -1
  121. package/cjs/picker/picker-service.d.ts +3 -3
  122. package/cjs/picker/picker-service.js +8 -21
  123. package/cjs/picker/picker-service.js.map +1 -1
  124. package/cjs/plugins/builtin-plugin/auto-refresh-plugin.js +5 -6
  125. package/cjs/plugins/builtin-plugin/auto-refresh-plugin.js.map +1 -1
  126. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  127. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  128. package/cjs/plugins/builtin-plugin/edit-module.js +3 -4
  129. package/cjs/plugins/builtin-plugin/edit-module.js.map +1 -1
  130. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  131. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +8 -8
  132. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  133. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +2 -2
  134. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  135. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +3 -3
  136. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  137. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +8 -10
  138. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  139. package/cjs/plugins/plugin-service.d.ts +2 -2
  140. package/cjs/plugins/plugin-service.js +7 -21
  141. package/cjs/plugins/plugin-service.js.map +1 -1
  142. package/cjs/register-modules.d.ts +9 -0
  143. package/cjs/register-modules.js +79 -0
  144. package/cjs/register-modules.js.map +1 -0
  145. package/cjs/render/contributions/render/arc-render.d.ts +2 -2
  146. package/cjs/render/contributions/render/arc-render.js +7 -21
  147. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  148. package/cjs/render/contributions/render/arc3d-render.js +3 -10
  149. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  150. package/cjs/render/contributions/render/area-render.d.ts +2 -2
  151. package/cjs/render/contributions/render/area-render.js +7 -21
  152. package/cjs/render/contributions/render/area-render.js.map +1 -1
  153. package/cjs/render/contributions/render/base-render.js +1 -1
  154. package/cjs/render/contributions/render/base-render.js.map +1 -1
  155. package/cjs/render/contributions/render/circle-render.d.ts +2 -2
  156. package/cjs/render/contributions/render/circle-render.js +7 -21
  157. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  158. package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +2 -2
  159. package/cjs/render/contributions/render/contributions/base-contribution-render.js +7 -20
  160. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  161. package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +1 -2
  162. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  163. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +5 -13
  164. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  165. package/cjs/render/contributions/render/draw-contribution.d.ts +3 -3
  166. package/cjs/render/contributions/render/draw-contribution.js +9 -22
  167. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  168. package/cjs/render/contributions/render/draw-interceptor.js +3 -12
  169. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  170. package/cjs/render/contributions/render/glyph-render.js +3 -10
  171. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  172. package/cjs/render/contributions/render/graphic-render.js +1 -10
  173. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  174. package/cjs/render/contributions/render/group-render.d.ts +2 -2
  175. package/cjs/render/contributions/render/group-render.js +7 -20
  176. package/cjs/render/contributions/render/group-render.js.map +1 -1
  177. package/cjs/render/contributions/render/image-render.d.ts +2 -2
  178. package/cjs/render/contributions/render/image-render.js +7 -21
  179. package/cjs/render/contributions/render/image-render.js.map +1 -1
  180. package/cjs/render/contributions/render/incremental-area-render.js +3 -10
  181. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  182. package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +3 -5
  183. package/cjs/render/contributions/render/incremental-draw-contribution.js +10 -23
  184. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  185. package/cjs/render/contributions/render/incremental-line-render.js +3 -10
  186. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  187. package/cjs/render/contributions/render/index.d.ts +12 -4
  188. package/cjs/render/contributions/render/index.js +11 -7
  189. package/cjs/render/contributions/render/index.js.map +1 -1
  190. package/cjs/render/contributions/render/line-render.js +3 -10
  191. package/cjs/render/contributions/render/line-render.js.map +1 -1
  192. package/cjs/render/contributions/render/path-render.d.ts +2 -2
  193. package/cjs/render/contributions/render/path-render.js +7 -21
  194. package/cjs/render/contributions/render/path-render.js.map +1 -1
  195. package/cjs/render/contributions/render/polygon-render.d.ts +2 -2
  196. package/cjs/render/contributions/render/polygon-render.js +7 -21
  197. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  198. package/cjs/render/contributions/render/pyramid3d-render.js +3 -10
  199. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  200. package/cjs/render/contributions/render/rect-render.d.ts +2 -2
  201. package/cjs/render/contributions/render/rect-render.js +7 -21
  202. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  203. package/cjs/render/contributions/render/rect3d-render.js +3 -10
  204. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  205. package/cjs/render/contributions/render/richtext-render.js +3 -12
  206. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  207. package/cjs/render/contributions/render/star-render.d.ts +2 -2
  208. package/cjs/render/contributions/render/star-render.js +7 -21
  209. package/cjs/render/contributions/render/star-render.js.map +1 -1
  210. package/cjs/render/contributions/render/symbol-render.d.ts +2 -2
  211. package/cjs/render/contributions/render/symbol-render.js +7 -21
  212. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  213. package/cjs/render/contributions/render/symbol.d.ts +2 -0
  214. package/cjs/render/contributions/render/symbol.js +3 -1
  215. package/cjs/render/contributions/render/symbol.js.map +1 -1
  216. package/cjs/render/contributions/render/text-render.d.ts +2 -2
  217. package/cjs/render/contributions/render/text-render.js +7 -21
  218. package/cjs/render/contributions/render/text-render.js.map +1 -1
  219. package/cjs/render/render-service.js +2 -18
  220. package/cjs/render/render-service.js.map +1 -1
  221. package/cjs/resource-loader/loader.js +6 -6
  222. package/cjs/resource-loader/loader.js.map +1 -1
  223. package/dist/index.es.js +20344 -21179
  224. package/es/allocator/canvas-allocate.js +8 -6
  225. package/es/allocator/canvas-allocate.js.map +1 -1
  226. package/es/allocator/graphic-allocate.js +17 -17
  227. package/es/allocator/graphic-allocate.js.map +1 -1
  228. package/es/application.d.ts +13 -5
  229. package/es/application.js +31 -2
  230. package/es/application.js.map +1 -1
  231. package/es/canvas/conical-gradient.js +2 -2
  232. package/es/canvas/conical-gradient.js.map +1 -1
  233. package/es/canvas/contributions/base-canvas.js +2 -2
  234. package/es/canvas/contributions/base-canvas.js.map +1 -1
  235. package/es/canvas/empty-context.js +2 -16
  236. package/es/canvas/empty-context.js.map +1 -1
  237. package/es/canvas/util.js +7 -5
  238. package/es/canvas/util.js.map +1 -1
  239. package/es/common/diff.js +2 -1
  240. package/es/common/enums.js +1 -2
  241. package/es/common/performance-raf.js +2 -2
  242. package/es/common/performance-raf.js.map +1 -1
  243. package/es/common/registry/contribution-registry.d.ts +24 -0
  244. package/es/common/registry/contribution-registry.js +55 -0
  245. package/es/common/registry/contribution-registry.js.map +1 -0
  246. package/es/common/registry/index.d.ts +5 -0
  247. package/es/common/registry/index.js +4 -0
  248. package/es/common/registry/index.js.map +1 -0
  249. package/es/common/registry/service-registry.d.ts +16 -0
  250. package/es/common/registry/service-registry.js +51 -0
  251. package/es/common/registry/service-registry.js.map +1 -0
  252. package/es/common/registry/types.d.ts +1 -0
  253. package/es/common/registry/types.js +2 -0
  254. package/es/common/registry/types.js.map +1 -0
  255. package/es/common/simplify.js +2 -1
  256. package/es/common/sort.js +1 -2
  257. package/es/core/constants.js +1 -1
  258. package/es/core/contributions/env/base-contribution.js +3 -13
  259. package/es/core/contributions/env/base-contribution.js.map +1 -1
  260. package/es/core/contributions/layerHandler/canvas2d-contribution.js +4 -18
  261. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  262. package/es/core/contributions/layerHandler/empty-contribution.js +4 -18
  263. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  264. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +4 -18
  265. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  266. package/es/core/contributions/modules.d.ts +1 -2
  267. package/es/core/contributions/modules.js +1 -9
  268. package/es/core/contributions/modules.js.map +1 -1
  269. package/es/core/contributions/textMeasure/AtextMeasure.js +2 -14
  270. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  271. package/es/core/contributions/textMeasure/textMeasure-contribution.js +2 -14
  272. package/es/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
  273. package/es/core/contributions/window/base-contribution.js +2 -16
  274. package/es/core/contributions/window/base-contribution.js.map +1 -1
  275. package/es/core/global.d.ts +2 -2
  276. package/es/core/global.js +9 -24
  277. package/es/core/global.js.map +1 -1
  278. package/es/core/graphic-utils.d.ts +2 -2
  279. package/es/core/graphic-utils.js +12 -34
  280. package/es/core/graphic-utils.js.map +1 -1
  281. package/es/core/layer-service.js +10 -23
  282. package/es/core/layer-service.js.map +1 -1
  283. package/es/core/layer.js +3 -3
  284. package/es/core/layer.js.map +1 -1
  285. package/es/core/stage.js +10 -10
  286. package/es/core/stage.js.map +1 -1
  287. package/es/core/window.js +9 -23
  288. package/es/core/window.js.map +1 -1
  289. package/es/env-check.js +3 -3
  290. package/es/env-check.js.map +1 -1
  291. package/es/graphic/arc.js +3 -3
  292. package/es/graphic/arc.js.map +1 -1
  293. package/es/graphic/arc3d.js +3 -4
  294. package/es/graphic/arc3d.js.map +1 -1
  295. package/es/graphic/area.js +3 -3
  296. package/es/graphic/area.js.map +1 -1
  297. package/es/graphic/circle.js +3 -3
  298. package/es/graphic/circle.js.map +1 -1
  299. package/es/graphic/glyph.js.map +1 -1
  300. package/es/graphic/graphic-service/graphic-service.d.ts +2 -2
  301. package/es/graphic/graphic-service/graphic-service.js +5 -21
  302. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  303. package/es/graphic/graphic.js +13 -9
  304. package/es/graphic/graphic.js.map +1 -1
  305. package/es/graphic/group.js +3 -3
  306. package/es/graphic/group.js.map +1 -1
  307. package/es/graphic/image.js +3 -3
  308. package/es/graphic/image.js.map +1 -1
  309. package/es/graphic/line.js +3 -3
  310. package/es/graphic/line.js.map +1 -1
  311. package/es/graphic/path.js +3 -3
  312. package/es/graphic/path.js.map +1 -1
  313. package/es/graphic/polygon.js +3 -3
  314. package/es/graphic/polygon.js.map +1 -1
  315. package/es/graphic/pyramid3d.js +2 -2
  316. package/es/graphic/pyramid3d.js.map +1 -1
  317. package/es/graphic/rect.js +3 -3
  318. package/es/graphic/rect.js.map +1 -1
  319. package/es/graphic/richtext/utils.js +3 -3
  320. package/es/graphic/richtext/utils.js.map +1 -1
  321. package/es/graphic/richtext.js +4 -4
  322. package/es/graphic/richtext.js.map +1 -1
  323. package/es/graphic/star.js +3 -3
  324. package/es/graphic/star.js.map +1 -1
  325. package/es/graphic/symbol.js +3 -3
  326. package/es/graphic/symbol.js.map +1 -1
  327. package/es/graphic/text.js +6 -6
  328. package/es/graphic/text.js.map +1 -1
  329. package/es/graphic/tools.js +2 -2
  330. package/es/graphic/tools.js.map +1 -1
  331. package/es/graphic/wrap-text.js +2 -2
  332. package/es/graphic/wrap-text.js.map +1 -1
  333. package/es/index.d.ts +3 -22
  334. package/es/index.js +3 -41
  335. package/es/index.js.map +1 -1
  336. package/es/interface/canvas.d.ts +1 -1
  337. package/es/interface/canvas.js.map +1 -1
  338. package/es/modules.js +10 -36
  339. package/es/modules.js.map +1 -1
  340. package/es/picker/global-picker-service.js +4 -18
  341. package/es/picker/global-picker-service.js.map +1 -1
  342. package/es/picker/pick-interceptor.js +8 -32
  343. package/es/picker/pick-interceptor.js.map +1 -1
  344. package/es/picker/picker-service.d.ts +3 -3
  345. package/es/picker/picker-service.js +10 -25
  346. package/es/picker/picker-service.js.map +1 -1
  347. package/es/plugins/builtin-plugin/auto-refresh-plugin.js +6 -6
  348. package/es/plugins/builtin-plugin/auto-refresh-plugin.js.map +1 -1
  349. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  350. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  351. package/es/plugins/builtin-plugin/edit-module.js +3 -3
  352. package/es/plugins/builtin-plugin/edit-module.js.map +1 -1
  353. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  354. package/es/plugins/builtin-plugin/html-attribute-plugin.js +8 -8
  355. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  356. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +2 -2
  357. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  358. package/es/plugins/builtin-plugin/react-attribute-plugin.js +3 -3
  359. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  360. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +6 -6
  361. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  362. package/es/plugins/plugin-service.d.ts +2 -2
  363. package/es/plugins/plugin-service.js +7 -26
  364. package/es/plugins/plugin-service.js.map +1 -1
  365. package/es/register-modules.d.ts +9 -0
  366. package/es/register-modules.js +117 -0
  367. package/es/register-modules.js.map +1 -0
  368. package/es/render/contributions/render/arc-render.d.ts +2 -2
  369. package/es/render/contributions/render/arc-render.js +8 -25
  370. package/es/render/contributions/render/arc-render.js.map +1 -1
  371. package/es/render/contributions/render/arc3d-render.js +2 -14
  372. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  373. package/es/render/contributions/render/area-render.d.ts +2 -2
  374. package/es/render/contributions/render/area-render.js +8 -25
  375. package/es/render/contributions/render/area-render.js.map +1 -1
  376. package/es/render/contributions/render/base-render.js +1 -1
  377. package/es/render/contributions/render/base-render.js.map +1 -1
  378. package/es/render/contributions/render/circle-render.d.ts +2 -2
  379. package/es/render/contributions/render/circle-render.js +8 -25
  380. package/es/render/contributions/render/circle-render.js.map +1 -1
  381. package/es/render/contributions/render/contributions/base-contribution-render.d.ts +2 -2
  382. package/es/render/contributions/render/contributions/base-contribution-render.js +8 -24
  383. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  384. package/es/render/contributions/render/contributions/image-contribution-render.d.ts +1 -2
  385. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  386. package/es/render/contributions/render/contributions/rect-contribution-render.js +4 -20
  387. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  388. package/es/render/contributions/render/draw-contribution.d.ts +3 -3
  389. package/es/render/contributions/render/draw-contribution.js +11 -29
  390. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  391. package/es/render/contributions/render/draw-interceptor.js +2 -16
  392. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  393. package/es/render/contributions/render/glyph-render.js +2 -14
  394. package/es/render/contributions/render/glyph-render.js.map +1 -1
  395. package/es/render/contributions/render/graphic-render.js +1 -13
  396. package/es/render/contributions/render/graphic-render.js.map +1 -1
  397. package/es/render/contributions/render/group-render.d.ts +2 -2
  398. package/es/render/contributions/render/group-render.js +9 -25
  399. package/es/render/contributions/render/group-render.js.map +1 -1
  400. package/es/render/contributions/render/image-render.d.ts +2 -2
  401. package/es/render/contributions/render/image-render.js +8 -25
  402. package/es/render/contributions/render/image-render.js.map +1 -1
  403. package/es/render/contributions/render/incremental-area-render.js +2 -14
  404. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  405. package/es/render/contributions/render/incremental-draw-contribution.d.ts +3 -5
  406. package/es/render/contributions/render/incremental-draw-contribution.js +12 -30
  407. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  408. package/es/render/contributions/render/incremental-line-render.js +2 -14
  409. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  410. package/es/render/contributions/render/index.d.ts +12 -4
  411. package/es/render/contributions/render/index.js +24 -8
  412. package/es/render/contributions/render/index.js.map +1 -1
  413. package/es/render/contributions/render/line-render.js +2 -14
  414. package/es/render/contributions/render/line-render.js.map +1 -1
  415. package/es/render/contributions/render/path-render.d.ts +2 -2
  416. package/es/render/contributions/render/path-render.js +8 -25
  417. package/es/render/contributions/render/path-render.js.map +1 -1
  418. package/es/render/contributions/render/polygon-render.d.ts +2 -2
  419. package/es/render/contributions/render/polygon-render.js +8 -25
  420. package/es/render/contributions/render/polygon-render.js.map +1 -1
  421. package/es/render/contributions/render/pyramid3d-render.js +2 -14
  422. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  423. package/es/render/contributions/render/rect-render.d.ts +2 -2
  424. package/es/render/contributions/render/rect-render.js +8 -25
  425. package/es/render/contributions/render/rect-render.js.map +1 -1
  426. package/es/render/contributions/render/rect3d-render.js +2 -14
  427. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  428. package/es/render/contributions/render/richtext-render.js +2 -16
  429. package/es/render/contributions/render/richtext-render.js.map +1 -1
  430. package/es/render/contributions/render/star-render.d.ts +2 -2
  431. package/es/render/contributions/render/star-render.js +8 -25
  432. package/es/render/contributions/render/star-render.js.map +1 -1
  433. package/es/render/contributions/render/symbol-render.d.ts +2 -2
  434. package/es/render/contributions/render/symbol-render.js +8 -25
  435. package/es/render/contributions/render/symbol-render.js.map +1 -1
  436. package/es/render/contributions/render/symbol.d.ts +2 -0
  437. package/es/render/contributions/render/symbol.js +4 -0
  438. package/es/render/contributions/render/symbol.js.map +1 -1
  439. package/es/render/contributions/render/text-render.d.ts +2 -2
  440. package/es/render/contributions/render/text-render.js +7 -24
  441. package/es/render/contributions/render/text-render.js.map +1 -1
  442. package/es/render/render-service.js +2 -22
  443. package/es/render/render-service.js.map +1 -1
  444. package/es/resource-loader/loader.js +6 -6
  445. package/es/resource-loader/loader.js.map +1 -1
  446. package/package.json +3 -3
  447. package/cjs/common/contribution-provider.d.ts +0 -20
  448. package/cjs/common/contribution-provider.js +0 -46
  449. package/cjs/common/contribution-provider.js.map +0 -1
  450. package/cjs/common/inversify/annotation/inject.d.ts +0 -1
  451. package/cjs/common/inversify/annotation/inject.js +0 -10
  452. package/cjs/common/inversify/annotation/inject.js.map +0 -1
  453. package/cjs/common/inversify/annotation/inject_base.d.ts +0 -14
  454. package/cjs/common/inversify/annotation/inject_base.js +0 -39
  455. package/cjs/common/inversify/annotation/inject_base.js.map +0 -1
  456. package/cjs/common/inversify/annotation/injectable.d.ts +0 -1
  457. package/cjs/common/inversify/annotation/injectable.js +0 -46
  458. package/cjs/common/inversify/annotation/injectable.js.map +0 -1
  459. package/cjs/common/inversify/annotation/multi_inject.d.ts +0 -1
  460. package/cjs/common/inversify/annotation/multi_inject.js +0 -10
  461. package/cjs/common/inversify/annotation/multi_inject.js.map +0 -1
  462. package/cjs/common/inversify/annotation/named.d.ts +0 -1
  463. package/cjs/common/inversify/annotation/named.js +0 -14
  464. package/cjs/common/inversify/annotation/named.js.map +0 -1
  465. package/cjs/common/inversify/annotation/optional.d.ts +0 -2
  466. package/cjs/common/inversify/annotation/optional.js +0 -14
  467. package/cjs/common/inversify/annotation/optional.js.map +0 -1
  468. package/cjs/common/inversify/binding.d.ts +0 -18
  469. package/cjs/common/inversify/binding.js +0 -26
  470. package/cjs/common/inversify/binding.js.map +0 -1
  471. package/cjs/common/inversify/container.d.ts +0 -28
  472. package/cjs/common/inversify/container.js +0 -158
  473. package/cjs/common/inversify/container.js.map +0 -1
  474. package/cjs/common/inversify/cotainer-module.d.ts +0 -6
  475. package/cjs/common/inversify/cotainer-module.js +0 -16
  476. package/cjs/common/inversify/cotainer-module.js.map +0 -1
  477. package/cjs/common/inversify/index.d.ts +0 -7
  478. package/cjs/common/inversify/index.js +0 -75
  479. package/cjs/common/inversify/index.js.map +0 -1
  480. package/cjs/common/inversify/interfaces.d.ts +0 -218
  481. package/cjs/common/inversify/interfaces.js +0 -6
  482. package/cjs/common/inversify/interfaces.js.map +0 -1
  483. package/cjs/common/inversify/literal_types.d.ts +0 -5
  484. package/cjs/common/inversify/literal_types.js +0 -34
  485. package/cjs/common/inversify/literal_types.js.map +0 -1
  486. package/cjs/common/inversify/meta-data.d.ts +0 -6
  487. package/cjs/common/inversify/meta-data.js +0 -19
  488. package/cjs/common/inversify/meta-data.js.map +0 -1
  489. package/cjs/common/inversify/metadata_keys.d.ts +0 -12
  490. package/cjs/common/inversify/metadata_keys.js +0 -15
  491. package/cjs/common/inversify/metadata_keys.js.map +0 -1
  492. package/cjs/common/inversify/metadata_reader.d.ts +0 -6
  493. package/cjs/common/inversify/metadata_reader.js +0 -28
  494. package/cjs/common/inversify/metadata_reader.js.map +0 -1
  495. package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +0 -10
  496. package/cjs/common/inversify/syntax/binding_in_syntax.js +0 -29
  497. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +0 -1
  498. package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +0 -12
  499. package/cjs/common/inversify/syntax/binding_to_syntax.js +0 -40
  500. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +0 -1
  501. package/cjs/common/inversify/syntax/constraint_helpers.d.ts +0 -2
  502. package/cjs/common/inversify/syntax/constraint_helpers.js +0 -20
  503. package/cjs/common/inversify/syntax/constraint_helpers.js.map +0 -1
  504. package/cjs/common/inversify-lite/annotation/decorator_utils.d.ts +0 -16
  505. package/cjs/common/inversify-lite/annotation/decorator_utils.js +0 -97
  506. package/cjs/common/inversify-lite/annotation/decorator_utils.js.map +0 -1
  507. package/cjs/common/inversify-lite/annotation/inject.d.ts +0 -2
  508. package/cjs/common/inversify-lite/annotation/inject.js +0 -36
  509. package/cjs/common/inversify-lite/annotation/inject.js.map +0 -1
  510. package/cjs/common/inversify-lite/annotation/inject_base.d.ts +0 -3
  511. package/cjs/common/inversify-lite/annotation/inject_base.js +0 -20
  512. package/cjs/common/inversify-lite/annotation/inject_base.js.map +0 -1
  513. package/cjs/common/inversify-lite/annotation/injectable.d.ts +0 -2
  514. package/cjs/common/inversify-lite/annotation/injectable.js +0 -48
  515. package/cjs/common/inversify-lite/annotation/injectable.js.map +0 -1
  516. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.d.ts +0 -7
  517. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +0 -17
  518. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +0 -1
  519. package/cjs/common/inversify-lite/annotation/multi_inject.d.ts +0 -2
  520. package/cjs/common/inversify-lite/annotation/multi_inject.js +0 -36
  521. package/cjs/common/inversify-lite/annotation/multi_inject.js.map +0 -1
  522. package/cjs/common/inversify-lite/annotation/named.d.ts +0 -2
  523. package/cjs/common/inversify-lite/annotation/named.js +0 -39
  524. package/cjs/common/inversify-lite/annotation/named.js.map +0 -1
  525. package/cjs/common/inversify-lite/annotation/property_event_decorator.d.ts +0 -4
  526. package/cjs/common/inversify-lite/annotation/property_event_decorator.js +0 -24
  527. package/cjs/common/inversify-lite/annotation/property_event_decorator.js.map +0 -1
  528. package/cjs/common/inversify-lite/bindings/binding.d.ts +0 -20
  529. package/cjs/common/inversify-lite/bindings/binding.js +0 -27
  530. package/cjs/common/inversify-lite/bindings/binding.js.map +0 -1
  531. package/cjs/common/inversify-lite/bindings/binding_count.d.ts +0 -5
  532. package/cjs/common/inversify-lite/bindings/binding_count.js +0 -10
  533. package/cjs/common/inversify-lite/bindings/binding_count.js.map +0 -1
  534. package/cjs/common/inversify-lite/constants/error_msgs.d.ts +0 -32
  535. package/cjs/common/inversify-lite/constants/error_msgs.js +0 -50
  536. package/cjs/common/inversify-lite/constants/error_msgs.js.map +0 -1
  537. package/cjs/common/inversify-lite/constants/literal_types.d.ts +0 -5
  538. package/cjs/common/inversify-lite/constants/literal_types.js +0 -35
  539. package/cjs/common/inversify-lite/constants/literal_types.js.map +0 -1
  540. package/cjs/common/inversify-lite/constants/metadata_keys.d.ts +0 -13
  541. package/cjs/common/inversify-lite/constants/metadata_keys.js +0 -16
  542. package/cjs/common/inversify-lite/constants/metadata_keys.js.map +0 -1
  543. package/cjs/common/inversify-lite/container/container.d.ts +0 -46
  544. package/cjs/common/inversify-lite/container/container.js +0 -290
  545. package/cjs/common/inversify-lite/container/container.js.map +0 -1
  546. package/cjs/common/inversify-lite/container/container_module.d.ts +0 -11
  547. package/cjs/common/inversify-lite/container/container_module.js +0 -24
  548. package/cjs/common/inversify-lite/container/container_module.js.map +0 -1
  549. package/cjs/common/inversify-lite/container/lookup.d.ts +0 -16
  550. package/cjs/common/inversify-lite/container/lookup.js +0 -97
  551. package/cjs/common/inversify-lite/container/lookup.js.map +0 -1
  552. package/cjs/common/inversify-lite/index.d.ts +0 -1
  553. package/cjs/common/inversify-lite/index.js +0 -21
  554. package/cjs/common/inversify-lite/index.js.map +0 -1
  555. package/cjs/common/inversify-lite/interfaces/interfaces.d.ts +0 -237
  556. package/cjs/common/inversify-lite/interfaces/interfaces.js.map +0 -1
  557. package/cjs/common/inversify-lite/planning/context.d.ts +0 -11
  558. package/cjs/common/inversify-lite/planning/context.js +0 -22
  559. package/cjs/common/inversify-lite/planning/context.js.map +0 -1
  560. package/cjs/common/inversify-lite/planning/metadata.d.ts +0 -8
  561. package/cjs/common/inversify-lite/planning/metadata.js +0 -44
  562. package/cjs/common/inversify-lite/planning/metadata.js.map +0 -1
  563. package/cjs/common/inversify-lite/planning/metadata_reader.d.ts +0 -6
  564. package/cjs/common/inversify-lite/planning/metadata_reader.js +0 -51
  565. package/cjs/common/inversify-lite/planning/metadata_reader.js.map +0 -1
  566. package/cjs/common/inversify-lite/planning/plan.d.ts +0 -7
  567. package/cjs/common/inversify-lite/planning/plan.js +0 -14
  568. package/cjs/common/inversify-lite/planning/plan.js.map +0 -1
  569. package/cjs/common/inversify-lite/planning/planner.d.ts +0 -5
  570. package/cjs/common/inversify-lite/planning/planner.js +0 -132
  571. package/cjs/common/inversify-lite/planning/planner.js.map +0 -1
  572. package/cjs/common/inversify-lite/planning/queryable_string.d.ts +0 -9
  573. package/cjs/common/inversify-lite/planning/queryable_string.js +0 -23
  574. package/cjs/common/inversify-lite/planning/queryable_string.js.map +0 -1
  575. package/cjs/common/inversify-lite/planning/reflection_utils.d.ts +0 -5
  576. package/cjs/common/inversify-lite/planning/reflection_utils.js +0 -129
  577. package/cjs/common/inversify-lite/planning/reflection_utils.js.map +0 -1
  578. package/cjs/common/inversify-lite/planning/request.d.ts +0 -14
  579. package/cjs/common/inversify-lite/planning/request.js +0 -22
  580. package/cjs/common/inversify-lite/planning/request.js.map +0 -1
  581. package/cjs/common/inversify-lite/planning/target.d.ts +0 -23
  582. package/cjs/common/inversify-lite/planning/target.js +0 -81
  583. package/cjs/common/inversify-lite/planning/target.js.map +0 -1
  584. package/cjs/common/inversify-lite/resolution/instantiation.d.ts +0 -3
  585. package/cjs/common/inversify-lite/resolution/instantiation.js +0 -143
  586. package/cjs/common/inversify-lite/resolution/instantiation.js.map +0 -1
  587. package/cjs/common/inversify-lite/resolution/resolver.d.ts +0 -3
  588. package/cjs/common/inversify-lite/resolution/resolver.js +0 -74
  589. package/cjs/common/inversify-lite/resolution/resolver.js.map +0 -1
  590. package/cjs/common/inversify-lite/scope/scope.d.ts +0 -3
  591. package/cjs/common/inversify-lite/scope/scope.js +0 -56
  592. package/cjs/common/inversify-lite/scope/scope.js.map +0 -1
  593. package/cjs/common/inversify-lite/syntax/binding_in_syntax.d.ts +0 -9
  594. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +0 -25
  595. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +0 -1
  596. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.d.ts +0 -12
  597. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -29
  598. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +0 -1
  599. package/cjs/common/inversify-lite/syntax/binding_on_syntax.d.ts +0 -6
  600. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +0 -14
  601. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +0 -1
  602. package/cjs/common/inversify-lite/syntax/binding_to_syntax.d.ts +0 -18
  603. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +0 -88
  604. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +0 -1
  605. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.d.ts +0 -8
  606. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -19
  607. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +0 -1
  608. package/cjs/common/inversify-lite/syntax/binding_when_syntax.d.ts +0 -7
  609. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +0 -20
  610. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +0 -1
  611. package/cjs/common/inversify-lite/syntax/constraint_helpers.d.ts +0 -3
  612. package/cjs/common/inversify-lite/syntax/constraint_helpers.js +0 -38
  613. package/cjs/common/inversify-lite/syntax/constraint_helpers.js.map +0 -1
  614. package/cjs/common/inversify-lite/utils/async.d.ts +0 -3
  615. package/cjs/common/inversify-lite/utils/async.js +0 -15
  616. package/cjs/common/inversify-lite/utils/async.js.map +0 -1
  617. package/cjs/common/inversify-lite/utils/binding_utils.d.ts +0 -4
  618. package/cjs/common/inversify-lite/utils/binding_utils.js +0 -94
  619. package/cjs/common/inversify-lite/utils/binding_utils.js.map +0 -1
  620. package/cjs/common/inversify-lite/utils/clonable.d.ts +0 -3
  621. package/cjs/common/inversify-lite/utils/clonable.js +0 -10
  622. package/cjs/common/inversify-lite/utils/clonable.js.map +0 -1
  623. package/cjs/common/inversify-lite/utils/exceptions.d.ts +0 -2
  624. package/cjs/common/inversify-lite/utils/exceptions.js +0 -43
  625. package/cjs/common/inversify-lite/utils/exceptions.js.map +0 -1
  626. package/cjs/common/inversify-lite/utils/factory_type.d.ts +0 -5
  627. package/cjs/common/inversify-lite/utils/factory_type.js +0 -11
  628. package/cjs/common/inversify-lite/utils/factory_type.js.map +0 -1
  629. package/cjs/common/inversify-lite/utils/id.d.ts +0 -2
  630. package/cjs/common/inversify-lite/utils/id.js +0 -14
  631. package/cjs/common/inversify-lite/utils/id.js.map +0 -1
  632. package/cjs/common/inversify-lite/utils/js.d.ts +0 -1
  633. package/cjs/common/inversify-lite/utils/js.js +0 -14
  634. package/cjs/common/inversify-lite/utils/js.js.map +0 -1
  635. package/cjs/common/inversify-lite/utils/serialization.d.ts +0 -10
  636. package/cjs/common/inversify-lite/utils/serialization.js +0 -99
  637. package/cjs/common/inversify-lite/utils/serialization.js.map +0 -1
  638. package/cjs/container.d.ts +0 -2
  639. package/cjs/container.js +0 -10
  640. package/cjs/container.js.map +0 -1
  641. package/cjs/core/contributions/env/modules.d.ts +0 -3
  642. package/cjs/core/contributions/env/modules.js +0 -12
  643. package/cjs/core/contributions/env/modules.js.map +0 -1
  644. package/cjs/core/contributions/layerHandler/modules.d.ts +0 -3
  645. package/cjs/core/contributions/layerHandler/modules.js +0 -12
  646. package/cjs/core/contributions/layerHandler/modules.js.map +0 -1
  647. package/cjs/core/contributions/textMeasure/modules.d.ts +0 -3
  648. package/cjs/core/contributions/textMeasure/modules.js +0 -13
  649. package/cjs/core/contributions/textMeasure/modules.js.map +0 -1
  650. package/cjs/core/core-modules.d.ts +0 -3
  651. package/cjs/core/core-modules.js +0 -15
  652. package/cjs/core/core-modules.js.map +0 -1
  653. package/cjs/core/global-module.d.ts +0 -1
  654. package/cjs/core/global-module.js +0 -3
  655. package/cjs/core/global-module.js.map +0 -1
  656. package/cjs/graphic/graphic-service/graphic-module.d.ts +0 -3
  657. package/cjs/graphic/graphic-service/graphic-module.js +0 -12
  658. package/cjs/graphic/graphic-service/graphic-module.js.map +0 -1
  659. package/cjs/picker/pick-modules.d.ts +0 -3
  660. package/cjs/picker/pick-modules.js +0 -22
  661. package/cjs/picker/pick-modules.js.map +0 -1
  662. package/cjs/plugins/plugin-modules.d.ts +0 -3
  663. package/cjs/plugins/plugin-modules.js +0 -12
  664. package/cjs/plugins/plugin-modules.js.map +0 -1
  665. package/cjs/render/contributions/modules.d.ts +0 -2
  666. package/cjs/render/contributions/modules.js +0 -20
  667. package/cjs/render/contributions/modules.js.map +0 -1
  668. package/cjs/render/contributions/render/arc-module.d.ts +0 -2
  669. package/cjs/render/contributions/render/arc-module.js +0 -17
  670. package/cjs/render/contributions/render/arc-module.js.map +0 -1
  671. package/cjs/render/contributions/render/arc3d-module.d.ts +0 -2
  672. package/cjs/render/contributions/render/arc3d-module.js +0 -15
  673. package/cjs/render/contributions/render/arc3d-module.js.map +0 -1
  674. package/cjs/render/contributions/render/area-module.d.ts +0 -2
  675. package/cjs/render/contributions/render/area-module.js +0 -18
  676. package/cjs/render/contributions/render/area-module.js.map +0 -1
  677. package/cjs/render/contributions/render/circle-module.d.ts +0 -2
  678. package/cjs/render/contributions/render/circle-module.js +0 -17
  679. package/cjs/render/contributions/render/circle-module.js.map +0 -1
  680. package/cjs/render/contributions/render/glyph-module.d.ts +0 -2
  681. package/cjs/render/contributions/render/glyph-module.js +0 -15
  682. package/cjs/render/contributions/render/glyph-module.js.map +0 -1
  683. package/cjs/render/contributions/render/image-module.d.ts +0 -2
  684. package/cjs/render/contributions/render/image-module.js +0 -16
  685. package/cjs/render/contributions/render/image-module.js.map +0 -1
  686. package/cjs/render/contributions/render/line-module.d.ts +0 -2
  687. package/cjs/render/contributions/render/line-module.js +0 -17
  688. package/cjs/render/contributions/render/line-module.js.map +0 -1
  689. package/cjs/render/contributions/render/module.d.ts +0 -3
  690. package/cjs/render/contributions/render/module.js +0 -23
  691. package/cjs/render/contributions/render/module.js.map +0 -1
  692. package/cjs/render/contributions/render/path-module.d.ts +0 -2
  693. package/cjs/render/contributions/render/path-module.js +0 -17
  694. package/cjs/render/contributions/render/path-module.js.map +0 -1
  695. package/cjs/render/contributions/render/polygon-module.d.ts +0 -2
  696. package/cjs/render/contributions/render/polygon-module.js +0 -16
  697. package/cjs/render/contributions/render/polygon-module.js.map +0 -1
  698. package/cjs/render/contributions/render/pyramid3d-module.d.ts +0 -2
  699. package/cjs/render/contributions/render/pyramid3d-module.js +0 -15
  700. package/cjs/render/contributions/render/pyramid3d-module.js.map +0 -1
  701. package/cjs/render/contributions/render/rect-module.d.ts +0 -2
  702. package/cjs/render/contributions/render/rect-module.js +0 -20
  703. package/cjs/render/contributions/render/rect-module.js.map +0 -1
  704. package/cjs/render/contributions/render/rect3d-module.d.ts +0 -2
  705. package/cjs/render/contributions/render/rect3d-module.js +0 -15
  706. package/cjs/render/contributions/render/rect3d-module.js.map +0 -1
  707. package/cjs/render/contributions/render/richtext-module.d.ts +0 -2
  708. package/cjs/render/contributions/render/richtext-module.js +0 -15
  709. package/cjs/render/contributions/render/richtext-module.js.map +0 -1
  710. package/cjs/render/contributions/render/star-module.d.ts +0 -2
  711. package/cjs/render/contributions/render/star-module.js +0 -15
  712. package/cjs/render/contributions/render/star-module.js.map +0 -1
  713. package/cjs/render/contributions/render/symbol-module.d.ts +0 -2
  714. package/cjs/render/contributions/render/symbol-module.js +0 -17
  715. package/cjs/render/contributions/render/symbol-module.js.map +0 -1
  716. package/cjs/render/contributions/render/text-module.d.ts +0 -2
  717. package/cjs/render/contributions/render/text-module.js +0 -16
  718. package/cjs/render/contributions/render/text-module.js.map +0 -1
  719. package/cjs/render/render-modules.d.ts +0 -3
  720. package/cjs/render/render-modules.js +0 -12
  721. package/cjs/render/render-modules.js.map +0 -1
  722. package/es/common/contribution-provider.d.ts +0 -20
  723. package/es/common/contribution-provider.js +0 -39
  724. package/es/common/contribution-provider.js.map +0 -1
  725. package/es/common/inversify/annotation/inject.d.ts +0 -1
  726. package/es/common/inversify/annotation/inject.js +0 -6
  727. package/es/common/inversify/annotation/inject.js.map +0 -1
  728. package/es/common/inversify/annotation/inject_base.d.ts +0 -14
  729. package/es/common/inversify/annotation/inject_base.js +0 -29
  730. package/es/common/inversify/annotation/inject_base.js.map +0 -1
  731. package/es/common/inversify/annotation/injectable.d.ts +0 -1
  732. package/es/common/inversify/annotation/injectable.js +0 -10
  733. package/es/common/inversify/annotation/injectable.js.map +0 -1
  734. package/es/common/inversify/annotation/multi_inject.d.ts +0 -1
  735. package/es/common/inversify/annotation/multi_inject.js +0 -6
  736. package/es/common/inversify/annotation/multi_inject.js.map +0 -1
  737. package/es/common/inversify/annotation/named.d.ts +0 -1
  738. package/es/common/inversify/annotation/named.js +0 -10
  739. package/es/common/inversify/annotation/named.js.map +0 -1
  740. package/es/common/inversify/annotation/optional.d.ts +0 -2
  741. package/es/common/inversify/annotation/optional.js +0 -12
  742. package/es/common/inversify/annotation/optional.js.map +0 -1
  743. package/es/common/inversify/binding.d.ts +0 -18
  744. package/es/common/inversify/binding.js +0 -22
  745. package/es/common/inversify/binding.js.map +0 -1
  746. package/es/common/inversify/container.d.ts +0 -28
  747. package/es/common/inversify/container.js +0 -158
  748. package/es/common/inversify/container.js.map +0 -1
  749. package/es/common/inversify/cotainer-module.d.ts +0 -6
  750. package/es/common/inversify/cotainer-module.js +0 -8
  751. package/es/common/inversify/cotainer-module.js.map +0 -1
  752. package/es/common/inversify/index.d.ts +0 -7
  753. package/es/common/inversify/index.js +0 -14
  754. package/es/common/inversify/index.js.map +0 -1
  755. package/es/common/inversify/interfaces.d.ts +0 -218
  756. package/es/common/inversify/interfaces.js +0 -2
  757. package/es/common/inversify/interfaces.js.map +0 -1
  758. package/es/common/inversify/literal_types.d.ts +0 -5
  759. package/es/common/inversify/literal_types.js +0 -20
  760. package/es/common/inversify/literal_types.js.map +0 -1
  761. package/es/common/inversify/meta-data.d.ts +0 -6
  762. package/es/common/inversify/meta-data.js +0 -11
  763. package/es/common/inversify/meta-data.js.map +0 -1
  764. package/es/common/inversify/metadata_keys.d.ts +0 -12
  765. package/es/common/inversify/metadata_keys.js +0 -28
  766. package/es/common/inversify/metadata_keys.js.map +0 -1
  767. package/es/common/inversify/metadata_reader.d.ts +0 -6
  768. package/es/common/inversify/metadata_reader.js +0 -18
  769. package/es/common/inversify/metadata_reader.js.map +0 -1
  770. package/es/common/inversify/syntax/binding_in_syntax.d.ts +0 -10
  771. package/es/common/inversify/syntax/binding_in_syntax.js +0 -24
  772. package/es/common/inversify/syntax/binding_in_syntax.js.map +0 -1
  773. package/es/common/inversify/syntax/binding_to_syntax.d.ts +0 -12
  774. package/es/common/inversify/syntax/binding_to_syntax.js +0 -36
  775. package/es/common/inversify/syntax/binding_to_syntax.js.map +0 -1
  776. package/es/common/inversify/syntax/constraint_helpers.d.ts +0 -2
  777. package/es/common/inversify/syntax/constraint_helpers.js +0 -18
  778. package/es/common/inversify/syntax/constraint_helpers.js.map +0 -1
  779. package/es/common/inversify-lite/annotation/decorator_utils.d.ts +0 -16
  780. package/es/common/inversify-lite/annotation/decorator_utils.js +0 -67
  781. package/es/common/inversify-lite/annotation/decorator_utils.js.map +0 -1
  782. package/es/common/inversify-lite/annotation/inject.d.ts +0 -2
  783. package/es/common/inversify-lite/annotation/inject.js +0 -8
  784. package/es/common/inversify-lite/annotation/inject.js.map +0 -1
  785. package/es/common/inversify-lite/annotation/inject_base.d.ts +0 -3
  786. package/es/common/inversify-lite/annotation/inject_base.js +0 -16
  787. package/es/common/inversify-lite/annotation/inject_base.js.map +0 -1
  788. package/es/common/inversify-lite/annotation/injectable.d.ts +0 -2
  789. package/es/common/inversify-lite/annotation/injectable.js +0 -16
  790. package/es/common/inversify-lite/annotation/injectable.js.map +0 -1
  791. package/es/common/inversify-lite/annotation/lazy_service_identifier.d.ts +0 -7
  792. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +0 -9
  793. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +0 -1
  794. package/es/common/inversify-lite/annotation/multi_inject.d.ts +0 -2
  795. package/es/common/inversify-lite/annotation/multi_inject.js +0 -8
  796. package/es/common/inversify-lite/annotation/multi_inject.js.map +0 -1
  797. package/es/common/inversify-lite/annotation/named.d.ts +0 -2
  798. package/es/common/inversify-lite/annotation/named.js +0 -12
  799. package/es/common/inversify-lite/annotation/named.js.map +0 -1
  800. package/es/common/inversify-lite/annotation/property_event_decorator.d.ts +0 -4
  801. package/es/common/inversify-lite/annotation/property_event_decorator.js +0 -14
  802. package/es/common/inversify-lite/annotation/property_event_decorator.js.map +0 -1
  803. package/es/common/inversify-lite/bindings/binding.d.ts +0 -20
  804. package/es/common/inversify-lite/bindings/binding.js +0 -23
  805. package/es/common/inversify-lite/bindings/binding.js.map +0 -1
  806. package/es/common/inversify-lite/bindings/binding_count.d.ts +0 -5
  807. package/es/common/inversify-lite/bindings/binding_count.js +0 -6
  808. package/es/common/inversify-lite/bindings/binding_count.js.map +0 -1
  809. package/es/common/inversify-lite/constants/error_msgs.d.ts +0 -32
  810. package/es/common/inversify-lite/constants/error_msgs.js +0 -64
  811. package/es/common/inversify-lite/constants/error_msgs.js.map +0 -1
  812. package/es/common/inversify-lite/constants/literal_types.d.ts +0 -5
  813. package/es/common/inversify-lite/constants/literal_types.js +0 -21
  814. package/es/common/inversify-lite/constants/literal_types.js.map +0 -1
  815. package/es/common/inversify-lite/constants/metadata_keys.d.ts +0 -13
  816. package/es/common/inversify-lite/constants/metadata_keys.js +0 -30
  817. package/es/common/inversify-lite/constants/metadata_keys.js.map +0 -1
  818. package/es/common/inversify-lite/container/container.d.ts +0 -46
  819. package/es/common/inversify-lite/container/container.js +0 -279
  820. package/es/common/inversify-lite/container/container.js.map +0 -1
  821. package/es/common/inversify-lite/container/container_module.d.ts +0 -11
  822. package/es/common/inversify-lite/container/container_module.js +0 -14
  823. package/es/common/inversify-lite/container/container_module.js.map +0 -1
  824. package/es/common/inversify-lite/container/lookup.d.ts +0 -16
  825. package/es/common/inversify-lite/container/lookup.js +0 -68
  826. package/es/common/inversify-lite/container/lookup.js.map +0 -1
  827. package/es/common/inversify-lite/index.d.ts +0 -1
  828. package/es/common/inversify-lite/index.js +0 -2
  829. package/es/common/inversify-lite/index.js.map +0 -1
  830. package/es/common/inversify-lite/interfaces/interfaces.d.ts +0 -237
  831. package/es/common/inversify-lite/interfaces/interfaces.js +0 -2
  832. package/es/common/inversify-lite/interfaces/interfaces.js.map +0 -1
  833. package/es/common/inversify-lite/planning/context.d.ts +0 -11
  834. package/es/common/inversify-lite/planning/context.js +0 -16
  835. package/es/common/inversify-lite/planning/context.js.map +0 -1
  836. package/es/common/inversify-lite/planning/metadata.d.ts +0 -8
  837. package/es/common/inversify-lite/planning/metadata.js +0 -13
  838. package/es/common/inversify-lite/planning/metadata.js.map +0 -1
  839. package/es/common/inversify-lite/planning/metadata_reader.d.ts +0 -6
  840. package/es/common/inversify-lite/planning/metadata_reader.js +0 -18
  841. package/es/common/inversify-lite/planning/metadata_reader.js.map +0 -1
  842. package/es/common/inversify-lite/planning/plan.d.ts +0 -7
  843. package/es/common/inversify-lite/planning/plan.js +0 -8
  844. package/es/common/inversify-lite/planning/plan.js.map +0 -1
  845. package/es/common/inversify-lite/planning/planner.d.ts +0 -5
  846. package/es/common/inversify-lite/planning/planner.js +0 -120
  847. package/es/common/inversify-lite/planning/planner.js.map +0 -1
  848. package/es/common/inversify-lite/planning/queryable_string.d.ts +0 -9
  849. package/es/common/inversify-lite/planning/queryable_string.js +0 -17
  850. package/es/common/inversify-lite/planning/queryable_string.js.map +0 -1
  851. package/es/common/inversify-lite/planning/reflection_utils.d.ts +0 -5
  852. package/es/common/inversify-lite/planning/reflection_utils.js +0 -99
  853. package/es/common/inversify-lite/planning/reflection_utils.js.map +0 -1
  854. package/es/common/inversify-lite/planning/request.d.ts +0 -14
  855. package/es/common/inversify-lite/planning/request.js +0 -16
  856. package/es/common/inversify-lite/planning/request.js.map +0 -1
  857. package/es/common/inversify-lite/planning/target.d.ts +0 -23
  858. package/es/common/inversify-lite/planning/target.js +0 -58
  859. package/es/common/inversify-lite/planning/target.js.map +0 -1
  860. package/es/common/inversify-lite/resolution/instantiation.d.ts +0 -3
  861. package/es/common/inversify-lite/resolution/instantiation.js +0 -117
  862. package/es/common/inversify-lite/resolution/instantiation.js.map +0 -1
  863. package/es/common/inversify-lite/resolution/resolver.d.ts +0 -3
  864. package/es/common/inversify-lite/resolution/resolver.js +0 -55
  865. package/es/common/inversify-lite/resolution/resolver.js.map +0 -1
  866. package/es/common/inversify-lite/scope/scope.d.ts +0 -3
  867. package/es/common/inversify-lite/scope/scope.js +0 -50
  868. package/es/common/inversify-lite/scope/scope.js.map +0 -1
  869. package/es/common/inversify-lite/syntax/binding_in_syntax.d.ts +0 -9
  870. package/es/common/inversify-lite/syntax/binding_in_syntax.js +0 -21
  871. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +0 -1
  872. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.d.ts +0 -12
  873. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -25
  874. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +0 -1
  875. package/es/common/inversify-lite/syntax/binding_on_syntax.d.ts +0 -6
  876. package/es/common/inversify-lite/syntax/binding_on_syntax.js +0 -8
  877. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +0 -1
  878. package/es/common/inversify-lite/syntax/binding_to_syntax.d.ts +0 -18
  879. package/es/common/inversify-lite/syntax/binding_to_syntax.js +0 -63
  880. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +0 -1
  881. package/es/common/inversify-lite/syntax/binding_when_on_syntax.d.ts +0 -8
  882. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -13
  883. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +0 -1
  884. package/es/common/inversify-lite/syntax/binding_when_syntax.d.ts +0 -7
  885. package/es/common/inversify-lite/syntax/binding_when_syntax.js +0 -15
  886. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +0 -1
  887. package/es/common/inversify-lite/syntax/constraint_helpers.d.ts +0 -3
  888. package/es/common/inversify-lite/syntax/constraint_helpers.js +0 -11
  889. package/es/common/inversify-lite/syntax/constraint_helpers.js.map +0 -1
  890. package/es/common/inversify-lite/utils/async.d.ts +0 -3
  891. package/es/common/inversify-lite/utils/async.js +0 -10
  892. package/es/common/inversify-lite/utils/async.js.map +0 -1
  893. package/es/common/inversify-lite/utils/binding_utils.d.ts +0 -4
  894. package/es/common/inversify-lite/utils/binding_utils.js +0 -65
  895. package/es/common/inversify-lite/utils/binding_utils.js.map +0 -1
  896. package/es/common/inversify-lite/utils/clonable.d.ts +0 -3
  897. package/es/common/inversify-lite/utils/clonable.js +0 -6
  898. package/es/common/inversify-lite/utils/clonable.js.map +0 -1
  899. package/es/common/inversify-lite/utils/exceptions.d.ts +0 -2
  900. package/es/common/inversify-lite/utils/exceptions.js +0 -8
  901. package/es/common/inversify-lite/utils/exceptions.js.map +0 -1
  902. package/es/common/inversify-lite/utils/factory_type.d.ts +0 -5
  903. package/es/common/inversify-lite/utils/factory_type.js +0 -7
  904. package/es/common/inversify-lite/utils/factory_type.js.map +0 -1
  905. package/es/common/inversify-lite/utils/id.d.ts +0 -2
  906. package/es/common/inversify-lite/utils/id.js +0 -8
  907. package/es/common/inversify-lite/utils/id.js.map +0 -1
  908. package/es/common/inversify-lite/utils/js.d.ts +0 -1
  909. package/es/common/inversify-lite/utils/js.js +0 -8
  910. package/es/common/inversify-lite/utils/js.js.map +0 -1
  911. package/es/common/inversify-lite/utils/serialization.d.ts +0 -10
  912. package/es/common/inversify-lite/utils/serialization.js +0 -66
  913. package/es/common/inversify-lite/utils/serialization.js.map +0 -1
  914. package/es/container.d.ts +0 -2
  915. package/es/container.js +0 -4
  916. package/es/container.js.map +0 -1
  917. package/es/core/contributions/env/modules.d.ts +0 -3
  918. package/es/core/contributions/env/modules.js +0 -10
  919. package/es/core/contributions/env/modules.js.map +0 -1
  920. package/es/core/contributions/layerHandler/modules.d.ts +0 -3
  921. package/es/core/contributions/layerHandler/modules.js +0 -10
  922. package/es/core/contributions/layerHandler/modules.js.map +0 -1
  923. package/es/core/contributions/textMeasure/modules.d.ts +0 -3
  924. package/es/core/contributions/textMeasure/modules.js +0 -11
  925. package/es/core/contributions/textMeasure/modules.js.map +0 -1
  926. package/es/core/core-modules.d.ts +0 -3
  927. package/es/core/core-modules.js +0 -20
  928. package/es/core/core-modules.js.map +0 -1
  929. package/es/core/global-module.d.ts +0 -1
  930. package/es/core/global-module.js +0 -3
  931. package/es/core/global-module.js.map +0 -1
  932. package/es/graphic/graphic-service/graphic-module.d.ts +0 -3
  933. package/es/graphic/graphic-service/graphic-module.js +0 -12
  934. package/es/graphic/graphic-service/graphic-module.js.map +0 -1
  935. package/es/picker/pick-modules.d.ts +0 -3
  936. package/es/picker/pick-modules.js +0 -18
  937. package/es/picker/pick-modules.js.map +0 -1
  938. package/es/plugins/plugin-modules.d.ts +0 -3
  939. package/es/plugins/plugin-modules.js +0 -14
  940. package/es/plugins/plugin-modules.js.map +0 -1
  941. package/es/render/contributions/modules.d.ts +0 -2
  942. package/es/render/contributions/modules.js +0 -6
  943. package/es/render/contributions/modules.js.map +0 -1
  944. package/es/render/contributions/render/arc-module.d.ts +0 -2
  945. package/es/render/contributions/render/arc-module.js +0 -21
  946. package/es/render/contributions/render/arc-module.js.map +0 -1
  947. package/es/render/contributions/render/arc3d-module.d.ts +0 -2
  948. package/es/render/contributions/render/arc3d-module.js +0 -13
  949. package/es/render/contributions/render/arc3d-module.js.map +0 -1
  950. package/es/render/contributions/render/area-module.d.ts +0 -2
  951. package/es/render/contributions/render/area-module.js +0 -23
  952. package/es/render/contributions/render/area-module.js.map +0 -1
  953. package/es/render/contributions/render/circle-module.d.ts +0 -2
  954. package/es/render/contributions/render/circle-module.js +0 -21
  955. package/es/render/contributions/render/circle-module.js.map +0 -1
  956. package/es/render/contributions/render/glyph-module.d.ts +0 -2
  957. package/es/render/contributions/render/glyph-module.js +0 -13
  958. package/es/render/contributions/render/glyph-module.js.map +0 -1
  959. package/es/render/contributions/render/image-module.d.ts +0 -2
  960. package/es/render/contributions/render/image-module.js +0 -20
  961. package/es/render/contributions/render/image-module.js.map +0 -1
  962. package/es/render/contributions/render/line-module.d.ts +0 -2
  963. package/es/render/contributions/render/line-module.js +0 -16
  964. package/es/render/contributions/render/line-module.js.map +0 -1
  965. package/es/render/contributions/render/module.d.ts +0 -3
  966. package/es/render/contributions/render/module.js +0 -28
  967. package/es/render/contributions/render/module.js.map +0 -1
  968. package/es/render/contributions/render/path-module.d.ts +0 -2
  969. package/es/render/contributions/render/path-module.js +0 -21
  970. package/es/render/contributions/render/path-module.js.map +0 -1
  971. package/es/render/contributions/render/polygon-module.d.ts +0 -2
  972. package/es/render/contributions/render/polygon-module.js +0 -20
  973. package/es/render/contributions/render/polygon-module.js.map +0 -1
  974. package/es/render/contributions/render/pyramid3d-module.d.ts +0 -2
  975. package/es/render/contributions/render/pyramid3d-module.js +0 -13
  976. package/es/render/contributions/render/pyramid3d-module.js.map +0 -1
  977. package/es/render/contributions/render/rect-module.d.ts +0 -2
  978. package/es/render/contributions/render/rect-module.js +0 -23
  979. package/es/render/contributions/render/rect-module.js.map +0 -1
  980. package/es/render/contributions/render/rect3d-module.d.ts +0 -2
  981. package/es/render/contributions/render/rect3d-module.js +0 -13
  982. package/es/render/contributions/render/rect3d-module.js.map +0 -1
  983. package/es/render/contributions/render/richtext-module.d.ts +0 -2
  984. package/es/render/contributions/render/richtext-module.js +0 -13
  985. package/es/render/contributions/render/richtext-module.js.map +0 -1
  986. package/es/render/contributions/render/star-module.d.ts +0 -2
  987. package/es/render/contributions/render/star-module.js +0 -13
  988. package/es/render/contributions/render/star-module.js.map +0 -1
  989. package/es/render/contributions/render/symbol-module.d.ts +0 -2
  990. package/es/render/contributions/render/symbol-module.js +0 -21
  991. package/es/render/contributions/render/symbol-module.js.map +0 -1
  992. package/es/render/contributions/render/text-module.d.ts +0 -2
  993. package/es/render/contributions/render/text-module.js +0 -20
  994. package/es/render/contributions/render/text-module.js.map +0 -1
  995. package/es/render/render-modules.d.ts +0 -3
  996. package/es/render/render-modules.js +0 -10
  997. package/es/render/render-modules.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/contributions/base-contribution-render.ts"],"names":[],"mappings":"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","file":"base-contribution-render.js","sourcesContent":["import type {\n IGraphicAttribute,\n IContext2d,\n IGraphic,\n IThemeAttribute,\n IBaseRenderContribution,\n IContributionProvider,\n IDrawContext,\n ISymbol,\n IPath,\n ISymbolGraphicAttribute\n} from '../../../../interface';\nimport type { IBounds } from '@visactor/vutils';\nimport { inject, injectable, named } from '../../../../common/inversify-lite';\nimport { getTheme } from '../../../../graphic/theme';\nimport { canvasAllocate } from '../../../../allocator/canvas-allocate';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\nimport { ContributionProvider } from '../../../../common/contribution-provider';\nimport { InteractiveSubRenderContribution } from './constants';\n\nexport class DefaultBaseBackgroundRenderContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) {\n const {\n background,\n backgroundOpacity = graphic.attribute.fillOpacity ?? graphicAttribute.backgroundOpacity,\n opacity = graphicAttribute.opacity,\n backgroundMode = graphicAttribute.backgroundMode,\n backgroundFit = graphicAttribute.backgroundFit,\n backgroundKeepAspectRatio = graphicAttribute.backgroundKeepAspectRatio,\n backgroundScale = graphicAttribute.backgroundScale,\n backgroundOffsetX = graphicAttribute.backgroundOffsetX,\n backgroundOffsetY = graphicAttribute.backgroundOffsetY,\n backgroundClip = graphicAttribute.backgroundClip\n } = graphic.attribute;\n if (!background) {\n return;\n }\n\n if (graphic.backgroundImg && graphic.resources) {\n const res = graphic.resources.get(background as any);\n if (res.state !== 'success' || !res.data) {\n return;\n }\n\n context.save();\n\n if (graphic.parent && !graphic.transMatrix.onlyTranslate()) {\n const groupAttribute = getTheme(graphic.parent).group;\n const { scrollX = groupAttribute.scrollX, scrollY = groupAttribute.scrollY } = graphic.parent.attribute;\n context.setTransformFromMatrix(graphic.parent.globalTransMatrix, true);\n context.translate(scrollX, scrollY);\n }\n backgroundClip && context.clip();\n const b = graphic.AABBBounds;\n context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n context.globalAlpha = backgroundOpacity * opacity;\n this.doDrawImage(context, res.data, b, {\n backgroundMode,\n backgroundFit,\n backgroundKeepAspectRatio,\n backgroundScale,\n backgroundOffsetX,\n backgroundOffsetY\n });\n context.restore();\n if (!graphic.transMatrix.onlyTranslate()) {\n context.setTransformForCurrent();\n }\n } else {\n context.highPerformanceSave();\n context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n context.globalAlpha = backgroundOpacity * opacity;\n context.fillStyle = background as string;\n context.fill();\n context.highPerformanceRestore();\n }\n }\n\n protected doDrawImage(\n context: IContext2d,\n data: any,\n b: IBounds,\n params: {\n backgroundMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';\n backgroundFit: boolean;\n backgroundKeepAspectRatio: boolean;\n backgroundScale?: number;\n backgroundOffsetX?: number;\n backgroundOffsetY?: number;\n }\n ): void {\n const {\n backgroundMode,\n backgroundFit,\n backgroundKeepAspectRatio,\n backgroundScale = 1,\n backgroundOffsetX = 0,\n backgroundOffsetY = 0\n } = params;\n const targetW = b.width();\n const targetH = b.height();\n let w = targetW;\n let h = targetH;\n if (backgroundMode === 'no-repeat') {\n if (backgroundFit) {\n if (!backgroundKeepAspectRatio) {\n context.drawImage(data, b.x1, b.y1, b.width(), b.height());\n } else {\n const maxScale = Math.max(targetW / data.width, targetH / data.height);\n context.drawImage(\n data,\n b.x1 + backgroundOffsetX,\n b.y1 + backgroundOffsetY,\n data.width * maxScale * backgroundScale,\n data.height * maxScale * backgroundScale\n );\n }\n } else {\n const resW = data.width * backgroundScale;\n const resH = data.height * backgroundScale;\n context.drawImage(data, b.x1 + backgroundOffsetX, b.y1 + backgroundOffsetY, resW, resH);\n }\n } else {\n // debugger;\n // TODO 考虑缓存\n if (backgroundFit && backgroundMode !== 'repeat' && (data.width || data.height)) {\n const resW = data.width;\n const resH = data.height;\n\n if (backgroundMode === 'repeat-x') {\n // 高度适应\n const ratio = targetH / resH;\n w = resW * ratio;\n h = targetH;\n } else if (backgroundMode === 'repeat-y') {\n // 宽度适应\n const ratio = targetW / resW;\n h = resH * ratio;\n w = targetW;\n }\n\n const dpr = context.dpr;\n const canvas = canvasAllocate.allocate({ width: w, height: h, dpr });\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.inuse = true;\n ctx.clearMatrix();\n ctx.setTransformForCurrent(true);\n ctx.clearRect(0, 0, w, h);\n ctx.drawImage(data, 0, 0, w, h);\n data = canvas.nativeCanvas;\n }\n canvasAllocate.free(canvas);\n }\n const dpr = context.dpr;\n const pattern = context.createPattern(data, backgroundMode);\n pattern.setTransform && pattern.setTransform(new DOMMatrix([1 / dpr, 0, 0, 1 / dpr, 0, 0]));\n context.fillStyle = pattern;\n context.translate(b.x1, b.y1);\n context.fillRect(0, 0, targetW, targetH);\n context.translate(-b.x1, -b.y1);\n }\n }\n}\n\nexport const defaultBaseBackgroundRenderContribution = new DefaultBaseBackgroundRenderContribution();\n\nexport interface IInteractiveSubRenderContribution {\n render: (\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) => void;\n}\n\n@injectable()\nexport class DefaultBaseInteractiveRenderContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n\n _subRenderContribitions?: IInteractiveSubRenderContribution[];\n constructor(\n @inject(ContributionProvider)\n @named(InteractiveSubRenderContribution)\n protected readonly subRenderContribitions: IContributionProvider<IInteractiveSubRenderContribution>\n ) {}\n\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) {\n if (!this._subRenderContribitions) {\n this._subRenderContribitions = this.subRenderContribitions.getContributions();\n }\n this._subRenderContribitions.forEach(c => {\n c.render(\n graphic,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n graphicAttribute,\n drawContext,\n fillCb,\n strokeCb,\n options\n );\n });\n }\n}\n\nexport class DefaultBaseClipRenderBeforeContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IGraphicAttribute>,\n themeAttribute: IThemeAttribute,\n final?: boolean\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IGraphicAttribute>,\n themeAttribute: IThemeAttribute,\n final?: boolean\n ) => boolean,\n options?: any\n ) {\n const { clipConfig } = graphic.attribute;\n if (!clipConfig) {\n return;\n }\n const clipPath = graphic.getClipPath();\n if (!clipPath) {\n return;\n }\n const draw = !(fillCb || strokeCb);\n const b = graphic.AABBBounds;\n const width = (graphic.attribute as any).width ?? b.width();\n const height = (graphic.attribute as any).height ?? b.height();\n if (draw) {\n context.save();\n }\n context.beginPath();\n if (clipPath.draw(context, [width, height], x + width / 2, y + height / 2, 0) === false) {\n context.closePath();\n }\n if (fillCb) {\n fillCb(context, graphic.attribute, graphicAttribute, true);\n }\n\n if (draw) {\n context.clip();\n }\n }\n}\n\nexport const defaultBaseClipRenderBeforeContribution = new DefaultBaseClipRenderBeforeContribution();\nexport class DefaultBaseClipRenderAfterContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) {\n const { clipConfig } = graphic.attribute;\n if (!clipConfig) {\n return;\n }\n const clipPath = graphic.getClipPath();\n if (!clipPath) {\n return;\n }\n if (!(fillCb || strokeCb)) {\n context.restore();\n }\n }\n}\n\nexport const defaultBaseClipRenderAfterContribution = new DefaultBaseClipRenderAfterContribution();\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/contributions/base-contribution-render.ts"],"names":[],"mappings":"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","file":"base-contribution-render.js","sourcesContent":["import type {\n IGraphicAttribute,\n IContext2d,\n IGraphic,\n IThemeAttribute,\n IBaseRenderContribution,\n IContributionProvider,\n IDrawContext,\n ISymbol,\n IPath,\n ISymbolGraphicAttribute\n} from '../../../../interface';\nimport type { IBounds } from '@visactor/vutils';\nimport { getTheme } from '../../../../graphic/theme';\nimport { canvasAllocate } from '../../../../allocator/canvas-allocate';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\nimport { InteractiveSubRenderContribution } from './constants';\nimport { contributionRegistry } from '../../../../common/registry';\n\nexport class DefaultBaseBackgroundRenderContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) {\n const {\n background,\n backgroundOpacity = graphic.attribute.fillOpacity ?? graphicAttribute.backgroundOpacity,\n opacity = graphicAttribute.opacity,\n backgroundMode = graphicAttribute.backgroundMode,\n backgroundFit = graphicAttribute.backgroundFit,\n backgroundKeepAspectRatio = graphicAttribute.backgroundKeepAspectRatio,\n backgroundScale = graphicAttribute.backgroundScale,\n backgroundOffsetX = graphicAttribute.backgroundOffsetX,\n backgroundOffsetY = graphicAttribute.backgroundOffsetY,\n backgroundClip = graphicAttribute.backgroundClip\n } = graphic.attribute;\n if (!background) {\n return;\n }\n\n if (graphic.backgroundImg && graphic.resources) {\n const res = graphic.resources.get(background as any);\n if (res.state !== 'success' || !res.data) {\n return;\n }\n\n context.save();\n\n if (graphic.parent && !graphic.transMatrix.onlyTranslate()) {\n const groupAttribute = getTheme(graphic.parent).group;\n const { scrollX = groupAttribute.scrollX, scrollY = groupAttribute.scrollY } = graphic.parent.attribute;\n context.setTransformFromMatrix(graphic.parent.globalTransMatrix, true);\n context.translate(scrollX, scrollY);\n }\n backgroundClip && context.clip();\n const b = graphic.AABBBounds;\n context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n context.globalAlpha = backgroundOpacity * opacity;\n this.doDrawImage(context, res.data, b, {\n backgroundMode,\n backgroundFit,\n backgroundKeepAspectRatio,\n backgroundScale,\n backgroundOffsetX,\n backgroundOffsetY\n });\n context.restore();\n if (!graphic.transMatrix.onlyTranslate()) {\n context.setTransformForCurrent();\n }\n } else {\n context.highPerformanceSave();\n context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);\n context.globalAlpha = backgroundOpacity * opacity;\n context.fillStyle = background as string;\n context.fill();\n context.highPerformanceRestore();\n }\n }\n\n protected doDrawImage(\n context: IContext2d,\n data: any,\n b: IBounds,\n params: {\n backgroundMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';\n backgroundFit: boolean;\n backgroundKeepAspectRatio: boolean;\n backgroundScale?: number;\n backgroundOffsetX?: number;\n backgroundOffsetY?: number;\n }\n ): void {\n const {\n backgroundMode,\n backgroundFit,\n backgroundKeepAspectRatio,\n backgroundScale = 1,\n backgroundOffsetX = 0,\n backgroundOffsetY = 0\n } = params;\n const targetW = b.width();\n const targetH = b.height();\n let w = targetW;\n let h = targetH;\n if (backgroundMode === 'no-repeat') {\n if (backgroundFit) {\n if (!backgroundKeepAspectRatio) {\n context.drawImage(data, b.x1, b.y1, b.width(), b.height());\n } else {\n const maxScale = Math.max(targetW / data.width, targetH / data.height);\n context.drawImage(\n data,\n b.x1 + backgroundOffsetX,\n b.y1 + backgroundOffsetY,\n data.width * maxScale * backgroundScale,\n data.height * maxScale * backgroundScale\n );\n }\n } else {\n const resW = data.width * backgroundScale;\n const resH = data.height * backgroundScale;\n context.drawImage(data, b.x1 + backgroundOffsetX, b.y1 + backgroundOffsetY, resW, resH);\n }\n } else {\n // debugger;\n // TODO 考虑缓存\n if (backgroundFit && backgroundMode !== 'repeat' && (data.width || data.height)) {\n const resW = data.width;\n const resH = data.height;\n\n if (backgroundMode === 'repeat-x') {\n // 高度适应\n const ratio = targetH / resH;\n w = resW * ratio;\n h = targetH;\n } else if (backgroundMode === 'repeat-y') {\n // 宽度适应\n const ratio = targetW / resW;\n h = resH * ratio;\n w = targetW;\n }\n\n const dpr = context.dpr;\n const canvas = canvasAllocate.allocate({ width: w, height: h, dpr });\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.inuse = true;\n ctx.clearMatrix();\n ctx.setTransformForCurrent(true);\n ctx.clearRect(0, 0, w, h);\n ctx.drawImage(data, 0, 0, w, h);\n data = canvas.nativeCanvas;\n }\n canvasAllocate.free(canvas);\n }\n const dpr = context.dpr;\n const pattern = context.createPattern(data, backgroundMode);\n pattern.setTransform && pattern.setTransform(new DOMMatrix([1 / dpr, 0, 0, 1 / dpr, 0, 0]));\n context.fillStyle = pattern;\n context.translate(b.x1, b.y1);\n context.fillRect(0, 0, targetW, targetH);\n context.translate(-b.x1, -b.y1);\n }\n }\n}\n\nexport const defaultBaseBackgroundRenderContribution = new DefaultBaseBackgroundRenderContribution();\n\nexport interface IInteractiveSubRenderContribution {\n render: (\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) => void;\n}\n\nexport class DefaultBaseInteractiveRenderContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n\n _subRenderContribitions?: IInteractiveSubRenderContribution[];\n protected readonly subRenderContribitions: IContributionProvider<IInteractiveSubRenderContribution>;\n\n constructor(subRenderContribitions?: IContributionProvider<IInteractiveSubRenderContribution>) {\n this.subRenderContribitions =\n subRenderContribitions ||\n ({\n getContributions: () =>\n contributionRegistry.get<IInteractiveSubRenderContribution>(InteractiveSubRenderContribution)\n } as IContributionProvider<IInteractiveSubRenderContribution>);\n }\n\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) {\n if (!this._subRenderContribitions) {\n this._subRenderContribitions = this.subRenderContribitions.getContributions();\n }\n this._subRenderContribitions.forEach(c => {\n c.render(\n graphic,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n graphicAttribute,\n drawContext,\n fillCb,\n strokeCb,\n options\n );\n });\n }\n}\n\nexport class DefaultBaseClipRenderBeforeContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IGraphicAttribute>,\n themeAttribute: IThemeAttribute,\n final?: boolean\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IGraphicAttribute>,\n themeAttribute: IThemeAttribute,\n final?: boolean\n ) => boolean,\n options?: any\n ) {\n const { clipConfig } = graphic.attribute;\n if (!clipConfig) {\n return;\n }\n const clipPath = graphic.getClipPath();\n if (!clipPath) {\n return;\n }\n const draw = !(fillCb || strokeCb);\n const b = graphic.AABBBounds;\n const width = (graphic.attribute as any).width ?? b.width();\n const height = (graphic.attribute as any).height ?? b.height();\n if (draw) {\n context.save();\n }\n context.beginPath();\n if (clipPath.draw(context, [width, height], x + width / 2, y + height / 2, 0) === false) {\n context.closePath();\n }\n if (fillCb) {\n fillCb(context, graphic.attribute, graphicAttribute, true);\n }\n\n if (draw) {\n context.clip();\n }\n }\n}\n\nexport const defaultBaseClipRenderBeforeContribution = new DefaultBaseClipRenderBeforeContribution();\nexport class DefaultBaseClipRenderAfterContribution implements IBaseRenderContribution<IGraphic, IGraphicAttribute> {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n graphic: IGraphic,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<IGraphicAttribute>,\n drawContext: IDrawContext,\n fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n options?: any\n ) {\n const { clipConfig } = graphic.attribute;\n if (!clipConfig) {\n return;\n }\n const clipPath = graphic.getClipPath();\n if (!clipPath) {\n return;\n }\n if (!(fillCb || strokeCb)) {\n context.restore();\n }\n }\n}\n\nexport const defaultBaseClipRenderAfterContribution = new DefaultBaseClipRenderAfterContribution();\n"]}
@@ -1,5 +1,4 @@
1
1
  import type { IGraphicAttribute, IContext2d, IThemeAttribute, IImageRenderContribution, IDrawContext, IMarkAttribute } from '../../../../interface';
2
- import { DefaultBaseBackgroundRenderContribution } from './base-contribution-render';
3
2
  import { BaseRenderContributionTime } from '../../../../common/enums';
4
3
  import { DefaultRectRenderContribution } from './rect-contribution-render';
5
4
  export declare class DefaultImageRenderContribution extends DefaultRectRenderContribution implements IImageRenderContribution {
@@ -9,4 +8,4 @@ export declare class DefaultImageRenderContribution extends DefaultRectRenderCon
9
8
  drawShape(image: any, context: IContext2d, x: number, y: number, doFill: boolean, doStroke: boolean, fVisible: boolean, sVisible: boolean, rectAttribute: any, drawContext: IDrawContext, fillCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, strokeCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean): void;
10
9
  }
11
10
  export declare const defaultImageRenderContribution: DefaultImageRenderContribution;
12
- export declare const defaultImageBackgroundRenderContribution: DefaultBaseBackgroundRenderContribution;
11
+ export declare const defaultImageBackgroundRenderContribution: import("./base-contribution-render").DefaultBaseBackgroundRenderContribution;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/contributions/image-contribution-render.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,uCAAuC,EAExC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAItE,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AA+H3E,MAAM,OAAO,8BAA+B,SAAQ,6BAA6B;IAAjF;;QACE,SAAI,GAA+B,0BAA0B,CAAC,eAAe,CAAC;QAC9E,aAAQ,GAAY,IAAI,CAAC;QACzB,UAAK,GAAW,CAAC,CAAC;IAsCpB,CAAC;IArCC,SAAS,CACP,KAAU,EACV,OAAmB,EACnB,CAAS,EACT,CAAS,EACT,MAAe,EACf,QAAiB,EACjB,QAAiB,EACjB,QAAiB,EACjB,aAAkB,EAClB,WAAyB,EACzB,MAIY,EACZ,QAIY;QAEZ,OAAO,KAAK,CAAC,SAAS,CACpB,KAAK,EACL,OAAO,EACP,CAAC,EACD,CAAC,EACD,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,8BAA8B,EAAE,CAAC;AACnF,MAAM,CAAC,MAAM,wCAAwC,GAAG,uCAAuC,CAAC","file":"image-contribution-render.js","sourcesContent":["import type {\n IGraphicAttribute,\n IContext2d,\n IImage,\n IThemeAttribute,\n IImageRenderContribution,\n IDrawContext,\n IBackgroundConfig,\n IGraphic,\n IMarkAttribute\n} from '../../../../interface';\nimport { getTheme } from '../../../../graphic/theme';\nimport {\n defaultBaseBackgroundRenderContribution,\n DefaultBaseBackgroundRenderContribution\n} from './base-contribution-render';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\nimport { isNumber, isObject } from '@visactor/vutils';\nimport { parsePadding } from '../../../../common/utils';\nimport { createRectPath } from '../../../../common/shape/rect';\nimport { DefaultRectRenderContribution } from './rect-contribution-render';\n\n// export class DefaultImageBackgroundRenderContribution\n// extends DefaultBaseBackgroundRenderContribution\n// implements IImageRenderContribution\n// {\n// time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n\n// drawShape(\n// graphic: IImage,\n// context: IContext2d,\n// x: number,\n// y: number,\n// doFill: boolean,\n// doStroke: boolean,\n// fVisible: boolean,\n// sVisible: boolean,\n// graphicAttribute: Required<IGraphicAttribute>,\n// drawContext: IDrawContext,\n// fillCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean,\n// strokeCb?: (ctx: IContext2d, markAttribute: Partial<IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean\n// ) {\n// const {\n// background,\n// backgroundMode = graphicAttribute.backgroundMode,\n// backgroundFit = graphicAttribute.backgroundFit,\n// width,\n// height\n// } = graphic.attribute;\n// if (!background) {\n// return;\n// }\n\n// if (!graphic.backgroundImg) {\n// if (isObject(background)) {\n// const {\n// stroke,\n// fill,\n// lineWidth = 1,\n// cornerRadius = 0,\n// expandX = 0,\n// expandY = 0\n// } = background as IBackgroundConfig;\n\n// if (!stroke && !fill) {\n// return;\n// }\n\n// context.beginPath();\n// const { x, y, width, height } = getActualPosition(graphic);\n// if (cornerRadius) {\n// createRectPath(context, x - expandX, y - expandY, width + expandX * 2, height + expandY * 2, cornerRadius);\n// } else {\n// context.rect(x - expandX, y - expandY, width + expandX * 2, height + expandY * 2);\n// }\n\n// context.globalAlpha = 1;\n// if (fill) {\n// context.fillStyle = fill as string;\n// context.fill();\n// }\n\n// if (stroke && lineWidth > 0) {\n// context.lineWidth = lineWidth;\n// context.strokeStyle = stroke as string;\n// context.stroke();\n// }\n// } else {\n// context.beginPath();\n// // const b = graphic.AABBBounds;\n// // image的背景不包括Bounds了\n// context.rect(x, y, width || 0, height || 0);\n// context.fillStyle = background as string;\n// context.globalAlpha = 1;\n// context.fill();\n// }\n// } else {\n// const res = graphic.resources.get(background as any);\n// if (res.state !== 'success' || !res.data) {\n// return;\n// }\n// context.save();\n// if (graphic.parent && !graphic.transMatrix.onlyTranslate()) {\n// const groupAttribute = getTheme(graphic.parent).group;\n// const { scrollX = groupAttribute.scrollX, scrollY = groupAttribute.scrollY } = graphic.parent.attribute;\n// context.setTransformFromMatrix(graphic.parent.globalTransMatrix, true);\n// context.translate(scrollX, scrollY);\n// }\n// // context.clip();\n// const b = graphic.AABBBounds;\n// this.doDrawImage(context, res.data, b, backgroundMode, backgroundFit);\n// context.restore();\n// if (!graphic.transMatrix.onlyTranslate()) {\n// context.setTransformForCurrent();\n// }\n// }\n// }\n// }\n\n// function getActualPosition(graphic: IGraphic) {\n// const boundsPadding = parsePadding(graphic.attribute.boundsPadding);\n// const bounds = graphic.AABBBounds;\n// let x = bounds.x1;\n// let y = bounds.y1;\n// let width = bounds.width();\n// let height = bounds.height();\n\n// if (isNumber(boundsPadding)) {\n// x += boundsPadding;\n// y += boundsPadding;\n// width -= boundsPadding * 2;\n// height -= boundsPadding * 2;\n// } else {\n// x += boundsPadding[3];\n// y += boundsPadding[0];\n// width -= boundsPadding[1] + boundsPadding[3];\n// height -= boundsPadding[0] + boundsPadding[2];\n// }\n\n// return {\n// x,\n// y,\n// width,\n// height\n// };\n// }\n\nexport class DefaultImageRenderContribution extends DefaultRectRenderContribution implements IImageRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n image: any,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: any,\n drawContext: IDrawContext,\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 return super.drawShape(\n image,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n rectAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n}\n\nexport const defaultImageRenderContribution = new DefaultImageRenderContribution();\nexport const defaultImageBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/contributions/image-contribution-render.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAE3E,MAAM,OAAO,8BAA+B,SAAQ,6BAA6B;IAAjF;;QACE,SAAI,GAA+B,0BAA0B,CAAC,eAAe,CAAC;QAC9E,aAAQ,GAAY,IAAI,CAAC;QACzB,UAAK,GAAW,CAAC,CAAC;IAsCpB,CAAC;IArCC,SAAS,CACP,KAAU,EACV,OAAmB,EACnB,CAAS,EACT,CAAS,EACT,MAAe,EACf,QAAiB,EACjB,QAAiB,EACjB,QAAiB,EACjB,aAAkB,EAClB,WAAyB,EACzB,MAIY,EACZ,QAIY;QAEZ,OAAO,KAAK,CAAC,SAAS,CACpB,KAAK,EACL,OAAO,EACP,CAAC,EACD,CAAC,EACD,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,8BAA8B,EAAE,CAAC;AACnF,MAAM,CAAC,MAAM,wCAAwC,GAAG,uCAAuC,CAAC","file":"image-contribution-render.js","sourcesContent":["import type {\n IGraphicAttribute,\n IContext2d,\n IThemeAttribute,\n IImageRenderContribution,\n IDrawContext,\n IMarkAttribute\n} from '../../../../interface';\nimport { defaultBaseBackgroundRenderContribution } from './base-contribution-render';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\nimport { DefaultRectRenderContribution } from './rect-contribution-render';\n\nexport class DefaultImageRenderContribution extends DefaultRectRenderContribution implements IImageRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n image: any,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: any,\n drawContext: IDrawContext,\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 return super.drawShape(\n image,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n rectAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n}\n\nexport const defaultImageRenderContribution = new DefaultImageRenderContribution();\nexport const defaultImageBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;\n"]}
@@ -1,13 +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
- };
6
-
7
1
  import { isArray } from "@visactor/vutils";
8
2
 
9
- import { injectable } from "../../../../common/inversify-lite";
10
-
11
3
  import { getScaledStroke } from "../../../../common/canvas-utils";
12
4
 
13
5
  import { defaultBaseBackgroundRenderContribution } from "./base-contribution-render";
@@ -44,7 +36,7 @@ export class DefaultRectRenderContribution {
44
36
  }
45
37
  }
46
38
 
47
- let SplitRectBeforeRenderContribution = class {
39
+ export class SplitRectBeforeRenderContribution {
48
40
  constructor() {
49
41
  this.time = BaseRenderContributionTime.beforeFillStroke, this.useStyle = !0, this.order = 0;
50
42
  }
@@ -52,13 +44,9 @@ let SplitRectBeforeRenderContribution = class {
52
44
  const {stroke: stroke = groupAttribute.stroke} = group.attribute;
53
45
  Array.isArray(stroke) && stroke.some((s => !1 === s)) && (doFillOrStroke.doStroke = !1);
54
46
  }
55
- };
56
-
57
- SplitRectBeforeRenderContribution = __decorate([ injectable() ], SplitRectBeforeRenderContribution);
58
-
59
- export { SplitRectBeforeRenderContribution };
47
+ }
60
48
 
61
- let SplitRectAfterRenderContribution = class {
49
+ export class SplitRectAfterRenderContribution {
62
50
  constructor() {
63
51
  this.time = BaseRenderContributionTime.afterFillStroke, this.useStyle = !0, this.order = 0;
64
52
  }
@@ -85,11 +73,7 @@ let SplitRectAfterRenderContribution = class {
85
73
  context.stroke();
86
74
  }
87
75
  }
88
- };
89
-
90
- SplitRectAfterRenderContribution = __decorate([ injectable() ], SplitRectAfterRenderContribution);
91
-
92
- export { SplitRectAfterRenderContribution };
76
+ }
93
77
 
94
78
  export const defaultRectRenderContribution = new DefaultRectRenderContribution;
95
79
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/contributions/rect-contribution-render.ts"],"names":[],"mappings":"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","file":"rect-contribution-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { injectable } from '../../../../common/inversify-lite';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IRect,\n IRectGraphicAttribute,\n IThemeAttribute,\n IRectRenderContribution,\n IDrawContext,\n IBorderStyle\n} from '../../../../interface';\nimport { getScaledStroke } from '../../../../common/canvas-utils';\nimport { defaultBaseBackgroundRenderContribution } from './base-contribution-render';\nimport { createRectPath } from '../../../../common/shape/rect';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\nimport { defaultBaseTextureRenderContribution } from './base-texture-contribution-render';\n\nexport class DefaultRectRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\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 { outerBorder, innerBorder } = rect.attribute;\n const doOuterBorder = outerBorder && outerBorder.visible !== false;\n const doInnerBorder = innerBorder && innerBorder.visible !== false;\n if (!(doOuterBorder || doInnerBorder)) {\n return;\n }\n const {\n cornerRadius = rectAttribute.cornerRadius,\n cornerType = rectAttribute.cornerType,\n opacity = rectAttribute.opacity,\n x: originX = rectAttribute.x,\n y: originY = rectAttribute.y,\n scaleX = rectAttribute.scaleX,\n scaleY = rectAttribute.scaleY,\n x1,\n y1,\n keepStrokeScale = rectAttribute.keepStrokeScale\n } = rect.attribute;\n\n let { width, height } = rect.attribute;\n\n width = (width ?? x1 - x) || 0;\n height = (height ?? y1 - y) || 0;\n\n const renderBorder = (borderStyle: Partial<IBorderStyle>, key: 'outerBorder' | 'innerBorder') => {\n const doStroke = !!(borderStyle && borderStyle.stroke);\n\n const sign = key === 'outerBorder' ? -1 : 1;\n const { distance = rectAttribute[key].distance } = borderStyle;\n const d = keepStrokeScale ? (distance as number) : getScaledStroke(context, distance as number, context.dpr);\n const nextX = x + sign * d;\n const nextY = y + sign * d;\n const dw = d * 2;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(nextX, nextY, width - sign * dw, height - sign * dw);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(\n context,\n nextX,\n nextY,\n width - sign * dw,\n height - sign * dw,\n cornerRadius,\n cornerType !== 'bevel'\n );\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n if (strokeCb) {\n strokeCb(context, borderStyle, rectAttribute[key]);\n } else if (doStroke) {\n // 存在stroke\n const lastOpacity = (rectAttribute[key] as any).opacity;\n (rectAttribute[key] as any).opacity = opacity;\n context.setStrokeStyle(\n rect,\n borderStyle,\n (originX - x) / scaleX,\n (originY - y) / scaleY,\n rectAttribute[key] as any\n );\n (rectAttribute[key] as any).opacity = lastOpacity;\n context.stroke();\n }\n };\n\n doOuterBorder && renderBorder(outerBorder, 'outerBorder');\n doInnerBorder && renderBorder(innerBorder, 'innerBorder');\n }\n}\n\n@injectable()\nexport class SplitRectBeforeRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n group: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n groupAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\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 doFillOrStroke?: { doFill: boolean; doStroke: boolean }\n ) {\n const { stroke = groupAttribute.stroke } = group.attribute as any;\n\n // 数组且存在为false的项目,那就不绘制\n if (Array.isArray(stroke) && stroke.some(s => s === false)) {\n doFillOrStroke.doStroke = false;\n }\n }\n}\n\n@injectable()\nexport class SplitRectAfterRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n groupAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\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 {\n x1,\n y1,\n x: originX = groupAttribute.x,\n y: originY = groupAttribute.y,\n stroke = groupAttribute.stroke,\n cornerRadius = groupAttribute.cornerRadius,\n cornerType = groupAttribute.cornerType\n } = rect.attribute as any;\n\n let { width, height } = rect.attribute;\n width = (width ?? x1 - originX) || 0;\n height = (height ?? y1 - originY) || 0;\n\n // 不是数组\n if (!(Array.isArray(stroke) && stroke.some(s => s === false))) {\n return;\n }\n\n context.setStrokeStyle(rect, rect.attribute, x, y, groupAttribute);\n\n // 带不同stroke边框\n if (!(cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0)))) {\n let lastStrokeI = 0;\n let lastStroke: any;\n createRectPath(\n context,\n x,\n y,\n width,\n height,\n cornerRadius,\n cornerType !== 'bevel',\n new Array(4).fill(0).map((_, i) => (x1: number, y1: number, x2: number, y2: number) => {\n if (stroke[i]) {\n if (!(lastStrokeI === i - 1 && stroke[i] === lastStroke)) {\n context.setStrokeStyle(rect, { ...rect.attribute, stroke: stroke[i] }, x, y, groupAttribute);\n context.beginPath();\n context.moveTo(x1, y1);\n lastStroke = stroke[i];\n }\n lastStrokeI = i;\n context.lineTo(x2, y2);\n context.stroke();\n if (i === 3) {\n context.beginPath();\n }\n }\n })\n );\n context.stroke();\n return;\n }\n\n // 单独处理每条边界,目前不考虑圆角\n context.beginPath();\n context.moveTo(x, y);\n // top\n if (stroke[0]) {\n context.lineTo(x + width, y);\n } else {\n context.moveTo(x + width, y);\n }\n // right\n if (stroke[1]) {\n context.lineTo(x + width, y + height);\n } else {\n context.moveTo(x + width, y + height);\n }\n // bottom\n if (stroke[2]) {\n context.lineTo(x, y + height);\n } else {\n context.moveTo(x, y + height);\n }\n // left\n if (stroke[3]) {\n // 没有close path是,起点和终点不连续,需要调整y保证不出现缺口\n const adjustY = stroke[0] ? y - context.lineWidth / 2 : y;\n context.lineTo(x, adjustY);\n } else {\n context.moveTo(x, y);\n }\n\n context.stroke();\n }\n}\n\nexport const defaultRectRenderContribution = new DefaultRectRenderContribution();\n// export const splitRectBeforeRenderContribution = new SplitRectBeforeRenderContribution();\n// export const splitRectAfterRenderContribution = new SplitRectAfterRenderContribution();\nexport const defaultRectTextureRenderContribution = defaultBaseTextureRenderContribution;\nexport const defaultRectBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/contributions/rect-contribution-render.ts"],"names":[],"mappings":"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","file":"rect-contribution-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IRect,\n IRectGraphicAttribute,\n IThemeAttribute,\n IRectRenderContribution,\n IDrawContext,\n IBorderStyle\n} from '../../../../interface';\nimport { getScaledStroke } from '../../../../common/canvas-utils';\nimport { defaultBaseBackgroundRenderContribution } from './base-contribution-render';\nimport { createRectPath } from '../../../../common/shape/rect';\nimport { BaseRenderContributionTime } from '../../../../common/enums';\nimport { defaultBaseTextureRenderContribution } from './base-texture-contribution-render';\n\nexport class DefaultRectRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n rectAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\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 { outerBorder, innerBorder } = rect.attribute;\n const doOuterBorder = outerBorder && outerBorder.visible !== false;\n const doInnerBorder = innerBorder && innerBorder.visible !== false;\n if (!(doOuterBorder || doInnerBorder)) {\n return;\n }\n const {\n cornerRadius = rectAttribute.cornerRadius,\n cornerType = rectAttribute.cornerType,\n opacity = rectAttribute.opacity,\n x: originX = rectAttribute.x,\n y: originY = rectAttribute.y,\n scaleX = rectAttribute.scaleX,\n scaleY = rectAttribute.scaleY,\n x1,\n y1,\n keepStrokeScale = rectAttribute.keepStrokeScale\n } = rect.attribute;\n\n let { width, height } = rect.attribute;\n\n width = (width ?? x1 - x) || 0;\n height = (height ?? y1 - y) || 0;\n\n const renderBorder = (borderStyle: Partial<IBorderStyle>, key: 'outerBorder' | 'innerBorder') => {\n const doStroke = !!(borderStyle && borderStyle.stroke);\n\n const sign = key === 'outerBorder' ? -1 : 1;\n const { distance = rectAttribute[key].distance } = borderStyle;\n const d = keepStrokeScale ? (distance as number) : getScaledStroke(context, distance as number, context.dpr);\n const nextX = x + sign * d;\n const nextY = y + sign * d;\n const dw = d * 2;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(nextX, nextY, width - sign * dw, height - sign * dw);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(\n context,\n nextX,\n nextY,\n width - sign * dw,\n height - sign * dw,\n cornerRadius,\n cornerType !== 'bevel'\n );\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n if (strokeCb) {\n strokeCb(context, borderStyle, rectAttribute[key]);\n } else if (doStroke) {\n // 存在stroke\n const lastOpacity = (rectAttribute[key] as any).opacity;\n (rectAttribute[key] as any).opacity = opacity;\n context.setStrokeStyle(\n rect,\n borderStyle,\n (originX - x) / scaleX,\n (originY - y) / scaleY,\n rectAttribute[key] as any\n );\n (rectAttribute[key] as any).opacity = lastOpacity;\n context.stroke();\n }\n };\n\n doOuterBorder && renderBorder(outerBorder, 'outerBorder');\n doInnerBorder && renderBorder(innerBorder, 'innerBorder');\n }\n}\n\nexport class SplitRectBeforeRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.beforeFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n group: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n groupAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\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 doFillOrStroke?: { doFill: boolean; doStroke: boolean }\n ) {\n const { stroke = groupAttribute.stroke } = group.attribute as any;\n\n // 数组且存在为false的项目,那就不绘制\n if (Array.isArray(stroke) && stroke.some(s => s === false)) {\n doFillOrStroke.doStroke = false;\n }\n }\n}\n\nexport class SplitRectAfterRenderContribution implements IRectRenderContribution {\n time: BaseRenderContributionTime = BaseRenderContributionTime.afterFillStroke;\n useStyle: boolean = true;\n order: number = 0;\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n groupAttribute: Required<IRectGraphicAttribute>,\n drawContext: IDrawContext,\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 {\n x1,\n y1,\n x: originX = groupAttribute.x,\n y: originY = groupAttribute.y,\n stroke = groupAttribute.stroke,\n cornerRadius = groupAttribute.cornerRadius,\n cornerType = groupAttribute.cornerType\n } = rect.attribute as any;\n\n let { width, height } = rect.attribute;\n width = (width ?? x1 - originX) || 0;\n height = (height ?? y1 - originY) || 0;\n\n // 不是数组\n if (!(Array.isArray(stroke) && stroke.some(s => s === false))) {\n return;\n }\n\n context.setStrokeStyle(rect, rect.attribute, x, y, groupAttribute);\n\n // 带不同stroke边框\n if (!(cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0)))) {\n let lastStrokeI = 0;\n let lastStroke: any;\n createRectPath(\n context,\n x,\n y,\n width,\n height,\n cornerRadius,\n cornerType !== 'bevel',\n new Array(4).fill(0).map((_, i) => (x1: number, y1: number, x2: number, y2: number) => {\n if (stroke[i]) {\n if (!(lastStrokeI === i - 1 && stroke[i] === lastStroke)) {\n context.setStrokeStyle(rect, { ...rect.attribute, stroke: stroke[i] }, x, y, groupAttribute);\n context.beginPath();\n context.moveTo(x1, y1);\n lastStroke = stroke[i];\n }\n lastStrokeI = i;\n context.lineTo(x2, y2);\n context.stroke();\n if (i === 3) {\n context.beginPath();\n }\n }\n })\n );\n context.stroke();\n return;\n }\n\n // 单独处理每条边界,目前不考虑圆角\n context.beginPath();\n context.moveTo(x, y);\n // top\n if (stroke[0]) {\n context.lineTo(x + width, y);\n } else {\n context.moveTo(x + width, y);\n }\n // right\n if (stroke[1]) {\n context.lineTo(x + width, y + height);\n } else {\n context.moveTo(x + width, y + height);\n }\n // bottom\n if (stroke[2]) {\n context.lineTo(x, y + height);\n } else {\n context.moveTo(x, y + height);\n }\n // left\n if (stroke[3]) {\n // 没有close path是,起点和终点不连续,需要调整y保证不出现缺口\n const adjustY = stroke[0] ? y - context.lineWidth / 2 : y;\n context.lineTo(x, adjustY);\n } else {\n context.moveTo(x, y);\n }\n\n context.stroke();\n }\n}\n\nexport const defaultRectRenderContribution = new DefaultRectRenderContribution();\n// export const splitRectBeforeRenderContribution = new SplitRectBeforeRenderContribution();\n// export const splitRectAfterRenderContribution = new SplitRectAfterRenderContribution();\nexport const defaultRectTextureRenderContribution = defaultBaseTextureRenderContribution;\nexport const defaultRectBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;\n"]}
@@ -2,8 +2,6 @@ import type { IContext2d, MaybePromise, IGraphic, IGroup, IDrawContext, IRenderS
2
2
  import type { IBounds, IMatrix } from '@visactor/vutils';
3
3
  import type { ILayerService } from '../../../interface/core';
4
4
  export declare class DefaultDrawContribution implements IDrawContribution {
5
- protected readonly contributions: IGraphicRender[];
6
- protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>;
7
5
  currentRenderMap: Map<number, IGraphicRender>;
8
6
  defaultRenderMap: Map<number, IGraphicRender>;
9
7
  styleRenderMap: Map<string, Map<number, IGraphicRender>>;
@@ -15,7 +13,9 @@ export declare class DefaultDrawContribution implements IDrawContribution {
15
13
  global: IGlobal;
16
14
  layerService: ILayerService;
17
15
  scrollMatrix?: IMatrix;
18
- constructor(contributions: IGraphicRender[], drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>);
16
+ protected readonly contributions: IGraphicRender[];
17
+ protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>;
18
+ constructor(contributions?: IGraphicRender[], drawItemInterceptorContributions?: IContributionProvider<IDrawItemInterceptorContribution>);
19
19
  reInit(): void;
20
20
  init(): void;
21
21
  prepareForDraw(renderService: IRenderService, drawContext: IDrawContext): void;
@@ -1,27 +1,9 @@
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 { injectable, inject, named, multiInject } from "../../../common/inversify-lite";
14
-
15
1
  import { findNextGraphic, foreach } from "../../../common/sort";
16
2
 
17
- import { ContributionProvider } from "../../../common/contribution-provider";
18
-
19
3
  import { DefaultAttribute } from "../../../graphic/config";
20
4
 
21
5
  import { Bounds, Logger, getRectIntersect, isArray, isRectIntersect } from "@visactor/vutils";
22
6
 
23
- import { container } from "../../../container";
24
-
25
7
  import { GraphicRender, IncrementalDrawContribution } from "./symbol";
26
8
 
27
9
  import { DrawItemInterceptor } from "./draw-interceptor";
@@ -32,11 +14,12 @@ import { boundsAllocate } from "../../../allocator/bounds-allocate";
32
14
 
33
15
  import { matrixAllocate } from "../../../allocator/matrix-allocate";
34
16
 
35
- import { application } from "../../../application";
17
+ import { vglobal, layerService } from "../../../modules";
36
18
 
37
- let DefaultDrawContribution = class {
19
+ import { contributionRegistry, serviceRegistry } from "../../../common/registry";
20
+
21
+ export class DefaultDrawContribution {
38
22
  constructor(contributions, drawItemInterceptorContributions) {
39
- this.contributions = contributions, this.drawItemInterceptorContributions = drawItemInterceptorContributions,
40
23
  this._renderInGroup = (skipSort, group, drawContext, nextM) => {
41
24
  var _a;
42
25
  skipSort ? group.forEachChildren((item => {
@@ -44,9 +27,12 @@ let DefaultDrawContribution = class {
44
27
  })) : foreach(group, DefaultAttribute.zIndex, (item => {
45
28
  drawContext.break || (item.isContainer ? this.renderGroup(item, drawContext, nextM) : this.renderItem(item, drawContext));
46
29
  }), !1, !!(null === (_a = drawContext.context) || void 0 === _a ? void 0 : _a.camera));
30
+ }, this.contributions = contributions || contributionRegistry.get(GraphicRender),
31
+ this.drawItemInterceptorContributions = drawItemInterceptorContributions || {
32
+ getContributions: () => contributionRegistry.get(DrawItemInterceptor)
47
33
  }, this.currentRenderMap = new Map, this.defaultRenderMap = new Map, this.styleRenderMap = new Map,
48
- this.dirtyBounds = new Bounds, this.backupDirtyBounds = new Bounds, this.global = application.global,
49
- this.layerService = application.layerService, isArray(this.contributions) || (this.contributions = [ this.contributions ]),
34
+ this.dirtyBounds = new Bounds, this.backupDirtyBounds = new Bounds, this.global = vglobal,
35
+ this.layerService = layerService, isArray(this.contributions) || (this.contributions = [ this.contributions ]),
50
36
  this.init();
51
37
  }
52
38
  reInit() {
@@ -137,7 +123,7 @@ let DefaultDrawContribution = class {
137
123
  zIndex: subLayers.size,
138
124
  group: group
139
125
  }, subLayers.set(group._uid, incrementalLayer));
140
- const incrementalContext = incrementalLayer.layer.getNativeHandler().getContext(), idc = incrementalLayer.drawContribution || container.get(IncrementalDrawContribution);
126
+ const incrementalContext = incrementalLayer.layer.getNativeHandler().getContext(), idc = incrementalLayer.drawContribution || serviceRegistry.get(IncrementalDrawContribution);
141
127
  idc.dirtyBounds.setValue(-1 / 0, -1 / 0, 1 / 0, 1 / 0), idc.backupDirtyBounds.setValue(-1 / 0, -1 / 0, 1 / 0, 1 / 0),
142
128
  idc.draw(this.currentRenderService, Object.assign(Object.assign({}, drawContext), {
143
129
  drawContribution: idc,
@@ -235,9 +221,5 @@ let DefaultDrawContribution = class {
235
221
  }
236
222
  }
237
223
  afterDraw(renderService, drawParams) {}
238
- };
239
-
240
- DefaultDrawContribution = __decorate([ injectable(), __param(0, multiInject(GraphicRender)), __param(1, inject(ContributionProvider)), __param(1, named(DrawItemInterceptor)), __metadata("design:paramtypes", [ Array, Object ]) ], DefaultDrawContribution);
241
-
242
- export { DefaultDrawContribution };
224
+ }
243
225
  //# sourceMappingURL=draw-contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/draw-contribution.ts"],"names":[],"mappings":"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","file":"draw-contribution.js","sourcesContent":["import { injectable, inject, named, multiInject } from '../../../common/inversify-lite';\nimport type {\n IContext2d,\n MaybePromise,\n IGraphic,\n IGroup,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider,\n IDrawItemInterceptorContribution,\n IDrawContribution,\n IGlobal\n} from '../../../interface';\nimport { findNextGraphic, foreach } from '../../../common/sort';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { DefaultAttribute } from '../../../graphic/config';\nimport type { IAABBBounds, IBounds, IMatrix } from '@visactor/vutils';\nimport { Bounds, Logger, getRectIntersect, isArray, isRectIntersect } from '@visactor/vutils';\nimport { container } from '../../../container';\nimport { GraphicRender, IncrementalDrawContribution } from './symbol';\nimport { DrawItemInterceptor } from './draw-interceptor';\nimport { createColor } from '../../../common/canvas-utils';\nimport type { ILayerService } from '../../../interface/core';\nimport { boundsAllocate } from '../../../allocator/bounds-allocate';\nimport { matrixAllocate } from '../../../allocator/matrix-allocate';\nimport { application } from '../../../application';\n\n/**\n * 默认的渲染contribution,基于树状结构针对图元的渲染\n */\n@injectable()\nexport class DefaultDrawContribution implements IDrawContribution {\n declare currentRenderMap: Map<number, IGraphicRender>;\n declare defaultRenderMap: Map<number, IGraphicRender>;\n declare styleRenderMap: Map<string, Map<number, IGraphicRender>>;\n declare dirtyBounds: IBounds;\n declare backupDirtyBounds: IBounds;\n // 是否使用dirtyBounds\n declare useDirtyBounds: boolean;\n declare currentRenderService: IRenderService;\n declare InterceptorContributions: IDrawItemInterceptorContribution[];\n\n declare global: IGlobal;\n declare layerService: ILayerService;\n\n declare scrollMatrix?: IMatrix;\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 // 拦截器\n @inject(ContributionProvider)\n @named(DrawItemInterceptor)\n protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>\n ) {\n this.currentRenderMap = new Map();\n this.defaultRenderMap = new Map();\n this.styleRenderMap = new Map();\n this.dirtyBounds = new Bounds();\n this.backupDirtyBounds = new Bounds();\n this.global = application.global;\n this.layerService = application.layerService;\n if (!isArray(this.contributions)) {\n this.contributions = [this.contributions];\n }\n this.init();\n }\n\n reInit() {\n this.init();\n this.contributions.forEach(item => {\n item.reInit();\n });\n }\n\n init() {\n this.contributions.forEach(item => {\n if (item.style) {\n const map = this.styleRenderMap.get(item.style) || new Map();\n map.set(item.numberType, item);\n this.styleRenderMap.set(item.style, map);\n } else {\n this.defaultRenderMap.set(item.numberType, item);\n }\n });\n this.InterceptorContributions = this.drawItemInterceptorContributions\n .getContributions()\n .sort((a, b) => a.order - b.order);\n }\n\n prepareForDraw(renderService: IRenderService, drawContext: IDrawContext) {\n // 有dirtyBounds用dirtyBounds\n if (drawContext.updateBounds) {\n this.useDirtyBounds = true;\n } else {\n // 没有的话,看看是否需要跳过outRange的渲染\n this.useDirtyBounds = !drawContext.stage.params.optimize.disableCheckGraphicWidthOutRange;\n }\n }\n\n draw(renderService: IRenderService, drawContext: IDrawContext): MaybePromise<void> {\n this.prepareForDraw(renderService, drawContext);\n drawContext.drawContribution = this;\n this.currentRenderMap = this.styleRenderMap.get(drawContext.renderStyle) || this.defaultRenderMap;\n // this.startAtId = drawParams.startAtId;\n this.currentRenderService = renderService;\n // this.drawParams = drawParams;\n const { context, stage, viewBox, transMatrix } = drawContext;\n\n if (!context) {\n return;\n }\n // if (context.drawPromise) {\n // return;\n // }\n const dirtyBounds: IBounds | undefined = this.dirtyBounds.setValue(0, 0, viewBox.width(), viewBox.height());\n if (stage.dirtyBounds && !stage.dirtyBounds.empty()) {\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 // 如果dpr不是整数或者.5的小数,需要格式化dirtyBounds\n const d = context.dpr % 1;\n if (d || d !== 0.5) {\n dirtyBounds.x1 = Math.floor(dirtyBounds.x1 * context.dpr) / context.dpr;\n dirtyBounds.y1 = Math.floor(dirtyBounds.y1 * context.dpr) / context.dpr;\n dirtyBounds.x2 = Math.ceil(dirtyBounds.x2 * context.dpr) / context.dpr;\n dirtyBounds.y2 = Math.ceil(dirtyBounds.y2 * context.dpr) / context.dpr;\n }\n this.backupDirtyBounds.copy(dirtyBounds);\n // TODO:不需要设置context.transform,后续translate会设置\n context.reset(false);\n context.save();\n context.setClearMatrix(transMatrix.a, transMatrix.b, transMatrix.c, transMatrix.d, transMatrix.e, transMatrix.f);\n // 初始化context\n context.clearMatrix(false);\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 // 设置translate\n context.translate(viewBox.x1, viewBox.y1, true);\n context.beginPath();\n context.rect(dirtyBounds.x1, dirtyBounds.y1, dirtyBounds.width(), dirtyBounds.height());\n context.clip();\n\n // 如果存在3d视角,那么不使用dirtyBounds\n if (stage.camera) {\n this.dirtyBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n this.backupDirtyBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n }\n\n this.clearScreen(renderService, context, drawContext);\n if (renderService.drawParams?.stage) {\n renderService.drawParams.stage.hooks.afterClearScreen.call(renderService.drawParams);\n }\n // // 渲染的时候图元的起始位置就是x,y\n // this.backupDirtyBounds.translate(-x, -y);\n // this.dirtyBounds.translate(-x, -y);\n\n // // 设置translate\n // context.translate(x, y, 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 group.isContainer\n ? this.renderGroup(group as IGroup, drawContext, matrixAllocate.allocate(1, 0, 0, 1, 0, 0))\n : this.renderItem(group as IGraphic, drawContext);\n });\n\n // context.restore();\n // context.restore();\n // context.setClearMatrix(1, 0, 0, 1, 0, 0);\n // this.break = false;\n // context.inuse = false;\n context.restore();\n context.draw();\n }\n\n doRegister() {\n throw new Error('暂不支持');\n }\n\n // 找到下一个graphic\n protected _findNextGraphic(group: IGroup): IGraphic | null {\n let parent = group.parent;\n let id = group._uid;\n while (parent) {\n const g = findNextGraphic(parent, id, DefaultAttribute.zIndex);\n if (g) {\n return g;\n }\n id = parent._uid;\n parent = parent.parent;\n }\n return null;\n }\n\n renderGroup(group: IGroup, drawContext: IDrawContext, parentMatrix: IMatrix, skipSort?: boolean) {\n if (drawContext.break || group.attribute.visibleAll === false) {\n return;\n }\n if (group.incremental && (drawContext.startAtId == null || drawContext.startAtId === group._uid)) {\n drawContext.break = true;\n this._increaseRender(group, drawContext);\n return;\n }\n\n if (\n this.useDirtyBounds &&\n !isRectIntersect(group.AABBBounds, this.dirtyBounds, false) &&\n group.attribute.boundsMode !== 'empty'\n ) {\n return;\n }\n\n let nextM: IMatrix = parentMatrix;\n let tempBounds: IBounds;\n\n if (this.useDirtyBounds) {\n tempBounds = boundsAllocate.allocateByObj(this.dirtyBounds);\n // 变换dirtyBounds\n const gm = group.transMatrix;\n nextM = matrixAllocate.allocateByObj(parentMatrix).multiply(gm.a, gm.b, gm.c, gm.d, gm.e, gm.f);\n // const m = group.globalTransMatrix.getInverse();\n this.dirtyBounds.copy(this.backupDirtyBounds).transformWithMatrix(nextM.getInverse());\n }\n\n drawContext.isGroupScroll = !!(group.attribute.scrollX || group.attribute.scrollY);\n\n this.renderItem(group, drawContext, {\n renderInGroupParams: {\n skipSort,\n nextM\n },\n renderInGroup: this._renderInGroup\n });\n\n if (this.useDirtyBounds) {\n this.dirtyBounds.copy(tempBounds);\n boundsAllocate.free(tempBounds);\n matrixAllocate.free(nextM);\n }\n }\n\n _renderInGroup = (skipSort: boolean, group: IGroup, drawContext: IDrawContext, nextM: IMatrix) => {\n skipSort\n ? group.forEachChildren((item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n this.renderGroup(item as IGroup, drawContext, nextM);\n } else {\n this.renderItem(item, drawContext);\n }\n })\n : foreach(\n group,\n DefaultAttribute.zIndex,\n (item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n this.renderGroup(item as IGroup, drawContext, nextM);\n } else {\n this.renderItem(item, drawContext);\n }\n },\n false,\n !!drawContext.context?.camera\n );\n };\n\n protected _increaseRender(group: IGroup, drawContext: IDrawContext) {\n const { layer, stage } = drawContext;\n const { subLayers } = layer;\n // 获取渐进渲染层\n let incrementalLayer = subLayers.get(group._uid);\n if (!incrementalLayer) {\n incrementalLayer = {\n layer: this.layerService.createLayer(stage),\n zIndex: subLayers.size,\n group\n };\n subLayers.set(group._uid, incrementalLayer);\n }\n // 渲染\n const incrementalContext = incrementalLayer.layer.getNativeHandler().getContext();\n const idc = incrementalLayer.drawContribution || container.get(IncrementalDrawContribution);\n idc.dirtyBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n idc.backupDirtyBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n (idc as any).draw(this.currentRenderService, {\n ...drawContext,\n drawContribution: idc,\n clear: 'transparent',\n layer: incrementalLayer.layer,\n context: incrementalContext,\n startAtId: group._uid,\n break: false\n });\n incrementalLayer.drawContribution = idc;\n // this.draw(this.currentRenderService, {...this.drawParams, startAtId: group._uid})\n // this.draw(this.currentRenderService, {...this.drawParams, clear: 'transparent', layer: incrementalContext.layer, context: incrementalContext, startAtId: group._uid})\n const nextGraphic = this._findNextGraphic(group);\n if (nextGraphic) {\n // 如果是下一个渐进渲染层,那就再来一次\n if (nextGraphic.isContainer && nextGraphic.incremental) {\n this._increaseRender(nextGraphic as IGroup, drawContext);\n } else {\n // 如果不是渐进渲染层,那就默认图层渲染\n let afterLayer = subLayers.get(nextGraphic._uid);\n if (!afterLayer) {\n afterLayer = {\n layer: this.layerService.createLayer(stage),\n zIndex: subLayers.size\n };\n subLayers.set(nextGraphic._uid, afterLayer);\n }\n const afterContext = afterLayer.layer.getNativeHandler().getContext();\n this.draw(this.currentRenderService, {\n ...drawContext,\n drawContribution: idc,\n clear: 'transparent',\n layer: afterLayer.layer,\n context: afterContext,\n startAtId: nextGraphic._uid,\n break: false\n });\n }\n }\n }\n\n getRenderContribution(graphic: IGraphic): IGraphicRender | null {\n let renderer;\n if (!renderer) {\n renderer = this.selectRenderByNumberType(graphic.numberType, graphic);\n }\n if (!renderer) {\n renderer = this.selectRenderByType(graphic.type);\n }\n return renderer;\n }\n\n renderItem(graphic: IGraphic, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (\n drawContribution.beforeDrawItem &&\n drawContribution.beforeDrawItem(graphic, this.currentRenderService, drawContext, this, params)\n ) {\n return;\n }\n }\n }\n\n const renderer = this.getRenderContribution(graphic);\n if (!renderer) {\n return;\n }\n\n let retrans: boolean = false;\n let tempBounds: IBounds;\n\n if (drawContext.isGroupScroll) {\n const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n retrans = true;\n if (!this.scrollMatrix) {\n this.scrollMatrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n }\n this.scrollMatrix.translate(-scrollX, -scrollY);\n }\n // if (graphic.parent) {\n // const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n // if (!!(scrollX || scrollY)) {\n // retrans = true;\n // if (!this.scrollMatrix) {\n // this.scrollMatrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n // }\n // this.scrollMatrix.translate(-scrollX, -scrollY);\n // }\n // }\n // 需要二次变化,那就重新算一个变换后的Bounds\n if (retrans) {\n tempBounds = this.dirtyBounds.clone().transformWithMatrix(this.scrollMatrix);\n }\n\n if (\n this.useDirtyBounds &&\n !(\n graphic.isContainer ||\n graphic.attribute.boundsMode === 'empty' ||\n isRectIntersect(graphic.AABBBounds, tempBounds ?? this.dirtyBounds, false)\n )\n ) {\n if (retrans && graphic.parent) {\n const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n this.scrollMatrix && this.scrollMatrix.translate(scrollX, scrollY);\n }\n return;\n }\n\n const skipDraw = drawContext.startAtId != null && graphic._uid !== drawContext.startAtId;\n if (graphic._uid === drawContext.startAtId) {\n drawContext.startAtId = null;\n }\n params && (params.skipDraw = skipDraw);\n if (skipDraw) {\n graphic.isContainer && renderer.draw(graphic, this.currentRenderService, drawContext, params);\n } else {\n renderer.draw(graphic, this.currentRenderService, drawContext, params);\n }\n\n // retrans && this.dirtyBounds.copy(tempBounds);\n if (retrans && graphic.parent) {\n const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n this.scrollMatrix && this.scrollMatrix.translate(scrollX, scrollY);\n }\n\n // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (drawContribution.afterDrawItem) {\n if (drawContribution.afterDrawItem(graphic, this.currentRenderService, drawContext, this)) {\n return;\n }\n }\n }\n }\n }\n // 根据type选择对应的render\n protected selectRenderByType(type?: string): IGraphicRender | null {\n Logger.getInstance().warn('未知错误,不应该走到这里');\n return null;\n }\n // 根据type选择对应的render\n protected selectRenderByNumberType(type: number, graphic: IGraphic): IGraphicRender | null {\n let data;\n if (graphic.attribute.renderStyle) {\n const currentRenderMap = this.styleRenderMap.get(graphic.attribute.renderStyle);\n data = currentRenderMap && currentRenderMap.get(type);\n }\n return data || this.currentRenderMap.get(type) || this.defaultRenderMap.get(type);\n }\n\n protected clearScreen(renderService: IRenderService, context: IContext2d, drawContext: IDrawContext) {\n const { clear, viewBox } = drawContext;\n // 已经translate过了\n const x = 0;\n const y = 0;\n const width = viewBox.width();\n const height = viewBox.height();\n if (clear) {\n context.clearRect(x, y, width, height);\n if (renderService.drawParams?.stage) {\n renderService.drawParams.stage.hooks.afterClearRect.call(renderService.drawParams);\n }\n const stage = renderService.drawParams?.stage;\n stage && (context.globalAlpha = (stage as any).attribute.opacity ?? 1);\n if (stage && (stage as any).backgroundImg && (stage as any).resources) {\n const res = (stage as any).resources.get(clear);\n if (res && res.state === 'success' && res.data) {\n context.drawImage(res.data, x, y, width, height);\n }\n } else {\n context.fillStyle = createColor(\n context,\n clear,\n {\n AABBBounds: { x1: x, y1: y, x2: x + width, y2: y + height }\n },\n 0,\n 0\n );\n context.fillRect(x, y, width, height);\n }\n }\n }\n\n afterDraw(renderService: IRenderService, drawParams: IDrawContext) {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/draw-contribution.ts"],"names":[],"mappings":"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","file":"draw-contribution.js","sourcesContent":["import type {\n IContext2d,\n MaybePromise,\n IGraphic,\n IGroup,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider,\n IDrawItemInterceptorContribution,\n IDrawContribution,\n IGlobal\n} from '../../../interface';\nimport { findNextGraphic, foreach } from '../../../common/sort';\nimport { DefaultAttribute } from '../../../graphic/config';\nimport type { IAABBBounds, IBounds, IMatrix } from '@visactor/vutils';\nimport { Bounds, Logger, getRectIntersect, isArray, isRectIntersect } from '@visactor/vutils';\nimport { GraphicRender, IncrementalDrawContribution } from './symbol';\nimport { DrawItemInterceptor } from './draw-interceptor';\nimport { createColor } from '../../../common/canvas-utils';\nimport type { ILayerService } from '../../../interface/core';\nimport { boundsAllocate } from '../../../allocator/bounds-allocate';\nimport { matrixAllocate } from '../../../allocator/matrix-allocate';\nimport { vglobal, layerService } from '../../../modules';\nimport { contributionRegistry, serviceRegistry } from '../../../common/registry';\n\n/**\n * 默认的渲染contribution,基于树状结构针对图元的渲染\n */\nexport class DefaultDrawContribution implements IDrawContribution {\n declare currentRenderMap: Map<number, IGraphicRender>;\n declare defaultRenderMap: Map<number, IGraphicRender>;\n declare styleRenderMap: Map<string, Map<number, IGraphicRender>>;\n declare dirtyBounds: IBounds;\n declare backupDirtyBounds: IBounds;\n // 是否使用dirtyBounds\n declare useDirtyBounds: boolean;\n declare currentRenderService: IRenderService;\n declare InterceptorContributions: IDrawItemInterceptorContribution[];\n\n declare global: IGlobal;\n declare layerService: ILayerService;\n\n declare scrollMatrix?: IMatrix;\n\n protected readonly contributions: IGraphicRender[];\n protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>;\n\n constructor(\n contributions?: IGraphicRender[],\n drawItemInterceptorContributions?: IContributionProvider<IDrawItemInterceptorContribution>\n ) {\n // 如果没有传入,则使用 registry 获取\n this.contributions = contributions || contributionRegistry.get<IGraphicRender>(GraphicRender);\n this.drawItemInterceptorContributions =\n drawItemInterceptorContributions ||\n ({\n getContributions: () => contributionRegistry.get<IDrawItemInterceptorContribution>(DrawItemInterceptor)\n } as IContributionProvider<IDrawItemInterceptorContribution>);\n\n this.currentRenderMap = new Map();\n this.defaultRenderMap = new Map();\n this.styleRenderMap = new Map();\n this.dirtyBounds = new Bounds();\n this.backupDirtyBounds = new Bounds();\n this.global = vglobal;\n this.layerService = layerService;\n if (!isArray(this.contributions)) {\n (this as any).contributions = [this.contributions];\n }\n this.init();\n }\n\n reInit() {\n this.init();\n this.contributions.forEach(item => {\n item.reInit();\n });\n }\n\n init() {\n this.contributions.forEach(item => {\n if (item.style) {\n const map = this.styleRenderMap.get(item.style) || new Map();\n map.set(item.numberType, item);\n this.styleRenderMap.set(item.style, map);\n } else {\n this.defaultRenderMap.set(item.numberType, item);\n }\n });\n this.InterceptorContributions = this.drawItemInterceptorContributions\n .getContributions()\n .sort((a, b) => a.order - b.order);\n }\n\n prepareForDraw(renderService: IRenderService, drawContext: IDrawContext) {\n // 有dirtyBounds用dirtyBounds\n if (drawContext.updateBounds) {\n this.useDirtyBounds = true;\n } else {\n // 没有的话,看看是否需要跳过outRange的渲染\n this.useDirtyBounds = !drawContext.stage.params.optimize.disableCheckGraphicWidthOutRange;\n }\n }\n\n draw(renderService: IRenderService, drawContext: IDrawContext): MaybePromise<void> {\n this.prepareForDraw(renderService, drawContext);\n drawContext.drawContribution = this;\n this.currentRenderMap = this.styleRenderMap.get(drawContext.renderStyle) || this.defaultRenderMap;\n // this.startAtId = drawParams.startAtId;\n this.currentRenderService = renderService;\n // this.drawParams = drawParams;\n const { context, stage, viewBox, transMatrix } = drawContext;\n\n if (!context) {\n return;\n }\n // if (context.drawPromise) {\n // return;\n // }\n const dirtyBounds: IBounds | undefined = this.dirtyBounds.setValue(0, 0, viewBox.width(), viewBox.height());\n if (stage.dirtyBounds && !stage.dirtyBounds.empty()) {\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 // 如果dpr不是整数或者.5的小数,需要格式化dirtyBounds\n const d = context.dpr % 1;\n if (d || d !== 0.5) {\n dirtyBounds.x1 = Math.floor(dirtyBounds.x1 * context.dpr) / context.dpr;\n dirtyBounds.y1 = Math.floor(dirtyBounds.y1 * context.dpr) / context.dpr;\n dirtyBounds.x2 = Math.ceil(dirtyBounds.x2 * context.dpr) / context.dpr;\n dirtyBounds.y2 = Math.ceil(dirtyBounds.y2 * context.dpr) / context.dpr;\n }\n this.backupDirtyBounds.copy(dirtyBounds);\n // TODO:不需要设置context.transform,后续translate会设置\n context.reset(false);\n context.save();\n context.setClearMatrix(transMatrix.a, transMatrix.b, transMatrix.c, transMatrix.d, transMatrix.e, transMatrix.f);\n // 初始化context\n context.clearMatrix(false);\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 // 设置translate\n context.translate(viewBox.x1, viewBox.y1, true);\n context.beginPath();\n context.rect(dirtyBounds.x1, dirtyBounds.y1, dirtyBounds.width(), dirtyBounds.height());\n context.clip();\n\n // 如果存在3d视角,那么不使用dirtyBounds\n if (stage.camera) {\n this.dirtyBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n this.backupDirtyBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n }\n\n this.clearScreen(renderService, context, drawContext);\n if (renderService.drawParams?.stage) {\n renderService.drawParams.stage.hooks.afterClearScreen.call(renderService.drawParams);\n }\n // // 渲染的时候图元的起始位置就是x,y\n // this.backupDirtyBounds.translate(-x, -y);\n // this.dirtyBounds.translate(-x, -y);\n\n // // 设置translate\n // context.translate(x, y, 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 group.isContainer\n ? this.renderGroup(group as IGroup, drawContext, matrixAllocate.allocate(1, 0, 0, 1, 0, 0))\n : this.renderItem(group as IGraphic, drawContext);\n });\n\n // context.restore();\n // context.restore();\n // context.setClearMatrix(1, 0, 0, 1, 0, 0);\n // this.break = false;\n // context.inuse = false;\n context.restore();\n context.draw();\n }\n\n doRegister() {\n throw new Error('暂不支持');\n }\n\n // 找到下一个graphic\n protected _findNextGraphic(group: IGroup): IGraphic | null {\n let parent = group.parent;\n let id = group._uid;\n while (parent) {\n const g = findNextGraphic(parent, id, DefaultAttribute.zIndex);\n if (g) {\n return g;\n }\n id = parent._uid;\n parent = parent.parent;\n }\n return null;\n }\n\n renderGroup(group: IGroup, drawContext: IDrawContext, parentMatrix: IMatrix, skipSort?: boolean) {\n if (drawContext.break || group.attribute.visibleAll === false) {\n return;\n }\n if (group.incremental && (drawContext.startAtId == null || drawContext.startAtId === group._uid)) {\n drawContext.break = true;\n this._increaseRender(group, drawContext);\n return;\n }\n\n if (\n this.useDirtyBounds &&\n !isRectIntersect(group.AABBBounds, this.dirtyBounds, false) &&\n group.attribute.boundsMode !== 'empty'\n ) {\n return;\n }\n\n let nextM: IMatrix = parentMatrix;\n let tempBounds: IBounds;\n\n if (this.useDirtyBounds) {\n tempBounds = boundsAllocate.allocateByObj(this.dirtyBounds);\n // 变换dirtyBounds\n const gm = group.transMatrix;\n nextM = matrixAllocate.allocateByObj(parentMatrix).multiply(gm.a, gm.b, gm.c, gm.d, gm.e, gm.f);\n // const m = group.globalTransMatrix.getInverse();\n this.dirtyBounds.copy(this.backupDirtyBounds).transformWithMatrix(nextM.getInverse());\n }\n\n drawContext.isGroupScroll = !!(group.attribute.scrollX || group.attribute.scrollY);\n\n this.renderItem(group, drawContext, {\n renderInGroupParams: {\n skipSort,\n nextM\n },\n renderInGroup: this._renderInGroup\n });\n\n if (this.useDirtyBounds) {\n this.dirtyBounds.copy(tempBounds);\n boundsAllocate.free(tempBounds);\n matrixAllocate.free(nextM);\n }\n }\n\n _renderInGroup = (skipSort: boolean, group: IGroup, drawContext: IDrawContext, nextM: IMatrix) => {\n skipSort\n ? group.forEachChildren((item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n this.renderGroup(item as IGroup, drawContext, nextM);\n } else {\n this.renderItem(item, drawContext);\n }\n })\n : foreach(\n group,\n DefaultAttribute.zIndex,\n (item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n this.renderGroup(item as IGroup, drawContext, nextM);\n } else {\n this.renderItem(item, drawContext);\n }\n },\n false,\n !!drawContext.context?.camera\n );\n };\n\n protected _increaseRender(group: IGroup, drawContext: IDrawContext) {\n const { layer, stage } = drawContext;\n const { subLayers } = layer;\n // 获取渐进渲染层\n let incrementalLayer = subLayers.get(group._uid);\n if (!incrementalLayer) {\n incrementalLayer = {\n layer: this.layerService.createLayer(stage),\n zIndex: subLayers.size,\n group\n };\n subLayers.set(group._uid, incrementalLayer);\n }\n // 渲染\n const incrementalContext = incrementalLayer.layer.getNativeHandler().getContext();\n const idc = incrementalLayer.drawContribution || serviceRegistry.get(IncrementalDrawContribution);\n idc.dirtyBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n idc.backupDirtyBounds.setValue(-Infinity, -Infinity, Infinity, Infinity);\n (idc as any).draw(this.currentRenderService, {\n ...drawContext,\n drawContribution: idc,\n clear: 'transparent',\n layer: incrementalLayer.layer,\n context: incrementalContext,\n startAtId: group._uid,\n break: false\n });\n incrementalLayer.drawContribution = idc;\n // this.draw(this.currentRenderService, {...this.drawParams, startAtId: group._uid})\n // this.draw(this.currentRenderService, {...this.drawParams, clear: 'transparent', layer: incrementalContext.layer, context: incrementalContext, startAtId: group._uid})\n const nextGraphic = this._findNextGraphic(group);\n if (nextGraphic) {\n // 如果是下一个渐进渲染层,那就再来一次\n if (nextGraphic.isContainer && nextGraphic.incremental) {\n this._increaseRender(nextGraphic as IGroup, drawContext);\n } else {\n // 如果不是渐进渲染层,那就默认图层渲染\n let afterLayer = subLayers.get(nextGraphic._uid);\n if (!afterLayer) {\n afterLayer = {\n layer: this.layerService.createLayer(stage),\n zIndex: subLayers.size\n };\n subLayers.set(nextGraphic._uid, afterLayer);\n }\n const afterContext = afterLayer.layer.getNativeHandler().getContext();\n this.draw(this.currentRenderService, {\n ...drawContext,\n drawContribution: idc,\n clear: 'transparent',\n layer: afterLayer.layer,\n context: afterContext,\n startAtId: nextGraphic._uid,\n break: false\n });\n }\n }\n }\n\n getRenderContribution(graphic: IGraphic): IGraphicRender | null {\n let renderer;\n if (!renderer) {\n renderer = this.selectRenderByNumberType(graphic.numberType, graphic);\n }\n if (!renderer) {\n renderer = this.selectRenderByType(graphic.type);\n }\n return renderer;\n }\n\n renderItem(graphic: IGraphic, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (\n drawContribution.beforeDrawItem &&\n drawContribution.beforeDrawItem(graphic, this.currentRenderService, drawContext, this, params)\n ) {\n return;\n }\n }\n }\n\n const renderer = this.getRenderContribution(graphic);\n if (!renderer) {\n return;\n }\n\n let retrans: boolean = false;\n let tempBounds: IBounds;\n\n if (drawContext.isGroupScroll) {\n const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n retrans = true;\n if (!this.scrollMatrix) {\n this.scrollMatrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n }\n this.scrollMatrix.translate(-scrollX, -scrollY);\n }\n // if (graphic.parent) {\n // const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n // if (!!(scrollX || scrollY)) {\n // retrans = true;\n // if (!this.scrollMatrix) {\n // this.scrollMatrix = matrixAllocate.allocate(1, 0, 0, 1, 0, 0);\n // }\n // this.scrollMatrix.translate(-scrollX, -scrollY);\n // }\n // }\n // 需要二次变化,那就重新算一个变换后的Bounds\n if (retrans) {\n tempBounds = this.dirtyBounds.clone().transformWithMatrix(this.scrollMatrix);\n }\n\n if (\n this.useDirtyBounds &&\n !(\n graphic.isContainer ||\n graphic.attribute.boundsMode === 'empty' ||\n isRectIntersect(graphic.AABBBounds, tempBounds ?? this.dirtyBounds, false)\n )\n ) {\n if (retrans && graphic.parent) {\n const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n this.scrollMatrix && this.scrollMatrix.translate(scrollX, scrollY);\n }\n return;\n }\n\n const skipDraw = drawContext.startAtId != null && graphic._uid !== drawContext.startAtId;\n if (graphic._uid === drawContext.startAtId) {\n drawContext.startAtId = null;\n }\n params && (params.skipDraw = skipDraw);\n if (skipDraw) {\n graphic.isContainer && renderer.draw(graphic, this.currentRenderService, drawContext, params);\n } else {\n renderer.draw(graphic, this.currentRenderService, drawContext, params);\n }\n\n // retrans && this.dirtyBounds.copy(tempBounds);\n if (retrans && graphic.parent) {\n const { scrollX = 0, scrollY = 0 } = graphic.parent.attribute;\n this.scrollMatrix && this.scrollMatrix.translate(scrollX, scrollY);\n }\n\n // 添加拦截器\n if (this.InterceptorContributions.length) {\n for (let i = 0; i < this.InterceptorContributions.length; i++) {\n const drawContribution = this.InterceptorContributions[i];\n if (drawContribution.afterDrawItem) {\n if (drawContribution.afterDrawItem(graphic, this.currentRenderService, drawContext, this)) {\n return;\n }\n }\n }\n }\n }\n // 根据type选择对应的render\n protected selectRenderByType(type?: string): IGraphicRender | null {\n Logger.getInstance().warn('未知错误,不应该走到这里');\n return null;\n }\n // 根据type选择对应的render\n protected selectRenderByNumberType(type: number, graphic: IGraphic): IGraphicRender | null {\n let data;\n if (graphic.attribute.renderStyle) {\n const currentRenderMap = this.styleRenderMap.get(graphic.attribute.renderStyle);\n data = currentRenderMap && currentRenderMap.get(type);\n }\n return data || this.currentRenderMap.get(type) || this.defaultRenderMap.get(type);\n }\n\n protected clearScreen(renderService: IRenderService, context: IContext2d, drawContext: IDrawContext) {\n const { clear, viewBox } = drawContext;\n // 已经translate过了\n const x = 0;\n const y = 0;\n const width = viewBox.width();\n const height = viewBox.height();\n if (clear) {\n context.clearRect(x, y, width, height);\n if (renderService.drawParams?.stage) {\n renderService.drawParams.stage.hooks.afterClearRect.call(renderService.drawParams);\n }\n const stage = renderService.drawParams?.stage;\n stage && (context.globalAlpha = (stage as any).attribute.opacity ?? 1);\n if (stage && (stage as any).backgroundImg && (stage as any).resources) {\n const res = (stage as any).resources.get(clear);\n if (res && res.state === 'success' && res.data) {\n context.drawImage(res.data, x, y, width, height);\n }\n } else {\n context.fillStyle = createColor(\n context,\n clear,\n {\n AABBBounds: { x1: x, y1: y, x2: x + width, y2: y + height }\n },\n 0,\n 0\n );\n context.fillRect(x, y, width, height);\n }\n }\n }\n\n afterDraw(renderService: IRenderService, drawParams: IDrawContext) {\n return;\n }\n}\n"]}
@@ -1,13 +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
- }, __metadata = this && this.__metadata || function(k, v) {
6
- if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
- };
8
-
9
- import { injectable } from "../../../common/inversify-lite";
10
-
11
1
  import { AABBBounds } from "@visactor/vutils";
12
2
 
13
3
  import { mat3Tomat4, multiplyMat4Mat4 } from "../../../common/matrix";
@@ -70,7 +60,7 @@ export class DebugDrawItemInterceptorContribution {
70
60
  }
71
61
  }
72
62
 
73
- let CommonDrawItemInterceptorContribution = class {
63
+ export class CommonDrawItemInterceptorContribution {
74
64
  constructor() {
75
65
  this.order = 1, this.interceptors = [ new ShadowRootDrawItemInterceptorContribution, new Canvas3DDrawItemInterceptor, new InteractiveDrawItemInterceptorContribution, new DebugDrawItemInterceptorContribution ];
76
66
  }
@@ -84,11 +74,7 @@ let CommonDrawItemInterceptorContribution = class {
84
74
  for (let i = 0; i < this.interceptors.length; i++) if (this.interceptors[i].beforeDrawItem && this.interceptors[i].beforeDrawItem(graphic, renderService, drawContext, drawContribution, params)) return !0;
85
75
  return !1;
86
76
  }
87
- };
88
-
89
- CommonDrawItemInterceptorContribution = __decorate([ injectable(), __metadata("design:paramtypes", []) ], CommonDrawItemInterceptorContribution);
90
-
91
- export { CommonDrawItemInterceptorContribution };
77
+ }
92
78
 
93
79
  export class InteractiveDrawItemInterceptorContribution {
94
80
  constructor() {