@visactor/vrender 0.14.0-alpha.0 → 0.14.0-alpha.2

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 (312) hide show
  1. package/cjs/canvas/contributions/browser/canvas.d.ts +3 -1
  2. package/cjs/canvas/contributions/browser/canvas.js +6 -0
  3. package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
  4. package/cjs/canvas/contributions/browser/context.d.ts +1 -0
  5. package/cjs/canvas/contributions/feishu/canvas.d.ts +3 -1
  6. package/cjs/canvas/contributions/feishu/canvas.js +6 -0
  7. package/cjs/canvas/contributions/feishu/canvas.js.map +1 -1
  8. package/cjs/canvas/contributions/lynx/canvas.d.ts +3 -1
  9. package/cjs/canvas/contributions/lynx/canvas.js +6 -0
  10. package/cjs/canvas/contributions/lynx/canvas.js.map +1 -1
  11. package/cjs/canvas/contributions/node/canvas.d.ts +2 -0
  12. package/cjs/canvas/contributions/node/canvas.js +2 -0
  13. package/cjs/canvas/contributions/node/canvas.js.map +1 -1
  14. package/cjs/canvas/contributions/taro/canvas.d.ts +3 -1
  15. package/cjs/canvas/contributions/taro/canvas.js +6 -0
  16. package/cjs/canvas/contributions/taro/canvas.js.map +1 -1
  17. package/cjs/canvas/contributions/tt/canvas.d.ts +3 -1
  18. package/cjs/canvas/contributions/tt/canvas.js +6 -0
  19. package/cjs/canvas/contributions/tt/canvas.js.map +1 -1
  20. package/cjs/canvas/contributions/wx/canvas.d.ts +2 -0
  21. package/cjs/canvas/contributions/wx/canvas.js +6 -0
  22. package/cjs/canvas/contributions/wx/canvas.js.map +1 -1
  23. package/cjs/common/render-area.d.ts +4 -0
  24. package/cjs/common/render-area.js +31 -6
  25. package/cjs/common/render-area.js.map +1 -1
  26. package/cjs/common/render-curve.d.ts +4 -0
  27. package/cjs/common/render-curve.js +19 -5
  28. package/cjs/common/render-curve.js.map +1 -1
  29. package/cjs/constants.d.ts +1 -1
  30. package/cjs/constants.js +2 -2
  31. package/cjs/constants.js.map +1 -1
  32. package/cjs/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -0
  33. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +9 -3
  34. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  35. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +1 -1
  36. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  37. package/cjs/core/contributions/textMeasure/AtextMeasure.d.ts +24 -0
  38. package/cjs/core/contributions/textMeasure/AtextMeasure.js +42 -0
  39. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  40. package/cjs/core/contributions/window/browser-contribution.js +1 -1
  41. package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
  42. package/cjs/core/contributions/window/feishu-contribution.js +1 -1
  43. package/cjs/core/contributions/window/feishu-contribution.js.map +1 -1
  44. package/cjs/core/contributions/window/lynx-contribution.js +1 -1
  45. package/cjs/core/contributions/window/lynx-contribution.js.map +1 -1
  46. package/cjs/core/contributions/window/native-contribution.js.map +1 -1
  47. package/cjs/core/contributions/window/node-contribution.js +1 -1
  48. package/cjs/core/contributions/window/node-contribution.js.map +1 -1
  49. package/cjs/core/contributions/window/taro-contribution.js +1 -1
  50. package/cjs/core/contributions/window/taro-contribution.js.map +1 -1
  51. package/cjs/core/contributions/window/wx-contribution.js +1 -1
  52. package/cjs/core/contributions/window/wx-contribution.js.map +1 -1
  53. package/cjs/core/core-modules.js +2 -2
  54. package/cjs/core/core-modules.js.map +1 -1
  55. package/cjs/core/global-module.d.ts +5 -1
  56. package/cjs/core/global-module.js +20 -1
  57. package/cjs/core/global-module.js.map +1 -1
  58. package/cjs/core/graphic-utils.js +1 -1
  59. package/cjs/core/graphic-utils.js.map +1 -1
  60. package/cjs/core/layer-service.js +1 -1
  61. package/cjs/core/layer-service.js.map +1 -1
  62. package/cjs/core/stage.d.ts +5 -1
  63. package/cjs/core/stage.js +18 -8
  64. package/cjs/core/stage.js.map +1 -1
  65. package/cjs/core/window.d.ts +1 -1
  66. package/cjs/core/window.js +3 -3
  67. package/cjs/core/window.js.map +1 -1
  68. package/cjs/graphic/config.d.ts +3 -1
  69. package/cjs/graphic/config.js +23 -8
  70. package/cjs/graphic/config.js.map +1 -1
  71. package/cjs/graphic/graphic-service/graphic-service.js +12 -3
  72. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  73. package/cjs/graphic/node-tree.d.ts +2 -2
  74. package/cjs/graphic/node-tree.js +2 -0
  75. package/cjs/graphic/node-tree.js.map +1 -1
  76. package/cjs/graphic/text.d.ts +5 -1
  77. package/cjs/graphic/text.js +94 -2
  78. package/cjs/graphic/text.js.map +1 -1
  79. package/cjs/graphic/tools.d.ts +8 -0
  80. package/cjs/graphic/tools.js +38 -2
  81. package/cjs/graphic/tools.js.map +1 -1
  82. package/cjs/graphic/wrap-text.js +5 -1
  83. package/cjs/graphic/wrap-text.js.map +1 -1
  84. package/cjs/index.d.ts +2 -1
  85. package/cjs/index.js +16 -2
  86. package/cjs/index.js.map +1 -1
  87. package/cjs/interface/graphic/area.d.ts +3 -3
  88. package/cjs/interface/graphic/area.js.map +1 -1
  89. package/cjs/interface/graphic/group.d.ts +6 -0
  90. package/cjs/interface/graphic/group.js.map +1 -1
  91. package/cjs/interface/graphic/line.d.ts +3 -3
  92. package/cjs/interface/graphic/line.js.map +1 -1
  93. package/cjs/interface/graphic/text.d.ts +6 -0
  94. package/cjs/interface/graphic/text.js.map +1 -1
  95. package/cjs/interface/graphic.d.ts +19 -0
  96. package/cjs/interface/graphic.js.map +1 -1
  97. package/cjs/interface/stage.d.ts +2 -0
  98. package/cjs/interface/stage.js.map +1 -1
  99. package/cjs/interface/text.d.ts +24 -0
  100. package/cjs/interface/text.js.map +1 -1
  101. package/cjs/modules.d.ts +1 -1
  102. package/cjs/modules.js +3 -3
  103. package/cjs/modules.js.map +1 -1
  104. package/cjs/picker/canvas-picker-service.js +1 -1
  105. package/cjs/picker/canvas-picker-service.js.map +1 -1
  106. package/cjs/picker/global-picker-service.js +1 -1
  107. package/cjs/picker/global-picker-service.js.map +1 -1
  108. package/cjs/picker/math-picker-service.js +1 -1
  109. package/cjs/picker/math-picker-service.js.map +1 -1
  110. package/cjs/picker/picker-service.js +1 -1
  111. package/cjs/picker/picker-service.js.map +1 -1
  112. package/cjs/plugins/builtin-plugin/flex-layout-plugin.d.ts +34 -0
  113. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +156 -0
  114. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -0
  115. package/cjs/render/contributions/render/arc-render.js +4 -4
  116. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  117. package/cjs/render/contributions/render/arc3d-render.js +3 -3
  118. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  119. package/cjs/render/contributions/render/area-render.d.ts +1 -0
  120. package/cjs/render/contributions/render/area-render.js +43 -16
  121. package/cjs/render/contributions/render/area-render.js.map +1 -1
  122. package/cjs/render/contributions/render/circle-render.js +3 -3
  123. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  124. package/cjs/render/contributions/render/group-render.js +4 -3
  125. package/cjs/render/contributions/render/group-render.js.map +1 -1
  126. package/cjs/render/contributions/render/image-render.js +1 -1
  127. package/cjs/render/contributions/render/image-render.js.map +1 -1
  128. package/cjs/render/contributions/render/incremental-area-render.js +1 -1
  129. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  130. package/cjs/render/contributions/render/incremental-draw-contribution.js +1 -1
  131. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  132. package/cjs/render/contributions/render/incremental-line-render.js +1 -1
  133. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  134. package/cjs/render/contributions/render/line-render.js +30 -4
  135. package/cjs/render/contributions/render/line-render.js.map +1 -1
  136. package/cjs/render/contributions/render/path-render.js +3 -3
  137. package/cjs/render/contributions/render/path-render.js.map +1 -1
  138. package/cjs/render/contributions/render/polygon-render.js +3 -3
  139. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  140. package/cjs/render/contributions/render/pyramid3d-render.js +1 -1
  141. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  142. package/cjs/render/contributions/render/rect-render.js +4 -3
  143. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  144. package/cjs/render/contributions/render/rect3d-render.js +2 -1
  145. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  146. package/cjs/render/contributions/render/richtext-render.js +1 -1
  147. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  148. package/cjs/render/contributions/render/symbol-render.js +3 -3
  149. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  150. package/cjs/render/contributions/render/text-render.js +63 -14
  151. package/cjs/render/contributions/render/text-render.js.map +1 -1
  152. package/cjs/render/contributions/render/utils.d.ts +3 -3
  153. package/cjs/render/contributions/render/utils.js +7 -7
  154. package/cjs/render/contributions/render/utils.js.map +1 -1
  155. package/dist/index.js +1107 -201
  156. package/dist/index.min.js +1 -1
  157. package/es/canvas/contributions/browser/canvas.d.ts +3 -1
  158. package/es/canvas/contributions/browser/canvas.js +6 -0
  159. package/es/canvas/contributions/browser/canvas.js.map +1 -1
  160. package/es/canvas/contributions/browser/context.d.ts +1 -0
  161. package/es/canvas/contributions/feishu/canvas.d.ts +3 -1
  162. package/es/canvas/contributions/feishu/canvas.js +6 -0
  163. package/es/canvas/contributions/feishu/canvas.js.map +1 -1
  164. package/es/canvas/contributions/lynx/canvas.d.ts +3 -1
  165. package/es/canvas/contributions/lynx/canvas.js +6 -0
  166. package/es/canvas/contributions/lynx/canvas.js.map +1 -1
  167. package/es/canvas/contributions/node/canvas.d.ts +2 -0
  168. package/es/canvas/contributions/node/canvas.js +2 -0
  169. package/es/canvas/contributions/node/canvas.js.map +1 -1
  170. package/es/canvas/contributions/taro/canvas.d.ts +3 -1
  171. package/es/canvas/contributions/taro/canvas.js +6 -0
  172. package/es/canvas/contributions/taro/canvas.js.map +1 -1
  173. package/es/canvas/contributions/tt/canvas.d.ts +3 -1
  174. package/es/canvas/contributions/tt/canvas.js +6 -0
  175. package/es/canvas/contributions/tt/canvas.js.map +1 -1
  176. package/es/canvas/contributions/wx/canvas.d.ts +2 -0
  177. package/es/canvas/contributions/wx/canvas.js +6 -0
  178. package/es/canvas/contributions/wx/canvas.js.map +1 -1
  179. package/es/common/render-area.d.ts +4 -0
  180. package/es/common/render-area.js +31 -6
  181. package/es/common/render-area.js.map +1 -1
  182. package/es/common/render-curve.d.ts +4 -0
  183. package/es/common/render-curve.js +19 -5
  184. package/es/common/render-curve.js.map +1 -1
  185. package/es/constants.d.ts +1 -1
  186. package/es/constants.js +1 -1
  187. package/es/constants.js.map +1 -1
  188. package/es/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -0
  189. package/es/core/contributions/layerHandler/canvas2d-contribution.js +10 -4
  190. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  191. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +2 -2
  192. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  193. package/es/core/contributions/textMeasure/AtextMeasure.d.ts +24 -0
  194. package/es/core/contributions/textMeasure/AtextMeasure.js +42 -0
  195. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  196. package/es/core/contributions/window/browser-contribution.js +2 -2
  197. package/es/core/contributions/window/browser-contribution.js.map +1 -1
  198. package/es/core/contributions/window/feishu-contribution.js +2 -2
  199. package/es/core/contributions/window/feishu-contribution.js.map +1 -1
  200. package/es/core/contributions/window/lynx-contribution.js +2 -2
  201. package/es/core/contributions/window/lynx-contribution.js.map +1 -1
  202. package/es/core/contributions/window/native-contribution.js.map +1 -1
  203. package/es/core/contributions/window/node-contribution.js +2 -2
  204. package/es/core/contributions/window/node-contribution.js.map +1 -1
  205. package/es/core/contributions/window/taro-contribution.js +2 -2
  206. package/es/core/contributions/window/taro-contribution.js.map +1 -1
  207. package/es/core/contributions/window/wx-contribution.js +2 -2
  208. package/es/core/contributions/window/wx-contribution.js.map +1 -1
  209. package/es/core/core-modules.js +4 -4
  210. package/es/core/core-modules.js.map +1 -1
  211. package/es/core/global-module.d.ts +5 -1
  212. package/es/core/global-module.js +20 -1
  213. package/es/core/global-module.js.map +1 -1
  214. package/es/core/graphic-utils.js +2 -2
  215. package/es/core/graphic-utils.js.map +1 -1
  216. package/es/core/layer-service.js +2 -2
  217. package/es/core/layer-service.js.map +1 -1
  218. package/es/core/stage.d.ts +5 -1
  219. package/es/core/stage.js +21 -9
  220. package/es/core/stage.js.map +1 -1
  221. package/es/core/window.d.ts +1 -1
  222. package/es/core/window.js +3 -3
  223. package/es/core/window.js.map +1 -1
  224. package/es/graphic/config.d.ts +3 -1
  225. package/es/graphic/config.js +24 -6
  226. package/es/graphic/config.js.map +1 -1
  227. package/es/graphic/graphic-service/graphic-service.js +12 -3
  228. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  229. package/es/graphic/node-tree.d.ts +2 -2
  230. package/es/graphic/node-tree.js +2 -0
  231. package/es/graphic/node-tree.js.map +1 -1
  232. package/es/graphic/text.d.ts +5 -1
  233. package/es/graphic/text.js +95 -1
  234. package/es/graphic/text.js.map +1 -1
  235. package/es/graphic/tools.d.ts +8 -0
  236. package/es/graphic/tools.js +38 -0
  237. package/es/graphic/tools.js.map +1 -1
  238. package/es/graphic/wrap-text.js +5 -1
  239. package/es/graphic/wrap-text.js.map +1 -1
  240. package/es/index.d.ts +2 -1
  241. package/es/index.js +3 -1
  242. package/es/index.js.map +1 -1
  243. package/es/interface/graphic/area.d.ts +3 -3
  244. package/es/interface/graphic/area.js.map +1 -1
  245. package/es/interface/graphic/group.d.ts +6 -0
  246. package/es/interface/graphic/group.js.map +1 -1
  247. package/es/interface/graphic/line.d.ts +3 -3
  248. package/es/interface/graphic/line.js.map +1 -1
  249. package/es/interface/graphic/text.d.ts +6 -0
  250. package/es/interface/graphic/text.js.map +1 -1
  251. package/es/interface/graphic.d.ts +19 -0
  252. package/es/interface/graphic.js.map +1 -1
  253. package/es/interface/stage.d.ts +2 -0
  254. package/es/interface/stage.js.map +1 -1
  255. package/es/interface/text.d.ts +24 -0
  256. package/es/interface/text.js.map +1 -1
  257. package/es/modules.d.ts +1 -1
  258. package/es/modules.js +3 -3
  259. package/es/modules.js.map +1 -1
  260. package/es/picker/canvas-picker-service.js +2 -2
  261. package/es/picker/canvas-picker-service.js.map +1 -1
  262. package/es/picker/global-picker-service.js +2 -2
  263. package/es/picker/global-picker-service.js.map +1 -1
  264. package/es/picker/math-picker-service.js +2 -2
  265. package/es/picker/math-picker-service.js.map +1 -1
  266. package/es/picker/picker-service.js +2 -2
  267. package/es/picker/picker-service.js.map +1 -1
  268. package/es/plugins/builtin-plugin/flex-layout-plugin.d.ts +34 -0
  269. package/es/plugins/builtin-plugin/flex-layout-plugin.js +152 -0
  270. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -0
  271. package/es/render/contributions/render/arc-render.js +3 -3
  272. package/es/render/contributions/render/arc-render.js.map +1 -1
  273. package/es/render/contributions/render/arc3d-render.js +2 -2
  274. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  275. package/es/render/contributions/render/area-render.d.ts +1 -0
  276. package/es/render/contributions/render/area-render.js +42 -14
  277. package/es/render/contributions/render/area-render.js.map +1 -1
  278. package/es/render/contributions/render/circle-render.js +2 -2
  279. package/es/render/contributions/render/circle-render.js.map +1 -1
  280. package/es/render/contributions/render/group-render.js +2 -2
  281. package/es/render/contributions/render/group-render.js.map +1 -1
  282. package/es/render/contributions/render/image-render.js +1 -1
  283. package/es/render/contributions/render/image-render.js.map +1 -1
  284. package/es/render/contributions/render/incremental-area-render.js +1 -1
  285. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  286. package/es/render/contributions/render/incremental-draw-contribution.js +2 -2
  287. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  288. package/es/render/contributions/render/incremental-line-render.js +1 -1
  289. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  290. package/es/render/contributions/render/line-render.js +30 -4
  291. package/es/render/contributions/render/line-render.js.map +1 -1
  292. package/es/render/contributions/render/path-render.js +2 -2
  293. package/es/render/contributions/render/path-render.js.map +1 -1
  294. package/es/render/contributions/render/polygon-render.js +2 -2
  295. package/es/render/contributions/render/polygon-render.js.map +1 -1
  296. package/es/render/contributions/render/pyramid3d-render.js +1 -1
  297. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  298. package/es/render/contributions/render/rect-render.js +2 -2
  299. package/es/render/contributions/render/rect-render.js.map +1 -1
  300. package/es/render/contributions/render/rect3d-render.js +1 -1
  301. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  302. package/es/render/contributions/render/richtext-render.js +1 -1
  303. package/es/render/contributions/render/richtext-render.js.map +1 -1
  304. package/es/render/contributions/render/symbol-render.js +2 -2
  305. package/es/render/contributions/render/symbol-render.js.map +1 -1
  306. package/es/render/contributions/render/text-render.js +65 -12
  307. package/es/render/contributions/render/text-render.js.map +1 -1
  308. package/es/render/contributions/render/utils.d.ts +3 -3
  309. package/es/render/contributions/render/utils.js +7 -7
  310. package/es/render/contributions/render/utils.js.map +1 -1
  311. package/es/tsconfig.tsbuildinfo +1 -1
  312. package/package.json +3 -2
@@ -1,4 +1,4 @@
1
- import { CanvasConfigType, ICanvas, IContext2d, EnvType } from '../../../interface';
1
+ import type { CanvasConfigType, ICanvas, IContext2d, EnvType } from '../../../interface';
2
2
  export declare class BrowserCanvas implements ICanvas {
3
3
  static env: EnvType;
4
4
  private _displayWidth;
@@ -18,7 +18,9 @@ export declare class BrowserCanvas implements ICanvas {
18
18
  get displayHeight(): number;
19
19
  get id(): number | string;
20
20
  get x(): number;
21
+ set x(_x: number);
21
22
  get y(): number;
23
+ set y(_y: number);
22
24
  get nativeCanvas(): HTMLCanvasElement;
23
25
  get width(): number;
24
26
  set width(width: number);
@@ -31,9 +31,15 @@ let BrowserCanvas = class {
31
31
  get x() {
32
32
  return this._x;
33
33
  }
34
+ set x(_x) {
35
+ this._x = _x;
36
+ }
34
37
  get y() {
35
38
  return this._y;
36
39
  }
40
+ set y(_y) {
41
+ this._y = _y;
42
+ }
37
43
  get nativeCanvas() {
38
44
  return this._nativeCanvas;
39
45
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/browser/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport { application } from '../../../application';\nimport { CanvasConfigType, ICanvas, IContext2d, EnvType } from '../../../interface';\nimport { BrowserContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class BrowserCanvas implements ICanvas {\n static env: EnvType = 'browser';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n private controled: boolean;\n\n get displayWidth(): number {\n return this._pixelWidth / this._dpr;\n }\n\n get displayHeight(): number {\n return this._pixelHeight / this._dpr;\n }\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n get y(): number {\n return this._y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n this.resize(this.width, this.height);\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR,\n container,\n x,\n y,\n canvasControled = true\n } = params;\n // const data = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n // const offsetX = nativeCanvas.offsetLeft ?? 0;\n // const offsetY = nativeCanvas.offsetTop ?? 0;\n const offsetX = 0;\n const offsetY = 0;\n this._x = x ?? offsetX;\n this._y = y ?? offsetY;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n if (typeof container === 'string') {\n const _c = application.global.getElementById(container);\n if (_c) {\n this._container = _c;\n }\n } else {\n this._container = container;\n }\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new BrowserContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n\n this.initStyle();\n }\n\n initStyle() {\n if (!this.controled) {\n return;\n }\n const { nativeCanvas } = this;\n nativeCanvas.width = this._pixelWidth;\n nativeCanvas.height = this._pixelHeight;\n\n const isOffscreen = !nativeCanvas.style;\n if (!isOffscreen) {\n this.setCanvasStyle(nativeCanvas, this._x, this._y, this._displayWidth, this._displayHeight);\n }\n if (this.id != null) {\n nativeCanvas.id = this.id.toString();\n }\n if (this._container) {\n this._container.appendChild(nativeCanvas);\n }\n if (!this.visiable) {\n this.hide();\n }\n // this._context.setScale(this.dpr, this.dpr, true);\n }\n\n applyPosition() {\n const canvas = this._nativeCanvas;\n canvas.style.position = 'absolute';\n canvas.style.top = `${this._y}px`;\n canvas.style.left = `${this._x}px`;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n if (!this.controled) {\n return;\n }\n const {\n width = this._displayWidth,\n height = this._displayHeight,\n dpr = this._dpr,\n x = this._x,\n y = this._y\n } = params;\n const { nativeCanvas } = this;\n nativeCanvas.width = width * dpr;\n nativeCanvas.height = height * dpr;\n\n const isOffscreen = !nativeCanvas.style;\n if (!isOffscreen) {\n this.setCanvasStyle(nativeCanvas, x, y, width, height);\n }\n params.id && (nativeCanvas.id = params.id);\n if (!this.visiable) {\n this.hide();\n }\n // this._context.setScale(dpr, dpr);\n }\n\n private setCanvasStyle(canvas: HTMLCanvasElement, x: number, y: number, w: number, h: number) {\n if (!this.controled) {\n return;\n }\n canvas.style.padding = '0';\n canvas.style.margin = '0';\n canvas.style.border = '0';\n canvas.style.background = 'transparent';\n // canvas.style.position = 'absolute';\n // canvas.style.top = `${y}px`;\n // canvas.style.left = `${x}px`;\n\n canvas.style.width = `${w}px`;\n canvas.style.height = `${h}px`;\n }\n\n hide() {\n this._nativeCanvas && (this._nativeCanvas.style.display = 'none');\n }\n show() {\n this._nativeCanvas && (this._nativeCanvas.style.display = 'block');\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n if (!this.controled) {\n return;\n }\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 // 可能是离屏canvas\n if (this._nativeCanvas.style) {\n this._nativeCanvas.style.width = `${width}px`;\n this._nativeCanvas.style.height = `${height}px`;\n }\n this._nativeCanvas.width = this._pixelWidth;\n this._nativeCanvas.height = this._pixelHeight;\n\n // 设置context的dpr\n const _context = this._context;\n _context.dpr = this._dpr;\n // _context.setScale(this._dpr, this._dpr);\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n if (mimeType === 'image/jpeg') {\n return this._nativeCanvas.toDataURL(mimeType, quality);\n } else if (mimeType === 'image/png') {\n return this._nativeCanvas.toDataURL(mimeType);\n }\n return this._nativeCanvas.toDataURL(mimeType, quality);\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n if (this.controled) {\n this._nativeCanvas.parentElement && this._nativeCanvas.parentElement.removeChild(this._nativeCanvas);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/browser/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport { application } from '../../../application';\nimport type { CanvasConfigType, ICanvas, IContext2d, EnvType } from '../../../interface';\nimport { BrowserContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class BrowserCanvas implements ICanvas {\n static env: EnvType = 'browser';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n private controled: boolean;\n\n get displayWidth(): number {\n return this._pixelWidth / this._dpr;\n }\n\n get displayHeight(): number {\n return this._pixelHeight / this._dpr;\n }\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n set x(_x: number) {\n this._x = _x;\n }\n get y(): number {\n return this._y;\n }\n set y(_y: number) {\n this._y = _y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n this.resize(this.width, this.height);\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR,\n container,\n x,\n y,\n canvasControled = true\n } = params;\n // const data = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n // const offsetX = nativeCanvas.offsetLeft ?? 0;\n // const offsetY = nativeCanvas.offsetTop ?? 0;\n const offsetX = 0;\n const offsetY = 0;\n this._x = x ?? offsetX;\n this._y = y ?? offsetY;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n if (typeof container === 'string') {\n const _c = application.global.getElementById(container);\n if (_c) {\n this._container = _c;\n }\n } else {\n this._container = container;\n }\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new BrowserContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n\n this.initStyle();\n }\n\n initStyle() {\n if (!this.controled) {\n return;\n }\n const { nativeCanvas } = this;\n nativeCanvas.width = this._pixelWidth;\n nativeCanvas.height = this._pixelHeight;\n\n const isOffscreen = !nativeCanvas.style;\n if (!isOffscreen) {\n this.setCanvasStyle(nativeCanvas, this._x, this._y, this._displayWidth, this._displayHeight);\n }\n if (this.id != null) {\n nativeCanvas.id = this.id.toString();\n }\n if (this._container) {\n this._container.appendChild(nativeCanvas);\n }\n if (!this.visiable) {\n this.hide();\n }\n // this._context.setScale(this.dpr, this.dpr, true);\n }\n\n applyPosition() {\n const canvas = this._nativeCanvas;\n canvas.style.position = 'absolute';\n canvas.style.top = `${this._y}px`;\n canvas.style.left = `${this._x}px`;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n if (!this.controled) {\n return;\n }\n const {\n width = this._displayWidth,\n height = this._displayHeight,\n dpr = this._dpr,\n x = this._x,\n y = this._y\n } = params;\n const { nativeCanvas } = this;\n nativeCanvas.width = width * dpr;\n nativeCanvas.height = height * dpr;\n\n const isOffscreen = !nativeCanvas.style;\n if (!isOffscreen) {\n this.setCanvasStyle(nativeCanvas, x, y, width, height);\n }\n params.id && (nativeCanvas.id = params.id);\n if (!this.visiable) {\n this.hide();\n }\n // this._context.setScale(dpr, dpr);\n }\n\n private setCanvasStyle(canvas: HTMLCanvasElement, x: number, y: number, w: number, h: number) {\n if (!this.controled) {\n return;\n }\n canvas.style.padding = '0';\n canvas.style.margin = '0';\n canvas.style.border = '0';\n canvas.style.background = 'transparent';\n // canvas.style.position = 'absolute';\n // canvas.style.top = `${y}px`;\n // canvas.style.left = `${x}px`;\n\n canvas.style.width = `${w}px`;\n canvas.style.height = `${h}px`;\n }\n\n hide() {\n this._nativeCanvas && (this._nativeCanvas.style.display = 'none');\n }\n show() {\n this._nativeCanvas && (this._nativeCanvas.style.display = 'block');\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n if (!this.controled) {\n return;\n }\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 // 可能是离屏canvas\n if (this._nativeCanvas.style) {\n this._nativeCanvas.style.width = `${width}px`;\n this._nativeCanvas.style.height = `${height}px`;\n }\n this._nativeCanvas.width = this._pixelWidth;\n this._nativeCanvas.height = this._pixelHeight;\n\n // 设置context的dpr\n const _context = this._context;\n _context.dpr = this._dpr;\n // _context.setScale(this._dpr, this._dpr);\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n if (mimeType === 'image/jpeg') {\n return this._nativeCanvas.toDataURL(mimeType, quality);\n } else if (mimeType === 'image/png') {\n return this._nativeCanvas.toDataURL(mimeType);\n }\n return this._nativeCanvas.toDataURL(mimeType, quality);\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n if (this.controled) {\n this._nativeCanvas.parentElement && this._nativeCanvas.parentElement.removeChild(this._nativeCanvas);\n }\n }\n}\n"]}
@@ -153,6 +153,7 @@ export declare class BrowserContext2d implements IContext2d {
153
153
  underline: number;
154
154
  lineThrough: number;
155
155
  scaleIn3d: boolean;
156
+ direction: "horizontal" | "vertical";
156
157
  };
157
158
  setCommonStyle(params: ISetCommonStyleParams, attribute: ICommonStyleParams, offsetX: number, offsetY: number, defaultParams?: ICommonStyleParams | Partial<ICommonStyleParams>[]): void;
158
159
  protected _setCommonStyle(params: ISetCommonStyleParams, attribute: ICommonStyleParams, offsetX: number, offsetY: number, defaultParams?: ICommonStyleParams): void;
@@ -1,4 +1,4 @@
1
- import { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
1
+ import type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
2
2
  export declare class FeishuCanvas implements ICanvas {
3
3
  static env: EnvType;
4
4
  private _displayWidth;
@@ -15,7 +15,9 @@ export declare class FeishuCanvas implements ICanvas {
15
15
  private _visiable;
16
16
  get id(): number | string;
17
17
  get x(): number;
18
+ set x(_x: number);
18
19
  get y(): number;
20
+ set y(_y: number);
19
21
  get nativeCanvas(): HTMLCanvasElement;
20
22
  get width(): number;
21
23
  set width(width: number);
@@ -25,9 +25,15 @@ let FeishuCanvas = class {
25
25
  get x() {
26
26
  return this._x;
27
27
  }
28
+ set x(_x) {
29
+ this._x = _x;
30
+ }
28
31
  get y() {
29
32
  return this._y;
30
33
  }
34
+ set y(_y) {
35
+ this._y = _y;
36
+ }
31
37
  get nativeCanvas() {
32
38
  return this._nativeCanvas;
33
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/feishu/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { FeishuContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class FeishuCanvas implements ICanvas {\n static env: EnvType = 'feishu';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n get y(): number {\n return this._y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n // 不会修改到位置的\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new FeishuContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/feishu/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { FeishuContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class FeishuCanvas implements ICanvas {\n static env: EnvType = 'feishu';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n set x(_x: number) {\n this._x = _x;\n }\n get y(): number {\n return this._y;\n }\n set y(_y: number) {\n this._y = _y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n // 不会修改到位置的\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new FeishuContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
1
+ import type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
2
2
  export declare class LynxCanvas implements ICanvas {
3
3
  static env: EnvType;
4
4
  private _displayWidth;
@@ -15,7 +15,9 @@ export declare class LynxCanvas implements ICanvas {
15
15
  private _visiable;
16
16
  get id(): number | string;
17
17
  get x(): number;
18
+ set x(_x: number);
18
19
  get y(): number;
20
+ set y(_y: number);
19
21
  get nativeCanvas(): HTMLCanvasElement;
20
22
  get width(): number;
21
23
  set width(width: number);
@@ -25,9 +25,15 @@ let LynxCanvas = class {
25
25
  get x() {
26
26
  return this._x;
27
27
  }
28
+ set x(_x) {
29
+ this._x = _x;
30
+ }
28
31
  get y() {
29
32
  return this._y;
30
33
  }
34
+ set y(_y) {
35
+ this._y = _y;
36
+ }
31
37
  get nativeCanvas() {
32
38
  return this._nativeCanvas;
33
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/lynx/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { LynxContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class LynxCanvas implements ICanvas {\n static env: EnvType = 'lynx';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n get y(): number {\n return this._y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n // 不会修改到位置的\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new LynxContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/lynx/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { LynxContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class LynxCanvas implements ICanvas {\n static env: EnvType = 'lynx';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n set x(_x: number) {\n this._x = _x;\n }\n get y(): number {\n return this._y;\n }\n set y(_y: number) {\n this._y = _y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n // 不会修改到位置的\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new LynxContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -14,7 +14,9 @@ export declare class NodeCanvas implements ICanvas {
14
14
  private _dpr;
15
15
  get id(): number | string;
16
16
  get x(): number;
17
+ set x(_x: number);
17
18
  get y(): number;
19
+ set y(_y: number);
18
20
  get nativeCanvas(): Canvas;
19
21
  get width(): number;
20
22
  set width(width: number);
@@ -25,9 +25,11 @@ let NodeCanvas = class {
25
25
  get x() {
26
26
  return 0;
27
27
  }
28
+ set x(_x) {}
28
29
  get y() {
29
30
  return 0;
30
31
  }
32
+ set y(_y) {}
31
33
  get nativeCanvas() {
32
34
  return this._nativeCanvas;
33
35
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/node/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { EnvType, CanvasConfigType, ICanvas, IContext2d } from '../../../interface';\nimport { NodeContext2d } from './context';\nimport { isFunction } from '@visactor/vutils';\n\ntype Canvas = any;\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class NodeCanvas implements ICanvas {\n static env: EnvType = 'node';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _id: number | string;\n\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _nativeCanvas: Canvas;\n private _context: IContext2d;\n private _visiable: boolean;\n private controled: boolean;\n private _dpr: number;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return 0;\n }\n get y(): number {\n return 0;\n }\n get nativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._pixelWidth / this._dpr;\n }\n\n get displayHeight(): number {\n return this._pixelHeight / this._dpr;\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n this._dpr = dpr;\n this.resize(this.width, this.height);\n return;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n canvasControled = true,\n dpr = DefaultConfig.DPR\n } = params;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n\n // 离屏canvas\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._displayWidth = width;\n this._displayHeight = height;\n this._nativeCanvas = nativeCanvas as unknown as Canvas;\n this._context = new NodeContext2d(this, params.dpr);\n this._id = nativeCanvas.id;\n this._dpr = dpr;\n }\n\n applyPosition() {\n return;\n }\n\n getNativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n this._pixelWidth = width * this._dpr;\n this._pixelHeight = height * this._dpr;\n this._displayWidth = width;\n this._displayHeight = height;\n if (this._nativeCanvas) {\n this._nativeCanvas.width = this._pixelWidth;\n this._nativeCanvas.height = this._pixelHeight;\n }\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n 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":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { EnvType, CanvasConfigType, ICanvas, IContext2d } from '../../../interface';\nimport { NodeContext2d } from './context';\nimport { isFunction } from '@visactor/vutils';\n\ntype Canvas = any;\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class NodeCanvas implements ICanvas {\n static env: EnvType = 'node';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _id: number | string;\n\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _nativeCanvas: Canvas;\n private _context: IContext2d;\n private _visiable: boolean;\n private controled: boolean;\n private _dpr: number;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return 0;\n }\n set x(_x: number) {\n // this._x = _x;\n return;\n }\n get y(): number {\n return 0;\n }\n set y(_y: number) {\n // this._y = _y;\n return;\n }\n get nativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._pixelWidth / this._dpr;\n }\n\n get displayHeight(): number {\n return this._pixelHeight / this._dpr;\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n this._dpr = dpr;\n this.resize(this.width, this.height);\n return;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n canvasControled = true,\n dpr = DefaultConfig.DPR\n } = params;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n\n // 离屏canvas\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._displayWidth = width;\n this._displayHeight = height;\n this._nativeCanvas = nativeCanvas as unknown as Canvas;\n this._context = new NodeContext2d(this, params.dpr);\n this._id = nativeCanvas.id;\n this._dpr = dpr;\n }\n\n applyPosition() {\n return;\n }\n\n getNativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n this._pixelWidth = width * this._dpr;\n this._pixelHeight = height * this._dpr;\n this._displayWidth = width;\n this._displayHeight = height;\n if (this._nativeCanvas) {\n this._nativeCanvas.width = this._pixelWidth;\n this._nativeCanvas.height = this._pixelHeight;\n }\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n if ((this._nativeCanvas as any).release && isFunction((this._nativeCanvas as any).release)) {\n (this._nativeCanvas as any).release();\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
1
+ import type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
2
2
  export declare class TaroCanvas implements ICanvas {
3
3
  static env: EnvType;
4
4
  private _displayWidth;
@@ -14,7 +14,9 @@ export declare class TaroCanvas implements ICanvas {
14
14
  private _visiable;
15
15
  get id(): number | string;
16
16
  get x(): number;
17
+ set x(_x: number);
17
18
  get y(): number;
19
+ set y(_y: number);
18
20
  get nativeCanvas(): HTMLCanvasElement;
19
21
  get width(): number;
20
22
  set width(width: number);
@@ -25,9 +25,15 @@ let TaroCanvas = class {
25
25
  get x() {
26
26
  return this._x;
27
27
  }
28
+ set x(_x) {
29
+ this._x = _x;
30
+ }
28
31
  get y() {
29
32
  return this._y;
30
33
  }
34
+ set y(_y) {
35
+ this._y = _y;
36
+ }
31
37
  get nativeCanvas() {
32
38
  return this._nativeCanvas;
33
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/taro/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { TaroContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class TaroCanvas implements ICanvas {\n static env: EnvType = 'taro';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n get y(): number {\n return this._y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new TaroContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/taro/canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAuC;AAEvC,uCAA0C;AAE1C,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,CAAC;CACP,CAAC;AAGK,IAAM,UAAU,GAAhB,MAAM,UAAU;IAkBrB,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,CAAC,EAAU;QACd,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,CAAC,EAAU;QACd,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM,CAAC,MAAc;QACvB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,UAAU,CAAC,GAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,IAAI,QAAQ,CAAC,QAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,CAAC,GAAW;QAEjB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAMD,YAAY,MAAwB;QAClC,MAAM,EACJ,YAAY,EACZ,KAAK,GAAG,aAAa,CAAC,KAAK,EAC3B,MAAM,GAAG,aAAa,CAAC,MAAM,EAC7B,GAAG,GAAG,aAAa,CAAC,GAAG,EACxB,GAAG,MAAM,CAAC;QACX,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5G,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;QAG3C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,MAAiC;QAC1C,OAAO;IACT,CAAC;IACD,aAAa;QACX,OAAO;IACT,CAAC;IAED,IAAI;QACF,OAAO;IACT,CAAC;IACD,IAAI;QACF,OAAO;IACT,CAAC;IAOD,MAAM,CAAC,KAAa,EAAE,MAAc;QAClC,OAAO;IACT,CAAC;IAKD,SAAS,CAAC,QAAiB,EAAE,OAAgB;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QACnD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,OAAiF;QAC7F,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,qBAAqB;QACnB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAxJM,cAAG,GAAY,MAAM,CAAC;AADlB,UAAU;IADtB,IAAA,sBAAU,GAAE;;GACA,UAAU,CA0JtB;AA1JY,gCAAU","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { TaroContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class TaroCanvas implements ICanvas {\n static env: EnvType = 'taro';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n set x(_x: number) {\n this._x = _x;\n }\n get y(): number {\n return this._y;\n }\n set y(_y: number) {\n this._y = _y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new TaroContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
1
+ import type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';
2
2
  export declare class TTCanvas implements ICanvas {
3
3
  static env: EnvType;
4
4
  private _displayWidth;
@@ -15,7 +15,9 @@ export declare class TTCanvas implements ICanvas {
15
15
  private _visiable;
16
16
  get id(): number | string;
17
17
  get x(): number;
18
+ set x(_x: number);
18
19
  get y(): number;
20
+ set y(_y: number);
19
21
  get nativeCanvas(): HTMLCanvasElement;
20
22
  get width(): number;
21
23
  set width(width: number);
@@ -25,9 +25,15 @@ let TTCanvas = class {
25
25
  get x() {
26
26
  return this._x;
27
27
  }
28
+ set x(_x) {
29
+ this._x = _x;
30
+ }
28
31
  get y() {
29
32
  return this._y;
30
33
  }
34
+ set y(_y) {
35
+ this._y = _y;
36
+ }
31
37
  get nativeCanvas() {
32
38
  return this._nativeCanvas;
33
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/tt/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { TTContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class TTCanvas implements ICanvas {\n static env: EnvType = 'tt';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n get y(): number {\n return this._y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new TTContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/tt/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { TTContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class TTCanvas implements ICanvas {\n static env: EnvType = 'tt';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n set x(_x: number) {\n this._x = _x;\n }\n get y(): number {\n return this._y;\n }\n set y(_y: number) {\n this._y = _y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new TTContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -15,7 +15,9 @@ export declare class WxCanvas implements ICanvas {
15
15
  private _visiable;
16
16
  get id(): number | string;
17
17
  get x(): number;
18
+ set x(_x: number);
18
19
  get y(): number;
20
+ set y(_y: number);
19
21
  get nativeCanvas(): HTMLCanvasElement;
20
22
  get width(): number;
21
23
  set width(width: number);
@@ -25,9 +25,15 @@ let WxCanvas = class {
25
25
  get x() {
26
26
  return this._x;
27
27
  }
28
+ set x(_x) {
29
+ this._x = _x;
30
+ }
28
31
  get y() {
29
32
  return this._y;
30
33
  }
34
+ set y(_y) {
35
+ this._y = _y;
36
+ }
31
37
  get nativeCanvas() {
32
38
  return this._nativeCanvas;
33
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/canvas/contributions/wx/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { WxContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class WxCanvas implements ICanvas {\n static env: EnvType = 'wx';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n get y(): number {\n return this._y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n // 不会修改到位置的\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new WxContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/canvas/contributions/wx/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { ICanvas, IContext2d, CanvasConfigType, EnvType } from '../../../interface';\nimport { WxContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class WxCanvas implements ICanvas {\n static env: EnvType = 'wx';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n private _id: number | string;\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _x: number;\n private _y: number;\n private _dpr: number;\n\n private _container?: HTMLElement | null;\n private _nativeCanvas: HTMLCanvasElement;\n private _context: IContext2d;\n private _visiable: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return this._x;\n }\n set x(_x: number) {\n this._x = _x;\n }\n get y(): number {\n return this._y;\n }\n set y(_y: number) {\n this._y = _y;\n }\n get nativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._displayWidth;\n }\n get displayHeight(): number {\n return this._displayHeight;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n // this._lastPixelRatio = this._pixelRatio;\n this._dpr = dpr;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n dpr = DefaultConfig.DPR\n } = params;\n // 不会修改到位置的\n const { x, y } = nativeCanvas.getBoundingClientRect ? nativeCanvas.getBoundingClientRect() : { x: 0, y: 0 };\n this._x = x;\n this._y = y;\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._visiable = params.visiable !== false;\n\n // 离屏canvas\n this._displayWidth = width;\n this._displayHeight = height;\n this._dpr = dpr;\n this._nativeCanvas = nativeCanvas;\n this._context = new WxContext2d(this, this._dpr);\n this._id = nativeCanvas.id;\n }\n\n getNativeCanvas(): HTMLCanvasElement {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n applyPosition() {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n throw new Error('暂未实现');\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
@@ -4,4 +4,8 @@ export declare function drawAreaSegments(path: IPath2D, segPath: IAreaCacheItem,
4
4
  offsetY?: number;
5
5
  offsetZ?: number;
6
6
  direction?: IDirection;
7
+ drawConnect?: boolean;
8
+ mode?: 'none' | 'connect' | 'zero';
9
+ zeroX?: number;
10
+ zeroY?: number;
7
11
  }): void;
@@ -8,17 +8,30 @@ const vutils_1 = require("@visactor/vutils"), enums_1 = require("./enums"), cubi
8
8
 
9
9
  function drawAreaSegments(path, segPath, percent, params) {
10
10
  var _a;
11
+ const {drawConnect: drawConnect = !1, mode: mode = "none"} = params || {};
12
+ if (drawConnect && "none" === mode) return;
11
13
  const {top: top, bottom: bottom} = segPath;
12
14
  if (percent >= 1) {
13
15
  const topList = [], bottomList = [];
14
16
  let lastDefined = !0;
15
- for (let i = 0, n = top.curves.length; i < n; i++) {
16
- const topCurve = top.curves[i];
17
- lastDefined !== topCurve.defined ? (lastDefined ? (drawAreaBlock(path, topList, bottomList, params),
18
- topList.length = 0, bottomList.length = 0) : (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1])),
19
- lastDefined = !lastDefined) : lastDefined && (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1]));
17
+ if (drawConnect) {
18
+ for (let i = 0, n = top.curves.length; i < n; i++) {
19
+ const topCurve = top.curves[i];
20
+ lastDefined !== topCurve.defined ? (lastDefined ? (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1])) : (drawAreaConnectBlock(path, topList, bottomList, params),
21
+ topList.length = 0, bottomList.length = 0), lastDefined = !lastDefined) : lastDefined || (topList.push(topCurve),
22
+ bottomList.push(bottom.curves[n - i - 1]));
23
+ }
24
+ drawAreaBlock(path, topList, bottomList, params);
25
+ } else {
26
+ for (let i = 0, n = top.curves.length; i < n; i++) {
27
+ const topCurve = top.curves[i];
28
+ lastDefined !== topCurve.defined ? (lastDefined ? (drawAreaBlock(path, topList, bottomList, params),
29
+ topList.length = 0, bottomList.length = 0) : (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1])),
30
+ lastDefined = !lastDefined) : lastDefined && (topList.push(topCurve), bottomList.push(bottom.curves[n - i - 1]));
31
+ }
32
+ drawAreaBlock(path, topList, bottomList, params);
20
33
  }
21
- return void drawAreaBlock(path, topList, bottomList, params);
34
+ return;
22
35
  }
23
36
  if (percent <= 0) return;
24
37
  let {direction: direction} = params || {};
@@ -45,6 +58,18 @@ function drawAreaSegments(path, segPath, percent, params) {
45
58
  drawAreaBlock(path, topList, bottomList, params);
46
59
  }
47
60
 
61
+ function drawAreaConnectBlock(path, topList, bottomList, params) {
62
+ if (topList.length < 2) return;
63
+ const {offsetX: offsetX = 0, offsetY: offsetY = 0, offsetZ: offsetZ = 0, mode: mode} = params || {};
64
+ let curve = topList[0];
65
+ path.moveTo(curve.p0.x + offsetX, curve.p0.y + offsetY, offsetZ), curve = topList[topList.length - 1];
66
+ let end = curve.p3 || curve.p1;
67
+ path.lineTo(end.x + offsetX, end.y + offsetY, offsetZ), curve = bottomList[bottomList.length - 1],
68
+ path.lineTo(curve.p0.x + offsetX, curve.p0.y + offsetY, offsetZ), curve = bottomList[0],
69
+ end = curve.p3 || curve.p1, path.lineTo(end.x + offsetX, end.y + offsetY, offsetZ),
70
+ path.closePath();
71
+ }
72
+
48
73
  function drawAreaBlock(path, topList, bottomList, params) {
49
74
  const {offsetX: offsetX = 0, offsetY: offsetY = 0, offsetZ: offsetZ = 0} = params || {};
50
75
  let needMoveTo = !0;