@visactor/vrender 0.12.3 → 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 (342) 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/graphic.d.ts +2 -0
  76. package/cjs/graphic/graphic.js +11 -0
  77. package/cjs/graphic/graphic.js.map +1 -1
  78. package/cjs/graphic/text.js +1 -1
  79. package/cjs/graphic/text.js.map +1 -1
  80. package/cjs/index.d.ts +3 -1
  81. package/cjs/index.js +19 -18
  82. package/cjs/index.js.map +1 -1
  83. package/cjs/interface/contribution.d.ts +15 -37
  84. package/cjs/interface/contribution.js.map +1 -1
  85. package/cjs/interface/core.d.ts +2 -2
  86. package/cjs/interface/core.js.map +1 -1
  87. package/cjs/interface/global.d.ts +6 -1
  88. package/cjs/interface/global.js.map +1 -1
  89. package/cjs/interface/graphic.d.ts +1 -0
  90. package/cjs/interface/graphic.js.map +1 -1
  91. package/cjs/interface/layer.d.ts +7 -0
  92. package/cjs/interface/layer.js.map +1 -1
  93. package/cjs/interface/stage.d.ts +7 -2
  94. package/cjs/interface/stage.js.map +1 -1
  95. package/cjs/plugins/builtin-plugin/poptip-plugin.d.ts +1 -0
  96. package/cjs/plugins/builtin-plugin/poptip-plugin.js +3 -0
  97. package/cjs/plugins/builtin-plugin/poptip-plugin.js.map +1 -0
  98. package/cjs/plugins/constants.d.ts +2 -0
  99. package/cjs/plugins/constants.js +7 -0
  100. package/cjs/plugins/constants.js.map +1 -0
  101. package/cjs/plugins/plugin-modules.js +3 -2
  102. package/cjs/plugins/plugin-modules.js.map +1 -1
  103. package/cjs/plugins/plugin-service.d.ts +3 -3
  104. package/cjs/plugins/plugin-service.js +15 -8
  105. package/cjs/plugins/plugin-service.js.map +1 -1
  106. package/cjs/render/contributions/render/arc-render.d.ts +2 -1
  107. package/cjs/render/contributions/render/arc-render.js +48 -17
  108. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  109. package/cjs/render/contributions/render/area-render.d.ts +1 -1
  110. package/cjs/render/contributions/render/area-render.js +22 -12
  111. package/cjs/render/contributions/render/area-render.js.map +1 -1
  112. package/cjs/render/contributions/render/circle-render.js +4 -4
  113. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  114. package/cjs/render/contributions/render/contributions/arc-contribution-render.d.ts +2 -3
  115. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +2 -4
  116. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  117. package/cjs/render/contributions/render/contributions/area-contribution-render.d.ts +2 -3
  118. package/cjs/render/contributions/render/contributions/area-contribution-render.js +2 -4
  119. package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  120. package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +17 -5
  121. package/cjs/render/contributions/render/contributions/base-contribution-render.js +28 -4
  122. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  123. package/cjs/render/contributions/render/contributions/circle-contribution-render.d.ts +2 -3
  124. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +2 -4
  125. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  126. package/cjs/render/contributions/render/contributions/constants.d.ts +11 -0
  127. package/cjs/render/contributions/render/contributions/constants.js +12 -0
  128. package/cjs/render/contributions/render/contributions/constants.js.map +1 -0
  129. package/cjs/render/contributions/render/contributions/group-contribution-render.d.ts +2 -3
  130. package/cjs/render/contributions/render/contributions/group-contribution-render.js +2 -4
  131. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  132. package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +2 -3
  133. package/cjs/render/contributions/render/contributions/image-contribution-render.js +2 -4
  134. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  135. package/cjs/render/contributions/render/contributions/path-contribution-render.d.ts +0 -1
  136. package/cjs/render/contributions/render/contributions/path-contribution-render.js +1 -3
  137. package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  138. package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +0 -1
  139. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +1 -3
  140. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  141. package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +4 -5
  142. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +4 -6
  143. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  144. package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +2 -3
  145. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +2 -4
  146. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  147. package/cjs/render/contributions/render/contributions/text-contribution-render.d.ts +1 -0
  148. package/cjs/render/contributions/render/contributions/text-contribution-render.js +6 -0
  149. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -0
  150. package/cjs/render/contributions/render/group-render.js +5 -5
  151. package/cjs/render/contributions/render/group-render.js.map +1 -1
  152. package/cjs/render/contributions/render/image-render.js +5 -5
  153. package/cjs/render/contributions/render/image-render.js.map +1 -1
  154. package/cjs/render/contributions/render/module.js +47 -36
  155. package/cjs/render/contributions/render/module.js.map +1 -1
  156. package/cjs/render/contributions/render/path-render.js +4 -4
  157. package/cjs/render/contributions/render/path-render.js.map +1 -1
  158. package/cjs/render/contributions/render/polygon-render.js +4 -4
  159. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  160. package/cjs/render/contributions/render/rect-render.js +4 -4
  161. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  162. package/cjs/render/contributions/render/symbol-render.js +4 -4
  163. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  164. package/cjs/render/contributions/render/text-render.d.ts +5 -1
  165. package/cjs/render/contributions/render/text-render.js +26 -6
  166. package/cjs/render/contributions/render/text-render.js.map +1 -1
  167. package/cjs/render/index.d.ts +1 -0
  168. package/cjs/render/index.js +2 -1
  169. package/cjs/render/index.js.map +1 -1
  170. package/dist/index.js +3140 -2400
  171. package/dist/index.min.js +1 -1
  172. package/es/canvas/contributions/browser/conical-gradient.d.ts +2 -2
  173. package/es/canvas/contributions/browser/conical-gradient.js +1 -1
  174. package/es/canvas/contributions/browser/conical-gradient.js.map +1 -1
  175. package/es/canvas/contributions/feishu/context.d.ts +2 -1
  176. package/es/canvas/contributions/feishu/context.js +3 -0
  177. package/es/canvas/contributions/feishu/context.js.map +1 -1
  178. package/es/canvas/contributions/lynx/context.d.ts +1 -0
  179. package/es/canvas/contributions/lynx/context.js +3 -0
  180. package/es/canvas/contributions/lynx/context.js.map +1 -1
  181. package/es/canvas/contributions/modules.d.ts +1 -1
  182. package/es/canvas/contributions/modules.js +3 -1
  183. package/es/canvas/contributions/modules.js.map +1 -1
  184. package/es/canvas/contributions/taro/context.d.ts +2 -1
  185. package/es/canvas/contributions/taro/context.js +3 -0
  186. package/es/canvas/contributions/taro/context.js.map +1 -1
  187. package/es/canvas/contributions/tt/context.d.ts +2 -1
  188. package/es/canvas/contributions/tt/context.js +3 -0
  189. package/es/canvas/contributions/tt/context.js.map +1 -1
  190. package/es/canvas/contributions/wx/canvas.d.ts +48 -0
  191. package/es/canvas/contributions/wx/canvas.js +101 -0
  192. package/es/canvas/contributions/wx/canvas.js.map +1 -0
  193. package/es/canvas/contributions/wx/context.d.ts +7 -0
  194. package/es/canvas/contributions/wx/context.js +21 -0
  195. package/es/canvas/contributions/wx/context.js.map +1 -0
  196. package/es/canvas/contributions/wx/index.d.ts +2 -0
  197. package/es/canvas/contributions/wx/index.js +4 -0
  198. package/es/canvas/contributions/wx/index.js.map +1 -0
  199. package/es/canvas/contributions/wx/modules.d.ts +3 -0
  200. package/es/canvas/contributions/wx/modules.js +13 -0
  201. package/es/canvas/contributions/wx/modules.js.map +1 -0
  202. package/es/common/contribution-provider.js +1 -1
  203. package/es/common/contribution-provider.js.map +1 -1
  204. package/es/common/render-area.d.ts +1 -1
  205. package/es/common/render-area.js +1 -0
  206. package/es/common/render-area.js.map +1 -1
  207. package/es/core/contributions/env/base-contribution.d.ts +3 -1
  208. package/es/core/contributions/env/base-contribution.js +6 -0
  209. package/es/core/contributions/env/base-contribution.js.map +1 -1
  210. package/es/core/contributions/env/feishu-contribution.d.ts +2 -0
  211. package/es/core/contributions/env/feishu-contribution.js +8 -2
  212. package/es/core/contributions/env/feishu-contribution.js.map +1 -1
  213. package/es/core/contributions/env/lynx-contribution.d.ts +2 -0
  214. package/es/core/contributions/env/lynx-contribution.js +18 -4
  215. package/es/core/contributions/env/lynx-contribution.js.map +1 -1
  216. package/es/core/contributions/env/modules.js +3 -0
  217. package/es/core/contributions/env/modules.js.map +1 -1
  218. package/es/core/contributions/env/node-contribution.d.ts +3 -1
  219. package/es/core/contributions/env/node-contribution.js +6 -0
  220. package/es/core/contributions/env/node-contribution.js.map +1 -1
  221. package/es/core/contributions/env/taro-contribution.d.ts +2 -0
  222. package/es/core/contributions/env/taro-contribution.js +8 -2
  223. package/es/core/contributions/env/taro-contribution.js.map +1 -1
  224. package/es/core/contributions/env/wx-contribution.d.ts +39 -0
  225. package/es/core/contributions/env/wx-contribution.js +130 -0
  226. package/es/core/contributions/env/wx-contribution.js.map +1 -0
  227. package/es/core/contributions/layerHandler/canvas2d-contribution.js +1 -1
  228. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  229. package/es/core/contributions/window/modules.js +3 -0
  230. package/es/core/contributions/window/modules.js.map +1 -1
  231. package/es/core/contributions/window/wx-contribution.d.ts +46 -0
  232. package/es/core/contributions/window/wx-contribution.js +161 -0
  233. package/es/core/contributions/window/wx-contribution.js.map +1 -0
  234. package/es/core/global.d.ts +5 -3
  235. package/es/core/global.js +19 -6
  236. package/es/core/global.js.map +1 -1
  237. package/es/core/layer-service.d.ts +4 -2
  238. package/es/core/layer-service.js +10 -6
  239. package/es/core/layer-service.js.map +1 -1
  240. package/es/core/layer.d.ts +3 -6
  241. package/es/core/layer.js +7 -6
  242. package/es/core/layer.js.map +1 -1
  243. package/es/core/stage.d.ts +7 -3
  244. package/es/core/stage.js +22 -9
  245. package/es/core/stage.js.map +1 -1
  246. package/es/graphic/graphic.d.ts +2 -0
  247. package/es/graphic/graphic.js +11 -0
  248. package/es/graphic/graphic.js.map +1 -1
  249. package/es/graphic/text.js +1 -1
  250. package/es/graphic/text.js.map +1 -1
  251. package/es/index.d.ts +3 -1
  252. package/es/index.js +5 -1
  253. package/es/index.js.map +1 -1
  254. package/es/interface/contribution.d.ts +15 -37
  255. package/es/interface/contribution.js.map +1 -1
  256. package/es/interface/core.d.ts +2 -2
  257. package/es/interface/core.js.map +1 -1
  258. package/es/interface/global.d.ts +6 -1
  259. package/es/interface/global.js.map +1 -1
  260. package/es/interface/graphic.d.ts +1 -0
  261. package/es/interface/graphic.js.map +1 -1
  262. package/es/interface/layer.d.ts +7 -0
  263. package/es/interface/layer.js.map +1 -1
  264. package/es/interface/stage.d.ts +7 -2
  265. package/es/interface/stage.js.map +1 -1
  266. package/es/plugins/builtin-plugin/poptip-plugin.d.ts +1 -0
  267. package/es/plugins/builtin-plugin/poptip-plugin.js +3 -0
  268. package/es/plugins/builtin-plugin/poptip-plugin.js.map +1 -0
  269. package/es/plugins/constants.d.ts +2 -0
  270. package/es/plugins/constants.js +4 -0
  271. package/es/plugins/constants.js.map +1 -0
  272. package/es/plugins/plugin-modules.js +9 -2
  273. package/es/plugins/plugin-modules.js.map +1 -1
  274. package/es/plugins/plugin-service.d.ts +3 -3
  275. package/es/plugins/plugin-service.js +17 -6
  276. package/es/plugins/plugin-service.js.map +1 -1
  277. package/es/render/contributions/render/arc-render.d.ts +2 -1
  278. package/es/render/contributions/render/arc-render.js +47 -15
  279. package/es/render/contributions/render/arc-render.js.map +1 -1
  280. package/es/render/contributions/render/area-render.d.ts +1 -1
  281. package/es/render/contributions/render/area-render.js +21 -10
  282. package/es/render/contributions/render/area-render.js.map +1 -1
  283. package/es/render/contributions/render/circle-render.js +3 -3
  284. package/es/render/contributions/render/circle-render.js.map +1 -1
  285. package/es/render/contributions/render/contributions/arc-contribution-render.d.ts +2 -3
  286. package/es/render/contributions/render/contributions/arc-contribution-render.js +1 -3
  287. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  288. package/es/render/contributions/render/contributions/area-contribution-render.d.ts +2 -3
  289. package/es/render/contributions/render/contributions/area-contribution-render.js +1 -3
  290. package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  291. package/es/render/contributions/render/contributions/base-contribution-render.d.ts +17 -5
  292. package/es/render/contributions/render/contributions/base-contribution-render.js +30 -3
  293. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  294. package/es/render/contributions/render/contributions/circle-contribution-render.d.ts +2 -3
  295. package/es/render/contributions/render/contributions/circle-contribution-render.js +1 -3
  296. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  297. package/es/render/contributions/render/contributions/constants.d.ts +11 -0
  298. package/es/render/contributions/render/contributions/constants.js +22 -0
  299. package/es/render/contributions/render/contributions/constants.js.map +1 -0
  300. package/es/render/contributions/render/contributions/group-contribution-render.d.ts +2 -3
  301. package/es/render/contributions/render/contributions/group-contribution-render.js +1 -3
  302. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  303. package/es/render/contributions/render/contributions/image-contribution-render.d.ts +2 -3
  304. package/es/render/contributions/render/contributions/image-contribution-render.js +1 -3
  305. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  306. package/es/render/contributions/render/contributions/path-contribution-render.d.ts +0 -1
  307. package/es/render/contributions/render/contributions/path-contribution-render.js +0 -2
  308. package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  309. package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +0 -1
  310. package/es/render/contributions/render/contributions/polygon-contribution-render.js +0 -2
  311. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  312. package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +4 -5
  313. package/es/render/contributions/render/contributions/rect-contribution-render.js +3 -5
  314. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  315. package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +2 -3
  316. package/es/render/contributions/render/contributions/symbol-contribution-render.js +1 -3
  317. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  318. package/es/render/contributions/render/contributions/text-contribution-render.d.ts +1 -0
  319. package/es/render/contributions/render/contributions/text-contribution-render.js +2 -0
  320. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -0
  321. package/es/render/contributions/render/group-render.js +3 -3
  322. package/es/render/contributions/render/group-render.js.map +1 -1
  323. package/es/render/contributions/render/image-render.js +3 -3
  324. package/es/render/contributions/render/image-render.js.map +1 -1
  325. package/es/render/contributions/render/module.js +28 -14
  326. package/es/render/contributions/render/module.js.map +1 -1
  327. package/es/render/contributions/render/path-render.js +3 -3
  328. package/es/render/contributions/render/path-render.js.map +1 -1
  329. package/es/render/contributions/render/polygon-render.js +3 -3
  330. package/es/render/contributions/render/polygon-render.js.map +1 -1
  331. package/es/render/contributions/render/rect-render.js +3 -3
  332. package/es/render/contributions/render/rect-render.js.map +1 -1
  333. package/es/render/contributions/render/symbol-render.js +3 -3
  334. package/es/render/contributions/render/symbol-render.js.map +1 -1
  335. package/es/render/contributions/render/text-render.d.ts +5 -1
  336. package/es/render/contributions/render/text-render.js +30 -6
  337. package/es/render/contributions/render/text-render.js.map +1 -1
  338. package/es/render/index.d.ts +1 -0
  339. package/es/render/index.js +2 -0
  340. package/es/render/index.js.map +1 -1
  341. package/es/tsconfig.tsbuildinfo +1 -1
  342. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { IContext2d } from '../../../interface';
2
- import { IConicalGradient } from '../../../interface/color';
1
+ import type { IContext2d } from '../../../interface';
2
+ import type { IConicalGradient } from '../../../interface/color';
3
3
  export declare class ColorInterpolate {
4
4
  private readonly rgbaSet;
5
5
  constructor(stops?: [number, string][], precision?: number);
@@ -115,7 +115,7 @@ function createConicalGradient(context, stops, x, y, deltaAngle, startAngle, end
115
115
  const imageData = conicalCtx.getImageData(0, 0, width, height);
116
116
  return conicalCanvas.width = imageData.width, conicalCanvas.height = imageData.height,
117
117
  conicalCtx.putImageData(imageData, 0, 0), pattern = context.createPattern(conicalCanvas, "no-repeat"),
118
- ConicalPatternStore.Set(stops, x, y, startAngle, endAngle, pattern, width, height),
118
+ pattern && ConicalPatternStore.Set(stops, x, y, startAngle, endAngle, pattern, width, height),
119
119
  pattern;
120
120
  }
121
121
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/browser/conical-gradient.ts"],"names":[],"mappings":"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","file":"conical-gradient.js","sourcesContent":["/**\n * 环形渐变部分源码借鉴https://github.com/parksben/create-conical-gradient/blob/master/LICENSE\n * MIT License\n\n * Copyright (c) 2020 parksben\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { pi2 } from '@visactor/vutils';\nimport { application } from '../../../application';\nimport { IContext2d } from '../../../interface';\nimport { IConicalGradient } from '../../../interface/color';\nimport { interpolateColor } from '../../../color-string/interpolate';\n\nclass ConicalCanvas {\n static canvas: HTMLCanvasElement;\n static ctx: CanvasRenderingContext2D | null;\n\n static GetCanvas() {\n try {\n if (!ConicalCanvas.canvas) {\n ConicalCanvas.canvas = application.global.createCanvas({});\n }\n return ConicalCanvas.canvas;\n } catch (err) {\n return null;\n }\n }\n\n static GetCtx() {\n if (!ConicalCanvas.ctx) {\n const conicalCanvas = ConicalCanvas.GetCanvas();\n ConicalCanvas.ctx = conicalCanvas.getContext('2d');\n }\n return ConicalCanvas.ctx;\n }\n}\n\n// todo 目前环形渐变缓存还是依赖于x和y,后续优化环形渐变\nexport class ColorInterpolate {\n private readonly rgbaSet: Uint8ClampedArray;\n\n constructor(stops: [number, string][] = [], precision = 100) {\n const canvas = ConicalCanvas.GetCanvas();\n const conicalCtx = ConicalCanvas.GetCtx();\n canvas.width = precision;\n canvas.height = 1;\n if (!conicalCtx) {\n return;\n }\n conicalCtx.translate(0, 0);\n if (!conicalCtx) {\n throw new Error('获取ctx发生错误');\n }\n\n const gradient = conicalCtx.createLinearGradient(0, 0, precision, 0);\n stops.forEach(stop => {\n gradient.addColorStop(stop[0], stop[1]);\n });\n\n conicalCtx.fillStyle = gradient;\n conicalCtx.fillRect(0, 0, precision, 1);\n\n this.rgbaSet = conicalCtx.getImageData(0, 0, precision, 1).data;\n }\n\n getColor(offset: number): string {\n const rgba = this.rgbaSet.slice(4 * offset, 4 * offset + 4);\n return `rgba(${rgba[0]}, ${rgba[1]}, ${rgba[2]}, ${rgba[3] / 255})`;\n }\n\n static dataMap: Map<string, ColorInterpolate> = new Map();\n // static lastCache: {\n // stops: [number, string][],\n // precision: number,\n // colorInter: ColorInterpolate,\n // step: number,\n // stepNum: number,\n // r: number,\n // lineWidth: number,\n // } | null = null;\n\n static GetOrCreate(stops: [number, string][] = [], precision = 100) {\n let str = '';\n stops.forEach(item => (str += item.join()));\n str += precision;\n let colorInter = ColorInterpolate.dataMap.get(str);\n if (!colorInter) {\n colorInter = new ColorInterpolate(stops, precision);\n ColorInterpolate.dataMap.set(str, colorInter);\n }\n return colorInter;\n }\n\n static SetColorInterpolateInstance(stops: string, ins: ColorInterpolate) {\n ColorInterpolate.dataMap.set(stops, ins);\n }\n\n static GetColorInterpolateInstance(stops: string): ColorInterpolate | undefined {\n return ColorInterpolate.dataMap.get(stops);\n }\n}\n\nclass ConicalPatternStore {\n private static cache: {\n [key: string]: {\n width: number;\n height: number;\n pattern: CanvasPattern;\n }[];\n } = {};\n private static ImageSize = [20, 40, 80, 160, 320, 640, 1280, 2560];\n\n static GetSize(minSize: number): number {\n for (let i = 0; i < ConicalPatternStore.ImageSize.length; i++) {\n if (ConicalPatternStore.ImageSize[i] >= minSize) {\n return ConicalPatternStore.ImageSize[i];\n }\n }\n return minSize;\n }\n\n static Get(\n stops: Array<[number, string]>,\n x: number,\n y: number,\n startAngle: number,\n endAngle: number,\n w: number,\n h: number\n ): CanvasPattern | null {\n const key = ConicalPatternStore.GenKey(stops, x, y, startAngle, endAngle);\n const data = ConicalPatternStore.cache[key];\n if (!data || data.length === 0) {\n return null;\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i].width >= w && data[i].height >= h) {\n return data[i].pattern;\n }\n }\n return null;\n }\n\n static Set(\n stops: Array<[number, string]>,\n x: number,\n y: number,\n startAngle: number,\n endAngle: number,\n pattern: CanvasPattern,\n w: number,\n h: number\n ) {\n const key = ConicalPatternStore.GenKey(stops, x, y, startAngle, endAngle);\n // 必然是顺序的,因为如果能get到的话就不需要set\n if (!ConicalPatternStore.cache[key]) {\n ConicalPatternStore.cache[key] = [\n {\n width: w,\n height: h,\n pattern\n }\n ];\n } else {\n ConicalPatternStore.cache[key].push({\n width: w,\n height: h,\n pattern\n });\n }\n }\n\n static GenKey(stops: Array<[number, string]>, x: number, y: number, startAngle: number, endAngle: number): string {\n return `${x},${y},${startAngle},${endAngle},${stops.join()}`;\n }\n}\n\nexport function getConicGradientAt(x: number, y: number, angle: number, color: IConicalGradient) {\n const { stops, startAngle, endAngle } = color;\n\n while (angle < 0) {\n angle += pi2;\n }\n while (angle > pi2) {\n angle -= pi2;\n }\n\n if (angle < startAngle) {\n return stops[0].color;\n }\n if (angle > endAngle) {\n return stops[0].color;\n }\n let percent = (angle - startAngle) / (endAngle - startAngle);\n let startStop: any;\n let endStop: any;\n for (let i = 0; i < stops.length; i++) {\n if (stops[i].offset >= percent) {\n startStop = stops[i - 1];\n endStop = stops[i];\n break;\n }\n }\n percent = (percent - startStop.offset) / (endStop.offset - startStop.offset);\n return interpolateColor(startStop.color, endStop.color, percent, false);\n}\n\n/**\n * 环形渐变效果\n * @param context\n * @param stops\n * @param x\n * @param y\n * @param deltaAngle 用于细分出颜色插值数组[start,,,,,,end, (没有用到的颜色)]\n * @param startAngle 实际开始的angle\n * @param endAngle 实际结束的angle\n * @param minW\n * @param minH\n * @returns\n */\nexport function createConicalGradient(\n context: IContext2d,\n stops: Array<[number, string]>,\n x: number,\n y: number,\n deltaAngle: number,\n startAngle: number,\n endAngle: number,\n minW: number,\n minH: number\n): null | CanvasPattern {\n const deltaDeg = Math.floor((deltaAngle * 180) / Math.PI);\n\n const conicalCanvas = ConicalCanvas.GetCanvas();\n const conicalCtx = ConicalCanvas.GetCtx();\n\n if (!conicalCtx) {\n return null;\n }\n const width = ConicalPatternStore.GetSize(minW);\n const height = ConicalPatternStore.GetSize(minH);\n let pattern = ConicalPatternStore.Get(stops, x, y, startAngle, endAngle, width, height);\n if (pattern) {\n return pattern;\n }\n\n const r = Math.sqrt(\n Math.max(\n Math.max(Math.pow(x, 2) + Math.pow(y, 2), Math.pow(width - x, 2) + Math.pow(y, 2)),\n Math.max(Math.pow(width - x, 2) + Math.pow(height - y, 2), Math.pow(x, 2) + Math.pow(height - y, 2))\n )\n );\n // 每一度一个三角形\n const stepNum = deltaDeg + 1;\n const step = deltaAngle / Math.max(1, stepNum - 1);\n const colorInter = ColorInterpolate.GetOrCreate(stops, stepNum);\n\n const lineWidth = (2 * Math.PI * r) / 360;\n\n conicalCanvas.width = width;\n conicalCanvas.height = height;\n conicalCtx.setTransform(1, 0, 0, 1, 0, 0);\n conicalCtx.clearRect(0, 0, width, height);\n conicalCtx.translate(x, y);\n conicalCtx.rotate(startAngle);\n for (let i = 0, len = stepNum - 1; i < len; i++) {\n if (startAngle + i * step > endAngle) {\n break;\n }\n const color = colorInter.getColor(i);\n conicalCtx.beginPath();\n conicalCtx.rotate(step);\n conicalCtx.moveTo(0, 0);\n conicalCtx.lineTo(r, -2 * lineWidth);\n conicalCtx.lineTo(r, 0);\n conicalCtx.fillStyle = color;\n conicalCtx.closePath();\n conicalCtx.fill();\n }\n\n const imageData = conicalCtx.getImageData(0, 0, width, height);\n\n conicalCanvas.width = imageData.width;\n conicalCanvas.height = imageData.height;\n conicalCtx.putImageData(imageData, 0, 0);\n pattern = context.createPattern(conicalCanvas, 'no-repeat');\n ConicalPatternStore.Set(stops, x, y, startAngle, endAngle, pattern, width, height);\n return pattern;\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/browser/conical-gradient.ts"],"names":[],"mappings":"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","file":"conical-gradient.js","sourcesContent":["/**\n * 环形渐变部分源码借鉴https://github.com/parksben/create-conical-gradient/blob/master/LICENSE\n * MIT License\n\n * Copyright (c) 2020 parksben\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { pi2 } from '@visactor/vutils';\nimport { application } from '../../../application';\nimport type { IContext2d } from '../../../interface';\nimport type { IConicalGradient } from '../../../interface/color';\nimport { interpolateColor } from '../../../color-string/interpolate';\n\nclass ConicalCanvas {\n static canvas: HTMLCanvasElement;\n static ctx: CanvasRenderingContext2D | null;\n\n static GetCanvas() {\n try {\n if (!ConicalCanvas.canvas) {\n ConicalCanvas.canvas = application.global.createCanvas({});\n }\n return ConicalCanvas.canvas;\n } catch (err) {\n return null;\n }\n }\n\n static GetCtx() {\n if (!ConicalCanvas.ctx) {\n const conicalCanvas = ConicalCanvas.GetCanvas();\n ConicalCanvas.ctx = conicalCanvas.getContext('2d');\n }\n return ConicalCanvas.ctx;\n }\n}\n\n// todo 目前环形渐变缓存还是依赖于x和y,后续优化环形渐变\nexport class ColorInterpolate {\n private readonly rgbaSet: Uint8ClampedArray;\n\n constructor(stops: [number, string][] = [], precision = 100) {\n const canvas = ConicalCanvas.GetCanvas();\n const conicalCtx = ConicalCanvas.GetCtx();\n canvas.width = precision;\n canvas.height = 1;\n if (!conicalCtx) {\n return;\n }\n conicalCtx.translate(0, 0);\n if (!conicalCtx) {\n throw new Error('获取ctx发生错误');\n }\n\n const gradient = conicalCtx.createLinearGradient(0, 0, precision, 0);\n stops.forEach(stop => {\n gradient.addColorStop(stop[0], stop[1]);\n });\n\n conicalCtx.fillStyle = gradient;\n conicalCtx.fillRect(0, 0, precision, 1);\n\n this.rgbaSet = conicalCtx.getImageData(0, 0, precision, 1).data;\n }\n\n getColor(offset: number): string {\n const rgba = this.rgbaSet.slice(4 * offset, 4 * offset + 4);\n return `rgba(${rgba[0]}, ${rgba[1]}, ${rgba[2]}, ${rgba[3] / 255})`;\n }\n\n static dataMap: Map<string, ColorInterpolate> = new Map();\n // static lastCache: {\n // stops: [number, string][],\n // precision: number,\n // colorInter: ColorInterpolate,\n // step: number,\n // stepNum: number,\n // r: number,\n // lineWidth: number,\n // } | null = null;\n\n static GetOrCreate(stops: [number, string][] = [], precision = 100) {\n let str = '';\n stops.forEach(item => (str += item.join()));\n str += precision;\n let colorInter = ColorInterpolate.dataMap.get(str);\n if (!colorInter) {\n colorInter = new ColorInterpolate(stops, precision);\n ColorInterpolate.dataMap.set(str, colorInter);\n }\n return colorInter;\n }\n\n static SetColorInterpolateInstance(stops: string, ins: ColorInterpolate) {\n ColorInterpolate.dataMap.set(stops, ins);\n }\n\n static GetColorInterpolateInstance(stops: string): ColorInterpolate | undefined {\n return ColorInterpolate.dataMap.get(stops);\n }\n}\n\nclass ConicalPatternStore {\n private static cache: {\n [key: string]: {\n width: number;\n height: number;\n pattern: CanvasPattern;\n }[];\n } = {};\n private static ImageSize = [20, 40, 80, 160, 320, 640, 1280, 2560];\n\n static GetSize(minSize: number): number {\n for (let i = 0; i < ConicalPatternStore.ImageSize.length; i++) {\n if (ConicalPatternStore.ImageSize[i] >= minSize) {\n return ConicalPatternStore.ImageSize[i];\n }\n }\n return minSize;\n }\n\n static Get(\n stops: Array<[number, string]>,\n x: number,\n y: number,\n startAngle: number,\n endAngle: number,\n w: number,\n h: number\n ): CanvasPattern | null {\n const key = ConicalPatternStore.GenKey(stops, x, y, startAngle, endAngle);\n const data = ConicalPatternStore.cache[key];\n if (!data || data.length === 0) {\n return null;\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i].width >= w && data[i].height >= h) {\n return data[i].pattern;\n }\n }\n return null;\n }\n\n static Set(\n stops: Array<[number, string]>,\n x: number,\n y: number,\n startAngle: number,\n endAngle: number,\n pattern: CanvasPattern,\n w: number,\n h: number\n ) {\n const key = ConicalPatternStore.GenKey(stops, x, y, startAngle, endAngle);\n // 必然是顺序的,因为如果能get到的话就不需要set\n if (!ConicalPatternStore.cache[key]) {\n ConicalPatternStore.cache[key] = [\n {\n width: w,\n height: h,\n pattern\n }\n ];\n } else {\n ConicalPatternStore.cache[key].push({\n width: w,\n height: h,\n pattern\n });\n }\n }\n\n static GenKey(stops: Array<[number, string]>, x: number, y: number, startAngle: number, endAngle: number): string {\n return `${x},${y},${startAngle},${endAngle},${stops.join()}`;\n }\n}\n\nexport function getConicGradientAt(x: number, y: number, angle: number, color: IConicalGradient) {\n const { stops, startAngle, endAngle } = color;\n\n while (angle < 0) {\n angle += pi2;\n }\n while (angle > pi2) {\n angle -= pi2;\n }\n\n if (angle < startAngle) {\n return stops[0].color;\n }\n if (angle > endAngle) {\n return stops[0].color;\n }\n let percent = (angle - startAngle) / (endAngle - startAngle);\n let startStop: any;\n let endStop: any;\n for (let i = 0; i < stops.length; i++) {\n if (stops[i].offset >= percent) {\n startStop = stops[i - 1];\n endStop = stops[i];\n break;\n }\n }\n percent = (percent - startStop.offset) / (endStop.offset - startStop.offset);\n return interpolateColor(startStop.color, endStop.color, percent, false);\n}\n\n/**\n * 环形渐变效果\n * @param context\n * @param stops\n * @param x\n * @param y\n * @param deltaAngle 用于细分出颜色插值数组[start,,,,,,end, (没有用到的颜色)]\n * @param startAngle 实际开始的angle\n * @param endAngle 实际结束的angle\n * @param minW\n * @param minH\n * @returns\n */\nexport function createConicalGradient(\n context: IContext2d,\n stops: Array<[number, string]>,\n x: number,\n y: number,\n deltaAngle: number,\n startAngle: number,\n endAngle: number,\n minW: number,\n minH: number\n): null | CanvasPattern {\n const deltaDeg = Math.floor((deltaAngle * 180) / Math.PI);\n\n const conicalCanvas = ConicalCanvas.GetCanvas();\n const conicalCtx = ConicalCanvas.GetCtx();\n\n if (!conicalCtx) {\n return null;\n }\n const width = ConicalPatternStore.GetSize(minW);\n const height = ConicalPatternStore.GetSize(minH);\n let pattern = ConicalPatternStore.Get(stops, x, y, startAngle, endAngle, width, height);\n if (pattern) {\n return pattern;\n }\n\n const r = Math.sqrt(\n Math.max(\n Math.max(Math.pow(x, 2) + Math.pow(y, 2), Math.pow(width - x, 2) + Math.pow(y, 2)),\n Math.max(Math.pow(width - x, 2) + Math.pow(height - y, 2), Math.pow(x, 2) + Math.pow(height - y, 2))\n )\n );\n // 每一度一个三角形\n const stepNum = deltaDeg + 1;\n const step = deltaAngle / Math.max(1, stepNum - 1);\n const colorInter = ColorInterpolate.GetOrCreate(stops, stepNum);\n\n const lineWidth = (2 * Math.PI * r) / 360;\n\n conicalCanvas.width = width;\n conicalCanvas.height = height;\n conicalCtx.setTransform(1, 0, 0, 1, 0, 0);\n conicalCtx.clearRect(0, 0, width, height);\n conicalCtx.translate(x, y);\n conicalCtx.rotate(startAngle);\n for (let i = 0, len = stepNum - 1; i < len; i++) {\n if (startAngle + i * step > endAngle) {\n break;\n }\n const color = colorInter.getColor(i);\n conicalCtx.beginPath();\n conicalCtx.rotate(step);\n conicalCtx.moveTo(0, 0);\n conicalCtx.lineTo(r, -2 * lineWidth);\n conicalCtx.lineTo(r, 0);\n conicalCtx.fillStyle = color;\n conicalCtx.closePath();\n conicalCtx.fill();\n }\n\n const imageData = conicalCtx.getImageData(0, 0, width, height);\n\n conicalCanvas.width = imageData.width;\n conicalCanvas.height = imageData.height;\n conicalCtx.putImageData(imageData, 0, 0);\n pattern = context.createPattern(conicalCanvas, 'no-repeat');\n pattern && ConicalPatternStore.Set(stops, x, y, startAngle, endAngle, pattern, width, height);\n return pattern;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { IContext2d, EnvType } from '../../../interface';
1
+ import type { IContext2d, EnvType } from '../../../interface';
2
2
  import { BrowserContext2d } from '../browser';
3
3
  export declare class FeishuContext2d extends BrowserContext2d implements IContext2d {
4
4
  static env: EnvType;
@@ -8,4 +8,5 @@ export declare class FeishuContext2d extends BrowserContext2d implements IContex
8
8
  set globalAlpha(ga: number);
9
9
  getImageData(sx: number, sy: number, sw: number, sh: number): any;
10
10
  draw(): void;
11
+ createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern;
11
12
  }
@@ -46,6 +46,9 @@ let FeishuContext2d = class extends browser_1.BrowserContext2d {
46
46
  }));
47
47
  }));
48
48
  }
49
+ createPattern(image, repetition) {
50
+ return null;
51
+ }
49
52
  };
50
53
 
51
54
  FeishuContext2d.env = "feishu", FeishuContext2d = __decorate([ (0, inversify_1.injectable)() ], FeishuContext2d),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/feishu/context.ts"],"names":[],"mappings":";;;;;;;;;AACA,yCAAuC;AAEvC,wCAA8C;AAOvC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,0BAAgB;IAQnD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,WAAW,CAAC,EAAU;QACxB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACrC,IAAI;gBACF,EAAE,CAAC,kBAAkB,CAAC;oBACpB,QAAQ,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,mCAAI,IAAI,CAAC,MAAM,CAAC,EAAE;oBACvD,CAAC,EAAE,EAAE;oBACL,CAAC,EAAE,EAAE;oBACL,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,OAAO,CAAC,GAAQ;wBACd,OAAO,CAAC,GAAG,CAAC,CAAC;oBACf,CAAC;iBACF,CAAC,CAAC;aACJ;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAoB,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;gBACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;;AA1CM,mBAAG,GAAY,QAAQ,CAAC;AADpB,eAAe;IAD3B,IAAA,sBAAU,GAAE;GACA,eAAe,CA4C3B;AA5CY,0CAAe","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from 'inversify';\nimport { IContext2d, EnvType } from '../../../interface';\nimport { BrowserContext2d } from '../browser';\n\ndeclare const tt: {\n canvasGetImageData: (d: any) => any;\n};\n\n@injectable()\nexport class FeishuContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'feishu';\n\n declare drawPromise?: Promise<any>;\n\n _globalAlpha: number;\n\n // feishu小程序无法正常获取到globalAlpha\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga;\n this._globalAlpha = ga;\n }\n\n getImageData(sx: number, sy: number, sw: number, sh: number): any {\n return new Promise((resolve, reject) => {\n try {\n tt.canvasGetImageData({\n canvasId: this.canvas.nativeCanvas.id ?? this.canvas.id,\n x: sx,\n y: sy,\n width: sw,\n height: sh,\n success(res: any) {\n resolve(res);\n }\n });\n } catch (err) {\n reject(err);\n }\n });\n }\n\n draw() {\n const _context = this.nativeContext as any;\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/feishu/context.ts"],"names":[],"mappings":";;;;;;;;;AACA,yCAAuC;AAEvC,wCAA8C;AAOvC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,0BAAgB;IAQnD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,WAAW,CAAC,EAAU;QACxB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACrC,IAAI;gBACF,EAAE,CAAC,kBAAkB,CAAC;oBACpB,QAAQ,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,mCAAI,IAAI,CAAC,MAAM,CAAC,EAAE;oBACvD,CAAC,EAAE,EAAE;oBACL,CAAC,EAAE,EAAE;oBACL,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,OAAO,CAAC,GAAQ;wBACd,OAAO,CAAC,GAAG,CAAC,CAAC;oBACf,CAAC;iBACF,CAAC,CAAC;aACJ;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAoB,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;gBACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,KAA8D,EAAE,UAAkB;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;;AA7CM,mBAAG,GAAY,QAAQ,CAAC;AADpB,eAAe;IAD3B,IAAA,sBAAU,GAAE;GACA,eAAe,CA+C3B;AA/CY,0CAAe","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from 'inversify';\nimport type { IContext2d, EnvType } from '../../../interface';\nimport { BrowserContext2d } from '../browser';\n\ndeclare const tt: {\n canvasGetImageData: (d: any) => any;\n};\n\n@injectable()\nexport class FeishuContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'feishu';\n\n declare drawPromise?: Promise<any>;\n\n _globalAlpha: number;\n\n // feishu小程序无法正常获取到globalAlpha\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga;\n this._globalAlpha = ga;\n }\n\n getImageData(sx: number, sy: number, sw: number, sh: number): any {\n return new Promise((resolve, reject) => {\n try {\n tt.canvasGetImageData({\n canvasId: this.canvas.nativeCanvas.id ?? this.canvas.id,\n x: sx,\n y: sy,\n width: sw,\n height: sh,\n success(res: any) {\n resolve(res);\n }\n });\n } catch (err) {\n reject(err);\n }\n });\n }\n\n draw() {\n const _context = this.nativeContext as any;\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n}\n"]}
@@ -8,5 +8,6 @@ export declare class LynxContext2d extends BrowserContext2d implements IContext2
8
8
  set globalAlpha(ga: number);
9
9
  setLineDash(segments: number[]): void;
10
10
  protected _setStrokeStyle(params: ISetStrokeStyleParams, attribute: IStrokeStyleParams, offsetX: number, offsetY: number, defaultParams?: IStrokeStyleParams): void;
11
+ createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern;
11
12
  draw(): void;
12
13
  }
@@ -39,6 +39,9 @@ let LynxContext2d = class extends browser_1.BrowserContext2d {
39
39
  _context.lineCap = lineCap, _context.miterLimit = miterLimit;
40
40
  }
41
41
  }
42
+ createPattern(image, repetition) {
43
+ return null;
44
+ }
42
45
  draw() {
43
46
  const _context = this.nativeContext;
44
47
  this.drawPromise = new Promise((resolve => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/lynx/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from 'inversify';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '../../../interface';\nimport { createColor, getScaledStroke } from '../../../common/canvas-utils';\nimport { BrowserContext2d } from '../browser';\n\n@injectable()\nexport class LynxContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'lynx';\n\n declare drawPromise?: Promise<any>;\n\n declare _globalAlpha: number;\n\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga;\n this._globalAlpha = ga;\n }\n\n setLineDash(segments: number[]) {\n const a = arguments;\n const _context = this.nativeContext;\n\n if (!!this.nativeContext.setLineDash) {\n const lineDash = a[0];\n // lynx环境中lineDash不能为[0, 0]\n if (lineDash[0] === 0 && lineDash[1] === 0) {\n return;\n }\n _context.setLineDash(lineDash);\n }\n }\n\n protected _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit\n } = attribute;\n _context.globalAlpha = strokeOpacity * opacity;\n _context.lineWidth = getScaledStroke(this, lineWidth, this.dpr);\n _context.strokeStyle = createColor(this, stroke as any, params, offsetX, offsetY);\n _context.lineJoin = lineJoin;\n // lynx环境中lineDash不能为[0, 0]\n if (!(lineDash[0] === 0 && lineDash[1] === 0)) {\n _context.setLineDash(lineDash);\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n draw() {\n const _context = this.nativeContext as any;\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/lynx/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from 'inversify';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '../../../interface';\nimport { createColor, getScaledStroke } from '../../../common/canvas-utils';\nimport { BrowserContext2d } from '../browser';\n\n@injectable()\nexport class LynxContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'lynx';\n\n declare drawPromise?: Promise<any>;\n\n declare _globalAlpha: number;\n\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga;\n this._globalAlpha = ga;\n }\n\n setLineDash(segments: number[]) {\n const a = arguments;\n const _context = this.nativeContext;\n\n if (!!this.nativeContext.setLineDash) {\n const lineDash = a[0];\n // lynx环境中lineDash不能为[0, 0]\n if (lineDash[0] === 0 && lineDash[1] === 0) {\n return;\n }\n _context.setLineDash(lineDash);\n }\n }\n\n protected _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit\n } = attribute;\n _context.globalAlpha = strokeOpacity * opacity;\n _context.lineWidth = getScaledStroke(this, lineWidth, this.dpr);\n _context.strokeStyle = createColor(this, stroke as any, params, offsetX, offsetY);\n _context.lineJoin = lineJoin;\n // lynx环境中lineDash不能为[0, 0]\n if (!(lineDash[0] === 0 && lineDash[1] === 0)) {\n _context.setLineDash(lineDash);\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n\n draw() {\n const _context = this.nativeContext as any;\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- import { Container } from 'inversify';
1
+ import type { Container } from 'inversify';
2
2
  export default function load(container: Container): void;
@@ -10,11 +10,11 @@ Object.defineProperty(exports, "__esModule", {
10
10
  value: !0
11
11
  });
12
12
 
13
- const modules_1 = __importDefault(require("./browser/modules")), modules_2 = __importDefault(require("./taro/modules")), modules_3 = __importDefault(require("./feishu/modules")), modules_4 = __importDefault(require("./lynx/modules")), modules_5 = __importDefault(require("./node/modules"));
13
+ const modules_1 = __importDefault(require("./browser/modules")), modules_2 = __importDefault(require("./taro/modules")), modules_3 = __importDefault(require("./feishu/modules")), modules_4 = __importDefault(require("./lynx/modules")), modules_5 = __importDefault(require("./wx/modules")), modules_6 = __importDefault(require("./node/modules"));
14
14
 
15
15
  function load(container) {
16
16
  container.load(modules_1.default), container.load(modules_3.default), container.load(modules_2.default),
17
- container.load(modules_4.default), container.load(modules_5.default);
17
+ container.load(modules_4.default), container.load(modules_5.default), container.load(modules_6.default);
18
18
  }
19
19
 
20
20
  exports.default = load;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/modules.ts"],"names":[],"mappings":";;;;;AACA,gEAA8C;AAC9C,6DAAwC;AACxC,+DAA4C;AAC5C,6DAAwC;AACxC,6DAAwC;AAExC,SAAwB,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,iBAAa,CAAC,CAAC;IAC9B,SAAS,CAAC,IAAI,CAAC,iBAAY,CAAC,CAAC;IAC7B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;AAC7B,CAAC;AAND,uBAMC","file":"modules.js","sourcesContent":["import { Container } from 'inversify';\nimport browserModule from './browser/modules';\nimport taroModule from './taro/modules';\nimport feishuModule from './feishu/modules';\nimport lynxModule from './lynx/modules';\nimport nodeModule from './node/modules';\n\nexport default function load(container: Container) {\n container.load(browserModule);\n container.load(feishuModule);\n container.load(taroModule);\n container.load(lynxModule);\n container.load(nodeModule);\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/modules.ts"],"names":[],"mappings":";;;;;AACA,gEAA8C;AAC9C,6DAAwC;AACxC,+DAA4C;AAC5C,6DAAwC;AACxC,2DAAoC;AACpC,6DAAwC;AAExC,SAAwB,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,iBAAa,CAAC,CAAC;IAC9B,SAAS,CAAC,IAAI,CAAC,iBAAY,CAAC,CAAC;IAC7B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,iBAAQ,CAAC,CAAC;IACzB,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;AAC7B,CAAC;AAPD,uBAOC","file":"modules.js","sourcesContent":["import type { Container } from 'inversify';\nimport browserModule from './browser/modules';\nimport taroModule from './taro/modules';\nimport feishuModule from './feishu/modules';\nimport lynxModule from './lynx/modules';\nimport wxModule from './wx/modules';\nimport nodeModule from './node/modules';\n\nexport default function load(container: Container) {\n container.load(browserModule);\n container.load(feishuModule);\n container.load(taroModule);\n container.load(lynxModule);\n container.load(wxModule);\n container.load(nodeModule);\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ICommonStyleParams, IContext2d, ISetCommonStyleParams, ISetStrokeStyleParams, IStrokeStyleParams, ITextStyleParams, IConicalGradientData, EnvType } from '../../../interface';
1
+ import type { ICommonStyleParams, IContext2d, ISetCommonStyleParams, ISetStrokeStyleParams, IStrokeStyleParams, ITextStyleParams, IConicalGradientData, EnvType } from '../../../interface';
2
2
  import { BrowserContext2d } from '../browser';
3
3
  interface ITTContext {
4
4
  setFillStyle: (c: string | CanvasGradient) => void;
@@ -27,5 +27,6 @@ export declare class TaroContext2d extends BrowserContext2d implements IContext2
27
27
  setTextStyleWithoutAlignBaseline(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams): void;
28
28
  setTextStyle(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams): void;
29
29
  createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData;
30
+ createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern;
30
31
  }
31
32
  export {};
@@ -58,6 +58,9 @@ let TaroContext2d = class extends browser_1.BrowserContext2d {
58
58
  createConicGradient(x, y, startAngle, endAngle) {
59
59
  return null;
60
60
  }
61
+ createPattern(image, repetition) {
62
+ return null;
63
+ }
61
64
  };
62
65
 
63
66
  TaroContext2d.env = "taro", TaroContext2d = __decorate([ (0, inversify_1.injectable)() ], TaroContext2d),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/taro/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from 'inversify';\nimport {\n ICommonStyleParams,\n IContext2d,\n ISetCommonStyleParams,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n ITextStyleParams,\n IConicalGradientData,\n EnvType\n} from '../../../interface';\nimport { BrowserContext2d } from '../browser';\nimport { createColor, getScaledStroke } from '../../../common/canvas-utils';\nimport { getContextFont } from '../../../common/text';\n\n// 考虑taro-feishu等环境\ninterface ITTContext {\n setFillStyle: (c: string | CanvasGradient) => void;\n setStrokeStyle: (c: string | CanvasGradient) => void;\n setGlobalAlpha: (alpha: number) => void;\n setLineWidth: (width: number) => void;\n setMiterLimit: (limit: number) => void;\n setLineJoin: (lineJoin: string) => void;\n setLineCap: (lineCap: string) => void;\n setTextAlign: (align: string) => void;\n setTextBaseline: (baseline: string) => void;\n setLineDash: (lineDash: number[]) => void;\n setFontSize: ((size: number) => void) & ((fontSize: number) => void);\n font: string;\n}\n\n@injectable()\nexport class TaroContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'taro';\n\n declare nativeContext: ITTContext;\n\n declare _globalAlpha: number;\n\n // feishu小程序无法正常获取到globalAlpha\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.setGlobalAlpha(ga);\n this._globalAlpha = ga;\n }\n\n draw() {\n const _context = this.nativeContext as any;\n _context.draw();\n }\n\n strokeText(text: string, x: number, y: number) {\n return;\n }\n\n _setCommonStyle(\n params: ISetCommonStyleParams,\n attribute: ICommonStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: ICommonStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.fillAttributes;\n }\n const {\n fillOpacity = defaultParams.fillOpacity,\n opacity = defaultParams.opacity,\n fill = defaultParams.fill\n } = attribute;\n if (fillOpacity > 1e-12 && opacity > 1e-12) {\n _context.setGlobalAlpha(fillOpacity * opacity);\n _context.setFillStyle(createColor(this, fill, params, offsetX, offsetY));\n // todo 小程序\n } else {\n // _context.setGlobalAlpha(fillOpacity * opacity);\n }\n }\n\n _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit\n } = attribute;\n _context.setGlobalAlpha(strokeOpacity * opacity);\n _context.setLineWidth(getScaledStroke(this, lineWidth, this.dpr));\n _context.setStrokeStyle(createColor(this, stroke as any, params, offsetX, offsetY));\n _context.setLineJoin(lineJoin);\n _context.setLineDash(lineDash);\n _context.setLineCap(lineCap);\n _context.setMiterLimit(miterLimit);\n }\n }\n setTextStyleWithoutAlignBaseline(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.textAttributes;\n }\n if (params.font) {\n _context.font = params.font;\n } else {\n _context.font = getContextFont(params, defaultParams);\n }\n _context.setFontSize(params.fontSize ?? defaultParams.fontSize);\n // // 这里不使用defaultParams\n // _context.textAlign = params.textAlign || 'left';\n // _context.textBaseline = params.textBaseline || 'alphabetic';\n }\n setTextStyle(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.textAttributes;\n }\n if (params.font) {\n _context.font = params.font;\n } else {\n _context.font = getContextFont(params, defaultParams);\n }\n _context.setTextAlign(params.textAlign ?? defaultParams.textAlign);\n _context.setTextBaseline(params.textBaseline ?? defaultParams.textBaseline);\n }\n createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData {\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/taro/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from 'inversify';\nimport type {\n ICommonStyleParams,\n IContext2d,\n ISetCommonStyleParams,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n ITextStyleParams,\n IConicalGradientData,\n EnvType\n} from '../../../interface';\nimport { BrowserContext2d } from '../browser';\nimport { createColor, getScaledStroke } from '../../../common/canvas-utils';\nimport { getContextFont } from '../../../common/text';\n\n// 考虑taro-feishu等环境\ninterface ITTContext {\n setFillStyle: (c: string | CanvasGradient) => void;\n setStrokeStyle: (c: string | CanvasGradient) => void;\n setGlobalAlpha: (alpha: number) => void;\n setLineWidth: (width: number) => void;\n setMiterLimit: (limit: number) => void;\n setLineJoin: (lineJoin: string) => void;\n setLineCap: (lineCap: string) => void;\n setTextAlign: (align: string) => void;\n setTextBaseline: (baseline: string) => void;\n setLineDash: (lineDash: number[]) => void;\n setFontSize: ((size: number) => void) & ((fontSize: number) => void);\n font: string;\n}\n\n@injectable()\nexport class TaroContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'taro';\n\n declare nativeContext: ITTContext;\n\n declare _globalAlpha: number;\n\n // feishu小程序无法正常获取到globalAlpha\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.setGlobalAlpha(ga);\n this._globalAlpha = ga;\n }\n\n draw() {\n const _context = this.nativeContext as any;\n _context.draw();\n }\n\n strokeText(text: string, x: number, y: number) {\n return;\n }\n\n _setCommonStyle(\n params: ISetCommonStyleParams,\n attribute: ICommonStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: ICommonStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.fillAttributes;\n }\n const {\n fillOpacity = defaultParams.fillOpacity,\n opacity = defaultParams.opacity,\n fill = defaultParams.fill\n } = attribute;\n if (fillOpacity > 1e-12 && opacity > 1e-12) {\n _context.setGlobalAlpha(fillOpacity * opacity);\n _context.setFillStyle(createColor(this, fill, params, offsetX, offsetY));\n // todo 小程序\n } else {\n // _context.setGlobalAlpha(fillOpacity * opacity);\n }\n }\n\n _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit\n } = attribute;\n _context.setGlobalAlpha(strokeOpacity * opacity);\n _context.setLineWidth(getScaledStroke(this, lineWidth, this.dpr));\n _context.setStrokeStyle(createColor(this, stroke as any, params, offsetX, offsetY));\n _context.setLineJoin(lineJoin);\n _context.setLineDash(lineDash);\n _context.setLineCap(lineCap);\n _context.setMiterLimit(miterLimit);\n }\n }\n setTextStyleWithoutAlignBaseline(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.textAttributes;\n }\n if (params.font) {\n _context.font = params.font;\n } else {\n _context.font = getContextFont(params, defaultParams);\n }\n _context.setFontSize(params.fontSize ?? defaultParams.fontSize);\n // // 这里不使用defaultParams\n // _context.textAlign = params.textAlign || 'left';\n // _context.textBaseline = params.textBaseline || 'alphabetic';\n }\n setTextStyle(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.textAttributes;\n }\n if (params.font) {\n _context.font = params.font;\n } else {\n _context.font = getContextFont(params, defaultParams);\n }\n _context.setTextAlign(params.textAlign ?? defaultParams.textAlign);\n _context.setTextBaseline(params.textBaseline ?? defaultParams.textBaseline);\n }\n createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData {\n return null;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { IContext2d, IConicalGradientData, EnvType } from '../../../interface';
1
+ import type { IContext2d, IConicalGradientData, EnvType } from '../../../interface';
2
2
  import { BrowserContext2d } from '../browser';
3
3
  export declare class TTContext2d extends BrowserContext2d implements IContext2d {
4
4
  static env: EnvType;
@@ -6,4 +6,5 @@ export declare class TTContext2d extends BrowserContext2d implements IContext2d
6
6
  get globalAlpha(): number;
7
7
  set globalAlpha(ga: number);
8
8
  createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData;
9
+ createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern;
9
10
  }
@@ -22,6 +22,9 @@ let TTContext2d = class extends browser_1.BrowserContext2d {
22
22
  createConicGradient(x, y, startAngle, endAngle) {
23
23
  return null;
24
24
  }
25
+ createPattern(image, repetition) {
26
+ return null;
27
+ }
25
28
  };
26
29
 
27
30
  TTContext2d.env = "tt", TTContext2d = __decorate([ (0, inversify_1.injectable)() ], TTContext2d),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/tt/context.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6CAA0C;AAC1C,yCAAuC;AAEvC,wCAA8C;AAE9C,MAAM,UAAU,GAAG,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAGzC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,0BAAgB;IAM/C,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,WAAW,CAAC,EAAU;QACxB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,mBAAmB,CAAC,CAAS,EAAE,CAAS,EAAE,UAAkB,EAAE,QAAgB;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;;AAfM,eAAG,GAAY,IAAI,CAAC;AADhB,WAAW;IADvB,IAAA,sBAAU,GAAE;GACA,WAAW,CAiBvB;AAjBY,kCAAW","file":"context.js","sourcesContent":["import { Matrix } from '@visactor/vutils';\nimport { injectable } from 'inversify';\nimport { IContext2d, IConicalGradientData, EnvType } from '../../../interface';\nimport { BrowserContext2d } from '../browser';\n\nconst initMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n\n@injectable()\nexport class TTContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'tt';\n\n _globalAlpha: number;\n\n // feishu小程序无法正常获取到globalAlpha\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga;\n this._globalAlpha = ga;\n }\n\n createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData {\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/tt/context.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6CAA0C;AAC1C,yCAAuC;AAEvC,wCAA8C;AAE9C,MAAM,UAAU,GAAG,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAGzC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,0BAAgB;IAM/C,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,WAAW,CAAC,EAAU;QACxB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,mBAAmB,CAAC,CAAS,EAAE,CAAS,EAAE,UAAkB,EAAE,QAAgB;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,KAA8D,EAAE,UAAkB;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;;AAnBM,eAAG,GAAY,IAAI,CAAC;AADhB,WAAW;IADvB,IAAA,sBAAU,GAAE;GACA,WAAW,CAqBvB;AArBY,kCAAW","file":"context.js","sourcesContent":["import { Matrix } from '@visactor/vutils';\nimport { injectable } from 'inversify';\nimport type { IContext2d, IConicalGradientData, EnvType } from '../../../interface';\nimport { BrowserContext2d } from '../browser';\n\nconst initMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n\n@injectable()\nexport class TTContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'tt';\n\n _globalAlpha: number;\n\n // feishu小程序无法正常获取到globalAlpha\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga;\n this._globalAlpha = ga;\n }\n\n createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData {\n return null;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n}\n"]}
@@ -0,0 +1,48 @@
1
+ import type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
2
+ export declare class WxCanvas implements ICanvas {
3
+ static env: EnvType;
4
+ private _displayWidth;
5
+ private _displayHeight;
6
+ private _id;
7
+ private _pixelWidth;
8
+ private _pixelHeight;
9
+ private _x;
10
+ private _y;
11
+ private _dpr;
12
+ private _container?;
13
+ private _nativeCanvas;
14
+ private _context;
15
+ private _visiable;
16
+ get id(): number | string;
17
+ get x(): number;
18
+ get y(): number;
19
+ get nativeCanvas(): HTMLCanvasElement;
20
+ get width(): number;
21
+ set width(width: number);
22
+ get height(): number;
23
+ set height(height: number);
24
+ get displayWidth(): number;
25
+ get displayHeight(): number;
26
+ getContext(str?: string): IContext2d;
27
+ get visiable(): boolean;
28
+ set visiable(visiable: boolean);
29
+ get dpr(): number;
30
+ set dpr(dpr: number);
31
+ constructor(params: CanvasConfigType);
32
+ getNativeCanvas(): HTMLCanvasElement;
33
+ resetStyle(params: Partial<CanvasConfigType>): void;
34
+ applyPosition(): void;
35
+ hide(): void;
36
+ show(): void;
37
+ resize(width: number, height: number): void;
38
+ toDataURL(): string;
39
+ toDataURL(mimeType: 'image/png'): string;
40
+ toDataURL(mimeType: 'image/jpeg', quality: number): string;
41
+ readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData>;
42
+ convertToBlob(options?: {
43
+ type?: string | undefined;
44
+ quality?: number | undefined;
45
+ } | undefined): Promise<Blob>;
46
+ transferToImageBitmap(): ImageBitmap;
47
+ release(...params: any): void;
48
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
4
+ var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
5
+ if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ }, __metadata = this && this.__metadata || function(k, v) {
8
+ if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
9
+ };
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: !0
13
+ }), exports.WxCanvas = void 0;
14
+
15
+ const inversify_1 = require("inversify"), context_1 = require("./context"), DefaultConfig = {
16
+ WIDTH: 500,
17
+ HEIGHT: 500,
18
+ DPR: 1
19
+ };
20
+
21
+ let WxCanvas = class {
22
+ get id() {
23
+ return this._id;
24
+ }
25
+ get x() {
26
+ return this._x;
27
+ }
28
+ get y() {
29
+ return this._y;
30
+ }
31
+ get nativeCanvas() {
32
+ return this._nativeCanvas;
33
+ }
34
+ get width() {
35
+ return this._pixelWidth;
36
+ }
37
+ set width(width) {
38
+ this._pixelWidth = width, this._displayWidth = width / (this._dpr || 1);
39
+ }
40
+ get height() {
41
+ return this._pixelHeight;
42
+ }
43
+ set height(height) {
44
+ this._pixelHeight = height, this._displayHeight = height / (this._dpr || 1);
45
+ }
46
+ get displayWidth() {
47
+ return this._displayWidth;
48
+ }
49
+ get displayHeight() {
50
+ return this._displayHeight;
51
+ }
52
+ getContext(str) {
53
+ return this._context;
54
+ }
55
+ get visiable() {
56
+ return this._visiable;
57
+ }
58
+ set visiable(visiable) {
59
+ this._visiable = visiable, visiable ? this.show() : this.hide();
60
+ }
61
+ get dpr() {
62
+ return this._dpr;
63
+ }
64
+ set dpr(dpr) {
65
+ this._dpr = dpr;
66
+ }
67
+ constructor(params) {
68
+ const {nativeCanvas: nativeCanvas, width: width = DefaultConfig.WIDTH, height: height = DefaultConfig.HEIGHT, dpr: dpr = DefaultConfig.DPR} = params, {x: x, y: y} = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : {
69
+ x: 0,
70
+ y: 0
71
+ };
72
+ this._x = x, this._y = y, this._pixelWidth = width * dpr, this._pixelHeight = height * dpr,
73
+ this._visiable = !1 !== params.visiable, this._displayWidth = width, this._displayHeight = height,
74
+ this._dpr = dpr, this._nativeCanvas = nativeCanvas, this._context = new context_1.WxContext2d(this, this._dpr),
75
+ this._id = nativeCanvas.id;
76
+ }
77
+ getNativeCanvas() {
78
+ return this._nativeCanvas;
79
+ }
80
+ resetStyle(params) {}
81
+ applyPosition() {}
82
+ hide() {}
83
+ show() {}
84
+ resize(width, height) {}
85
+ toDataURL(mimeType, quality) {
86
+ return "";
87
+ }
88
+ readPixels(x, y, w, h) {
89
+ throw new Error("暂未实现");
90
+ }
91
+ convertToBlob(options) {
92
+ throw new Error("暂未实现");
93
+ }
94
+ transferToImageBitmap() {
95
+ throw new Error("暂未实现");
96
+ }
97
+ release(...params) {}
98
+ };
99
+
100
+ WxCanvas.env = "wx", WxCanvas = __decorate([ (0, inversify_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], WxCanvas),
101
+ exports.WxCanvas = WxCanvas;
102
+ //# sourceMappingURL=canvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/canvas/contributions/wx/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { WxContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class WxCanvas implements ICanvas {\n static env: EnvType = 'wx';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n get y(): number {\n return this._y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n // 不会修改到位置的\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new WxContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { IContext2d, EnvType } from '../../../interface';
2
+ import { BrowserContext2d } from '../browser';
3
+ export declare class WxContext2d extends BrowserContext2d implements IContext2d {
4
+ static env: EnvType;
5
+ draw(): void;
6
+ createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern;
7
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
4
+ var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
5
+ if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: !0
11
+ }), exports.WxContext2d = void 0;
12
+
13
+ const inversify_1 = require("inversify"), browser_1 = require("../browser");
14
+
15
+ let WxContext2d = class extends browser_1.BrowserContext2d {
16
+ draw() {}
17
+ createPattern(image, repetition) {
18
+ return null;
19
+ }
20
+ };
21
+
22
+ WxContext2d.env = "wx", WxContext2d = __decorate([ (0, inversify_1.injectable)() ], WxContext2d),
23
+ exports.WxContext2d = WxContext2d;
24
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/canvas/contributions/wx/context.ts"],"names":[],"mappings":";;;;;;;;;AACA,yCAAuC;AAEvC,wCAA8C;AAGvC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,0BAAgB;IAG/C,IAAI;QACF,OAAO;IACT,CAAC;IAED,aAAa,CAAC,KAA8D,EAAE,UAAkB;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;;AARM,eAAG,GAAY,IAAI,CAAC;AADhB,WAAW;IADvB,IAAA,sBAAU,GAAE;GACA,WAAW,CAUvB;AAVY,kCAAW","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from 'inversify';\nimport type { IContext2d, EnvType } from '../../../interface';\nimport { BrowserContext2d } from '../browser';\n\n@injectable()\nexport class WxContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'wx';\n\n draw() {\n return;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './canvas';
2
+ export * from './context';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
+ void 0 === k2 && (k2 = k);
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
+ enumerable: !0,
8
+ get: function() {
9
+ return m[k];
10
+ }
11
+ }), Object.defineProperty(o, k2, desc);
12
+ } : function(o, m, k, k2) {
13
+ void 0 === k2 && (k2 = k), o[k2] = m[k];
14
+ }), __exportStar = this && this.__exportStar || function(m, exports) {
15
+ for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
16
+ };
17
+
18
+ Object.defineProperty(exports, "__esModule", {
19
+ value: !0
20
+ }), __exportStar(require("./canvas"), exports), __exportStar(require("./context"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/canvas/contributions/wx/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAyB;AACzB,4CAA0B","file":"index.js","sourcesContent":["// 依然导出canvas和context,便于指定环境直接使用\nexport * from './canvas';\nexport * from './context';\n"]}
@@ -0,0 +1,3 @@
1
+ import { ContainerModule } from 'inversify';
2
+ declare const _default: ContainerModule;
3
+ export default _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ });
6
+
7
+ const inversify_1 = require("inversify"), canvas_1 = require("./canvas"), context_1 = require("./context"), constants_1 = require("../../constants");
8
+
9
+ exports.default = new inversify_1.ContainerModule((bind => {
10
+ bind(constants_1.CanvasFactory).toDynamicValue((() => params => new canvas_1.WxCanvas(params))).whenTargetNamed(canvas_1.WxCanvas.env),
11
+ bind(constants_1.Context2dFactory).toDynamicValue((() => (params, dpr) => new context_1.WxContext2d(params, dpr))).whenTargetNamed(context_1.WxContext2d.env);
12
+ }));
13
+ //# sourceMappingURL=modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/canvas/contributions/wx/modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,qCAAoC;AACpC,uCAAwC;AACxC,+CAAkE;AAGlE,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,yBAAa,CAAC;SAChB,cAAc,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,MAAwB,EAAE,EAAE,CAAC,IAAI,iBAAQ,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC,CAAC;SACD,eAAe,CAAC,iBAAQ,CAAC,GAAG,CAAC,CAAC;IAEjC,IAAI,CAAC,4BAAgB,CAAC;SACnB,cAAc,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,MAAe,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,qBAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxE,CAAC,CAAC;SACD,eAAe,CAAC,qBAAW,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { WxCanvas } from './canvas';\nimport { WxContext2d } from './context';\nimport { CanvasFactory, Context2dFactory } from '../../constants';\nimport type { CanvasConfigType, ICanvas } from '../../../interface';\n\nexport default new ContainerModule(bind => {\n bind(CanvasFactory)\n .toDynamicValue(() => {\n return (params: CanvasConfigType) => new WxCanvas(params);\n })\n .whenTargetNamed(WxCanvas.env);\n\n bind(Context2dFactory)\n .toDynamicValue(() => {\n return (params: ICanvas, dpr: number) => new WxContext2d(params, dpr);\n })\n .whenTargetNamed(WxContext2d.env);\n});\n"]}
@@ -9,7 +9,7 @@ class ContributionProviderCache {
9
9
  this.serviceIdentifier = serviceIdentifier, this.container = container;
10
10
  }
11
11
  getContributions() {
12
- return this.caches || (this.caches = [], this.container && this.caches.push(...this.container.getAll(this.serviceIdentifier))),
12
+ return this.caches || (this.caches = [], this.container && this.container.isBound(this.serviceIdentifier) && this.caches.push(...this.container.getAll(this.serviceIdentifier))),
13
13
  this.caches;
14
14
  }
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/common/contribution-provider.ts"],"names":[],"mappings":";;;AAGa,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAEnE,MAAM,yBAAyB;IAK7B,YAAY,iBAAkD,EAAE,SAA+B;QAC7F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACtF;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED,SAAgB,wBAAwB,CAAC,IAAqB,EAAE,EAAO;IACrE,IAAI,CAAC,4BAAoB,CAAC;SACvB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SAC/E,gBAAgB,EAAE;SAClB,eAAe,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AALD,4DAKC","file":"contribution-provider.js","sourcesContent":["import type { interfaces } from 'inversify';\nimport type { IContributionProvider } from '../interface';\n\nexport const ContributionProvider = Symbol('ContributionProvider');\n\nclass ContributionProviderCache<T> implements IContributionProvider<T> {\n protected caches?: T[];\n protected serviceIdentifier: interfaces.ServiceIdentifier<T>;\n protected container: interfaces.Container;\n\n constructor(serviceIdentifier: interfaces.ServiceIdentifier<T>, container: interfaces.Container) {\n this.serviceIdentifier = serviceIdentifier;\n this.container = container;\n }\n\n getContributions(): T[] {\n if (!this.caches) {\n this.caches = [];\n this.container && this.caches.push(...this.container.getAll(this.serviceIdentifier));\n }\n return this.caches;\n }\n}\n\nexport function bindContributionProvider(bind: interfaces.Bind, id: any): void {\n bind(ContributionProvider)\n .toDynamicValue(({ container }) => new ContributionProviderCache(id, container))\n .inSingletonScope()\n .whenTargetNamed(id);\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/contribution-provider.ts"],"names":[],"mappings":";;;AAGa,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAEnE,MAAM,yBAAyB;IAK7B,YAAY,iBAAkD,EAAE,SAA+B;QAC7F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS;gBACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACtE;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED,SAAgB,wBAAwB,CAAC,IAAqB,EAAE,EAAO;IACrE,IAAI,CAAC,4BAAoB,CAAC;SACvB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SAC/E,gBAAgB,EAAE;SAClB,eAAe,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AALD,4DAKC","file":"contribution-provider.js","sourcesContent":["import type { interfaces } from 'inversify';\nimport type { IContributionProvider } from '../interface';\n\nexport const ContributionProvider = Symbol('ContributionProvider');\n\nclass ContributionProviderCache<T> implements IContributionProvider<T> {\n protected caches?: T[];\n protected serviceIdentifier: interfaces.ServiceIdentifier<T>;\n protected container: interfaces.Container;\n\n constructor(serviceIdentifier: interfaces.ServiceIdentifier<T>, container: interfaces.Container) {\n this.serviceIdentifier = serviceIdentifier;\n this.container = container;\n }\n\n getContributions(): T[] {\n if (!this.caches) {\n this.caches = [];\n this.container &&\n this.container.isBound(this.serviceIdentifier) &&\n this.caches.push(...this.container.getAll(this.serviceIdentifier));\n }\n return this.caches;\n }\n}\n\nexport function bindContributionProvider(bind: interfaces.Bind, id: any): void {\n bind(ContributionProvider)\n .toDynamicValue(({ container }) => new ContributionProviderCache(id, container))\n .inSingletonScope()\n .whenTargetNamed(id);\n}\n"]}