@visactor/vrender-kits 0.19.1 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/cjs/env/contributions/canvas-wrap.js +1 -2
  2. package/cjs/env/contributions/taro-contribution.js +2 -1
  3. package/cjs/env/contributions/tt-contribution.d.ts +40 -0
  4. package/cjs/env/contributions/tt-contribution.js +128 -0
  5. package/cjs/env/contributions/tt-contribution.js.map +1 -0
  6. package/cjs/env/index.d.ts +1 -0
  7. package/cjs/env/index.js +1 -1
  8. package/cjs/env/index.js.map +1 -1
  9. package/cjs/env/tt.d.ts +7 -0
  10. package/cjs/env/tt.js +24 -0
  11. package/cjs/env/tt.js.map +1 -0
  12. package/cjs/index.d.ts +1 -0
  13. package/cjs/index.js +4 -3
  14. package/cjs/index.js.map +1 -1
  15. package/cjs/jsx/jsx-classic.js +1 -2
  16. package/cjs/picker/canvas-module.js +2 -1
  17. package/cjs/picker/canvas-picker-service.js +3 -2
  18. package/cjs/picker/canvas-picker-service.js.map +1 -1
  19. package/cjs/picker/contributions/constants.js +1 -1
  20. package/cjs/picker/math-picker-service.js +3 -2
  21. package/cjs/picker/math-picker-service.js.map +1 -1
  22. package/cjs/register/register-polygon.js +1 -2
  23. package/cjs/register/register-pyramid3d.js +2 -1
  24. package/cjs/render/contributions/render-module.js +2 -0
  25. package/cjs/window/contributions/tt-contribution.d.ts +46 -0
  26. package/cjs/window/contributions/tt-contribution.js +159 -0
  27. package/cjs/window/contributions/tt-contribution.js.map +1 -0
  28. package/es/env/contributions/canvas-wrap.js +1 -2
  29. package/es/env/contributions/taro-contribution.js +2 -1
  30. package/es/env/contributions/tt-contribution.d.ts +40 -0
  31. package/es/env/contributions/tt-contribution.js +123 -0
  32. package/es/env/contributions/tt-contribution.js.map +1 -0
  33. package/es/env/index.d.ts +1 -0
  34. package/es/env/index.js +2 -0
  35. package/es/env/index.js.map +1 -1
  36. package/es/env/tt.d.ts +7 -0
  37. package/es/env/tt.js +28 -0
  38. package/es/env/tt.js.map +1 -0
  39. package/es/index.d.ts +1 -0
  40. package/es/index.js +2 -0
  41. package/es/index.js.map +1 -1
  42. package/es/jsx/jsx-classic.js +1 -2
  43. package/es/picker/canvas-module.js +2 -1
  44. package/es/picker/canvas-picker-service.js +3 -2
  45. package/es/picker/canvas-picker-service.js.map +1 -1
  46. package/es/picker/contributions/constants.js +1 -1
  47. package/es/picker/math-picker-service.js +3 -2
  48. package/es/picker/math-picker-service.js.map +1 -1
  49. package/es/register/register-polygon.js +1 -2
  50. package/es/register/register-pyramid3d.js +2 -1
  51. package/es/render/contributions/render-module.js +2 -0
  52. package/es/window/contributions/tt-contribution.d.ts +46 -0
  53. package/es/window/contributions/tt-contribution.js +157 -0
  54. package/es/window/contributions/tt-contribution.js.map +1 -0
  55. package/package.json +2 -2
@@ -11,4 +11,5 @@ function _registerPyramid3d() {
11
11
 
12
12
  _registerPyramid3d.__loaded = !1;
13
13
 
14
- export const registerPyramid3d = _registerPyramid3d;
14
+ export const registerPyramid3d = _registerPyramid3d;
15
+ //# sourceMappingURL=register-pyramid3d.js.map
@@ -1 +1,3 @@
1
+
2
+
1
3
  //# sourceMappingURL=render-module.js.map
@@ -0,0 +1,46 @@
1
+ import { BaseWindowHandlerContribution, ContainerModule } from '@visactor/vrender-core';
2
+ import type { EnvType, IGlobal, IContext2d, ICanvas, IDomRectLike, IWindowHandlerContribution, IWindowParams } from '@visactor/vrender-core';
3
+ declare class MiniAppEventManager {
4
+ addEventListener(type: string, func: EventListenerOrEventListenerObject): void;
5
+ removeEventListener(type: string, func: EventListenerOrEventListenerObject): void;
6
+ cleanEvent(): void;
7
+ cache: Record<string, {
8
+ listener: EventListenerOrEventListenerObject[];
9
+ }>;
10
+ }
11
+ export declare class TTWindowHandlerContribution extends BaseWindowHandlerContribution implements IWindowHandlerContribution {
12
+ private readonly global;
13
+ static env: EnvType;
14
+ type: EnvType;
15
+ protected eventManager: MiniAppEventManager;
16
+ canvas: ICanvas;
17
+ get container(): HTMLElement | null;
18
+ constructor(global: IGlobal);
19
+ getTitle(): string;
20
+ getWH(): {
21
+ width: number;
22
+ height: number;
23
+ };
24
+ getXY(): {
25
+ x: number;
26
+ y: number;
27
+ };
28
+ createWindow(params: IWindowParams): void;
29
+ private createWindowByConfig;
30
+ private createWindowByCanvas;
31
+ releaseWindow(): void;
32
+ resizeWindow(width: number, height: number): void;
33
+ setDpr(dpr: number): void;
34
+ getContext(): IContext2d;
35
+ getNativeHandler(): ICanvas;
36
+ getDpr(): number;
37
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
38
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
39
+ dispatchEvent(event: any): boolean;
40
+ getStyle(): CSSStyleDeclaration | Record<string, any>;
41
+ setStyle(style: CSSStyleDeclaration | Record<string, any>): void;
42
+ getBoundingClientRect(): IDomRectLike;
43
+ clearViewBox(color?: string): void;
44
+ }
45
+ export declare const ttWindowModule: ContainerModule;
46
+ export {};
@@ -0,0 +1,157 @@
1
+ var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
2
+ var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
3
+ 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);
4
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
5
+ }, __metadata = this && this.__metadata || function(k, v) {
6
+ if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
7
+ }, __param = this && this.__param || function(paramIndex, decorator) {
8
+ return function(target, key) {
9
+ decorator(target, key, paramIndex);
10
+ };
11
+ };
12
+
13
+ import { inject, injectable, Generator, BaseWindowHandlerContribution, VGlobal, ContainerModule, WindowHandlerContribution } from "@visactor/vrender-core";
14
+
15
+ import { TTCanvas } from "../../canvas/contributions/tt";
16
+
17
+ class MiniAppEventManager {
18
+ constructor() {
19
+ this.cache = {};
20
+ }
21
+ addEventListener(type, func) {
22
+ type && func && (this.cache[type] = this.cache[type] || {
23
+ listener: []
24
+ }, this.cache[type].listener.push(func));
25
+ }
26
+ removeEventListener(type, func) {
27
+ if (!type || !func) return;
28
+ if (!this.cache[type]) return;
29
+ const index = this.cache[type].listener.findIndex((f => f === func));
30
+ index >= 0 && this.cache[type].listener.splice(index, 1);
31
+ }
32
+ cleanEvent() {
33
+ this.cache = {};
34
+ }
35
+ }
36
+
37
+ let TTWindowHandlerContribution = class extends BaseWindowHandlerContribution {
38
+ get container() {
39
+ return null;
40
+ }
41
+ constructor(global) {
42
+ super(), this.global = global, this.type = "tt", this.eventManager = new MiniAppEventManager;
43
+ }
44
+ getTitle() {
45
+ return this.canvas.id.toString();
46
+ }
47
+ getWH() {
48
+ return {
49
+ width: this.canvas.width / (this.canvas.dpr || 1),
50
+ height: this.canvas.height / (this.canvas.dpr || 1)
51
+ };
52
+ }
53
+ getXY() {
54
+ return {
55
+ x: 0,
56
+ y: 0
57
+ };
58
+ }
59
+ createWindow(params) {
60
+ params.canvas ? this.createWindowByCanvas(params) : this.createWindowByConfig(params);
61
+ }
62
+ createWindowByConfig(params) {
63
+ const nativeCanvas = this.global.createCanvas({
64
+ width: params.width,
65
+ height: params.height
66
+ }), options = {
67
+ width: params.width,
68
+ height: params.height,
69
+ dpr: params.dpr,
70
+ nativeCanvas: nativeCanvas,
71
+ id: Generator.GenAutoIncrementId().toString(),
72
+ canvasControled: !1
73
+ };
74
+ this.canvas = new TTCanvas(options);
75
+ }
76
+ createWindowByCanvas(params) {
77
+ let canvas;
78
+ if ("string" == typeof params.canvas) {
79
+ if (canvas = this.global.getElementById(params.canvas), !canvas) throw new Error("canvasId 参数不正确,请确认canvas存在并插入dom");
80
+ } else canvas = params.canvas;
81
+ let width = params.width, height = params.height;
82
+ if (null == width || null == height || !params.canvasControled) {
83
+ const data = canvas.getBoundingClientRect();
84
+ width = data.width, height = data.height;
85
+ }
86
+ let dpr = params.dpr;
87
+ null == dpr && (dpr = canvas.width / width), this.canvas = new TTCanvas({
88
+ width: width,
89
+ height: height,
90
+ dpr: dpr,
91
+ nativeCanvas: canvas,
92
+ canvasControled: params.canvasControled
93
+ });
94
+ }
95
+ releaseWindow() {}
96
+ resizeWindow(width, height) {}
97
+ setDpr(dpr) {
98
+ this.canvas.dpr = dpr;
99
+ }
100
+ getContext() {
101
+ return this.canvas.getContext();
102
+ }
103
+ getNativeHandler() {
104
+ return this.canvas;
105
+ }
106
+ getDpr() {
107
+ return this.canvas.dpr;
108
+ }
109
+ addEventListener(type, listener) {
110
+ this.eventManager.addEventListener(type, listener);
111
+ }
112
+ removeEventListener(type, listener) {
113
+ this.eventManager.removeEventListener(type, listener);
114
+ }
115
+ dispatchEvent(event) {
116
+ const {type: type} = event;
117
+ return !!this.eventManager.cache[type] && (event.changedTouches && event.changedTouches[0] && (event.offsetX = event.changedTouches[0].x,
118
+ event.changedTouches[0].offsetX = event.changedTouches[0].x, event.changedTouches[0].clientX = event.changedTouches[0].x,
119
+ event.offsetY = event.changedTouches[0].y, event.changedTouches[0].offsetY = event.changedTouches[0].y,
120
+ event.changedTouches[0].clientY = event.changedTouches[0].y), event.preventDefault = () => {},
121
+ event.stopPropagation = () => {}, this.eventManager.cache[type].listener && this.eventManager.cache[type].listener.forEach((f => {
122
+ f(event);
123
+ })), !0);
124
+ }
125
+ getStyle() {
126
+ return {};
127
+ }
128
+ setStyle(style) {}
129
+ getBoundingClientRect() {
130
+ const wh = this.getWH();
131
+ return {
132
+ x: 0,
133
+ y: 0,
134
+ width: wh.width,
135
+ height: wh.height,
136
+ left: 0,
137
+ top: 0,
138
+ right: 0,
139
+ bottom: 0
140
+ };
141
+ }
142
+ clearViewBox(color) {
143
+ const vb = this.viewBox, context = this.getContext(), dpr = this.getDpr();
144
+ context.nativeContext.save(), context.nativeContext.setTransform(dpr, 0, 0, dpr, 0, 0),
145
+ context.clearRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1), color && (context.fillStyle = color,
146
+ context.fillRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1)), context.nativeContext.restore();
147
+ }
148
+ };
149
+
150
+ TTWindowHandlerContribution.env = "tt", TTWindowHandlerContribution = __decorate([ injectable(), __param(0, inject(VGlobal)), __metadata("design:paramtypes", [ Object ]) ], TTWindowHandlerContribution);
151
+
152
+ export { TTWindowHandlerContribution };
153
+
154
+ export const ttWindowModule = new ContainerModule((bind => {
155
+ bind(TTWindowHandlerContribution).toSelf(), bind(WindowHandlerContribution).toDynamicValue((ctx => ctx.container.get(TTWindowHandlerContribution))).whenTargetNamed(TTWindowHandlerContribution.env);
156
+ }));
157
+ //# sourceMappingURL=tt-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/window/contributions/tt-contribution.ts"],"names":[],"mappings":"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","file":"tt-contribution.js","sourcesContent":["import {\n inject,\n injectable,\n Generator,\n BaseWindowHandlerContribution,\n VGlobal,\n ContainerModule,\n WindowHandlerContribution\n} from '@visactor/vrender-core';\nimport type {\n EnvType,\n IGlobal,\n IContext2d,\n ICanvas,\n IDomRectLike,\n IWindowHandlerContribution,\n IWindowParams\n} from '@visactor/vrender-core';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport { TTCanvas } from '../../canvas/contributions/tt';\n\nclass MiniAppEventManager {\n addEventListener(type: string, func: EventListenerOrEventListenerObject) {\n if (!type || !func) {\n return;\n }\n this.cache[type] = this.cache[type] || {\n listener: []\n };\n this.cache[type].listener.push(func);\n }\n removeEventListener(type: string, func: EventListenerOrEventListenerObject) {\n if (!type || !func) {\n return;\n }\n if (!this.cache[type]) {\n return;\n }\n const index = this.cache[type].listener.findIndex((f: EventListenerOrEventListenerObject) => f === func);\n if (index >= 0) {\n this.cache[type].listener.splice(index, 1);\n }\n }\n cleanEvent() {\n this.cache = {};\n }\n cache: Record<string, { listener: EventListenerOrEventListenerObject[] }> = {};\n}\n\n@injectable()\nexport class TTWindowHandlerContribution extends BaseWindowHandlerContribution implements IWindowHandlerContribution {\n static env: EnvType = 'tt';\n type: EnvType = 'tt';\n\n protected eventManager = new MiniAppEventManager();\n\n canvas: ICanvas;\n get container(): HTMLElement | null {\n return null;\n }\n\n constructor(@inject(VGlobal) private readonly global: IGlobal) {\n super();\n }\n\n getTitle(): string {\n return this.canvas.id.toString();\n }\n\n getWH(): { width: number; height: number } {\n return {\n width: this.canvas.width / (this.canvas.dpr || 1),\n height: this.canvas.height / (this.canvas.dpr || 1)\n };\n }\n\n getXY(): { x: number; y: number } {\n return { x: 0, y: 0 };\n }\n\n createWindow(params: IWindowParams): void {\n // 如果没有传入canvas,那么就创建一个canvas\n if (!params.canvas) {\n this.createWindowByConfig(params);\n } else {\n this.createWindowByCanvas(params);\n }\n }\n private createWindowByConfig(params: IWindowParams) {\n // 创建canvas\n const nativeCanvas = this.global.createCanvas({\n width: params.width,\n height: params.height\n });\n\n // 绑定\n const options = {\n width: params.width,\n height: params.height,\n dpr: params.dpr,\n nativeCanvas,\n id: Generator.GenAutoIncrementId().toString(),\n canvasControled: false\n };\n this.canvas = new TTCanvas(options);\n }\n private createWindowByCanvas(params: IWindowParams) {\n // 获取canvas\n let canvas: HTMLCanvasElement | null;\n if (typeof params.canvas === 'string') {\n canvas = this.global.getElementById(params.canvas) as HTMLCanvasElement | null;\n if (!canvas) {\n throw new Error('canvasId 参数不正确,请确认canvas存在并插入dom');\n }\n } else {\n canvas = params!.canvas as HTMLCanvasElement | null;\n }\n\n // 如果没有传入wh,或者是不受控制的canvas,那就用canvas的原始wh\n let width = params.width;\n let height = params.height;\n if (width == null || height == null || !params.canvasControled) {\n const data = canvas.getBoundingClientRect();\n width = data.width;\n height = data.height;\n }\n // 如果没有dpr,就使用canvas的原始dpr\n let dpr = params.dpr;\n if (dpr == null) {\n dpr = canvas.width / width;\n }\n this.canvas = new TTCanvas({\n width: width,\n height: height,\n dpr: dpr,\n nativeCanvas: canvas,\n canvasControled: params.canvasControled\n });\n }\n releaseWindow(): void {\n return;\n }\n resizeWindow(width: number, height: number): void {\n return;\n }\n setDpr(dpr: number): void {\n this.canvas.dpr = dpr;\n }\n\n getContext(): IContext2d {\n return this.canvas.getContext();\n }\n getNativeHandler(): ICanvas {\n return this.canvas;\n }\n getDpr(): number {\n return this.canvas.dpr;\n }\n\n addEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject): void {\n this.eventManager.addEventListener(type, listener);\n }\n removeEventListener<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject): void {\n this.eventManager.removeEventListener(type, listener);\n }\n dispatchEvent(event: any): boolean {\n const { type } = event;\n if (!this.eventManager.cache[type]) {\n return false;\n }\n\n // hack for offsetX offsetY\n if (event.changedTouches && event.changedTouches[0]) {\n event.offsetX = event.changedTouches[0].x;\n event.changedTouches[0].offsetX = event.changedTouches[0].x;\n event.changedTouches[0].clientX = event.changedTouches[0].x;\n event.offsetY = event.changedTouches[0].y;\n event.changedTouches[0].offsetY = event.changedTouches[0].y;\n event.changedTouches[0].clientY = event.changedTouches[0].y;\n }\n event.preventDefault = () => {\n return;\n };\n event.stopPropagation = () => {\n return;\n };\n if (this.eventManager.cache[type].listener) {\n this.eventManager.cache[type].listener.forEach((f: EventListener) => {\n f(event);\n });\n }\n return true;\n }\n\n getStyle(): CSSStyleDeclaration | Record<string, any> {\n return {};\n }\n setStyle(style: CSSStyleDeclaration | Record<string, any>) {\n return;\n }\n\n getBoundingClientRect(): IDomRectLike {\n const wh = this.getWH();\n return {\n x: 0,\n y: 0,\n width: wh.width,\n height: wh.height,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n }\n\n clearViewBox(color?: string): void {\n const vb = this.viewBox;\n const context = this.getContext();\n const dpr = this.getDpr();\n context.nativeContext.save();\n (context.nativeContext as CanvasRenderingContext2D).setTransform(dpr, 0, 0, dpr, 0, 0);\n context.clearRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n if (color) {\n context.fillStyle = color;\n context.fillRect(vb.x1, vb.y1, vb.x2 - vb.x1, vb.y2 - vb.y1);\n }\n context.nativeContext.restore();\n }\n}\n\nexport const ttWindowModule = new ContainerModule(bind => {\n // tt\n bind(TTWindowHandlerContribution).toSelf();\n bind(WindowHandlerContribution)\n .toDynamicValue(ctx => ctx.container.get(TTWindowHandlerContribution))\n .whenTargetNamed(TTWindowHandlerContribution.env);\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vrender-kits",
3
- "version": "0.19.1",
3
+ "version": "0.19.2",
4
4
  "description": "",
5
5
  "sideEffects": false,
6
6
  "main": "cjs/index.js",
@@ -12,7 +12,7 @@
12
12
  "dist"
13
13
  ],
14
14
  "dependencies": {
15
- "@visactor/vrender-core": "0.19.1",
15
+ "@visactor/vrender-core": "0.19.2",
16
16
  "@visactor/vutils": "~0.18.4",
17
17
  "@resvg/resvg-js": "2.4.1",
18
18
  "roughjs": "4.5.2"