@visactor/vrender-core 0.19.4-alpha.5 → 0.19.4

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 (772) hide show
  1. package/cjs/allocator/bounds-allocate.js +1 -1
  2. package/cjs/allocator/bounds-allocate.js.map +1 -1
  3. package/cjs/allocator/canvas-allocate.js +11 -9
  4. package/cjs/allocator/canvas-allocate.js.map +1 -1
  5. package/cjs/allocator/graphic-allocate.js +5 -9
  6. package/cjs/allocator/graphic-allocate.js.map +1 -1
  7. package/cjs/allocator/matrix-allocate.js +2 -6
  8. package/cjs/allocator/matrix-allocate.js.map +1 -1
  9. package/cjs/animate/Ticker/default-ticker.js +25 -14
  10. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  11. package/cjs/animate/animate.js +8 -7
  12. package/cjs/animate/animate.js.map +1 -1
  13. package/cjs/animate/custom-animate.js +54 -51
  14. package/cjs/animate/custom-animate.js.map +1 -1
  15. package/cjs/animate/easing.js +19 -8
  16. package/cjs/animate/easing.js.map +1 -1
  17. package/cjs/animate/morphing.js +20 -23
  18. package/cjs/animate/morphing.js.map +1 -1
  19. package/cjs/application.js +7 -1
  20. package/cjs/application.js.map +1 -1
  21. package/cjs/canvas/conical-gradient.js +12 -5
  22. package/cjs/canvas/conical-gradient.js.map +1 -1
  23. package/cjs/canvas/contributions/base-canvas.js +19 -7
  24. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  25. package/cjs/color-string/interpolate.js +5 -3
  26. package/cjs/color-string/interpolate.js.map +1 -1
  27. package/cjs/color-string/store.js +3 -1
  28. package/cjs/color-string/store.js.map +1 -1
  29. package/cjs/common/bounds-context.js +1 -0
  30. package/cjs/common/bounds-context.js.map +1 -1
  31. package/cjs/common/canvas-utils.js +3 -6
  32. package/cjs/common/canvas-utils.js.map +1 -1
  33. package/cjs/common/contribution-provider.js +3 -0
  34. package/cjs/common/contribution-provider.js.map +1 -1
  35. package/cjs/common/custom-path2d.js +7 -1
  36. package/cjs/common/custom-path2d.js.map +1 -1
  37. package/cjs/common/generator.js +2 -1
  38. package/cjs/common/generator.js.map +1 -1
  39. package/cjs/common/inversify/binding.js +12 -0
  40. package/cjs/common/inversify/binding.js.map +1 -1
  41. package/cjs/common/inversify/container.js +4 -0
  42. package/cjs/common/inversify/container.js.map +1 -1
  43. package/cjs/common/inversify/cotainer-module.js +2 -0
  44. package/cjs/common/inversify/cotainer-module.js.map +1 -1
  45. package/cjs/common/inversify/meta-data.js +2 -0
  46. package/cjs/common/inversify/meta-data.js.map +1 -1
  47. package/cjs/common/inversify/syntax/binding_in_syntax.js +1 -0
  48. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  49. package/cjs/common/inversify/syntax/binding_to_syntax.js +1 -0
  50. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  51. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +1 -0
  52. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  53. package/cjs/common/inversify-lite/bindings/binding.js +14 -0
  54. package/cjs/common/inversify-lite/bindings/binding.js.map +1 -1
  55. package/cjs/common/inversify-lite/container/container.js +22 -46
  56. package/cjs/common/inversify-lite/container/container.js.map +1 -1
  57. package/cjs/common/inversify-lite/container/container_module.js +4 -0
  58. package/cjs/common/inversify-lite/container/container_module.js.map +1 -1
  59. package/cjs/common/inversify-lite/container/lookup.js +1 -0
  60. package/cjs/common/inversify-lite/container/lookup.js.map +1 -1
  61. package/cjs/common/inversify-lite/planning/context.js +4 -0
  62. package/cjs/common/inversify-lite/planning/context.js.map +1 -1
  63. package/cjs/common/inversify-lite/planning/metadata.js +2 -0
  64. package/cjs/common/inversify-lite/planning/metadata.js.map +1 -1
  65. package/cjs/common/inversify-lite/planning/plan.js +2 -0
  66. package/cjs/common/inversify-lite/planning/plan.js.map +1 -1
  67. package/cjs/common/inversify-lite/planning/queryable_string.js +1 -0
  68. package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
  69. package/cjs/common/inversify-lite/planning/request.js +8 -0
  70. package/cjs/common/inversify-lite/planning/request.js.map +1 -1
  71. package/cjs/common/inversify-lite/planning/target.js +7 -0
  72. package/cjs/common/inversify-lite/planning/target.js.map +1 -1
  73. package/cjs/common/inversify-lite/resolution/instantiation.js +16 -42
  74. package/cjs/common/inversify-lite/resolution/instantiation.js.map +1 -1
  75. package/cjs/common/inversify-lite/scope/scope.js +3 -29
  76. package/cjs/common/inversify-lite/scope/scope.js.map +1 -1
  77. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +1 -0
  78. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  79. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +3 -0
  80. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  81. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +1 -0
  82. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  83. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +1 -0
  84. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  85. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +2 -0
  86. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  87. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +1 -0
  88. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  89. package/cjs/common/polygon.js +1 -2
  90. package/cjs/common/polygon.js.map +1 -1
  91. package/cjs/common/render-area.js +2 -3
  92. package/cjs/common/render-area.js.map +1 -1
  93. package/cjs/common/render-curve.js +4 -8
  94. package/cjs/common/render-curve.js.map +1 -1
  95. package/cjs/common/seg-context.js +12 -3
  96. package/cjs/common/seg-context.js.map +1 -1
  97. package/cjs/common/segment/basis.js +13 -0
  98. package/cjs/common/segment/basis.js.map +1 -1
  99. package/cjs/common/segment/common.js +2 -2
  100. package/cjs/common/segment/common.js.map +1 -1
  101. package/cjs/common/segment/curve/arc.js +2 -2
  102. package/cjs/common/segment/curve/arc.js.map +1 -1
  103. package/cjs/common/segment/curve/base.js +4 -0
  104. package/cjs/common/segment/curve/base.js.map +1 -1
  105. package/cjs/common/segment/curve/cubic-bezier.js +2 -2
  106. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  107. package/cjs/common/segment/curve/curve-context.js +4 -0
  108. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  109. package/cjs/common/segment/curve/ellipse.js +3 -3
  110. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  111. package/cjs/common/segment/curve/line.js +2 -1
  112. package/cjs/common/segment/curve/line.js.map +1 -1
  113. package/cjs/common/segment/curve/move.js +2 -1
  114. package/cjs/common/segment/curve/move.js.map +1 -1
  115. package/cjs/common/segment/curve/path.js +2 -0
  116. package/cjs/common/segment/curve/path.js.map +1 -1
  117. package/cjs/common/segment/curve/quadratic-bezier.js +2 -2
  118. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  119. package/cjs/common/segment/linear-closed.js.map +1 -1
  120. package/cjs/common/segment/linear.js +10 -0
  121. package/cjs/common/segment/linear.js.map +1 -1
  122. package/cjs/common/segment/monotone.js +13 -0
  123. package/cjs/common/segment/monotone.js.map +1 -1
  124. package/cjs/common/segment/step.js +13 -2
  125. package/cjs/common/segment/step.js.map +1 -1
  126. package/cjs/common/sort.js +3 -34
  127. package/cjs/common/sort.js.map +1 -1
  128. package/cjs/common/split-path.js +4 -11
  129. package/cjs/common/split-path.js.map +1 -1
  130. package/cjs/common/utils.d.ts +1 -1
  131. package/cjs/common/utils.js +10 -6
  132. package/cjs/common/utils.js.map +1 -1
  133. package/cjs/common/xml/parser.js +3 -2
  134. package/cjs/common/xml/parser.js.map +1 -1
  135. package/cjs/core/camera.js +11 -4
  136. package/cjs/core/camera.js.map +1 -1
  137. package/cjs/core/contributions/env/base-contribution.js +6 -0
  138. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  139. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +20 -11
  140. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  141. package/cjs/core/contributions/layerHandler/empty-contribution.js +8 -8
  142. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  143. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +5 -6
  144. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  145. package/cjs/core/contributions/textMeasure/AtextMeasure.js +11 -8
  146. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  147. package/cjs/core/contributions/textMeasure/layout.js +3 -0
  148. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  149. package/cjs/core/contributions/window/base-contribution.js +2 -0
  150. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  151. package/cjs/core/global.js +8 -0
  152. package/cjs/core/global.js.map +1 -1
  153. package/cjs/core/graphic-utils.js +16 -5
  154. package/cjs/core/graphic-utils.js.map +1 -1
  155. package/cjs/core/layer-service.js +7 -7
  156. package/cjs/core/layer-service.js.map +1 -1
  157. package/cjs/core/layer.js +7 -9
  158. package/cjs/core/layer.js.map +1 -1
  159. package/cjs/core/stage.js +79 -35
  160. package/cjs/core/stage.js.map +1 -1
  161. package/cjs/core/window.js +16 -13
  162. package/cjs/core/window.js.map +1 -1
  163. package/cjs/event/event-manager.js +152 -143
  164. package/cjs/event/event-manager.js.map +1 -1
  165. package/cjs/event/event-system.js +60 -43
  166. package/cjs/event/event-system.js.map +1 -1
  167. package/cjs/event/event-target.js +1 -3
  168. package/cjs/event/event-target.js.map +1 -1
  169. package/cjs/event/federated-event/base-event.js +43 -15
  170. package/cjs/event/federated-event/base-event.js.map +1 -1
  171. package/cjs/event/federated-event/mouse-event.js +27 -18
  172. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  173. package/cjs/event/federated-event/pointer-event.js +13 -8
  174. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  175. package/cjs/event/federated-event/wheel-event.js +14 -10
  176. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  177. package/cjs/graphic/arc.js +10 -5
  178. package/cjs/graphic/arc.js.map +1 -1
  179. package/cjs/graphic/arc3d.js +7 -4
  180. package/cjs/graphic/arc3d.js.map +1 -1
  181. package/cjs/graphic/area.js +14 -9
  182. package/cjs/graphic/area.js.map +1 -1
  183. package/cjs/graphic/builtin-symbol/arrow.js +2 -3
  184. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  185. package/cjs/graphic/builtin-symbol/arrow2-down.js +2 -3
  186. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  187. package/cjs/graphic/builtin-symbol/arrow2-left.js +2 -3
  188. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  189. package/cjs/graphic/builtin-symbol/arrow2-right.js +2 -3
  190. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  191. package/cjs/graphic/builtin-symbol/arrow2-up.js +2 -3
  192. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  193. package/cjs/graphic/builtin-symbol/circle.js +2 -3
  194. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  195. package/cjs/graphic/builtin-symbol/close.js +2 -3
  196. package/cjs/graphic/builtin-symbol/close.js.map +1 -1
  197. package/cjs/graphic/builtin-symbol/cross.js +2 -3
  198. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  199. package/cjs/graphic/builtin-symbol/diamond.js +2 -3
  200. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  201. package/cjs/graphic/builtin-symbol/line-h.js +2 -3
  202. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
  203. package/cjs/graphic/builtin-symbol/line-v.js +2 -3
  204. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
  205. package/cjs/graphic/builtin-symbol/rect.js +2 -3
  206. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  207. package/cjs/graphic/builtin-symbol/square.js +2 -3
  208. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  209. package/cjs/graphic/builtin-symbol/star.js +2 -3
  210. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  211. package/cjs/graphic/builtin-symbol/stroke.js +2 -3
  212. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  213. package/cjs/graphic/builtin-symbol/thin-triangle.js +2 -3
  214. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  215. package/cjs/graphic/builtin-symbol/triangle-down.js +2 -3
  216. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  217. package/cjs/graphic/builtin-symbol/triangle-left.js +2 -3
  218. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  219. package/cjs/graphic/builtin-symbol/triangle-right.js +2 -3
  220. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  221. package/cjs/graphic/builtin-symbol/triangle-up.js +2 -3
  222. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  223. package/cjs/graphic/builtin-symbol/triangle.js +1 -3
  224. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  225. package/cjs/graphic/builtin-symbol/utils.js +6 -1
  226. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  227. package/cjs/graphic/builtin-symbol/wedge.js +2 -3
  228. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  229. package/cjs/graphic/builtin-symbol/wye.js +2 -3
  230. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  231. package/cjs/graphic/circle.js +8 -6
  232. package/cjs/graphic/circle.js.map +1 -1
  233. package/cjs/graphic/config.js +59 -32
  234. package/cjs/graphic/config.js.map +1 -1
  235. package/cjs/graphic/glyph.js +10 -9
  236. package/cjs/graphic/glyph.js.map +1 -1
  237. package/cjs/graphic/graphic-service/graphic-service.js +12 -8
  238. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  239. package/cjs/graphic/graphic.d.ts +1 -0
  240. package/cjs/graphic/graphic.js +32 -42
  241. package/cjs/graphic/graphic.js.map +1 -1
  242. package/cjs/graphic/group.js +9 -5
  243. package/cjs/graphic/group.js.map +1 -1
  244. package/cjs/graphic/image.js +18 -16
  245. package/cjs/graphic/image.js.map +1 -1
  246. package/cjs/graphic/line.js +11 -6
  247. package/cjs/graphic/line.js.map +1 -1
  248. package/cjs/graphic/node-tree.js +25 -44
  249. package/cjs/graphic/node-tree.js.map +1 -1
  250. package/cjs/graphic/path.js +12 -6
  251. package/cjs/graphic/path.js.map +1 -1
  252. package/cjs/graphic/polygon.js +7 -4
  253. package/cjs/graphic/polygon.js.map +1 -1
  254. package/cjs/graphic/pyramid3d.js +4 -3
  255. package/cjs/graphic/pyramid3d.js.map +1 -1
  256. package/cjs/graphic/rect.js +7 -3
  257. package/cjs/graphic/rect.js.map +1 -1
  258. package/cjs/graphic/rect3d.js +5 -4
  259. package/cjs/graphic/rect3d.js.map +1 -1
  260. package/cjs/graphic/richtext/frame.js +19 -0
  261. package/cjs/graphic/richtext/frame.js.map +1 -1
  262. package/cjs/graphic/richtext/icon.js +14 -6
  263. package/cjs/graphic/richtext/icon.js.map +1 -1
  264. package/cjs/graphic/richtext/line.js +14 -2
  265. package/cjs/graphic/richtext/line.js.map +1 -1
  266. package/cjs/graphic/richtext/paragraph.js +22 -0
  267. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  268. package/cjs/graphic/richtext/utils.js +1 -2
  269. package/cjs/graphic/richtext/utils.js.map +1 -1
  270. package/cjs/graphic/richtext/wrapper.js +12 -0
  271. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  272. package/cjs/graphic/richtext.js +38 -45
  273. package/cjs/graphic/richtext.js.map +1 -1
  274. package/cjs/graphic/shadow-root.js +2 -1
  275. package/cjs/graphic/shadow-root.js.map +1 -1
  276. package/cjs/graphic/symbol.js +12 -5
  277. package/cjs/graphic/symbol.js.map +1 -1
  278. package/cjs/graphic/text.js +45 -45
  279. package/cjs/graphic/text.js.map +1 -1
  280. package/cjs/graphic/theme.js +4 -0
  281. package/cjs/graphic/theme.js.map +1 -1
  282. package/cjs/graphic/tools.js +16 -44
  283. package/cjs/graphic/tools.js.map +1 -1
  284. package/cjs/graphic/wrap-text.js +7 -7
  285. package/cjs/graphic/wrap-text.js.map +1 -1
  286. package/cjs/interface/global.d.ts +2 -1
  287. package/cjs/interface/global.js.map +1 -1
  288. package/cjs/interface/graphic.d.ts +1 -0
  289. package/cjs/interface/graphic.js.map +1 -1
  290. package/cjs/picker/global-picker-service.js +1 -0
  291. package/cjs/picker/global-picker-service.js.map +1 -1
  292. package/cjs/picker/pick-interceptor.js +5 -15
  293. package/cjs/picker/pick-interceptor.js.map +1 -1
  294. package/cjs/picker/picker-service.js +5 -5
  295. package/cjs/picker/picker-service.js.map +1 -1
  296. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js +26 -20
  297. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  298. package/cjs/plugins/builtin-plugin/auto-render-plugin.js +5 -4
  299. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  300. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +5 -4
  301. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  302. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +11 -8
  303. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  304. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +28 -19
  305. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  306. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +12 -8
  307. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  308. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +6 -7
  309. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  310. package/cjs/plugins/plugin-service.js +1 -0
  311. package/cjs/plugins/plugin-service.js.map +1 -1
  312. package/cjs/render/contributions/render/arc-render.js +6 -4
  313. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  314. package/cjs/render/contributions/render/arc3d-render.js +5 -7
  315. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  316. package/cjs/render/contributions/render/area-render.js +21 -23
  317. package/cjs/render/contributions/render/area-render.js.map +1 -1
  318. package/cjs/render/contributions/render/base-render.js +5 -0
  319. package/cjs/render/contributions/render/base-render.js.map +1 -1
  320. package/cjs/render/contributions/render/circle-render.js +6 -4
  321. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  322. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +3 -4
  323. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  324. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js +6 -9
  325. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  326. package/cjs/render/contributions/render/contributions/base-contribution-render.js +10 -8
  327. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  328. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +4 -4
  329. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  330. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +3 -4
  331. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  332. package/cjs/render/contributions/render/contributions/group-contribution-render.js +1 -3
  333. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  334. package/cjs/render/contributions/render/contributions/image-contribution-render.js +1 -3
  335. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  336. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +11 -14
  337. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  338. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +3 -4
  339. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  340. package/cjs/render/contributions/render/contributions/text-contribution-render.js +6 -8
  341. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  342. package/cjs/render/contributions/render/draw-contribution.js +12 -14
  343. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  344. package/cjs/render/contributions/render/draw-interceptor.js +11 -21
  345. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  346. package/cjs/render/contributions/render/glyph-render.js +2 -3
  347. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  348. package/cjs/render/contributions/render/graphic-render.js +4 -1
  349. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  350. package/cjs/render/contributions/render/group-render.js +7 -3
  351. package/cjs/render/contributions/render/group-render.js.map +1 -1
  352. package/cjs/render/contributions/render/image-render.js +4 -2
  353. package/cjs/render/contributions/render/image-render.js.map +1 -1
  354. package/cjs/render/contributions/render/incremental-area-render.js +1 -3
  355. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  356. package/cjs/render/contributions/render/incremental-draw-contribution.js +80 -109
  357. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  358. package/cjs/render/contributions/render/incremental-line-render.js +1 -3
  359. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  360. package/cjs/render/contributions/render/line-render.js +12 -16
  361. package/cjs/render/contributions/render/line-render.js.map +1 -1
  362. package/cjs/render/contributions/render/path-render.js +8 -7
  363. package/cjs/render/contributions/render/path-render.js.map +1 -1
  364. package/cjs/render/contributions/render/polygon-render.js +6 -4
  365. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  366. package/cjs/render/contributions/render/pyramid3d-render.js +3 -5
  367. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  368. package/cjs/render/contributions/render/rect-render.js +8 -7
  369. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  370. package/cjs/render/contributions/render/rect3d-render.js +5 -7
  371. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  372. package/cjs/render/contributions/render/richtext-render.js +4 -3
  373. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  374. package/cjs/render/contributions/render/symbol-render.js +11 -14
  375. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  376. package/cjs/render/contributions/render/text-render.js +8 -8
  377. package/cjs/render/contributions/render/text-render.js.map +1 -1
  378. package/cjs/render/contributions/render/utils.js +1 -1
  379. package/cjs/render/contributions/render/utils.js.map +1 -1
  380. package/cjs/render/render-service.js +11 -2
  381. package/cjs/render/render-service.js.map +1 -1
  382. package/cjs/resource-loader/loader.js +13 -16
  383. package/cjs/resource-loader/loader.js.map +1 -1
  384. package/cjs/tapable/Hook.js +3 -0
  385. package/cjs/tapable/Hook.js.map +1 -1
  386. package/dist/index.es.js +28908 -0
  387. package/es/allocator/bounds-allocate.js +1 -1
  388. package/es/allocator/bounds-allocate.js.map +1 -1
  389. package/es/allocator/canvas-allocate.js +11 -9
  390. package/es/allocator/canvas-allocate.js.map +1 -1
  391. package/es/allocator/graphic-allocate.js +5 -9
  392. package/es/allocator/graphic-allocate.js.map +1 -1
  393. package/es/allocator/matrix-allocate.js +2 -6
  394. package/es/allocator/matrix-allocate.js.map +1 -1
  395. package/es/animate/Ticker/default-ticker.js +25 -14
  396. package/es/animate/Ticker/default-ticker.js.map +1 -1
  397. package/es/animate/animate.js +7 -8
  398. package/es/animate/animate.js.map +1 -1
  399. package/es/animate/custom-animate.js +52 -50
  400. package/es/animate/custom-animate.js.map +1 -1
  401. package/es/animate/easing.js +18 -8
  402. package/es/animate/easing.js.map +1 -1
  403. package/es/animate/morphing.js +20 -23
  404. package/es/animate/morphing.js.map +1 -1
  405. package/es/application.js +7 -1
  406. package/es/application.js.map +1 -1
  407. package/es/canvas/conical-gradient.js +12 -6
  408. package/es/canvas/conical-gradient.js.map +1 -1
  409. package/es/canvas/contributions/base-canvas.js +19 -7
  410. package/es/canvas/contributions/base-canvas.js.map +1 -1
  411. package/es/color-string/interpolate.js +5 -3
  412. package/es/color-string/interpolate.js.map +1 -1
  413. package/es/color-string/store.js +2 -2
  414. package/es/color-string/store.js.map +1 -1
  415. package/es/common/bounds-context.js +1 -0
  416. package/es/common/bounds-context.js.map +1 -1
  417. package/es/common/canvas-utils.js +3 -6
  418. package/es/common/canvas-utils.js.map +1 -1
  419. package/es/common/contribution-provider.js +3 -0
  420. package/es/common/contribution-provider.js.map +1 -1
  421. package/es/common/custom-path2d.js +7 -1
  422. package/es/common/custom-path2d.js.map +1 -1
  423. package/es/common/generator.js +1 -2
  424. package/es/common/generator.js.map +1 -1
  425. package/es/common/inversify/binding.js +12 -0
  426. package/es/common/inversify/binding.js.map +1 -1
  427. package/es/common/inversify/container.js +4 -0
  428. package/es/common/inversify/container.js.map +1 -1
  429. package/es/common/inversify/cotainer-module.js +2 -0
  430. package/es/common/inversify/cotainer-module.js.map +1 -1
  431. package/es/common/inversify/meta-data.js +2 -0
  432. package/es/common/inversify/meta-data.js.map +1 -1
  433. package/es/common/inversify/syntax/binding_in_syntax.js +1 -0
  434. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  435. package/es/common/inversify/syntax/binding_to_syntax.js +1 -0
  436. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  437. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +1 -0
  438. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  439. package/es/common/inversify-lite/bindings/binding.js +14 -0
  440. package/es/common/inversify-lite/bindings/binding.js.map +1 -1
  441. package/es/common/inversify-lite/container/container.js +22 -48
  442. package/es/common/inversify-lite/container/container.js.map +1 -1
  443. package/es/common/inversify-lite/container/container_module.js +4 -0
  444. package/es/common/inversify-lite/container/container_module.js.map +1 -1
  445. package/es/common/inversify-lite/container/lookup.js +1 -0
  446. package/es/common/inversify-lite/container/lookup.js.map +1 -1
  447. package/es/common/inversify-lite/planning/context.js +4 -0
  448. package/es/common/inversify-lite/planning/context.js.map +1 -1
  449. package/es/common/inversify-lite/planning/metadata.js +2 -0
  450. package/es/common/inversify-lite/planning/metadata.js.map +1 -1
  451. package/es/common/inversify-lite/planning/plan.js +2 -0
  452. package/es/common/inversify-lite/planning/plan.js.map +1 -1
  453. package/es/common/inversify-lite/planning/queryable_string.js +1 -0
  454. package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
  455. package/es/common/inversify-lite/planning/request.js +8 -0
  456. package/es/common/inversify-lite/planning/request.js.map +1 -1
  457. package/es/common/inversify-lite/planning/target.js +7 -0
  458. package/es/common/inversify-lite/planning/target.js.map +1 -1
  459. package/es/common/inversify-lite/resolution/instantiation.js +16 -44
  460. package/es/common/inversify-lite/resolution/instantiation.js.map +1 -1
  461. package/es/common/inversify-lite/scope/scope.js +3 -29
  462. package/es/common/inversify-lite/scope/scope.js.map +1 -1
  463. package/es/common/inversify-lite/syntax/binding_in_syntax.js +1 -0
  464. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  465. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +3 -0
  466. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  467. package/es/common/inversify-lite/syntax/binding_on_syntax.js +1 -0
  468. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  469. package/es/common/inversify-lite/syntax/binding_to_syntax.js +1 -0
  470. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  471. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +2 -0
  472. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  473. package/es/common/inversify-lite/syntax/binding_when_syntax.js +1 -0
  474. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  475. package/es/common/polygon.js +1 -2
  476. package/es/common/polygon.js.map +1 -1
  477. package/es/common/render-area.js +2 -3
  478. package/es/common/render-area.js.map +1 -1
  479. package/es/common/render-curve.js +4 -8
  480. package/es/common/render-curve.js.map +1 -1
  481. package/es/common/seg-context.js +12 -3
  482. package/es/common/seg-context.js.map +1 -1
  483. package/es/common/segment/basis.js +13 -0
  484. package/es/common/segment/basis.js.map +1 -1
  485. package/es/common/segment/common.js +1 -1
  486. package/es/common/segment/common.js.map +1 -1
  487. package/es/common/segment/curve/arc.js +2 -1
  488. package/es/common/segment/curve/arc.js.map +1 -1
  489. package/es/common/segment/curve/base.js +4 -0
  490. package/es/common/segment/curve/base.js.map +1 -1
  491. package/es/common/segment/curve/cubic-bezier.js +2 -2
  492. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  493. package/es/common/segment/curve/curve-context.js +4 -0
  494. package/es/common/segment/curve/curve-context.js.map +1 -1
  495. package/es/common/segment/curve/ellipse.js +3 -3
  496. package/es/common/segment/curve/ellipse.js.map +1 -1
  497. package/es/common/segment/curve/line.js +2 -1
  498. package/es/common/segment/curve/line.js.map +1 -1
  499. package/es/common/segment/curve/move.js +2 -1
  500. package/es/common/segment/curve/move.js.map +1 -1
  501. package/es/common/segment/curve/path.js +2 -0
  502. package/es/common/segment/curve/path.js.map +1 -1
  503. package/es/common/segment/curve/quadratic-bezier.js +2 -2
  504. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  505. package/es/common/segment/linear-closed.js.map +1 -1
  506. package/es/common/segment/linear.js +10 -0
  507. package/es/common/segment/linear.js.map +1 -1
  508. package/es/common/segment/monotone.js +13 -0
  509. package/es/common/segment/monotone.js.map +1 -1
  510. package/es/common/segment/step.js +12 -1
  511. package/es/common/segment/step.js.map +1 -1
  512. package/es/common/sort.js +3 -34
  513. package/es/common/sort.js.map +1 -1
  514. package/es/common/split-path.js +4 -11
  515. package/es/common/split-path.js.map +1 -1
  516. package/es/common/utils.d.ts +1 -1
  517. package/es/common/utils.js +9 -7
  518. package/es/common/utils.js.map +1 -1
  519. package/es/common/xml/parser.js +2 -2
  520. package/es/common/xml/parser.js.map +1 -1
  521. package/es/core/camera.js +11 -4
  522. package/es/core/camera.js.map +1 -1
  523. package/es/core/contributions/env/base-contribution.js +6 -0
  524. package/es/core/contributions/env/base-contribution.js.map +1 -1
  525. package/es/core/contributions/layerHandler/canvas2d-contribution.js +20 -11
  526. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  527. package/es/core/contributions/layerHandler/empty-contribution.js +8 -8
  528. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  529. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +5 -6
  530. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  531. package/es/core/contributions/textMeasure/AtextMeasure.js +11 -8
  532. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  533. package/es/core/contributions/textMeasure/layout.js +3 -0
  534. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  535. package/es/core/contributions/window/base-contribution.js +2 -0
  536. package/es/core/contributions/window/base-contribution.js.map +1 -1
  537. package/es/core/global.js +8 -0
  538. package/es/core/global.js.map +1 -1
  539. package/es/core/graphic-utils.js +16 -5
  540. package/es/core/graphic-utils.js.map +1 -1
  541. package/es/core/layer-service.js +7 -7
  542. package/es/core/layer-service.js.map +1 -1
  543. package/es/core/layer.js +7 -9
  544. package/es/core/layer.js.map +1 -1
  545. package/es/core/stage.js +79 -35
  546. package/es/core/stage.js.map +1 -1
  547. package/es/core/window.js +16 -14
  548. package/es/core/window.js.map +1 -1
  549. package/es/event/event-manager.js +152 -143
  550. package/es/event/event-manager.js.map +1 -1
  551. package/es/event/event-system.js +60 -43
  552. package/es/event/event-system.js.map +1 -1
  553. package/es/event/event-target.js +1 -3
  554. package/es/event/event-target.js.map +1 -1
  555. package/es/event/federated-event/base-event.js +43 -15
  556. package/es/event/federated-event/base-event.js.map +1 -1
  557. package/es/event/federated-event/mouse-event.js +27 -18
  558. package/es/event/federated-event/mouse-event.js.map +1 -1
  559. package/es/event/federated-event/pointer-event.js +13 -8
  560. package/es/event/federated-event/pointer-event.js.map +1 -1
  561. package/es/event/federated-event/wheel-event.js +13 -11
  562. package/es/event/federated-event/wheel-event.js.map +1 -1
  563. package/es/graphic/arc.js +9 -6
  564. package/es/graphic/arc.js.map +1 -1
  565. package/es/graphic/arc3d.js +6 -5
  566. package/es/graphic/arc3d.js.map +1 -1
  567. package/es/graphic/area.js +13 -10
  568. package/es/graphic/area.js.map +1 -1
  569. package/es/graphic/builtin-symbol/arrow.js +2 -3
  570. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  571. package/es/graphic/builtin-symbol/arrow2-down.js +2 -3
  572. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  573. package/es/graphic/builtin-symbol/arrow2-left.js +2 -3
  574. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  575. package/es/graphic/builtin-symbol/arrow2-right.js +2 -3
  576. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  577. package/es/graphic/builtin-symbol/arrow2-up.js +2 -3
  578. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  579. package/es/graphic/builtin-symbol/circle.js +2 -3
  580. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  581. package/es/graphic/builtin-symbol/close.js +2 -3
  582. package/es/graphic/builtin-symbol/close.js.map +1 -1
  583. package/es/graphic/builtin-symbol/cross.js +2 -3
  584. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  585. package/es/graphic/builtin-symbol/diamond.js +2 -3
  586. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  587. package/es/graphic/builtin-symbol/line-h.js +2 -3
  588. package/es/graphic/builtin-symbol/line-h.js.map +1 -1
  589. package/es/graphic/builtin-symbol/line-v.js +2 -3
  590. package/es/graphic/builtin-symbol/line-v.js.map +1 -1
  591. package/es/graphic/builtin-symbol/rect.js +2 -3
  592. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  593. package/es/graphic/builtin-symbol/square.js +2 -3
  594. package/es/graphic/builtin-symbol/square.js.map +1 -1
  595. package/es/graphic/builtin-symbol/star.js +2 -3
  596. package/es/graphic/builtin-symbol/star.js.map +1 -1
  597. package/es/graphic/builtin-symbol/stroke.js +2 -3
  598. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  599. package/es/graphic/builtin-symbol/thin-triangle.js +2 -3
  600. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  601. package/es/graphic/builtin-symbol/triangle-down.js +2 -3
  602. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  603. package/es/graphic/builtin-symbol/triangle-left.js +2 -3
  604. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  605. package/es/graphic/builtin-symbol/triangle-right.js +2 -3
  606. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  607. package/es/graphic/builtin-symbol/triangle-up.js +2 -3
  608. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  609. package/es/graphic/builtin-symbol/triangle.js +1 -3
  610. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  611. package/es/graphic/builtin-symbol/utils.js +6 -2
  612. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  613. package/es/graphic/builtin-symbol/wedge.js +2 -3
  614. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  615. package/es/graphic/builtin-symbol/wye.js +2 -3
  616. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  617. package/es/graphic/circle.js +7 -6
  618. package/es/graphic/circle.js.map +1 -1
  619. package/es/graphic/config.js +73 -44
  620. package/es/graphic/config.js.map +1 -1
  621. package/es/graphic/glyph.js +9 -9
  622. package/es/graphic/glyph.js.map +1 -1
  623. package/es/graphic/graphic-service/graphic-service.js +12 -8
  624. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  625. package/es/graphic/graphic.d.ts +1 -0
  626. package/es/graphic/graphic.js +32 -42
  627. package/es/graphic/graphic.js.map +1 -1
  628. package/es/graphic/group.js +8 -5
  629. package/es/graphic/group.js.map +1 -1
  630. package/es/graphic/image.js +17 -16
  631. package/es/graphic/image.js.map +1 -1
  632. package/es/graphic/line.js +10 -7
  633. package/es/graphic/line.js.map +1 -1
  634. package/es/graphic/node-tree.js +25 -44
  635. package/es/graphic/node-tree.js.map +1 -1
  636. package/es/graphic/path.js +11 -7
  637. package/es/graphic/path.js.map +1 -1
  638. package/es/graphic/polygon.js +6 -4
  639. package/es/graphic/polygon.js.map +1 -1
  640. package/es/graphic/pyramid3d.js +3 -3
  641. package/es/graphic/pyramid3d.js.map +1 -1
  642. package/es/graphic/rect.js +6 -4
  643. package/es/graphic/rect.js.map +1 -1
  644. package/es/graphic/rect3d.js +4 -4
  645. package/es/graphic/rect3d.js.map +1 -1
  646. package/es/graphic/richtext/frame.js +19 -0
  647. package/es/graphic/richtext/frame.js.map +1 -1
  648. package/es/graphic/richtext/icon.js +14 -6
  649. package/es/graphic/richtext/icon.js.map +1 -1
  650. package/es/graphic/richtext/line.js +14 -2
  651. package/es/graphic/richtext/line.js.map +1 -1
  652. package/es/graphic/richtext/paragraph.js +22 -0
  653. package/es/graphic/richtext/paragraph.js.map +1 -1
  654. package/es/graphic/richtext/utils.js +1 -2
  655. package/es/graphic/richtext/utils.js.map +1 -1
  656. package/es/graphic/richtext/wrapper.js +12 -0
  657. package/es/graphic/richtext/wrapper.js.map +1 -1
  658. package/es/graphic/richtext.js +37 -46
  659. package/es/graphic/richtext.js.map +1 -1
  660. package/es/graphic/shadow-root.js +2 -1
  661. package/es/graphic/shadow-root.js.map +1 -1
  662. package/es/graphic/symbol.js +11 -6
  663. package/es/graphic/symbol.js.map +1 -1
  664. package/es/graphic/text.js +39 -40
  665. package/es/graphic/text.js.map +1 -1
  666. package/es/graphic/theme.js +4 -0
  667. package/es/graphic/theme.js.map +1 -1
  668. package/es/graphic/tools.js +16 -44
  669. package/es/graphic/tools.js.map +1 -1
  670. package/es/graphic/wrap-text.js +6 -6
  671. package/es/graphic/wrap-text.js.map +1 -1
  672. package/es/interface/global.d.ts +2 -1
  673. package/es/interface/global.js.map +1 -1
  674. package/es/interface/graphic.d.ts +1 -0
  675. package/es/interface/graphic.js.map +1 -1
  676. package/es/picker/global-picker-service.js +1 -0
  677. package/es/picker/global-picker-service.js.map +1 -1
  678. package/es/picker/pick-interceptor.js +5 -15
  679. package/es/picker/pick-interceptor.js.map +1 -1
  680. package/es/picker/picker-service.js +5 -5
  681. package/es/picker/picker-service.js.map +1 -1
  682. package/es/plugins/builtin-plugin/3dview-transform-plugin.js +26 -20
  683. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  684. package/es/plugins/builtin-plugin/auto-render-plugin.js +5 -4
  685. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  686. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +5 -4
  687. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  688. package/es/plugins/builtin-plugin/flex-layout-plugin.js +11 -8
  689. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  690. package/es/plugins/builtin-plugin/html-attribute-plugin.js +28 -17
  691. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  692. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +12 -8
  693. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  694. package/es/plugins/builtin-plugin/react-attribute-plugin.js +6 -6
  695. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  696. package/es/plugins/plugin-service.js +1 -0
  697. package/es/plugins/plugin-service.js.map +1 -1
  698. package/es/render/contributions/render/arc-render.js +6 -4
  699. package/es/render/contributions/render/arc-render.js.map +1 -1
  700. package/es/render/contributions/render/arc3d-render.js +5 -7
  701. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  702. package/es/render/contributions/render/area-render.js +21 -23
  703. package/es/render/contributions/render/area-render.js.map +1 -1
  704. package/es/render/contributions/render/base-render.js +5 -0
  705. package/es/render/contributions/render/base-render.js.map +1 -1
  706. package/es/render/contributions/render/circle-render.js +6 -4
  707. package/es/render/contributions/render/circle-render.js.map +1 -1
  708. package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -3
  709. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  710. package/es/render/contributions/render/contributions/area-texture-contribution-render.js +2 -5
  711. package/es/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  712. package/es/render/contributions/render/contributions/base-contribution-render.js +10 -7
  713. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  714. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +4 -3
  715. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  716. package/es/render/contributions/render/contributions/circle-contribution-render.js +3 -3
  717. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  718. package/es/render/contributions/render/contributions/group-contribution-render.js +1 -3
  719. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  720. package/es/render/contributions/render/contributions/image-contribution-render.js +1 -3
  721. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  722. package/es/render/contributions/render/contributions/rect-contribution-render.js +11 -11
  723. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  724. package/es/render/contributions/render/contributions/symbol-contribution-render.js +3 -3
  725. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  726. package/es/render/contributions/render/contributions/text-contribution-render.js +6 -8
  727. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  728. package/es/render/contributions/render/draw-contribution.js +12 -14
  729. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  730. package/es/render/contributions/render/draw-interceptor.js +11 -21
  731. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  732. package/es/render/contributions/render/glyph-render.js +2 -3
  733. package/es/render/contributions/render/glyph-render.js.map +1 -1
  734. package/es/render/contributions/render/graphic-render.js +4 -1
  735. package/es/render/contributions/render/graphic-render.js.map +1 -1
  736. package/es/render/contributions/render/group-render.js +7 -3
  737. package/es/render/contributions/render/group-render.js.map +1 -1
  738. package/es/render/contributions/render/image-render.js +5 -2
  739. package/es/render/contributions/render/image-render.js.map +1 -1
  740. package/es/render/contributions/render/incremental-area-render.js +1 -3
  741. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  742. package/es/render/contributions/render/incremental-draw-contribution.js +80 -109
  743. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  744. package/es/render/contributions/render/incremental-line-render.js +1 -3
  745. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  746. package/es/render/contributions/render/line-render.js +12 -16
  747. package/es/render/contributions/render/line-render.js.map +1 -1
  748. package/es/render/contributions/render/path-render.js +8 -6
  749. package/es/render/contributions/render/path-render.js.map +1 -1
  750. package/es/render/contributions/render/polygon-render.js +6 -4
  751. package/es/render/contributions/render/polygon-render.js.map +1 -1
  752. package/es/render/contributions/render/pyramid3d-render.js +3 -5
  753. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  754. package/es/render/contributions/render/rect-render.js +8 -6
  755. package/es/render/contributions/render/rect-render.js.map +1 -1
  756. package/es/render/contributions/render/rect3d-render.js +5 -7
  757. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  758. package/es/render/contributions/render/richtext-render.js +4 -3
  759. package/es/render/contributions/render/richtext-render.js.map +1 -1
  760. package/es/render/contributions/render/symbol-render.js +11 -14
  761. package/es/render/contributions/render/symbol-render.js.map +1 -1
  762. package/es/render/contributions/render/text-render.js +9 -8
  763. package/es/render/contributions/render/text-render.js.map +1 -1
  764. package/es/render/contributions/render/utils.js +1 -1
  765. package/es/render/contributions/render/utils.js.map +1 -1
  766. package/es/render/render-service.js +11 -2
  767. package/es/render/render-service.js.map +1 -1
  768. package/es/resource-loader/loader.js +12 -17
  769. package/es/resource-loader/loader.js.map +1 -1
  770. package/es/tapable/Hook.js +3 -0
  771. package/es/tapable/Hook.js.map +1 -1
  772. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/path-render.ts"],"names":[],"mappings":"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","file":"path-render.js","sourcesContent":["import { inject, injectable, named } from '../../../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { renderCommandList } from '../../../common/render-command-list';\nimport type {\n IPath,\n ICustomPath2D,\n IContext2d,\n IThemeAttribute,\n IGraphicAttribute,\n IMarkAttribute,\n IPathRenderContribution,\n IGraphicRender,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService,\n IPathGraphicAttribute\n} from '../../../interface';\nimport { getTheme } from '../../../graphic/theme';\nimport { PATH_NUMBER_TYPE } from '../../../graphic/constants';\nimport { drawPathProxy, fillVisible, runFill, runStroke, strokeVisible } from './utils';\nimport { PathRenderContribution } from './contributions/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { BaseRender } from './base-render';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport {\n defaultPathBackgroundRenderContribution,\n defaultPathTextureRenderContribution\n} from './contributions/path-contribution-render';\n\n@injectable()\nexport class DefaultCanvasPathRender extends BaseRender<IPath> implements IGraphicRender {\n type: 'path';\n numberType: number = PATH_NUMBER_TYPE;\n tempTheme: Required<IPathGraphicAttribute>;\n\n constructor(\n @inject(ContributionProvider)\n @named(PathRenderContribution)\n protected readonly pathRenderContribitions: IContributionProvider<IPathRenderContribution>\n ) {\n super();\n this.builtinContributions = [defaultPathBackgroundRenderContribution, defaultPathTextureRenderContribution];\n this.init(pathRenderContribitions);\n }\n\n drawShape(\n path: IPath,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const pathAttribute = graphicService.themeService.getCurrentTheme().pathAttribute;\n const pathAttribute = this.tempTheme ?? getTheme(path, params?.theme).path;\n const { x: originX = pathAttribute.x, y: originY = pathAttribute.y } = path.attribute;\n\n const z = this.z ?? 0;\n\n const data = this.valid(path, pathAttribute, fillCb, strokeCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n context.beginPath();\n if (path.pathShape) {\n renderCommandList((path.pathShape as ICustomPath2D).commandList, context, x, y, 1, 1, z);\n } else {\n const path2D = path.attribute.path ?? pathAttribute.path;\n renderCommandList((path2D as ICustomPath2D).commandList, context, x, y, 1, 1, z);\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(path, path.attribute, pathAttribute);\n\n this.beforeRenderStep(\n path,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n pathAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, path.attribute, pathAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(path, path.attribute, originX - x, originY - y, pathAttribute);\n context.stroke();\n }\n }\n if (doFill) {\n if (fillCb) {\n fillCb(context, path.attribute, pathAttribute);\n } else if (fVisible) {\n context.setCommonStyle(path, path.attribute, originX - x, originY - y, pathAttribute);\n context.fill();\n }\n }\n\n this.afterRenderStep(\n path,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n pathAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n\n draw(path: IPath, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const pathAttribute = getTheme(path, params?.theme).path;\n this.tempTheme = pathAttribute;\n this._draw(path, pathAttribute, false, drawContext, params);\n this.tempTheme = null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/path-render.ts"],"names":[],"mappings":"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","file":"path-render.js","sourcesContent":["import { inject, injectable, named } from '../../../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { renderCommandList } from '../../../common/render-command-list';\nimport type {\n IPath,\n ICustomPath2D,\n IContext2d,\n IThemeAttribute,\n IGraphicAttribute,\n IMarkAttribute,\n IPathRenderContribution,\n IGraphicRender,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService,\n IPathGraphicAttribute\n} from '../../../interface';\nimport { getTheme } from '../../../graphic/theme';\nimport { PATH_NUMBER_TYPE } from '../../../graphic/constants';\nimport { drawPathProxy, fillVisible, runFill, runStroke, strokeVisible } from './utils';\nimport { PathRenderContribution } from './contributions/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { BaseRender } from './base-render';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport {\n defaultPathBackgroundRenderContribution,\n defaultPathTextureRenderContribution\n} from './contributions/path-contribution-render';\n\n@injectable()\nexport class DefaultCanvasPathRender extends BaseRender<IPath> implements IGraphicRender {\n type: 'path';\n numberType: number = PATH_NUMBER_TYPE;\n tempTheme: Required<IPathGraphicAttribute>;\n\n constructor(\n @inject(ContributionProvider)\n @named(PathRenderContribution)\n protected readonly pathRenderContribitions: IContributionProvider<IPathRenderContribution>\n ) {\n super();\n this.builtinContributions = [defaultPathBackgroundRenderContribution, defaultPathTextureRenderContribution];\n this.init(pathRenderContribitions);\n }\n\n drawShape(\n path: IPath,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const pathAttribute = graphicService.themeService.getCurrentTheme().pathAttribute;\n const pathAttribute = this.tempTheme ?? getTheme(path, params?.theme).path;\n const { x: originX = pathAttribute.x, y: originY = pathAttribute.y } = path.attribute;\n\n const z = this.z ?? 0;\n\n const data = this.valid(path, pathAttribute, fillCb, strokeCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n context.beginPath();\n if (path.pathShape) {\n renderCommandList((path.pathShape as ICustomPath2D).commandList, context, x, y, 1, 1, z);\n } else {\n const path2D = path.attribute.path ?? pathAttribute.path;\n renderCommandList((path2D as ICustomPath2D).commandList, context, x, y, 1, 1, z);\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(path, path.attribute, pathAttribute);\n\n this.beforeRenderStep(\n path,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n pathAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, path.attribute, pathAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(path, path.attribute, originX - x, originY - y, pathAttribute);\n context.stroke();\n }\n }\n if (doFill) {\n if (fillCb) {\n fillCb(context, path.attribute, pathAttribute);\n } else if (fVisible) {\n context.setCommonStyle(path, path.attribute, originX - x, originY - y, pathAttribute);\n context.fill();\n }\n }\n\n this.afterRenderStep(\n path,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n pathAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n\n draw(path: IPath, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const pathAttribute = getTheme(path, params?.theme).path;\n this.tempTheme = pathAttribute;\n this._draw(path, pathAttribute, false, drawContext, params);\n this.tempTheme = null;\n }\n}\n"]}
@@ -19,13 +19,15 @@ Object.defineProperty(exports, "__esModule", {
19
19
  const vutils_1 = require("@visactor/vutils"), inversify_lite_1 = require("../../../common/inversify-lite"), theme_1 = require("../../../graphic/theme"), constants_1 = require("../../../graphic/constants"), polygon_1 = require("../../../common/polygon"), constants_2 = require("./contributions/constants"), contribution_provider_1 = require("../../../common/contribution-provider"), base_render_1 = require("./base-render"), polygon_contribution_render_1 = require("./contributions/polygon-contribution-render");
20
20
 
21
21
  let DefaultCanvasPolygonRender = class extends base_render_1.BaseRender {
22
+ polygonRenderContribitions;
23
+ type;
24
+ numberType=constants_1.POLYGON_NUMBER_TYPE;
22
25
  constructor(polygonRenderContribitions) {
23
- super(), this.polygonRenderContribitions = polygonRenderContribitions, this.numberType = constants_1.POLYGON_NUMBER_TYPE,
24
- this.builtinContributions = [ polygon_contribution_render_1.defaultPolygonBackgroundRenderContribution, polygon_contribution_render_1.defaultPolygonTextureRenderContribution ],
26
+ super(), this.polygonRenderContribitions = polygonRenderContribitions, this.builtinContributions = [ polygon_contribution_render_1.defaultPolygonBackgroundRenderContribution, polygon_contribution_render_1.defaultPolygonTextureRenderContribution ],
25
27
  this.init(polygonRenderContribitions);
26
28
  }
27
29
  drawShape(polygon, context, x, y, drawContext, params, fillCb, strokeCb) {
28
- const polygonAttribute = (0, theme_1.getTheme)(polygon, null == params ? void 0 : params.theme).polygon, {points: points = polygonAttribute.points, cornerRadius: cornerRadius = polygonAttribute.cornerRadius, x: originX = polygonAttribute.x, y: originY = polygonAttribute.y, closePath: closePath = polygonAttribute.closePath} = polygon.attribute, data = this.valid(polygon, polygonAttribute, fillCb, strokeCb);
30
+ const polygonAttribute = (0, theme_1.getTheme)(polygon, params?.theme).polygon, {points: points = polygonAttribute.points, cornerRadius: cornerRadius = polygonAttribute.cornerRadius, x: originX = polygonAttribute.x, y: originY = polygonAttribute.y, closePath: closePath = polygonAttribute.closePath} = polygon.attribute, data = this.valid(polygon, polygonAttribute, fillCb, strokeCb);
29
31
  if (!data) return;
30
32
  const {fVisible: fVisible, sVisible: sVisible, doFill: doFill, doStroke: doStroke} = data;
31
33
  context.beginPath(), cornerRadius <= 0 || (0, vutils_1.isArray)(cornerRadius) && cornerRadius.every((num => 0 === num)) ? (0,
@@ -38,7 +40,7 @@ let DefaultCanvasPolygonRender = class extends base_render_1.BaseRender {
38
40
  context.stroke())), this.afterRenderStep(polygon, context, x, y, doFill, doStroke, fVisible, sVisible, polygonAttribute, drawContext, fillCb, strokeCb);
39
41
  }
40
42
  draw(polygon, renderService, drawContext, params) {
41
- const polygonAttribute = (0, theme_1.getTheme)(polygon, null == params ? void 0 : params.theme).polygon;
43
+ const polygonAttribute = (0, theme_1.getTheme)(polygon, params?.theme).polygon;
42
44
  this._draw(polygon, polygonAttribute, !1, drawContext, params);
43
45
  }
44
46
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/polygon-render.ts"],"names":[],"mappings":"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","file":"polygon-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { inject, injectable, named } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport { POLYGON_NUMBER_TYPE } from '../../../graphic/constants';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IPolygon,\n IThemeAttribute,\n IGraphicRender,\n IPolygonRenderContribution,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { drawPolygon, drawRoundedPolygon } from '../../../common/polygon';\nimport { drawPathProxy, fillVisible, runFill, runStroke, strokeVisible } from './utils';\nimport { PolygonRenderContribution } from './contributions/constants';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { BaseRender } from './base-render';\nimport {\n defaultPolygonBackgroundRenderContribution,\n defaultPolygonTextureRenderContribution\n} from './contributions/polygon-contribution-render';\n\n@injectable()\nexport class DefaultCanvasPolygonRender extends BaseRender<IPolygon> implements IGraphicRender {\n type: 'polygon';\n numberType: number = POLYGON_NUMBER_TYPE;\n\n constructor(\n @inject(ContributionProvider)\n @named(PolygonRenderContribution)\n protected readonly polygonRenderContribitions: IContributionProvider<IPolygonRenderContribution>\n ) {\n super();\n this.builtinContributions = [defaultPolygonBackgroundRenderContribution, defaultPolygonTextureRenderContribution];\n this.init(polygonRenderContribitions);\n }\n\n drawShape(\n polygon: IPolygon,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const polygonAttribute = graphicService.themeService.getCurrentTheme().polygonAttribute;\n const polygonAttribute = getTheme(polygon, params?.theme).polygon;\n const {\n points = polygonAttribute.points,\n cornerRadius = polygonAttribute.cornerRadius,\n x: originX = polygonAttribute.x,\n y: originY = polygonAttribute.y,\n closePath = polygonAttribute.closePath\n } = polygon.attribute;\n\n const data = this.valid(polygon, polygonAttribute, fillCb, strokeCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n context.beginPath();\n\n if ((cornerRadius as number) <= 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n drawPolygon(context.camera ? context : context.nativeContext, points, x, y);\n } else {\n // FIXME: type\n drawRoundedPolygon(context.camera ? context : context.nativeContext, points, x, y, cornerRadius, closePath);\n }\n // polygon 默认闭合\n closePath && context.closePath();\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(polygon, polygon.attribute, polygonAttribute);\n\n this.beforeRenderStep(\n polygon,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n polygonAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n\n if (doFill) {\n if (fillCb) {\n fillCb(context, polygon.attribute, polygonAttribute);\n } else if (fVisible) {\n // 存在fill\n context.setCommonStyle(polygon, polygon.attribute, originX - x, originY - y, polygonAttribute);\n context.fill();\n }\n }\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, polygon.attribute, polygonAttribute);\n } else if (sVisible) {\n // 存在stroke\n context.setStrokeStyle(polygon, polygon.attribute, originX - x, originY - y, polygonAttribute);\n context.stroke();\n }\n }\n\n this.afterRenderStep(\n polygon,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n polygonAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n\n draw(polygon: IPolygon, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const polygonAttribute = getTheme(polygon, params?.theme).polygon;\n this._draw(polygon, polygonAttribute, false, drawContext, params);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/polygon-render.ts"],"names":[],"mappings":"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","file":"polygon-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { inject, injectable, named } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport { POLYGON_NUMBER_TYPE } from '../../../graphic/constants';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IPolygon,\n IThemeAttribute,\n IGraphicRender,\n IPolygonRenderContribution,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { drawPolygon, drawRoundedPolygon } from '../../../common/polygon';\nimport { drawPathProxy, fillVisible, runFill, runStroke, strokeVisible } from './utils';\nimport { PolygonRenderContribution } from './contributions/constants';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { BaseRender } from './base-render';\nimport {\n defaultPolygonBackgroundRenderContribution,\n defaultPolygonTextureRenderContribution\n} from './contributions/polygon-contribution-render';\n\n@injectable()\nexport class DefaultCanvasPolygonRender extends BaseRender<IPolygon> implements IGraphicRender {\n type: 'polygon';\n numberType: number = POLYGON_NUMBER_TYPE;\n\n constructor(\n @inject(ContributionProvider)\n @named(PolygonRenderContribution)\n protected readonly polygonRenderContribitions: IContributionProvider<IPolygonRenderContribution>\n ) {\n super();\n this.builtinContributions = [defaultPolygonBackgroundRenderContribution, defaultPolygonTextureRenderContribution];\n this.init(polygonRenderContribitions);\n }\n\n drawShape(\n polygon: IPolygon,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const polygonAttribute = graphicService.themeService.getCurrentTheme().polygonAttribute;\n const polygonAttribute = getTheme(polygon, params?.theme).polygon;\n const {\n points = polygonAttribute.points,\n cornerRadius = polygonAttribute.cornerRadius,\n x: originX = polygonAttribute.x,\n y: originY = polygonAttribute.y,\n closePath = polygonAttribute.closePath\n } = polygon.attribute;\n\n const data = this.valid(polygon, polygonAttribute, fillCb, strokeCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n context.beginPath();\n\n if ((cornerRadius as number) <= 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n drawPolygon(context.camera ? context : context.nativeContext, points, x, y);\n } else {\n // FIXME: type\n drawRoundedPolygon(context.camera ? context : context.nativeContext, points, x, y, cornerRadius, closePath);\n }\n // polygon 默认闭合\n closePath && context.closePath();\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(polygon, polygon.attribute, polygonAttribute);\n\n this.beforeRenderStep(\n polygon,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n polygonAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n\n if (doFill) {\n if (fillCb) {\n fillCb(context, polygon.attribute, polygonAttribute);\n } else if (fVisible) {\n // 存在fill\n context.setCommonStyle(polygon, polygon.attribute, originX - x, originY - y, polygonAttribute);\n context.fill();\n }\n }\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, polygon.attribute, polygonAttribute);\n } else if (sVisible) {\n // 存在stroke\n context.setStrokeStyle(polygon, polygon.attribute, originX - x, originY - y, polygonAttribute);\n context.stroke();\n }\n }\n\n this.afterRenderStep(\n polygon,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n polygonAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n\n draw(polygon: IPolygon, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const polygonAttribute = getTheme(polygon, params?.theme).polygon;\n this._draw(polygon, polygonAttribute, false, drawContext, params);\n }\n}\n"]}
@@ -13,12 +13,10 @@ Object.defineProperty(exports, "__esModule", {
13
13
  const inversify_lite_1 = require("../../../common/inversify-lite"), theme_1 = require("../../../graphic/theme"), constants_1 = require("../../../graphic/constants"), base_render_1 = require("./base-render"), color_string_1 = require("../../../color-string");
14
14
 
15
15
  let DefaultCanvasPyramid3dRender = class extends base_render_1.BaseRender {
16
- constructor() {
17
- super(...arguments), this.type = "pyramid3d", this.numberType = constants_1.PYRAMID3D_NUMBER_TYPE;
18
- }
16
+ type="pyramid3d";
17
+ numberType=constants_1.PYRAMID3D_NUMBER_TYPE;
19
18
  drawShape(pyramid3d, context, x, y, drawContext, params, fillCb, strokeCb) {
20
- var _a;
21
- const pyramidAttribute = (0, theme_1.getTheme)(pyramid3d, null == params ? void 0 : params.theme).polygon, {fill: fill = pyramidAttribute.fill, stroke: stroke = pyramidAttribute.stroke, face: face = [ !0, !0, !0, !0, !0, !0 ]} = pyramid3d.attribute, z = null !== (_a = this.z) && void 0 !== _a ? _a : 0;
19
+ const pyramidAttribute = (0, theme_1.getTheme)(pyramid3d, params?.theme).polygon, {fill: fill = pyramidAttribute.fill, stroke: stroke = pyramidAttribute.stroke, face: face = [ !0, !0, !0, !0, !0, !0 ]} = pyramid3d.attribute, z = this.z ?? 0;
22
20
  if (!this.valid(pyramid3d, pyramidAttribute, fillCb, strokeCb)) return;
23
21
  const {light: light, camera: camera} = drawContext.stage || {}, face3d = pyramid3d.findFace();
24
22
  if (!1 !== fill) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/pyramid3d-render.ts"],"names":[],"mappings":"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","file":"pyramid3d-render.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport { PYRAMID3D_NUMBER_TYPE } from '../../../graphic/constants';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IDirectionLight,\n IMarkAttribute,\n IPyramid3d,\n IFace3d,\n IThemeAttribute,\n ICamera,\n IPolygonItem,\n IGraphicRender,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { fillVisible, runFill, runStroke, strokeVisible } from './utils';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { BaseRender } from './base-render';\nimport { ColorStore, ColorType } from '../../../color-string';\n\n@injectable()\nexport class DefaultCanvasPyramid3dRender extends BaseRender<IPyramid3d> implements IGraphicRender {\n type = 'pyramid3d';\n numberType: number = PYRAMID3D_NUMBER_TYPE;\n declare z: number;\n\n drawShape(\n pyramid3d: IPyramid3d,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const rectAttribute = graphicService.themeService.getCurrentTheme().rectAttribute;\n const pyramidAttribute = getTheme(pyramid3d, params?.theme).polygon;\n const {\n fill = pyramidAttribute.fill,\n stroke = pyramidAttribute.stroke,\n face = [true, true, true, true, true, true]\n } = pyramid3d.attribute;\n\n const z = this.z ?? 0;\n\n const data = this.valid(pyramid3d, pyramidAttribute, fillCb, strokeCb);\n if (!data) {\n return;\n }\n // const { fVisible, sVisible, doFill, doStroke } = data;\n\n const { light, camera } = drawContext.stage || {};\n\n const face3d = pyramid3d.findFace();\n\n if (fill !== false) {\n context.setCommonStyle(pyramid3d, pyramid3d.attribute, x, y, pyramidAttribute);\n let fc = fill;\n if (typeof fc !== 'string') {\n fc = 'black';\n }\n this.fill(x, y, z, face3d, face, fc, context, light, camera, pyramid3d, pyramidAttribute, fillCb);\n }\n if (stroke !== false) {\n context.setStrokeStyle(pyramid3d, pyramid3d.attribute, x, y, pyramidAttribute);\n this.stroke(x, y, z, face3d, context);\n }\n }\n\n stroke(x: number, y: number, z: number, face3d: IFace3d, context: IContext2d) {\n const vertices = face3d.vertices;\n face3d.edges.forEach(p => {\n const p1 = vertices[p[0]];\n const p2 = vertices[p[1]];\n const v1 = {\n x: x + p1[0],\n y: y + p1[1],\n z: z + p1[2]\n };\n const v2 = {\n x: x + p2[0],\n y: y + p2[1],\n z: z + p2[2]\n };\n context.beginPath();\n context.moveTo(v1.x, v1.y, v1.z);\n context.lineTo(v2.x, v2.y, v2.z);\n context.stroke();\n });\n }\n fill(\n x: number,\n y: number,\n z: number,\n face3d: IFace3d,\n faces: [boolean, boolean, boolean, boolean, boolean, boolean],\n fillColor: string,\n context: IContext2d,\n light: IDirectionLight,\n camera: ICamera,\n pyramid3d: IPyramid3d,\n pyramid3dAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const rgbArray = ColorStore.Get(fillColor as string, ColorType.Color255);\n\n // 上下左右前后\n // 0,1,2,3,4,5\n const vertices = face3d.vertices;\n // 计算每个顶点的view\n const viewdVerticesZ = vertices.map(v => {\n return context.view(v[0], v[1], v[2])[2];\n });\n // 排序\n const sortFace: { faceIdx: number; polygon: IPolygonItem }[] = [];\n face3d.polygons.forEach((p, i) => {\n if (!faces[i]) {\n return;\n }\n sortFace.push({\n faceIdx: i,\n polygon: p\n });\n // 设置ave_z进行排序\n const { polygon, normal } = p;\n\n const z1 = viewdVerticesZ[polygon[0]];\n const z2 = viewdVerticesZ[polygon[1]];\n const z3 = viewdVerticesZ[polygon[2]];\n const z4 = viewdVerticesZ[polygon[3]];\n\n p.ave_z = z1 + z2 + z3 + z4;\n });\n sortFace.sort((a, b) => b.polygon.ave_z - a.polygon.ave_z);\n sortFace.forEach(item => {\n const { polygon, normal } = item.polygon;\n\n const p1 = vertices[polygon[0]];\n const p2 = vertices[polygon[1]];\n const p3 = vertices[polygon[2]];\n const p4 = vertices[polygon[3]];\n\n const v1 = {\n x: x + p1[0],\n y: y + p1[1],\n z: z + p1[2]\n };\n const v2 = {\n x: x + p2[0],\n y: y + p2[1],\n z: z + p2[2]\n };\n const v3 = {\n x: x + p3[0],\n y: y + p3[1],\n z: z + p3[2]\n };\n const v4 = {\n x: x + p4[0],\n y: y + p4[1],\n z: z + p4[2]\n };\n context.beginPath();\n context.moveTo(v1.x, v1.y, v1.z);\n context.lineTo(v2.x, v2.y, v2.z);\n context.lineTo(v3.x, v3.y, v3.z);\n context.lineTo(v4.x, v4.y, v4.z);\n context.closePath();\n if (fillCb) {\n fillCb(context, pyramid3d.attribute, pyramid3dAttribute);\n } else {\n context.fillStyle = light ? light.computeColor(normal, rgbArray as any) : fillColor;\n context.fill();\n }\n });\n }\n\n draw(pyramid3d: IPyramid3d, renderService: IRenderService, drawContext: IDrawContext) {\n const pyramid3dAttribute = getTheme(pyramid3d).polygon;\n this._draw(pyramid3d, pyramid3dAttribute, false, drawContext);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/pyramid3d-render.ts"],"names":[],"mappings":"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","file":"pyramid3d-render.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport { PYRAMID3D_NUMBER_TYPE } from '../../../graphic/constants';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IDirectionLight,\n IMarkAttribute,\n IPyramid3d,\n IFace3d,\n IThemeAttribute,\n ICamera,\n IPolygonItem,\n IGraphicRender,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { fillVisible, runFill, runStroke, strokeVisible } from './utils';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { BaseRender } from './base-render';\nimport { ColorStore, ColorType } from '../../../color-string';\n\n@injectable()\nexport class DefaultCanvasPyramid3dRender extends BaseRender<IPyramid3d> implements IGraphicRender {\n type = 'pyramid3d';\n numberType: number = PYRAMID3D_NUMBER_TYPE;\n declare z: number;\n\n drawShape(\n pyramid3d: IPyramid3d,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const rectAttribute = graphicService.themeService.getCurrentTheme().rectAttribute;\n const pyramidAttribute = getTheme(pyramid3d, params?.theme).polygon;\n const {\n fill = pyramidAttribute.fill,\n stroke = pyramidAttribute.stroke,\n face = [true, true, true, true, true, true]\n } = pyramid3d.attribute;\n\n const z = this.z ?? 0;\n\n const data = this.valid(pyramid3d, pyramidAttribute, fillCb, strokeCb);\n if (!data) {\n return;\n }\n // const { fVisible, sVisible, doFill, doStroke } = data;\n\n const { light, camera } = drawContext.stage || {};\n\n const face3d = pyramid3d.findFace();\n\n if (fill !== false) {\n context.setCommonStyle(pyramid3d, pyramid3d.attribute, x, y, pyramidAttribute);\n let fc = fill;\n if (typeof fc !== 'string') {\n fc = 'black';\n }\n this.fill(x, y, z, face3d, face, fc, context, light, camera, pyramid3d, pyramidAttribute, fillCb);\n }\n if (stroke !== false) {\n context.setStrokeStyle(pyramid3d, pyramid3d.attribute, x, y, pyramidAttribute);\n this.stroke(x, y, z, face3d, context);\n }\n }\n\n stroke(x: number, y: number, z: number, face3d: IFace3d, context: IContext2d) {\n const vertices = face3d.vertices;\n face3d.edges.forEach(p => {\n const p1 = vertices[p[0]];\n const p2 = vertices[p[1]];\n const v1 = {\n x: x + p1[0],\n y: y + p1[1],\n z: z + p1[2]\n };\n const v2 = {\n x: x + p2[0],\n y: y + p2[1],\n z: z + p2[2]\n };\n context.beginPath();\n context.moveTo(v1.x, v1.y, v1.z);\n context.lineTo(v2.x, v2.y, v2.z);\n context.stroke();\n });\n }\n fill(\n x: number,\n y: number,\n z: number,\n face3d: IFace3d,\n faces: [boolean, boolean, boolean, boolean, boolean, boolean],\n fillColor: string,\n context: IContext2d,\n light: IDirectionLight,\n camera: ICamera,\n pyramid3d: IPyramid3d,\n pyramid3dAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const rgbArray = ColorStore.Get(fillColor as string, ColorType.Color255);\n\n // 上下左右前后\n // 0,1,2,3,4,5\n const vertices = face3d.vertices;\n // 计算每个顶点的view\n const viewdVerticesZ = vertices.map(v => {\n return context.view(v[0], v[1], v[2])[2];\n });\n // 排序\n const sortFace: { faceIdx: number; polygon: IPolygonItem }[] = [];\n face3d.polygons.forEach((p, i) => {\n if (!faces[i]) {\n return;\n }\n sortFace.push({\n faceIdx: i,\n polygon: p\n });\n // 设置ave_z进行排序\n const { polygon, normal } = p;\n\n const z1 = viewdVerticesZ[polygon[0]];\n const z2 = viewdVerticesZ[polygon[1]];\n const z3 = viewdVerticesZ[polygon[2]];\n const z4 = viewdVerticesZ[polygon[3]];\n\n p.ave_z = z1 + z2 + z3 + z4;\n });\n sortFace.sort((a, b) => b.polygon.ave_z - a.polygon.ave_z);\n sortFace.forEach(item => {\n const { polygon, normal } = item.polygon;\n\n const p1 = vertices[polygon[0]];\n const p2 = vertices[polygon[1]];\n const p3 = vertices[polygon[2]];\n const p4 = vertices[polygon[3]];\n\n const v1 = {\n x: x + p1[0],\n y: y + p1[1],\n z: z + p1[2]\n };\n const v2 = {\n x: x + p2[0],\n y: y + p2[1],\n z: z + p2[2]\n };\n const v3 = {\n x: x + p3[0],\n y: y + p3[1],\n z: z + p3[2]\n };\n const v4 = {\n x: x + p4[0],\n y: y + p4[1],\n z: z + p4[2]\n };\n context.beginPath();\n context.moveTo(v1.x, v1.y, v1.z);\n context.lineTo(v2.x, v2.y, v2.z);\n context.lineTo(v3.x, v3.y, v3.z);\n context.lineTo(v4.x, v4.y, v4.z);\n context.closePath();\n if (fillCb) {\n fillCb(context, pyramid3d.attribute, pyramid3dAttribute);\n } else {\n context.fillStyle = light ? light.computeColor(normal, rgbArray as any) : fillColor;\n context.fill();\n }\n });\n }\n\n draw(pyramid3d: IPyramid3d, renderService: IRenderService, drawContext: IDrawContext) {\n const pyramid3dAttribute = getTheme(pyramid3d).polygon;\n this._draw(pyramid3d, pyramid3dAttribute, false, drawContext);\n }\n}\n"]}
@@ -19,17 +19,18 @@ Object.defineProperty(exports, "__esModule", {
19
19
  const vutils_1 = require("@visactor/vutils"), inversify_lite_1 = require("../../../common/inversify-lite"), theme_1 = require("../../../graphic/theme"), constants_1 = require("../../../graphic/constants"), rect_1 = require("../../../common/shape/rect"), contribution_provider_1 = require("../../../common/contribution-provider"), constants_2 = require("./contributions/constants"), utils_1 = require("./utils"), base_render_1 = require("./base-render"), contributions_1 = require("./contributions");
20
20
 
21
21
  let DefaultCanvasRectRender = class extends base_render_1.BaseRender {
22
+ rectRenderContribitions;
23
+ type="rect";
24
+ numberType=constants_1.RECT_NUMBER_TYPE;
25
+ tempTheme;
22
26
  constructor(rectRenderContribitions) {
23
- super(), this.rectRenderContribitions = rectRenderContribitions, this.type = "rect",
24
- this.numberType = constants_1.RECT_NUMBER_TYPE, this.builtinContributions = [ contributions_1.defaultRectRenderContribution, contributions_1.defaultRectBackgroundRenderContribution, contributions_1.defaultRectTextureRenderContribution ],
27
+ super(), this.rectRenderContribitions = rectRenderContribitions, this.builtinContributions = [ contributions_1.defaultRectRenderContribution, contributions_1.defaultRectBackgroundRenderContribution, contributions_1.defaultRectTextureRenderContribution ],
25
28
  this.init(rectRenderContribitions);
26
29
  }
27
30
  drawShape(rect, context, x, y, drawContext, params, fillCb, strokeCb) {
28
- var _a;
29
- const rectAttribute = null !== (_a = this.tempTheme) && void 0 !== _a ? _a : (0,
30
- theme_1.getTheme)(rect, null == params ? void 0 : params.theme).rect, {fill: fill = rectAttribute.fill, background: background, stroke: stroke = rectAttribute.stroke, cornerRadius: cornerRadius = rectAttribute.cornerRadius, opacity: opacity = rectAttribute.opacity, fillOpacity: fillOpacity = rectAttribute.fillOpacity, lineWidth: lineWidth = rectAttribute.lineWidth, strokeOpacity: strokeOpacity = rectAttribute.strokeOpacity, visible: visible = rectAttribute.visible, x1: x1, y1: y1, x: originX = rectAttribute.x, y: originY = rectAttribute.y} = rect.attribute;
31
+ const rectAttribute = this.tempTheme ?? (0, theme_1.getTheme)(rect, params?.theme).rect, {fill: fill = rectAttribute.fill, background: background, stroke: stroke = rectAttribute.stroke, cornerRadius: cornerRadius = rectAttribute.cornerRadius, opacity: opacity = rectAttribute.opacity, fillOpacity: fillOpacity = rectAttribute.fillOpacity, lineWidth: lineWidth = rectAttribute.lineWidth, strokeOpacity: strokeOpacity = rectAttribute.strokeOpacity, visible: visible = rectAttribute.visible, x1: x1, y1: y1, x: originX = rectAttribute.x, y: originY = rectAttribute.y} = rect.attribute;
31
32
  let {width: width, height: height} = rect.attribute;
32
- width = (null != width ? width : x1 - originX) || 0, height = (null != height ? height : y1 - originY) || 0;
33
+ width = (width ?? x1 - originX) || 0, height = (height ?? y1 - originY) || 0;
33
34
  const fVisible = (0, utils_1.rectFillVisible)(opacity, fillOpacity, width, height, fill), sVisible = (0,
34
35
  utils_1.rectStrokeVisible)(opacity, strokeOpacity, width, height), doFill = (0,
35
36
  utils_1.runFill)(fill, background), doStroke = (0, utils_1.runStroke)(stroke, lineWidth);
@@ -49,7 +50,7 @@ let DefaultCanvasRectRender = class extends base_render_1.BaseRender {
49
50
  context.stroke())), this.afterRenderStep(rect, context, x, y, doFill, doStroke, fVisible, sVisible, rectAttribute, drawContext, fillCb, strokeCb);
50
51
  }
51
52
  draw(rect, renderService, drawContext, params) {
52
- const rectAttribute = (0, theme_1.getTheme)(rect, null == params ? void 0 : params.theme).rect;
53
+ const rectAttribute = (0, theme_1.getTheme)(rect, params?.theme).rect;
53
54
  this.tempTheme = rectAttribute, this._draw(rect, rectAttribute, !1, drawContext, params),
54
55
  this.tempTheme = null;
55
56
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/rect-render.ts"],"names":[],"mappings":"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","file":"rect-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { inject, injectable, named } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport { RECT_NUMBER_TYPE } from '../../../graphic/constants';\nimport { createRectPath } from '../../../common/shape/rect';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IRect,\n IThemeAttribute,\n IGraphicRender,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService,\n IRectRenderContribution,\n IContributionProvider,\n IRectGraphicAttribute\n} from '../../../interface';\nimport { RectRenderContribution } from './contributions/constants';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { BaseRender } from './base-render';\nimport {\n defaultRectBackgroundRenderContribution,\n defaultRectRenderContribution,\n defaultRectTextureRenderContribution\n} from './contributions';\n\n@injectable()\nexport class DefaultCanvasRectRender extends BaseRender<IRect> implements IGraphicRender {\n type = 'rect';\n numberType: number = RECT_NUMBER_TYPE;\n tempTheme: Required<IRectGraphicAttribute>;\n\n constructor(\n @inject(ContributionProvider)\n @named(RectRenderContribution)\n protected readonly rectRenderContribitions: IContributionProvider<IRectRenderContribution>\n ) {\n super();\n this.builtinContributions = [\n defaultRectRenderContribution,\n defaultRectBackgroundRenderContribution,\n defaultRectTextureRenderContribution\n ];\n this.init(rectRenderContribitions);\n }\n\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const rectAttribute = this.tempTheme ?? getTheme(rect, params?.theme).rect;\n const {\n fill = rectAttribute.fill,\n background,\n stroke = rectAttribute.stroke,\n cornerRadius = rectAttribute.cornerRadius,\n opacity = rectAttribute.opacity,\n fillOpacity = rectAttribute.fillOpacity,\n lineWidth = rectAttribute.lineWidth,\n strokeOpacity = rectAttribute.strokeOpacity,\n visible = rectAttribute.visible,\n x1,\n y1,\n x: originX = rectAttribute.x,\n y: originY = rectAttribute.y\n } = rect.attribute;\n let { width, height } = rect.attribute;\n width = (width ?? x1 - originX) || 0;\n height = (height ?? y1 - originY) || 0;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill, background);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(rect.valid && visible)) {\n return;\n }\n\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x, y, width, height);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, x, y, width, height, cornerRadius);\n }\n\n const doFillOrStroke = {\n doFill,\n doStroke\n };\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n this.beforeRenderStep(\n rect,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n rectAttribute,\n drawContext,\n fillCb,\n strokeCb,\n doFillOrStroke\n );\n\n if (doFillOrStroke.doFill) {\n if (fillCb) {\n fillCb(context, rect.attribute, rectAttribute);\n } else if (fVisible) {\n // 存在fill\n context.setCommonStyle(rect, rect.attribute, originX - x, originY - y, rectAttribute);\n context.fill();\n }\n }\n if (doFillOrStroke.doStroke) {\n if (strokeCb) {\n strokeCb(context, rect.attribute, rectAttribute);\n } else if (sVisible) {\n // 存在stroke\n context.setStrokeStyle(rect, rect.attribute, originX - x, originY - y, rectAttribute);\n context.stroke();\n }\n }\n\n this.afterRenderStep(\n rect,\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 draw(rect: IRect, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const rectAttribute = getTheme(rect, params?.theme).rect;\n this.tempTheme = rectAttribute;\n this._draw(rect, rectAttribute, false, drawContext, params);\n this.tempTheme = null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/rect-render.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA2C;AAC3C,mEAA2E;AAC3E,kDAAkD;AAClD,0DAA8D;AAC9D,qDAA4D;AAE5D,iFAA6E;AAe7E,yDAAmE;AACnE,mCAAiF;AACjF,+CAA2C;AAC3C,mDAIyB;AAGlB,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,wBAAiB;IAQvC;IAPrB,IAAI,GAAG,MAAM,CAAC;IACd,UAAU,GAAW,4BAAgB,CAAC;IACtC,SAAS,CAAkC;IAE3C,YAGqB,uBAAuE;QAE1F,KAAK,EAAE,CAAC;QAFW,4BAAuB,GAAvB,uBAAuB,CAAgD;QAG1F,IAAI,CAAC,oBAAoB,GAAG;YAC1B,6CAA6B;YAC7B,uDAAuC;YACvC,oDAAoC;SACrC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,CACP,IAAW,EACX,OAAmB,EACnB,CAAS,EACT,CAAS,EACT,WAAyB,EACzB,MAAiC,EACjC,MAIY,EACZ,QAIY;QAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,IAAI,IAAA,gBAAQ,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;QAC3E,MAAM,EACJ,IAAI,GAAG,aAAa,CAAC,IAAI,EACzB,UAAU,EACV,MAAM,GAAG,aAAa,CAAC,MAAM,EAC7B,YAAY,GAAG,aAAa,CAAC,YAAY,EACzC,OAAO,GAAG,aAAa,CAAC,OAAO,EAC/B,WAAW,GAAG,aAAa,CAAC,WAAW,EACvC,SAAS,GAAG,aAAa,CAAC,SAAS,EACnC,aAAa,GAAG,aAAa,CAAC,aAAa,EAC3C,OAAO,GAAG,aAAa,CAAC,OAAO,EAC/B,EAAE,EACF,EAAE,EACF,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,CAAC,EAC5B,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,CAAC,EAC7B,GAAG,IAAI,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACvC,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAGvC,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAA,iBAAS,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE9C,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE;YACzB,OAAO;SACR;QAGD,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,UAAU,CAAC,EAAE;YAC/D,OAAO;SACR;QAED,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,YAAY,CAAC,IAAe,YAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;YAErG,OAAO,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACnC;aAAM;YACL,OAAO,CAAC,SAAS,EAAE,CAAC;YAGpB,IAAA,qBAAc,EAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;SAC5D;QAED,MAAM,cAAc,GAAG;YACrB,MAAM;YACN,QAAQ;SACT,CAAC;QAGF,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAEhG,IAAI,CAAC,gBAAgB,CACnB,IAAI,EACJ,OAAO,EACP,CAAC,EACD,CAAC,EACD,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,EACR,cAAc,CACf,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,EAAE;YACzB,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;aAChD;iBAAM,IAAI,QAAQ,EAAE;gBAEnB,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;gBACtF,OAAO,CAAC,IAAI,EAAE,CAAC;aAChB;SACF;QACD,IAAI,cAAc,CAAC,QAAQ,EAAE;YAC3B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;aAClD;iBAAM,IAAI,QAAQ,EAAE;gBAEnB,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;gBACtF,OAAO,CAAC,MAAM,EAAE,CAAC;aAClB;SACF;QAED,IAAI,CAAC,eAAe,CAClB,IAAI,EACJ,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;IAED,IAAI,CAAC,IAAW,EAAE,aAA6B,EAAE,WAAyB,EAAE,MAAiC;QAC3G,MAAM,aAAa,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;CACF,CAAA;AAxJY,uBAAuB;IADnC,IAAA,2BAAU,GAAE;IAOR,WAAA,IAAA,uBAAM,EAAC,4CAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,sBAAK,EAAC,kCAAsB,CAAC,CAAA;;GAPrB,uBAAuB,CAwJnC;AAxJY,0DAAuB","file":"rect-render.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { inject, injectable, named } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport { RECT_NUMBER_TYPE } from '../../../graphic/constants';\nimport { createRectPath } from '../../../common/shape/rect';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IRect,\n IThemeAttribute,\n IGraphicRender,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService,\n IRectRenderContribution,\n IContributionProvider,\n IRectGraphicAttribute\n} from '../../../interface';\nimport { RectRenderContribution } from './contributions/constants';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { BaseRender } from './base-render';\nimport {\n defaultRectBackgroundRenderContribution,\n defaultRectRenderContribution,\n defaultRectTextureRenderContribution\n} from './contributions';\n\n@injectable()\nexport class DefaultCanvasRectRender extends BaseRender<IRect> implements IGraphicRender {\n type = 'rect';\n numberType: number = RECT_NUMBER_TYPE;\n tempTheme: Required<IRectGraphicAttribute>;\n\n constructor(\n @inject(ContributionProvider)\n @named(RectRenderContribution)\n protected readonly rectRenderContribitions: IContributionProvider<IRectRenderContribution>\n ) {\n super();\n this.builtinContributions = [\n defaultRectRenderContribution,\n defaultRectBackgroundRenderContribution,\n defaultRectTextureRenderContribution\n ];\n this.init(rectRenderContribitions);\n }\n\n drawShape(\n rect: IRect,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const rectAttribute = this.tempTheme ?? getTheme(rect, params?.theme).rect;\n const {\n fill = rectAttribute.fill,\n background,\n stroke = rectAttribute.stroke,\n cornerRadius = rectAttribute.cornerRadius,\n opacity = rectAttribute.opacity,\n fillOpacity = rectAttribute.fillOpacity,\n lineWidth = rectAttribute.lineWidth,\n strokeOpacity = rectAttribute.strokeOpacity,\n visible = rectAttribute.visible,\n x1,\n y1,\n x: originX = rectAttribute.x,\n y: originY = rectAttribute.y\n } = rect.attribute;\n let { width, height } = rect.attribute;\n width = (width ?? x1 - originX) || 0;\n height = (height ?? y1 - originY) || 0;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill, background);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(rect.valid && visible)) {\n return;\n }\n\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x, y, width, height);\n } else {\n context.beginPath();\n\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, x, y, width, height, cornerRadius);\n }\n\n const doFillOrStroke = {\n doFill,\n doStroke\n };\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(rect, rect.attribute, rectAttribute);\n\n this.beforeRenderStep(\n rect,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n rectAttribute,\n drawContext,\n fillCb,\n strokeCb,\n doFillOrStroke\n );\n\n if (doFillOrStroke.doFill) {\n if (fillCb) {\n fillCb(context, rect.attribute, rectAttribute);\n } else if (fVisible) {\n // 存在fill\n context.setCommonStyle(rect, rect.attribute, originX - x, originY - y, rectAttribute);\n context.fill();\n }\n }\n if (doFillOrStroke.doStroke) {\n if (strokeCb) {\n strokeCb(context, rect.attribute, rectAttribute);\n } else if (sVisible) {\n // 存在stroke\n context.setStrokeStyle(rect, rect.attribute, originX - x, originY - y, rectAttribute);\n context.stroke();\n }\n }\n\n this.afterRenderStep(\n rect,\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 draw(rect: IRect, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const rectAttribute = getTheme(rect, params?.theme).rect;\n this.tempTheme = rectAttribute;\n this._draw(rect, rectAttribute, false, drawContext, params);\n this.tempTheme = null;\n }\n}\n"]}
@@ -13,15 +13,13 @@ Object.defineProperty(exports, "__esModule", {
13
13
  const inversify_lite_1 = require("../../../common/inversify-lite"), theme_1 = require("../../../graphic/theme"), utils_1 = require("./utils"), base_render_1 = require("./base-render"), constants_1 = require("../../../graphic/constants"), color_string_1 = require("../../../color-string");
14
14
 
15
15
  let DefaultCanvasRect3dRender = class extends base_render_1.BaseRender {
16
- constructor() {
17
- super(...arguments), this.type = "rect3d", this.numberType = constants_1.RECT3D_NUMBER_TYPE;
18
- }
16
+ type="rect3d";
17
+ numberType=constants_1.RECT3D_NUMBER_TYPE;
19
18
  drawShape(rect, context, x, y, drawContext, params, fillCb, strokeCb) {
20
- var _a;
21
- const rectAttribute = (0, theme_1.getTheme)(rect, null == params ? void 0 : params.theme).rect, {fill: fill = rectAttribute.fill, stroke: stroke = rectAttribute.stroke, x1: x1, y1: y1, x: originX, y: originY, opacity: opacity = rectAttribute.opacity, fillOpacity: fillOpacity = rectAttribute.fillOpacity, lineWidth: lineWidth = rectAttribute.lineWidth, strokeOpacity: strokeOpacity = rectAttribute.strokeOpacity, visible: visible = rectAttribute.visible} = rect.attribute;
19
+ const rectAttribute = (0, theme_1.getTheme)(rect, params?.theme).rect, {fill: fill = rectAttribute.fill, stroke: stroke = rectAttribute.stroke, x1: x1, y1: y1, x: originX, y: originY, opacity: opacity = rectAttribute.opacity, fillOpacity: fillOpacity = rectAttribute.fillOpacity, lineWidth: lineWidth = rectAttribute.lineWidth, strokeOpacity: strokeOpacity = rectAttribute.strokeOpacity, visible: visible = rectAttribute.visible} = rect.attribute;
22
20
  let {width: width, height: height} = rect.attribute;
23
- width = (null != width ? width : x1 - originX) || 0, height = (null != height ? height : y1 - originY) || 0;
24
- const z = null !== (_a = this.z) && void 0 !== _a ? _a : 0, fVisible = (0, utils_1.rectFillVisible)(opacity, fillOpacity, width, height, fill), sVisible = (0,
21
+ width = (width ?? x1 - originX) || 0, height = (height ?? y1 - originY) || 0;
22
+ const z = this.z ?? 0, fVisible = (0, utils_1.rectFillVisible)(opacity, fillOpacity, width, height, fill), sVisible = (0,
25
23
  utils_1.rectStrokeVisible)(opacity, strokeOpacity, width, height), doFill = (0,
26
24
  utils_1.runFill)(fill), doStroke = (0, utils_1.runStroke)(stroke, lineWidth);
27
25
  if (!rect.valid || !visible) return;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/rect3d-render.ts"],"names":[],"mappings":"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","file":"rect3d-render.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IDirectionLight,\n IFace3d,\n IMarkAttribute,\n IPolygonItem,\n IRect3d,\n IThemeAttribute,\n IGraphicRender,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { BaseRender } from './base-render';\nimport { RECT3D_NUMBER_TYPE } from '../../../graphic/constants';\nimport { ColorStore, ColorType } from '../../../color-string';\n@injectable()\nexport class DefaultCanvasRect3dRender extends BaseRender<IRect3d> implements IGraphicRender {\n type = 'rect3d';\n numberType: number = RECT3D_NUMBER_TYPE;\n declare z: number;\n\n drawShape(\n rect: IRect3d,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const rectAttribute = graphicService.themeService.getCurrentTheme().rectAttribute;\n const rectAttribute = getTheme(rect, params?.theme).rect;\n const {\n fill = rectAttribute.fill,\n stroke = rectAttribute.stroke,\n x1,\n y1,\n x: originX,\n y: originY,\n opacity = rectAttribute.opacity,\n fillOpacity = rectAttribute.fillOpacity,\n lineWidth = rectAttribute.lineWidth,\n strokeOpacity = rectAttribute.strokeOpacity,\n visible = rectAttribute.visible\n } = rect.attribute;\n let { width, height } = rect.attribute;\n\n width = (width ?? x1 - originX) || 0;\n height = (height ?? y1 - originY) || 0;\n\n const z = this.z ?? 0;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(rect.valid && visible)) {\n return;\n }\n\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb)) {\n return;\n }\n\n const { light, camera } = drawContext.stage || {};\n const face3d = rect.findFace();\n\n if (fill !== false) {\n context.setCommonStyle(rect, rect.attribute, x, y, rectAttribute);\n let fc = fill;\n if (typeof fc !== 'string') {\n fc = 'black';\n }\n this.fill(x, y, z, face3d, fc, context, light, fillCb);\n }\n if (stroke !== false) {\n context.setStrokeStyle(rect, rect.attribute, x, y, rectAttribute);\n this.stroke(x, y, z, face3d, context);\n }\n }\n\n stroke(x: number, y: number, z: number, face3d: IFace3d, context: IContext2d) {\n const vertices = face3d.vertices;\n face3d.edges.forEach(edge => {\n const p1 = vertices[edge[0]];\n const v1 = {\n x: x + p1[0],\n y: y + p1[1],\n z: z + p1[2]\n };\n const p2 = vertices[edge[1]];\n const v2 = {\n x: x + p2[0],\n y: y + p2[1],\n z: z + p2[2]\n };\n context.beginPath();\n context.moveTo(v1.x, v1.y, v1.z);\n context.lineTo(v2.x, v2.y, v2.z);\n context.stroke();\n });\n }\n fill(\n x: number,\n y: number,\n z: number,\n face3d: IFace3d,\n fillColor: string,\n context: IContext2d,\n light: IDirectionLight,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const rgbArray = ColorStore.Get(fillColor as string, ColorType.Color255);\n // 上下左右前后\n // 0,1,2,3,4,5\n const vertices = face3d.vertices;\n // 计算每个顶点的view\n const viewdVerticesZ = vertices.map(v => {\n return context.view(v[0], v[1], v[2])[2];\n });\n // 排序\n const sortFace: { faceIdx: number; polygon: IPolygonItem }[] = [];\n face3d.polygons.forEach((p, i) => {\n sortFace.push({\n faceIdx: i,\n polygon: p\n });\n // 设置ave_z进行排序\n const { polygon, normal } = p;\n\n const z1 = viewdVerticesZ[polygon[0]];\n const z2 = viewdVerticesZ[polygon[1]];\n const z3 = viewdVerticesZ[polygon[2]];\n const z4 = viewdVerticesZ[polygon[3]];\n\n p.ave_z = z1 + z2 + z3 + z4;\n });\n sortFace.sort((a, b) => b.polygon.ave_z - a.polygon.ave_z);\n\n sortFace.forEach(item => {\n const { polygon, normal } = item.polygon;\n\n const p1 = vertices[polygon[0]];\n const p2 = vertices[polygon[1]];\n const p3 = vertices[polygon[2]];\n const p4 = vertices[polygon[3]];\n\n const v1 = {\n x: x + p1[0],\n y: y + p1[1],\n z: z + p1[2]\n };\n const v2 = {\n x: x + p2[0],\n y: y + p2[1],\n z: z + p2[2]\n };\n const v3 = {\n x: x + p3[0],\n y: y + p3[1],\n z: z + p3[2]\n };\n const v4 = {\n x: x + p4[0],\n y: y + p4[1],\n z: z + p4[2]\n };\n context.beginPath();\n context.moveTo(v1.x, v1.y, v1.z);\n context.lineTo(v2.x, v2.y, v2.z);\n context.lineTo(v3.x, v3.y, v3.z);\n context.lineTo(v4.x, v4.y, v4.z);\n context.closePath();\n if (fillCb) {\n fillCb(context, null, null);\n } else {\n context.fillStyle = light ? light.computeColor(normal, rgbArray as any) : fillColor;\n context.fill();\n }\n });\n }\n\n draw(rect: IRect3d, renderService: IRenderService, drawContext: IDrawContext) {\n const rectAttribute = getTheme(rect).rect;\n this._draw(rect, rectAttribute, false, drawContext);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/rect3d-render.ts"],"names":[],"mappings":"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","file":"rect3d-render.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IDirectionLight,\n IFace3d,\n IMarkAttribute,\n IPolygonItem,\n IRect3d,\n IThemeAttribute,\n IGraphicRender,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { BaseRender } from './base-render';\nimport { RECT3D_NUMBER_TYPE } from '../../../graphic/constants';\nimport { ColorStore, ColorType } from '../../../color-string';\n@injectable()\nexport class DefaultCanvasRect3dRender extends BaseRender<IRect3d> implements IGraphicRender {\n type = 'rect3d';\n numberType: number = RECT3D_NUMBER_TYPE;\n declare z: number;\n\n drawShape(\n rect: IRect3d,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const rectAttribute = graphicService.themeService.getCurrentTheme().rectAttribute;\n const rectAttribute = getTheme(rect, params?.theme).rect;\n const {\n fill = rectAttribute.fill,\n stroke = rectAttribute.stroke,\n x1,\n y1,\n x: originX,\n y: originY,\n opacity = rectAttribute.opacity,\n fillOpacity = rectAttribute.fillOpacity,\n lineWidth = rectAttribute.lineWidth,\n strokeOpacity = rectAttribute.strokeOpacity,\n visible = rectAttribute.visible\n } = rect.attribute;\n let { width, height } = rect.attribute;\n\n width = (width ?? x1 - originX) || 0;\n height = (height ?? y1 - originY) || 0;\n\n const z = this.z ?? 0;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(rect.valid && visible)) {\n return;\n }\n\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb)) {\n return;\n }\n\n const { light, camera } = drawContext.stage || {};\n const face3d = rect.findFace();\n\n if (fill !== false) {\n context.setCommonStyle(rect, rect.attribute, x, y, rectAttribute);\n let fc = fill;\n if (typeof fc !== 'string') {\n fc = 'black';\n }\n this.fill(x, y, z, face3d, fc, context, light, fillCb);\n }\n if (stroke !== false) {\n context.setStrokeStyle(rect, rect.attribute, x, y, rectAttribute);\n this.stroke(x, y, z, face3d, context);\n }\n }\n\n stroke(x: number, y: number, z: number, face3d: IFace3d, context: IContext2d) {\n const vertices = face3d.vertices;\n face3d.edges.forEach(edge => {\n const p1 = vertices[edge[0]];\n const v1 = {\n x: x + p1[0],\n y: y + p1[1],\n z: z + p1[2]\n };\n const p2 = vertices[edge[1]];\n const v2 = {\n x: x + p2[0],\n y: y + p2[1],\n z: z + p2[2]\n };\n context.beginPath();\n context.moveTo(v1.x, v1.y, v1.z);\n context.lineTo(v2.x, v2.y, v2.z);\n context.stroke();\n });\n }\n fill(\n x: number,\n y: number,\n z: number,\n face3d: IFace3d,\n fillColor: string,\n context: IContext2d,\n light: IDirectionLight,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n const rgbArray = ColorStore.Get(fillColor as string, ColorType.Color255);\n // 上下左右前后\n // 0,1,2,3,4,5\n const vertices = face3d.vertices;\n // 计算每个顶点的view\n const viewdVerticesZ = vertices.map(v => {\n return context.view(v[0], v[1], v[2])[2];\n });\n // 排序\n const sortFace: { faceIdx: number; polygon: IPolygonItem }[] = [];\n face3d.polygons.forEach((p, i) => {\n sortFace.push({\n faceIdx: i,\n polygon: p\n });\n // 设置ave_z进行排序\n const { polygon, normal } = p;\n\n const z1 = viewdVerticesZ[polygon[0]];\n const z2 = viewdVerticesZ[polygon[1]];\n const z3 = viewdVerticesZ[polygon[2]];\n const z4 = viewdVerticesZ[polygon[3]];\n\n p.ave_z = z1 + z2 + z3 + z4;\n });\n sortFace.sort((a, b) => b.polygon.ave_z - a.polygon.ave_z);\n\n sortFace.forEach(item => {\n const { polygon, normal } = item.polygon;\n\n const p1 = vertices[polygon[0]];\n const p2 = vertices[polygon[1]];\n const p3 = vertices[polygon[2]];\n const p4 = vertices[polygon[3]];\n\n const v1 = {\n x: x + p1[0],\n y: y + p1[1],\n z: z + p1[2]\n };\n const v2 = {\n x: x + p2[0],\n y: y + p2[1],\n z: z + p2[2]\n };\n const v3 = {\n x: x + p3[0],\n y: y + p3[1],\n z: z + p3[2]\n };\n const v4 = {\n x: x + p4[0],\n y: y + p4[1],\n z: z + p4[2]\n };\n context.beginPath();\n context.moveTo(v1.x, v1.y, v1.z);\n context.lineTo(v2.x, v2.y, v2.z);\n context.lineTo(v3.x, v3.y, v3.z);\n context.lineTo(v4.x, v4.y, v4.z);\n context.closePath();\n if (fillCb) {\n fillCb(context, null, null);\n } else {\n context.fillStyle = light ? light.computeColor(normal, rgbArray as any) : fillColor;\n context.fill();\n }\n });\n }\n\n draw(rect: IRect3d, renderService: IRenderService, drawContext: IDrawContext) {\n const rectAttribute = getTheme(rect).rect;\n this._draw(rect, rectAttribute, false, drawContext);\n }\n}\n"]}
@@ -15,8 +15,10 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const inversify_lite_1 = require("../../../common/inversify-lite"), rect_1 = require("../../../common/shape/rect"), theme_1 = require("../../../graphic/theme"), constants_1 = require("../../../graphic/constants"), utils_1 = require("./utils"), base_render_1 = require("./base-render"), text_contribution_render_1 = require("./contributions/text-contribution-render");
16
16
 
17
17
  let DefaultCanvasRichTextRender = class extends base_render_1.BaseRender {
18
+ type;
19
+ numberType=constants_1.RICHTEXT_NUMBER_TYPE;
18
20
  constructor() {
19
- super(), this.numberType = constants_1.RICHTEXT_NUMBER_TYPE, this.builtinContributions = [ text_contribution_render_1.defaultTextBackgroundRenderContribution ],
21
+ super(), this.builtinContributions = [ text_contribution_render_1.defaultTextBackgroundRenderContribution ],
20
22
  this.init();
21
23
  }
22
24
  drawShape(richtext, context, x, y, drawContext) {
@@ -29,7 +31,6 @@ let DefaultCanvasRichTextRender = class extends base_render_1.BaseRender {
29
31
  richtext.getFrameCache().draw(context, this.drawIcon), this.afterRenderStep(richtext, context, x, y, fVisible, sVisible, fVisible, sVisible, richtextAttribute, drawContext);
30
32
  }
31
33
  drawIcon(icon, context, x, y, baseline) {
32
- var _a;
33
34
  const richtextIconAttribute = (0, theme_1.getTheme)(icon).richtextIcon, {width: width = richtextIconAttribute.width, height: height = richtextIconAttribute.height, opacity: opacity = richtextIconAttribute.opacity, image: url, backgroundFill: backgroundFill = richtextIconAttribute.backgroundFill, backgroundFillOpacity: backgroundFillOpacity = richtextIconAttribute.backgroundFillOpacity, backgroundStroke: backgroundStroke = richtextIconAttribute.backgroundStroke, backgroundStrokeOpacity: backgroundStrokeOpacity = richtextIconAttribute.backgroundStrokeOpacity, backgroundRadius: backgroundRadius = richtextIconAttribute.backgroundRadius, margin: margin} = icon.attribute, {backgroundWidth: backgroundWidth = width, backgroundHeight: backgroundHeight = height} = icon.attribute;
34
35
  if (margin && (x += icon._marginArray[3], y += icon._marginArray[0]), icon._hovered) {
35
36
  const expandX = (backgroundWidth - width) / 2, expandY = (backgroundHeight - height) / 2;
@@ -39,7 +40,7 @@ let DefaultCanvasRichTextRender = class extends base_render_1.BaseRender {
39
40
  context.fill()), backgroundStroke && (context.globalAlpha = backgroundStrokeOpacity,
40
41
  context.strokeStyle = backgroundStroke, context.stroke());
41
42
  }
42
- const res = url && (null === (_a = null == icon ? void 0 : icon.resources) || void 0 === _a ? void 0 : _a.get(url));
43
+ const res = url && icon?.resources?.get(url);
43
44
  res && "success" === res.state && (context.globalAlpha = opacity, context.drawImage(res.data, x, y, width, height));
44
45
  }
45
46
  draw(richtext, renderService, drawContext) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/richtext-render.ts"],"names":[],"mappings":"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","file":"richtext-render.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { getTheme } from '../../../graphic/theme';\nimport { RICHTEXT_NUMBER_TYPE } from '../../../graphic/constants';\nimport type {\n IContext2d,\n IRichText,\n IRichTextIcon,\n IDrawContext,\n IRenderService,\n IGraphicRender\n} from '../../../interface';\nimport { fillVisible } from './utils';\nimport { BaseRender } from './base-render';\nimport { defaultTextBackgroundRenderContribution } from './contributions/text-contribution-render';\n\n@injectable()\nexport class DefaultCanvasRichTextRender extends BaseRender<IRichText> implements IGraphicRender {\n type: 'richtext';\n numberType: number = RICHTEXT_NUMBER_TYPE;\n\n constructor() {\n super();\n this.builtinContributions = [defaultTextBackgroundRenderContribution as any];\n this.init();\n }\n\n drawShape(richtext: IRichText, context: IContext2d, x: number, y: number, drawContext: IDrawContext) {\n const richtextAttribute = getTheme(richtext).richtext;\n const {\n strokeOpacity = richtextAttribute.strokeOpacity,\n opacity = richtextAttribute.opacity,\n fillOpacity = richtextAttribute.fillOpacity,\n visible = richtextAttribute.visible\n } = richtext.attribute;\n\n if (!(richtext.valid && visible)) {\n return;\n }\n\n const fVisible = fillVisible(opacity, fillOpacity, true);\n const sVisible = fillVisible(opacity, strokeOpacity, true);\n if (!fVisible) {\n return;\n }\n\n context.translate(x, y);\n this.beforeRenderStep(\n richtext,\n context,\n x,\n y,\n fVisible,\n sVisible,\n fVisible,\n sVisible,\n richtextAttribute,\n drawContext\n );\n const frame = richtext.getFrameCache();\n frame.draw(context, this.drawIcon);\n\n this.afterRenderStep(\n richtext,\n context,\n x,\n y,\n fVisible,\n sVisible,\n fVisible,\n sVisible,\n richtextAttribute,\n drawContext\n );\n }\n\n drawIcon(icon: IRichTextIcon, context: IContext2d, x: number, y: number, baseline: number) {\n const richtextIconAttribute = getTheme(icon).richtextIcon;\n\n const {\n width = richtextIconAttribute.width,\n height = richtextIconAttribute.height,\n opacity = richtextIconAttribute.opacity,\n image: url,\n backgroundFill = richtextIconAttribute.backgroundFill,\n // backgroundFillColor = richtextIconAttribute.backgroundFillColor,\n backgroundFillOpacity = richtextIconAttribute.backgroundFillOpacity,\n backgroundStroke = richtextIconAttribute.backgroundStroke,\n // backgroundStrokeColor = richtextIconAttribute.backgroundStrokeColor,\n backgroundStrokeOpacity = richtextIconAttribute.backgroundStrokeOpacity,\n backgroundRadius = richtextIconAttribute.backgroundRadius,\n margin\n } = icon.attribute;\n\n const { backgroundWidth = width, backgroundHeight = height } = icon.attribute;\n\n if (margin) {\n x += icon._marginArray[3];\n y += icon._marginArray[0];\n }\n\n // y -= height / 2 - baseline;\n\n // 绘制background\n if (icon._hovered) {\n const expandX = (backgroundWidth - width) / 2;\n const expandY = (backgroundHeight - height) / 2;\n\n if (backgroundRadius === 0) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x - expandX, y - expandY, backgroundWidth, backgroundHeight);\n } else {\n context.beginPath();\n createRectPath(context, x - expandX, y - expandY, backgroundWidth, backgroundHeight, backgroundRadius);\n }\n if (backgroundFill) {\n // context.setCommonStyle(rect, rect.attribute, x, y, rectAttribute);\n context.globalAlpha = backgroundFillOpacity;\n context.fillStyle = backgroundFill as string;\n context.fill();\n }\n if (backgroundStroke) {\n // context.setStrokeStyle(rect, rect.attribute, x, y, rectAttribute);\n context.globalAlpha = backgroundStrokeOpacity;\n context.strokeStyle = backgroundStroke as string;\n context.stroke();\n }\n }\n\n // 绘制图标\n const res = url && icon?.resources?.get(url);\n if (!res || res.state !== 'success') {\n return;\n }\n // context.setCommonStyle(icon, icon.attribute, x, y, iconAttribute);\n context.globalAlpha = opacity;\n context.drawImage(res.data, x, y, width, height);\n }\n\n draw(richtext: IRichText, renderService: IRenderService, drawContext: IDrawContext) {\n const richtextAttribute = getTheme(richtext).richtext;\n this._draw(richtext, richtextAttribute, false, drawContext);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/richtext-render.ts"],"names":[],"mappings":"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","file":"richtext-render.js","sourcesContent":["import { injectable } from '../../../common/inversify-lite';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { getTheme } from '../../../graphic/theme';\nimport { RICHTEXT_NUMBER_TYPE } from '../../../graphic/constants';\nimport type {\n IContext2d,\n IRichText,\n IRichTextIcon,\n IDrawContext,\n IRenderService,\n IGraphicRender\n} from '../../../interface';\nimport { fillVisible } from './utils';\nimport { BaseRender } from './base-render';\nimport { defaultTextBackgroundRenderContribution } from './contributions/text-contribution-render';\n\n@injectable()\nexport class DefaultCanvasRichTextRender extends BaseRender<IRichText> implements IGraphicRender {\n type: 'richtext';\n numberType: number = RICHTEXT_NUMBER_TYPE;\n\n constructor() {\n super();\n this.builtinContributions = [defaultTextBackgroundRenderContribution as any];\n this.init();\n }\n\n drawShape(richtext: IRichText, context: IContext2d, x: number, y: number, drawContext: IDrawContext) {\n const richtextAttribute = getTheme(richtext).richtext;\n const {\n strokeOpacity = richtextAttribute.strokeOpacity,\n opacity = richtextAttribute.opacity,\n fillOpacity = richtextAttribute.fillOpacity,\n visible = richtextAttribute.visible\n } = richtext.attribute;\n\n if (!(richtext.valid && visible)) {\n return;\n }\n\n const fVisible = fillVisible(opacity, fillOpacity, true);\n const sVisible = fillVisible(opacity, strokeOpacity, true);\n if (!fVisible) {\n return;\n }\n\n context.translate(x, y);\n this.beforeRenderStep(\n richtext,\n context,\n x,\n y,\n fVisible,\n sVisible,\n fVisible,\n sVisible,\n richtextAttribute,\n drawContext\n );\n const frame = richtext.getFrameCache();\n frame.draw(context, this.drawIcon);\n\n this.afterRenderStep(\n richtext,\n context,\n x,\n y,\n fVisible,\n sVisible,\n fVisible,\n sVisible,\n richtextAttribute,\n drawContext\n );\n }\n\n drawIcon(icon: IRichTextIcon, context: IContext2d, x: number, y: number, baseline: number) {\n const richtextIconAttribute = getTheme(icon).richtextIcon;\n\n const {\n width = richtextIconAttribute.width,\n height = richtextIconAttribute.height,\n opacity = richtextIconAttribute.opacity,\n image: url,\n backgroundFill = richtextIconAttribute.backgroundFill,\n // backgroundFillColor = richtextIconAttribute.backgroundFillColor,\n backgroundFillOpacity = richtextIconAttribute.backgroundFillOpacity,\n backgroundStroke = richtextIconAttribute.backgroundStroke,\n // backgroundStrokeColor = richtextIconAttribute.backgroundStrokeColor,\n backgroundStrokeOpacity = richtextIconAttribute.backgroundStrokeOpacity,\n backgroundRadius = richtextIconAttribute.backgroundRadius,\n margin\n } = icon.attribute;\n\n const { backgroundWidth = width, backgroundHeight = height } = icon.attribute;\n\n if (margin) {\n x += icon._marginArray[3];\n y += icon._marginArray[0];\n }\n\n // y -= height / 2 - baseline;\n\n // 绘制background\n if (icon._hovered) {\n const expandX = (backgroundWidth - width) / 2;\n const expandY = (backgroundHeight - height) / 2;\n\n if (backgroundRadius === 0) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x - expandX, y - expandY, backgroundWidth, backgroundHeight);\n } else {\n context.beginPath();\n createRectPath(context, x - expandX, y - expandY, backgroundWidth, backgroundHeight, backgroundRadius);\n }\n if (backgroundFill) {\n // context.setCommonStyle(rect, rect.attribute, x, y, rectAttribute);\n context.globalAlpha = backgroundFillOpacity;\n context.fillStyle = backgroundFill as string;\n context.fill();\n }\n if (backgroundStroke) {\n // context.setStrokeStyle(rect, rect.attribute, x, y, rectAttribute);\n context.globalAlpha = backgroundStrokeOpacity;\n context.strokeStyle = backgroundStroke as string;\n context.stroke();\n }\n }\n\n // 绘制图标\n const res = url && icon?.resources?.get(url);\n if (!res || res.state !== 'success') {\n return;\n }\n // context.setCommonStyle(icon, icon.attribute, x, y, iconAttribute);\n context.globalAlpha = opacity;\n context.drawImage(res.data, x, y, width, height);\n }\n\n draw(richtext: IRichText, renderService: IRenderService, drawContext: IDrawContext) {\n const richtextAttribute = getTheme(richtext).richtext;\n this._draw(richtext, richtextAttribute, false, drawContext);\n }\n}\n"]}
@@ -19,27 +19,26 @@ Object.defineProperty(exports, "__esModule", {
19
19
  const inversify_lite_1 = require("../../../common/inversify-lite"), contribution_provider_1 = require("../../../common/contribution-provider"), theme_1 = require("../../../graphic/theme"), constants_1 = require("../../../graphic/constants"), base_render_1 = require("./base-render"), constants_2 = require("./contributions/constants"), vutils_1 = require("@visactor/vutils"), contributions_1 = require("./contributions");
20
20
 
21
21
  let DefaultCanvasSymbolRender = class extends base_render_1.BaseRender {
22
+ symbolRenderContribitions;
23
+ type;
24
+ numberType=constants_1.SYMBOL_NUMBER_TYPE;
22
25
  constructor(symbolRenderContribitions) {
23
- super(), this.symbolRenderContribitions = symbolRenderContribitions, this.numberType = constants_1.SYMBOL_NUMBER_TYPE,
24
- this.builtinContributions = [ contributions_1.defaultSymbolRenderContribution, contributions_1.defaultSymbolBackgroundRenderContribution, contributions_1.defaultSymbolTextureRenderContribution ],
26
+ super(), this.symbolRenderContribitions = symbolRenderContribitions, this.builtinContributions = [ contributions_1.defaultSymbolRenderContribution, contributions_1.defaultSymbolBackgroundRenderContribution, contributions_1.defaultSymbolTextureRenderContribution ],
25
27
  this.init(symbolRenderContribitions);
26
28
  }
27
29
  drawShape(symbol, context, x, y, drawContext, params, fillCb, strokeCb) {
28
- var _a;
29
- const symbolAttribute = (0, theme_1.getTheme)(symbol, null == params ? void 0 : params.theme).symbol, {size: size = symbolAttribute.size, x: originX = symbolAttribute.x, y: originY = symbolAttribute.y, scaleX: scaleX = symbolAttribute.scaleX, scaleY: scaleY = symbolAttribute.scaleY} = symbol.attribute, data = this.valid(symbol, symbolAttribute, fillCb, strokeCb);
30
+ const symbolAttribute = (0, theme_1.getTheme)(symbol, params?.theme).symbol, {size: size = symbolAttribute.size, x: originX = symbolAttribute.x, y: originY = symbolAttribute.y, scaleX: scaleX = symbolAttribute.scaleX, scaleY: scaleY = symbolAttribute.scaleY} = symbol.attribute, data = this.valid(symbol, symbolAttribute, fillCb, strokeCb);
30
31
  if (!data) return;
31
32
  const {fVisible: fVisible, sVisible: sVisible, doFill: doFill, doStroke: doStroke} = data, parsedPath = symbol.getParsedPath();
32
33
  if (!parsedPath) return;
33
- const {keepDirIn3d: keepDirIn3d = symbolAttribute.keepDirIn3d} = symbol.attribute, z = null !== (_a = this.z) && void 0 !== _a ? _a : 0;
34
+ const {keepDirIn3d: keepDirIn3d = symbolAttribute.keepDirIn3d} = symbol.attribute, z = this.z ?? 0;
34
35
  if (context.beginPath(), keepDirIn3d && context.camera && context.project) {
35
36
  const p = context.project(x, y, z), camera = context.camera;
36
37
  context.camera = null, !1 === parsedPath.draw(context, (0, vutils_1.isArray)(size) ? [ size[0] * scaleX, size[1] * scaleY ] : size * scaleX, p.x, p.y, void 0, ((p, a) => {
37
- var _a, _b, _c;
38
38
  if (symbol._parsedPath.svgCache) {
39
39
  const obj = Object.assign({}, a);
40
- obj.fill = null !== (_a = a.fill) && void 0 !== _a ? _a : symbol.attribute.fill,
41
- obj.opacity = null !== (_b = a.fill) && void 0 !== _b ? _b : symbol.attribute.opacity,
42
- obj.fillOpacity = symbol.attribute.fillOpacity, obj.stroke = null !== (_c = a.stroke) && void 0 !== _c ? _c : symbol.attribute.stroke,
40
+ obj.fill = a.fill ?? symbol.attribute.fill, obj.opacity = a.fill ?? symbol.attribute.opacity,
41
+ obj.fillOpacity = symbol.attribute.fillOpacity, obj.stroke = a.stroke ?? symbol.attribute.stroke,
43
42
  a = obj;
44
43
  }
45
44
  a.fill && (fillCb ? fillCb(context, symbol.attribute, symbolAttribute) : (context.setCommonStyle(symbol, a, originX - x, originY - y, symbolAttribute),
@@ -47,12 +46,10 @@ let DefaultCanvasSymbolRender = class extends base_render_1.BaseRender {
47
46
  context.stroke()));
48
47
  })) && context.closePath(), context.camera = camera;
49
48
  } else !1 === parsedPath.draw(context, size, x, y, z, ((p, a) => {
50
- var _a, _b, _c;
51
49
  if (symbol._parsedPath.svgCache) {
52
50
  const obj = Object.assign({}, a);
53
- obj.fill = null !== (_a = a.fill) && void 0 !== _a ? _a : symbol.attribute.fill,
54
- obj.opacity = null !== (_b = a.opacity) && void 0 !== _b ? _b : symbol.attribute.opacity,
55
- obj.fillOpacity = symbol.attribute.fillOpacity, obj.stroke = null !== (_c = a.stroke) && void 0 !== _c ? _c : symbol.attribute.stroke,
51
+ obj.fill = a.fill ?? symbol.attribute.fill, obj.opacity = a.opacity ?? symbol.attribute.opacity,
52
+ obj.fillOpacity = symbol.attribute.fillOpacity, obj.stroke = a.stroke ?? symbol.attribute.stroke,
56
53
  a = obj;
57
54
  }
58
55
  a.fill && (fillCb ? fillCb(context, symbol.attribute, symbolAttribute) : (context.setCommonStyle(symbol, a, originX - x, originY - y, symbolAttribute),
@@ -66,7 +63,7 @@ let DefaultCanvasSymbolRender = class extends base_render_1.BaseRender {
66
63
  context.stroke())), this.afterRenderStep(symbol, context, x, y, doFill, doStroke, fVisible, sVisible, symbolAttribute, drawContext, fillCb, strokeCb);
67
64
  }
68
65
  draw(symbol, renderService, drawContext, params) {
69
- const symbolAttribute = (0, theme_1.getTheme)(symbol, null == params ? void 0 : params.theme).symbol;
66
+ const symbolAttribute = (0, theme_1.getTheme)(symbol, params?.theme).symbol;
70
67
  this._draw(symbol, symbolAttribute, !1, drawContext, params);
71
68
  }
72
69
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/symbol-render.ts"],"names":[],"mappings":"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","file":"symbol-render.js","sourcesContent":["import { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { inject, injectable, named } from '../../../common/inversify-lite';\n// eslint-disable-next-line\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { getTheme } from '../../../graphic/theme';\nimport { SYMBOL_NUMBER_TYPE } from '../../../graphic/constants';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n ISymbol,\n IThemeAttribute,\n ISymbolRenderContribution,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider\n} from '../../../interface';\nimport type {} from '../../render-service';\nimport { BaseRender } from './base-render';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { SymbolRenderContribution } from './contributions/constants';\nimport { drawPathProxy, fillVisible, runFill, runStroke, strokeVisible } from './utils';\nimport { isArray } from '@visactor/vutils';\nimport {\n defaultSymbolBackgroundRenderContribution,\n defaultSymbolRenderContribution,\n defaultSymbolTextureRenderContribution\n} from './contributions';\n\n@injectable()\nexport class DefaultCanvasSymbolRender extends BaseRender<ISymbol> implements IGraphicRender {\n type: 'symbol';\n numberType: number = SYMBOL_NUMBER_TYPE;\n\n constructor(\n @inject(ContributionProvider)\n @named(SymbolRenderContribution)\n protected readonly symbolRenderContribitions: IContributionProvider<ISymbolRenderContribution>\n ) {\n super();\n this.builtinContributions = [\n defaultSymbolRenderContribution,\n defaultSymbolBackgroundRenderContribution,\n defaultSymbolTextureRenderContribution\n ];\n this.init(symbolRenderContribitions);\n }\n\n drawShape(\n symbol: ISymbol,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const symbolAttribute = graphicService.themeService.getCurrentTheme().symbolAttribute;\n const symbolAttribute = getTheme(symbol, params?.theme).symbol;\n\n const {\n size = symbolAttribute.size,\n x: originX = symbolAttribute.x,\n y: originY = symbolAttribute.y,\n scaleX = symbolAttribute.scaleX,\n scaleY = symbolAttribute.scaleY\n } = symbol.attribute;\n\n const data = this.valid(symbol, symbolAttribute, fillCb, strokeCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n const parsedPath = symbol.getParsedPath();\n // todo: 考虑使用path\n if (!parsedPath) {\n return;\n }\n\n const { keepDirIn3d = symbolAttribute.keepDirIn3d } = symbol.attribute;\n const z = this.z ?? 0;\n context.beginPath();\n if (keepDirIn3d && context.camera && context.project) {\n const p = context.project(x, y, z);\n const camera = context.camera;\n context.camera = null;\n if (\n parsedPath.draw(\n context,\n isArray(size) ? [size[0] * scaleX, size[1] * scaleY] : size * scaleX,\n p.x,\n p.y,\n undefined,\n (p, a) => {\n // 如果是svg的话,合并一下fill和stroke\n if (symbol._parsedPath.svgCache) {\n const obj = Object.assign({}, a);\n obj.fill = a.fill ?? symbol.attribute.fill;\n obj.opacity = a.fill ?? symbol.attribute.opacity;\n obj.fillOpacity = symbol.attribute.fillOpacity;\n obj.stroke = a.stroke ?? symbol.attribute.stroke;\n a = obj;\n }\n if (a.fill) {\n if (fillCb) {\n fillCb(context, symbol.attribute, symbolAttribute);\n } else {\n context.setCommonStyle(symbol, a, originX - x, originY - y, symbolAttribute);\n context.fill();\n }\n }\n if (a.stroke) {\n if (strokeCb) {\n strokeCb(context, symbol.attribute, symbolAttribute);\n } else {\n context.setStrokeStyle(symbol, a, (originX - x) / scaleX, (originY - y) / scaleY, symbolAttribute);\n context.stroke();\n }\n }\n }\n ) === false\n ) {\n context.closePath();\n }\n context.camera = camera;\n } else {\n if (\n parsedPath.draw(context, size, x, y, z, (p, a) => {\n // 如果是svg的话,合并一下fill和stroke\n if (symbol._parsedPath.svgCache) {\n const obj = Object.assign({}, a);\n obj.fill = a.fill ?? symbol.attribute.fill;\n obj.opacity = a.opacity ?? symbol.attribute.opacity;\n obj.fillOpacity = symbol.attribute.fillOpacity;\n obj.stroke = a.stroke ?? symbol.attribute.stroke;\n a = obj;\n }\n if (a.fill) {\n if (fillCb) {\n fillCb(context, symbol.attribute, symbolAttribute);\n } else {\n context.setCommonStyle(symbol, a, originX - x, originY - y, symbolAttribute);\n context.fill();\n }\n }\n if (a.stroke) {\n if (strokeCb) {\n strokeCb(context, symbol.attribute, symbolAttribute);\n } else {\n context.setStrokeStyle(symbol, a, (originX - x) / scaleX, (originY - y) / scaleY, symbolAttribute);\n context.stroke();\n }\n }\n }) === false\n ) {\n context.closePath();\n }\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(symbol, symbol.attribute, symbolAttribute);\n\n this.beforeRenderStep(\n symbol,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n symbolAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n\n // if (fill !== false) {\n // context.setCommonStyle(symbol.attribute, symbolAttribute);\n // context.fill();\n // }\n // if (stroke !== false) {\n // context.setStrokeStyle(symbol.attribute, symbolAttribute);\n // context.stroke();\n // }\n\n // svg就不用fill和stroke了\n if (doFill && !parsedPath.isSvg) {\n if (fillCb) {\n fillCb(context, symbol.attribute, symbolAttribute);\n } else if (fVisible) {\n context.setCommonStyle(symbol, symbol.attribute, originX - x, originY - y, symbolAttribute);\n context.fill();\n }\n }\n if (doStroke && !parsedPath.isSvg) {\n if (strokeCb) {\n strokeCb(context, symbol.attribute, symbolAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(\n symbol,\n symbol.attribute,\n (originX - x) / scaleX,\n (originY - y) / scaleY,\n symbolAttribute\n );\n context.stroke();\n }\n }\n\n this.afterRenderStep(\n symbol,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n symbolAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n\n draw(symbol: ISymbol, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const symbolAttribute = getTheme(symbol, params?.theme).symbol;\n this._draw(symbol, symbolAttribute, false, drawContext, params);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/symbol-render.ts"],"names":[],"mappings":"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","file":"symbol-render.js","sourcesContent":["import { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { inject, injectable, named } from '../../../common/inversify-lite';\n// eslint-disable-next-line\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { getTheme } from '../../../graphic/theme';\nimport { SYMBOL_NUMBER_TYPE } from '../../../graphic/constants';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n ISymbol,\n IThemeAttribute,\n ISymbolRenderContribution,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider\n} from '../../../interface';\nimport type {} from '../../render-service';\nimport { BaseRender } from './base-render';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { SymbolRenderContribution } from './contributions/constants';\nimport { drawPathProxy, fillVisible, runFill, runStroke, strokeVisible } from './utils';\nimport { isArray } from '@visactor/vutils';\nimport {\n defaultSymbolBackgroundRenderContribution,\n defaultSymbolRenderContribution,\n defaultSymbolTextureRenderContribution\n} from './contributions';\n\n@injectable()\nexport class DefaultCanvasSymbolRender extends BaseRender<ISymbol> implements IGraphicRender {\n type: 'symbol';\n numberType: number = SYMBOL_NUMBER_TYPE;\n\n constructor(\n @inject(ContributionProvider)\n @named(SymbolRenderContribution)\n protected readonly symbolRenderContribitions: IContributionProvider<ISymbolRenderContribution>\n ) {\n super();\n this.builtinContributions = [\n defaultSymbolRenderContribution,\n defaultSymbolBackgroundRenderContribution,\n defaultSymbolTextureRenderContribution\n ];\n this.init(symbolRenderContribitions);\n }\n\n drawShape(\n symbol: ISymbol,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const symbolAttribute = graphicService.themeService.getCurrentTheme().symbolAttribute;\n const symbolAttribute = getTheme(symbol, params?.theme).symbol;\n\n const {\n size = symbolAttribute.size,\n x: originX = symbolAttribute.x,\n y: originY = symbolAttribute.y,\n scaleX = symbolAttribute.scaleX,\n scaleY = symbolAttribute.scaleY\n } = symbol.attribute;\n\n const data = this.valid(symbol, symbolAttribute, fillCb, strokeCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n const parsedPath = symbol.getParsedPath();\n // todo: 考虑使用path\n if (!parsedPath) {\n return;\n }\n\n const { keepDirIn3d = symbolAttribute.keepDirIn3d } = symbol.attribute;\n const z = this.z ?? 0;\n context.beginPath();\n if (keepDirIn3d && context.camera && context.project) {\n const p = context.project(x, y, z);\n const camera = context.camera;\n context.camera = null;\n if (\n parsedPath.draw(\n context,\n isArray(size) ? [size[0] * scaleX, size[1] * scaleY] : size * scaleX,\n p.x,\n p.y,\n undefined,\n (p, a) => {\n // 如果是svg的话,合并一下fill和stroke\n if (symbol._parsedPath.svgCache) {\n const obj = Object.assign({}, a);\n obj.fill = a.fill ?? symbol.attribute.fill;\n obj.opacity = a.fill ?? symbol.attribute.opacity;\n obj.fillOpacity = symbol.attribute.fillOpacity;\n obj.stroke = a.stroke ?? symbol.attribute.stroke;\n a = obj;\n }\n if (a.fill) {\n if (fillCb) {\n fillCb(context, symbol.attribute, symbolAttribute);\n } else {\n context.setCommonStyle(symbol, a, originX - x, originY - y, symbolAttribute);\n context.fill();\n }\n }\n if (a.stroke) {\n if (strokeCb) {\n strokeCb(context, symbol.attribute, symbolAttribute);\n } else {\n context.setStrokeStyle(symbol, a, (originX - x) / scaleX, (originY - y) / scaleY, symbolAttribute);\n context.stroke();\n }\n }\n }\n ) === false\n ) {\n context.closePath();\n }\n context.camera = camera;\n } else {\n if (\n parsedPath.draw(context, size, x, y, z, (p, a) => {\n // 如果是svg的话,合并一下fill和stroke\n if (symbol._parsedPath.svgCache) {\n const obj = Object.assign({}, a);\n obj.fill = a.fill ?? symbol.attribute.fill;\n obj.opacity = a.opacity ?? symbol.attribute.opacity;\n obj.fillOpacity = symbol.attribute.fillOpacity;\n obj.stroke = a.stroke ?? symbol.attribute.stroke;\n a = obj;\n }\n if (a.fill) {\n if (fillCb) {\n fillCb(context, symbol.attribute, symbolAttribute);\n } else {\n context.setCommonStyle(symbol, a, originX - x, originY - y, symbolAttribute);\n context.fill();\n }\n }\n if (a.stroke) {\n if (strokeCb) {\n strokeCb(context, symbol.attribute, symbolAttribute);\n } else {\n context.setStrokeStyle(symbol, a, (originX - x) / scaleX, (originY - y) / scaleY, symbolAttribute);\n context.stroke();\n }\n }\n }) === false\n ) {\n context.closePath();\n }\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(symbol, symbol.attribute, symbolAttribute);\n\n this.beforeRenderStep(\n symbol,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n symbolAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n\n // if (fill !== false) {\n // context.setCommonStyle(symbol.attribute, symbolAttribute);\n // context.fill();\n // }\n // if (stroke !== false) {\n // context.setStrokeStyle(symbol.attribute, symbolAttribute);\n // context.stroke();\n // }\n\n // svg就不用fill和stroke了\n if (doFill && !parsedPath.isSvg) {\n if (fillCb) {\n fillCb(context, symbol.attribute, symbolAttribute);\n } else if (fVisible) {\n context.setCommonStyle(symbol, symbol.attribute, originX - x, originY - y, symbolAttribute);\n context.fill();\n }\n }\n if (doStroke && !parsedPath.isSvg) {\n if (strokeCb) {\n strokeCb(context, symbol.attribute, symbolAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(\n symbol,\n symbol.attribute,\n (originX - x) / scaleX,\n (originY - y) / scaleY,\n symbolAttribute\n );\n context.stroke();\n }\n }\n\n this.afterRenderStep(\n symbol,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n symbolAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n\n draw(symbol: ISymbol, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const symbolAttribute = getTheme(symbol, params?.theme).symbol;\n this._draw(symbol, symbolAttribute, false, drawContext, params);\n }\n}\n"]}