@visactor/vrender-kits 0.19.6-alpha.2 → 0.19.6

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 (302) hide show
  1. package/cjs/canvas/contributions/browser/canvas.js +1 -2
  2. package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
  3. package/cjs/canvas/contributions/browser/context.js +13 -26
  4. package/cjs/canvas/contributions/browser/context.js.map +1 -1
  5. package/cjs/canvas/contributions/feishu/canvas.js +1 -2
  6. package/cjs/canvas/contributions/feishu/canvas.js.map +1 -1
  7. package/cjs/canvas/contributions/feishu/context.js +3 -4
  8. package/cjs/canvas/contributions/feishu/context.js.map +1 -1
  9. package/cjs/canvas/contributions/harmony/canvas.js +1 -2
  10. package/cjs/canvas/contributions/harmony/canvas.js.map +1 -1
  11. package/cjs/canvas/contributions/harmony/context.js +4 -4
  12. package/cjs/canvas/contributions/harmony/context.js.map +1 -1
  13. package/cjs/canvas/contributions/lynx/canvas.js +1 -2
  14. package/cjs/canvas/contributions/lynx/canvas.js.map +1 -1
  15. package/cjs/canvas/contributions/lynx/context.js +1 -2
  16. package/cjs/canvas/contributions/lynx/context.js.map +1 -1
  17. package/cjs/canvas/contributions/node/canvas.js +1 -2
  18. package/cjs/canvas/contributions/node/canvas.js.map +1 -1
  19. package/cjs/canvas/contributions/node/context.js +2 -3
  20. package/cjs/canvas/contributions/node/context.js.map +1 -1
  21. package/cjs/canvas/contributions/taro/canvas.js +1 -2
  22. package/cjs/canvas/contributions/taro/canvas.js.map +1 -1
  23. package/cjs/canvas/contributions/taro/context.js +6 -5
  24. package/cjs/canvas/contributions/taro/context.js.map +1 -1
  25. package/cjs/canvas/contributions/tt/canvas.js +1 -2
  26. package/cjs/canvas/contributions/tt/canvas.js.map +1 -1
  27. package/cjs/canvas/contributions/tt/context.js +3 -4
  28. package/cjs/canvas/contributions/tt/context.js.map +1 -1
  29. package/cjs/canvas/contributions/wx/canvas.js +1 -2
  30. package/cjs/canvas/contributions/wx/canvas.js.map +1 -1
  31. package/cjs/canvas/contributions/wx/context.js +2 -2
  32. package/cjs/canvas/contributions/wx/context.js.map +1 -1
  33. package/cjs/env/contributions/browser-contribution.js +11 -10
  34. package/cjs/env/contributions/browser-contribution.js.map +1 -1
  35. package/cjs/env/contributions/canvas-wrap.js +0 -12
  36. package/cjs/env/contributions/canvas-wrap.js.map +1 -1
  37. package/cjs/env/contributions/feishu-contribution.js +6 -8
  38. package/cjs/env/contributions/feishu-contribution.js.map +1 -1
  39. package/cjs/env/contributions/harmony-contribution.js +4 -5
  40. package/cjs/env/contributions/harmony-contribution.js.map +1 -1
  41. package/cjs/env/contributions/lynx-contribution.js +7 -10
  42. package/cjs/env/contributions/lynx-contribution.js.map +1 -1
  43. package/cjs/env/contributions/node-contribution.js +3 -4
  44. package/cjs/env/contributions/node-contribution.js.map +1 -1
  45. package/cjs/env/contributions/taro-contribution.js +5 -9
  46. package/cjs/env/contributions/taro-contribution.js.map +1 -1
  47. package/cjs/env/contributions/tt-contribution.js +44 -20
  48. package/cjs/env/contributions/tt-contribution.js.map +1 -1
  49. package/cjs/env/contributions/wx-contribution.js +48 -24
  50. package/cjs/env/contributions/wx-contribution.js.map +1 -1
  51. package/cjs/event/extension/drag.js +34 -34
  52. package/cjs/event/extension/drag.js.map +1 -1
  53. package/cjs/event/extension/gesture.js +79 -100
  54. package/cjs/event/extension/gesture.js.map +1 -1
  55. package/cjs/event/extension/index.js +1 -1
  56. package/cjs/event/extension/interface.js +1 -1
  57. package/cjs/jsx/graphicType.js +6 -8
  58. package/cjs/jsx/graphicType.js.map +1 -1
  59. package/cjs/jsx/jsx-classic.js +11 -1
  60. package/cjs/jsx/jsx-classic.js.map +1 -1
  61. package/cjs/picker/canvas-picker-service.js +0 -3
  62. package/cjs/picker/canvas-picker-service.js.map +1 -1
  63. package/cjs/picker/contributions/canvas-picker/arc-picker.js +2 -5
  64. package/cjs/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
  65. package/cjs/picker/contributions/canvas-picker/arc3d-picker.js +2 -5
  66. package/cjs/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
  67. package/cjs/picker/contributions/canvas-picker/area-picker.js +2 -5
  68. package/cjs/picker/contributions/canvas-picker/area-picker.js.map +1 -1
  69. package/cjs/picker/contributions/canvas-picker/circle-picker.js +2 -5
  70. package/cjs/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
  71. package/cjs/picker/contributions/canvas-picker/glyph-picker.js +3 -6
  72. package/cjs/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  73. package/cjs/picker/contributions/canvas-picker/group-picker.js +3 -2
  74. package/cjs/picker/contributions/canvas-picker/group-picker.js.map +1 -1
  75. package/cjs/picker/contributions/canvas-picker/image-picker.js +4 -3
  76. package/cjs/picker/contributions/canvas-picker/image-picker.js.map +1 -1
  77. package/cjs/picker/contributions/canvas-picker/line-picker.js +2 -5
  78. package/cjs/picker/contributions/canvas-picker/line-picker.js.map +1 -1
  79. package/cjs/picker/contributions/canvas-picker/path-picker.js +2 -5
  80. package/cjs/picker/contributions/canvas-picker/path-picker.js.map +1 -1
  81. package/cjs/picker/contributions/canvas-picker/polygon-picker.js +2 -5
  82. package/cjs/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
  83. package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js +2 -5
  84. package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
  85. package/cjs/picker/contributions/canvas-picker/rect-picker.js +2 -5
  86. package/cjs/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  87. package/cjs/picker/contributions/canvas-picker/rect3d-picker.js +2 -5
  88. package/cjs/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
  89. package/cjs/picker/contributions/canvas-picker/richtext-picker.js +1 -4
  90. package/cjs/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
  91. package/cjs/picker/contributions/canvas-picker/symbol-picker.js +2 -5
  92. package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  93. package/cjs/picker/contributions/canvas-picker/text-picker.js +2 -5
  94. package/cjs/picker/contributions/canvas-picker/text-picker.js.map +1 -1
  95. package/cjs/picker/contributions/math-picker/arc-picker.js +2 -5
  96. package/cjs/picker/contributions/math-picker/arc-picker.js.map +1 -1
  97. package/cjs/picker/contributions/math-picker/area-picker.js +2 -5
  98. package/cjs/picker/contributions/math-picker/area-picker.js.map +1 -1
  99. package/cjs/picker/contributions/math-picker/circle-picker.js +2 -5
  100. package/cjs/picker/contributions/math-picker/circle-picker.js.map +1 -1
  101. package/cjs/picker/contributions/math-picker/glyph-picker.js +3 -6
  102. package/cjs/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  103. package/cjs/picker/contributions/math-picker/image-picker.js +4 -3
  104. package/cjs/picker/contributions/math-picker/image-picker.js.map +1 -1
  105. package/cjs/picker/contributions/math-picker/line-picker.js +2 -5
  106. package/cjs/picker/contributions/math-picker/line-picker.js.map +1 -1
  107. package/cjs/picker/contributions/math-picker/path-picker.js +2 -5
  108. package/cjs/picker/contributions/math-picker/path-picker.js.map +1 -1
  109. package/cjs/picker/contributions/math-picker/polygon-picker.js +2 -5
  110. package/cjs/picker/contributions/math-picker/polygon-picker.js.map +1 -1
  111. package/cjs/picker/contributions/math-picker/rect-picker.js +2 -5
  112. package/cjs/picker/contributions/math-picker/rect-picker.js.map +1 -1
  113. package/cjs/picker/contributions/math-picker/richtext-picker.js +1 -4
  114. package/cjs/picker/contributions/math-picker/richtext-picker.js.map +1 -1
  115. package/cjs/picker/contributions/math-picker/symbol-picker.js +2 -5
  116. package/cjs/picker/contributions/math-picker/symbol-picker.js.map +1 -1
  117. package/cjs/picker/contributions/math-picker/text-picker.js +3 -2
  118. package/cjs/picker/contributions/math-picker/text-picker.js.map +1 -1
  119. package/cjs/picker/math-picker-service.js +0 -2
  120. package/cjs/picker/math-picker-service.js.map +1 -1
  121. package/cjs/render/contributions/rough/rough-arc.js +1 -5
  122. package/cjs/render/contributions/rough/rough-arc.js.map +1 -1
  123. package/cjs/render/contributions/rough/rough-area.js +7 -4
  124. package/cjs/render/contributions/rough/rough-area.js.map +1 -1
  125. package/cjs/render/contributions/rough/rough-circle.js +2 -3
  126. package/cjs/render/contributions/rough/rough-circle.js.map +1 -1
  127. package/cjs/render/contributions/rough/rough-line.js +7 -4
  128. package/cjs/render/contributions/rough/rough-line.js.map +1 -1
  129. package/cjs/render/contributions/rough/rough-path.js +2 -5
  130. package/cjs/render/contributions/rough/rough-path.js.map +1 -1
  131. package/cjs/render/contributions/rough/rough-rect.js +4 -6
  132. package/cjs/render/contributions/rough/rough-rect.js.map +1 -1
  133. package/cjs/render/contributions/rough/rough-symbol.js +0 -4
  134. package/cjs/render/contributions/rough/rough-symbol.js.map +1 -1
  135. package/cjs/window/contributions/browser-contribution.js +7 -11
  136. package/cjs/window/contributions/browser-contribution.js.map +1 -1
  137. package/cjs/window/contributions/feishu-contribution.js +6 -9
  138. package/cjs/window/contributions/feishu-contribution.js.map +1 -1
  139. package/cjs/window/contributions/harmony-contribution.js +6 -9
  140. package/cjs/window/contributions/harmony-contribution.js.map +1 -1
  141. package/cjs/window/contributions/lynx-contribution.js +6 -9
  142. package/cjs/window/contributions/lynx-contribution.js.map +1 -1
  143. package/cjs/window/contributions/node-contribution.js +3 -7
  144. package/cjs/window/contributions/node-contribution.js.map +1 -1
  145. package/cjs/window/contributions/taro-contribution.js +10 -15
  146. package/cjs/window/contributions/taro-contribution.js.map +1 -1
  147. package/cjs/window/contributions/tt-contribution.js +6 -9
  148. package/cjs/window/contributions/tt-contribution.js.map +1 -1
  149. package/cjs/window/contributions/wx-contribution.js +11 -13
  150. package/cjs/window/contributions/wx-contribution.js.map +1 -1
  151. package/dist/index.es.js +561 -584
  152. package/es/canvas/contributions/browser/canvas.js +1 -2
  153. package/es/canvas/contributions/browser/canvas.js.map +1 -1
  154. package/es/canvas/contributions/browser/context.js +13 -26
  155. package/es/canvas/contributions/browser/context.js.map +1 -1
  156. package/es/canvas/contributions/feishu/canvas.js +1 -2
  157. package/es/canvas/contributions/feishu/canvas.js.map +1 -1
  158. package/es/canvas/contributions/feishu/context.js +3 -4
  159. package/es/canvas/contributions/feishu/context.js.map +1 -1
  160. package/es/canvas/contributions/harmony/canvas.js +1 -2
  161. package/es/canvas/contributions/harmony/canvas.js.map +1 -1
  162. package/es/canvas/contributions/harmony/context.js +4 -4
  163. package/es/canvas/contributions/harmony/context.js.map +1 -1
  164. package/es/canvas/contributions/lynx/canvas.js +1 -2
  165. package/es/canvas/contributions/lynx/canvas.js.map +1 -1
  166. package/es/canvas/contributions/lynx/context.js +1 -2
  167. package/es/canvas/contributions/lynx/context.js.map +1 -1
  168. package/es/canvas/contributions/node/canvas.js +1 -2
  169. package/es/canvas/contributions/node/canvas.js.map +1 -1
  170. package/es/canvas/contributions/node/context.js +2 -3
  171. package/es/canvas/contributions/node/context.js.map +1 -1
  172. package/es/canvas/contributions/taro/canvas.js +1 -2
  173. package/es/canvas/contributions/taro/canvas.js.map +1 -1
  174. package/es/canvas/contributions/taro/context.js +6 -4
  175. package/es/canvas/contributions/taro/context.js.map +1 -1
  176. package/es/canvas/contributions/tt/canvas.js +1 -2
  177. package/es/canvas/contributions/tt/canvas.js.map +1 -1
  178. package/es/canvas/contributions/tt/context.js +2 -4
  179. package/es/canvas/contributions/tt/context.js.map +1 -1
  180. package/es/canvas/contributions/wx/canvas.js +1 -2
  181. package/es/canvas/contributions/wx/canvas.js.map +1 -1
  182. package/es/canvas/contributions/wx/context.js +1 -2
  183. package/es/canvas/contributions/wx/context.js.map +1 -1
  184. package/es/env/contributions/browser-contribution.js +11 -10
  185. package/es/env/contributions/browser-contribution.js.map +1 -1
  186. package/es/env/contributions/canvas-wrap.js +0 -12
  187. package/es/env/contributions/canvas-wrap.js.map +1 -1
  188. package/es/env/contributions/feishu-contribution.js +6 -8
  189. package/es/env/contributions/feishu-contribution.js.map +1 -1
  190. package/es/env/contributions/harmony-contribution.js +4 -5
  191. package/es/env/contributions/harmony-contribution.js.map +1 -1
  192. package/es/env/contributions/lynx-contribution.js +7 -10
  193. package/es/env/contributions/lynx-contribution.js.map +1 -1
  194. package/es/env/contributions/node-contribution.js +3 -4
  195. package/es/env/contributions/node-contribution.js.map +1 -1
  196. package/es/env/contributions/taro-contribution.js +5 -9
  197. package/es/env/contributions/taro-contribution.js.map +1 -1
  198. package/es/env/contributions/tt-contribution.js +44 -20
  199. package/es/env/contributions/tt-contribution.js.map +1 -1
  200. package/es/env/contributions/wx-contribution.js +48 -24
  201. package/es/env/contributions/wx-contribution.js.map +1 -1
  202. package/es/event/extension/drag.js +34 -34
  203. package/es/event/extension/drag.js.map +1 -1
  204. package/es/event/extension/gesture.js +79 -100
  205. package/es/event/extension/gesture.js.map +1 -1
  206. package/es/event/extension/index.js +1 -1
  207. package/es/event/extension/interface.js +1 -1
  208. package/es/jsx/graphicType.js +6 -8
  209. package/es/jsx/graphicType.js.map +1 -1
  210. package/es/jsx/jsx-classic.js +11 -1
  211. package/es/jsx/jsx-classic.js.map +1 -1
  212. package/es/picker/canvas-picker-service.js +0 -3
  213. package/es/picker/canvas-picker-service.js.map +1 -1
  214. package/es/picker/contributions/canvas-picker/arc-picker.js +2 -5
  215. package/es/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
  216. package/es/picker/contributions/canvas-picker/arc3d-picker.js +2 -5
  217. package/es/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
  218. package/es/picker/contributions/canvas-picker/area-picker.js +2 -5
  219. package/es/picker/contributions/canvas-picker/area-picker.js.map +1 -1
  220. package/es/picker/contributions/canvas-picker/circle-picker.js +2 -5
  221. package/es/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
  222. package/es/picker/contributions/canvas-picker/glyph-picker.js +3 -6
  223. package/es/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
  224. package/es/picker/contributions/canvas-picker/group-picker.js +3 -2
  225. package/es/picker/contributions/canvas-picker/group-picker.js.map +1 -1
  226. package/es/picker/contributions/canvas-picker/image-picker.js +4 -3
  227. package/es/picker/contributions/canvas-picker/image-picker.js.map +1 -1
  228. package/es/picker/contributions/canvas-picker/line-picker.js +2 -5
  229. package/es/picker/contributions/canvas-picker/line-picker.js.map +1 -1
  230. package/es/picker/contributions/canvas-picker/path-picker.js +2 -5
  231. package/es/picker/contributions/canvas-picker/path-picker.js.map +1 -1
  232. package/es/picker/contributions/canvas-picker/polygon-picker.js +2 -5
  233. package/es/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
  234. package/es/picker/contributions/canvas-picker/pyramid3d-picker.js +2 -5
  235. package/es/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
  236. package/es/picker/contributions/canvas-picker/rect-picker.js +2 -5
  237. package/es/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  238. package/es/picker/contributions/canvas-picker/rect3d-picker.js +2 -5
  239. package/es/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
  240. package/es/picker/contributions/canvas-picker/richtext-picker.js +1 -4
  241. package/es/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
  242. package/es/picker/contributions/canvas-picker/symbol-picker.js +2 -5
  243. package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
  244. package/es/picker/contributions/canvas-picker/text-picker.js +2 -5
  245. package/es/picker/contributions/canvas-picker/text-picker.js.map +1 -1
  246. package/es/picker/contributions/math-picker/arc-picker.js +2 -5
  247. package/es/picker/contributions/math-picker/arc-picker.js.map +1 -1
  248. package/es/picker/contributions/math-picker/area-picker.js +2 -5
  249. package/es/picker/contributions/math-picker/area-picker.js.map +1 -1
  250. package/es/picker/contributions/math-picker/circle-picker.js +2 -5
  251. package/es/picker/contributions/math-picker/circle-picker.js.map +1 -1
  252. package/es/picker/contributions/math-picker/glyph-picker.js +3 -6
  253. package/es/picker/contributions/math-picker/glyph-picker.js.map +1 -1
  254. package/es/picker/contributions/math-picker/image-picker.js +4 -3
  255. package/es/picker/contributions/math-picker/image-picker.js.map +1 -1
  256. package/es/picker/contributions/math-picker/line-picker.js +2 -5
  257. package/es/picker/contributions/math-picker/line-picker.js.map +1 -1
  258. package/es/picker/contributions/math-picker/path-picker.js +2 -5
  259. package/es/picker/contributions/math-picker/path-picker.js.map +1 -1
  260. package/es/picker/contributions/math-picker/polygon-picker.js +2 -5
  261. package/es/picker/contributions/math-picker/polygon-picker.js.map +1 -1
  262. package/es/picker/contributions/math-picker/rect-picker.js +2 -5
  263. package/es/picker/contributions/math-picker/rect-picker.js.map +1 -1
  264. package/es/picker/contributions/math-picker/richtext-picker.js +1 -4
  265. package/es/picker/contributions/math-picker/richtext-picker.js.map +1 -1
  266. package/es/picker/contributions/math-picker/symbol-picker.js +2 -5
  267. package/es/picker/contributions/math-picker/symbol-picker.js.map +1 -1
  268. package/es/picker/contributions/math-picker/text-picker.js +3 -2
  269. package/es/picker/contributions/math-picker/text-picker.js.map +1 -1
  270. package/es/picker/math-picker-service.js +0 -2
  271. package/es/picker/math-picker-service.js.map +1 -1
  272. package/es/render/contributions/rough/rough-arc.js +1 -5
  273. package/es/render/contributions/rough/rough-arc.js.map +1 -1
  274. package/es/render/contributions/rough/rough-area.js +7 -4
  275. package/es/render/contributions/rough/rough-area.js.map +1 -1
  276. package/es/render/contributions/rough/rough-circle.js +2 -3
  277. package/es/render/contributions/rough/rough-circle.js.map +1 -1
  278. package/es/render/contributions/rough/rough-line.js +7 -4
  279. package/es/render/contributions/rough/rough-line.js.map +1 -1
  280. package/es/render/contributions/rough/rough-path.js +2 -5
  281. package/es/render/contributions/rough/rough-path.js.map +1 -1
  282. package/es/render/contributions/rough/rough-rect.js +4 -6
  283. package/es/render/contributions/rough/rough-rect.js.map +1 -1
  284. package/es/render/contributions/rough/rough-symbol.js +0 -4
  285. package/es/render/contributions/rough/rough-symbol.js.map +1 -1
  286. package/es/window/contributions/browser-contribution.js +8 -12
  287. package/es/window/contributions/browser-contribution.js.map +1 -1
  288. package/es/window/contributions/feishu-contribution.js +5 -8
  289. package/es/window/contributions/feishu-contribution.js.map +1 -1
  290. package/es/window/contributions/harmony-contribution.js +5 -8
  291. package/es/window/contributions/harmony-contribution.js.map +1 -1
  292. package/es/window/contributions/lynx-contribution.js +5 -8
  293. package/es/window/contributions/lynx-contribution.js.map +1 -1
  294. package/es/window/contributions/node-contribution.js +2 -6
  295. package/es/window/contributions/node-contribution.js.map +1 -1
  296. package/es/window/contributions/taro-contribution.js +9 -14
  297. package/es/window/contributions/taro-contribution.js.map +1 -1
  298. package/es/window/contributions/tt-contribution.js +5 -8
  299. package/es/window/contributions/tt-contribution.js.map +1 -1
  300. package/es/window/contributions/wx-contribution.js +10 -12
  301. package/es/window/contributions/wx-contribution.js.map +1 -1
  302. package/package.json +5 -4
@@ -13,7 +13,6 @@ Object.defineProperty(exports, "__esModule", {
13
13
  const vrender_core_1 = require("@visactor/vrender-core"), browser_1 = require("../browser");
14
14
 
15
15
  let HarmonyContext2d = class extends browser_1.BrowserContext2d {
16
- static env="harmony";
17
16
  get globalAlpha() {
18
17
  return this._globalAlpha;
19
18
  }
@@ -57,14 +56,15 @@ let HarmonyContext2d = class extends browser_1.BrowserContext2d {
57
56
  _context.textBaseline = "alphabetic";
58
57
  }
59
58
  setTextStyle(params, defaultParams, z) {
59
+ var _a, _b;
60
60
  const _context = this.nativeContext;
61
61
  defaultParams || (defaultParams = this.textAttributes);
62
62
  let font = "";
63
63
  font = params.font ? params.font : (0, vrender_core_1.getContextFont)(params, defaultParams, this.camera && this.camera.getProjectionScale(z)),
64
64
  _context.font = (font || "").replace("px", "vp");
65
65
  const {fontFamily: fontFamily = defaultParams.fontFamily, fontSize: fontSize = defaultParams.fontSize} = params;
66
- this.fontFamily = fontFamily, this.fontSize = fontSize, _context.textAlign = params.textAlign ?? defaultParams.textAlign,
67
- _context.textBaseline = params.textBaseline ?? defaultParams.textBaseline;
66
+ this.fontFamily = fontFamily, this.fontSize = fontSize, _context.textAlign = null !== (_a = params.textAlign) && void 0 !== _a ? _a : defaultParams.textAlign,
67
+ _context.textBaseline = null !== (_b = params.textBaseline) && void 0 !== _b ? _b : defaultParams.textBaseline;
68
68
  }
69
69
  createPattern(image, repetition) {
70
70
  return null;
@@ -76,6 +76,6 @@ let HarmonyContext2d = class extends browser_1.BrowserContext2d {
76
76
  draw() {}
77
77
  };
78
78
 
79
- HarmonyContext2d = __decorate([ (0, vrender_core_1.injectable)() ], HarmonyContext2d),
79
+ HarmonyContext2d.env = "harmony", HarmonyContext2d = __decorate([ (0, vrender_core_1.injectable)() ], HarmonyContext2d),
80
80
  exports.HarmonyContext2d = HarmonyContext2d;
81
81
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/harmony/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable, createColor, getScaledStroke, application, getContextFont } from '@visactor/vrender-core';\nimport type {\n IContext2d,\n EnvType,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n ITextStyleParams\n} from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\n@injectable()\nexport class HarmonyContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'harmony';\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 * this.baseGlobalAlpha;\n this._globalAlpha = ga * this.baseGlobalAlpha;\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 lineDash && _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 * this.baseGlobalAlpha;\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 lineDash && _context.setLineDash(lineDash);\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n this.setTransform(1, 0, 0, 1, 0, 0, true, application.global.devicePixelRatio);\n const data = super.measureText(text, method);\n return data;\n }\n\n setTextStyleWithoutAlignBaseline(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams, z?: number) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.textAttributes;\n }\n const { scaleIn3d = defaultParams.scaleIn3d } = params;\n let font = '';\n if (params.font) {\n font = params.font;\n } else {\n font = getContextFont(params, defaultParams, scaleIn3d && this.camera && this.camera.getProjectionScale(z));\n }\n _context.font = (font || '').replace('px', 'vp');\n const { fontFamily = defaultParams.fontFamily, fontSize = defaultParams.fontSize } = params;\n this.fontFamily = fontFamily;\n this.fontSize = fontSize;\n _context.textAlign = 'left';\n _context.textBaseline = 'alphabetic';\n // // 这里不使用defaultParams\n // _context.textAlign = params.textAlign || 'left';\n // _context.textBaseline = params.textBaseline || 'alphabetic';\n }\n setTextStyle(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams, z?: number) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.textAttributes;\n }\n let font = '';\n if (params.font) {\n font = params.font;\n } else {\n font = getContextFont(params, defaultParams, this.camera && this.camera.getProjectionScale(z));\n }\n _context.font = (font || '').replace('px', 'vp');\n const { fontFamily = defaultParams.fontFamily, fontSize = defaultParams.fontSize } = params;\n this.fontFamily = fontFamily;\n this.fontSize = fontSize;\n _context.textAlign = params.textAlign ?? defaultParams.textAlign;\n _context.textBaseline = params.textBaseline ?? defaultParams.textBaseline;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n dstX: number,\n dstY: number\n ): void;\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ): void;\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n srcX: number,\n srcY: number,\n srcW: number,\n srcH: number,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ): void;\n drawImage(): void {\n const _context = this.nativeContext;\n const a = arguments;\n if (a[0].drawImage) {\n a[0] = a[0].transferToImageBitmap();\n }\n if (a.length === 3) {\n _context.drawImage(a[0], a[1], a[2]);\n } else if (a.length === 5) {\n _context.drawImage(a[0], a[1], a[2], a[3], a[4]);\n } else if (a.length === 9) {\n _context.drawImage(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n }\n }\n\n draw() {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/harmony/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable, createColor, getScaledStroke, application, getContextFont } from '@visactor/vrender-core';\nimport type {\n IContext2d,\n EnvType,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n ITextStyleParams\n} from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\n@injectable()\nexport class HarmonyContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'harmony';\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 * this.baseGlobalAlpha;\n this._globalAlpha = ga * this.baseGlobalAlpha;\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 lineDash && _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 * this.baseGlobalAlpha;\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 lineDash && _context.setLineDash(lineDash);\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n this.setTransform(1, 0, 0, 1, 0, 0, true, application.global.devicePixelRatio);\n const data = super.measureText(text, method);\n return data;\n }\n\n setTextStyleWithoutAlignBaseline(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams, z?: number) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.textAttributes;\n }\n const { scaleIn3d = defaultParams.scaleIn3d } = params;\n let font = '';\n if (params.font) {\n font = params.font;\n } else {\n font = getContextFont(params, defaultParams, scaleIn3d && this.camera && this.camera.getProjectionScale(z));\n }\n _context.font = (font || '').replace('px', 'vp');\n const { fontFamily = defaultParams.fontFamily, fontSize = defaultParams.fontSize } = params;\n this.fontFamily = fontFamily;\n this.fontSize = fontSize;\n _context.textAlign = 'left';\n _context.textBaseline = 'alphabetic';\n // // 这里不使用defaultParams\n // _context.textAlign = params.textAlign || 'left';\n // _context.textBaseline = params.textBaseline || 'alphabetic';\n }\n setTextStyle(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams, z?: number) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.textAttributes;\n }\n let font = '';\n if (params.font) {\n font = params.font;\n } else {\n font = getContextFont(params, defaultParams, this.camera && this.camera.getProjectionScale(z));\n }\n _context.font = (font || '').replace('px', 'vp');\n const { fontFamily = defaultParams.fontFamily, fontSize = defaultParams.fontSize } = params;\n this.fontFamily = fontFamily;\n this.fontSize = fontSize;\n _context.textAlign = params.textAlign ?? defaultParams.textAlign;\n _context.textBaseline = params.textBaseline ?? defaultParams.textBaseline;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n dstX: number,\n dstY: number\n ): void;\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ): void;\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n srcX: number,\n srcY: number,\n srcW: number,\n srcH: number,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ): void;\n drawImage(): void {\n const _context = this.nativeContext;\n const a = arguments;\n if (a[0].drawImage) {\n a[0] = a[0].transferToImageBitmap();\n }\n if (a.length === 3) {\n _context.drawImage(a[0], a[1], a[2]);\n } else if (a.length === 5) {\n _context.drawImage(a[0], a[1], a[2], a[3], a[4]);\n } else if (a.length === 9) {\n _context.drawImage(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n }\n }\n\n draw() {\n return;\n }\n}\n"]}
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const vrender_core_1 = require("@visactor/vrender-core"), context_1 = require("./context");
16
16
 
17
17
  let LynxCanvas = class extends vrender_core_1.BaseCanvas {
18
- static env="lynx";
19
18
  constructor(params) {
20
19
  super(params);
21
20
  }
@@ -32,6 +31,6 @@ let LynxCanvas = class extends vrender_core_1.BaseCanvas {
32
31
  release(...params) {}
33
32
  };
34
33
 
35
- LynxCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], LynxCanvas),
34
+ LynxCanvas.env = "lynx", LynxCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], LynxCanvas),
36
35
  exports.LynxCanvas = LynxCanvas;
37
36
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/lynx/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAgE;AAEhE,uCAA0C;AAGnC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,yBAAU;IACxC,MAAM,CAAC,GAAG,GAAY,MAAM,CAAC;IAM7B,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAc;QAElC,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAE7B,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAK,IAAI,CAAC,aAAqB,CAAC,YAAY,EAAE;YAC3C,IAAI,CAAC,aAAqB,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YACjE,IAAI,CAAC,aAAqB,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;SACrE;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AApCU,UAAU;IADtB,IAAA,yBAAU,GAAE;;GACA,UAAU,CAqCtB;AArCY,gCAAU","file":"canvas.js","sourcesContent":["import { injectable, BaseCanvas } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { LynxContext2d } from './context';\n\n@injectable()\nexport class LynxCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'lynx';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new LynxContext2d(this, this._dpr);\n }\n\n resize(width: number, height: number): void {\n // 设置Canvas的w和h\n this._pixelWidth = width * this._dpr;\n this._pixelHeight = height * this._dpr;\n this._displayWidth = width;\n this._displayHeight = height;\n\n this._nativeCanvas.width = this._pixelWidth;\n this._nativeCanvas.height = this._pixelHeight;\n if ((this._nativeCanvas as any).nativeCanvas) {\n (this._nativeCanvas as any).nativeCanvas.width = this._pixelWidth;\n (this._nativeCanvas as any).nativeCanvas.height = this._pixelHeight;\n }\n\n // 设置context的dpr\n const _context = this._context;\n _context.dpr = this._dpr;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/lynx/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAgE;AAEhE,uCAA0C;AAGnC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,yBAAU;IAOxC,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAc;QAElC,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAE7B,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAK,IAAI,CAAC,aAAqB,CAAC,YAAY,EAAE;YAC3C,IAAI,CAAC,aAAqB,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YACjE,IAAI,CAAC,aAAqB,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;SACrE;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAnCM,cAAG,GAAY,MAAM,CAAC;AADlB,UAAU;IADtB,IAAA,yBAAU,GAAE;;GACA,UAAU,CAqCtB;AArCY,gCAAU","file":"canvas.js","sourcesContent":["import { injectable, BaseCanvas } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { LynxContext2d } from './context';\n\n@injectable()\nexport class LynxCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'lynx';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new LynxContext2d(this, this._dpr);\n }\n\n resize(width: number, height: number): void {\n // 设置Canvas的w和h\n this._pixelWidth = width * this._dpr;\n this._pixelHeight = height * this._dpr;\n this._displayWidth = width;\n this._displayHeight = height;\n\n this._nativeCanvas.width = this._pixelWidth;\n this._nativeCanvas.height = this._pixelHeight;\n if ((this._nativeCanvas as any).nativeCanvas) {\n (this._nativeCanvas as any).nativeCanvas.width = this._pixelWidth;\n (this._nativeCanvas as any).nativeCanvas.height = this._pixelHeight;\n }\n\n // 设置context的dpr\n const _context = this._context;\n _context.dpr = this._dpr;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -13,7 +13,6 @@ Object.defineProperty(exports, "__esModule", {
13
13
  const vrender_core_1 = require("@visactor/vrender-core"), browser_1 = require("../browser");
14
14
 
15
15
  let LynxContext2d = class extends browser_1.BrowserContext2d {
16
- static env="lynx";
17
16
  get globalAlpha() {
18
17
  return this._globalAlpha;
19
18
  }
@@ -58,6 +57,6 @@ let LynxContext2d = class extends browser_1.BrowserContext2d {
58
57
  }
59
58
  };
60
59
 
61
- LynxContext2d = __decorate([ (0, vrender_core_1.injectable)() ], LynxContext2d),
60
+ LynxContext2d.env = "lynx", LynxContext2d = __decorate([ (0, vrender_core_1.injectable)() ], LynxContext2d),
62
61
  exports.LynxContext2d = LynxContext2d;
63
62
  //# sourceMappingURL=context.js.map
@@ -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, createColor, getScaledStroke, application } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '@visactor/vrender-core';\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 * this.baseGlobalAlpha;\n this._globalAlpha = ga * this.baseGlobalAlpha;\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 lineDash && _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 * this.baseGlobalAlpha;\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 lineDash && _context.setLineDash(lineDash);\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n this.setTransform(1, 0, 0, 1, 0, 0, true, application.global.devicePixelRatio);\n const data = super.measureText(text, method);\n return data;\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 if (!_context.draw) {\n return;\n }\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, createColor, getScaledStroke, application } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '@visactor/vrender-core';\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 * this.baseGlobalAlpha;\n this._globalAlpha = ga * this.baseGlobalAlpha;\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 lineDash && _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 * this.baseGlobalAlpha;\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 lineDash && _context.setLineDash(lineDash);\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n this.setTransform(1, 0, 0, 1, 0, 0, true, application.global.devicePixelRatio);\n const data = super.measureText(text, method);\n return data;\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 if (!_context.draw) {\n return;\n }\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const vrender_core_1 = require("@visactor/vrender-core"), context_1 = require("./context"), vutils_1 = require("@visactor/vutils");
16
16
 
17
17
  let NodeCanvas = class extends vrender_core_1.BaseCanvas {
18
- static env="node";
19
18
  constructor(params) {
20
19
  super(params);
21
20
  }
@@ -28,6 +27,6 @@ let NodeCanvas = class extends vrender_core_1.BaseCanvas {
28
27
  }
29
28
  };
30
29
 
31
- NodeCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], NodeCanvas),
30
+ NodeCanvas.env = "node", NodeCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], NodeCanvas),
32
31
  exports.NodeCanvas = NodeCanvas;
33
32
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/node/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAgE;AAEhE,uCAA0C;AAC1C,6CAA8C;AAGvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,yBAAU;IACxC,MAAM,CAAC,GAAG,GAAY,MAAM,CAAC;IAM7B,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,IAAK,IAAI,CAAC,aAAqB,CAAC,OAAO,IAAI,IAAA,mBAAU,EAAE,IAAI,CAAC,aAAqB,CAAC,OAAO,CAAC,EAAE;YACzF,IAAI,CAAC,aAAqB,CAAC,OAAO,EAAE,CAAC;SACvC;IACH,CAAC;;AArBU,UAAU;IADtB,IAAA,yBAAU,GAAE;;GACA,UAAU,CAsBtB;AAtBY,gCAAU","file":"canvas.js","sourcesContent":["import { injectable, BaseCanvas } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { NodeContext2d } from './context';\nimport { isFunction } from '@visactor/vutils';\n\n@injectable()\nexport class NodeCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'node';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new NodeContext2d(this, this._dpr);\n this.nativeCanvas.width = this._pixelWidth;\n this.nativeCanvas.height = this._pixelHeight;\n }\n\n release(...params: any): void {\n if ((this._nativeCanvas as any).release && isFunction((this._nativeCanvas as any).release)) {\n (this._nativeCanvas as any).release();\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/node/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAgE;AAEhE,uCAA0C;AAC1C,6CAA8C;AAGvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,yBAAU;IAOxC,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,IAAK,IAAI,CAAC,aAAqB,CAAC,OAAO,IAAI,IAAA,mBAAU,EAAE,IAAI,CAAC,aAAqB,CAAC,OAAO,CAAC,EAAE;YACzF,IAAI,CAAC,aAAqB,CAAC,OAAO,EAAE,CAAC;SACvC;IACH,CAAC;;AApBM,cAAG,GAAY,MAAM,CAAC;AADlB,UAAU;IADtB,IAAA,yBAAU,GAAE;;GACA,UAAU,CAsBtB;AAtBY,gCAAU","file":"canvas.js","sourcesContent":["import { injectable, BaseCanvas } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { NodeContext2d } from './context';\nimport { isFunction } from '@visactor/vutils';\n\n@injectable()\nexport class NodeCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'node';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new NodeContext2d(this, this._dpr);\n this.nativeCanvas.width = this._pixelWidth;\n this.nativeCanvas.height = this._pixelHeight;\n }\n\n release(...params: any): void {\n if ((this._nativeCanvas as any).release && isFunction((this._nativeCanvas as any).release)) {\n (this._nativeCanvas as any).release();\n }\n }\n}\n"]}
@@ -15,17 +15,16 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), browser_1 = require("../browser");
16
16
 
17
17
  let NodeContext2d = class extends browser_1.BrowserContext2d {
18
- static env="node";
19
18
  constructor(canvas, dpr) {
20
19
  super(canvas, dpr);
21
20
  const context = canvas.nativeCanvas.getContext("2d");
22
21
  if (!context) throw new Error("发生错误,获取2d上下文失败");
23
22
  this.nativeContext = context, this.canvas = canvas, this.matrix = new vutils_1.Matrix(1, 0, 0, 1, 0, 0),
24
- this.stack = [], this.dpr = dpr ?? 1;
23
+ this.stack = [], this.dpr = null != dpr ? dpr : 1;
25
24
  }
26
25
  release(...params) {}
27
26
  };
28
27
 
29
- NodeContext2d = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object, Number ]) ], NodeContext2d),
28
+ NodeContext2d.env = "node", NodeContext2d = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object, Number ]) ], NodeContext2d),
30
29
  exports.NodeContext2d = NodeContext2d;
31
30
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/node/context.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,6CAA0C;AAC1C,yDAAoD;AAEpD,wCAA8C;AAGvC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,0BAAgB;IACjD,MAAM,CAAC,GAAG,GAAY,MAAM,CAAC;IAE7B,YAAY,MAAe,EAAE,GAAW;QACtC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAlBU,aAAa;IADzB,IAAA,yBAAU,GAAE;;GACA,aAAa,CAmBzB;AAnBY,sCAAa","file":"context.js","sourcesContent":["// 参考konva\nimport { Matrix } from '@visactor/vutils';\nimport { injectable } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ICanvas } from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\n@injectable()\nexport class NodeContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'node';\n\n constructor(canvas: ICanvas, dpr: number) {\n super(canvas, dpr);\n const context = canvas.nativeCanvas.getContext('2d');\n if (!context) {\n throw new Error('发生错误,获取2d上下文失败');\n }\n this.nativeContext = context;\n this.canvas = canvas;\n this.matrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.stack = [];\n this.dpr = dpr ?? 1;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/node/context.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,6CAA0C;AAC1C,yDAAoD;AAEpD,wCAA8C;AAGvC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,0BAAgB;IAGjD,YAAY,MAAe,EAAE,GAAW;QACtC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAjBM,iBAAG,GAAY,MAAM,CAAC;AADlB,aAAa;IADzB,IAAA,yBAAU,GAAE;;GACA,aAAa,CAmBzB;AAnBY,sCAAa","file":"context.js","sourcesContent":["// 参考konva\nimport { Matrix } from '@visactor/vutils';\nimport { injectable } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ICanvas } from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\n@injectable()\nexport class NodeContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'node';\n\n constructor(canvas: ICanvas, dpr: number) {\n super(canvas, dpr);\n const context = canvas.nativeCanvas.getContext('2d');\n if (!context) {\n throw new Error('发生错误,获取2d上下文失败');\n }\n this.nativeContext = context;\n this.canvas = canvas;\n this.matrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.stack = [];\n this.dpr = dpr ?? 1;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const vrender_core_1 = require("@visactor/vrender-core"), vrender_core_2 = require("@visactor/vrender-core"), context_1 = require("./context");
16
16
 
17
17
  let TaroCanvas = class extends vrender_core_2.BaseCanvas {
18
- static env="taro";
19
18
  constructor(params) {
20
19
  super(params);
21
20
  }
@@ -25,6 +24,6 @@ let TaroCanvas = class extends vrender_core_2.BaseCanvas {
25
24
  release(...params) {}
26
25
  };
27
26
 
28
- TaroCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], TaroCanvas),
27
+ TaroCanvas.env = "taro", TaroCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], TaroCanvas),
29
28
  exports.TaroCanvas = TaroCanvas;
30
29
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/taro/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAoD;AAEpD,yDAAoD;AACpD,uCAA0C;AAGnC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,yBAAU;IACxC,MAAM,CAAC,GAAG,GAAY,MAAM,CAAC;IAM7B,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAjBU,UAAU;IADtB,IAAA,yBAAU,GAAE;;GACA,UAAU,CAkBtB;AAlBY,gCAAU","file":"canvas.js","sourcesContent":["import { injectable } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { BaseCanvas } from '@visactor/vrender-core';\nimport { TaroContext2d } from './context';\n\n@injectable()\nexport class TaroCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'taro';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new TaroContext2d(this, this._dpr);\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/taro/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAoD;AAEpD,yDAAoD;AACpD,uCAA0C;AAGnC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,yBAAU;IAOxC,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAhBM,cAAG,GAAY,MAAM,CAAC;AADlB,UAAU;IADtB,IAAA,yBAAU,GAAE;;GACA,UAAU,CAkBtB;AAlBY,gCAAU","file":"canvas.js","sourcesContent":["import { injectable } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { BaseCanvas } from '@visactor/vrender-core';\nimport { TaroContext2d } from './context';\n\n@injectable()\nexport class TaroCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'taro';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new TaroContext2d(this, this._dpr);\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -13,7 +13,6 @@ Object.defineProperty(exports, "__esModule", {
13
13
  const vrender_core_1 = require("@visactor/vrender-core"), browser_1 = require("../browser");
14
14
 
15
15
  let TaroContext2d = class extends browser_1.BrowserContext2d {
16
- static env="taro";
17
16
  get globalAlpha() {
18
17
  return this._globalAlpha;
19
18
  }
@@ -44,15 +43,17 @@ let TaroContext2d = class extends browser_1.BrowserContext2d {
44
43
  }
45
44
  }
46
45
  setTextStyleWithoutAlignBaseline(params, defaultParams) {
46
+ var _a;
47
47
  const _context = this.nativeContext;
48
48
  defaultParams || (defaultParams = this.textAttributes), params.font ? _context.font = params.font : _context.font = (0,
49
- vrender_core_1.getContextFont)(params, defaultParams), _context.setFontSize(params.fontSize ?? defaultParams.fontSize);
49
+ vrender_core_1.getContextFont)(params, defaultParams), _context.setFontSize(null !== (_a = params.fontSize) && void 0 !== _a ? _a : defaultParams.fontSize);
50
50
  }
51
51
  setTextStyle(params, defaultParams) {
52
+ var _a, _b;
52
53
  const _context = this.nativeContext;
53
54
  defaultParams || (defaultParams = this.textAttributes), params.font ? _context.font = params.font : _context.font = (0,
54
- vrender_core_1.getContextFont)(params, defaultParams), _context.setTextAlign(params.textAlign ?? defaultParams.textAlign),
55
- _context.setTextBaseline(params.textBaseline ?? defaultParams.textBaseline);
55
+ vrender_core_1.getContextFont)(params, defaultParams), _context.setTextAlign(null !== (_a = params.textAlign) && void 0 !== _a ? _a : defaultParams.textAlign),
56
+ _context.setTextBaseline(null !== (_b = params.textBaseline) && void 0 !== _b ? _b : defaultParams.textBaseline);
56
57
  }
57
58
  createConicGradient(x, y, startAngle, endAngle) {
58
59
  return null;
@@ -84,6 +85,6 @@ let TaroContext2d = class extends browser_1.BrowserContext2d {
84
85
  }
85
86
  };
86
87
 
87
- TaroContext2d = __decorate([ (0, vrender_core_1.injectable)() ], TaroContext2d),
88
+ TaroContext2d.env = "taro", TaroContext2d = __decorate([ (0, vrender_core_1.injectable)() ], TaroContext2d),
88
89
  exports.TaroContext2d = TaroContext2d;
89
90
  //# sourceMappingURL=context.js.map
@@ -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, createColor, getScaledStroke, getContextFont } from '@visactor/vrender-core';\nimport type {\n ICommonStyleParams,\n IContext2d,\n ISetCommonStyleParams,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n ITextStyleParams,\n IConicalGradientData,\n EnvType\n} from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\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 lineDash && _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 getImageData(sx: number, sy: number, sw: number, sh: number): any {\n const ctx = this.nativeContext as any;\n const taro = ctx.taro;\n if (!(ctx && taro)) {\n return;\n }\n if (!ctx.getImageData && taro.canvasGetImageData) {\n return new Promise((resolve, reject) => {\n try {\n taro.canvasGetImageData({\n canvasId: this.canvas.nativeCanvas.id,\n sx,\n sy,\n sw,\n sh,\n success(res: any) {\n resolve(res);\n }\n });\n } catch (err) {\n reject(err);\n }\n });\n }\n }\n\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient {\n return (\n (this.nativeContext as any).createCircularGradient &&\n (this.nativeContext as any).createCircularGradient(x0, y0, r0, x1, y1, r1)\n );\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, createColor, getScaledStroke, getContextFont } from '@visactor/vrender-core';\nimport type {\n ICommonStyleParams,\n IContext2d,\n ISetCommonStyleParams,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n ITextStyleParams,\n IConicalGradientData,\n EnvType\n} from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\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 lineDash && _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 getImageData(sx: number, sy: number, sw: number, sh: number): any {\n const ctx = this.nativeContext as any;\n const taro = ctx.taro;\n if (!(ctx && taro)) {\n return;\n }\n if (!ctx.getImageData && taro.canvasGetImageData) {\n return new Promise((resolve, reject) => {\n try {\n taro.canvasGetImageData({\n canvasId: this.canvas.nativeCanvas.id,\n sx,\n sy,\n sw,\n sh,\n success(res: any) {\n resolve(res);\n }\n });\n } catch (err) {\n reject(err);\n }\n });\n }\n }\n\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient {\n return (\n (this.nativeContext as any).createCircularGradient &&\n (this.nativeContext as any).createCircularGradient(x0, y0, r0, x1, y1, r1)\n );\n }\n}\n"]}
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const vrender_core_1 = require("@visactor/vrender-core"), context_1 = require("./context");
16
16
 
17
17
  let TTCanvas = class extends vrender_core_1.BaseCanvas {
18
- static env="tt";
19
18
  constructor(params) {
20
19
  super(params);
21
20
  }
@@ -25,6 +24,6 @@ let TTCanvas = class extends vrender_core_1.BaseCanvas {
25
24
  release(...params) {}
26
25
  };
27
26
 
28
- TTCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], TTCanvas),
27
+ TTCanvas.env = "tt", TTCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], TTCanvas),
29
28
  exports.TTCanvas = TTCanvas;
30
29
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/tt/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAgE;AAEhE,uCAAwC;AAGjC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,yBAAU;IACtC,MAAM,CAAC,GAAG,GAAY,IAAI,CAAC;IAM3B,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAjBU,QAAQ;IADpB,IAAA,yBAAU,GAAE;;GACA,QAAQ,CAkBpB;AAlBY,4BAAQ","file":"canvas.js","sourcesContent":["import { injectable, BaseCanvas } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { TTContext2d } from './context';\n\n@injectable()\nexport class TTCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'tt';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new TTContext2d(this, this._dpr);\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/tt/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAgE;AAEhE,uCAAwC;AAGjC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,yBAAU;IAOtC,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAhBM,YAAG,GAAY,IAAI,CAAC;AADhB,QAAQ;IADpB,IAAA,yBAAU,GAAE;;GACA,QAAQ,CAkBpB;AAlBY,4BAAQ","file":"canvas.js","sourcesContent":["import { injectable, BaseCanvas } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { TTContext2d } from './context';\n\n@injectable()\nexport class TTCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'tt';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new TTContext2d(this, this._dpr);\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -12,9 +12,8 @@ Object.defineProperty(exports, "__esModule", {
12
12
 
13
13
  const vrender_core_1 = require("@visactor/vrender-core"), feishu_1 = require("../feishu");
14
14
 
15
- let TTContext2d = class extends feishu_1.FeishuContext2d {
16
- static env="tt";
17
- };
15
+ let TTContext2d = class extends feishu_1.FeishuContext2d {};
18
16
 
19
- TTContext2d = __decorate([ (0, vrender_core_1.injectable)() ], TTContext2d), exports.TTContext2d = TTContext2d;
17
+ TTContext2d.env = "tt", TTContext2d = __decorate([ (0, vrender_core_1.injectable)() ], TTContext2d),
18
+ exports.TTContext2d = TTContext2d;
20
19
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/tt/context.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAAoD;AAEpD,sCAA4C;AAGrC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,wBAAe;IAC9C,MAAM,CAAC,GAAG,GAAY,IAAI,CAAC;;AADhB,WAAW;IADvB,IAAA,yBAAU,GAAE;GACA,WAAW,CAEvB;AAFY,kCAAW","file":"context.js","sourcesContent":["import { injectable } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType } from '@visactor/vrender-core';\nimport { FeishuContext2d } from '../feishu';\n\n@injectable()\nexport class TTContext2d extends FeishuContext2d implements IContext2d {\n static env: EnvType = 'tt';\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/tt/context.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAAoD;AAEpD,sCAA4C;AAGrC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,wBAAe;;AACvC,eAAG,GAAY,IAAI,CAAC;AADhB,WAAW;IADvB,IAAA,yBAAU,GAAE;GACA,WAAW,CAEvB;AAFY,kCAAW","file":"context.js","sourcesContent":["import { injectable } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType } from '@visactor/vrender-core';\nimport { FeishuContext2d } from '../feishu';\n\n@injectable()\nexport class TTContext2d extends FeishuContext2d implements IContext2d {\n static env: EnvType = 'tt';\n}\n"]}
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", {
15
15
  const vrender_core_1 = require("@visactor/vrender-core"), context_1 = require("./context");
16
16
 
17
17
  let WxCanvas = class extends vrender_core_1.BaseCanvas {
18
- static env="wx";
19
18
  constructor(params) {
20
19
  super(params);
21
20
  }
@@ -25,6 +24,6 @@ let WxCanvas = class extends vrender_core_1.BaseCanvas {
25
24
  release(...params) {}
26
25
  };
27
26
 
28
- WxCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], WxCanvas),
27
+ WxCanvas.env = "wx", WxCanvas = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], WxCanvas),
29
28
  exports.WxCanvas = WxCanvas;
30
29
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/wx/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAgE;AAEhE,uCAAwC;AAGjC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,yBAAU;IACtC,MAAM,CAAC,GAAG,GAAY,IAAI,CAAC;IAM3B,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAjBU,QAAQ;IADpB,IAAA,yBAAU,GAAE;;GACA,QAAQ,CAkBpB;AAlBY,4BAAQ","file":"canvas.js","sourcesContent":["import { injectable, BaseCanvas } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { WxContext2d } from './context';\n\n@injectable()\nexport class WxCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'wx';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new WxContext2d(this, this._dpr);\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/wx/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAgE;AAEhE,uCAAwC;AAGjC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,yBAAU;IAOtC,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAhBM,YAAG,GAAY,IAAI,CAAC;AADhB,QAAQ;IADpB,IAAA,yBAAU,GAAE;;GACA,QAAQ,CAkBpB;AAlBY,4BAAQ","file":"canvas.js","sourcesContent":["import { injectable, BaseCanvas } from '@visactor/vrender-core';\nimport type { ICanvas, CanvasConfigType, EnvType } from '@visactor/vrender-core';\nimport { WxContext2d } from './context';\n\n@injectable()\nexport class WxCanvas extends BaseCanvas implements ICanvas {\n static env: EnvType = 'wx';\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n super(params);\n }\n\n init() {\n this._context = new WxContext2d(this, this._dpr);\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -13,12 +13,12 @@ Object.defineProperty(exports, "__esModule", {
13
13
  const vrender_core_1 = require("@visactor/vrender-core"), browser_1 = require("../browser");
14
14
 
15
15
  let WxContext2d = class extends browser_1.BrowserContext2d {
16
- static env="wx";
17
16
  draw() {}
18
17
  createPattern(image, repetition) {
19
18
  return null;
20
19
  }
21
20
  };
22
21
 
23
- WxContext2d = __decorate([ (0, vrender_core_1.injectable)() ], WxContext2d), exports.WxContext2d = WxContext2d;
22
+ WxContext2d.env = "wx", WxContext2d = __decorate([ (0, vrender_core_1.injectable)() ], WxContext2d),
23
+ exports.WxContext2d = WxContext2d;
24
24
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/wx/context.ts"],"names":[],"mappings":";;;;;;;;;AACA,yDAAoD;AAEpD,wCAA8C;AAGvC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,0BAAgB;IAC/C,MAAM,CAAC,GAAG,GAAY,IAAI,CAAC;IAE3B,IAAI;QACF,OAAO;IACT,CAAC;IAED,aAAa,CAAC,KAA8D,EAAE,UAAkB;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;;AATU,WAAW;IADvB,IAAA,yBAAU,GAAE;GACA,WAAW,CAUvB;AAVY,kCAAW","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType } from '@visactor/vrender-core';\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"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/wx/context.ts"],"names":[],"mappings":";;;;;;;;;AACA,yDAAoD;AAEpD,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,yBAAU,GAAE;GACA,WAAW,CAUvB;AAVY,kCAAW","file":"context.js","sourcesContent":["// 参考konva\nimport { injectable } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType } from '@visactor/vrender-core';\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"]}
@@ -33,7 +33,6 @@ class DynamicB {
33
33
  get height() {
34
34
  return this.dom.getBoundingClientRect().height;
35
35
  }
36
- dom;
37
36
  constructor(dom) {
38
37
  this.dom = dom;
39
38
  }
@@ -60,10 +59,8 @@ function createImageElement(src, isSvg = !1) {
60
59
  exports.createImageElement = createImageElement;
61
60
 
62
61
  let BrowserEnvContribution = class extends vrender_core_1.BaseEnvContribution {
63
- type="browser";
64
- supportEvent=!0;
65
62
  constructor() {
66
- super();
63
+ super(), this.type = "browser", this.supportEvent = !0;
67
64
  try {
68
65
  this.supportsTouchEvents = "ontouchstart" in globalThis, this.supportsPointerEvents = !!globalThis.PointerEvent,
69
66
  this.supportsMouseEvents = !!globalThis.MouseEvent;
@@ -73,14 +70,15 @@ let BrowserEnvContribution = class extends vrender_core_1.BaseEnvContribution {
73
70
  this.applyStyles = !0;
74
71
  }
75
72
  mapToCanvasPoint(nativeEvent, domElement) {
73
+ var _a, _b;
76
74
  let clientX = 0, clientY = 0, offsetX = 0, offsetY = 0;
77
75
  if (nativeEvent.changedTouches) {
78
- const data = nativeEvent.changedTouches[0] ?? {};
76
+ const data = null !== (_a = nativeEvent.changedTouches[0]) && void 0 !== _a ? _a : {};
79
77
  clientX = data.clientX || 0, clientY = data.clientY || 0, offsetX = clientX, offsetY = clientY;
80
78
  } else clientX = nativeEvent.clientX || 0, clientY = nativeEvent.clientY || 0, offsetX = nativeEvent.offsetX || 0,
81
79
  offsetY = nativeEvent.offsetY || 0;
82
80
  if (domElement) {
83
- const x = clientX, y = clientY, rect = domElement.getBoundingClientRect(), nativeCanvas = domElement.getNativeHandler?.().nativeCanvas;
81
+ const x = clientX, y = clientY, rect = domElement.getBoundingClientRect(), nativeCanvas = null === (_b = domElement.getNativeHandler) || void 0 === _b ? void 0 : _b.call(domElement).nativeCanvas;
84
82
  let scaleX, scaleY;
85
83
  return nativeCanvas && (scaleX = rect.width / nativeCanvas.offsetWidth, scaleY = rect.height / nativeCanvas.offsetHeight),
86
84
  {
@@ -139,15 +137,17 @@ let BrowserEnvContribution = class extends vrender_core_1.BaseEnvContribution {
139
137
  })));
140
138
  }
141
139
  createCanvas(params) {
140
+ var _a, _b;
142
141
  const canvas = document.createElement("canvas");
143
- params.id && (canvas.id = params.id ?? vrender_core_1.Generator.GenAutoIncrementId().toString());
144
- const dpr = params.dpr ?? window.devicePixelRatio;
142
+ params.id && (canvas.id = null !== (_a = params.id) && void 0 !== _a ? _a : vrender_core_1.Generator.GenAutoIncrementId().toString());
143
+ const dpr = null !== (_b = params.dpr) && void 0 !== _b ? _b : window.devicePixelRatio;
145
144
  return params.width && params.height && (canvas.style.width = `${params.width}px`,
146
145
  canvas.style.height = `${params.height}px`, canvas.width = params.width * dpr, canvas.height = params.height * dpr),
147
146
  canvas;
148
147
  }
149
148
  createOffscreenCanvas(params) {
150
- const dpr = params.dpr ?? window.devicePixelRatio;
149
+ var _a;
150
+ const dpr = null !== (_a = params.dpr) && void 0 !== _a ? _a : window.devicePixelRatio;
151
151
  return new OffscreenCanvas(params.width * dpr, params.height * dpr);
152
152
  }
153
153
  releaseCanvas(canvas) {
@@ -204,4 +204,5 @@ let BrowserEnvContribution = class extends vrender_core_1.BaseEnvContribution {
204
204
  };
205
205
 
206
206
  BrowserEnvContribution = __decorate([ (0, vrender_core_1.injectable)(), __metadata("design:paramtypes", []) ], BrowserEnvContribution),
207
- exports.BrowserEnvContribution = BrowserEnvContribution;
207
+ exports.BrowserEnvContribution = BrowserEnvContribution;
208
+ //# sourceMappingURL=browser-contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/env/contributions/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import { injectable, Generator, BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n CreateDOMParamsType\n} from '@visactor/vrender-core';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { AABBBounds, isString, isValidNumber } from '@visactor/vutils';\n\nclass DynamicB {\n get x1(): number {\n return this.dom.getBoundingClientRect().left;\n }\n get x2(): number {\n return this.dom.getBoundingClientRect().right;\n }\n get y1(): number {\n return this.dom.getBoundingClientRect().top;\n }\n get y2(): number {\n return this.dom.getBoundingClientRect().bottom;\n }\n get width(): number {\n return this.dom.getBoundingClientRect().width;\n }\n get height(): number {\n return this.dom.getBoundingClientRect().height;\n }\n\n dom: HTMLElement;\n\n constructor(dom: HTMLElement) {\n this.dom = dom;\n }\n}\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n const img = document.createElement('img');\n img.crossOrigin = 'anonymous';\n if (isSvg) {\n const data = new Blob([src], { type: 'image/svg+xml' });\n src = window.URL.createObjectURL(data);\n }\n img.src = src;\n if (img.complete) {\n return Promise.resolve(img);\n }\n const promise: Promise<HTMLImageElement> = new Promise((resolve, reject) => {\n img.onload = () => {\n resolve(img);\n };\n img.onerror = () => {\n reject(new Error('加载失败'));\n };\n });\n return promise;\n}\n\n@injectable()\nexport class BrowserEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'browser';\n supportEvent: boolean = true;\n\n constructor() {\n super();\n try {\n this.supportsTouchEvents = 'ontouchstart' in globalThis;\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsTouchEvents = false;\n this.supportsPointerEvents = false;\n this.supportsPointerEvents = false;\n }\n this.applyStyles = true;\n }\n\n mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent | TouchEvent, domElement?: any): IPointLike {\n let clientX: number = 0;\n let clientY: number = 0;\n let offsetX: number = 0;\n let offsetY: number = 0;\n if ((nativeEvent as TouchEvent).changedTouches) {\n const data = (nativeEvent as TouchEvent).changedTouches[0] ?? ({} as any);\n clientX = data.clientX || 0;\n clientY = data.clientY || 0;\n offsetX = clientX;\n offsetY = clientY;\n } else {\n clientX = (nativeEvent as PointerEvent | WheelEvent).clientX || 0;\n clientY = (nativeEvent as PointerEvent | WheelEvent).clientY || 0;\n offsetX = (nativeEvent as PointerEvent | WheelEvent).offsetX || 0;\n offsetY = (nativeEvent as PointerEvent | WheelEvent).offsetY || 0;\n }\n\n if (domElement) {\n const x = clientX;\n const y = clientY;\n const rect = domElement.getBoundingClientRect();\n const nativeCanvas = domElement.getNativeHandler?.().nativeCanvas;\n let scaleX;\n let scaleY;\n if (nativeCanvas) {\n scaleX = rect.width / nativeCanvas.offsetWidth;\n scaleY = rect.height / nativeCanvas.offsetHeight;\n }\n\n return {\n x: (x - rect.left) / (isValidNumber(scaleX) ? scaleX : 1),\n y: (y - rect.top) / (isValidNumber(scaleY) ? scaleY : 1)\n };\n }\n return {\n x: offsetX,\n y: offsetY\n };\n }\n\n getNativeAABBBounds(_dom: any): IBoundsLike {\n let dom = _dom;\n if (typeof _dom === 'string') {\n dom = new DOMParser().parseFromString(_dom, 'text/html').firstChild;\n if ((dom as any).lastChild) {\n dom = (dom as any).lastChild.firstChild;\n }\n }\n if (dom.getBoundingClientRect) {\n const b = dom.getBoundingClientRect();\n return new DynamicB(b);\n }\n return new AABBBounds();\n }\n\n removeDom(dom: HTMLElement): boolean {\n dom.parentElement.removeChild(dom);\n return true;\n }\n\n updateDom(dom: HTMLElement, params: CreateDOMParamsType): boolean {\n const { width, height, style } = params;\n\n if (style) {\n if (isString(style)) {\n dom.setAttribute('style', style);\n } else {\n Object.keys(style).forEach(k => {\n dom.style[k] = style[k];\n });\n }\n }\n if (width != null) {\n dom.style.width = `${width}px`;\n }\n if (height != null) {\n dom.style.height = `${height}px`;\n }\n\n return true;\n }\n\n createDom(params: CreateDOMParamsType): HTMLElement | null {\n const { tagName = 'div', parent } = params;\n const element = document.createElement(tagName);\n\n this.updateDom(element, params);\n\n if (parent) {\n const pd = isString(parent) ? this.getElementById(parent) : parent;\n if (pd && pd.appendChild) {\n pd.appendChild(element);\n }\n }\n\n return element;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, true);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n createCanvas(params: ICreateCanvasParams): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n params.id && (canvas.id = params.id ?? Generator.GenAutoIncrementId().toString());\n // 默认dpr\n const dpr = params.dpr ?? window.devicePixelRatio;\n if (params.width && params.height) {\n canvas.style.width = `${params.width}px`;\n canvas.style.height = `${params.height}px`;\n canvas.width = params.width * dpr;\n canvas.height = params.height * dpr;\n }\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n const dpr = params.dpr ?? window.devicePixelRatio;\n const canvas = new OffscreenCanvas(params.width * dpr, params.height * dpr);\n return canvas;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n let c: HTMLCanvasElement | null;\n if (typeof canvas === 'string') {\n c = document.getElementById(canvas) as HTMLCanvasElement | null;\n } else {\n c = canvas as unknown as HTMLCanvasElement;\n }\n\n if (!c) {\n return;\n }\n if (c.parentElement) {\n c.parentElement.removeChild(c);\n }\n }\n\n getDevicePixelRatio(): number {\n return window.devicePixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return window.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return window.cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.addEventListener(type as any, listener as any, options as any);\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.removeEventListener(type as any, listener as any, options as any);\n }\n\n dispatchEvent(event: any): boolean {\n return document.dispatchEvent(event);\n }\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n getDocument(): Document | null {\n return document;\n }\n\n release(...params: any): void {\n return;\n }\n\n getElementTop(element: HTMLElement, baseWindow?: boolean) {\n let actualTop = element.offsetTop;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent as HTMLElement;\n }\n\n return actualTop;\n }\n getElementLeft(element: HTMLElement, baseWindow?: boolean) {\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement;\n }\n\n return actualLeft;\n }\n getElementTopLeft(element: HTMLElement, baseWindow?: boolean): { top: number; left: number } {\n let actualTop = element.offsetTop;\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualTop += current.offsetTop;\n actualLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement;\n }\n\n return {\n top: actualTop,\n left: actualLeft\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/env/contributions/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import { injectable, Generator, BaseEnvContribution } from '@visactor/vrender-core';\nimport type {\n ICanvasLike,\n EnvType,\n ICreateCanvasParams,\n IEnvContribution,\n CreateDOMParamsType\n} from '@visactor/vrender-core';\nimport type { IBoundsLike, IPointLike } from '@visactor/vutils';\nimport { AABBBounds, isString, isValidNumber } from '@visactor/vutils';\n\nclass DynamicB {\n get x1(): number {\n return this.dom.getBoundingClientRect().left;\n }\n get x2(): number {\n return this.dom.getBoundingClientRect().right;\n }\n get y1(): number {\n return this.dom.getBoundingClientRect().top;\n }\n get y2(): number {\n return this.dom.getBoundingClientRect().bottom;\n }\n get width(): number {\n return this.dom.getBoundingClientRect().width;\n }\n get height(): number {\n return this.dom.getBoundingClientRect().height;\n }\n\n dom: HTMLElement;\n\n constructor(dom: HTMLElement) {\n this.dom = dom;\n }\n}\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n const img = document.createElement('img');\n img.crossOrigin = 'anonymous';\n if (isSvg) {\n const data = new Blob([src], { type: 'image/svg+xml' });\n src = window.URL.createObjectURL(data);\n }\n img.src = src;\n if (img.complete) {\n return Promise.resolve(img);\n }\n const promise: Promise<HTMLImageElement> = new Promise((resolve, reject) => {\n img.onload = () => {\n resolve(img);\n };\n img.onerror = () => {\n reject(new Error('加载失败'));\n };\n });\n return promise;\n}\n\n@injectable()\nexport class BrowserEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'browser';\n supportEvent: boolean = true;\n\n constructor() {\n super();\n try {\n this.supportsTouchEvents = 'ontouchstart' in globalThis;\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsTouchEvents = false;\n this.supportsPointerEvents = false;\n this.supportsPointerEvents = false;\n }\n this.applyStyles = true;\n }\n\n mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent | TouchEvent, domElement?: any): IPointLike {\n let clientX: number = 0;\n let clientY: number = 0;\n let offsetX: number = 0;\n let offsetY: number = 0;\n if ((nativeEvent as TouchEvent).changedTouches) {\n const data = (nativeEvent as TouchEvent).changedTouches[0] ?? ({} as any);\n clientX = data.clientX || 0;\n clientY = data.clientY || 0;\n offsetX = clientX;\n offsetY = clientY;\n } else {\n clientX = (nativeEvent as PointerEvent | WheelEvent).clientX || 0;\n clientY = (nativeEvent as PointerEvent | WheelEvent).clientY || 0;\n offsetX = (nativeEvent as PointerEvent | WheelEvent).offsetX || 0;\n offsetY = (nativeEvent as PointerEvent | WheelEvent).offsetY || 0;\n }\n\n if (domElement) {\n const x = clientX;\n const y = clientY;\n const rect = domElement.getBoundingClientRect();\n const nativeCanvas = domElement.getNativeHandler?.().nativeCanvas;\n let scaleX;\n let scaleY;\n if (nativeCanvas) {\n scaleX = rect.width / nativeCanvas.offsetWidth;\n scaleY = rect.height / nativeCanvas.offsetHeight;\n }\n\n return {\n x: (x - rect.left) / (isValidNumber(scaleX) ? scaleX : 1),\n y: (y - rect.top) / (isValidNumber(scaleY) ? scaleY : 1)\n };\n }\n return {\n x: offsetX,\n y: offsetY\n };\n }\n\n getNativeAABBBounds(_dom: any): IBoundsLike {\n let dom = _dom;\n if (typeof _dom === 'string') {\n dom = new DOMParser().parseFromString(_dom, 'text/html').firstChild;\n if ((dom as any).lastChild) {\n dom = (dom as any).lastChild.firstChild;\n }\n }\n if (dom.getBoundingClientRect) {\n const b = dom.getBoundingClientRect();\n return new DynamicB(b);\n }\n return new AABBBounds();\n }\n\n removeDom(dom: HTMLElement): boolean {\n dom.parentElement.removeChild(dom);\n return true;\n }\n\n updateDom(dom: HTMLElement, params: CreateDOMParamsType): boolean {\n const { width, height, style } = params;\n\n if (style) {\n if (isString(style)) {\n dom.setAttribute('style', style);\n } else {\n Object.keys(style).forEach(k => {\n dom.style[k] = style[k];\n });\n }\n }\n if (width != null) {\n dom.style.width = `${width}px`;\n }\n if (height != null) {\n dom.style.height = `${height}px`;\n }\n\n return true;\n }\n\n createDom(params: CreateDOMParamsType): HTMLElement | null {\n const { tagName = 'div', parent } = params;\n const element = document.createElement(tagName);\n\n this.updateDom(element, params);\n\n if (parent) {\n const pd = isString(parent) ? this.getElementById(parent) : parent;\n if (pd && pd.appendChild) {\n pd.appendChild(element);\n }\n }\n\n return element;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, true);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n createCanvas(params: ICreateCanvasParams): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n params.id && (canvas.id = params.id ?? Generator.GenAutoIncrementId().toString());\n // 默认dpr\n const dpr = params.dpr ?? window.devicePixelRatio;\n if (params.width && params.height) {\n canvas.style.width = `${params.width}px`;\n canvas.style.height = `${params.height}px`;\n canvas.width = params.width * dpr;\n canvas.height = params.height * dpr;\n }\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n const dpr = params.dpr ?? window.devicePixelRatio;\n const canvas = new OffscreenCanvas(params.width * dpr, params.height * dpr);\n return canvas;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n let c: HTMLCanvasElement | null;\n if (typeof canvas === 'string') {\n c = document.getElementById(canvas) as HTMLCanvasElement | null;\n } else {\n c = canvas as unknown as HTMLCanvasElement;\n }\n\n if (!c) {\n return;\n }\n if (c.parentElement) {\n c.parentElement.removeChild(c);\n }\n }\n\n getDevicePixelRatio(): number {\n return window.devicePixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return window.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return window.cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.addEventListener(type as any, listener as any, options as any);\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.removeEventListener(type as any, listener as any, options as any);\n }\n\n dispatchEvent(event: any): boolean {\n return document.dispatchEvent(event);\n }\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n getDocument(): Document | null {\n return document;\n }\n\n release(...params: any): void {\n return;\n }\n\n getElementTop(element: HTMLElement, baseWindow?: boolean) {\n let actualTop = element.offsetTop;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent as HTMLElement;\n }\n\n return actualTop;\n }\n getElementLeft(element: HTMLElement, baseWindow?: boolean) {\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement;\n }\n\n return actualLeft;\n }\n getElementTopLeft(element: HTMLElement, baseWindow?: boolean): { top: number; left: number } {\n let actualTop = element.offsetTop;\n let actualLeft = element.offsetLeft;\n let current = element.offsetParent as HTMLElement;\n\n while (current !== null) {\n actualTop += current.offsetTop;\n actualLeft += current.offsetLeft;\n current = current.offsetParent as HTMLElement;\n }\n\n return {\n top: actualTop,\n left: actualLeft\n };\n }\n}\n"]}