@visactor/vrender 0.10.0 → 0.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/canvas/contributions/modules.js +2 -2
- package/cjs/canvas/contributions/modules.js.map +1 -1
- package/cjs/canvas/contributions/node/canvas.d.ts +48 -0
- package/cjs/canvas/contributions/node/canvas.js +105 -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/common/canvas-utils.d.ts +2 -1
- package/cjs/common/canvas-utils.js +20 -7
- package/cjs/common/canvas-utils.js.map +1 -1
- package/cjs/core/contributions/env/browser-contribution.d.ts +1 -1
- package/cjs/core/contributions/env/browser-contribution.js +8 -5
- package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
- package/cjs/core/contributions/env/feishu-contribution.js +1 -1
- package/cjs/core/contributions/env/feishu-contribution.js.map +1 -1
- package/cjs/core/contributions/env/modules.js +2 -1
- package/cjs/core/contributions/env/modules.js.map +1 -1
- package/cjs/core/contributions/env/node-contribution.d.ts +47 -0
- package/cjs/core/contributions/env/node-contribution.js +89 -0
- package/cjs/core/contributions/env/node-contribution.js.map +1 -0
- package/cjs/core/contributions/window/modules.js +3 -2
- package/cjs/core/contributions/window/modules.js.map +1 -1
- package/cjs/core/contributions/window/node-contribution.d.ts +40 -1
- package/cjs/core/contributions/window/node-contribution.js +106 -0
- package/cjs/core/contributions/window/node-contribution.js.map +1 -1
- package/cjs/core/stage.js +1 -1
- package/cjs/core/stage.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/interface/context.d.ts +3 -3
- package/cjs/interface/context.js.map +1 -1
- package/cjs/render/contributions/render/path-render.js +3 -3
- package/cjs/render/contributions/render/path-render.js.map +1 -1
- package/cjs/render/contributions/render/symbol-render.js +3 -3
- package/cjs/render/contributions/render/symbol-render.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.min.js +1 -1
- package/es/canvas/contributions/modules.js +3 -1
- package/es/canvas/contributions/modules.js.map +1 -1
- package/es/canvas/contributions/node/canvas.d.ts +48 -0
- package/es/canvas/contributions/node/canvas.js +104 -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/common/canvas-utils.d.ts +2 -1
- package/es/common/canvas-utils.js +20 -7
- package/es/common/canvas-utils.js.map +1 -1
- package/es/core/contributions/env/browser-contribution.d.ts +1 -1
- package/es/core/contributions/env/browser-contribution.js +9 -4
- package/es/core/contributions/env/browser-contribution.js.map +1 -1
- package/es/core/contributions/env/feishu-contribution.js +1 -1
- package/es/core/contributions/env/feishu-contribution.js.map +1 -1
- package/es/core/contributions/env/modules.js +3 -0
- package/es/core/contributions/env/modules.js.map +1 -1
- package/es/core/contributions/env/node-contribution.d.ts +47 -0
- package/es/core/contributions/env/node-contribution.js +86 -0
- package/es/core/contributions/env/node-contribution.js.map +1 -0
- package/es/core/contributions/window/modules.js +4 -1
- package/es/core/contributions/window/modules.js.map +1 -1
- package/es/core/contributions/window/node-contribution.d.ts +40 -1
- package/es/core/contributions/window/node-contribution.js +108 -0
- package/es/core/contributions/window/node-contribution.js.map +1 -1
- package/es/core/stage.js +1 -1
- package/es/core/stage.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/interface/context.d.ts +3 -3
- package/es/interface/context.js.map +1 -1
- package/es/render/contributions/render/path-render.js +3 -3
- package/es/render/contributions/render/path-render.js.map +1 -1
- package/es/render/contributions/render/symbol-render.js +3 -3
- package/es/render/contributions/render/symbol-render.js.map +1 -1
- package/es/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -10,11 +10,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
10
10
|
value: !0
|
|
11
11
|
});
|
|
12
12
|
|
|
13
|
-
const modules_1 = __importDefault(require("./browser/modules")), modules_2 = __importDefault(require("./taro/modules")), modules_3 = __importDefault(require("./feishu/modules")), modules_4 = __importDefault(require("./lynx/modules"));
|
|
13
|
+
const modules_1 = __importDefault(require("./browser/modules")), modules_2 = __importDefault(require("./taro/modules")), modules_3 = __importDefault(require("./feishu/modules")), modules_4 = __importDefault(require("./lynx/modules")), modules_5 = __importDefault(require("./node/modules"));
|
|
14
14
|
|
|
15
15
|
function load(container) {
|
|
16
16
|
container.load(modules_1.default), container.load(modules_3.default), container.load(modules_2.default),
|
|
17
|
-
container.load(modules_4.default);
|
|
17
|
+
container.load(modules_4.default), container.load(modules_5.default);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
exports.default = load;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/canvas/contributions/modules.ts"],"names":[],"mappings":";;;;;AACA,gEAA8C;AAC9C,6DAAwC;AACxC,+DAA4C;AAC5C,6DAAwC;AAExC,SAAwB,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,iBAAa,CAAC,CAAC;IAC9B,SAAS,CAAC,IAAI,CAAC,iBAAY,CAAC,CAAC;IAC7B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;AAC7B,CAAC;
|
|
1
|
+
{"version":3,"sources":["../../src/canvas/contributions/modules.ts"],"names":[],"mappings":";;;;;AACA,gEAA8C;AAC9C,6DAAwC;AACxC,+DAA4C;AAC5C,6DAAwC;AACxC,6DAAwC;AAExC,SAAwB,IAAI,CAAC,SAAoB;IAC/C,SAAS,CAAC,IAAI,CAAC,iBAAa,CAAC,CAAC;IAC9B,SAAS,CAAC,IAAI,CAAC,iBAAY,CAAC,CAAC;IAC7B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,CAAC;AAC7B,CAAC;AAND,uBAMC","file":"modules.js","sourcesContent":["import { Container } from 'inversify';\nimport browserModule from './browser/modules';\nimport taroModule from './taro/modules';\nimport feishuModule from './feishu/modules';\nimport lynxModule from './lynx/modules';\nimport nodeModule from './node/modules';\n\nexport default function load(container: Container) {\n container.load(browserModule);\n container.load(feishuModule);\n container.load(taroModule);\n container.load(lynxModule);\n container.load(nodeModule);\n}\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { EnvType, CanvasConfigType, ICanvas, IContext2d } from '../../../interface';
|
|
2
|
+
type Canvas = any;
|
|
3
|
+
export declare class NodeCanvas implements ICanvas {
|
|
4
|
+
static env: EnvType;
|
|
5
|
+
private _id;
|
|
6
|
+
private _displayWidth;
|
|
7
|
+
private _displayHeight;
|
|
8
|
+
private _pixelWidth;
|
|
9
|
+
private _pixelHeight;
|
|
10
|
+
private _nativeCanvas;
|
|
11
|
+
private _context;
|
|
12
|
+
private _visiable;
|
|
13
|
+
private controled;
|
|
14
|
+
private _dpr;
|
|
15
|
+
get id(): number | string;
|
|
16
|
+
get x(): number;
|
|
17
|
+
get y(): number;
|
|
18
|
+
get nativeCanvas(): Canvas;
|
|
19
|
+
get width(): number;
|
|
20
|
+
set width(width: number);
|
|
21
|
+
get displayWidth(): number;
|
|
22
|
+
get displayHeight(): number;
|
|
23
|
+
get height(): number;
|
|
24
|
+
set height(height: number);
|
|
25
|
+
getContext(str?: string): IContext2d;
|
|
26
|
+
get visiable(): boolean;
|
|
27
|
+
set visiable(visiable: boolean);
|
|
28
|
+
get dpr(): number;
|
|
29
|
+
set dpr(dpr: number);
|
|
30
|
+
constructor(params: CanvasConfigType);
|
|
31
|
+
applyPosition(): void;
|
|
32
|
+
getNativeCanvas(): Canvas;
|
|
33
|
+
resetStyle(params: Partial<CanvasConfigType>): void;
|
|
34
|
+
hide(): void;
|
|
35
|
+
show(): void;
|
|
36
|
+
resize(width: number, height: number): void;
|
|
37
|
+
toDataURL(): string;
|
|
38
|
+
toDataURL(mimeType: 'image/png'): string;
|
|
39
|
+
toDataURL(mimeType: 'image/jpeg', quality: number): string;
|
|
40
|
+
readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData>;
|
|
41
|
+
convertToBlob(options?: {
|
|
42
|
+
type?: string | undefined;
|
|
43
|
+
quality?: number | undefined;
|
|
44
|
+
} | undefined): Promise<Blob>;
|
|
45
|
+
transferToImageBitmap(): ImageBitmap;
|
|
46
|
+
release(...params: any): void;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,105 @@
|
|
|
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._pixelWidth;
|
|
36
|
+
}
|
|
37
|
+
set width(width) {
|
|
38
|
+
this._pixelWidth = width, this._displayWidth = width / (this._dpr || 1);
|
|
39
|
+
}
|
|
40
|
+
get displayWidth() {
|
|
41
|
+
return this._pixelWidth / this._dpr;
|
|
42
|
+
}
|
|
43
|
+
get displayHeight() {
|
|
44
|
+
return this._pixelHeight / this._dpr;
|
|
45
|
+
}
|
|
46
|
+
get height() {
|
|
47
|
+
return this._pixelHeight;
|
|
48
|
+
}
|
|
49
|
+
set height(height) {
|
|
50
|
+
this._pixelHeight = height, this._displayHeight = height / (this._dpr || 1);
|
|
51
|
+
}
|
|
52
|
+
getContext(str) {
|
|
53
|
+
return this._context;
|
|
54
|
+
}
|
|
55
|
+
get visiable() {
|
|
56
|
+
return this._visiable;
|
|
57
|
+
}
|
|
58
|
+
set visiable(visiable) {
|
|
59
|
+
this._visiable = visiable, visiable ? this.show() : this.hide();
|
|
60
|
+
}
|
|
61
|
+
get dpr() {
|
|
62
|
+
return this._dpr;
|
|
63
|
+
}
|
|
64
|
+
set dpr(dpr) {
|
|
65
|
+
this._dpr = dpr, this.resize(this.width, this.height);
|
|
66
|
+
}
|
|
67
|
+
constructor(params) {
|
|
68
|
+
const {nativeCanvas: nativeCanvas, width: width = DefaultConfig.WIDTH, height: height = DefaultConfig.HEIGHT, canvasControled: canvasControled = !0, dpr: dpr = DefaultConfig.DPR} = params;
|
|
69
|
+
this._visiable = !1 !== params.visiable, this.controled = canvasControled, this._pixelWidth = width * dpr,
|
|
70
|
+
this._pixelHeight = height * dpr, this._displayWidth = width, this._displayHeight = height,
|
|
71
|
+
this._nativeCanvas = nativeCanvas, this._context = new context_1.NodeContext2d(this, params.dpr),
|
|
72
|
+
this._id = nativeCanvas.id, this._dpr = dpr;
|
|
73
|
+
}
|
|
74
|
+
applyPosition() {}
|
|
75
|
+
getNativeCanvas() {
|
|
76
|
+
return this._nativeCanvas;
|
|
77
|
+
}
|
|
78
|
+
resetStyle(params) {}
|
|
79
|
+
hide() {}
|
|
80
|
+
show() {}
|
|
81
|
+
resize(width, height) {
|
|
82
|
+
this._pixelWidth = width * this._dpr, this._pixelHeight = height * this._dpr, this._displayWidth = width,
|
|
83
|
+
this._displayHeight = height, this._nativeCanvas && (this._nativeCanvas.width = this._pixelWidth,
|
|
84
|
+
this._nativeCanvas.height = this._pixelHeight);
|
|
85
|
+
}
|
|
86
|
+
toDataURL(mimeType, quality) {
|
|
87
|
+
return "";
|
|
88
|
+
}
|
|
89
|
+
readPixels(x, y, w, h) {
|
|
90
|
+
return this._context.getImageData(x, y, w, h);
|
|
91
|
+
}
|
|
92
|
+
convertToBlob(options) {
|
|
93
|
+
throw new Error("暂未实现");
|
|
94
|
+
}
|
|
95
|
+
transferToImageBitmap() {
|
|
96
|
+
throw new Error("暂未实现");
|
|
97
|
+
}
|
|
98
|
+
release(...params) {
|
|
99
|
+
throw new Error("暂不支持release");
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
NodeCanvas.env = "node", NodeCanvas = __decorate([ (0, inversify_1.injectable)(), __metadata("design:paramtypes", [ Object ]) ], NodeCanvas),
|
|
104
|
+
exports.NodeCanvas = NodeCanvas;
|
|
105
|
+
//# 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 { EnvType, CanvasConfigType, ICanvas, IContext2d } from '../../../interface';\nimport { NodeContext2d } from './context';\n\ntype Canvas = any;\n\nconst DefaultConfig = {\n WIDTH: 500,\n HEIGHT: 500,\n DPR: 1\n};\n\n@injectable()\nexport class NodeCanvas implements ICanvas {\n static env: EnvType = 'node';\n // 显示的宽高,如果是离屏canvas,就是pixelWidth / pixelRatio\n private _id: number | string;\n\n private _displayWidth: number; // 显示的宽度\n private _displayHeight: number; // 显示的高度\n // 像素宽高\n private _pixelWidth: number; // 像素宽度\n private _pixelHeight: number; // 像素高度\n\n private _nativeCanvas: Canvas;\n private _context: IContext2d;\n private _visiable: boolean;\n private controled: boolean;\n private _dpr: number;\n\n get id(): number | string {\n return this._id;\n }\n get x(): number {\n return 0;\n }\n get y(): number {\n return 0;\n }\n get nativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n get width(): number {\n return this._pixelWidth;\n }\n set width(width: number) {\n this._pixelWidth = width;\n this._displayWidth = width / (this._dpr || 1);\n }\n get displayWidth(): number {\n return this._pixelWidth / this._dpr;\n }\n\n get displayHeight(): number {\n return this._pixelHeight / this._dpr;\n }\n\n get height(): number {\n return this._pixelHeight;\n }\n set height(height: number) {\n this._pixelHeight = height;\n this._displayHeight = height / (this._dpr || 1);\n }\n getContext(str?: string): IContext2d {\n return this._context;\n }\n\n get visiable(): boolean {\n return this._visiable;\n }\n set visiable(visiable: boolean) {\n this._visiable = visiable;\n visiable ? this.show() : this.hide();\n }\n\n get dpr(): number {\n return this._dpr;\n }\n set dpr(dpr: number) {\n this._dpr = dpr;\n this.resize(this.width, this.height);\n return;\n }\n\n /**\n * 通过canvas生成一个wrap对象,初始化时不会再设置canvas的属性\n * @param params\n */\n constructor(params: CanvasConfigType) {\n const {\n nativeCanvas,\n width = DefaultConfig.WIDTH,\n height = DefaultConfig.HEIGHT,\n canvasControled = true,\n dpr = DefaultConfig.DPR\n } = params;\n this._visiable = params.visiable !== false;\n this.controled = canvasControled;\n\n // 离屏canvas\n this._pixelWidth = width * dpr;\n this._pixelHeight = height * dpr;\n this._displayWidth = width;\n this._displayHeight = height;\n this._nativeCanvas = nativeCanvas as unknown as Canvas;\n this._context = new NodeContext2d(this, params.dpr);\n this._id = nativeCanvas.id;\n this._dpr = dpr;\n }\n\n applyPosition() {\n return;\n }\n\n getNativeCanvas(): Canvas {\n return this._nativeCanvas;\n }\n\n resetStyle(params: Partial<CanvasConfigType>) {\n return;\n }\n\n hide() {\n return;\n }\n show() {\n return;\n }\n\n /**\n * 设置canvas的size大小,设置context的scale\n * @param width\n * @param height\n */\n resize(width: number, height: number) {\n this._pixelWidth = width * this._dpr;\n this._pixelHeight = height * this._dpr;\n this._displayWidth = width;\n this._displayHeight = height;\n if (this._nativeCanvas) {\n this._nativeCanvas.width = this._pixelWidth;\n this._nativeCanvas.height = this._pixelHeight;\n }\n return;\n }\n\n toDataURL(): string;\n toDataURL(mimeType: 'image/png'): string;\n toDataURL(mimeType: 'image/jpeg', quality: number): string;\n toDataURL(mimeType?: string, quality?: number) {\n return '';\n }\n\n readPixels(x: number, y: number, w: number, h: number): ImageData | Promise<ImageData> {\n return this._context.getImageData(x, y, w, h);\n }\n\n convertToBlob(options?: { type?: string | undefined; quality?: number | undefined } | undefined): Promise<Blob> {\n throw new Error('暂未实现');\n }\n\n transferToImageBitmap(): ImageBitmap {\n throw new Error('暂未实现');\n }\n\n release(...params: any): void {\n throw new Error('暂不支持release');\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BrowserContext2d } from '../browser';
|
|
2
|
+
import { IContext2d, EnvType, ICanvas } from '../../../interface';
|
|
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"), browser_1 = require("../browser"), initMatrix = new vutils_1.Matrix(1, 0, 0, 1, 0, 0);
|
|
16
|
+
|
|
17
|
+
let NodeContext2d = class extends browser_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 = null != dpr ? 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;AACvC,wCAA8C;AAgB9C,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,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,GAAG,MAAW;QACpB,OAAO;IACT,CAAC;;AAjBM,iBAAG,GAAY,MAAM,CAAC;AADlB,aAAa;IADzB,IAAA,sBAAU,GAAE;;GACA,aAAa,CAmBzB;AAnBY,sCAAa","file":"context.js","sourcesContent":["// 参考konva\nimport { Matrix } from '@visactor/vutils';\nimport { injectable } from 'inversify';\nimport { BrowserContext2d } from '../browser';\nimport {\n ICommonStyleParams,\n IContext2d,\n ISetCommonStyleParams,\n ISetStrokeStyleParams,\n IStrokeStyleParams,\n ITextStyleParams,\n IConicalGradientData,\n EnvType,\n ICanvas\n} from '../../../interface';\nimport { createColor, getScaledStroke } from '../../../common/canvas-utils';\nimport { getContextFont } from '../../../common/text';\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 = 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"), canvas_1 = require("./canvas"), context_1 = require("./context"), interface_1 = require("../../interface");
|
|
8
|
+
|
|
9
|
+
exports.default = new inversify_1.ContainerModule((bind => {
|
|
10
|
+
bind(interface_1.CanvasFactory).toDynamicValue((() => params => new canvas_1.NodeCanvas(params))).whenTargetNamed(canvas_1.NodeCanvas.env),
|
|
11
|
+
bind(interface_1.Context2dFactory).toDynamicValue((() => (params, dpr) => new context_1.NodeContext2d(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;AAC5C,qCAAsC;AACtC,uCAA0C;AAC1C,+CAAkE;AAGlE,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACxC,IAAI,CAAC,yBAAa,CAAC;SAChB,cAAc,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,MAAwB,EAAE,EAAE,CAAC,IAAI,mBAAU,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC;SACD,eAAe,CAAC,mBAAU,CAAC,GAAG,CAAC,CAAC;IAEnC,IAAI,CAAC,4BAAgB,CAAC;SACnB,cAAc,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,MAAe,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,uBAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC,CAAC;SACD,eAAe,CAAC,uBAAa,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { NodeCanvas } from './canvas';\nimport { NodeContext2d } from './context';\nimport { CanvasFactory, Context2dFactory } from '../../interface';\nimport { CanvasConfigType, ICanvas } from '../../../interface';\n\nexport default new ContainerModule(bind => {\n bind(CanvasFactory)\n .toDynamicValue(() => {\n return (params: CanvasConfigType) => new NodeCanvas(params);\n })\n .whenTargetNamed(NodeCanvas.env);\n\n bind(Context2dFactory)\n .toDynamicValue(() => {\n return (params: ICanvas, dpr: number) => new NodeContext2d(params, dpr);\n })\n .whenTargetNamed(NodeContext2d.env);\n});\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { IColor } from '../interface/color';
|
|
2
|
-
import { IContext2d } from '../interface';
|
|
2
|
+
import { IContext2d, ITransform } from '../interface';
|
|
3
3
|
import { IBoundsLike } from '@visactor/vutils';
|
|
4
4
|
export declare function getScaledStroke(context: IContext2d, width: number, dpr: number): number;
|
|
5
5
|
export declare function createColor(context: IContext2d, c: string | IColor | Array<string | IColor> | boolean, params: {
|
|
6
6
|
AABBBounds?: IBoundsLike;
|
|
7
|
+
attribute?: Partial<ITransform>;
|
|
7
8
|
}, offsetX: number, offsetY: number): string | CanvasGradient;
|
|
@@ -17,27 +17,40 @@ function createColor(context, c, params, offsetX, offsetY) {
|
|
|
17
17
|
if (!c || !0 === c) return "black";
|
|
18
18
|
let result, color;
|
|
19
19
|
if ((0, vutils_1.isArray)(c)) for (let i = 0; i < c.length && (color = c[i], !color); i++) ; else color = c;
|
|
20
|
-
return "string" == typeof color ? color : ("linear" === color.gradient ? result = createLinearGradient(context, color, params
|
|
20
|
+
return "string" == typeof color ? color : ("linear" === color.gradient ? result = createLinearGradient(context, color, params, offsetX, offsetY) : "conical" === color.gradient ? result = createConicGradient(context, color, params, offsetX, offsetY) : "radial" === color.gradient && (result = createRadialGradient(context, color, params, offsetX, offsetY)),
|
|
21
21
|
result || "orange");
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function createLinearGradient(context, color,
|
|
25
|
-
const
|
|
24
|
+
function createLinearGradient(context, color, params, offsetX = 0, offsetY = 0) {
|
|
25
|
+
const bounds = params.AABBBounds;
|
|
26
|
+
if (!bounds) return;
|
|
27
|
+
let w = bounds.x2 - bounds.x1, h = bounds.y2 - bounds.y1;
|
|
28
|
+
if (params.attribute) {
|
|
29
|
+
const {scaleX: scaleX = 1, scaleY: scaleY = 1} = params.attribute;
|
|
30
|
+
w /= scaleX, h /= scaleY;
|
|
31
|
+
}
|
|
32
|
+
const x = bounds.x1 - offsetX, y = bounds.y1 - offsetY, canvasGradient = context.createLinearGradient(x + (color.x0 || 0) * w, y + (color.y0 || 0) * h, x + (color.x1 || 1) * w, y + (color.y1 || 0) * h);
|
|
26
33
|
return color.stops.forEach((stop => {
|
|
27
34
|
canvasGradient.addColorStop(stop.offset, stop.color);
|
|
28
35
|
})), canvasGradient;
|
|
29
36
|
}
|
|
30
37
|
|
|
31
|
-
function createRadialGradient(context, color,
|
|
32
|
-
const
|
|
38
|
+
function createRadialGradient(context, color, params, offsetX = 0, offsetY = 0) {
|
|
39
|
+
const bounds = params.AABBBounds;
|
|
40
|
+
if (!bounds) return;
|
|
41
|
+
let w = bounds.x2 - bounds.x1, h = bounds.y2 - bounds.y1;
|
|
42
|
+
const {scaleX: scaleX = 1, scaleY: scaleY = 1} = params.attribute, x = (bounds.x1 - offsetX) / scaleX, y = (bounds.y1 - offsetY) / scaleY;
|
|
43
|
+
params.attribute && (w /= scaleX, h /= scaleY);
|
|
44
|
+
const canvasGradient = context.createRadialGradient(x + (color.x0 || .5) * w, y + (color.y0 || .5) * h, Math.max(w, h) * (color.r0 || 0), x + (color.x1 || .5) * w, y + (color.y1 || .5) * h, Math.max(w, h) * (color.r1 || .5));
|
|
33
45
|
return color.stops.forEach((stop => {
|
|
34
46
|
canvasGradient.addColorStop(stop.offset, stop.color);
|
|
35
47
|
})), canvasGradient;
|
|
36
48
|
}
|
|
37
49
|
|
|
38
|
-
function createConicGradient(context, color,
|
|
50
|
+
function createConicGradient(context, color, params, offsetX = 0, offsetY = 0) {
|
|
51
|
+
const bounds = params.AABBBounds;
|
|
39
52
|
if (!bounds) return;
|
|
40
|
-
const w = bounds.x2 - bounds.x1, h = bounds.y2 - bounds.y1, x = bounds.x1 || 0, y = bounds.y1 || 0, canvasGradient = context.createConicGradient(x + (color.x || 0) * w, y + (color.y || 0) * h, color.startAngle, color.endAngle);
|
|
53
|
+
const w = bounds.x2 - bounds.x1, h = bounds.y2 - bounds.y1, x = bounds.x1 || 0 - offsetX, y = bounds.y1 || 0 - offsetY, canvasGradient = context.createConicGradient(x + (color.x || 0) * w, y + (color.y || 0) * h, color.startAngle, color.endAngle);
|
|
41
54
|
return color.stops.forEach((stop => {
|
|
42
55
|
canvasGradient.addColorStop(stop.offset, stop.color);
|
|
43
56
|
})), canvasGradient.GetPattern(w + x, h + y, undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/common/canvas-utils.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"sources":["../../src/common/canvas-utils.ts"],"names":[],"mappings":"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","file":"canvas-utils.js","sourcesContent":["import { IColor, IConicalGradient, ILinearGradient, IRadialGradient } from '../interface/color';\nimport { ICommonStyleParams, IContext2d, ITransform } from '../interface';\nimport { IBoundsLike, IMatrix, isArray } from '@visactor/vutils';\n\nexport function getScaledStroke(context: IContext2d, width: number, dpr: number) {\n let strokeWidth = width;\n const { a, b, c, d } = context.currentMatrix;\n const scaleX = Math.sign(a) * Math.sqrt(a * a + b * b);\n const scaleY = Math.sign(d) * Math.sqrt(c * c + d * d);\n // 如果没有scaleX和scaleY,那么认为什么都不用绘制\n if (scaleX + scaleY === 0) {\n return 0;\n }\n strokeWidth = (strokeWidth / Math.abs(scaleX + scaleY)) * 2 * dpr;\n return strokeWidth;\n}\n\nexport function createColor(\n context: IContext2d,\n c: string | IColor | Array<string | IColor> | boolean,\n params: { AABBBounds?: IBoundsLike; attribute?: Partial<ITransform> },\n offsetX: number,\n offsetY: number\n): string | CanvasGradient {\n if (!c || c === true) {\n return 'black';\n }\n let result: string | CanvasGradient | undefined;\n let color: string | IColor;\n if (isArray(c)) {\n for (let i = 0; i < c.length; i++) {\n color = c[i];\n if (color) {\n break;\n }\n }\n } else {\n color = c;\n }\n if (typeof color === 'string') {\n return color;\n }\n if (color.gradient === 'linear') {\n result = createLinearGradient(context, color, params, offsetX, offsetY);\n } else if (color.gradient === 'conical') {\n result = createConicGradient(context, color, params, offsetX, offsetY);\n } else if (color.gradient === 'radial') {\n result = createRadialGradient(context, color, params, offsetX, offsetY);\n }\n return result || 'orange';\n}\n\nfunction createLinearGradient(\n context: IContext2d,\n color: ILinearGradient,\n params: { AABBBounds?: IBoundsLike; attribute?: Partial<ITransform> },\n offsetX: number = 0,\n offsetY: number = 0\n) {\n const bounds = params.AABBBounds;\n if (!bounds) {\n return;\n }\n let w = bounds.x2 - bounds.x1;\n let h = bounds.y2 - bounds.y1;\n if (params.attribute) {\n const { scaleX = 1, scaleY = 1 } = params.attribute;\n w /= scaleX;\n h /= scaleY;\n }\n const x = bounds.x1 - offsetX;\n const y = bounds.y1 - offsetY;\n const canvasGradient = context.createLinearGradient(\n x + (color.x0 || 0) * w,\n y + (color.y0 || 0) * h,\n x + (color.x1 || 1) * w,\n y + (color.y1 || 0) * h\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n return canvasGradient;\n}\n\nfunction createRadialGradient(\n context: IContext2d,\n color: IRadialGradient,\n params: { AABBBounds?: IBoundsLike; attribute?: Partial<ITransform> },\n offsetX: number = 0,\n offsetY: number = 0\n) {\n const bounds = params.AABBBounds;\n if (!bounds) {\n return;\n }\n let w = bounds.x2 - bounds.x1;\n let h = bounds.y2 - bounds.y1;\n const { scaleX = 1, scaleY = 1 } = params.attribute;\n const x = (bounds.x1 - offsetX) / scaleX;\n const y = (bounds.y1 - offsetY) / scaleY;\n if (params.attribute) {\n w /= scaleX;\n h /= scaleY;\n }\n const canvasGradient = context.createRadialGradient(\n x + (color.x0 || 0.5) * w,\n y + (color.y0 || 0.5) * h,\n Math.max(w, h) * (color.r0 || 0),\n x + (color.x1 || 0.5) * w,\n y + (color.y1 || 0.5) * h,\n Math.max(w, h) * (color.r1 || 0.5)\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n return canvasGradient;\n}\n\nfunction createConicGradient(\n context: IContext2d,\n color: IConicalGradient,\n params: { AABBBounds?: IBoundsLike; attribute?: Partial<ITransform> },\n offsetX: number = 0,\n offsetY: number = 0\n) {\n const bounds = params.AABBBounds;\n if (!bounds) {\n return;\n }\n const w = bounds.x2 - bounds.x1;\n const h = bounds.y2 - bounds.y1;\n const x = bounds.x1 || 0 - offsetX;\n const y = bounds.y1 || 0 - offsetY;\n\n const canvasGradient = context.createConicGradient(\n x + (color.x || 0) * w,\n y + (color.y || 0) * h,\n color.startAngle,\n color.endAngle\n );\n color.stops.forEach(stop => {\n canvasGradient.addColorStop(stop.offset, stop.color);\n });\n\n let deltaAngle;\n return (canvasGradient as any).GetPattern(w + x, h + y, deltaAngle);\n}\n"]}
|
|
@@ -6,7 +6,7 @@ export declare class BrowserEnvContribution extends BaseEnvContribution implemen
|
|
|
6
6
|
type: EnvType;
|
|
7
7
|
supportEvent: boolean;
|
|
8
8
|
constructor();
|
|
9
|
-
mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent, domElement?:
|
|
9
|
+
mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent, domElement?: any): IPointLike;
|
|
10
10
|
loadImage(url: string): Promise<{
|
|
11
11
|
loadState: 'success' | 'fail';
|
|
12
12
|
data: HTMLImageElement | ImageData | null;
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
12
12
|
value: !0
|
|
13
13
|
}), exports.BrowserEnvContribution = exports.createImageElement = void 0;
|
|
14
14
|
|
|
15
|
-
const inversify_1 = require("inversify"), generator_1 = require("../../../common/generator"), base_contribution_1 = require("./base-contribution");
|
|
15
|
+
const inversify_1 = require("inversify"), generator_1 = require("../../../common/generator"), base_contribution_1 = require("./base-contribution"), vutils_1 = require("@visactor/vutils");
|
|
16
16
|
|
|
17
17
|
function createImageElement(src, isSvg = !1) {
|
|
18
18
|
const img = document.createElement("img");
|
|
@@ -46,11 +46,14 @@ let BrowserEnvContribution = class extends base_contribution_1.BaseEnvContributi
|
|
|
46
46
|
this.applyStyles = !0;
|
|
47
47
|
}
|
|
48
48
|
mapToCanvasPoint(nativeEvent, domElement) {
|
|
49
|
+
var _a;
|
|
49
50
|
if (domElement) {
|
|
50
|
-
const {clientX: x, clientY: y} = nativeEvent, rect = domElement.getBoundingClientRect(),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
const {clientX: x, clientY: y} = nativeEvent, rect = domElement.getBoundingClientRect(), nativeCanvas = null === (_a = domElement.getNativeHandler) || void 0 === _a ? void 0 : _a.call(domElement).nativeCanvas;
|
|
52
|
+
let scaleX, scaleY;
|
|
53
|
+
return nativeCanvas && (scaleX = rect.width / nativeCanvas.offsetWidth, scaleY = rect.height / nativeCanvas.offsetHeight),
|
|
54
|
+
{
|
|
55
|
+
x: (x - rect.left) / ((0, vutils_1.isValidNumber)(scaleX) ? scaleX : 1),
|
|
56
|
+
y: (y - rect.top) / ((0, vutils_1.isValidNumber)(scaleY) ? scaleX : 1)
|
|
54
57
|
};
|
|
55
58
|
}
|
|
56
59
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/contributions/env/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import { injectable } from 'inversify';\nimport { Generator } from '../../../common/generator';\nimport { ICanvasLike, EnvType, ICreateCanvasParams, IEnvContribution } from '../../../interface';\nimport { BaseEnvContribution } from './base-contribution';\nimport { IPoint, IPointLike } from '@visactor/vutils';\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n const img = document.createElement('img');\n img.crossOrigin = 'anonymous';\n if (isSvg) {\n const data = new Blob([src], { type: 'image/svg+xml' });\n src = window.URL.createObjectURL(data);\n }\n img.src = src;\n if (img.complete) {\n return Promise.resolve(img);\n }\n const promise: Promise<HTMLImageElement> = new Promise((resolve, reject) => {\n img.onload = () => {\n resolve(img);\n };\n img.onerror = () => {\n reject(new Error('加载失败'));\n };\n });\n return promise;\n}\n\n@injectable()\nexport class BrowserEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'browser';\n supportEvent: boolean = true;\n\n constructor() {\n super();\n try {\n this.supportsTouchEvents = 'ontouchstart' in globalThis;\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsTouchEvents = false;\n this.supportsPointerEvents = false;\n this.supportsPointerEvents = false;\n }\n this.applyStyles = true;\n }\n\n mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent, domElement?: HTMLElement): IPointLike {\n if (domElement) {\n const { clientX: x, clientY: y } = nativeEvent;\n const rect = domElement.getBoundingClientRect();\n const scaleX = rect.width / domElement.offsetWidth;\n const scaleY = rect.width / domElement.offsetWidth;\n return {\n x: (x - rect.left) / scaleX,\n y: (y - rect.top) / scaleY\n };\n }\n return {\n x: nativeEvent.offsetX,\n y: nativeEvent.offsetY\n };\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, true);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n createCanvas(params: ICreateCanvasParams): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n params.id && (canvas.id = params.id ?? Generator.GenAutoIncrementId().toString());\n // 默认dpr\n const dpr = params.dpr ?? window.devicePixelRatio;\n if (params.width && params.height) {\n canvas.style.width = `${params.width}px`;\n canvas.style.height = `${params.height}px`;\n canvas.width = params.width * dpr;\n canvas.height = params.height * dpr;\n }\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n const dpr = params.dpr ?? window.devicePixelRatio;\n const canvas = new OffscreenCanvas(params.width * dpr, params.height * dpr);\n return canvas;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n let c: HTMLCanvasElement | null;\n if (typeof canvas === 'string') {\n c = document.getElementById(canvas) as HTMLCanvasElement | null;\n } else {\n c = canvas as unknown as HTMLCanvasElement;\n }\n\n if (!c) {\n return;\n }\n if (c.parentElement) {\n c.parentElement.removeChild(c);\n }\n }\n\n getDevicePixelRatio(): number {\n return window.devicePixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return window.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return window.cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.addEventListener(type as any, listener as any, options as any);\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.removeEventListener(type as any, listener as any, options as any);\n }\n\n dispatchEvent(event: any): boolean {\n return document.dispatchEvent(event);\n }\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n getDocument(): Document | null {\n return document;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/core/contributions/env/browser-contribution.ts"],"names":[],"mappings":"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","file":"browser-contribution.js","sourcesContent":["import { injectable } from 'inversify';\nimport { Generator } from '../../../common/generator';\nimport { ICanvasLike, EnvType, ICreateCanvasParams, IEnvContribution } from '../../../interface';\nimport { BaseEnvContribution } from './base-contribution';\nimport { IPointLike, isValidNumber } from '@visactor/vutils';\n\nexport function createImageElement(src: string, isSvg: boolean = false): Promise<HTMLImageElement> {\n const img = document.createElement('img');\n img.crossOrigin = 'anonymous';\n if (isSvg) {\n const data = new Blob([src], { type: 'image/svg+xml' });\n src = window.URL.createObjectURL(data);\n }\n img.src = src;\n if (img.complete) {\n return Promise.resolve(img);\n }\n const promise: Promise<HTMLImageElement> = new Promise((resolve, reject) => {\n img.onload = () => {\n resolve(img);\n };\n img.onerror = () => {\n reject(new Error('加载失败'));\n };\n });\n return promise;\n}\n\n@injectable()\nexport class BrowserEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'browser';\n supportEvent: boolean = true;\n\n constructor() {\n super();\n try {\n this.supportsTouchEvents = 'ontouchstart' in globalThis;\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsTouchEvents = false;\n this.supportsPointerEvents = false;\n this.supportsPointerEvents = false;\n }\n this.applyStyles = true;\n }\n\n mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent, domElement?: any): IPointLike {\n if (domElement) {\n const { clientX: x, clientY: y } = nativeEvent;\n const rect = domElement.getBoundingClientRect();\n const nativeCanvas = domElement.getNativeHandler?.().nativeCanvas;\n let scaleX;\n let scaleY;\n if (nativeCanvas) {\n scaleX = rect.width / nativeCanvas.offsetWidth;\n scaleY = rect.height / nativeCanvas.offsetHeight;\n }\n\n return {\n x: (x - rect.left) / (isValidNumber(scaleX) ? scaleX : 1),\n y: (y - rect.top) / (isValidNumber(scaleY) ? scaleX : 1)\n };\n }\n return {\n x: nativeEvent.offsetX,\n y: nativeEvent.offsetY\n };\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, true);\n return imagePromise\n .then((img: HTMLImageElement) => {\n return {\n data: img,\n loadState: 'success' as const\n };\n })\n .catch(() => {\n return {\n data: null,\n loadState: 'fail'\n };\n });\n }\n\n createCanvas(params: ICreateCanvasParams): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n params.id && (canvas.id = params.id ?? Generator.GenAutoIncrementId().toString());\n // 默认dpr\n const dpr = params.dpr ?? window.devicePixelRatio;\n if (params.width && params.height) {\n canvas.style.width = `${params.width}px`;\n canvas.style.height = `${params.height}px`;\n canvas.width = params.width * dpr;\n canvas.height = params.height * dpr;\n }\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n const dpr = params.dpr ?? window.devicePixelRatio;\n const canvas = new OffscreenCanvas(params.width * dpr, params.height * dpr);\n return canvas;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n let c: HTMLCanvasElement | null;\n if (typeof canvas === 'string') {\n c = document.getElementById(canvas) as HTMLCanvasElement | null;\n } else {\n c = canvas as unknown as HTMLCanvasElement;\n }\n\n if (!c) {\n return;\n }\n if (c.parentElement) {\n c.parentElement.removeChild(c);\n }\n }\n\n getDevicePixelRatio(): number {\n return window.devicePixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return window.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return window.cancelAnimationFrame;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions | undefined\n ): void;\n addEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.addEventListener(type as any, listener as any, options as any);\n }\n\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions | undefined\n ): void;\n removeEventListener(type: unknown, listener: unknown, options?: unknown): void {\n return document.removeEventListener(type as any, listener as any, options as any);\n }\n\n dispatchEvent(event: any): boolean {\n return document.dispatchEvent(event);\n }\n\n getElementById(str: string): HTMLElement | null {\n return document.getElementById(str);\n }\n\n getRootElement(): HTMLElement | null {\n return document.body;\n }\n\n getDocument(): Document | null {\n return document;\n }\n\n release(...params: any): void {\n return;\n }\n}\n"]}
|
|
@@ -73,7 +73,7 @@ let FeishuEnvContribution = class extends base_contribution_1.BaseEnvContributio
|
|
|
73
73
|
}
|
|
74
74
|
getRequestAnimationFrame() {
|
|
75
75
|
return function(callback) {
|
|
76
|
-
setTimeout(callback, 1e3 / 60, !0);
|
|
76
|
+
return setTimeout(callback, 1e3 / 60, !0);
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
getCancelAnimationFrame() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/contributions/env/feishu-contribution.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/core/contributions/env/feishu-contribution.ts"],"names":[],"mappings":"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","file":"feishu-contribution.js","sourcesContent":["import { injectable } from 'inversify';\nimport { loadFeishuContributions } from '../../../kits';\nimport { ICanvasLike, EnvType, ICreateCanvasParams, IEnvContribution, IGlobal } from '../../../interface';\nimport { BaseEnvContribution } from './base-contribution';\nimport { createImageElement } from './browser-contribution';\n\ndeclare const tt: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvasContext: (id: string) => any;\n};\n\nexport interface ITTCanvas extends ICanvasLike {\n width: number;\n height: number;\n offsetWidth: number;\n offsetHeight: number;\n getContext: () => any;\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => { width: number; height: number };\n id: string;\n}\n\n// 飞书小程序canvas的wrap\nfunction makeUpCanvas(\n domref: any,\n canvasIdLists: string[],\n canvasMap: Map<string, ITTCanvas>,\n freeCanvasIdx: number,\n freeCanvasList: ITTCanvas[]\n) {\n const dpr = tt.getSystemInfoSync().pixelRatio;\n\n canvasIdLists.forEach((id, i) => {\n const ctx = tt.createCanvasContext(id);\n // TODO: 这里是一个临时方案,向 ctx 内部构造一个 canvas,传递宽高\n ctx.canvas = {\n width: domref.width * dpr,\n height: domref.height * dpr\n };\n\n // 放到内容里\n // // TODO: 这里是一个临时方案,兼容 createCircularGradient 方法\n // ctx.createRadialGradient = (...cc) => ctx.createCircularGradient(...cc);\n\n // // 封装 getImageData 为 promise\n // ctx.getImageData = (x, y, width, height) =>\n // new Promise((resolve, reject) => {\n // try {\n // tt.canvasGetImageData({\n // canvasId: item.id,\n // x,\n // y,\n // width,\n // height,\n // success(res) {\n // resolve(res);\n // },\n // });\n // } catch (err) {\n // reject(err);\n // }\n // });\n\n const canvas = {\n width: domref.width,\n height: domref.height,\n offsetWidth: domref.width,\n offsetHeight: domref.height,\n id: id ?? '',\n getContext: () => ctx,\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => ({\n height: domref.height,\n width: domref.width\n })\n };\n\n canvasMap.set(id, canvas);\n if (i >= freeCanvasIdx) {\n freeCanvasList.push(canvas);\n }\n });\n}\n\n@injectable()\nexport class FeishuEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'feishu';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ITTCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ITTCanvas[] = [];\n canvasIdx: number = 0;\n\n constructor() {\n super();\n this.supportsTouchEvents = true;\n try {\n this.supportsPointerEvents = !!globalThis.PointerEvent;\n this.supportsMouseEvents = !!globalThis.MouseEvent;\n } catch (err) {\n this.supportsPointerEvents = false;\n this.supportsMouseEvents = false;\n }\n this.applyStyles = true;\n }\n\n // TODO:VGrammar在小程序环境会重复调用setEnv传入canvas,所以每次configure并不会释放\n // 这里等待后续和VGrammar沟通\n configure(service: IGlobal, params: { domref: any; canvasIdLists: string[]; freeCanvasIdx: number }) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList);\n\n loadFeishuContributions();\n }\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n return Promise.resolve({\n data: url as unknown as HTMLImageElement,\n loadState: 'success'\n });\n }\n\n loadSvg(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n // 飞书小组件不支持DOMParser和URL.createObjectURL,无法解析svg字符串,可以通过url使用svg资源\n return Promise.reject();\n }\n\n createCanvas(params: ICreateCanvasParams): ITTCanvas {\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n return result;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return tt.getSystemInfoSync().pixelRatio;\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n // return requestAnimationFrame;\n\n // 飞书小组件,在云文档浏览器环境中,没有requestAnimationFrame\n // 但是在小组件工作台环境和模拟器中正常\n // 反馈飞书修改,目前先使用setTimeout模拟,进行测试,飞书修复后替换回requestAnimationFrame\n return function (callback: FrameRequestCallback) {\n return setTimeout(callback, 1000 / 60, true);\n } as any;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return (h: number) => {\n clearTimeout(h);\n };\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 null;\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 null;\n }\n\n dispatchEvent(event: any): boolean {\n return null;\n }\n\n // 只能索引canvas\n getElementById(str: string): any | null {\n return this.canvasMap.get(str);\n }\n\n getRootElement(): HTMLElement | null {\n return null;\n }\n\n getDocument(): Document | null {\n return null;\n }\n\n release(...params: any): void {\n return;\n }\n\n mapToCanvasPoint(event: any) {\n if (event?.type?.startsWith('mouse')) {\n return event;\n }\n return null;\n }\n}\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
const inversify_1 = require("inversify"), contribution_provider_1 = require("../../../common/contribution-provider"), interface_1 = require("../../../interface"), browser_contribution_1 = require("./browser-contribution"), feishu_contribution_1 = require("./feishu-contribution"), taro_contribution_1 = require("./taro-contribution"), lynx_contribution_1 = require("./lynx-contribution");
|
|
7
|
+
const inversify_1 = require("inversify"), contribution_provider_1 = require("../../../common/contribution-provider"), interface_1 = require("../../../interface"), browser_contribution_1 = require("./browser-contribution"), feishu_contribution_1 = require("./feishu-contribution"), taro_contribution_1 = require("./taro-contribution"), lynx_contribution_1 = require("./lynx-contribution"), node_contribution_1 = require("./node-contribution");
|
|
8
8
|
|
|
9
9
|
exports.default = new inversify_1.ContainerModule((bind => {
|
|
10
10
|
bind(browser_contribution_1.BrowserEnvContribution).toSelf().inSingletonScope(),
|
|
@@ -12,6 +12,7 @@ exports.default = new inversify_1.ContainerModule((bind => {
|
|
|
12
12
|
bind(feishu_contribution_1.FeishuEnvContribution).toSelf().inSingletonScope(), bind(interface_1.EnvContribution).toService(feishu_contribution_1.FeishuEnvContribution),
|
|
13
13
|
bind(taro_contribution_1.TaroEnvContribution).toSelf().inSingletonScope(), bind(interface_1.EnvContribution).toService(taro_contribution_1.TaroEnvContribution),
|
|
14
14
|
bind(lynx_contribution_1.LynxEnvContribution).toSelf().inSingletonScope(), bind(interface_1.EnvContribution).toService(lynx_contribution_1.LynxEnvContribution),
|
|
15
|
+
bind(node_contribution_1.NodeEnvContribution).toSelf().inSingletonScope(), bind(interface_1.EnvContribution).toService(node_contribution_1.NodeEnvContribution),
|
|
15
16
|
(0, contribution_provider_1.bindContributionProvider)(bind, interface_1.EnvContribution);
|
|
16
17
|
}));
|
|
17
18
|
//# sourceMappingURL=modules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/contributions/env/modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,iFAAiF;AACjF,kDAAqD;AACrD,iEAAgE;AAChE,+DAA8D;AAC9D,2DAA0D;AAC1D,2DAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAExC,IAAI,CAAC,6CAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,6CAAsB,CAAC,CAAC;IAGxD,IAAI,CAAC,2CAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,2CAAqB,CAAC,CAAC;IAGvD,IAAI,CAAC,uCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,uCAAmB,CAAC,CAAC;IAGrD,IAAI,CAAC,uCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,uCAAmB,CAAC,CAAC;IAErD,IAAA,gDAAwB,EAAC,IAAI,EAAE,2BAAe,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { bindContributionProvider } from '../../../common/contribution-provider';\nimport { EnvContribution } from '../../../interface';\nimport { BrowserEnvContribution } from './browser-contribution';\nimport { FeishuEnvContribution } from './feishu-contribution';\nimport { TaroEnvContribution } from './taro-contribution';\nimport { LynxEnvContribution } from './lynx-contribution';\n\nexport default new ContainerModule(bind => {\n // browser\n bind(BrowserEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(BrowserEnvContribution);\n\n // feishu\n bind(FeishuEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(FeishuEnvContribution);\n\n // taro\n bind(TaroEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(TaroEnvContribution);\n\n // lynx\n bind(LynxEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(LynxEnvContribution);\n\n bindContributionProvider(bind, EnvContribution);\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/core/contributions/env/modules.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAC5C,iFAAiF;AACjF,kDAAqD;AACrD,iEAAgE;AAChE,+DAA8D;AAC9D,2DAA0D;AAC1D,2DAA0D;AAC1D,2DAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAExC,IAAI,CAAC,6CAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,6CAAsB,CAAC,CAAC;IAGxD,IAAI,CAAC,2CAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,2CAAqB,CAAC,CAAC;IAGvD,IAAI,CAAC,uCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,uCAAmB,CAAC,CAAC;IAGrD,IAAI,CAAC,uCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,uCAAmB,CAAC,CAAC;IAGrD,IAAI,CAAC,uCAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtD,IAAI,CAAC,2BAAe,CAAC,CAAC,SAAS,CAAC,uCAAmB,CAAC,CAAC;IAErD,IAAA,gDAAwB,EAAC,IAAI,EAAE,2BAAe,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC","file":"modules.js","sourcesContent":["import { ContainerModule } from 'inversify';\nimport { bindContributionProvider } from '../../../common/contribution-provider';\nimport { EnvContribution } from '../../../interface';\nimport { BrowserEnvContribution } from './browser-contribution';\nimport { FeishuEnvContribution } from './feishu-contribution';\nimport { TaroEnvContribution } from './taro-contribution';\nimport { LynxEnvContribution } from './lynx-contribution';\nimport { NodeEnvContribution } from './node-contribution';\n\nexport default new ContainerModule(bind => {\n // browser\n bind(BrowserEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(BrowserEnvContribution);\n\n // feishu\n bind(FeishuEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(FeishuEnvContribution);\n\n // taro\n bind(TaroEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(TaroEnvContribution);\n\n // lynx\n bind(LynxEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(LynxEnvContribution);\n\n // node\n bind(NodeEnvContribution).toSelf().inSingletonScope();\n bind(EnvContribution).toService(NodeEnvContribution);\n\n bindContributionProvider(bind, EnvContribution);\n});\n"]}
|