@visactor/vrender 0.12.2 → 0.13.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/cjs/canvas/contributions/browser/conical-gradient.d.ts +2 -2
  2. package/cjs/canvas/contributions/browser/conical-gradient.js +1 -1
  3. package/cjs/canvas/contributions/browser/conical-gradient.js.map +1 -1
  4. package/cjs/canvas/contributions/feishu/context.d.ts +2 -1
  5. package/cjs/canvas/contributions/feishu/context.js +3 -0
  6. package/cjs/canvas/contributions/feishu/context.js.map +1 -1
  7. package/cjs/canvas/contributions/lynx/context.d.ts +1 -0
  8. package/cjs/canvas/contributions/lynx/context.js +3 -0
  9. package/cjs/canvas/contributions/lynx/context.js.map +1 -1
  10. package/cjs/canvas/contributions/modules.d.ts +1 -1
  11. package/cjs/canvas/contributions/modules.js +2 -2
  12. package/cjs/canvas/contributions/modules.js.map +1 -1
  13. package/cjs/canvas/contributions/taro/context.d.ts +2 -1
  14. package/cjs/canvas/contributions/taro/context.js +3 -0
  15. package/cjs/canvas/contributions/taro/context.js.map +1 -1
  16. package/cjs/canvas/contributions/tt/context.d.ts +2 -1
  17. package/cjs/canvas/contributions/tt/context.js +3 -0
  18. package/cjs/canvas/contributions/tt/context.js.map +1 -1
  19. package/cjs/canvas/contributions/wx/canvas.d.ts +48 -0
  20. package/cjs/canvas/contributions/wx/canvas.js +102 -0
  21. package/cjs/canvas/contributions/wx/canvas.js.map +1 -0
  22. package/cjs/canvas/contributions/wx/context.d.ts +7 -0
  23. package/cjs/canvas/contributions/wx/context.js +24 -0
  24. package/cjs/canvas/contributions/wx/context.js.map +1 -0
  25. package/cjs/canvas/contributions/wx/index.d.ts +2 -0
  26. package/cjs/canvas/contributions/wx/index.js +21 -0
  27. package/cjs/canvas/contributions/wx/index.js.map +1 -0
  28. package/cjs/canvas/contributions/wx/modules.d.ts +3 -0
  29. package/cjs/canvas/contributions/wx/modules.js +13 -0
  30. package/cjs/canvas/contributions/wx/modules.js.map +1 -0
  31. package/cjs/common/contribution-provider.js +1 -1
  32. package/cjs/common/contribution-provider.js.map +1 -1
  33. package/cjs/common/render-area.d.ts +1 -1
  34. package/cjs/common/render-area.js +1 -0
  35. package/cjs/common/render-area.js.map +1 -1
  36. package/cjs/core/contributions/env/base-contribution.d.ts +3 -1
  37. package/cjs/core/contributions/env/base-contribution.js +6 -0
  38. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  39. package/cjs/core/contributions/env/feishu-contribution.d.ts +2 -0
  40. package/cjs/core/contributions/env/feishu-contribution.js +8 -2
  41. package/cjs/core/contributions/env/feishu-contribution.js.map +1 -1
  42. package/cjs/core/contributions/env/lynx-contribution.d.ts +2 -0
  43. package/cjs/core/contributions/env/lynx-contribution.js +18 -4
  44. package/cjs/core/contributions/env/lynx-contribution.js.map +1 -1
  45. package/cjs/core/contributions/env/modules.js +2 -1
  46. package/cjs/core/contributions/env/modules.js.map +1 -1
  47. package/cjs/core/contributions/env/node-contribution.d.ts +3 -1
  48. package/cjs/core/contributions/env/node-contribution.js +6 -0
  49. package/cjs/core/contributions/env/node-contribution.js.map +1 -1
  50. package/cjs/core/contributions/env/taro-contribution.d.ts +2 -0
  51. package/cjs/core/contributions/env/taro-contribution.js +8 -2
  52. package/cjs/core/contributions/env/taro-contribution.js.map +1 -1
  53. package/cjs/core/contributions/env/wx-contribution.d.ts +39 -0
  54. package/cjs/core/contributions/env/wx-contribution.js +131 -0
  55. package/cjs/core/contributions/env/wx-contribution.js.map +1 -0
  56. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +1 -1
  57. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  58. package/cjs/core/contributions/window/modules.js +2 -1
  59. package/cjs/core/contributions/window/modules.js.map +1 -1
  60. package/cjs/core/contributions/window/wx-contribution.d.ts +46 -0
  61. package/cjs/core/contributions/window/wx-contribution.js +159 -0
  62. package/cjs/core/contributions/window/wx-contribution.js.map +1 -0
  63. package/cjs/core/global.d.ts +5 -3
  64. package/cjs/core/global.js +19 -6
  65. package/cjs/core/global.js.map +1 -1
  66. package/cjs/core/layer-service.d.ts +4 -2
  67. package/cjs/core/layer-service.js +10 -6
  68. package/cjs/core/layer-service.js.map +1 -1
  69. package/cjs/core/layer.d.ts +3 -6
  70. package/cjs/core/layer.js +6 -6
  71. package/cjs/core/layer.js.map +1 -1
  72. package/cjs/core/stage.d.ts +7 -3
  73. package/cjs/core/stage.js +20 -8
  74. package/cjs/core/stage.js.map +1 -1
  75. package/cjs/graphic/bounds.d.ts +3 -1
  76. package/cjs/graphic/bounds.js +9 -1
  77. package/cjs/graphic/bounds.js.map +1 -1
  78. package/cjs/graphic/graphic.d.ts +2 -0
  79. package/cjs/graphic/graphic.js +11 -0
  80. package/cjs/graphic/graphic.js.map +1 -1
  81. package/cjs/graphic/node-tree.d.ts +2 -1
  82. package/cjs/graphic/node-tree.js +6 -3
  83. package/cjs/graphic/node-tree.js.map +1 -1
  84. package/cjs/graphic/text.js +1 -1
  85. package/cjs/graphic/text.js.map +1 -1
  86. package/cjs/index.d.ts +3 -1
  87. package/cjs/index.js +19 -18
  88. package/cjs/index.js.map +1 -1
  89. package/cjs/interface/contribution.d.ts +15 -37
  90. package/cjs/interface/contribution.js.map +1 -1
  91. package/cjs/interface/core.d.ts +2 -2
  92. package/cjs/interface/core.js.map +1 -1
  93. package/cjs/interface/global.d.ts +6 -1
  94. package/cjs/interface/global.js.map +1 -1
  95. package/cjs/interface/graphic.d.ts +1 -0
  96. package/cjs/interface/graphic.js.map +1 -1
  97. package/cjs/interface/layer.d.ts +7 -0
  98. package/cjs/interface/layer.js.map +1 -1
  99. package/cjs/interface/stage.d.ts +7 -2
  100. package/cjs/interface/stage.js.map +1 -1
  101. package/cjs/plugins/builtin-plugin/poptip-plugin.d.ts +1 -0
  102. package/cjs/plugins/builtin-plugin/poptip-plugin.js +3 -0
  103. package/cjs/plugins/builtin-plugin/poptip-plugin.js.map +1 -0
  104. package/cjs/plugins/constants.d.ts +2 -0
  105. package/cjs/plugins/constants.js +7 -0
  106. package/cjs/plugins/constants.js.map +1 -0
  107. package/cjs/plugins/plugin-modules.js +3 -2
  108. package/cjs/plugins/plugin-modules.js.map +1 -1
  109. package/cjs/plugins/plugin-service.d.ts +3 -3
  110. package/cjs/plugins/plugin-service.js +15 -8
  111. package/cjs/plugins/plugin-service.js.map +1 -1
  112. package/cjs/render/contributions/render/arc-render.d.ts +2 -1
  113. package/cjs/render/contributions/render/arc-render.js +48 -17
  114. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  115. package/cjs/render/contributions/render/area-render.d.ts +1 -1
  116. package/cjs/render/contributions/render/area-render.js +22 -12
  117. package/cjs/render/contributions/render/area-render.js.map +1 -1
  118. package/cjs/render/contributions/render/circle-render.js +4 -4
  119. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  120. package/cjs/render/contributions/render/contributions/arc-contribution-render.d.ts +2 -3
  121. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +2 -4
  122. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  123. package/cjs/render/contributions/render/contributions/area-contribution-render.d.ts +2 -3
  124. package/cjs/render/contributions/render/contributions/area-contribution-render.js +2 -4
  125. package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  126. package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +17 -5
  127. package/cjs/render/contributions/render/contributions/base-contribution-render.js +28 -4
  128. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  129. package/cjs/render/contributions/render/contributions/circle-contribution-render.d.ts +2 -3
  130. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +2 -4
  131. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  132. package/cjs/render/contributions/render/contributions/constants.d.ts +11 -0
  133. package/cjs/render/contributions/render/contributions/constants.js +12 -0
  134. package/cjs/render/contributions/render/contributions/constants.js.map +1 -0
  135. package/cjs/render/contributions/render/contributions/group-contribution-render.d.ts +2 -3
  136. package/cjs/render/contributions/render/contributions/group-contribution-render.js +2 -4
  137. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  138. package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +2 -3
  139. package/cjs/render/contributions/render/contributions/image-contribution-render.js +2 -4
  140. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  141. package/cjs/render/contributions/render/contributions/path-contribution-render.d.ts +0 -1
  142. package/cjs/render/contributions/render/contributions/path-contribution-render.js +1 -3
  143. package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  144. package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +0 -1
  145. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +1 -3
  146. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  147. package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +4 -5
  148. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +4 -6
  149. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  150. package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +2 -3
  151. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +2 -4
  152. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  153. package/cjs/render/contributions/render/contributions/text-contribution-render.d.ts +1 -0
  154. package/cjs/render/contributions/render/contributions/text-contribution-render.js +6 -0
  155. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -0
  156. package/cjs/render/contributions/render/group-render.js +5 -5
  157. package/cjs/render/contributions/render/group-render.js.map +1 -1
  158. package/cjs/render/contributions/render/image-render.js +5 -5
  159. package/cjs/render/contributions/render/image-render.js.map +1 -1
  160. package/cjs/render/contributions/render/module.js +47 -36
  161. package/cjs/render/contributions/render/module.js.map +1 -1
  162. package/cjs/render/contributions/render/path-render.js +4 -4
  163. package/cjs/render/contributions/render/path-render.js.map +1 -1
  164. package/cjs/render/contributions/render/polygon-render.js +4 -4
  165. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  166. package/cjs/render/contributions/render/rect-render.js +4 -4
  167. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  168. package/cjs/render/contributions/render/symbol-render.js +4 -4
  169. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  170. package/cjs/render/contributions/render/text-render.d.ts +5 -1
  171. package/cjs/render/contributions/render/text-render.js +26 -6
  172. package/cjs/render/contributions/render/text-render.js.map +1 -1
  173. package/cjs/render/index.d.ts +1 -0
  174. package/cjs/render/index.js +2 -1
  175. package/cjs/render/index.js.map +1 -1
  176. package/dist/index.js +3196 -2447
  177. package/dist/index.min.js +1 -1
  178. package/es/canvas/contributions/browser/conical-gradient.d.ts +2 -2
  179. package/es/canvas/contributions/browser/conical-gradient.js +1 -1
  180. package/es/canvas/contributions/browser/conical-gradient.js.map +1 -1
  181. package/es/canvas/contributions/feishu/context.d.ts +2 -1
  182. package/es/canvas/contributions/feishu/context.js +3 -0
  183. package/es/canvas/contributions/feishu/context.js.map +1 -1
  184. package/es/canvas/contributions/lynx/context.d.ts +1 -0
  185. package/es/canvas/contributions/lynx/context.js +3 -0
  186. package/es/canvas/contributions/lynx/context.js.map +1 -1
  187. package/es/canvas/contributions/modules.d.ts +1 -1
  188. package/es/canvas/contributions/modules.js +3 -1
  189. package/es/canvas/contributions/modules.js.map +1 -1
  190. package/es/canvas/contributions/taro/context.d.ts +2 -1
  191. package/es/canvas/contributions/taro/context.js +3 -0
  192. package/es/canvas/contributions/taro/context.js.map +1 -1
  193. package/es/canvas/contributions/tt/context.d.ts +2 -1
  194. package/es/canvas/contributions/tt/context.js +3 -0
  195. package/es/canvas/contributions/tt/context.js.map +1 -1
  196. package/es/canvas/contributions/wx/canvas.d.ts +48 -0
  197. package/es/canvas/contributions/wx/canvas.js +101 -0
  198. package/es/canvas/contributions/wx/canvas.js.map +1 -0
  199. package/es/canvas/contributions/wx/context.d.ts +7 -0
  200. package/es/canvas/contributions/wx/context.js +21 -0
  201. package/es/canvas/contributions/wx/context.js.map +1 -0
  202. package/es/canvas/contributions/wx/index.d.ts +2 -0
  203. package/es/canvas/contributions/wx/index.js +4 -0
  204. package/es/canvas/contributions/wx/index.js.map +1 -0
  205. package/es/canvas/contributions/wx/modules.d.ts +3 -0
  206. package/es/canvas/contributions/wx/modules.js +13 -0
  207. package/es/canvas/contributions/wx/modules.js.map +1 -0
  208. package/es/common/contribution-provider.js +1 -1
  209. package/es/common/contribution-provider.js.map +1 -1
  210. package/es/common/render-area.d.ts +1 -1
  211. package/es/common/render-area.js +1 -0
  212. package/es/common/render-area.js.map +1 -1
  213. package/es/core/contributions/env/base-contribution.d.ts +3 -1
  214. package/es/core/contributions/env/base-contribution.js +6 -0
  215. package/es/core/contributions/env/base-contribution.js.map +1 -1
  216. package/es/core/contributions/env/feishu-contribution.d.ts +2 -0
  217. package/es/core/contributions/env/feishu-contribution.js +8 -2
  218. package/es/core/contributions/env/feishu-contribution.js.map +1 -1
  219. package/es/core/contributions/env/lynx-contribution.d.ts +2 -0
  220. package/es/core/contributions/env/lynx-contribution.js +18 -4
  221. package/es/core/contributions/env/lynx-contribution.js.map +1 -1
  222. package/es/core/contributions/env/modules.js +3 -0
  223. package/es/core/contributions/env/modules.js.map +1 -1
  224. package/es/core/contributions/env/node-contribution.d.ts +3 -1
  225. package/es/core/contributions/env/node-contribution.js +6 -0
  226. package/es/core/contributions/env/node-contribution.js.map +1 -1
  227. package/es/core/contributions/env/taro-contribution.d.ts +2 -0
  228. package/es/core/contributions/env/taro-contribution.js +8 -2
  229. package/es/core/contributions/env/taro-contribution.js.map +1 -1
  230. package/es/core/contributions/env/wx-contribution.d.ts +39 -0
  231. package/es/core/contributions/env/wx-contribution.js +130 -0
  232. package/es/core/contributions/env/wx-contribution.js.map +1 -0
  233. package/es/core/contributions/layerHandler/canvas2d-contribution.js +1 -1
  234. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  235. package/es/core/contributions/window/modules.js +3 -0
  236. package/es/core/contributions/window/modules.js.map +1 -1
  237. package/es/core/contributions/window/wx-contribution.d.ts +46 -0
  238. package/es/core/contributions/window/wx-contribution.js +161 -0
  239. package/es/core/contributions/window/wx-contribution.js.map +1 -0
  240. package/es/core/global.d.ts +5 -3
  241. package/es/core/global.js +19 -6
  242. package/es/core/global.js.map +1 -1
  243. package/es/core/layer-service.d.ts +4 -2
  244. package/es/core/layer-service.js +10 -6
  245. package/es/core/layer-service.js.map +1 -1
  246. package/es/core/layer.d.ts +3 -6
  247. package/es/core/layer.js +7 -6
  248. package/es/core/layer.js.map +1 -1
  249. package/es/core/stage.d.ts +7 -3
  250. package/es/core/stage.js +22 -9
  251. package/es/core/stage.js.map +1 -1
  252. package/es/graphic/bounds.d.ts +3 -1
  253. package/es/graphic/bounds.js +7 -1
  254. package/es/graphic/bounds.js.map +1 -1
  255. package/es/graphic/graphic.d.ts +2 -0
  256. package/es/graphic/graphic.js +11 -0
  257. package/es/graphic/graphic.js.map +1 -1
  258. package/es/graphic/node-tree.d.ts +2 -1
  259. package/es/graphic/node-tree.js +6 -3
  260. package/es/graphic/node-tree.js.map +1 -1
  261. package/es/graphic/text.js +1 -1
  262. package/es/graphic/text.js.map +1 -1
  263. package/es/index.d.ts +3 -1
  264. package/es/index.js +5 -1
  265. package/es/index.js.map +1 -1
  266. package/es/interface/contribution.d.ts +15 -37
  267. package/es/interface/contribution.js.map +1 -1
  268. package/es/interface/core.d.ts +2 -2
  269. package/es/interface/core.js.map +1 -1
  270. package/es/interface/global.d.ts +6 -1
  271. package/es/interface/global.js.map +1 -1
  272. package/es/interface/graphic.d.ts +1 -0
  273. package/es/interface/graphic.js.map +1 -1
  274. package/es/interface/layer.d.ts +7 -0
  275. package/es/interface/layer.js.map +1 -1
  276. package/es/interface/stage.d.ts +7 -2
  277. package/es/interface/stage.js.map +1 -1
  278. package/es/plugins/builtin-plugin/poptip-plugin.d.ts +1 -0
  279. package/es/plugins/builtin-plugin/poptip-plugin.js +3 -0
  280. package/es/plugins/builtin-plugin/poptip-plugin.js.map +1 -0
  281. package/es/plugins/constants.d.ts +2 -0
  282. package/es/plugins/constants.js +4 -0
  283. package/es/plugins/constants.js.map +1 -0
  284. package/es/plugins/plugin-modules.js +9 -2
  285. package/es/plugins/plugin-modules.js.map +1 -1
  286. package/es/plugins/plugin-service.d.ts +3 -3
  287. package/es/plugins/plugin-service.js +17 -6
  288. package/es/plugins/plugin-service.js.map +1 -1
  289. package/es/render/contributions/render/arc-render.d.ts +2 -1
  290. package/es/render/contributions/render/arc-render.js +47 -15
  291. package/es/render/contributions/render/arc-render.js.map +1 -1
  292. package/es/render/contributions/render/area-render.d.ts +1 -1
  293. package/es/render/contributions/render/area-render.js +21 -10
  294. package/es/render/contributions/render/area-render.js.map +1 -1
  295. package/es/render/contributions/render/circle-render.js +3 -3
  296. package/es/render/contributions/render/circle-render.js.map +1 -1
  297. package/es/render/contributions/render/contributions/arc-contribution-render.d.ts +2 -3
  298. package/es/render/contributions/render/contributions/arc-contribution-render.js +1 -3
  299. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  300. package/es/render/contributions/render/contributions/area-contribution-render.d.ts +2 -3
  301. package/es/render/contributions/render/contributions/area-contribution-render.js +1 -3
  302. package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  303. package/es/render/contributions/render/contributions/base-contribution-render.d.ts +17 -5
  304. package/es/render/contributions/render/contributions/base-contribution-render.js +30 -3
  305. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  306. package/es/render/contributions/render/contributions/circle-contribution-render.d.ts +2 -3
  307. package/es/render/contributions/render/contributions/circle-contribution-render.js +1 -3
  308. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  309. package/es/render/contributions/render/contributions/constants.d.ts +11 -0
  310. package/es/render/contributions/render/contributions/constants.js +22 -0
  311. package/es/render/contributions/render/contributions/constants.js.map +1 -0
  312. package/es/render/contributions/render/contributions/group-contribution-render.d.ts +2 -3
  313. package/es/render/contributions/render/contributions/group-contribution-render.js +1 -3
  314. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  315. package/es/render/contributions/render/contributions/image-contribution-render.d.ts +2 -3
  316. package/es/render/contributions/render/contributions/image-contribution-render.js +1 -3
  317. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  318. package/es/render/contributions/render/contributions/path-contribution-render.d.ts +0 -1
  319. package/es/render/contributions/render/contributions/path-contribution-render.js +0 -2
  320. package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  321. package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +0 -1
  322. package/es/render/contributions/render/contributions/polygon-contribution-render.js +0 -2
  323. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  324. package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +4 -5
  325. package/es/render/contributions/render/contributions/rect-contribution-render.js +3 -5
  326. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  327. package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +2 -3
  328. package/es/render/contributions/render/contributions/symbol-contribution-render.js +1 -3
  329. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  330. package/es/render/contributions/render/contributions/text-contribution-render.d.ts +1 -0
  331. package/es/render/contributions/render/contributions/text-contribution-render.js +2 -0
  332. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -0
  333. package/es/render/contributions/render/group-render.js +3 -3
  334. package/es/render/contributions/render/group-render.js.map +1 -1
  335. package/es/render/contributions/render/image-render.js +3 -3
  336. package/es/render/contributions/render/image-render.js.map +1 -1
  337. package/es/render/contributions/render/module.js +28 -14
  338. package/es/render/contributions/render/module.js.map +1 -1
  339. package/es/render/contributions/render/path-render.js +3 -3
  340. package/es/render/contributions/render/path-render.js.map +1 -1
  341. package/es/render/contributions/render/polygon-render.js +3 -3
  342. package/es/render/contributions/render/polygon-render.js.map +1 -1
  343. package/es/render/contributions/render/rect-render.js +3 -3
  344. package/es/render/contributions/render/rect-render.js.map +1 -1
  345. package/es/render/contributions/render/symbol-render.js +3 -3
  346. package/es/render/contributions/render/symbol-render.js.map +1 -1
  347. package/es/render/contributions/render/text-render.d.ts +5 -1
  348. package/es/render/contributions/render/text-render.js +30 -6
  349. package/es/render/contributions/render/text-render.js.map +1 -1
  350. package/es/render/index.d.ts +1 -0
  351. package/es/render/index.js +2 -0
  352. package/es/render/index.js.map +1 -1
  353. package/es/tsconfig.tsbuildinfo +1 -1
  354. package/package.json +3 -3
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.PluginService = exports.AutoEnablePlugins = void 0, exports.AutoEnablePlugins = Symbol.for("AutoEnablePlugins"),
6
+ exports.PluginService = Symbol.for("PluginService");
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/plugins/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC","file":"constants.js","sourcesContent":["export const AutoEnablePlugins = Symbol.for('AutoEnablePlugins');\nexport const PluginService = Symbol.for('PluginService');\n"]}
@@ -4,9 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
 
7
- const inversify_1 = require("inversify"), plugin_service_1 = require("./plugin-service");
7
+ const inversify_1 = require("inversify"), constants_1 = require("./constants"), plugin_service_1 = require("./plugin-service"), contribution_provider_1 = require("../common/contribution-provider"), constants_2 = require("./constants");
8
8
 
9
9
  exports.default = new inversify_1.ContainerModule((bind => {
10
- bind(plugin_service_1.DefaultPluginService).toSelf(), bind(plugin_service_1.PluginService).toService(plugin_service_1.DefaultPluginService);
10
+ bind(plugin_service_1.DefaultPluginService).toSelf(), bind(constants_1.PluginService).toService(plugin_service_1.DefaultPluginService),
11
+ (0, contribution_provider_1.bindContributionProvider)(bind, constants_2.AutoEnablePlugins);
11
12
  }));
12
13
  //# sourceMappingURL=plugin-modules.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/plugin-modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,qDAAuE;AAEvE,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,qCAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,CAAC,8BAAa,CAAC,CAAC,SAAS,CAAC,qCAAoB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC","file":"plugin-modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { DefaultPluginService, PluginService } from './plugin-service';\n\nexport default new ContainerModule(bind => {\n bind(DefaultPluginService).toSelf();\n bind(PluginService).toService(DefaultPluginService);\n});\n"]}
1
+ {"version":3,"sources":["../../src/plugins/plugin-modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,2CAA4C;AAC5C,qDAAwD;AACxD,2EAA2E;AAC3E,2CAAgD;AAEhD,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,qCAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,CAAC,yBAAa,CAAC,CAAC,SAAS,CAAC,qCAAoB,CAAC,CAAC;IAGpD,IAAA,gDAAwB,EAAC,IAAI,EAAE,6BAAiB,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC","file":"plugin-modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { PluginService } from './constants';\nimport { DefaultPluginService } from './plugin-service';\nimport { bindContributionProvider } from '../common/contribution-provider';\nimport { AutoEnablePlugins } from './constants';\n\nexport default new ContainerModule(bind => {\n bind(DefaultPluginService).toSelf();\n bind(PluginService).toService(DefaultPluginService);\n\n // image 渲染器注入contributions\n bindContributionProvider(bind, AutoEnablePlugins);\n});\n"]}
@@ -1,11 +1,11 @@
1
- import type { IPlugin, IPluginService, IStage } from '../interface';
2
- export declare const PluginService: unique symbol;
1
+ import type { IContributionProvider, IPlugin, IPluginService, IStage } from '../interface';
3
2
  export declare class DefaultPluginService implements IPluginService {
3
+ protected readonly autoEnablePlugins: IContributionProvider<IPlugin>;
4
4
  onStartupFinishedPlugin: IPlugin[];
5
5
  onRegisterPlugin: IPlugin[];
6
6
  stage: IStage;
7
7
  actived: boolean;
8
- constructor();
8
+ constructor(autoEnablePlugins: IContributionProvider<IPlugin>);
9
9
  active(stage: IStage): void;
10
10
  findPluginsByName(name: string): IPlugin[];
11
11
  register(plugin: IPlugin): void;
@@ -6,22 +6,27 @@ var __decorate = this && this.__decorate || function(decorators, target, key, de
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  }, __metadata = this && this.__metadata || function(k, v) {
8
8
  if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
9
+ }, __param = this && this.__param || function(paramIndex, decorator) {
10
+ return function(target, key) {
11
+ decorator(target, key, paramIndex);
12
+ };
9
13
  };
10
14
 
11
15
  Object.defineProperty(exports, "__esModule", {
12
16
  value: !0
13
- }), exports.DefaultPluginService = exports.PluginService = void 0;
17
+ }), exports.DefaultPluginService = void 0;
14
18
 
15
- const inversify_1 = require("inversify");
16
-
17
- exports.PluginService = Symbol.for("PluginService");
19
+ const inversify_1 = require("inversify"), contribution_provider_1 = require("../common/contribution-provider"), constants_1 = require("./constants"), container_1 = require("../container");
18
20
 
19
21
  let DefaultPluginService = class {
20
- constructor() {
21
- this.onStartupFinishedPlugin = [], this.onRegisterPlugin = [], this.actived = !1;
22
+ constructor(autoEnablePlugins) {
23
+ this.autoEnablePlugins = autoEnablePlugins, this.onStartupFinishedPlugin = [], this.onRegisterPlugin = [],
24
+ this.actived = !1;
22
25
  }
23
26
  active(stage) {
24
- this.stage = stage, this.actived = !0;
27
+ this.stage = stage, this.actived = !0, container_1.container.isBound(constants_1.AutoEnablePlugins) && this.autoEnablePlugins.getContributions().forEach((p => {
28
+ this.register(p);
29
+ }));
25
30
  }
26
31
  findPluginsByName(name) {
27
32
  const arr = [];
@@ -44,6 +49,8 @@ let DefaultPluginService = class {
44
49
  }
45
50
  };
46
51
 
47
- DefaultPluginService = __decorate([ (0, inversify_1.injectable)(), __metadata("design:paramtypes", []) ], DefaultPluginService),
52
+ DefaultPluginService = __decorate([ (0, inversify_1.injectable)(), __param(0, (0,
53
+ inversify_1.inject)(contribution_provider_1.ContributionProvider)), __param(0, (0,
54
+ inversify_1.named)(constants_1.AutoEnablePlugins)), __metadata("design:paramtypes", [ Object ]) ], DefaultPluginService),
48
55
  exports.DefaultPluginService = DefaultPluginService;
49
56
  //# sourceMappingURL=plugin-service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/plugin-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAuC;AAG1B,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAGlD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAM/B;QACE,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,MAAe;QACtB,IAAI,MAAM,CAAC,WAAW,KAAK,mBAAmB,EAAE;YAC9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3C;aAAM,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,EAAE;YAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;IACH,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;CACF,CAAA;AAnDY,oBAAoB;IADhC,IAAA,sBAAU,GAAE;;GACA,oBAAoB,CAmDhC;AAnDY,oDAAoB","file":"plugin-service.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { IPlugin, IPluginService, IStage } from '../interface';\n\nexport const PluginService = Symbol.for('PluginService');\n\n@injectable()\nexport class DefaultPluginService implements IPluginService {\n declare onStartupFinishedPlugin: IPlugin[];\n declare onRegisterPlugin: IPlugin[];\n declare stage: IStage;\n declare actived: boolean;\n\n constructor() {\n this.onStartupFinishedPlugin = [];\n this.onRegisterPlugin = [];\n this.actived = false;\n }\n\n active(stage: IStage) {\n this.stage = stage;\n this.actived = true;\n }\n\n findPluginsByName(name: string): IPlugin[] {\n const arr: IPlugin[] = [];\n this.onStartupFinishedPlugin.forEach(plugin => {\n if (plugin.name === name) {\n arr.push(plugin);\n }\n });\n this.onRegisterPlugin.forEach(plugin => {\n if (plugin.name === name) {\n arr.push(plugin);\n }\n });\n return arr;\n }\n\n register(plugin: IPlugin) {\n if (plugin.activeEvent === 'onStartupFinished') {\n this.onStartupFinishedPlugin.push(plugin);\n } else if (plugin.activeEvent === 'onRegister') {\n this.onRegisterPlugin.push(plugin);\n plugin.activate(this);\n }\n }\n\n release(...params: any): void {\n this.onStartupFinishedPlugin.forEach(plugin => {\n plugin.deactivate(this);\n });\n this.onStartupFinishedPlugin = [];\n this.onRegisterPlugin.forEach(plugin => {\n plugin.deactivate(this);\n });\n this.onRegisterPlugin = [];\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/plugins/plugin-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAsD;AAEtD,2EAAuE;AACvE,2CAAgD;AAChD,4CAAyC;AAGlC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAM/B,YAGqB,iBAAiD;QAAjD,sBAAiB,GAAjB,iBAAiB,CAAgC;QAEpE,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAGpB,IAAI,qBAAS,CAAC,OAAO,CAAC,6BAAiB,CAAC,EAAE;YACxC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,MAAe;QACtB,IAAI,MAAM,CAAC,WAAW,KAAK,mBAAmB,EAAE;YAC9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3C;aAAM,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,EAAE;YAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;IACH,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;CACF,CAAA;AA9DY,oBAAoB;IADhC,IAAA,sBAAU,GAAE;IAQR,WAAA,IAAA,kBAAM,EAAC,4CAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAK,EAAC,6BAAiB,CAAC,CAAA;;GARhB,oBAAoB,CA8DhC;AA9DY,oDAAoB","file":"plugin-service.js","sourcesContent":["import { injectable, inject, named } from 'inversify';\nimport type { IContributionProvider, IPlugin, IPluginService, IStage } from '../interface';\nimport { ContributionProvider } from '../common/contribution-provider';\nimport { AutoEnablePlugins } from './constants';\nimport { container } from '../container';\n\n@injectable()\nexport class DefaultPluginService implements IPluginService {\n declare onStartupFinishedPlugin: IPlugin[];\n declare onRegisterPlugin: IPlugin[];\n declare stage: IStage;\n declare actived: boolean;\n\n constructor(\n @inject(ContributionProvider)\n @named(AutoEnablePlugins)\n protected readonly autoEnablePlugins: IContributionProvider<IPlugin>\n ) {\n this.onStartupFinishedPlugin = [];\n this.onRegisterPlugin = [];\n this.actived = false;\n }\n\n active(stage: IStage) {\n this.stage = stage;\n this.actived = true;\n\n // 启动插件\n if (container.isBound(AutoEnablePlugins)) {\n this.autoEnablePlugins.getContributions().forEach(p => {\n this.register(p);\n });\n }\n }\n\n findPluginsByName(name: string): IPlugin[] {\n const arr: IPlugin[] = [];\n this.onStartupFinishedPlugin.forEach(plugin => {\n if (plugin.name === name) {\n arr.push(plugin);\n }\n });\n this.onRegisterPlugin.forEach(plugin => {\n if (plugin.name === name) {\n arr.push(plugin);\n }\n });\n return arr;\n }\n\n register(plugin: IPlugin) {\n if (plugin.activeEvent === 'onStartupFinished') {\n this.onStartupFinishedPlugin.push(plugin);\n } else if (plugin.activeEvent === 'onRegister') {\n this.onRegisterPlugin.push(plugin);\n plugin.activate(this);\n }\n }\n\n release(...params: any): void {\n this.onStartupFinishedPlugin.forEach(plugin => {\n plugin.deactivate(this);\n });\n this.onStartupFinishedPlugin = [];\n this.onRegisterPlugin.forEach(plugin => {\n plugin.deactivate(this);\n });\n this.onRegisterPlugin = [];\n }\n}\n"]}
@@ -3,7 +3,8 @@ export declare class DefaultCanvasArcRender implements IGraphicRender {
3
3
  protected readonly arcRenderContribitions: IContributionProvider<IArcRenderContribution>;
4
4
  type: 'arc';
5
5
  numberType: number;
6
- protected _arcRenderContribitions: IArcRenderContribution[];
6
+ protected _arcBeforeRenderContribitions: IArcRenderContribution[];
7
+ protected _arcAfterRenderContribitions: IArcRenderContribution[];
7
8
  constructor(arcRenderContribitions: IContributionProvider<IArcRenderContribution>);
8
9
  drawArcTailCapPath(arc: IArc, context: IContext2d | IPath2D, cx: number, cy: number, outerRadius: number, innerRadius: number, _sa: number, _ea: number): boolean;
9
10
  drawShape(arc: IArc, context: IContext2d, x: number, y: number, drawContext: IDrawContext, params?: IGraphicRenderDrawParams, fillCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, strokeCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean): void;
@@ -16,11 +16,12 @@ Object.defineProperty(exports, "__esModule", {
16
16
  value: !0
17
17
  }), exports.DefaultCanvasArcRender = void 0;
18
18
 
19
- const vutils_1 = require("@visactor/vutils"), inversify_1 = require("inversify"), theme_1 = require("../../../graphic/theme"), utils_1 = require("../../../common/utils"), contribution_provider_1 = require("../../../common/contribution-provider"), utils_2 = require("./utils"), conical_gradient_1 = require("../../../canvas/contributions/browser/conical-gradient"), arc_contribution_render_1 = require("./contributions/arc-contribution-render"), enums_1 = require("../../../common/enums"), constants_1 = require("../../../graphic/constants");
19
+ const vutils_1 = require("@visactor/vutils"), inversify_1 = require("inversify"), theme_1 = require("../../../graphic/theme"), utils_1 = require("../../../common/utils"), contribution_provider_1 = require("../../../common/contribution-provider"), utils_2 = require("./utils"), conical_gradient_1 = require("../../../canvas/contributions/browser/conical-gradient"), constants_1 = require("./contributions/constants"), enums_1 = require("../../../common/enums"), constants_2 = require("../../../graphic/constants");
20
20
 
21
21
  let DefaultCanvasArcRender = class {
22
22
  constructor(arcRenderContribitions) {
23
- this.arcRenderContribitions = arcRenderContribitions, this.numberType = constants_1.ARC_NUMBER_TYPE;
23
+ this.arcRenderContribitions = arcRenderContribitions, this.numberType = constants_2.ARC_NUMBER_TYPE,
24
+ this._arcBeforeRenderContribitions = [], this._arcAfterRenderContribitions = [];
24
25
  }
25
26
  drawArcTailCapPath(arc, context, cx, cy, outerRadius, innerRadius, _sa, _ea) {
26
27
  const capAngle = _ea - _sa, data = arc.getParsedAngle(), startAngle = data.startAngle;
@@ -88,18 +89,38 @@ let DefaultCanvasArcRender = class {
88
89
  if (!arc.valid || !visible) return;
89
90
  if (!(doFill || doStroke || background)) return;
90
91
  if (!(fVisible || sVisible || fillCb || strokeCb || background)) return;
91
- const {outerRadius: outerRadius = arcAttribute.outerRadius, innerRadius: innerRadius = arcAttribute.innerRadius, cap: cap = arcAttribute.cap, forceShowCap: forceShowCap = arcAttribute.forceShowCap} = arc.attribute, {isFullStroke: isFullStroke, stroke: arrayStroke} = (0,
92
- utils_1.parseStroke)(stroke);
93
- if ((doFill || isFullStroke) && (context.beginPath(), (0, utils_2.drawArcPath)(arc, context, x, y, outerRadius, innerRadius),
94
- this._arcRenderContribitions || (this._arcRenderContribitions = this.arcRenderContribitions.getContributions() || [],
95
- this._arcRenderContribitions.sort(((a, b) => b.order - a.order))), this._arcRenderContribitions.forEach((c => {
96
- c.time === enums_1.BaseRenderContributionTime.beforeFillStroke && c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, fillCb, strokeCb);
97
- })), context.setShadowStyle && context.setShadowStyle(arc, arc.attribute, arcAttribute),
98
- doFill && (fillCb ? fillCb(context, arc.attribute, arcAttribute) : fVisible && (context.setCommonStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute),
99
- context.fill())), doStroke && isFullStroke && (strokeCb ? strokeCb(context, arc.attribute, arcAttribute) : sVisible && (context.setStrokeStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute),
100
- context.stroke()))), !isFullStroke && doStroke) {
92
+ const {outerRadius: outerRadius = arcAttribute.outerRadius, innerRadius: innerRadius = arcAttribute.innerRadius, cap: cap = arcAttribute.cap, forceShowCap: forceShowCap = arcAttribute.forceShowCap} = arc.attribute;
93
+ let beforeRenderContribitionsRuned = !1;
94
+ const {isFullStroke: isFullStroke, stroke: arrayStroke} = (0, utils_1.parseStroke)(stroke);
95
+ if (doFill || isFullStroke || background) {
96
+ if (context.beginPath(), (0, utils_2.drawArcPath)(arc, context, x, y, outerRadius, innerRadius),
97
+ !this._arcBeforeRenderContribitions) {
98
+ const contributions = this.arcRenderContribitions.getContributions() || [];
99
+ contributions.sort(((a, b) => b.order - a.order)), contributions.forEach((c => {
100
+ c.time === enums_1.BaseRenderContributionTime.beforeFillStroke ? this._arcBeforeRenderContribitions.push(c) : this._arcAfterRenderContribitions.push(c);
101
+ }));
102
+ }
103
+ beforeRenderContribitionsRuned = !0, this._arcBeforeRenderContribitions.forEach((c => {
104
+ c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, drawContext, fillCb, strokeCb);
105
+ })), context.setShadowStyle && context.setShadowStyle(arc, arc.attribute, arcAttribute),
106
+ doFill && (fillCb ? fillCb(context, arc.attribute, arcAttribute) : fVisible && (context.setCommonStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute),
107
+ context.fill())), doStroke && isFullStroke && (strokeCb ? strokeCb(context, arc.attribute, arcAttribute) : sVisible && (context.setStrokeStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute),
108
+ context.stroke()));
109
+ }
110
+ if (!isFullStroke && doStroke) {
101
111
  context.beginPath();
102
112
  (0, utils_2.drawArcPath)(arc, context, x, y, outerRadius, innerRadius, arrayStroke);
113
+ if (!beforeRenderContribitionsRuned) {
114
+ if (!this._arcBeforeRenderContribitions) {
115
+ const contributions = this.arcRenderContribitions.getContributions() || [];
116
+ contributions.sort(((a, b) => b.order - a.order)), contributions.forEach((c => {
117
+ c.time === enums_1.BaseRenderContributionTime.beforeFillStroke ? this._arcBeforeRenderContribitions.push(c) : this._arcAfterRenderContribitions.push(c);
118
+ }));
119
+ }
120
+ beforeRenderContribitionsRuned = !0, this._arcBeforeRenderContribitions.forEach((c => {
121
+ c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, drawContext, fillCb, strokeCb);
122
+ }));
123
+ }
103
124
  strokeCb ? strokeCb(context, arc.attribute, arcAttribute) : sVisible && (context.setStrokeStyle(arc, arc.attribute, x, y, arcAttribute),
104
125
  context.stroke());
105
126
  }
@@ -109,7 +130,18 @@ let DefaultCanvasArcRender = class {
109
130
  context.beginPath();
110
131
  const capAngle = Math.abs(outerRadius - innerRadius) / 2 / outerRadius, {endAngle: endAngle = arcAttribute.endAngle, fill: fill = arcAttribute.fill} = arc.attribute, startAngle = endAngle;
111
132
  if (this.drawArcTailCapPath(arc, context, x, y, outerRadius, innerRadius, startAngle, startAngle + capAngle),
112
- doFill) {
133
+ !beforeRenderContribitionsRuned) {
134
+ if (!this._arcBeforeRenderContribitions) {
135
+ const contributions = this.arcRenderContribitions.getContributions() || [];
136
+ contributions.sort(((a, b) => b.order - a.order)), contributions.forEach((c => {
137
+ c.time === enums_1.BaseRenderContributionTime.beforeFillStroke ? this._arcBeforeRenderContribitions.push(c) : this._arcAfterRenderContribitions.push(c);
138
+ }));
139
+ }
140
+ beforeRenderContribitionsRuned = !0, this._arcBeforeRenderContribitions.forEach((c => {
141
+ c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, drawContext, fillCb, strokeCb);
142
+ }));
143
+ }
144
+ if (doFill) {
113
145
  const color = fill;
114
146
  if ("conical" === color.gradient) {
115
147
  const lastColor = (0, conical_gradient_1.getConicGradientAt)(0, 0, endAngle, color);
@@ -121,9 +153,8 @@ let DefaultCanvasArcRender = class {
121
153
  context.stroke()));
122
154
  }
123
155
  }
124
- this._arcRenderContribitions || (this._arcRenderContribitions = this.arcRenderContribitions.getContributions() || []),
125
- this._arcRenderContribitions.forEach((c => {
126
- c.time === enums_1.BaseRenderContributionTime.afterFillStroke && c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, fillCb, strokeCb);
156
+ this._arcAfterRenderContribitions.forEach((c => {
157
+ c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, drawContext, fillCb, strokeCb);
127
158
  }));
128
159
  }
129
160
  draw(arc, renderService, drawContext, params) {
@@ -143,6 +174,6 @@ let DefaultCanvasArcRender = class {
143
174
 
144
175
  DefaultCanvasArcRender = __decorate([ (0, inversify_1.injectable)(), __param(0, (0,
145
176
  inversify_1.inject)(contribution_provider_1.ContributionProvider)), __param(0, (0,
146
- inversify_1.named)(arc_contribution_render_1.ArcRenderContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasArcRender),
177
+ inversify_1.named)(constants_1.ArcRenderContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasArcRender),
147
178
  exports.DefaultCanvasArcRender = DefaultCanvasArcRender;
148
179
  //# sourceMappingURL=arc-render.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/render/contributions/render/arc-render.ts"],"names":[],"mappings":"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","file":"arc-render.js","sourcesContent":["import { abs, acos, atan2, cos, epsilon, min, pi, sin, sqrt, pi2 } from '@visactor/vutils';\nimport { inject, injectable, named } from 'inversify';\nimport { getTheme } from '../../../graphic/theme';\nimport { parseStroke } from '../../../common/utils';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport type {\n IContext2d,\n IArc,\n IPath2D,\n IGraphicAttribute,\n IMarkAttribute,\n IThemeAttribute,\n IGradientColor,\n IArcRenderContribution,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider\n} from '../../../interface';\nimport {\n cornerTangents,\n drawArcPath,\n drawPathProxy,\n fillVisible,\n intersect,\n runFill,\n runStroke,\n strokeVisible\n} from './utils';\nimport { getConicGradientAt } from '../../../canvas/contributions/browser/conical-gradient';\nimport { ArcRenderContribution } from './contributions/arc-contribution-render';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { ARC_NUMBER_TYPE } from '../../../graphic/constants';\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n@injectable()\nexport class DefaultCanvasArcRender implements IGraphicRender {\n type: 'arc';\n numberType: number = ARC_NUMBER_TYPE;\n\n protected _arcRenderContribitions: IArcRenderContribution[];\n constructor(\n @inject(ContributionProvider)\n @named(ArcRenderContribution)\n protected readonly arcRenderContribitions: IContributionProvider<IArcRenderContribution>\n ) {}\n\n // drawArcPath(\n // arc: IArc,\n // context: IContext2d | IPath2D,\n // cx: number,\n // cy: number,\n // outerRadius: number,\n // innerRadius: number,\n // partStroke?: boolean[]\n // ) {\n // const { startAngle, endAngle } = arc.getParsedAngle();\n\n // const deltaAngle = abs(endAngle - startAngle);\n // const clockwise: boolean = endAngle > startAngle;\n // let collapsedToLine: boolean = false;\n // // 规范化outerRadius和innerRadius\n // if (outerRadius < innerRadius) {\n // const temp = outerRadius;\n // outerRadius = innerRadius;\n // innerRadius = temp;\n // }\n // // Is it a point?\n // if (outerRadius <= epsilon) {\n // context.moveTo(cx, cy);\n // } else if (deltaAngle >= pi2 - epsilon) {\n // // 是个完整的圆环\n // // Or is it a circle or annulus?\n // context.moveTo(cx + outerRadius * cos(startAngle), cy + outerRadius * sin(startAngle));\n // context.arc(cx, cy, outerRadius, startAngle, endAngle, !clockwise);\n // if (innerRadius > epsilon) {\n // context.moveTo(cx + innerRadius * cos(endAngle), cy + innerRadius * sin(endAngle));\n // context.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);\n // }\n // } else {\n // const cornerRadius = arc.getParsedCornerRadius();\n // // Or is it a circular or annular sector?\n // const { outerDeltaAngle, innerDeltaAngle, outerStartAngle, outerEndAngle, innerEndAngle, innerStartAngle } =\n // arc.getParsePadAngle(startAngle, endAngle);\n\n // const outerCornerRadiusStart = cornerRadius;\n // const outerCornerRadiusEnd = cornerRadius;\n // const innerCornerRadiusEnd = cornerRadius;\n // const innerCornerRadiusStart = cornerRadius;\n // const maxOuterCornerRadius = Math.max(outerCornerRadiusEnd, outerCornerRadiusStart);\n // const maxInnerCornerRadius = Math.max(innerCornerRadiusEnd, innerCornerRadiusStart);\n // let limitedOcr = maxOuterCornerRadius;\n // let limitedIcr = maxInnerCornerRadius;\n\n // const xors = outerRadius * cos(outerStartAngle);\n // const yors = outerRadius * sin(outerStartAngle);\n // const xire = innerRadius * cos(innerEndAngle);\n // const yire = innerRadius * sin(innerEndAngle);\n\n // // Apply rounded corners?\n // let xore: number;\n // let yore: number;\n // let xirs: number;\n // let yirs: number;\n\n // if (maxInnerCornerRadius > epsilon || maxOuterCornerRadius > epsilon) {\n // xore = outerRadius * cos(outerEndAngle);\n // yore = outerRadius * sin(outerEndAngle);\n // xirs = innerRadius * cos(innerStartAngle);\n // yirs = innerRadius * sin(innerStartAngle);\n\n // // Restrict the corner radius according to the sector angle.\n // if (deltaAngle < pi) {\n // const oc = intersect(xors, yors, xirs, yirs, xore, yore, xire, yire);\n\n // if (oc) {\n // const ax = xors - oc[0];\n // const ay = yors - oc[1];\n // const bx = xore - oc[0];\n // const by = yore - oc[1];\n // const kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2);\n // const lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n\n // limitedIcr = min(maxInnerCornerRadius, (innerRadius - lc) / (kc - 1));\n // limitedOcr = min(maxOuterCornerRadius, (outerRadius - lc) / (kc + 1));\n // }\n // }\n // }\n\n // // Is the sector collapsed to a line?\n // // 角度过小,会将acr处理为圆心到半径的一条线\n // if (outerDeltaAngle < 0.001) {\n // // 如果有左右边的话\n // if (partStroke && (partStroke[3] || partStroke[1])) {\n // context.moveTo(cx + xors, cy + yors);\n // }\n // collapsedToLine = true;\n // } else if (limitedOcr > epsilon) {\n // const cornerRadiusStart = min(outerCornerRadiusStart, limitedOcr);\n // const cornerRadiusEnd = min(outerCornerRadiusEnd, limitedOcr);\n // // Does the sector’s outer ring have rounded corners?\n // const t0 = cornerTangents(xirs, yirs, xors, yors, outerRadius, cornerRadiusStart, Number(clockwise));\n // const t1 = cornerTangents(xore, yore, xire, yire, outerRadius, cornerRadiusEnd, Number(clockwise));\n\n // // Have the corners merged?\n // if (limitedOcr < maxOuterCornerRadius && cornerRadiusStart === cornerRadiusEnd) {\n // if (!partStroke || partStroke[0]) {\n // context.moveTo(cx + t0.cx + t0.x01, cy + t0.cy + t0.y01);\n // context.arc(cx + t0.cx, cy + t0.cy, limitedOcr, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !clockwise);\n // } else {\n // context.moveTo(\n // cx + t0.cx + limitedOcr * cos(atan2(t1.y01, t1.x01)),\n // cy + t0.cy + limitedOcr * sin(atan2(t1.y01, t1.x01))\n // );\n // }\n // } else {\n // // Otherwise, draw the two corners and the ring.\n // if (!partStroke || partStroke[0]) {\n // context.moveTo(cx + t0.cx + t0.x01, cy + t0.cy + t0.y01);\n // cornerRadiusStart > 0 &&\n // context.arc(\n // cx + t0.cx,\n // cy + t0.cy,\n // cornerRadiusStart,\n // atan2(t0.y01, t0.x01),\n // atan2(t0.y11, t0.x11),\n // !clockwise\n // );\n // context.arc(\n // cx,\n // cy,\n // outerRadius,\n // atan2(t0.cy + t0.y11, t0.cx + t0.x11),\n // atan2(t1.cy + t1.y11, t1.cx + t1.x11),\n // !clockwise\n // );\n // cornerRadiusEnd > 0 &&\n // context.arc(\n // cx + t1.cx,\n // cy + t1.cy,\n // cornerRadiusEnd,\n // atan2(t1.y11, t1.x11),\n // atan2(t1.y01, t1.x01),\n // !clockwise\n // );\n // } else {\n // if (cornerRadiusEnd > 0) {\n // context.moveTo(\n // cx + t1.cx + cornerRadiusEnd * cos(atan2(t1.y01, t1.x01)),\n // cy + t1.cy + cornerRadiusEnd * sin(atan2(t1.y01, t1.x01))\n // );\n // } else {\n // context.moveTo(cx + xore, cy + outerRadius * sin(outerEndAngle));\n // }\n // }\n // }\n // } else {\n // // Or is the outer ring just a circular arc?\n // if (!partStroke || partStroke[0]) {\n // context.moveTo(cx + xors, cy + yors);\n // context.arc(cx, cy, outerRadius, outerStartAngle, outerEndAngle, !clockwise);\n // } else {\n // // context.moveTo(cx + outerRadius * cos(outerEndAngle), cy + yore);\n // }\n // }\n // // Is there no inner ring, and it’s a circular sector?\n // // Or perhaps it’s an annular sector collapsed due to padding?\n // if (!(innerRadius > epsilon) || innerDeltaAngle < 0.001) {\n // if (!partStroke || partStroke[1]) {\n // context.lineTo(cx + xire, cy + yire);\n // } else {\n // context.moveTo(cx + xire, cy + yire);\n // }\n // collapsedToLine = true;\n // } else if (limitedIcr > epsilon) {\n // const cornerRadiusStart = min(innerCornerRadiusStart, limitedIcr);\n // const cornerRadiusEnd = min(innerCornerRadiusEnd, limitedIcr);\n // // Does the sector’s inner ring (or point) have rounded corners?\n // const t0 = cornerTangents(xire, yire, xore, yore, innerRadius, -cornerRadiusEnd, Number(clockwise));\n // const t1 = cornerTangents(xors, yors, xirs, yirs, innerRadius, -cornerRadiusStart, Number(clockwise));\n\n // if (!partStroke || partStroke[1]) {\n // context.lineTo(cx + t0.cx + t0.x01, cy + t0.cy + t0.y01);\n // } else {\n // context.moveTo(cx + t0.cx + t0.x01, cy + t0.cy + t0.y01);\n // }\n\n // // Have the corners merged?\n // if (limitedIcr < maxInnerCornerRadius && cornerRadiusStart === cornerRadiusEnd) {\n // const arcEndAngle = atan2(t1.y01, t1.x01);\n // if (!partStroke || partStroke[2]) {\n // context.arc(cx + t0.cx, cy + t0.cy, limitedIcr, atan2(t0.y01, t0.x01), arcEndAngle, !clockwise);\n // } else {\n // context.moveTo(cx + t0.cx + cos(arcEndAngle), cy + t0.cy + sin(arcEndAngle));\n // }\n // } else {\n // // Otherwise, draw the two corners and the ring.\n // if (!partStroke || partStroke[2]) {\n // cornerRadiusEnd > 0 &&\n // context.arc(\n // cx + t0.cx,\n // cy + t0.cy,\n // cornerRadiusEnd,\n // atan2(t0.y01, t0.x01),\n // atan2(t0.y11, t0.x11),\n // !clockwise\n // );\n // context.arc(\n // cx,\n // cy,\n // innerRadius,\n // atan2(t0.cy + t0.y11, t0.cx + t0.x11),\n // atan2(t1.cy + t1.y11, t1.cx + t1.x11),\n // clockwise\n // );\n // cornerRadiusStart > 0 &&\n // context.arc(\n // cx + t1.cx,\n // cy + t1.cy,\n // cornerRadiusStart,\n // atan2(t1.y11, t1.x11),\n // atan2(t1.y01, t1.x01),\n // !clockwise\n // );\n // } else {\n // if (cornerRadiusStart > 0) {\n // context.moveTo(\n // cx + t1.cx + cornerRadiusStart * cos(atan2(t1.y01, t1.x01)),\n // cy + t1.cy + cornerRadiusStart * sin(atan2(t1.y01, t1.x01))\n // );\n // } else {\n // context.moveTo(cx + xirs, cy + yirs);\n // }\n // }\n // }\n // } else {\n // // Or is the inner ring just a circular arc?\n // if (!partStroke || partStroke[1]) {\n // context.lineTo(cx + xire, cy + yire);\n // } else {\n // context.moveTo(cx + xire, cy + yire);\n // }\n // if (!partStroke || partStroke[2]) {\n // context.arc(cx, cy, innerRadius, innerEndAngle, innerStartAngle, clockwise);\n // } else {\n // context.moveTo(cx + innerRadius * cos(innerStartAngle), cy + innerRadius * sin(innerStartAngle));\n // }\n // }\n // }\n\n // if (!partStroke) {\n // context.closePath();\n // } else if (partStroke[3]) {\n // context.lineTo(cx + outerRadius * cos(endAngle), cy + outerRadius * cos(endAngle));\n // }\n\n // return collapsedToLine;\n // }\n\n // 绘制尾部cap\n drawArcTailCapPath(\n arc: IArc,\n context: IContext2d | IPath2D,\n cx: number,\n cy: number,\n outerRadius: number,\n innerRadius: number,\n _sa: number,\n _ea: number\n ) {\n const capAngle = _ea - _sa;\n const data = arc.getParsedAngle();\n const startAngle = data.startAngle;\n let endAngle = data.endAngle;\n endAngle = _ea;\n const deltaAngle = abs(endAngle - startAngle);\n const clockwise: boolean = endAngle > startAngle;\n let collapsedToLine: boolean = false;\n // 规范化outerRadius和innerRadius\n if (outerRadius < innerRadius) {\n const temp = outerRadius;\n outerRadius = innerRadius;\n innerRadius = temp;\n }\n\n const cornerRadius = arc.getParsedCornerRadius();\n // Or is it a circular or annular sector?\n const { outerDeltaAngle, innerDeltaAngle, outerStartAngle, outerEndAngle, innerEndAngle, innerStartAngle } =\n arc.getParsePadAngle(startAngle, endAngle);\n\n const outerCornerRadiusStart = cornerRadius;\n const outerCornerRadiusEnd = cornerRadius;\n const innerCornerRadiusEnd = cornerRadius;\n const innerCornerRadiusStart = cornerRadius;\n const maxOuterCornerRadius = Math.max(outerCornerRadiusEnd, outerCornerRadiusStart);\n const maxInnerCornerRadius = Math.max(innerCornerRadiusEnd, innerCornerRadiusStart);\n let limitedOcr = maxOuterCornerRadius;\n let limitedIcr = maxInnerCornerRadius;\n\n const xors = outerRadius * cos(outerStartAngle);\n const yors = outerRadius * sin(outerStartAngle);\n const xire = innerRadius * cos(innerEndAngle);\n const yire = innerRadius * sin(innerEndAngle);\n\n // Apply rounded corners?\n let xore: number;\n let yore: number;\n let xirs: number;\n let yirs: number;\n\n if (maxInnerCornerRadius > epsilon || maxOuterCornerRadius > epsilon) {\n xore = outerRadius * cos(outerEndAngle);\n yore = outerRadius * sin(outerEndAngle);\n xirs = innerRadius * cos(innerStartAngle);\n yirs = innerRadius * sin(innerStartAngle);\n\n // Restrict the corner radius according to the sector angle.\n if (deltaAngle < pi) {\n const oc = intersect(xors, yors, xirs, yirs, xore, yore, xire, yire);\n\n if (oc) {\n const ax = xors - oc[0];\n const ay = yors - oc[1];\n const bx = xore - oc[0];\n const by = yore - oc[1];\n const kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2);\n const lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n\n limitedIcr = min(maxInnerCornerRadius, (innerRadius - lc) / (kc - 1));\n limitedOcr = min(maxOuterCornerRadius, (outerRadius - lc) / (kc + 1));\n }\n }\n }\n\n if (limitedOcr > epsilon) {\n const cornerRadiusStart = min(outerCornerRadiusStart, limitedOcr);\n const cornerRadiusEnd = min(outerCornerRadiusEnd, limitedOcr);\n // Does the sector’s outer ring have rounded corners?\n const t0 = cornerTangents(xirs, yirs, xors, yors, outerRadius, cornerRadiusStart, Number(clockwise));\n const t1 = cornerTangents(xore, yore, xire, yire, outerRadius, cornerRadiusEnd, Number(clockwise));\n\n // Have the corners merged?\n if (limitedOcr < maxOuterCornerRadius && cornerRadiusStart === cornerRadiusEnd) {\n context.moveTo(cx + t0.cx + t0.x01, cy + t0.cy + t0.y01);\n context.arc(cx + t0.cx, cy + t0.cy, limitedOcr, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !clockwise);\n } else {\n const a1 = endAngle - capAngle - 0.03;\n const a2 = atan2(t1.y11, t1.x11);\n context.arc(cx, cy, outerRadius, a1, a2, !clockwise);\n cornerRadiusEnd > 0 &&\n context.arc(\n cx + t1.cx,\n cy + t1.cy,\n cornerRadiusEnd,\n atan2(t1.y11, t1.x11),\n atan2(t1.y01, t1.x01),\n !clockwise\n );\n }\n } else {\n context.moveTo(cx + xors, cy + yors);\n }\n // else {\n // // Or is the outer ring just a circular arc?\n // if (!partStroke || partStroke[0]) {\n // context.moveTo(cx + xors, cy + yors);\n // context.arc(cx, cy, outerRadius, outerStartAngle, outerEndAngle, !clockwise);\n // } else {\n // // context.moveTo(cx + outerRadius * cos(outerEndAngle), cy + yore);\n // }\n // }\n // // Is there no inner ring, and it’s a circular sector?\n // // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(innerRadius > epsilon) || innerDeltaAngle < 0.001) {\n context.lineTo(cx + xire, cy + yire);\n collapsedToLine = true;\n } else if (limitedIcr > epsilon) {\n const cornerRadiusStart = min(innerCornerRadiusStart, limitedIcr);\n const cornerRadiusEnd = min(innerCornerRadiusEnd, limitedIcr);\n // Does the sector’s inner ring (or point) have rounded corners?\n const t0 = cornerTangents(xire, yire, xore, yore, innerRadius, -cornerRadiusEnd, Number(clockwise));\n const t1 = cornerTangents(xors, yors, xirs, yirs, innerRadius, -cornerRadiusStart, Number(clockwise));\n\n context.lineTo(cx + t0.cx + t0.x01, cy + t0.cy + t0.y01);\n\n // Have the corners merged?\n if (limitedIcr < maxInnerCornerRadius && cornerRadiusStart === cornerRadiusEnd) {\n const arcEndAngle = atan2(t1.y01, t1.x01);\n context.arc(cx + t0.cx, cy + t0.cy, limitedIcr, atan2(t0.y01, t0.x01), arcEndAngle, !clockwise);\n } else {\n cornerRadiusEnd > 0 &&\n context.arc(\n cx + t0.cx,\n cy + t0.cy,\n cornerRadiusEnd,\n atan2(t0.y01, t0.x01),\n atan2(t0.y11, t0.x11),\n !clockwise\n );\n const a1 = atan2(t0.cy + t0.y11, t0.cx + t0.x11);\n const a2 = endAngle - capAngle - 0.03;\n context.arc(cx, cy, innerRadius, a1, a2, clockwise);\n }\n } else {\n context.lineTo(cx + innerRadius * cos(innerStartAngle), cy + innerRadius * sin(innerStartAngle));\n }\n\n return collapsedToLine;\n }\n\n drawShape(\n arc: IArc,\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 arcAttribute = graphicService.themeService.getCurrentTheme().arcAttribute;\n const arcAttribute = getTheme(arc, params?.theme).arc;\n\n const {\n fill = arcAttribute.fill,\n background,\n stroke = arcAttribute.stroke,\n opacity = arcAttribute.opacity,\n fillOpacity = arcAttribute.fillOpacity,\n lineWidth = arcAttribute.lineWidth,\n strokeOpacity = arcAttribute.strokeOpacity,\n visible = arcAttribute.visible,\n x: originX = arcAttribute.x,\n y: originY = arcAttribute.y\n } = arc.attribute;\n // 不绘制或者透明\n const fVisible = fillVisible(opacity, fillOpacity);\n const sVisible = strokeVisible(opacity, strokeOpacity);\n const doFill = runFill(fill);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(arc.valid && visible)) {\n return;\n }\n\n if (!(doFill || doStroke || background)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n\n const {\n outerRadius = arcAttribute.outerRadius,\n innerRadius = arcAttribute.innerRadius,\n cap = arcAttribute.cap,\n forceShowCap = arcAttribute.forceShowCap\n } = arc.attribute;\n\n const { isFullStroke, stroke: arrayStroke } = parseStroke(stroke);\n if (doFill || isFullStroke) {\n context.beginPath();\n // if (arc.shouldUpdateShape()) {\n // // 更新shape\n // arc.cache = new Path2D(context);\n // this.drawArcPath(arc, arc.cache, x, y, outerRadius, innerRadius);\n // arc.clearUpdateShapeTag();\n // } else {\n // if (arc.cache) {\n // renderCommandList(arc.cache.commandList, context);\n // }\n // }\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此arc不再使用cache\n drawArcPath(arc, context, x, y, outerRadius, innerRadius);\n\n if (!this._arcRenderContribitions) {\n this._arcRenderContribitions = this.arcRenderContribitions.getContributions() || [];\n this._arcRenderContribitions.sort((a, b) => b.order - a.order);\n }\n this._arcRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.beforeFillStroke) {\n // c.useStyle && context.setCommonStyle(arc, arc.attribute, x, y, arcAttribute);\n c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, fillCb, strokeCb);\n }\n });\n\n // shadow\n context.setShadowStyle && context.setShadowStyle(arc, arc.attribute, arcAttribute);\n\n if (doFill) {\n if (fillCb) {\n fillCb(context, arc.attribute, arcAttribute);\n } else if (fVisible) {\n context.setCommonStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute);\n context.fill();\n }\n }\n\n if (doStroke && isFullStroke) {\n if (strokeCb) {\n strokeCb(context, arc.attribute, arcAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute);\n context.stroke();\n }\n }\n }\n\n // 需要局部渲染描边的时候\n if (!isFullStroke && doStroke) {\n context.beginPath();\n const collapsedToLine = drawArcPath(arc, context, x, y, outerRadius, innerRadius, arrayStroke);\n\n if (strokeCb) {\n strokeCb(context, arc.attribute, arcAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(arc, arc.attribute, x, y, arcAttribute);\n context.stroke();\n }\n }\n\n // 绘制cap\n if (cap && forceShowCap) {\n const { startAngle: sa, endAngle: ea } = arc.getParsedAngle();\n const deltaAngle = abs(ea - sa);\n if (deltaAngle >= pi2 - epsilon) {\n context.beginPath();\n const capWidth = Math.abs(outerRadius - innerRadius) / 2;\n // 以外边界长度为准\n const capAngle = capWidth / outerRadius;\n const { endAngle = arcAttribute.endAngle, fill = arcAttribute.fill } = arc.attribute;\n const startAngle = endAngle;\n this.drawArcTailCapPath(arc, context, x, y, outerRadius, innerRadius, startAngle, startAngle + capAngle);\n if (doFill) {\n // 获取渐变色最后一个颜色\n const color = fill;\n if ((color as IGradientColor).gradient === 'conical') {\n const lastColor = getConicGradientAt(0, 0, endAngle, color as any);\n if (fillCb) {\n // fillCb(context, arc.attribute, arcAttribute);\n } else if (fillVisible) {\n // context.closePath();\n context.setCommonStyle(arc, arc.attribute, x, y, arcAttribute);\n context.fillStyle = lastColor as string;\n context.fill();\n }\n }\n }\n if (doStroke) {\n if (strokeCb) {\n // fillCb(context, arc.attribute, arcAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(arc, arc.attribute, x, y, arcAttribute);\n // context.strokeStyle = 'red';\n context.stroke();\n }\n }\n }\n }\n\n if (!this._arcRenderContribitions) {\n this._arcRenderContribitions = this.arcRenderContribitions.getContributions() || [];\n }\n this._arcRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.afterFillStroke) {\n c.drawShape(arc, context, x, y, doFill, doStroke, fVisible, sVisible, arcAttribute, fillCb, strokeCb);\n }\n });\n }\n\n draw(arc: IArc, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n\n // const arcAttribute = graphicService.themeService.getCurrentTheme().arcAttribute;\n const arcAttribute = getTheme(arc, params?.theme).arc;\n\n context.highPerformanceSave();\n\n let { x = arcAttribute.x, y = arcAttribute.y } = arc.attribute;\n if (!arc.transMatrix.onlyTranslate()) {\n // 性能较差\n x = 0;\n y = 0;\n context.transformFromMatrix(arc.transMatrix, true);\n } else {\n const point = arc.getOffsetXY(arcAttribute);\n x += point.x;\n y += point.y;\n // 当前context有rotate/scale,重置matrix\n context.setTransformForCurrent();\n }\n\n if (drawPathProxy(arc, context, x, y, drawContext, params)) {\n context.highPerformanceRestore();\n return;\n }\n\n this.drawShape(arc, context, x, y, drawContext, params);\n\n context.highPerformanceRestore();\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/render/contributions/render/arc-render.ts"],"names":[],"mappings":"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","file":"arc-render.js","sourcesContent":["import { abs, acos, atan2, cos, epsilon, min, pi, sin, sqrt, pi2 } from '@visactor/vutils';\nimport { inject, injectable, named } from 'inversify';\nimport { getTheme } from '../../../graphic/theme';\nimport { parseStroke } from '../../../common/utils';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport type {\n IContext2d,\n IArc,\n IPath2D,\n IGraphicAttribute,\n IMarkAttribute,\n IThemeAttribute,\n IGradientColor,\n IArcRenderContribution,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider\n} from '../../../interface';\nimport {\n cornerTangents,\n drawArcPath,\n drawPathProxy,\n fillVisible,\n intersect,\n runFill,\n runStroke,\n strokeVisible\n} from './utils';\nimport { getConicGradientAt } from '../../../canvas/contributions/browser/conical-gradient';\nimport { ArcRenderContribution } from './contributions/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { ARC_NUMBER_TYPE } from '../../../graphic/constants';\n/**\n * 部分源码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\n@injectable()\nexport class DefaultCanvasArcRender implements IGraphicRender {\n type: 'arc';\n numberType: number = ARC_NUMBER_TYPE;\n\n protected _arcBeforeRenderContribitions: IArcRenderContribution[] = [];\n protected _arcAfterRenderContribitions: IArcRenderContribution[] = [];\n constructor(\n @inject(ContributionProvider)\n @named(ArcRenderContribution)\n protected readonly arcRenderContribitions: IContributionProvider<IArcRenderContribution>\n ) {}\n\n // 绘制尾部cap\n drawArcTailCapPath(\n arc: IArc,\n context: IContext2d | IPath2D,\n cx: number,\n cy: number,\n outerRadius: number,\n innerRadius: number,\n _sa: number,\n _ea: number\n ) {\n const capAngle = _ea - _sa;\n const data = arc.getParsedAngle();\n const startAngle = data.startAngle;\n let endAngle = data.endAngle;\n endAngle = _ea;\n const deltaAngle = abs(endAngle - startAngle);\n const clockwise: boolean = endAngle > startAngle;\n let collapsedToLine: boolean = false;\n // 规范化outerRadius和innerRadius\n if (outerRadius < innerRadius) {\n const temp = outerRadius;\n outerRadius = innerRadius;\n innerRadius = temp;\n }\n\n const cornerRadius = arc.getParsedCornerRadius();\n // Or is it a circular or annular sector?\n const { outerDeltaAngle, innerDeltaAngle, outerStartAngle, outerEndAngle, innerEndAngle, innerStartAngle } =\n arc.getParsePadAngle(startAngle, endAngle);\n\n const outerCornerRadiusStart = cornerRadius;\n const outerCornerRadiusEnd = cornerRadius;\n const innerCornerRadiusEnd = cornerRadius;\n const innerCornerRadiusStart = cornerRadius;\n const maxOuterCornerRadius = Math.max(outerCornerRadiusEnd, outerCornerRadiusStart);\n const maxInnerCornerRadius = Math.max(innerCornerRadiusEnd, innerCornerRadiusStart);\n let limitedOcr = maxOuterCornerRadius;\n let limitedIcr = maxInnerCornerRadius;\n\n const xors = outerRadius * cos(outerStartAngle);\n const yors = outerRadius * sin(outerStartAngle);\n const xire = innerRadius * cos(innerEndAngle);\n const yire = innerRadius * sin(innerEndAngle);\n\n // Apply rounded corners?\n let xore: number;\n let yore: number;\n let xirs: number;\n let yirs: number;\n\n if (maxInnerCornerRadius > epsilon || maxOuterCornerRadius > epsilon) {\n xore = outerRadius * cos(outerEndAngle);\n yore = outerRadius * sin(outerEndAngle);\n xirs = innerRadius * cos(innerStartAngle);\n yirs = innerRadius * sin(innerStartAngle);\n\n // Restrict the corner radius according to the sector angle.\n if (deltaAngle < pi) {\n const oc = intersect(xors, yors, xirs, yirs, xore, yore, xire, yire);\n\n if (oc) {\n const ax = xors - oc[0];\n const ay = yors - oc[1];\n const bx = xore - oc[0];\n const by = yore - oc[1];\n const kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2);\n const lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n\n limitedIcr = min(maxInnerCornerRadius, (innerRadius - lc) / (kc - 1));\n limitedOcr = min(maxOuterCornerRadius, (outerRadius - lc) / (kc + 1));\n }\n }\n }\n\n if (limitedOcr > epsilon) {\n const cornerRadiusStart = min(outerCornerRadiusStart, limitedOcr);\n const cornerRadiusEnd = min(outerCornerRadiusEnd, limitedOcr);\n // Does the sector’s outer ring have rounded corners?\n const t0 = cornerTangents(xirs, yirs, xors, yors, outerRadius, cornerRadiusStart, Number(clockwise));\n const t1 = cornerTangents(xore, yore, xire, yire, outerRadius, cornerRadiusEnd, Number(clockwise));\n\n // Have the corners merged?\n if (limitedOcr < maxOuterCornerRadius && cornerRadiusStart === cornerRadiusEnd) {\n context.moveTo(cx + t0.cx + t0.x01, cy + t0.cy + t0.y01);\n context.arc(cx + t0.cx, cy + t0.cy, limitedOcr, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !clockwise);\n } else {\n const a1 = endAngle - capAngle - 0.03;\n const a2 = atan2(t1.y11, t1.x11);\n context.arc(cx, cy, outerRadius, a1, a2, !clockwise);\n cornerRadiusEnd > 0 &&\n context.arc(\n cx + t1.cx,\n cy + t1.cy,\n cornerRadiusEnd,\n atan2(t1.y11, t1.x11),\n atan2(t1.y01, t1.x01),\n !clockwise\n );\n }\n } else {\n context.moveTo(cx + xors, cy + yors);\n }\n // else {\n // // Or is the outer ring just a circular arc?\n // if (!partStroke || partStroke[0]) {\n // context.moveTo(cx + xors, cy + yors);\n // context.arc(cx, cy, outerRadius, outerStartAngle, outerEndAngle, !clockwise);\n // } else {\n // // context.moveTo(cx + outerRadius * cos(outerEndAngle), cy + yore);\n // }\n // }\n // // Is there no inner ring, and it’s a circular sector?\n // // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(innerRadius > epsilon) || innerDeltaAngle < 0.001) {\n context.lineTo(cx + xire, cy + yire);\n collapsedToLine = true;\n } else if (limitedIcr > epsilon) {\n const cornerRadiusStart = min(innerCornerRadiusStart, limitedIcr);\n const cornerRadiusEnd = min(innerCornerRadiusEnd, limitedIcr);\n // Does the sector’s inner ring (or point) have rounded corners?\n const t0 = cornerTangents(xire, yire, xore, yore, innerRadius, -cornerRadiusEnd, Number(clockwise));\n const t1 = cornerTangents(xors, yors, xirs, yirs, innerRadius, -cornerRadiusStart, Number(clockwise));\n\n context.lineTo(cx + t0.cx + t0.x01, cy + t0.cy + t0.y01);\n\n // Have the corners merged?\n if (limitedIcr < maxInnerCornerRadius && cornerRadiusStart === cornerRadiusEnd) {\n const arcEndAngle = atan2(t1.y01, t1.x01);\n context.arc(cx + t0.cx, cy + t0.cy, limitedIcr, atan2(t0.y01, t0.x01), arcEndAngle, !clockwise);\n } else {\n cornerRadiusEnd > 0 &&\n context.arc(\n cx + t0.cx,\n cy + t0.cy,\n cornerRadiusEnd,\n atan2(t0.y01, t0.x01),\n atan2(t0.y11, t0.x11),\n !clockwise\n );\n const a1 = atan2(t0.cy + t0.y11, t0.cx + t0.x11);\n const a2 = endAngle - capAngle - 0.03;\n context.arc(cx, cy, innerRadius, a1, a2, clockwise);\n }\n } else {\n context.lineTo(cx + innerRadius * cos(innerStartAngle), cy + innerRadius * sin(innerStartAngle));\n }\n\n return collapsedToLine;\n }\n\n drawShape(\n arc: IArc,\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 arcAttribute = graphicService.themeService.getCurrentTheme().arcAttribute;\n const arcAttribute = getTheme(arc, params?.theme).arc;\n const {\n fill = arcAttribute.fill,\n background,\n stroke = arcAttribute.stroke,\n opacity = arcAttribute.opacity,\n fillOpacity = arcAttribute.fillOpacity,\n lineWidth = arcAttribute.lineWidth,\n strokeOpacity = arcAttribute.strokeOpacity,\n visible = arcAttribute.visible,\n x: originX = arcAttribute.x,\n y: originY = arcAttribute.y\n } = arc.attribute;\n // 不绘制或者透明\n const fVisible = fillVisible(opacity, fillOpacity);\n const sVisible = strokeVisible(opacity, strokeOpacity);\n const doFill = runFill(fill);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(arc.valid && visible)) {\n return;\n }\n\n if (!(doFill || doStroke || background)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n\n const {\n outerRadius = arcAttribute.outerRadius,\n innerRadius = arcAttribute.innerRadius,\n cap = arcAttribute.cap,\n forceShowCap = arcAttribute.forceShowCap\n } = arc.attribute;\n\n let beforeRenderContribitionsRuned = false;\n\n const { isFullStroke, stroke: arrayStroke } = parseStroke(stroke);\n if (doFill || isFullStroke || background) {\n context.beginPath();\n // if (arc.shouldUpdateShape()) {\n // // 更新shape\n // arc.cache = new Path2D(context);\n // this.drawArcPath(arc, arc.cache, x, y, outerRadius, innerRadius);\n // arc.clearUpdateShapeTag();\n // } else {\n // if (arc.cache) {\n // renderCommandList(arc.cache.commandList, context);\n // }\n // }\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此arc不再使用cache\n drawArcPath(arc, context, x, y, outerRadius, innerRadius);\n\n if (!this._arcBeforeRenderContribitions) {\n const contributions = this.arcRenderContribitions.getContributions() || [];\n contributions.sort((a, b) => b.order - a.order);\n contributions.forEach(c => {\n if (c.time === BaseRenderContributionTime.beforeFillStroke) {\n this._arcBeforeRenderContribitions.push(c);\n } else {\n this._arcAfterRenderContribitions.push(c);\n }\n });\n }\n beforeRenderContribitionsRuned = true;\n this._arcBeforeRenderContribitions.forEach(c => {\n c.drawShape(\n arc,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n arcAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n });\n\n // shadow\n context.setShadowStyle && context.setShadowStyle(arc, arc.attribute, arcAttribute);\n\n if (doFill) {\n if (fillCb) {\n fillCb(context, arc.attribute, arcAttribute);\n } else if (fVisible) {\n context.setCommonStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute);\n context.fill();\n }\n }\n\n if (doStroke && isFullStroke) {\n if (strokeCb) {\n strokeCb(context, arc.attribute, arcAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(arc, arc.attribute, originX - x, originY - y, arcAttribute);\n context.stroke();\n }\n }\n }\n\n // 需要局部渲染描边的时候\n if (!isFullStroke && doStroke) {\n context.beginPath();\n const collapsedToLine = drawArcPath(arc, context, x, y, outerRadius, innerRadius, arrayStroke);\n\n if (!beforeRenderContribitionsRuned) {\n if (!this._arcBeforeRenderContribitions) {\n const contributions = this.arcRenderContribitions.getContributions() || [];\n contributions.sort((a, b) => b.order - a.order);\n contributions.forEach(c => {\n if (c.time === BaseRenderContributionTime.beforeFillStroke) {\n this._arcBeforeRenderContribitions.push(c);\n } else {\n this._arcAfterRenderContribitions.push(c);\n }\n });\n }\n beforeRenderContribitionsRuned = true;\n this._arcBeforeRenderContribitions.forEach(c => {\n c.drawShape(\n arc,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n arcAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n });\n }\n\n if (strokeCb) {\n strokeCb(context, arc.attribute, arcAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(arc, arc.attribute, x, y, arcAttribute);\n context.stroke();\n }\n }\n\n // 绘制cap\n if (cap && forceShowCap) {\n const { startAngle: sa, endAngle: ea } = arc.getParsedAngle();\n const deltaAngle = abs(ea - sa);\n if (deltaAngle >= pi2 - epsilon) {\n context.beginPath();\n const capWidth = Math.abs(outerRadius - innerRadius) / 2;\n // 以外边界长度为准\n const capAngle = capWidth / outerRadius;\n const { endAngle = arcAttribute.endAngle, fill = arcAttribute.fill } = arc.attribute;\n const startAngle = endAngle;\n this.drawArcTailCapPath(arc, context, x, y, outerRadius, innerRadius, startAngle, startAngle + capAngle);\n\n if (!beforeRenderContribitionsRuned) {\n if (!this._arcBeforeRenderContribitions) {\n const contributions = this.arcRenderContribitions.getContributions() || [];\n contributions.sort((a, b) => b.order - a.order);\n contributions.forEach(c => {\n if (c.time === BaseRenderContributionTime.beforeFillStroke) {\n this._arcBeforeRenderContribitions.push(c);\n } else {\n this._arcAfterRenderContribitions.push(c);\n }\n });\n }\n beforeRenderContribitionsRuned = true;\n this._arcBeforeRenderContribitions.forEach(c => {\n c.drawShape(\n arc,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n arcAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n });\n }\n\n if (doFill) {\n // 获取渐变色最后一个颜色\n const color = fill;\n if ((color as IGradientColor).gradient === 'conical') {\n const lastColor = getConicGradientAt(0, 0, endAngle, color as any);\n if (fillCb) {\n // fillCb(context, arc.attribute, arcAttribute);\n } else if (fillVisible) {\n // context.closePath();\n context.setCommonStyle(arc, arc.attribute, x, y, arcAttribute);\n context.fillStyle = lastColor as string;\n context.fill();\n }\n }\n }\n if (doStroke) {\n if (strokeCb) {\n // fillCb(context, arc.attribute, arcAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(arc, arc.attribute, x, y, arcAttribute);\n // context.strokeStyle = 'red';\n context.stroke();\n }\n }\n }\n }\n\n this._arcAfterRenderContribitions.forEach(c => {\n c.drawShape(\n arc,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n arcAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n });\n }\n\n draw(arc: IArc, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n\n // const arcAttribute = graphicService.themeService.getCurrentTheme().arcAttribute;\n const arcAttribute = getTheme(arc, params?.theme).arc;\n\n context.highPerformanceSave();\n\n let { x = arcAttribute.x, y = arcAttribute.y } = arc.attribute;\n if (!arc.transMatrix.onlyTranslate()) {\n // 性能较差\n x = 0;\n y = 0;\n context.transformFromMatrix(arc.transMatrix, true);\n } else {\n const point = arc.getOffsetXY(arcAttribute);\n x += point.x;\n y += point.y;\n // 当前context有rotate/scale,重置matrix\n context.setTransformForCurrent();\n }\n\n if (drawPathProxy(arc, context, x, y, drawContext, params)) {\n context.highPerformanceRestore();\n return;\n }\n\n this.drawShape(arc, context, x, y, drawContext, params);\n\n context.highPerformanceRestore();\n }\n}\n"]}
@@ -7,5 +7,5 @@ export declare class DefaultCanvasAreaRender implements IGraphicRender {
7
7
  constructor(areaRenderContribitions: IContributionProvider<IAreaRenderContribution>);
8
8
  drawShape(area: IArea, context: IContext2d, x: number, y: number, drawContext: IDrawContext, params?: IGraphicRenderDrawParams, fillCb?: (ctx: IContext2d, lineAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, strokeCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean): void;
9
9
  draw(area: IArea, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams): void;
10
- protected drawSegmentItem(context: IContext2d, cache: IAreaCacheItem, fill: boolean, fillOpacity: number, attribute: Partial<IAreaGraphicAttribute>, defaultAttribute: Required<IAreaGraphicAttribute> | Partial<IAreaGraphicAttribute>[], clipRange: number, offsetX: number, offsetY: number, offsetZ: number, area: IArea, fillCb?: (ctx: IContext2d, lineAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute | IThemeAttribute[]) => boolean): boolean;
10
+ protected drawSegmentItem(context: IContext2d, cache: IAreaCacheItem, fill: boolean, fillOpacity: number, stroke: boolean, strokeOpacity: number, attribute: Partial<IAreaGraphicAttribute>, defaultAttribute: Required<IAreaGraphicAttribute> | Partial<IAreaGraphicAttribute>[], clipRange: number, offsetX: number, offsetY: number, offsetZ: number, area: IArea, drawContext: IDrawContext, fillCb?: (ctx: IContext2d, lineAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute | IThemeAttribute[]) => boolean, strokeCb?: (ctx: IContext2d, lineAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute | IThemeAttribute[]) => boolean): boolean;
11
11
  }
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", {
16
16
  value: !0
17
17
  }), exports.DefaultCanvasAreaRender = void 0;
18
18
 
19
- const vutils_1 = require("@visactor/vutils"), inversify_1 = require("inversify"), contribution_provider_1 = require("../../../common/contribution-provider"), segment_1 = require("../../../common/segment"), theme_1 = require("../../../graphic/theme"), utils_1 = require("./utils"), area_contribution_render_1 = require("./contributions/area-contribution-render"), enums_1 = require("../../../common/enums"), render_area_1 = require("../../../common/render-area"), constants_1 = require("../../../graphic/constants");
19
+ const vutils_1 = require("@visactor/vutils"), inversify_1 = require("inversify"), contribution_provider_1 = require("../../../common/contribution-provider"), segment_1 = require("../../../common/segment"), theme_1 = require("../../../graphic/theme"), utils_1 = require("./utils"), constants_1 = require("./contributions/constants"), enums_1 = require("../../../common/enums"), render_area_1 = require("../../../common/render-area"), constants_2 = require("../../../graphic/constants"), render_curve_1 = require("../../../common/render-curve");
20
20
 
21
21
  function calcLineCache(points, curveType, params) {
22
22
  switch (curveType) {
@@ -49,7 +49,7 @@ function calcLineCache(points, curveType, params) {
49
49
 
50
50
  let DefaultCanvasAreaRender = class {
51
51
  constructor(areaRenderContribitions) {
52
- this.areaRenderContribitions = areaRenderContribitions, this.numberType = constants_1.AREA_NUMBER_TYPE;
52
+ this.areaRenderContribitions = areaRenderContribitions, this.numberType = constants_2.AREA_NUMBER_TYPE;
53
53
  }
54
54
  drawShape(area, context, x, y, drawContext, params, fillCb, strokeCb) {
55
55
  var _a, _b, _c, _d, _e, _f;
@@ -112,7 +112,7 @@ let DefaultCanvasAreaRender = class {
112
112
  if (Array.isArray(area.cacheArea)) if (1 === clipRange) {
113
113
  let skip = !1;
114
114
  area.cacheArea.forEach(((cache, index) => {
115
- skip || (skip = this.drawSegmentItem(context, cache, !!fill, fillOpacity, area.attribute.segments[index], [ areaAttribute, area.attribute ], clipRange, x, y, z, area, fillCb));
115
+ skip || (skip = this.drawSegmentItem(context, cache, doFill, fillOpacity, doStroke, strokeOpacity, area.attribute.segments[index], [ areaAttribute, area.attribute ], clipRange, x, y, z, area, drawContext, fillCb, strokeCb));
116
116
  }));
117
117
  } else {
118
118
  const totalLength = area.cacheArea.reduce(((l, c) => l + c.top.getLength()), 0), totalDrawLength = clipRange * totalLength;
@@ -120,10 +120,10 @@ let DefaultCanvasAreaRender = class {
120
120
  area.cacheArea.forEach(((cache, index) => {
121
121
  if (skip) return;
122
122
  const curSegLength = cache.top.getLength(), _cr = (totalDrawLength - drawedLengthUntilLast) / curSegLength;
123
- drawedLengthUntilLast += curSegLength, _cr > 0 && (skip = this.drawSegmentItem(context, cache, !!fill, fillOpacity, area.attribute.segments[index], [ areaAttribute, area.attribute ], (0,
124
- vutils_1.min)(_cr, 1), x, y, z, area, fillCb));
123
+ drawedLengthUntilLast += curSegLength, _cr > 0 && (skip = this.drawSegmentItem(context, cache, doFill, fillOpacity, doStroke, strokeOpacity, area.attribute.segments[index], [ areaAttribute, area.attribute ], (0,
124
+ vutils_1.min)(_cr, 1), x, y, z, area, drawContext, fillCb, strokeCb));
125
125
  }));
126
- } else this.drawSegmentItem(context, area.cacheArea, !!fill, fillOpacity, area.attribute, areaAttribute, clipRange, x, y, z, area, fillCb);
126
+ } else this.drawSegmentItem(context, area.cacheArea, doFill, fillOpacity, doStroke, strokeOpacity, area.attribute, areaAttribute, clipRange, x, y, z, area, drawContext, fillCb, strokeCb);
127
127
  }
128
128
  draw(area, renderService, drawContext, params) {
129
129
  const {context: context} = drawContext, areaAttribute = (0, theme_1.getTheme)(area, null == params ? void 0 : params.theme).area;
@@ -135,7 +135,7 @@ let DefaultCanvasAreaRender = class {
135
135
  (0, utils_1.drawPathProxy)(area, context, x, y, drawContext, params) || this.drawShape(area, context, x, y, drawContext, params),
136
136
  context.highPerformanceRestore();
137
137
  }
138
- drawSegmentItem(context, cache, fill, fillOpacity, attribute, defaultAttribute, clipRange, offsetX, offsetY, offsetZ, area, fillCb) {
138
+ drawSegmentItem(context, cache, fill, fillOpacity, stroke, strokeOpacity, attribute, defaultAttribute, clipRange, offsetX, offsetY, offsetZ, area, drawContext, fillCb, strokeCb) {
139
139
  context.beginPath();
140
140
  (0, render_area_1.drawAreaSegments)(context.camera ? context : context.nativeContext, cache, clipRange, {
141
141
  offsetX: offsetX,
@@ -143,15 +143,25 @@ let DefaultCanvasAreaRender = class {
143
143
  offsetZ: offsetZ
144
144
  }), this._areaRenderContribitions || (this._areaRenderContribitions = this.areaRenderContribitions.getContributions() || [],
145
145
  this._areaRenderContribitions.sort(((a, b) => b.order - a.order))), this._areaRenderContribitions.forEach((c => {
146
- c.time === enums_1.BaseRenderContributionTime.beforeFillStroke && c.drawShape(area, context, offsetX, offsetY, !!fillOpacity, !1, fill, !1, defaultAttribute, fillCb, null, {
146
+ c.time === enums_1.BaseRenderContributionTime.beforeFillStroke && c.drawShape(area, context, offsetX, offsetY, !!fillOpacity, !1, fill, !1, defaultAttribute, drawContext, fillCb, null, {
147
147
  attribute: attribute
148
148
  });
149
149
  })), context.setShadowStyle && context.setShadowStyle(area, attribute, defaultAttribute);
150
150
  const {x: originX = 0, x: originY = 0} = attribute;
151
- return !1 !== fill && (fillCb ? fillCb(context, attribute, defaultAttribute) : fillOpacity && (context.setCommonStyle(area, attribute, originX - offsetX, originY - offsetY, defaultAttribute),
152
- context.fill())), this._areaRenderContribitions || (this._areaRenderContribitions = this.areaRenderContribitions.getContributions() || []),
151
+ if (!1 !== fill && (fillCb ? fillCb(context, attribute, defaultAttribute) : fillOpacity && (context.setCommonStyle(area, attribute, originX - offsetX, originY - offsetY, defaultAttribute),
152
+ context.fill())), !1 !== stroke) if (strokeCb) strokeCb(context, attribute, defaultAttribute); else {
153
+ const {stroke: stroke} = attribute;
154
+ (0, vutils_1.isArray)(stroke) && stroke[0] && !1 === stroke[1] && (context.beginPath(),
155
+ (0, render_curve_1.drawSegments)(context.camera ? context : context.nativeContext, cache.top, clipRange, "auto", {
156
+ offsetX: offsetX,
157
+ offsetY: offsetY,
158
+ offsetZ: offsetZ
159
+ })), context.setStrokeStyle(area, attribute, originX - offsetX, originY - offsetY, defaultAttribute),
160
+ context.stroke();
161
+ }
162
+ return this._areaRenderContribitions || (this._areaRenderContribitions = this.areaRenderContribitions.getContributions() || []),
153
163
  this._areaRenderContribitions.forEach((c => {
154
- c.time === enums_1.BaseRenderContributionTime.afterFillStroke && c.drawShape(area, context, offsetX, offsetY, !!fillOpacity, !1, fill, !1, defaultAttribute, fillCb, null, {
164
+ c.time === enums_1.BaseRenderContributionTime.afterFillStroke && c.drawShape(area, context, offsetX, offsetY, !!fillOpacity, !1, fill, !1, defaultAttribute, drawContext, fillCb, null, {
155
165
  attribute: attribute
156
166
  });
157
167
  })), !1;
@@ -160,6 +170,6 @@ let DefaultCanvasAreaRender = class {
160
170
 
161
171
  DefaultCanvasAreaRender = __decorate([ (0, inversify_1.injectable)(), __param(0, (0,
162
172
  inversify_1.inject)(contribution_provider_1.ContributionProvider)), __param(0, (0,
163
- inversify_1.named)(area_contribution_render_1.AreaRenderContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasAreaRender),
173
+ inversify_1.named)(constants_1.AreaRenderContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasAreaRender),
164
174
  exports.DefaultCanvasAreaRender = DefaultCanvasAreaRender;
165
175
  //# sourceMappingURL=area-render.js.map