@visactor/vrender-core 0.22.7-alpha.3 → 0.23.0-alpha.3

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 (250) hide show
  1. package/cjs/canvas/constants.js +1 -2
  2. package/cjs/canvas/empty-context.d.ts +1 -0
  3. package/cjs/canvas/empty-context.js +4 -0
  4. package/cjs/canvas/empty-context.js.map +1 -1
  5. package/cjs/color-string/interpolate.d.ts +1 -0
  6. package/cjs/color-string/interpolate.js +7 -2
  7. package/cjs/color-string/interpolate.js.map +1 -1
  8. package/cjs/color-string/store.js +2 -1
  9. package/cjs/common/enums.js +1 -2
  10. package/cjs/common/performance-raf.d.ts +8 -0
  11. package/cjs/common/performance-raf.js +31 -0
  12. package/cjs/common/performance-raf.js.map +1 -0
  13. package/cjs/common/render-area.js +1 -0
  14. package/cjs/common/store.js +1 -2
  15. package/cjs/common/text.js +1 -1
  16. package/cjs/common/utils.js +1 -1
  17. package/cjs/core/application.js +1 -1
  18. package/cjs/core/camera.js +1 -1
  19. package/cjs/core/constants.js +1 -1
  20. package/cjs/core/core-modules.js +1 -1
  21. package/cjs/core/global-module.js +0 -2
  22. package/cjs/core/global.d.ts +3 -0
  23. package/cjs/core/global.js +13 -3
  24. package/cjs/core/global.js.map +1 -1
  25. package/cjs/core/stage.d.ts +3 -1
  26. package/cjs/core/stage.js +24 -19
  27. package/cjs/core/stage.js.map +1 -1
  28. package/cjs/event/event-system.js +7 -6
  29. package/cjs/event/event-system.js.map +1 -1
  30. package/cjs/graphic/graphic.d.ts +4 -3
  31. package/cjs/graphic/graphic.js +16 -22
  32. package/cjs/graphic/graphic.js.map +1 -1
  33. package/cjs/index.d.ts +1 -3
  34. package/cjs/index.js +16 -17
  35. package/cjs/index.js.map +1 -1
  36. package/cjs/interface/animate.d.ts +5 -0
  37. package/cjs/interface/animate.js.map +1 -1
  38. package/cjs/interface/context.d.ts +1 -0
  39. package/cjs/interface/context.js.map +1 -1
  40. package/cjs/interface/global.d.ts +2 -0
  41. package/cjs/interface/global.js.map +1 -1
  42. package/cjs/interface/graphic.d.ts +3 -1
  43. package/cjs/interface/graphic.js.map +1 -1
  44. package/cjs/interface/index.d.ts +1 -1
  45. package/cjs/interface/index.js +9 -9
  46. package/cjs/interface/index.js.map +1 -1
  47. package/cjs/interface/render.d.ts +6 -0
  48. package/cjs/interface/render.js.map +1 -1
  49. package/cjs/interface/stage.d.ts +1 -0
  50. package/cjs/interface/stage.js.map +1 -1
  51. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.d.ts +2 -2
  52. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +6 -5
  53. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  54. package/cjs/render/contributions/render/arc-render.d.ts +4 -2
  55. package/cjs/render/contributions/render/arc-render.js +19 -17
  56. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  57. package/cjs/render/contributions/render/base-render.d.ts +2 -2
  58. package/cjs/render/contributions/render/base-render.js +2 -2
  59. package/cjs/render/contributions/render/base-render.js.map +1 -1
  60. package/cjs/render/contributions/render/draw-contribution.d.ts +1 -0
  61. package/cjs/render/contributions/render/draw-contribution.js +23 -19
  62. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  63. package/cjs/render/contributions/render/draw-interceptor.js +1 -0
  64. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  65. package/cjs/render/contributions/render/group-render.d.ts +2 -2
  66. package/cjs/render/contributions/render/group-render.js +14 -10
  67. package/cjs/render/contributions/render/group-render.js.map +1 -1
  68. package/cjs/render/contributions/render/rect-render.d.ts +3 -1
  69. package/cjs/render/contributions/render/rect-render.js +17 -15
  70. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  71. package/cjs/render/contributions/render/symbol-render.d.ts +4 -2
  72. package/cjs/render/contributions/render/symbol-render.js +16 -11
  73. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  74. package/dist/index.es.js +2507 -5202
  75. package/es/canvas/constants.js +1 -2
  76. package/es/canvas/empty-context.d.ts +1 -0
  77. package/es/canvas/empty-context.js +4 -0
  78. package/es/canvas/empty-context.js.map +1 -1
  79. package/es/color-string/interpolate.d.ts +1 -0
  80. package/es/color-string/interpolate.js +4 -0
  81. package/es/color-string/interpolate.js.map +1 -1
  82. package/es/color-string/store.js +2 -1
  83. package/es/common/enums.js +1 -2
  84. package/es/common/performance-raf.d.ts +8 -0
  85. package/es/common/performance-raf.js +23 -0
  86. package/es/common/performance-raf.js.map +1 -0
  87. package/es/common/render-area.js +2 -1
  88. package/es/common/store.js +1 -2
  89. package/es/common/text.js +1 -1
  90. package/es/common/utils.js +1 -1
  91. package/es/core/application.js +1 -1
  92. package/es/core/camera.js +1 -1
  93. package/es/core/constants.js +1 -1
  94. package/es/core/core-modules.js +1 -1
  95. package/es/core/global-module.js +0 -2
  96. package/es/core/global.d.ts +3 -0
  97. package/es/core/global.js +14 -2
  98. package/es/core/global.js.map +1 -1
  99. package/es/core/stage.d.ts +3 -1
  100. package/es/core/stage.js +23 -21
  101. package/es/core/stage.js.map +1 -1
  102. package/es/event/event-system.js +7 -6
  103. package/es/event/event-system.js.map +1 -1
  104. package/es/graphic/graphic.d.ts +4 -3
  105. package/es/graphic/graphic.js +17 -23
  106. package/es/graphic/graphic.js.map +1 -1
  107. package/es/index.d.ts +1 -3
  108. package/es/index.js +2 -6
  109. package/es/index.js.map +1 -1
  110. package/es/interface/animate.d.ts +5 -0
  111. package/es/interface/animate.js.map +1 -1
  112. package/es/interface/context.d.ts +1 -0
  113. package/es/interface/context.js.map +1 -1
  114. package/es/interface/global.d.ts +2 -0
  115. package/es/interface/global.js.map +1 -1
  116. package/es/interface/graphic.d.ts +3 -1
  117. package/es/interface/graphic.js.map +1 -1
  118. package/es/interface/index.d.ts +1 -1
  119. package/es/interface/index.js +2 -2
  120. package/es/interface/index.js.map +1 -1
  121. package/es/interface/render.d.ts +6 -0
  122. package/es/interface/render.js.map +1 -1
  123. package/es/interface/stage.d.ts +1 -0
  124. package/es/interface/stage.js.map +1 -1
  125. package/es/plugins/builtin-plugin/richtext-edit-plugin.d.ts +2 -2
  126. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +4 -5
  127. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  128. package/es/render/contributions/render/arc-render.d.ts +4 -2
  129. package/es/render/contributions/render/arc-render.js +19 -17
  130. package/es/render/contributions/render/arc-render.js.map +1 -1
  131. package/es/render/contributions/render/base-render.d.ts +2 -2
  132. package/es/render/contributions/render/base-render.js +2 -2
  133. package/es/render/contributions/render/base-render.js.map +1 -1
  134. package/es/render/contributions/render/draw-contribution.d.ts +1 -0
  135. package/es/render/contributions/render/draw-contribution.js +23 -19
  136. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  137. package/es/render/contributions/render/draw-interceptor.js +1 -0
  138. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  139. package/es/render/contributions/render/group-render.d.ts +2 -2
  140. package/es/render/contributions/render/group-render.js +14 -10
  141. package/es/render/contributions/render/group-render.js.map +1 -1
  142. package/es/render/contributions/render/rect-render.d.ts +3 -1
  143. package/es/render/contributions/render/rect-render.js +17 -14
  144. package/es/render/contributions/render/rect-render.js.map +1 -1
  145. package/es/render/contributions/render/symbol-render.d.ts +4 -2
  146. package/es/render/contributions/render/symbol-render.js +16 -11
  147. package/es/render/contributions/render/symbol-render.js.map +1 -1
  148. package/package.json +3 -3
  149. package/cjs/animate/Ticker/default-ticker.d.ts +0 -40
  150. package/cjs/animate/Ticker/default-ticker.js +0 -140
  151. package/cjs/animate/Ticker/default-ticker.js.map +0 -1
  152. package/cjs/animate/Ticker/index.d.ts +0 -5
  153. package/cjs/animate/Ticker/index.js +0 -23
  154. package/cjs/animate/Ticker/index.js.map +0 -1
  155. package/cjs/animate/Ticker/manual-ticker-handler.d.ts +0 -15
  156. package/cjs/animate/Ticker/manual-ticker-handler.js +0 -36
  157. package/cjs/animate/Ticker/manual-ticker-handler.js.map +0 -1
  158. package/cjs/animate/Ticker/manual-ticker.d.ts +0 -19
  159. package/cjs/animate/Ticker/manual-ticker.js +0 -37
  160. package/cjs/animate/Ticker/manual-ticker.js.map +0 -1
  161. package/cjs/animate/Ticker/raf-tick-handler.d.ts +0 -9
  162. package/cjs/animate/Ticker/raf-tick-handler.js +0 -30
  163. package/cjs/animate/Ticker/raf-tick-handler.js.map +0 -1
  164. package/cjs/animate/Ticker/timeout-tick-handler.d.ts +0 -9
  165. package/cjs/animate/Ticker/timeout-tick-handler.js +0 -28
  166. package/cjs/animate/Ticker/timeout-tick-handler.js.map +0 -1
  167. package/cjs/animate/Ticker/type.d.ts +0 -6
  168. package/cjs/animate/Ticker/type.js +0 -11
  169. package/cjs/animate/Ticker/type.js.map +0 -1
  170. package/cjs/animate/animate.d.ts +0 -147
  171. package/cjs/animate/animate.js +0 -403
  172. package/cjs/animate/animate.js.map +0 -1
  173. package/cjs/animate/custom-animate.d.ts +0 -236
  174. package/cjs/animate/custom-animate.js +0 -722
  175. package/cjs/animate/custom-animate.js.map +0 -1
  176. package/cjs/animate/default-ticker.d.ts +0 -2
  177. package/cjs/animate/default-ticker.js +0 -14
  178. package/cjs/animate/default-ticker.js.map +0 -1
  179. package/cjs/animate/easing-func.d.ts +0 -1
  180. package/cjs/animate/easing-func.js +0 -16
  181. package/cjs/animate/easing-func.js.map +0 -1
  182. package/cjs/animate/easing.d.ts +0 -49
  183. package/cjs/animate/easing.js +0 -141
  184. package/cjs/animate/easing.js.map +0 -1
  185. package/cjs/animate/group-fade.d.ts +0 -16
  186. package/cjs/animate/group-fade.js +0 -66
  187. package/cjs/animate/group-fade.js.map +0 -1
  188. package/cjs/animate/index.d.ts +0 -8
  189. package/cjs/animate/index.js +0 -24
  190. package/cjs/animate/index.js.map +0 -1
  191. package/cjs/animate/morphing.d.ts +0 -52
  192. package/cjs/animate/morphing.js +0 -292
  193. package/cjs/animate/morphing.js.map +0 -1
  194. package/cjs/animate/timeline.d.ts +0 -17
  195. package/cjs/animate/timeline.js +0 -46
  196. package/cjs/animate/timeline.js.map +0 -1
  197. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.d.ts +0 -1
  198. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.js +0 -3
  199. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.js.map +0 -1
  200. package/es/animate/Ticker/default-ticker.d.ts +0 -40
  201. package/es/animate/Ticker/default-ticker.js +0 -138
  202. package/es/animate/Ticker/default-ticker.js.map +0 -1
  203. package/es/animate/Ticker/index.d.ts +0 -5
  204. package/es/animate/Ticker/index.js +0 -10
  205. package/es/animate/Ticker/index.js.map +0 -1
  206. package/es/animate/Ticker/manual-ticker-handler.d.ts +0 -15
  207. package/es/animate/Ticker/manual-ticker-handler.js +0 -28
  208. package/es/animate/Ticker/manual-ticker-handler.js.map +0 -1
  209. package/es/animate/Ticker/manual-ticker.d.ts +0 -19
  210. package/es/animate/Ticker/manual-ticker.js +0 -31
  211. package/es/animate/Ticker/manual-ticker.js.map +0 -1
  212. package/es/animate/Ticker/raf-tick-handler.d.ts +0 -9
  213. package/es/animate/Ticker/raf-tick-handler.js +0 -22
  214. package/es/animate/Ticker/raf-tick-handler.js.map +0 -1
  215. package/es/animate/Ticker/timeout-tick-handler.d.ts +0 -9
  216. package/es/animate/Ticker/timeout-tick-handler.js +0 -20
  217. package/es/animate/Ticker/timeout-tick-handler.js.map +0 -1
  218. package/es/animate/Ticker/type.d.ts +0 -6
  219. package/es/animate/Ticker/type.js +0 -7
  220. package/es/animate/Ticker/type.js.map +0 -1
  221. package/es/animate/animate.d.ts +0 -147
  222. package/es/animate/animate.js +0 -398
  223. package/es/animate/animate.js.map +0 -1
  224. package/es/animate/custom-animate.d.ts +0 -236
  225. package/es/animate/custom-animate.js +0 -699
  226. package/es/animate/custom-animate.js.map +0 -1
  227. package/es/animate/default-ticker.d.ts +0 -2
  228. package/es/animate/default-ticker.js +0 -12
  229. package/es/animate/default-ticker.js.map +0 -1
  230. package/es/animate/easing-func.d.ts +0 -1
  231. package/es/animate/easing-func.js +0 -10
  232. package/es/animate/easing-func.js.map +0 -1
  233. package/es/animate/easing.d.ts +0 -49
  234. package/es/animate/easing.js +0 -134
  235. package/es/animate/easing.js.map +0 -1
  236. package/es/animate/group-fade.d.ts +0 -16
  237. package/es/animate/group-fade.js +0 -56
  238. package/es/animate/group-fade.js.map +0 -1
  239. package/es/animate/index.d.ts +0 -8
  240. package/es/animate/index.js +0 -16
  241. package/es/animate/index.js.map +0 -1
  242. package/es/animate/morphing.d.ts +0 -52
  243. package/es/animate/morphing.js +0 -295
  244. package/es/animate/morphing.js.map +0 -1
  245. package/es/animate/timeline.d.ts +0 -17
  246. package/es/animate/timeline.js +0 -42
  247. package/es/animate/timeline.js.map +0 -1
  248. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.d.ts +0 -1
  249. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.js +0 -3
  250. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.js.map +0 -1
@@ -3,5 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Context2dFactory = exports.CanvasFactory = void 0, exports.CanvasFactory = Symbol.for("CanvasFactory"),
6
- exports.Context2dFactory = Symbol.for("Context2dFactory");
7
- //# sourceMappingURL=constants.js.map
6
+ exports.Context2dFactory = Symbol.for("Context2dFactory");
@@ -33,6 +33,7 @@ export declare class EmptyContext2d implements IContext2d {
33
33
  get currentMatrix(): Matrix;
34
34
  cloneMatrix(m: Matrix): IMatrix;
35
35
  clear(): void;
36
+ reset(): void;
36
37
  restore(): void;
37
38
  highPerformanceRestore(): void;
38
39
  rotate(rad: number, setTransform?: boolean): void;
@@ -44,6 +44,10 @@ let EmptyContext2d = class {
44
44
  clear() {
45
45
  this.save(), this.resetTransform(), this.restore();
46
46
  }
47
+ reset() {
48
+ this.matrix.setValue(1, 0, 0, 1, 0, 0), this.applyedMatrix = new vutils_1.Matrix(1, 0, 0, 1, 0, 0),
49
+ this.stack.length = 0;
50
+ }
47
51
  restore() {
48
52
  this.stack.length > 0 && (matrix_allocate_1.matrixAllocate.free(this.matrix), this.matrix = this.stack.pop(),
49
53
  this.setTransformForCurrent());
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/empty-context.ts"],"names":[],"mappings":"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","file":"empty-context.js","sourcesContent":["import type { IMatrix } from '@visactor/vutils';\nimport { Matrix } from '@visactor/vutils';\nimport { injectable } from '../common/inversify-lite';\nimport type {\n ICanvas,\n ICommonStyleParams,\n IContext2d,\n ISetCommonStyleParams,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n IConicalGradientData,\n ITextStyleParams\n} from '../interface';\nimport { contain, containStroke } from './util';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { getScaledStroke } from '../common/canvas-utils';\nimport { matrixAllocate } from '../allocator/matrix-allocate';\n/**\n * 部分源码参考konva\n * MIT License\n\n Original work Copyright (C) 2011 - 2013 by Eric Rowell (KineticJS)\n Modified work Copyright (C) 2014 - present by Anton Lavrenov (Konva)\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n */\n\n// https://github.com/konvajs/konva/blob/master/src/Context.ts\nconst initMatrix = new Matrix(1, 0, 0, 1, 0, 0);\nconst globalPoint = { x: 0, y: 0 };\n\n@injectable()\nexport class EmptyContext2d implements IContext2d {\n declare path: CustomPath2D;\n declare canvas: null;\n declare stack: Matrix[];\n protected declare matrix: Matrix;\n protected declare applyedMatrix?: Matrix; // 被应用的matrix\n // 属性代理\n declare fillStyle: string | CanvasGradient | CanvasPattern;\n /**\n * @deprecated font方法不建议使用,请使用setTextStyle\n */\n declare font: string;\n declare globalAlpha: number;\n declare lineCap: string;\n declare lineDashOffset: number;\n declare lineJoin: string;\n declare lineWidth: number;\n declare miterLimit: number;\n declare shadowBlur: number;\n declare shadowColor: string;\n declare shadowOffsetX: number;\n declare shadowOffsetY: number;\n declare strokeStyle: string | CanvasGradient | CanvasPattern;\n declare textAlign: string;\n declare textBaseline: string;\n declare dpr: number;\n declare _clearMatrix: IMatrix;\n\n get nativeContext(): any {\n return this.path;\n }\n\n constructor(canvas: any, dpr: number) {\n this.matrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.stack = [];\n this.dpr = dpr;\n this.applyedMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.path = new CustomPath2D();\n this._clearMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n }\n\n getCanvas(): ICanvas {\n throw new Error('不支持getCanvas');\n }\n\n getContext() {\n throw new Error('不支持getContext');\n }\n /**\n * 设置当前ctx 的transform信息\n */\n setTransformForCurrent(force: boolean = false) {\n // 只作简单判断\n if (!force && this.applyedMatrix.equalToMatrix(this.matrix)) {\n return;\n }\n\n this.applyedMatrix = this.cloneMatrix(this.matrix);\n return;\n }\n /**\n * 获取当前矩阵信息\n */\n get currentMatrix() {\n return this.matrix;\n }\n\n cloneMatrix(m: Matrix) {\n return matrixAllocate.allocateByObj(m);\n }\n\n /**\n * 清空画布\n */\n clear() {\n this.save();\n this.resetTransform();\n this.restore();\n }\n\n restore() {\n if (this.stack.length > 0) {\n matrixAllocate.free(this.matrix);\n this.matrix = this.stack.pop() as Matrix;\n this.setTransformForCurrent();\n }\n }\n highPerformanceRestore() {\n if (this.stack.length > 0) {\n matrixAllocate.free(this.matrix);\n this.matrix = this.stack.pop() as Matrix;\n }\n }\n\n /**\n *\n * @param angle 弧度数\n */\n rotate(rad: number, setTransform: boolean = true) {\n this.matrix.rotate(rad);\n setTransform && this.setTransformForCurrent();\n }\n\n save() {\n const matrix = this.cloneMatrix(this.matrix);\n this.stack.push(matrix);\n }\n highPerformanceSave() {\n const matrix = this.cloneMatrix(this.matrix);\n this.stack.push(matrix);\n }\n\n /**\n * 基于当前matrix再次scale\n * @param sx\n * @param sy\n * @param setTransform 是否设置transform到context中\n */\n scale(sx: number, sy: number, setTransform: boolean = true) {\n this.matrix.scale(sx, sy);\n setTransform && this.setTransformForCurrent();\n }\n setScale(sx: number, sy: number, setTransform: boolean = true): void {\n this.matrix.setScale(sx, sy);\n setTransform && this.setTransformForCurrent();\n }\n /**\n * 基于某个点进行缩放\n * @param sx\n * @param sy\n * @param px\n * @param py\n */\n scalePoint(sx: number, sy: number, px: number, py: number, setTransform: boolean = true) {\n this.translate(px, py, false);\n this.scale(sx, sy, false);\n this.translate(-px, -py, false);\n setTransform && this.setTransformForCurrent();\n }\n /**\n *\n * @param a\n * @param b\n * @param c\n * @param d\n * @param e\n * @param f\n * @param setTransform\n */\n setTransform(\n a: number,\n b: number,\n c: number,\n d: number,\n e: number,\n f: number,\n setTransform: boolean = true,\n dpr: number = this.dpr\n ) {\n this.matrix.setValue(dpr * a, dpr * b, dpr * c, dpr * d, dpr * e, dpr * f);\n setTransform && this.setTransformForCurrent();\n }\n\n setTransformFromMatrix(matrix: Matrix, setTransform: boolean = true, dpr: number = this.dpr) {\n this.matrix.setValue(\n matrix.a * dpr,\n matrix.b * dpr,\n matrix.c * dpr,\n matrix.d * dpr,\n matrix.e * dpr,\n matrix.f * dpr\n );\n setTransform && this.setTransformForCurrent();\n }\n\n resetTransform(setTransform: boolean = true, dpr: number = this.dpr) {\n this.setTransform(dpr, 0, 0, dpr, 0, 0);\n setTransform && this.setTransformForCurrent();\n }\n\n // transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void;\n transform(a: number, b: number, c: number, d: number, e: number, f: number, setTransform: boolean = true) {\n this.matrix.multiply(a, b, c, d, e, f);\n setTransform && this.setTransformForCurrent();\n }\n transformFromMatrix(matrix: Matrix, setTransform?: boolean): void {\n this.matrix.multiply(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n setTransform && this.setTransformForCurrent();\n }\n\n translate(x: number, y: number, setTransform: boolean = true) {\n this.matrix.translate(x, y);\n setTransform && this.setTransformForCurrent();\n }\n /**\n * 旋转角度,自动转换为弧度\n * @param deg 角度数\n */\n rotateDegrees(deg: number, setTransform: boolean = true) {\n const rad = (deg * Math.PI) / 180;\n this.rotate(rad, setTransform);\n }\n\n /**\n * 绕点旋转\n * @param rad 弧度\n * @param x 旋转中心点x\n * @param y 旋转中心点y\n */\n rotateAbout(rad: number, x: number, y: number, setTransform: boolean = true) {\n this.translate(x, y, false);\n this.rotate(rad, false);\n this.translate(-x, -y, false);\n setTransform && this.setTransformForCurrent();\n }\n\n /**\n * 绕点旋转\n * @param deg 旋转角度\n * @param x 旋转中心点x\n * @param y 旋转中心点y\n */\n rotateDegreesAbout(deg: number, x: number, y: number, setTransform: boolean = true) {\n this.translate(x, y, false);\n this.rotateDegrees(deg, false);\n this.translate(-x, -y, false);\n setTransform && this.setTransformForCurrent();\n }\n\n // /**\n // * 全局坐标 -> 当前矩阵的局部坐标\n // * @param x x\n // * @param y y\n // */\n // transformPoint(x: number, y: number): Point {\n // const inverseMatrix = this.matrix.getInverse();\n // // dpr\n // x = x * this.dpr;\n // y = y * this.dpr;\n // return new Point(\n // x * inverseMatrix.a + y * inverseMatrix.c + inverseMatrix.e,\n // x * inverseMatrix.b + y * inverseMatrix.d + inverseMatrix.f\n // );\n // }\n\n // /**\n // * 坐标转换\n // * @param x x\n // * @param y y\n // */\n // transformPoint2(x: number, y: number): Point {\n // const inverseMatrix = this.matrix;\n // return new Point(\n // x * inverseMatrix.a + y * inverseMatrix.c + inverseMatrix.e,\n // x * inverseMatrix.b + y * inverseMatrix.d + inverseMatrix.f\n // );\n // }\n\n // transformPoint3(x: number, y: number, matrix: Matrix): Point {\n // // dpr\n // x = x * this.dpr;\n // y = y * this.dpr;\n // return new Point(x * matrix.a + y * matrix.c + matrix.e, x * matrix.b + y * matrix.d + matrix.f);\n // }\n\n //////// 代理方法\n // isPointInStroke ,drawFocusIfNeeded 方法没有代理,如有需要再添加\n\n beginPath() {\n this.path.clear();\n }\n\n clip(fillRule?: CanvasFillRule): void;\n clip(path: Path2D, fillRule?: CanvasFillRule): void;\n clip(path?: Path2D | CanvasFillRule, fillRule?: CanvasFillRule) {\n return;\n }\n\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean) {\n this.path.arc(x, y, radius, startAngle, endAngle, anticlockwise);\n }\n\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n arcTo(x1: number, y1: number, x2: number, y2: number, radiusX: number) {\n this.path.arcTo(x1, y1, x2, y2, radiusX);\n }\n\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) {\n this.path.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n }\n\n closePath() {\n this.path.closePath();\n }\n\n ellipse(\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) {\n return;\n }\n lineTo(x: number, y: number) {\n this.path.lineTo(x, y);\n }\n\n moveTo(x: number, y: number) {\n this.path.moveTo(x, y);\n }\n\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number) {\n this.path.quadraticCurveTo(cpx, cpy, x, y);\n }\n\n rect(x: number, y: number, w: number, h: number) {\n this.path.rect(x, y, w, h);\n }\n\n createImageData(imageDataOrSw: number | ImageData, sh?: number): ImageData {\n return null;\n }\n\n createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient {\n throw new Error('不支持createLinearGradient');\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n throw new Error('不支持createPattern');\n }\n\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient {\n throw new Error('不支持createRadialGradient');\n }\n\n createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData {\n return null;\n }\n\n // createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradient | null {\n // // let edit = false;\n // // let pattern: CanvasPattern | null;\n // // // eslint-disable-next-line @typescript-eslint/no-this-alias\n // // const ctx = this;\n // // const obj: IConicalGradient = {\n // // stops: [],\n // // addColorStop(offset: number, color: string) {\n // // this.stops.push([offset, color]);\n // // edit = true;\n // // },\n // // GetPattern(minW: number, minH: number, deltaAngle?: number): CanvasPattern | null {\n // // if (edit) {\n // // if (!deltaAngle) deltaAngle = endAngle - startAngle;\n // // pattern = createConicalGradient(ctx, this.stops, x, y, deltaAngle, startAngle, endAngle, minW, minH);\n // // edit = false;\n // // }\n // // return pattern;\n // // }\n // // };\n // // return obj;\n // }\n\n // fill(fillRule?: CanvasFillRule): void;\n // fill(path?: Path2D, fillRule?: CanvasFillRule): void;\n fill(path?: Path2D, fillRule?: CanvasFillRule) {\n return;\n }\n\n fillRect(x: number, y: number, width: number, height: number) {\n this.path.rect(x, y, width, height);\n }\n\n clearRect(x: number, y: number, w: number, h: number) {\n return;\n }\n\n fillText(text: string, x: number, y: number) {\n return;\n }\n\n getImageData(sx: number, sy: number, sw: number, sh: number): ImageData {\n return null;\n }\n\n getLineDash(): number[] {\n return [];\n }\n\n isPointInPath(x: number, y: number) {\n this.matrix.transformPoint({ x, y }, globalPoint);\n return contain(this.path.commandList, globalPoint.x, globalPoint.y);\n }\n\n isPointInStroke(x: number, y: number) {\n if (!this.lineWidth) {\n return false;\n }\n this.matrix.transformPoint({ x, y }, globalPoint);\n const lineWidth = getScaledStroke(this, this.lineWidth, this.dpr);\n return containStroke(this.path.commandList, lineWidth, globalPoint.x, globalPoint.y);\n }\n\n measureText(text: string): { width: number } {\n throw new Error('不支持measureText');\n }\n\n putImageData(imagedata: ImageData, dx: number, dy: number) {\n throw new Error('不支持measureText');\n }\n\n setLineDash(segments: number[]) {\n return;\n }\n\n stroke(path?: Path2D) {\n return;\n }\n\n strokeRect(x: number, y: number, width: number, height: number) {\n this.path.rect(x, y, width, height);\n }\n\n strokeText(text: string, x: number, y: number) {\n return;\n }\n\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n dstX: number,\n dstY: number\n ): void;\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ): void;\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n srcX: number,\n srcY: number,\n srcW: number,\n srcH: number,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ): void;\n\n drawImage() {\n return;\n }\n\n setCommonStyle(\n params: ISetCommonStyleParams,\n attribute: ICommonStyleParams,\n offsetX: number,\n offsetY: number,\n defaultParams?: ICommonStyleParams | Partial<ICommonStyleParams>[]\n ) {\n return;\n }\n\n _setCommonStyle(params: ISetCommonStyleParams, offsetX: number, offsetY: number, defaultParams?: ICommonStyleParams) {\n return;\n }\n\n setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams | IStrokeStyleParams[]\n ) {\n return;\n }\n _setStrokeStyle(params: ISetStrokeStyleParams, offsetX: number, offsetY: number, defaultParams?: IStrokeStyleParams) {\n return;\n }\n setTextStyleWithoutAlignBaseline(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams) {\n return;\n }\n setTextStyle(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams) {\n return;\n }\n\n draw() {\n return;\n }\n\n clearMatrix(setTransform: boolean = true, dpr: number = this.dpr) {\n this.setTransformFromMatrix(initMatrix, setTransform, dpr);\n }\n\n setClearMatrix(a: number, b: number, c: number, d: number, e: number, f: number) {\n this._clearMatrix.setValue(a, b, c, d, e, f);\n }\n\n onlyTranslate(dpr: number = this.dpr): boolean {\n return this.matrix.a === dpr && this.matrix.b === 0 && this.matrix.c === 0 && this.matrix.d === dpr;\n }\n\n release(...params: any): void {\n this.stack.forEach(m => matrixAllocate.free(m));\n this.stack.length = 0;\n return;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/empty-context.ts"],"names":[],"mappings":"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","file":"empty-context.js","sourcesContent":["import type { IMatrix } from '@visactor/vutils';\nimport { Matrix } from '@visactor/vutils';\nimport { injectable } from '../common/inversify-lite';\nimport type {\n ICanvas,\n ICommonStyleParams,\n IContext2d,\n ISetCommonStyleParams,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n IConicalGradientData,\n ITextStyleParams\n} from '../interface';\nimport { contain, containStroke } from './util';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { getScaledStroke } from '../common/canvas-utils';\nimport { matrixAllocate } from '../allocator/matrix-allocate';\n/**\n * 部分源码参考konva\n * MIT License\n\n Original work Copyright (C) 2011 - 2013 by Eric Rowell (KineticJS)\n Modified work Copyright (C) 2014 - present by Anton Lavrenov (Konva)\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n */\n\n// https://github.com/konvajs/konva/blob/master/src/Context.ts\nconst initMatrix = new Matrix(1, 0, 0, 1, 0, 0);\nconst globalPoint = { x: 0, y: 0 };\n\n@injectable()\nexport class EmptyContext2d implements IContext2d {\n declare path: CustomPath2D;\n declare canvas: null;\n declare stack: Matrix[];\n protected declare matrix: Matrix;\n protected declare applyedMatrix?: Matrix; // 被应用的matrix\n // 属性代理\n declare fillStyle: string | CanvasGradient | CanvasPattern;\n /**\n * @deprecated font方法不建议使用,请使用setTextStyle\n */\n declare font: string;\n declare globalAlpha: number;\n declare lineCap: string;\n declare lineDashOffset: number;\n declare lineJoin: string;\n declare lineWidth: number;\n declare miterLimit: number;\n declare shadowBlur: number;\n declare shadowColor: string;\n declare shadowOffsetX: number;\n declare shadowOffsetY: number;\n declare strokeStyle: string | CanvasGradient | CanvasPattern;\n declare textAlign: string;\n declare textBaseline: string;\n declare dpr: number;\n declare _clearMatrix: IMatrix;\n\n get nativeContext(): any {\n return this.path;\n }\n\n constructor(canvas: any, dpr: number) {\n this.matrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.stack = [];\n this.dpr = dpr;\n this.applyedMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.path = new CustomPath2D();\n this._clearMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n }\n\n getCanvas(): ICanvas {\n throw new Error('不支持getCanvas');\n }\n\n getContext() {\n throw new Error('不支持getContext');\n }\n /**\n * 设置当前ctx 的transform信息\n */\n setTransformForCurrent(force: boolean = false) {\n // 只作简单判断\n if (!force && this.applyedMatrix.equalToMatrix(this.matrix)) {\n return;\n }\n\n this.applyedMatrix = this.cloneMatrix(this.matrix);\n return;\n }\n /**\n * 获取当前矩阵信息\n */\n get currentMatrix() {\n return this.matrix;\n }\n\n cloneMatrix(m: Matrix) {\n return matrixAllocate.allocateByObj(m);\n }\n\n /**\n * 清空画布\n */\n clear() {\n this.save();\n this.resetTransform();\n this.restore();\n }\n\n reset() {\n this.matrix.setValue(1, 0, 0, 1, 0, 0);\n this.applyedMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.stack.length = 0;\n }\n\n restore() {\n if (this.stack.length > 0) {\n matrixAllocate.free(this.matrix);\n this.matrix = this.stack.pop() as Matrix;\n this.setTransformForCurrent();\n }\n }\n highPerformanceRestore() {\n if (this.stack.length > 0) {\n matrixAllocate.free(this.matrix);\n this.matrix = this.stack.pop() as Matrix;\n }\n }\n\n /**\n *\n * @param angle 弧度数\n */\n rotate(rad: number, setTransform: boolean = true) {\n this.matrix.rotate(rad);\n setTransform && this.setTransformForCurrent();\n }\n\n save() {\n const matrix = this.cloneMatrix(this.matrix);\n this.stack.push(matrix);\n }\n highPerformanceSave() {\n const matrix = this.cloneMatrix(this.matrix);\n this.stack.push(matrix);\n }\n\n /**\n * 基于当前matrix再次scale\n * @param sx\n * @param sy\n * @param setTransform 是否设置transform到context中\n */\n scale(sx: number, sy: number, setTransform: boolean = true) {\n this.matrix.scale(sx, sy);\n setTransform && this.setTransformForCurrent();\n }\n setScale(sx: number, sy: number, setTransform: boolean = true): void {\n this.matrix.setScale(sx, sy);\n setTransform && this.setTransformForCurrent();\n }\n /**\n * 基于某个点进行缩放\n * @param sx\n * @param sy\n * @param px\n * @param py\n */\n scalePoint(sx: number, sy: number, px: number, py: number, setTransform: boolean = true) {\n this.translate(px, py, false);\n this.scale(sx, sy, false);\n this.translate(-px, -py, false);\n setTransform && this.setTransformForCurrent();\n }\n /**\n *\n * @param a\n * @param b\n * @param c\n * @param d\n * @param e\n * @param f\n * @param setTransform\n */\n setTransform(\n a: number,\n b: number,\n c: number,\n d: number,\n e: number,\n f: number,\n setTransform: boolean = true,\n dpr: number = this.dpr\n ) {\n this.matrix.setValue(dpr * a, dpr * b, dpr * c, dpr * d, dpr * e, dpr * f);\n setTransform && this.setTransformForCurrent();\n }\n\n setTransformFromMatrix(matrix: Matrix, setTransform: boolean = true, dpr: number = this.dpr) {\n this.matrix.setValue(\n matrix.a * dpr,\n matrix.b * dpr,\n matrix.c * dpr,\n matrix.d * dpr,\n matrix.e * dpr,\n matrix.f * dpr\n );\n setTransform && this.setTransformForCurrent();\n }\n\n resetTransform(setTransform: boolean = true, dpr: number = this.dpr) {\n this.setTransform(dpr, 0, 0, dpr, 0, 0);\n setTransform && this.setTransformForCurrent();\n }\n\n // transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void;\n transform(a: number, b: number, c: number, d: number, e: number, f: number, setTransform: boolean = true) {\n this.matrix.multiply(a, b, c, d, e, f);\n setTransform && this.setTransformForCurrent();\n }\n transformFromMatrix(matrix: Matrix, setTransform?: boolean): void {\n this.matrix.multiply(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n setTransform && this.setTransformForCurrent();\n }\n\n translate(x: number, y: number, setTransform: boolean = true) {\n this.matrix.translate(x, y);\n setTransform && this.setTransformForCurrent();\n }\n /**\n * 旋转角度,自动转换为弧度\n * @param deg 角度数\n */\n rotateDegrees(deg: number, setTransform: boolean = true) {\n const rad = (deg * Math.PI) / 180;\n this.rotate(rad, setTransform);\n }\n\n /**\n * 绕点旋转\n * @param rad 弧度\n * @param x 旋转中心点x\n * @param y 旋转中心点y\n */\n rotateAbout(rad: number, x: number, y: number, setTransform: boolean = true) {\n this.translate(x, y, false);\n this.rotate(rad, false);\n this.translate(-x, -y, false);\n setTransform && this.setTransformForCurrent();\n }\n\n /**\n * 绕点旋转\n * @param deg 旋转角度\n * @param x 旋转中心点x\n * @param y 旋转中心点y\n */\n rotateDegreesAbout(deg: number, x: number, y: number, setTransform: boolean = true) {\n this.translate(x, y, false);\n this.rotateDegrees(deg, false);\n this.translate(-x, -y, false);\n setTransform && this.setTransformForCurrent();\n }\n\n // /**\n // * 全局坐标 -> 当前矩阵的局部坐标\n // * @param x x\n // * @param y y\n // */\n // transformPoint(x: number, y: number): Point {\n // const inverseMatrix = this.matrix.getInverse();\n // // dpr\n // x = x * this.dpr;\n // y = y * this.dpr;\n // return new Point(\n // x * inverseMatrix.a + y * inverseMatrix.c + inverseMatrix.e,\n // x * inverseMatrix.b + y * inverseMatrix.d + inverseMatrix.f\n // );\n // }\n\n // /**\n // * 坐标转换\n // * @param x x\n // * @param y y\n // */\n // transformPoint2(x: number, y: number): Point {\n // const inverseMatrix = this.matrix;\n // return new Point(\n // x * inverseMatrix.a + y * inverseMatrix.c + inverseMatrix.e,\n // x * inverseMatrix.b + y * inverseMatrix.d + inverseMatrix.f\n // );\n // }\n\n // transformPoint3(x: number, y: number, matrix: Matrix): Point {\n // // dpr\n // x = x * this.dpr;\n // y = y * this.dpr;\n // return new Point(x * matrix.a + y * matrix.c + matrix.e, x * matrix.b + y * matrix.d + matrix.f);\n // }\n\n //////// 代理方法\n // isPointInStroke ,drawFocusIfNeeded 方法没有代理,如有需要再添加\n\n beginPath() {\n this.path.clear();\n }\n\n clip(fillRule?: CanvasFillRule): void;\n clip(path: Path2D, fillRule?: CanvasFillRule): void;\n clip(path?: Path2D | CanvasFillRule, fillRule?: CanvasFillRule) {\n return;\n }\n\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean) {\n this.path.arc(x, y, radius, startAngle, endAngle, anticlockwise);\n }\n\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n arcTo(x1: number, y1: number, x2: number, y2: number, radiusX: number) {\n this.path.arcTo(x1, y1, x2, y2, radiusX);\n }\n\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) {\n this.path.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n }\n\n closePath() {\n this.path.closePath();\n }\n\n ellipse(\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) {\n return;\n }\n lineTo(x: number, y: number) {\n this.path.lineTo(x, y);\n }\n\n moveTo(x: number, y: number) {\n this.path.moveTo(x, y);\n }\n\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number) {\n this.path.quadraticCurveTo(cpx, cpy, x, y);\n }\n\n rect(x: number, y: number, w: number, h: number) {\n this.path.rect(x, y, w, h);\n }\n\n createImageData(imageDataOrSw: number | ImageData, sh?: number): ImageData {\n return null;\n }\n\n createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient {\n throw new Error('不支持createLinearGradient');\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n throw new Error('不支持createPattern');\n }\n\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient {\n throw new Error('不支持createRadialGradient');\n }\n\n createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData {\n return null;\n }\n\n // createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradient | null {\n // // let edit = false;\n // // let pattern: CanvasPattern | null;\n // // // eslint-disable-next-line @typescript-eslint/no-this-alias\n // // const ctx = this;\n // // const obj: IConicalGradient = {\n // // stops: [],\n // // addColorStop(offset: number, color: string) {\n // // this.stops.push([offset, color]);\n // // edit = true;\n // // },\n // // GetPattern(minW: number, minH: number, deltaAngle?: number): CanvasPattern | null {\n // // if (edit) {\n // // if (!deltaAngle) deltaAngle = endAngle - startAngle;\n // // pattern = createConicalGradient(ctx, this.stops, x, y, deltaAngle, startAngle, endAngle, minW, minH);\n // // edit = false;\n // // }\n // // return pattern;\n // // }\n // // };\n // // return obj;\n // }\n\n // fill(fillRule?: CanvasFillRule): void;\n // fill(path?: Path2D, fillRule?: CanvasFillRule): void;\n fill(path?: Path2D, fillRule?: CanvasFillRule) {\n return;\n }\n\n fillRect(x: number, y: number, width: number, height: number) {\n this.path.rect(x, y, width, height);\n }\n\n clearRect(x: number, y: number, w: number, h: number) {\n return;\n }\n\n fillText(text: string, x: number, y: number) {\n return;\n }\n\n getImageData(sx: number, sy: number, sw: number, sh: number): ImageData {\n return null;\n }\n\n getLineDash(): number[] {\n return [];\n }\n\n isPointInPath(x: number, y: number) {\n this.matrix.transformPoint({ x, y }, globalPoint);\n return contain(this.path.commandList, globalPoint.x, globalPoint.y);\n }\n\n isPointInStroke(x: number, y: number) {\n if (!this.lineWidth) {\n return false;\n }\n this.matrix.transformPoint({ x, y }, globalPoint);\n const lineWidth = getScaledStroke(this, this.lineWidth, this.dpr);\n return containStroke(this.path.commandList, lineWidth, globalPoint.x, globalPoint.y);\n }\n\n measureText(text: string): { width: number } {\n throw new Error('不支持measureText');\n }\n\n putImageData(imagedata: ImageData, dx: number, dy: number) {\n throw new Error('不支持measureText');\n }\n\n setLineDash(segments: number[]) {\n return;\n }\n\n stroke(path?: Path2D) {\n return;\n }\n\n strokeRect(x: number, y: number, width: number, height: number) {\n this.path.rect(x, y, width, height);\n }\n\n strokeText(text: string, x: number, y: number) {\n return;\n }\n\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n dstX: number,\n dstY: number\n ): void;\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ): void;\n drawImage(\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap,\n srcX: number,\n srcY: number,\n srcW: number,\n srcH: number,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ): void;\n\n drawImage() {\n return;\n }\n\n setCommonStyle(\n params: ISetCommonStyleParams,\n attribute: ICommonStyleParams,\n offsetX: number,\n offsetY: number,\n defaultParams?: ICommonStyleParams | Partial<ICommonStyleParams>[]\n ) {\n return;\n }\n\n _setCommonStyle(params: ISetCommonStyleParams, offsetX: number, offsetY: number, defaultParams?: ICommonStyleParams) {\n return;\n }\n\n setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams | IStrokeStyleParams[]\n ) {\n return;\n }\n _setStrokeStyle(params: ISetStrokeStyleParams, offsetX: number, offsetY: number, defaultParams?: IStrokeStyleParams) {\n return;\n }\n setTextStyleWithoutAlignBaseline(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams) {\n return;\n }\n setTextStyle(params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams) {\n return;\n }\n\n draw() {\n return;\n }\n\n clearMatrix(setTransform: boolean = true, dpr: number = this.dpr) {\n this.setTransformFromMatrix(initMatrix, setTransform, dpr);\n }\n\n setClearMatrix(a: number, b: number, c: number, d: number, e: number, f: number) {\n this._clearMatrix.setValue(a, b, c, d, e, f);\n }\n\n onlyTranslate(dpr: number = this.dpr): boolean {\n return this.matrix.a === dpr && this.matrix.b === 0 && this.matrix.c === 0 && this.matrix.d === dpr;\n }\n\n release(...params: any): void {\n this.stack.forEach(m => matrixAllocate.free(m));\n this.stack.length = 0;\n return;\n }\n}\n"]}
@@ -5,4 +5,5 @@ export declare function interpolateGradientLinearColor(fc: ILinearGradient, tc:
5
5
  export declare function interpolateGradientRadialColor(fc: IRadialGradient, tc: IRadialGradient, ratio: number): false | IRadialGradient;
6
6
  export declare function interpolateGradientConicalColor(fc: IConicalGradient, tc: IConicalGradient, ratio: number): false | IConicalGradient;
7
7
  export declare function interpolatePureColorArray(from: [number, number, number, number], to: [number, number, number, number], ratio: number): [number, number, number, number];
8
+ export declare function interpolatePureColorArrayToStr(from: [number, number, number, number], to: [number, number, number, number], ratio: number): string;
8
9
  export declare function colorStringInterpolationToStr(fromColor: string, toColor: string, ratio: number): string;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.colorStringInterpolationToStr = exports.interpolatePureColorArray = exports.interpolateGradientConicalColor = exports.interpolateGradientRadialColor = exports.interpolateGradientLinearColor = exports._interpolateColor = exports.interpolateColor = void 0;
5
+ }), exports.colorStringInterpolationToStr = exports.interpolatePureColorArrayToStr = exports.interpolatePureColorArray = exports.interpolateGradientConicalColor = exports.interpolateGradientRadialColor = exports.interpolateGradientLinearColor = exports._interpolateColor = exports.interpolateColor = void 0;
6
6
 
7
7
  const store_1 = require("./store"), vutils_1 = require("@visactor/vutils");
8
8
 
@@ -97,9 +97,14 @@ function interpolatePureColorArray(from, to, ratio) {
97
97
  return [ from[0] + (to[0] - from[0]) * ratio, from[1] + (to[1] - from[1]) * ratio, from[2] + (to[2] - from[2]) * ratio, from[3] + (to[3] - from[3]) * ratio ];
98
98
  }
99
99
 
100
+ function interpolatePureColorArrayToStr(from, to, ratio) {
101
+ return `rgba(${from[0] + (to[0] - from[0]) * ratio},${from[1] + (to[1] - from[1]) * ratio},${from[2] + (to[2] - from[2]) * ratio},${from[3] + (to[3] - from[3]) * ratio})`;
102
+ }
103
+
100
104
  exports.interpolateColor = interpolateColor, exports._interpolateColor = _interpolateColor,
101
105
  exports.interpolateGradientLinearColor = interpolateGradientLinearColor, exports.interpolateGradientRadialColor = interpolateGradientRadialColor,
102
- exports.interpolateGradientConicalColor = interpolateGradientConicalColor, exports.interpolatePureColorArray = interpolatePureColorArray;
106
+ exports.interpolateGradientConicalColor = interpolateGradientConicalColor, exports.interpolatePureColorArray = interpolatePureColorArray,
107
+ exports.interpolatePureColorArrayToStr = interpolatePureColorArrayToStr;
103
108
 
104
109
  const _fromColorRGB = [ 0, 0, 0, 0 ], _toColorRGB = [ 0, 0, 0, 0 ];
105
110
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/color-string/interpolate.ts"],"names":[],"mappings":"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","file":"interpolate.js","sourcesContent":["import { ColorStore, ColorType } from './store';\nimport type { IGradientColor, ILinearGradient, IRadialGradient, IConicalGradient } from '../interface';\nimport { isArray, isNumber } from '@visactor/vutils';\n\nfunction colorArrayToString(\n color: string | IGradientColor | [number, number, number, number],\n alphaChannel: boolean = false\n) {\n if (Array.isArray(color) && isNumber(color[0])) {\n return alphaChannel\n ? `rgb(${Math.round(color[0])},${Math.round(color[1])},${Math.round(color[2])},${color[3].toFixed(2)})`\n : `rgb(${Math.round(color[0])},${Math.round(color[1])},${Math.round(color[2])})`;\n }\n return color;\n}\n\nexport function interpolateColor(\n from: [number, number, number, number] | [string, string, string, string] | string | IGradientColor,\n to: [number, number, number, number] | [string, string, string, string] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor | string[] {\n if ((Array.isArray(from) && !isNumber(from[0])) || (Array.isArray(to) && !isNumber(to[0]))) {\n // 待性能优化\n const out: string[] = new Array(4).fill(0).map((_, index) => {\n return _interpolateColor(\n isArray(from) ? (from[index] as string) : from,\n isArray(to) ? (to[index] as string) : to,\n ratio,\n alphaChannel\n ) as string;\n });\n return out;\n // cb && cb(from!, to!);\n }\n return _interpolateColor(from as any, to as any, ratio, alphaChannel, cb);\n}\n\nexport function _interpolateColor(\n from: [number, number, number, number] | string | IGradientColor,\n to: [number, number, number, number] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor | string[] {\n if (!(from && to)) {\n return (from && colorArrayToString(from)) || (to && colorArrayToString(to)) || (false as any);\n }\n let fromArray: [number, number, number, number];\n let toArray: [number, number, number, number];\n let fromGradient: boolean = false;\n let toGradient: boolean = false;\n if (Array.isArray(from)) {\n fromArray = from as [number, number, number, number];\n } else if (typeof from === 'string') {\n fromArray = ColorStore.Get(from, ColorType.Color255);\n } else {\n fromGradient = true;\n }\n if (Array.isArray(to)) {\n toArray = to as [number, number, number, number];\n } else if (typeof to === 'string') {\n toArray = ColorStore.Get(to, ColorType.Color255);\n } else {\n toGradient = true;\n }\n if (fromGradient !== toGradient) {\n // 纯色到渐变色,那就将纯色转成渐变色\n const gradient: IGradientColor = (fromGradient ? from : to) as IGradientColor;\n const pure = (fromGradient ? to : from) as string | [number, number, number, number];\n const gradientFromPure: IGradientColor = {\n ...gradient,\n stops: gradient.stops.map(v => ({ ...v, color: colorArrayToString(pure) as string }))\n };\n return fromGradient\n ? interpolateColor(gradient, gradientFromPure, ratio, alphaChannel, cb)\n : interpolateColor(gradientFromPure, gradient, ratio, alphaChannel, cb);\n }\n\n if (fromGradient) {\n if ((from as IGradientColor).gradient === (to as IGradientColor).gradient) {\n const fc: IGradientColor = from as IGradientColor;\n const tc: IGradientColor = to as IGradientColor;\n // 渐变色插值,只支持相同数量stopColor的插值,并且认为当前的stopColor数量是和from、to相同\n const fromStops = fc.stops;\n const toStops = tc.stops;\n if (fromStops.length !== toStops.length) {\n return false;\n }\n if (fc.gradient === 'linear') {\n return interpolateGradientLinearColor(fc, tc as ILinearGradient, ratio);\n } else if (fc.gradient === 'radial') {\n return interpolateGradientRadialColor(fc, tc as IRadialGradient, ratio);\n } else if (fc.gradient === 'conical') {\n return interpolateGradientConicalColor(fc, tc as IConicalGradient, ratio);\n }\n }\n return false;\n }\n cb && cb(fromArray!, toArray!);\n const result = interpolatePureColorArray(fromArray!, toArray!, ratio);\n return colorArrayToString(result, alphaChannel) as any;\n}\n\nexport function interpolateGradientLinearColor(\n fc: ILinearGradient,\n tc: ILinearGradient,\n ratio: number\n): false | ILinearGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: ILinearGradient = {\n gradient: 'linear',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientRadialColor(\n fc: IRadialGradient,\n tc: IRadialGradient,\n ratio: number\n): false | IRadialGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IRadialGradient = {\n gradient: 'radial',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n r0: fc.r0 + (tc.r0 - fc.r0) * ratio,\n r1: fc.r1 + (tc.r1 - fc.r1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientConicalColor(\n fc: IConicalGradient,\n tc: IConicalGradient,\n ratio: number\n): false | IConicalGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IConicalGradient = {\n gradient: 'conical',\n startAngle: fc.startAngle + (tc.startAngle - fc.startAngle) * ratio,\n endAngle: fc.endAngle + (tc.endAngle - fc.endAngle) * ratio,\n x: fc.x + (tc.x - fc.x) * ratio,\n y: fc.y + (tc.y - fc.y) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolatePureColorArray(\n from: [number, number, number, number],\n to: [number, number, number, number],\n ratio: number\n): [number, number, number, number] {\n return [\n from[0] + (to[0] - from[0]) * ratio,\n from[1] + (to[1] - from[1]) * ratio,\n from[2] + (to[2] - from[2]) * ratio,\n from[3] + (to[3] - from[3]) * ratio\n ];\n}\n\nconst _fromColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nconst _toColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nexport function colorStringInterpolationToStr(fromColor: string, toColor: string, ratio: number): string {\n ColorStore.Get(fromColor, ColorType.Color255, _fromColorRGB);\n ColorStore.Get(toColor, ColorType.Color255, _toColorRGB);\n return `rgba(${Math.round(_fromColorRGB[0] + (_toColorRGB[0] - _fromColorRGB[0]) * ratio)},${Math.round(\n _fromColorRGB[1] + (_toColorRGB[1] - _fromColorRGB[1]) * ratio\n )},${Math.round(_fromColorRGB[2] + (_toColorRGB[2] - _fromColorRGB[2]) * ratio)},${\n _fromColorRGB[3] + (_toColorRGB[3] - _fromColorRGB[3]) * ratio\n })`;\n}\n"]}
1
+ {"version":3,"sources":["../src/color-string/interpolate.ts"],"names":[],"mappings":"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","file":"interpolate.js","sourcesContent":["import { ColorStore, ColorType } from './store';\nimport type { IGradientColor, ILinearGradient, IRadialGradient, IConicalGradient } from '../interface';\nimport { isArray, isNumber } from '@visactor/vutils';\n\nfunction colorArrayToString(\n color: string | IGradientColor | [number, number, number, number],\n alphaChannel: boolean = false\n) {\n if (Array.isArray(color) && isNumber(color[0])) {\n return alphaChannel\n ? `rgb(${Math.round(color[0])},${Math.round(color[1])},${Math.round(color[2])},${color[3].toFixed(2)})`\n : `rgb(${Math.round(color[0])},${Math.round(color[1])},${Math.round(color[2])})`;\n }\n return color;\n}\n\nexport function interpolateColor(\n from: [number, number, number, number] | [string, string, string, string] | string | IGradientColor,\n to: [number, number, number, number] | [string, string, string, string] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor | string[] {\n if ((Array.isArray(from) && !isNumber(from[0])) || (Array.isArray(to) && !isNumber(to[0]))) {\n // 待性能优化\n const out: string[] = new Array(4).fill(0).map((_, index) => {\n return _interpolateColor(\n isArray(from) ? (from[index] as string) : from,\n isArray(to) ? (to[index] as string) : to,\n ratio,\n alphaChannel\n ) as string;\n });\n return out;\n // cb && cb(from!, to!);\n }\n return _interpolateColor(from as any, to as any, ratio, alphaChannel, cb);\n}\n\nexport function _interpolateColor(\n from: [number, number, number, number] | string | IGradientColor,\n to: [number, number, number, number] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor | string[] {\n if (!(from && to)) {\n return (from && colorArrayToString(from)) || (to && colorArrayToString(to)) || (false as any);\n }\n let fromArray: [number, number, number, number];\n let toArray: [number, number, number, number];\n let fromGradient: boolean = false;\n let toGradient: boolean = false;\n if (Array.isArray(from)) {\n fromArray = from as [number, number, number, number];\n } else if (typeof from === 'string') {\n fromArray = ColorStore.Get(from, ColorType.Color255);\n } else {\n fromGradient = true;\n }\n if (Array.isArray(to)) {\n toArray = to as [number, number, number, number];\n } else if (typeof to === 'string') {\n toArray = ColorStore.Get(to, ColorType.Color255);\n } else {\n toGradient = true;\n }\n if (fromGradient !== toGradient) {\n // 纯色到渐变色,那就将纯色转成渐变色\n const gradient: IGradientColor = (fromGradient ? from : to) as IGradientColor;\n const pure = (fromGradient ? to : from) as string | [number, number, number, number];\n const gradientFromPure: IGradientColor = {\n ...gradient,\n stops: gradient.stops.map(v => ({ ...v, color: colorArrayToString(pure) as string }))\n };\n return fromGradient\n ? interpolateColor(gradient, gradientFromPure, ratio, alphaChannel, cb)\n : interpolateColor(gradientFromPure, gradient, ratio, alphaChannel, cb);\n }\n\n if (fromGradient) {\n if ((from as IGradientColor).gradient === (to as IGradientColor).gradient) {\n const fc: IGradientColor = from as IGradientColor;\n const tc: IGradientColor = to as IGradientColor;\n // 渐变色插值,只支持相同数量stopColor的插值,并且认为当前的stopColor数量是和from、to相同\n const fromStops = fc.stops;\n const toStops = tc.stops;\n if (fromStops.length !== toStops.length) {\n return false;\n }\n if (fc.gradient === 'linear') {\n return interpolateGradientLinearColor(fc, tc as ILinearGradient, ratio);\n } else if (fc.gradient === 'radial') {\n return interpolateGradientRadialColor(fc, tc as IRadialGradient, ratio);\n } else if (fc.gradient === 'conical') {\n return interpolateGradientConicalColor(fc, tc as IConicalGradient, ratio);\n }\n }\n return false;\n }\n cb && cb(fromArray!, toArray!);\n const result = interpolatePureColorArray(fromArray!, toArray!, ratio);\n return colorArrayToString(result, alphaChannel) as any;\n}\n\nexport function interpolateGradientLinearColor(\n fc: ILinearGradient,\n tc: ILinearGradient,\n ratio: number\n): false | ILinearGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: ILinearGradient = {\n gradient: 'linear',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientRadialColor(\n fc: IRadialGradient,\n tc: IRadialGradient,\n ratio: number\n): false | IRadialGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IRadialGradient = {\n gradient: 'radial',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n r0: fc.r0 + (tc.r0 - fc.r0) * ratio,\n r1: fc.r1 + (tc.r1 - fc.r1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientConicalColor(\n fc: IConicalGradient,\n tc: IConicalGradient,\n ratio: number\n): false | IConicalGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IConicalGradient = {\n gradient: 'conical',\n startAngle: fc.startAngle + (tc.startAngle - fc.startAngle) * ratio,\n endAngle: fc.endAngle + (tc.endAngle - fc.endAngle) * ratio,\n x: fc.x + (tc.x - fc.x) * ratio,\n y: fc.y + (tc.y - fc.y) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolatePureColorArray(\n from: [number, number, number, number],\n to: [number, number, number, number],\n ratio: number\n): [number, number, number, number] {\n return [\n from[0] + (to[0] - from[0]) * ratio,\n from[1] + (to[1] - from[1]) * ratio,\n from[2] + (to[2] - from[2]) * ratio,\n from[3] + (to[3] - from[3]) * ratio\n ];\n}\nexport function interpolatePureColorArrayToStr(\n from: [number, number, number, number],\n to: [number, number, number, number],\n ratio: number\n): string {\n // eslint-disable-next-line max-len\n return `rgba(${from[0] + (to[0] - from[0]) * ratio},${from[1] + (to[1] - from[1]) * ratio},${\n from[2] + (to[2] - from[2]) * ratio\n },${from[3] + (to[3] - from[3]) * ratio})`;\n}\n\nconst _fromColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nconst _toColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nexport function colorStringInterpolationToStr(fromColor: string, toColor: string, ratio: number): string {\n ColorStore.Get(fromColor, ColorType.Color255, _fromColorRGB);\n ColorStore.Get(toColor, ColorType.Color255, _toColorRGB);\n return `rgba(${Math.round(_fromColorRGB[0] + (_toColorRGB[0] - _fromColorRGB[0]) * ratio)},${Math.round(\n _fromColorRGB[1] + (_toColorRGB[1] - _fromColorRGB[1]) * ratio\n )},${Math.round(_fromColorRGB[2] + (_toColorRGB[2] - _fromColorRGB[2]) * ratio)},${\n _fromColorRGB[3] + (_toColorRGB[3] - _fromColorRGB[3]) * ratio\n })`;\n}\n"]}
@@ -50,4 +50,5 @@ class ColorStore {
50
50
  }
51
51
  }
52
52
 
53
- exports.ColorStore = ColorStore, ColorStore.store255 = {}, ColorStore.store1 = {};
53
+ exports.ColorStore = ColorStore, ColorStore.store255 = {}, ColorStore.store1 = {};
54
+ //# sourceMappingURL=store.js.map
@@ -45,5 +45,4 @@ function(Direction) {
45
45
  }(CurveTypeEnum = exports.CurveTypeEnum || (exports.CurveTypeEnum = {})), function(BaseRenderContributionTime) {
46
46
  BaseRenderContributionTime[BaseRenderContributionTime.beforeFillStroke = 0] = "beforeFillStroke",
47
47
  BaseRenderContributionTime[BaseRenderContributionTime.afterFillStroke = 1] = "afterFillStroke";
48
- }(BaseRenderContributionTime = exports.BaseRenderContributionTime || (exports.BaseRenderContributionTime = {}));
49
- //# sourceMappingURL=enums.js.map
48
+ }(BaseRenderContributionTime = exports.BaseRenderContributionTime || (exports.BaseRenderContributionTime = {}));
@@ -0,0 +1,8 @@
1
+ export declare class PerformanceRAF {
2
+ nextAnimationFrameCbs: FrameRequestCallback[];
3
+ private _rafHandle;
4
+ addAnimationFrameCb(callback: FrameRequestCallback): number;
5
+ removeAnimationFrameCb(index: number): boolean;
6
+ protected runAnimationFrame: (time: number) => void;
7
+ protected tryRunAnimationFrameNextFrame: () => void;
8
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.PerformanceRAF = void 0;
6
+
7
+ const modules_1 = require("../modules");
8
+
9
+ class PerformanceRAF {
10
+ constructor() {
11
+ this.nextAnimationFrameCbs = [], this._rafHandle = null, this.runAnimationFrame = time => {
12
+ this._rafHandle = null;
13
+ const cbs = this.nextAnimationFrameCbs;
14
+ this.nextAnimationFrameCbs = [];
15
+ for (let i = 0; i < cbs.length; i++) cbs[i] && cbs[i](time);
16
+ }, this.tryRunAnimationFrameNextFrame = () => {
17
+ null === this._rafHandle && 0 !== this.nextAnimationFrameCbs.length && (this._rafHandle = modules_1.vglobal.getRequestAnimationFrame()(this.runAnimationFrame));
18
+ };
19
+ }
20
+ addAnimationFrameCb(callback) {
21
+ return this.nextAnimationFrameCbs.push(callback), this.tryRunAnimationFrameNextFrame(),
22
+ this.nextAnimationFrameCbs.length - 1;
23
+ }
24
+ removeAnimationFrameCb(index) {
25
+ return index >= 0 && index < this.nextAnimationFrameCbs.length && (this.nextAnimationFrameCbs[index] = null,
26
+ !0);
27
+ }
28
+ }
29
+
30
+ exports.PerformanceRAF = PerformanceRAF;
31
+ //# sourceMappingURL=performance-raf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/performance-raf.ts"],"names":[],"mappings":";;;AAAA,wCAAqC;AAKrC,MAAa,cAAc;IAA3B;QACE,0BAAqB,GAA2B,EAAE,CAAC;QAC3C,eAAU,GAAkB,IAAI,CAAC;QAkB/B,sBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;oBACV,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACd;aACF;QACH,CAAC,CAAC;QAEQ,kCAA6B,GAAG,GAAG,EAAE;YAC7C,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvE,OAAO;aACR;YACD,IAAI,CAAC,UAAU,GAAG,iBAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/E,CAAC,CAAC;IACJ,CAAC;IAjCC,mBAAmB,CAAC,QAA8B;QAChD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,sBAAsB,CAAC,KAAa;QAClC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;YAE3D,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACzC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAmBF;AArCD,wCAqCC","file":"performance-raf.js","sourcesContent":["import { vglobal } from '../modules';\n\n/**\n * 性能优化,将requestAnimationFrame的回调函数存储起来,在下一帧执行\n */\nexport class PerformanceRAF {\n nextAnimationFrameCbs: FrameRequestCallback[] = [];\n private _rafHandle: number | null = null;\n\n addAnimationFrameCb(callback: FrameRequestCallback) {\n this.nextAnimationFrameCbs.push(callback);\n // 下一帧执行nextAnimationFrameCbs\n this.tryRunAnimationFrameNextFrame();\n return this.nextAnimationFrameCbs.length - 1;\n }\n\n removeAnimationFrameCb(index: number): boolean {\n if (index >= 0 && index < this.nextAnimationFrameCbs.length) {\n // Set to null instead of empty function to avoid linter error\n this.nextAnimationFrameCbs[index] = null;\n return true;\n }\n return false;\n }\n\n protected runAnimationFrame = (time: number) => {\n this._rafHandle = null;\n const cbs = this.nextAnimationFrameCbs;\n this.nextAnimationFrameCbs = [];\n for (let i = 0; i < cbs.length; i++) {\n if (cbs[i]) {\n cbs[i](time);\n }\n }\n };\n\n protected tryRunAnimationFrameNextFrame = () => {\n if (this._rafHandle !== null || this.nextAnimationFrameCbs.length === 0) {\n return;\n }\n this._rafHandle = vglobal.getRequestAnimationFrame()(this.runAnimationFrame);\n };\n}\n"]}
@@ -61,4 +61,5 @@ function drawAreaBlock(path, topList, bottomList, params) {
61
61
  path.closePath();
62
62
  }
63
63
 
64
+ //# sourceMappingURL=render-area.js.map
64
65
  exports.drawAreaSegments = drawAreaSegments;
@@ -1,2 +1 @@
1
- class StageStore {}
2
- //# sourceMappingURL=store.js.map
1
+ class StageStore {}
@@ -34,4 +34,4 @@ function textAttributesToStyle(attrs) {
34
34
 
35
35
  exports.textDrawOffsetY = textDrawOffsetY, exports.textDrawOffsetX = textDrawOffsetX,
36
36
  exports.textLayoutOffsetY = textLayoutOffsetY, exports.textAttributesToStyle = textAttributesToStyle;
37
- //# sourceMappingURL=text.js.map
37
+ //# sourceMappingURL=text.js.map
@@ -167,4 +167,4 @@ const calculateLineHeight = (lineHeight, fontSize) => {
167
167
  };
168
168
 
169
169
  exports.calculateLineHeight = calculateLineHeight;
170
- //# sourceMappingURL=utils.js.map
170
+ //# sourceMappingURL=utils.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.ApplicationContribution = void 0, exports.ApplicationContribution = Symbol("ApplicationContribution");
6
- //# sourceMappingURL=application.js.map
6
+ //# sourceMappingURL=application.js.map
@@ -71,4 +71,4 @@ const registerOrthoCamera = () => {
71
71
  };
72
72
 
73
73
  exports.registerOrthoCamera = registerOrthoCamera;
74
- //# sourceMappingURL=camera.js.map
74
+ //# sourceMappingURL=camera.js.map
@@ -7,4 +7,4 @@ exports.TransformUtil = Symbol.for("TransformUtil"), exports.GraphicUtil = Symbo
7
7
  exports.LayerService = Symbol.for("LayerService"), exports.StaticLayerHandlerContribution = Symbol.for("StaticLayerHandlerContribution"),
8
8
  exports.DynamicLayerHandlerContribution = Symbol.for("DynamicLayerHandlerContribution"),
9
9
  exports.VirtualLayerHandlerContribution = Symbol.for("VirtualLayerHandlerContribution");
10
- //# sourceMappingURL=constants.js.map
10
+ //# sourceMappingURL=constants.js.map
@@ -12,4 +12,4 @@ exports.default = new inversify_lite_1.ContainerModule((bind => {
12
12
  bind(constants_1.TransformUtil).to(graphic_utils_1.DefaultTransformUtil).inSingletonScope(),
13
13
  bind(constants_1.LayerService).to(layer_service_1.DefaultLayerService).inSingletonScope();
14
14
  }));
15
- //# sourceMappingURL=core-modules.js.map
15
+ //# sourceMappingURL=core-modules.js.map
@@ -1,3 +1 @@
1
-
2
-
3
1
  //# sourceMappingURL=global-module.js.map
@@ -7,6 +7,7 @@ export declare class DefaultGlobal implements IGlobal {
7
7
  private _isSafari?;
8
8
  private _isChrome?;
9
9
  private _isImageAnonymous?;
10
+ private _performanceRAFList;
10
11
  get env(): EnvType;
11
12
  private envContribution;
12
13
  get isImageAnonymous(): boolean;
@@ -43,6 +44,8 @@ export declare class DefaultGlobal implements IGlobal {
43
44
  removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
44
45
  dispatchEvent(event: any): boolean;
45
46
  getRequestAnimationFrame(): (callback: FrameRequestCallback) => number;
47
+ getSpecifiedRequestAnimationFrame(id: number): (callback: FrameRequestCallback) => number;
48
+ getSpecifiedCancelAnimationFrame(id: number): (handle: number) => boolean;
46
49
  getCancelAnimationFrame(): (h: number) => void;
47
50
  getElementById(str: string): HTMLElement | null;
48
51
  getRootElement(): HTMLElement | null;
@@ -40,7 +40,7 @@ Object.defineProperty(exports, "__esModule", {
40
40
  value: !0
41
41
  }), exports.DefaultGlobal = void 0;
42
42
 
43
- const inversify_lite_1 = require("../common/inversify-lite"), contribution_provider_1 = require("../common/contribution-provider"), tapable_1 = require("../tapable"), constants_1 = require("../constants"), generator_1 = require("../common/generator"), defaultEnv = "browser";
43
+ const inversify_lite_1 = require("../common/inversify-lite"), contribution_provider_1 = require("../common/contribution-provider"), tapable_1 = require("../tapable"), constants_1 = require("../constants"), generator_1 = require("../common/generator"), performance_raf_1 = require("../common/performance-raf"), defaultEnv = "browser";
44
44
 
45
45
  let DefaultGlobal = class {
46
46
  get env() {
@@ -86,8 +86,8 @@ let DefaultGlobal = class {
86
86
  this._env || this.setEnv("browser"), this.envContribution.applyStyles = support;
87
87
  }
88
88
  constructor(contributions) {
89
- this.contributions = contributions, this._isImageAnonymous = !0, this.id = generator_1.Generator.GenAutoIncrementId(),
90
- this.hooks = {
89
+ this.contributions = contributions, this._isImageAnonymous = !0, this._performanceRAFList = [],
90
+ this.id = generator_1.Generator.GenAutoIncrementId(), this.hooks = {
91
91
  onSetEnv: new tapable_1.SyncHook([ "lastEnv", "env", "global" ])
92
92
  }, this.measureTextMethod = "native", this.optimizeVisible = !1;
93
93
  }
@@ -144,6 +144,16 @@ let DefaultGlobal = class {
144
144
  getRequestAnimationFrame() {
145
145
  return this._env || this.setEnv("browser"), this.envContribution.getRequestAnimationFrame();
146
146
  }
147
+ getSpecifiedRequestAnimationFrame(id) {
148
+ this._env || this.setEnv("browser"), this._performanceRAFList[id] || (this._performanceRAFList[id] = new performance_raf_1.PerformanceRAF);
149
+ const performanceRAF = this._performanceRAFList[id];
150
+ return callback => performanceRAF.addAnimationFrameCb(callback);
151
+ }
152
+ getSpecifiedCancelAnimationFrame(id) {
153
+ if (this._env || this.setEnv("browser"), !this._performanceRAFList[id]) return () => !1;
154
+ const performanceRAF = this._performanceRAFList[id];
155
+ return handle => performanceRAF.removeAnimationFrameCb(handle);
156
+ }
147
157
  getCancelAnimationFrame() {
148
158
  return this._env || this.setEnv("browser"), this.envContribution.getCancelAnimationFrame();
149
159
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/global.ts"],"names":[],"mappings":"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","file":"global.js","sourcesContent":["import { inject, injectable, named } from '../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport type {\n CreateDOMParamsType,\n EnvType,\n IContributionProvider,\n ICreateCanvasParams,\n IEnvContribution,\n IEnvParamsMap,\n IGlobal,\n ISyncHook\n} from '../interface';\nimport { SyncHook } from '../tapable';\nimport { EnvContribution } from '../constants';\nimport type { IAABBBoundsLike } from '@visactor/vutils';\nimport { container } from '../container';\nimport { Generator } from '../common/generator';\n\nconst defaultEnv: EnvType = 'browser';\n@injectable()\nexport class DefaultGlobal implements IGlobal {\n readonly id: number;\n private _env: EnvType;\n private _isSafari?: boolean;\n private _isChrome?: boolean;\n private _isImageAnonymous?: boolean = true;\n get env(): EnvType {\n return this._env;\n }\n private envContribution: IEnvContribution;\n\n get isImageAnonymous(): boolean {\n return this._isImageAnonymous;\n }\n\n set isImageAnonymous(isImageAnonymous: boolean) {\n this._isImageAnonymous = isImageAnonymous;\n }\n\n get devicePixelRatio(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getDevicePixelRatio();\n }\n\n get supportEvent(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportEvent;\n }\n\n set supportEvent(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportEvent = support;\n }\n\n get supportsTouchEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsTouchEvents;\n }\n\n set supportsTouchEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsTouchEvents = support;\n }\n\n get supportsPointerEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsPointerEvents;\n }\n\n set supportsPointerEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsPointerEvents = support;\n }\n\n get supportsMouseEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsMouseEvents;\n }\n\n set supportsMouseEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsMouseEvents = support;\n }\n\n get applyStyles(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.applyStyles;\n }\n\n set applyStyles(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.applyStyles = support;\n }\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n envParams?: any;\n declare measureTextMethod: 'native' | 'simple' | 'quick';\n declare hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n constructor(\n // todo: 不需要创建,动态获取就行?\n @inject(ContributionProvider)\n @named(EnvContribution)\n protected readonly contributions: IContributionProvider<IEnvContribution>\n ) {\n this.id = Generator.GenAutoIncrementId();\n this.hooks = {\n onSetEnv: new SyncHook<[EnvType | undefined, EnvType, IGlobal]>(['lastEnv', 'env', 'global'])\n };\n this.measureTextMethod = 'native';\n this.optimizeVisible = false;\n }\n\n protected bindContribution(params?: any): void | Promise<any> {\n const promiseArr: any[] = [];\n this.contributions.getContributions().forEach(contribution => {\n const data = contribution.configure(this, params);\n if ((data as any) && (data as any).then) {\n promiseArr.push(data);\n }\n });\n if (promiseArr.length) {\n return Promise.all(promiseArr);\n }\n }\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getDynamicCanvasCount();\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getStaticCanvasCount();\n }\n\n /**\n * 设置当前环境\n * @param env\n * @param params 环境参数\n * 默认重复设置不生效,但如果params.force为true那么每次设置env都会重复执行初始化逻辑\n * @returns\n */\n setEnv(env: EnvType, params?: IEnvParamsMap[EnvType]): void | Promise<any> {\n // 如果环境设置过了,但是没有设置force为true,就直接跳过\n if (!(params && params.force === true) && this._env === env) {\n return;\n }\n this.deactiveCurrentEnv();\n return this.activeEnv(env, params);\n }\n\n protected deactiveCurrentEnv() {\n this.envContribution && this.envContribution.release();\n }\n\n protected activeEnv(env: EnvType, params?: IEnvParamsMap[EnvType]): void | Promise<any> {\n const lastEnv = this._env;\n this._env = env;\n const data = this.bindContribution(params);\n if (data && data.then) {\n return data.then(() => {\n this.envParams = params;\n this.hooks.onSetEnv.call(lastEnv, env, this);\n });\n }\n this.envParams = params;\n this.hooks.onSetEnv.call(lastEnv, env, this);\n }\n\n setActiveEnvContribution(contribution: IEnvContribution) {\n this.envContribution = contribution;\n }\n\n createCanvas(params: ICreateCanvasParams) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.createCanvas(params);\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.createOffscreenCanvas(params);\n }\n\n releaseCanvas(canvas: HTMLCanvasElement | string | any) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.releaseCanvas(canvas);\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.addEventListener(type, listener, options);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.removeEventListener(type, listener, options);\n }\n dispatchEvent(event: any): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.dispatchEvent(event);\n }\n\n getRequestAnimationFrame() {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getRequestAnimationFrame();\n }\n\n getCancelAnimationFrame() {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getCancelAnimationFrame();\n }\n\n getElementById(str: string): HTMLElement | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getElementById) {\n return null;\n }\n return this.envContribution.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getRootElement) {\n return null;\n }\n return this.envContribution.getRootElement();\n }\n\n getDocument(): Document | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getDocument) {\n return null;\n }\n return this.envContribution.getDocument();\n }\n\n mapToCanvasPoint(event: any, domElement?: any) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.mapToCanvasPoint) {\n return null;\n }\n return this.envContribution.mapToCanvasPoint(event, domElement);\n }\n\n loadImage(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadImage(url);\n }\n\n loadSvg(str: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadSvg(str);\n }\n\n loadJson(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadJson(url);\n }\n\n loadArrayBuffer(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadArrayBuffer(url);\n }\n\n loadBlob(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadBlob(url);\n }\n\n async loadFont(name: string, source: string | BinaryData, descriptors?: FontFaceDescriptors) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadFont(name, source, descriptors);\n }\n\n isChrome(): boolean {\n if (this._isChrome != null) {\n return this._isChrome;\n }\n if (!this._env) {\n this.setEnv('browser');\n }\n this._isChrome = this._env === 'browser' && navigator.userAgent.indexOf('Chrome') > -1;\n return this._isChrome;\n }\n\n isSafari(): boolean {\n if (this._isSafari != null) {\n return this._isSafari;\n }\n if (!this._env) {\n this.setEnv('browser');\n }\n this._isSafari =\n this._env === 'browser' && /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);\n return this._isSafari;\n }\n\n getNativeAABBBounds(dom: string | HTMLElement | any): IAABBBoundsLike {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getNativeAABBBounds(dom);\n }\n\n removeDom(dom: HTMLElement): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.removeDom(dom);\n }\n\n createDom(params: CreateDOMParamsType): HTMLElement | null {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.createDom(params);\n }\n\n updateDom(dom: HTMLElement, params: CreateDOMParamsType): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.updateDom(dom, params);\n }\n\n getElementTop(dom: any, baseWindow: boolean = false): number {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementTop(dom, baseWindow);\n }\n getElementLeft(dom: any, baseWindow: boolean = false): number {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementLeft(dom, baseWindow);\n }\n getElementTopLeft(dom: any, baseWindow: boolean = false): { top: number; left: number } {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementTopLeft(dom, baseWindow);\n }\n\n isMacOS(): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.isMacOS();\n }\n\n copyToClipBoard(text: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.copyToClipBoard(text);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/core/global.ts"],"names":[],"mappings":"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","file":"global.js","sourcesContent":["import { inject, injectable, named } from '../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../common/contribution-provider';\nimport type {\n CreateDOMParamsType,\n EnvType,\n IContributionProvider,\n ICreateCanvasParams,\n IEnvContribution,\n IEnvParamsMap,\n IGlobal,\n ISyncHook\n} from '../interface';\nimport { SyncHook } from '../tapable';\nimport { EnvContribution } from '../constants';\nimport type { IAABBBoundsLike } from '@visactor/vutils';\nimport { container } from '../container';\nimport { Generator } from '../common/generator';\nimport { PerformanceRAF } from '../common/performance-raf';\n\nconst defaultEnv: EnvType = 'browser';\n@injectable()\nexport class DefaultGlobal implements IGlobal {\n readonly id: number;\n private _env: EnvType;\n private _isSafari?: boolean;\n private _isChrome?: boolean;\n private _isImageAnonymous?: boolean = true;\n private _performanceRAFList: PerformanceRAF[] = [];\n\n get env(): EnvType {\n return this._env;\n }\n private envContribution: IEnvContribution;\n\n get isImageAnonymous(): boolean {\n return this._isImageAnonymous;\n }\n\n set isImageAnonymous(isImageAnonymous: boolean) {\n this._isImageAnonymous = isImageAnonymous;\n }\n\n get devicePixelRatio(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getDevicePixelRatio();\n }\n\n get supportEvent(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportEvent;\n }\n\n set supportEvent(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportEvent = support;\n }\n\n get supportsTouchEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsTouchEvents;\n }\n\n set supportsTouchEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsTouchEvents = support;\n }\n\n get supportsPointerEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsPointerEvents;\n }\n\n set supportsPointerEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsPointerEvents = support;\n }\n\n get supportsMouseEvents(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.supportsMouseEvents;\n }\n\n set supportsMouseEvents(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.supportsMouseEvents = support;\n }\n\n get applyStyles(): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.applyStyles;\n }\n\n set applyStyles(support: boolean) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n this.envContribution.applyStyles = support;\n }\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n envParams?: any;\n declare measureTextMethod: 'native' | 'simple' | 'quick';\n declare hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n constructor(\n // todo: 不需要创建,动态获取就行?\n @inject(ContributionProvider)\n @named(EnvContribution)\n protected readonly contributions: IContributionProvider<IEnvContribution>\n ) {\n this.id = Generator.GenAutoIncrementId();\n this.hooks = {\n onSetEnv: new SyncHook<[EnvType | undefined, EnvType, IGlobal]>(['lastEnv', 'env', 'global'])\n };\n this.measureTextMethod = 'native';\n this.optimizeVisible = false;\n }\n\n protected bindContribution(params?: any): void | Promise<any> {\n const promiseArr: any[] = [];\n this.contributions.getContributions().forEach(contribution => {\n const data = contribution.configure(this, params);\n if ((data as any) && (data as any).then) {\n promiseArr.push(data);\n }\n });\n if (promiseArr.length) {\n return Promise.all(promiseArr);\n }\n }\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getDynamicCanvasCount();\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getStaticCanvasCount();\n }\n\n /**\n * 设置当前环境\n * @param env\n * @param params 环境参数\n * 默认重复设置不生效,但如果params.force为true那么每次设置env都会重复执行初始化逻辑\n * @returns\n */\n setEnv(env: EnvType, params?: IEnvParamsMap[EnvType]): void | Promise<any> {\n // 如果环境设置过了,但是没有设置force为true,就直接跳过\n if (!(params && params.force === true) && this._env === env) {\n return;\n }\n this.deactiveCurrentEnv();\n return this.activeEnv(env, params);\n }\n\n protected deactiveCurrentEnv() {\n this.envContribution && this.envContribution.release();\n }\n\n protected activeEnv(env: EnvType, params?: IEnvParamsMap[EnvType]): void | Promise<any> {\n const lastEnv = this._env;\n this._env = env;\n const data = this.bindContribution(params);\n if (data && data.then) {\n return data.then(() => {\n this.envParams = params;\n this.hooks.onSetEnv.call(lastEnv, env, this);\n });\n }\n this.envParams = params;\n this.hooks.onSetEnv.call(lastEnv, env, this);\n }\n\n setActiveEnvContribution(contribution: IEnvContribution) {\n this.envContribution = contribution;\n }\n\n createCanvas(params: ICreateCanvasParams) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.createCanvas(params);\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.createOffscreenCanvas(params);\n }\n\n releaseCanvas(canvas: HTMLCanvasElement | string | any) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.releaseCanvas(canvas);\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.addEventListener(type, listener, options);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.removeEventListener(type, listener, options);\n }\n dispatchEvent(event: any): boolean {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.dispatchEvent(event);\n }\n\n getRequestAnimationFrame() {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getRequestAnimationFrame();\n }\n\n /**\n * 获取特定的requestAnimationFrame,同一个id底层共用一个原生的requestAnimationFrame\n * @param id 唯一标识,用于区分不同的requestAnimationFrame,请使用数字,不要太大,因为底层使用的是数组索引\n */\n getSpecifiedRequestAnimationFrame(id: number) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n\n // Check if PerformanceRAF instance exists for this id\n if (!this._performanceRAFList[id]) {\n this._performanceRAFList[id] = new PerformanceRAF();\n }\n\n const performanceRAF = this._performanceRAFList[id];\n\n // Return a function that adds the callback to the specific PerformanceRAF instance\n return (callback: FrameRequestCallback): number => {\n return performanceRAF.addAnimationFrameCb(callback);\n };\n }\n\n /**\n * 获取特定的cancelAnimationFrame,用于取消特定id的requestAnimationFrame\n * @param id\n */\n getSpecifiedCancelAnimationFrame(id: number) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n\n // Return no-op if no PerformanceRAF instance exists for this id\n if (!this._performanceRAFList[id]) {\n return () => false;\n }\n\n const performanceRAF = this._performanceRAFList[id];\n\n // Return a function that removes the callback from the specific PerformanceRAF instance\n return (handle: number): boolean => {\n return performanceRAF.removeAnimationFrameCb(handle);\n };\n }\n\n getCancelAnimationFrame() {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n return this.envContribution.getCancelAnimationFrame();\n }\n\n getElementById(str: string): HTMLElement | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getElementById) {\n return null;\n }\n return this.envContribution.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getRootElement) {\n return null;\n }\n return this.envContribution.getRootElement();\n }\n\n getDocument(): Document | null {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.getDocument) {\n return null;\n }\n return this.envContribution.getDocument();\n }\n\n mapToCanvasPoint(event: any, domElement?: any) {\n if (!this._env) {\n this.setEnv(defaultEnv);\n }\n if (!this.envContribution.mapToCanvasPoint) {\n return null;\n }\n return this.envContribution.mapToCanvasPoint(event, domElement);\n }\n\n loadImage(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadImage(url);\n }\n\n loadSvg(str: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadSvg(str);\n }\n\n loadJson(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadJson(url);\n }\n\n loadArrayBuffer(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadArrayBuffer(url);\n }\n\n loadBlob(url: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadBlob(url);\n }\n\n async loadFont(name: string, source: string | BinaryData, descriptors?: FontFaceDescriptors) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.loadFont(name, source, descriptors);\n }\n\n isChrome(): boolean {\n if (this._isChrome != null) {\n return this._isChrome;\n }\n if (!this._env) {\n this.setEnv('browser');\n }\n this._isChrome = this._env === 'browser' && navigator.userAgent.indexOf('Chrome') > -1;\n return this._isChrome;\n }\n\n isSafari(): boolean {\n if (this._isSafari != null) {\n return this._isSafari;\n }\n if (!this._env) {\n this.setEnv('browser');\n }\n this._isSafari =\n this._env === 'browser' && /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);\n return this._isSafari;\n }\n\n getNativeAABBBounds(dom: string | HTMLElement | any): IAABBBoundsLike {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getNativeAABBBounds(dom);\n }\n\n removeDom(dom: HTMLElement): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.removeDom(dom);\n }\n\n createDom(params: CreateDOMParamsType): HTMLElement | null {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.createDom(params);\n }\n\n updateDom(dom: HTMLElement, params: CreateDOMParamsType): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.updateDom(dom, params);\n }\n\n getElementTop(dom: any, baseWindow: boolean = false): number {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementTop(dom, baseWindow);\n }\n getElementLeft(dom: any, baseWindow: boolean = false): number {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementLeft(dom, baseWindow);\n }\n getElementTopLeft(dom: any, baseWindow: boolean = false): { top: number; left: number } {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.getElementTopLeft(dom, baseWindow);\n }\n\n isMacOS(): boolean {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.isMacOS();\n }\n\n copyToClipBoard(text: string) {\n if (!this._env) {\n this.setEnv('browser');\n }\n return this.envContribution.copyToClipBoard(text);\n }\n}\n"]}
@@ -65,7 +65,10 @@ export declare class Stage extends Group implements IStage {
65
65
  protected timeline: ITimeline;
66
66
  params: Partial<IStageParams>;
67
67
  protected tickedBeforeRender: boolean;
68
+ readonly rafId: number;
68
69
  constructor(params?: Partial<IStageParams>);
70
+ initAnimate(params: Partial<IStageParams>): void;
71
+ startAnimate(): void;
69
72
  pauseRender(sr?: number): void;
70
73
  resumeRender(): void;
71
74
  protected tryInitEventSystem(): void;
@@ -141,7 +144,6 @@ export declare class Stage extends Group implements IStage {
141
144
  setOrigin(x: number, y: number): void;
142
145
  export(type: IExportType): HTMLCanvasElement | ImageData;
143
146
  pick(x: number, y: number): PickResult | false;
144
- startAnimate(t: number): void;
145
147
  setToFrame(t: number): void;
146
148
  release(): void;
147
149
  setStage(stage?: IStage): void;