@visactor/vrender-kits 0.9.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/cjs/canvas/contributions/canvas-module.d.ts +2 -0
- package/cjs/canvas/contributions/canvas-module.js +20 -0
- package/cjs/canvas/contributions/canvas-module.js.map +1 -0
- package/cjs/canvas/contributions/node/canvas.d.ts +44 -0
- package/cjs/canvas/contributions/node/canvas.js +100 -0
- package/cjs/canvas/contributions/node/canvas.js.map +1 -0
- package/cjs/canvas/contributions/node/context.d.ts +7 -0
- package/cjs/canvas/contributions/node/context.js +30 -0
- package/cjs/canvas/contributions/node/context.js.map +1 -0
- package/cjs/canvas/contributions/node/index.d.ts +2 -0
- package/cjs/canvas/contributions/node/index.js +21 -0
- package/cjs/canvas/contributions/node/index.js.map +1 -0
- package/cjs/canvas/contributions/node/modules.d.ts +3 -0
- package/cjs/canvas/contributions/node/modules.js +13 -0
- package/cjs/canvas/contributions/node/modules.js.map +1 -0
- package/cjs/canvas/index.d.ts +1 -0
- package/cjs/canvas/index.js +6 -0
- package/cjs/canvas/index.js.map +1 -0
- package/cjs/env/contributions/module.d.ts +3 -0
- package/cjs/env/contributions/module.js +12 -0
- package/cjs/env/contributions/module.js.map +1 -0
- package/cjs/env/contributions/node-contribution.d.ts +47 -0
- package/cjs/env/contributions/node-contribution.js +118 -0
- package/cjs/env/contributions/node-contribution.js.map +1 -0
- package/cjs/index-node.d.ts +5 -0
- package/cjs/index-node.js +25 -0
- package/cjs/index-node.js.map +1 -0
- package/cjs/index.d.ts +4 -0
- package/cjs/index.js +16 -0
- package/cjs/index.js.map +1 -0
- package/cjs/node-bind.d.ts +2 -0
- package/cjs/node-bind.js +20 -0
- package/cjs/node-bind.js.map +1 -0
- package/cjs/render/contributions/render-module.d.ts +1 -0
- package/cjs/render/contributions/render-module.js +1 -0
- package/cjs/render/contributions/render-module.js.map +1 -0
- package/cjs/render/contributions/rough/config.d.ts +2 -0
- package/cjs/render/contributions/rough/config.js +28 -0
- package/cjs/render/contributions/rough/config.js.map +1 -0
- package/cjs/render/contributions/rough/module.d.ts +3 -0
- package/cjs/render/contributions/rough/module.js +18 -0
- package/cjs/render/contributions/rough/module.js.map +1 -0
- package/cjs/render/contributions/rough/rough-arc.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-arc.js +75 -0
- package/cjs/render/contributions/rough/rough-arc.js.map +1 -0
- package/cjs/render/contributions/rough/rough-area.d.ts +8 -0
- package/cjs/render/contributions/rough/rough-area.js +67 -0
- package/cjs/render/contributions/rough/rough-area.js.map +1 -0
- package/cjs/render/contributions/rough/rough-circle.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-circle.js +55 -0
- package/cjs/render/contributions/rough/rough-circle.js.map +1 -0
- package/cjs/render/contributions/rough/rough-line.d.ts +8 -0
- package/cjs/render/contributions/rough/rough-line.js +68 -0
- package/cjs/render/contributions/rough/rough-line.js.map +1 -0
- package/cjs/render/contributions/rough/rough-path.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-path.js +73 -0
- package/cjs/render/contributions/rough/rough-path.js.map +1 -0
- package/cjs/render/contributions/rough/rough-rect.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-rect.js +77 -0
- package/cjs/render/contributions/rough/rough-rect.js.map +1 -0
- package/cjs/render/contributions/rough/rough-symbol.d.ts +10 -0
- package/cjs/render/contributions/rough/rough-symbol.js +79 -0
- package/cjs/render/contributions/rough/rough-symbol.js.map +1 -0
- package/cjs/window/contributions/modules.d.ts +3 -0
- package/cjs/window/contributions/modules.js +13 -0
- package/cjs/window/contributions/modules.js.map +1 -0
- package/cjs/window/contributions/node-contribution.d.ts +38 -0
- package/cjs/window/contributions/node-contribution.js +109 -0
- package/cjs/window/contributions/node-contribution.js.map +1 -0
- package/dist/vrender-kits.js.js +1 -0
- package/dist/vrender-kits.js.min.js +1 -0
- package/es/canvas/contributions/canvas-module.d.ts +2 -0
- package/es/canvas/contributions/canvas-module.js +6 -0
- package/es/canvas/contributions/canvas-module.js.map +1 -0
- package/es/canvas/contributions/node/canvas.d.ts +44 -0
- package/es/canvas/contributions/node/canvas.js +99 -0
- package/es/canvas/contributions/node/canvas.js.map +1 -0
- package/es/canvas/contributions/node/context.d.ts +7 -0
- package/es/canvas/contributions/node/context.js +31 -0
- package/es/canvas/contributions/node/context.js.map +1 -0
- package/es/canvas/contributions/node/index.d.ts +2 -0
- package/es/canvas/contributions/node/index.js +4 -0
- package/es/canvas/contributions/node/index.js.map +1 -0
- package/es/canvas/contributions/node/modules.d.ts +3 -0
- package/es/canvas/contributions/node/modules.js +13 -0
- package/es/canvas/contributions/node/modules.js.map +1 -0
- package/es/canvas/index.d.ts +1 -0
- package/es/canvas/index.js +2 -0
- package/es/canvas/index.js.map +1 -0
- package/es/env/contributions/module.d.ts +3 -0
- package/es/env/contributions/module.js +10 -0
- package/es/env/contributions/module.js.map +1 -0
- package/es/env/contributions/node-contribution.d.ts +47 -0
- package/es/env/contributions/node-contribution.js +94 -0
- package/es/env/contributions/node-contribution.js.map +1 -0
- package/es/index-node.d.ts +5 -0
- package/es/index-node.js +11 -0
- package/es/index-node.js.map +1 -0
- package/es/index.d.ts +4 -0
- package/es/index.js +10 -0
- package/es/index.js.map +1 -0
- package/es/node-bind.d.ts +2 -0
- package/es/node-bind.js +10 -0
- package/es/node-bind.js.map +1 -0
- package/es/render/contributions/render-module.d.ts +1 -0
- package/es/render/contributions/render-module.js +1 -0
- package/es/render/contributions/render-module.js.map +1 -0
- package/es/render/contributions/rough/config.d.ts +2 -0
- package/es/render/contributions/rough/config.js +24 -0
- package/es/render/contributions/rough/config.js.map +1 -0
- package/es/render/contributions/rough/module.d.ts +3 -0
- package/es/render/contributions/rough/module.js +28 -0
- package/es/render/contributions/rough/module.js.map +1 -0
- package/es/render/contributions/rough/rough-arc.d.ts +10 -0
- package/es/render/contributions/rough/rough-arc.js +71 -0
- package/es/render/contributions/rough/rough-arc.js.map +1 -0
- package/es/render/contributions/rough/rough-area.d.ts +8 -0
- package/es/render/contributions/rough/rough-area.js +64 -0
- package/es/render/contributions/rough/rough-area.js.map +1 -0
- package/es/render/contributions/rough/rough-circle.d.ts +10 -0
- package/es/render/contributions/rough/rough-circle.js +48 -0
- package/es/render/contributions/rough/rough-circle.js.map +1 -0
- package/es/render/contributions/rough/rough-line.d.ts +8 -0
- package/es/render/contributions/rough/rough-line.js +65 -0
- package/es/render/contributions/rough/rough-line.js.map +1 -0
- package/es/render/contributions/rough/rough-path.d.ts +10 -0
- package/es/render/contributions/rough/rough-path.js +69 -0
- package/es/render/contributions/rough/rough-path.js.map +1 -0
- package/es/render/contributions/rough/rough-rect.d.ts +10 -0
- package/es/render/contributions/rough/rough-rect.js +73 -0
- package/es/render/contributions/rough/rough-rect.js.map +1 -0
- package/es/render/contributions/rough/rough-symbol.d.ts +10 -0
- package/es/render/contributions/rough/rough-symbol.js +75 -0
- package/es/render/contributions/rough/rough-symbol.js.map +1 -0
- package/es/window/contributions/modules.d.ts +3 -0
- package/es/window/contributions/modules.js +10 -0
- package/es/window/contributions/modules.js.map +1 -0
- package/es/window/contributions/node-contribution.d.ts +38 -0
- package/es/window/contributions/node-contribution.js +107 -0
- package/es/window/contributions/node-contribution.js.map +1 -0
- package/package.json +50 -0
package/README.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
default: mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: !0
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const modules_1 = __importDefault(require("./node/modules"));
|
|
14
|
+
|
|
15
|
+
function load(container) {
|
|
16
|
+
container.load(modules_1.default);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
exports.default = load;
|
|
20
|
+
//# sourceMappingURL=canvas-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/canvas-module.ts"],"names":[],"mappings":";;;;;AACA,6DAAwC;AAExC,SAAwB,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;AAC7B,CAAC;AAFD,uBAEC","file":"canvas-module.js","sourcesContent":["import type { Container } from 'inversify';\nimport nodeModule from './node/modules';\n\nexport default function load(container: Container) {\n container.load(nodeModule);\n}\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Canvas } from 'canvas';
|
|
2
|
+
import type { EnvType, CanvasConfigType, ICanvas, IContext2d } from '@visactor/vrender';
|
|
3
|
+
export declare class NodeCanvas implements ICanvas {
|
|
4
|
+
static env: EnvType;
|
|
5
|
+
private _width;
|
|
6
|
+
private _height;
|
|
7
|
+
private _id;
|
|
8
|
+
private _nativeCanvas;
|
|
9
|
+
private _context;
|
|
10
|
+
private _visiable;
|
|
11
|
+
private controled;
|
|
12
|
+
get id(): number | string;
|
|
13
|
+
get x(): number;
|
|
14
|
+
get y(): number;
|
|
15
|
+
get nativeCanvas(): Canvas;
|
|
16
|
+
get width(): number;
|
|
17
|
+
set width(width: number);
|
|
18
|
+
get displayWidth(): number;
|
|
19
|
+
get displayHeight(): number;
|
|
20
|
+
get height(): number;
|
|
21
|
+
set height(height: number);
|
|
22
|
+
getContext(str?: string): IContext2d;
|
|
23
|
+
get visiable(): boolean;
|
|
24
|
+
set visiable(visiable: boolean);
|
|
25
|
+
get dpr(): number;
|
|
26
|
+
set dpr(dpr: number);
|
|
27
|
+
constructor(params: CanvasConfigType);
|
|
28
|
+
applyPosition(): void;
|
|
29
|
+
getNativeCanvas(): Canvas;
|
|
30
|
+
resetStyle(params: Partial<CanvasConfigType>): void;
|
|
31
|
+
hide(): void;
|
|
32
|
+
show(): void;
|
|
33
|
+
resize(width: number, height: number): void;
|
|
34
|
+
toDataURL(): string;
|
|
35
|
+
toDataURL(mimeType: 'image/png'): string;
|
|
36
|
+
toDataURL(mimeType: 'image/jpeg', quality: number): string;
|
|
37
|
+
readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData>;
|
|
38
|
+
convertToBlob(options?: {
|
|
39
|
+
type?: string | undefined;
|
|
40
|
+
quality?: number | undefined;
|
|
41
|
+
} | undefined): Promise<Blob>;
|
|
42
|
+
transferToImageBitmap(): ImageBitmap;
|
|
43
|
+
release(...params: any): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
4
|
+
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
5
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
}, __metadata = this && this.__metadata || function(k, v) {
|
|
8
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
Object.defineProperty(exports, "__esModule", {
|
|
12
|
+
value: !0
|
|
13
|
+
}), exports.NodeCanvas = void 0;
|
|
14
|
+
|
|
15
|
+
const inversify_1 = require("inversify"), context_1 = require("./context"), DefaultConfig = {
|
|
16
|
+
WIDTH: 500,
|
|
17
|
+
HEIGHT: 500,
|
|
18
|
+
DPR: 1
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
let NodeCanvas = class {
|
|
22
|
+
get id() {
|
|
23
|
+
return this._id;
|
|
24
|
+
}
|
|
25
|
+
get x() {
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
get y() {
|
|
29
|
+
return 0;
|
|
30
|
+
}
|
|
31
|
+
get nativeCanvas() {
|
|
32
|
+
return this._nativeCanvas;
|
|
33
|
+
}
|
|
34
|
+
get width() {
|
|
35
|
+
return this._width;
|
|
36
|
+
}
|
|
37
|
+
set width(width) {
|
|
38
|
+
this._width = width;
|
|
39
|
+
}
|
|
40
|
+
get displayWidth() {
|
|
41
|
+
return this._width;
|
|
42
|
+
}
|
|
43
|
+
get displayHeight() {
|
|
44
|
+
return this._height;
|
|
45
|
+
}
|
|
46
|
+
get height() {
|
|
47
|
+
return this._height;
|
|
48
|
+
}
|
|
49
|
+
set height(height) {
|
|
50
|
+
this._height = height;
|
|
51
|
+
}
|
|
52
|
+
getContext(str) {
|
|
53
|
+
return this._context;
|
|
54
|
+
}
|
|
55
|
+
get visiable() {
|
|
56
|
+
return this._visiable;
|
|
57
|
+
}
|
|
58
|
+
set visiable(visiable) {
|
|
59
|
+
this._visiable = visiable, visiable ? this.show() : this.hide();
|
|
60
|
+
}
|
|
61
|
+
get dpr() {
|
|
62
|
+
return 1;
|
|
63
|
+
}
|
|
64
|
+
set dpr(dpr) {}
|
|
65
|
+
constructor(params) {
|
|
66
|
+
const {nativeCanvas: nativeCanvas, width: width = DefaultConfig.WIDTH, height: height = DefaultConfig.HEIGHT, canvasControled: canvasControled = !0} = params;
|
|
67
|
+
this._visiable = !1 !== params.visiable, this.controled = canvasControled, this._width = width,
|
|
68
|
+
this._height = height, this._nativeCanvas = nativeCanvas, this._context = new context_1.NodeContext2d(this, params.dpr),
|
|
69
|
+
this._id = nativeCanvas.id;
|
|
70
|
+
}
|
|
71
|
+
applyPosition() {}
|
|
72
|
+
getNativeCanvas() {
|
|
73
|
+
return this._nativeCanvas;
|
|
74
|
+
}
|
|
75
|
+
resetStyle(params) {}
|
|
76
|
+
hide() {}
|
|
77
|
+
show() {}
|
|
78
|
+
resize(width, height) {
|
|
79
|
+
this._nativeCanvas && (this._nativeCanvas.width = width, this._nativeCanvas.height = height);
|
|
80
|
+
}
|
|
81
|
+
toDataURL(mimeType, quality) {
|
|
82
|
+
return "";
|
|
83
|
+
}
|
|
84
|
+
readPixels(x, y, w, h) {
|
|
85
|
+
return this._context.getImageData(x, y, w, h);
|
|
86
|
+
}
|
|
87
|
+
convertToBlob(options) {
|
|
88
|
+
throw new Error("暂未实现");
|
|
89
|
+
}
|
|
90
|
+
transferToImageBitmap() {
|
|
91
|
+
throw new Error("暂未实现");
|
|
92
|
+
}
|
|
93
|
+
release(...params) {
|
|
94
|
+
throw new Error("暂不支持release");
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
NodeCanvas.env = "node", NodeCanvas = __decorate([ (0, inversify_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], NodeCanvas),
|
|
99
|
+
exports.NodeCanvas = NodeCanvas;
|
|
100
|
+
//# sourceMappingURL=canvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/node/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { Canvas } from 'canvas';\nimport type { EnvType, CanvasConfigType, ICanvas, IContext2d } from '@visactor/vrender';\nimport { NodeContext2d } from './context';\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class NodeCanvas implements ICanvas {\n static env: EnvType = 'node';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _width: number; // 显示的宽度\n private _height: number; // 显示的高度\n private _id: number | string;\n\n private _nativeCanvas: Canvas;\n private _context: IContext2d;\n private _visiable: boolean;\n private controled: boolean;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return 0;\n }\n get y(): number {\n return 0;\n }\n get nativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._width;\n }\n set width(width: number) {\n this._width = width;\n }\n get displayWidth(): number {\n return this._width;\n }\n get displayHeight(): number {\n return this._height;\n }\n\n get height(): number {\n return this._height;\n }\n set height(height: number) {\n this._height = height;\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return 1;\n }\n set dpr(dpr: number) {\n return;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const { nativeCanvas, width = DefaultConfig.WIDTH, height = DefaultConfig.HEIGHT, canvasControled = true } = params;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n\n // 离屏canvas\n this._width = width;\n this._height = height;\n this._nativeCanvas = nativeCanvas as unknown as Canvas;\n this._context = new NodeContext2d(this, params.dpr);\n this._id = nativeCanvas.id;\n }\n\n applyPosition() {\n return;\n }\n\n getNativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n if (this._nativeCanvas) {\n this._nativeCanvas.width = width;\n this._nativeCanvas.height = height;\n }\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n throw new Error('暂不支持release');\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EnvType, ICanvas, IContext2d } from '@visactor/vrender';
|
|
2
|
+
import { BrowserContext2d } from '@visactor/vrender';
|
|
3
|
+
export declare class NodeContext2d extends BrowserContext2d implements IContext2d {
|
|
4
|
+
static env: EnvType;
|
|
5
|
+
constructor(canvas: ICanvas, dpr: number);
|
|
6
|
+
release(...params: any): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
4
|
+
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
5
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
}, __metadata = this && this.__metadata || function(k, v) {
|
|
8
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
Object.defineProperty(exports, "__esModule", {
|
|
12
|
+
value: !0
|
|
13
|
+
}), exports.NodeContext2d = void 0;
|
|
14
|
+
|
|
15
|
+
const vutils_1 = require("@visactor/vutils"), inversify_1 = require("inversify"), vrender_1 = require("@visactor/vrender"), initMatrix = new vutils_1.Matrix(1, 0, 0, 1, 0, 0);
|
|
16
|
+
|
|
17
|
+
let NodeContext2d = class extends vrender_1.BrowserContext2d {
|
|
18
|
+
constructor(canvas, dpr) {
|
|
19
|
+
super(canvas, dpr);
|
|
20
|
+
const context = canvas.nativeCanvas.getContext("2d");
|
|
21
|
+
if (!context) throw new Error("发生错误,获取2d上下文失败");
|
|
22
|
+
this.nativeContext = context, this.canvas = canvas, this.matrix = new vutils_1.Matrix(1, 0, 0, 1, 0, 0),
|
|
23
|
+
this.stack = [], this.dpr = 1;
|
|
24
|
+
}
|
|
25
|
+
release(...params) {}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
NodeContext2d.env = "node", NodeContext2d = __decorate([ (0, inversify_1.injectable)(), __metadata("design:paramtypes", [ Object, Number ]) ], NodeContext2d),
|
|
29
|
+
exports.NodeContext2d = NodeContext2d;
|
|
30
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/node/context.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,6CAA0C;AAC1C,yCAAuC;AAEvC,+CAAqD;AAIrD,MAAM,UAAU,GAAG,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAGzC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,0BAAgB;IAGjD,YAAY,MAAe,EAAE,GAAW;QACtC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAjBM,iBAAG,GAAY,MAAM,CAAC;AADlB,aAAa;IADzB,IAAA,sBAAU,GAAE;;GACA,aAAa,CAmBzB;AAnBY,sCAAa","file":"context.js","sourcesContent":["// 参考konva\nimport { Matrix } from '@visactor/vutils';\nimport { injectable } from 'inversify';\nimport type { EnvType, ICanvas, IContext2d } from '@visactor/vrender';\nimport { BrowserContext2d } from '@visactor/vrender';\nimport { CanvasRenderingContext2D, Image, CanvasPattern } from 'canvas';\n\n// https://github.com/konvajs/konva/blob/master/src/Context.ts\nconst initMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n\n@injectable()\nexport class NodeContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'node';\n\n constructor(canvas: ICanvas, dpr: number) {\n super(canvas, dpr);\n const context = canvas.nativeCanvas.getContext('2d');\n if (!context) {\n throw new Error('发生错误,获取2d上下文失败');\n }\n this.nativeContext = context;\n this.canvas = canvas;\n this.matrix = new Matrix(1, 0, 0, 1, 0, 0);\n this.stack = [];\n this.dpr = 1;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
+
void 0 === k2 && (k2 = k);
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
+
enumerable: !0,
|
|
8
|
+
get: function() {
|
|
9
|
+
return m[k];
|
|
10
|
+
}
|
|
11
|
+
}), Object.defineProperty(o, k2, desc);
|
|
12
|
+
} : function(o, m, k, k2) {
|
|
13
|
+
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
+
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
+
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Object.defineProperty(exports, "__esModule", {
|
|
19
|
+
value: !0
|
|
20
|
+
}), __exportStar(require("./canvas"), exports), __exportStar(require("./context"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/node/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAyB;AACzB,4CAA0B","file":"index.js","sourcesContent":["// 依然导出canvas和context,便于指定环境直接使用\nexport * from './canvas';\nexport * from './context';\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
const inversify_1 = require("inversify"), vrender_1 = require("@visactor/vrender"), canvas_1 = require("./canvas"), context_1 = require("./context");
|
|
8
|
+
|
|
9
|
+
exports.default = new inversify_1.ContainerModule((bind => {
|
|
10
|
+
bind(vrender_1.CanvasFactory).toDynamicValue((() => params => new canvas_1.NodeCanvas(params))).whenTargetNamed(context_1.NodeContext2d.env),
|
|
11
|
+
bind(vrender_1.Context2dFactory).toDynamicValue((() => params => new context_1.NodeContext2d(params, params.dpr))).whenTargetNamed(context_1.NodeContext2d.env);
|
|
12
|
+
}));
|
|
13
|
+
//# sourceMappingURL=modules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/contributions/node/modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAE5C,+CAAoE;AACpE,qCAAsC;AACtC,uCAA0C;AAE1C,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,uBAAa,CAAC;SAChB,cAAc,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,MAAwB,EAAE,EAAE,CAAC,IAAI,mBAAU,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC;SACD,eAAe,CAAC,uBAAa,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,CAAC,0BAAgB,CAAC;SACnB,cAAc,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI,uBAAa,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC,CAAC;SACD,eAAe,CAAC,uBAAa,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport type { CanvasConfigType, ICanvas } from '@visactor/vrender';\nimport { CanvasFactory, Context2dFactory } from '@visactor/vrender';\nimport { NodeCanvas } from './canvas';\nimport { NodeContext2d } from './context';\n\nexport default new ContainerModule(bind => {\n bind(CanvasFactory)\n .toDynamicValue(() => {\n return (params: CanvasConfigType) => new NodeCanvas(params);\n })\n .whenTargetNamed(NodeContext2d.env);\n\n bind(Context2dFactory)\n .toDynamicValue(() => {\n return (params: ICanvas) => new NodeContext2d(params, params.dpr);\n })\n .whenTargetNamed(NodeContext2d.env);\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/canvas/index.ts"],"names":[],"mappings":"","file":"index.js","sourcesContent":["import {} from '@visactor/vrender';\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
const inversify_1 = require("inversify"), vrender_1 = require("@visactor/vrender"), node_contribution_1 = require("./node-contribution");
|
|
8
|
+
|
|
9
|
+
exports.default = new inversify_1.ContainerModule((bind => {
|
|
10
|
+
bind(node_contribution_1.NodeEnvContribution).toSelf().inSingletonScope(), bind(vrender_1.EnvContribution).toService(node_contribution_1.NodeEnvContribution);
|
|
11
|
+
}));
|
|
12
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/module.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,+CAA8E;AAC9E,2DAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,uCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,yBAAe,CAAC,CAAC,SAAS,CAAC,uCAAmB,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC","file":"module.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { bindContributionProvider, EnvContribution } from '@visactor/vrender';\nimport { NodeEnvContribution } from './node-contribution';\n\nexport default new ContainerModule(bind => {\n bind(NodeEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(NodeEnvContribution);\n});\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { createCanvas, createImageData, loadImage, Canvas } from 'canvas';
|
|
2
|
+
import * as NodePkg from 'canvas';
|
|
3
|
+
import type { EnvType, IEnvContribution, IGlobal, ICreateCanvasParams } from '@visactor/vrender';
|
|
4
|
+
import { BaseEnvContribution } from '@visactor/vrender';
|
|
5
|
+
type NodePkg = {
|
|
6
|
+
createCanvas: typeof createCanvas;
|
|
7
|
+
createImageData: typeof createImageData;
|
|
8
|
+
loadImage: typeof loadImage;
|
|
9
|
+
};
|
|
10
|
+
export declare class NodeEnvContribution extends BaseEnvContribution implements IEnvContribution {
|
|
11
|
+
type: EnvType;
|
|
12
|
+
pkg: NodePkg;
|
|
13
|
+
_lastTime: number;
|
|
14
|
+
supportEvent: boolean;
|
|
15
|
+
configure(service: IGlobal, pkg?: NodePkg): void;
|
|
16
|
+
loadJson(url: string): Promise<{
|
|
17
|
+
loadState: 'success' | 'fail';
|
|
18
|
+
data: Record<string, unknown> | null;
|
|
19
|
+
}>;
|
|
20
|
+
loadArrayBuffer(url: string): Promise<{
|
|
21
|
+
loadState: 'success' | 'fail';
|
|
22
|
+
data: ArrayBuffer | null;
|
|
23
|
+
}>;
|
|
24
|
+
loadImage(url: string): Promise<{
|
|
25
|
+
loadState: 'success' | 'fail';
|
|
26
|
+
data: HTMLImageElement | null;
|
|
27
|
+
}>;
|
|
28
|
+
loadSvg(svgStr: string): Promise<{
|
|
29
|
+
loadState: 'success' | 'fail';
|
|
30
|
+
data: HTMLImageElement | null;
|
|
31
|
+
}>;
|
|
32
|
+
createCanvas(params: any): Canvas;
|
|
33
|
+
releaseCanvas(canvas: Canvas | any): void;
|
|
34
|
+
getDevicePixelRatio(): number;
|
|
35
|
+
getRequestAnimationFrame(): (callback: FrameRequestCallback) => number;
|
|
36
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
37
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
38
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions | undefined): void;
|
|
39
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
|
|
40
|
+
getElementById(str: string): HTMLElement | null;
|
|
41
|
+
getRootElement(): HTMLElement | null;
|
|
42
|
+
dispatchEvent(event: any): boolean;
|
|
43
|
+
getCancelAnimationFrame(): (h: number) => void;
|
|
44
|
+
release(...params: any): void;
|
|
45
|
+
createOffscreenCanvas(params: ICreateCanvasParams): void;
|
|
46
|
+
}
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
+
void 0 === k2 && (k2 = k);
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
+
enumerable: !0,
|
|
8
|
+
get: function() {
|
|
9
|
+
return m[k];
|
|
10
|
+
}
|
|
11
|
+
}), Object.defineProperty(o, k2, desc);
|
|
12
|
+
} : function(o, m, k, k2) {
|
|
13
|
+
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
+
}), __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", {
|
|
16
|
+
enumerable: !0,
|
|
17
|
+
value: v
|
|
18
|
+
});
|
|
19
|
+
} : function(o, v) {
|
|
20
|
+
o.default = v;
|
|
21
|
+
}), __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
22
|
+
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
23
|
+
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
24
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
25
|
+
}, __importStar = this && this.__importStar || function(mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
|
|
29
|
+
return __setModuleDefault(result, mod), result;
|
|
30
|
+
}, __importDefault = this && this.__importDefault || function(mod) {
|
|
31
|
+
return mod && mod.__esModule ? mod : {
|
|
32
|
+
default: mod
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
Object.defineProperty(exports, "__esModule", {
|
|
37
|
+
value: !0
|
|
38
|
+
}), exports.NodeEnvContribution = void 0;
|
|
39
|
+
|
|
40
|
+
const inversify_1 = require("inversify"), NodePkg = __importStar(require("canvas")), resvg_js_1 = require("@resvg/resvg-js"), vrender_1 = require("@visactor/vrender"), node_fetch_1 = __importDefault(require("node-fetch"));
|
|
41
|
+
|
|
42
|
+
let last = 0;
|
|
43
|
+
|
|
44
|
+
function nodeRequestAnimationFrame(callback) {
|
|
45
|
+
const now = Date.now(), timeLeft = Math.max(0, 16 - (now - last)), id = setTimeout((function() {
|
|
46
|
+
callback(now + timeLeft);
|
|
47
|
+
}), timeLeft);
|
|
48
|
+
return last = now + timeLeft, id;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
let NodeEnvContribution = class extends vrender_1.BaseEnvContribution {
|
|
52
|
+
constructor() {
|
|
53
|
+
super(...arguments), this.type = "node", this._lastTime = 0, this.supportEvent = !1;
|
|
54
|
+
}
|
|
55
|
+
configure(service, pkg = NodePkg) {
|
|
56
|
+
service.env === this.type && (service.setActiveEnvContribution(this), this.pkg = pkg);
|
|
57
|
+
}
|
|
58
|
+
loadJson(url) {
|
|
59
|
+
const jsonPromise = (0, node_fetch_1.default)(url).then((data => data.json()));
|
|
60
|
+
return jsonPromise.then((json => ({
|
|
61
|
+
data: json,
|
|
62
|
+
state: "success"
|
|
63
|
+
}))).catch((() => ({
|
|
64
|
+
data: null,
|
|
65
|
+
state: "fail"
|
|
66
|
+
}))), jsonPromise;
|
|
67
|
+
}
|
|
68
|
+
loadArrayBuffer(url) {
|
|
69
|
+
return (0, node_fetch_1.default)(url).then((data => data.arrayBuffer())).then((arrayBuffer => ({
|
|
70
|
+
data: arrayBuffer,
|
|
71
|
+
loadState: "success"
|
|
72
|
+
}))).catch((() => ({
|
|
73
|
+
data: null,
|
|
74
|
+
loadState: "fail"
|
|
75
|
+
})));
|
|
76
|
+
}
|
|
77
|
+
loadImage(url) {
|
|
78
|
+
const {loadImage: loadImage} = this.pkg;
|
|
79
|
+
return loadImage ? loadImage(url).then((image => ({
|
|
80
|
+
loadState: image ? "success" : "fail",
|
|
81
|
+
data: image
|
|
82
|
+
}))).catch((() => ({
|
|
83
|
+
loadState: "fail",
|
|
84
|
+
data: null
|
|
85
|
+
}))) : Promise.reject(new Error("node-canvas loadImage could not be found!"));
|
|
86
|
+
}
|
|
87
|
+
loadSvg(svgStr) {
|
|
88
|
+
if (!resvg_js_1.Resvg) return Promise.reject(new Error("@resvg/resvg-js svgParser could not be found!"));
|
|
89
|
+
const pngData = new resvg_js_1.Resvg(svgStr).render().asPng();
|
|
90
|
+
return this.loadImage(pngData);
|
|
91
|
+
}
|
|
92
|
+
createCanvas(params) {
|
|
93
|
+
return this.pkg.createCanvas(params.width, params.height);
|
|
94
|
+
}
|
|
95
|
+
releaseCanvas(canvas) {}
|
|
96
|
+
getDevicePixelRatio() {
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
getRequestAnimationFrame() {
|
|
100
|
+
return nodeRequestAnimationFrame;
|
|
101
|
+
}
|
|
102
|
+
addEventListener(type, listener, options) {}
|
|
103
|
+
removeEventListener(type, listener, options) {}
|
|
104
|
+
getElementById(str) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
getRootElement() {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
dispatchEvent(event) {}
|
|
111
|
+
getCancelAnimationFrame() {}
|
|
112
|
+
release(...params) {}
|
|
113
|
+
createOffscreenCanvas(params) {}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
NodeEnvContribution = __decorate([ (0, inversify_1.injectable)() ], NodeEnvContribution),
|
|
117
|
+
exports.NodeEnvContribution = NodeEnvContribution;
|
|
118
|
+
//# sourceMappingURL=node-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/node-contribution.ts"],"names":[],"mappings":"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","file":"node-contribution.js","sourcesContent":["import { injectable } from 'inversify';\nimport type { createCanvas, createImageData, loadImage, Canvas } from 'canvas';\nimport * as NodePkg from 'canvas';\nimport { Resvg } from '@resvg/resvg-js';\nimport type { EnvType, IEnvContribution, IGlobal, ICreateCanvasParams } from '@visactor/vrender';\nimport { BaseEnvContribution } from '@visactor/vrender';\nimport fetch from 'node-fetch';\n\ntype NodePkg = {\n createCanvas: typeof createCanvas;\n createImageData: typeof createImageData;\n loadImage: typeof loadImage;\n};\n\nlet last = 0;\nfunction nodeRequestAnimationFrame(callback: FrameRequestCallback) {\n const now = Date.now();\n const timeLeft = Math.max(0, 16 - (now - last));\n const id = setTimeout(function () {\n callback(now + timeLeft);\n }, timeLeft);\n last = now + timeLeft;\n return id;\n}\n\n@injectable()\nexport class NodeEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'node';\n pkg: NodePkg;\n _lastTime: number = 0;\n supportEvent: boolean = false;\n\n configure(service: IGlobal, pkg: NodePkg = NodePkg) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n this.pkg = pkg;\n }\n }\n\n loadJson(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }> {\n const jsonPromise = fetch(url).then(data => data.json()) as Promise<any>; // ignore_security_alert\n jsonPromise\n .then(json => {\n return {\n data: json,\n state: 'success'\n };\n })\n .catch(() => {\n return {\n data: null,\n state: 'fail'\n };\n });\n return jsonPromise;\n }\n\n loadArrayBuffer(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }> {\n const arrayBufferPromise = fetch(url).then(data => data.arrayBuffer()); // ignore_security_alert\n return arrayBufferPromise\n .then((arrayBuffer: ArrayBuffer) => {\n return {\n data: arrayBuffer,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | null;\n }> {\n const { loadImage } = this.pkg;\n if (loadImage) {\n return loadImage(url)\n .then((image: any) => {\n const loadState: 'success' | 'fail' = image ? 'success' : 'fail';\n return {\n loadState,\n data: image as HTMLImageElement\n };\n })\n .catch(() => {\n return {\n loadState: 'fail',\n data: null\n } as any;\n });\n }\n return Promise.reject(new Error('node-canvas loadImage could not be found!'));\n }\n\n // 此处的\n loadSvg(svgStr: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | null;\n }> {\n // // eslint-disable-next-line @typescript-eslint/no-var-requires\n // const { Resvg } = require('@resvg/resvg-js');\n if (!Resvg) {\n return Promise.reject(new Error('@resvg/resvg-js svgParser could not be found!'));\n }\n const resvg = new Resvg(svgStr);\n const pngData = resvg.render().asPng();\n return this.loadImage(pngData as unknown as string);\n }\n\n createCanvas(params: any): Canvas {\n const canvas = this.pkg.createCanvas(params.width, params.height);\n return canvas;\n }\n\n releaseCanvas(canvas: Canvas | any) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return 0;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n return nodeRequestAnimationFrame as any;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return;\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return;\n }\n\n getElementById(str: string): HTMLElement | null {\n return null;\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n dispatchEvent(event: any): boolean {\n return;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return;\n }\n\n release(...params: any): void {\n return;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import _canvasModuleLoader from './canvas/contributions/canvas-module';
|
|
3
|
+
export declare const roughModule: import("inversify").ContainerModule;
|
|
4
|
+
export declare const canvasModuleLoader: typeof _canvasModuleLoader;
|
|
5
|
+
export { nodeLoader } from './node-bind';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
default: mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: !0
|
|
11
|
+
}), exports.nodeLoader = exports.canvasModuleLoader = exports.roughModule = void 0,
|
|
12
|
+
require("reflect-metadata");
|
|
13
|
+
|
|
14
|
+
const module_1 = __importDefault(require("./render/contributions/rough/module")), canvas_module_1 = __importDefault(require("./canvas/contributions/canvas-module"));
|
|
15
|
+
|
|
16
|
+
exports.roughModule = module_1.default, exports.canvasModuleLoader = canvas_module_1.default;
|
|
17
|
+
|
|
18
|
+
var node_bind_1 = require("./node-bind");
|
|
19
|
+
|
|
20
|
+
Object.defineProperty(exports, "nodeLoader", {
|
|
21
|
+
enumerable: !0,
|
|
22
|
+
get: function() {
|
|
23
|
+
return node_bind_1.nodeLoader;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index-node.ts"],"names":[],"mappings":";;;;;;AAAA,4BAA0B;AAC1B,iFAA+D;AAC/D,yFAAuE;AAE1D,QAAA,WAAW,GAAG,gBAAY,CAAC;AAC3B,QAAA,kBAAkB,GAAG,uBAAmB,CAAC;AACtD,yCAAyC;AAAhC,uGAAA,UAAU,OAAA","file":"index-node.js","sourcesContent":["import 'reflect-metadata';\nimport _roughModule from './render/contributions/rough/module';\nimport _canvasModuleLoader from './canvas/contributions/canvas-module';\n\nexport const roughModule = _roughModule;\nexport const canvasModuleLoader = _canvasModuleLoader;\nexport { nodeLoader } from './node-bind';\n"]}
|
package/cjs/index.d.ts
ADDED
package/cjs/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
default: mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: !0
|
|
11
|
+
}), exports.canvasModuleLoader = exports.roughModule = void 0, require("reflect-metadata");
|
|
12
|
+
|
|
13
|
+
const module_1 = __importDefault(require("./render/contributions/rough/module")), canvas_module_1 = __importDefault(require("./canvas/contributions/canvas-module"));
|
|
14
|
+
|
|
15
|
+
exports.roughModule = module_1.default, exports.canvasModuleLoader = canvas_module_1.default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,4BAA0B;AAC1B,iFAA+D;AAC/D,yFAAuE;AAE1D,QAAA,WAAW,GAAG,gBAAY,CAAC;AAC3B,QAAA,kBAAkB,GAAG,uBAAmB,CAAC","file":"index.js","sourcesContent":["import 'reflect-metadata';\nimport _roughModule from './render/contributions/rough/module';\nimport _canvasModuleLoader from './canvas/contributions/canvas-module';\n\nexport const roughModule = _roughModule;\nexport const canvasModuleLoader = _canvasModuleLoader;\n// export { nodeLoader } from './node-bind'; // nodeLoader只在node入口暴露\n"]}
|
package/cjs/node-bind.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
default: mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: !0
|
|
11
|
+
}), exports.nodeLoader = void 0;
|
|
12
|
+
|
|
13
|
+
const module_1 = __importDefault(require("./env/contributions/module")), modules_1 = __importDefault(require("./window/contributions/modules")), modules_2 = __importDefault(require("./canvas/contributions/node/modules"));
|
|
14
|
+
|
|
15
|
+
function nodeLoader(container) {
|
|
16
|
+
container.load(module_1.default), container.load(modules_1.default), container.load(modules_2.default);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
exports.nodeLoader = nodeLoader;
|
|
20
|
+
//# sourceMappingURL=node-bind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/node-bind.ts"],"names":[],"mappings":";;;;;;AACA,wEAAiD;AACjD,6EAAwD;AACxD,kFAA6D;AAG7D,SAAgB,UAAU,CAAC,SAAoB;IAC7C,SAAS,CAAC,IAAI,CAAC,gBAAO,CAAC,CAAC;IACxB,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;AAC7B,CAAC;AAJD,gCAIC","file":"node-bind.js","sourcesContent":["import type { Container } from 'inversify';\nimport nodeEnv from './env/contributions/module';\nimport nodeWindow from './window/contributions/modules';\nimport nodeCanvas from './canvas/contributions/node/modules';\n\n// 直接绑定node环境\nexport function nodeLoader(container: Container) {\n container.load(nodeEnv);\n container.load(nodeWindow);\n container.load(nodeCanvas);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=render-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render-module.ts"],"names":[],"mappings":"","file":"render-module.js","sourcesContent":["// import { Container } from 'inversify';\n// import roughModule from './rough/module';\n\n// export default function load(container: Container) {\n// container.load(roughModule);\n// }\n"]}
|