@visactor/vrender-core 1.1.0-alpha.22 → 1.1.0-alpha.23

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 (81) hide show
  1. package/cjs/canvas/constants.js +1 -2
  2. package/cjs/canvas/empty-context.js +2 -1
  3. package/cjs/common/Reflect-metadata.js +1 -1
  4. package/cjs/common/bezier-utils.js +1 -1
  5. package/cjs/common/bounds-context.js +1 -1
  6. package/cjs/common/canvas-utils.js +1 -1
  7. package/cjs/common/color-utils.js +1 -1
  8. package/cjs/common/contribution-provider.js +1 -1
  9. package/cjs/common/custom-path2d.js +1 -1
  10. package/cjs/common/diff.js +1 -1
  11. package/cjs/common/enums.js +1 -1
  12. package/cjs/common/event-listener-manager.js +1 -1
  13. package/cjs/common/event-transformer.js +1 -2
  14. package/cjs/common/explicit-binding.js +1 -1
  15. package/cjs/common/generator.js +1 -1
  16. package/cjs/common/matrix.js +1 -1
  17. package/cjs/common/morphing-utils.js +1 -1
  18. package/cjs/common/path-svg.js +1 -1
  19. package/cjs/common/performance-raf.js +1 -1
  20. package/cjs/common/polygon.js +2 -2
  21. package/cjs/entries/app-context.js +1 -1
  22. package/cjs/entries/browser.js +1 -1
  23. package/cjs/entries/index.js +1 -1
  24. package/cjs/entries/miniapp.js +1 -1
  25. package/cjs/entries/node.js +1 -1
  26. package/cjs/entries/runtime-installer.js +1 -1
  27. package/cjs/entries/types.js +1 -1
  28. package/cjs/event/constant.js +1 -1
  29. package/cjs/event/event-manager.js +1 -1
  30. package/cjs/event/event-system.js +1 -1
  31. package/cjs/event/event-target.js +1 -1
  32. package/cjs/event/index.js +2 -1
  33. package/cjs/event/util.js +1 -1
  34. package/cjs/factory/graphic-factory.js +1 -1
  35. package/cjs/factory/index.js +1 -1
  36. package/cjs/factory/layer-factory.js +1 -1
  37. package/cjs/factory/stage-factory.js +1 -1
  38. package/cjs/factory/types.js +1 -1
  39. package/cjs/interface/global.d.ts +8 -4
  40. package/cjs/interface/global.js.map +1 -1
  41. package/es/canvas/constants.js +1 -2
  42. package/es/canvas/empty-context.js +2 -1
  43. package/es/common/Reflect-metadata.js +1 -1
  44. package/es/common/bezier-utils.js +1 -1
  45. package/es/common/bounds-context.js +1 -1
  46. package/es/common/canvas-utils.js +1 -1
  47. package/es/common/color-utils.js +1 -1
  48. package/es/common/contribution-provider.js +1 -1
  49. package/es/common/custom-path2d.js +1 -1
  50. package/es/common/diff.js +1 -1
  51. package/es/common/enums.js +1 -1
  52. package/es/common/event-listener-manager.js +1 -1
  53. package/es/common/event-transformer.js +1 -2
  54. package/es/common/explicit-binding.js +1 -1
  55. package/es/common/generator.js +1 -1
  56. package/es/common/matrix.js +1 -1
  57. package/es/common/morphing-utils.js +1 -1
  58. package/es/common/path-svg.js +1 -1
  59. package/es/common/performance-raf.js +1 -1
  60. package/es/common/polygon.js +1 -1
  61. package/es/entries/app-context.js +1 -1
  62. package/es/entries/browser.js +1 -1
  63. package/es/entries/index.js +1 -1
  64. package/es/entries/miniapp.js +1 -1
  65. package/es/entries/node.js +1 -1
  66. package/es/entries/runtime-installer.js +1 -1
  67. package/es/entries/types.js +1 -1
  68. package/es/event/constant.js +1 -1
  69. package/es/event/event-manager.js +1 -1
  70. package/es/event/event-system.js +1 -1
  71. package/es/event/event-target.js +1 -1
  72. package/es/event/index.js +2 -1
  73. package/es/event/util.js +1 -1
  74. package/es/factory/graphic-factory.js +1 -1
  75. package/es/factory/index.js +1 -1
  76. package/es/factory/layer-factory.js +1 -1
  77. package/es/factory/stage-factory.js +1 -1
  78. package/es/factory/types.js +1 -1
  79. package/es/interface/global.d.ts +8 -4
  80. package/es/interface/global.js.map +1 -1
  81. package/package.json +1 -1
@@ -3,5 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.Context2dFactory = exports.CanvasFactory = void 0, exports.CanvasFactory = Symbol.for("CanvasFactory"),
6
- exports.Context2dFactory = Symbol.for("Context2dFactory");
7
- //# sourceMappingURL=constants.js.map
6
+ exports.Context2dFactory = Symbol.for("Context2dFactory");
@@ -204,4 +204,5 @@ class EmptyContext2d {
204
204
  }
205
205
  }
206
206
 
207
- exports.EmptyContext2d = EmptyContext2d;
207
+ exports.EmptyContext2d = EmptyContext2d;
208
+ //# sourceMappingURL=empty-context.js.map
@@ -179,4 +179,4 @@ Object.defineProperty(exports, "__esModule", {
179
179
  }), previous && previous(key, value);
180
180
  })), Reflect;
181
181
  }({});
182
- //# sourceMappingURL=Reflect-metadata.js.map
182
+ //# sourceMappingURL=Reflect-metadata.js.map
@@ -47,4 +47,4 @@ function quadLength(p0, p1, p2, iterationCount) {
47
47
  exports.snapLength = snapLength, exports.cubicLength = cubicLength, exports.cubicCalc = cubicCalc,
48
48
  exports.cubicPointAt = cubicPointAt, exports.quadCalc = quadCalc, exports.quadPointAt = quadPointAt,
49
49
  exports.quadLength = quadLength;
50
- //# sourceMappingURL=bezier-utils.js.map
50
+ //# sourceMappingURL=bezier-utils.js.map
@@ -57,4 +57,4 @@ class BoundsContext {
57
57
  }
58
58
 
59
59
  exports.BoundsContext = BoundsContext;
60
- //# sourceMappingURL=bounds-context.js.map
60
+ //# sourceMappingURL=bounds-context.js.map
@@ -57,5 +57,5 @@ function createConicGradient(context, color, x, y, w, h) {
57
57
  })), canvasGradient.GetPattern ? canvasGradient.GetPattern(w + x, h + y, undefined) : canvasGradient;
58
58
  }
59
59
 
60
- exports.getScaledStroke = getScaledStroke, exports.createColor = createColor;
61
60
  //# sourceMappingURL=canvas-utils.js.map
61
+ exports.getScaledStroke = getScaledStroke, exports.createColor = createColor;
@@ -245,4 +245,4 @@ class GradientParser {
245
245
  }
246
246
 
247
247
  exports.GradientParser = GradientParser;
248
- //# sourceMappingURL=color-utils.js.map
248
+ //# sourceMappingURL=color-utils.js.map
@@ -48,4 +48,4 @@ class ContributionStore {
48
48
  }
49
49
 
50
50
  exports.ContributionStore = ContributionStore, ContributionStore.store = new Map;
51
- //# sourceMappingURL=contribution-provider.js.map
51
+ //# sourceMappingURL=contribution-provider.js.map
@@ -368,4 +368,4 @@ function scale(current, sX, sY) {
368
368
  temp[7] = sY * current[7]; else if ("h" === c || "H" === c) temp[1] = sX * current[1]; else if ("v" === c || "V" === c) temp[1] = sY * current[1]; else for (let i = 1, n = current.length; i < n; ++i) temp[i] = (i % 2 == 1 ? sX : sY) * current[i];
369
369
  return temp;
370
370
  }
371
- //# sourceMappingURL=custom-path2d.js.map
371
+ //# sourceMappingURL=custom-path2d.js.map
@@ -17,4 +17,4 @@ function diff(oldAttrs, newAttrs, getAttr) {
17
17
  }
18
18
 
19
19
  exports.diff = diff;
20
- //# sourceMappingURL=diff.js.map
20
+ //# sourceMappingURL=diff.js.map
@@ -38,4 +38,4 @@ function(Direction) {
38
38
  BaseRenderContributionTime[BaseRenderContributionTime.beforeFillStroke = 0] = "beforeFillStroke",
39
39
  BaseRenderContributionTime[BaseRenderContributionTime.afterFillStroke = 1] = "afterFillStroke";
40
40
  }(BaseRenderContributionTime = exports.BaseRenderContributionTime || (exports.BaseRenderContributionTime = {}));
41
- //# sourceMappingURL=enums.js.map
41
+ //# sourceMappingURL=enums.js.map
@@ -79,4 +79,4 @@ class EventListenerManager {
79
79
  }
80
80
 
81
81
  exports.EventListenerManager = EventListenerManager;
82
- //# sourceMappingURL=event-listener-manager.js.map
82
+ //# sourceMappingURL=event-listener-manager.js.map
@@ -123,5 +123,4 @@ function mapToCanvasPointForCanvas(nativeEvent) {
123
123
 
124
124
  exports.createEventTransformer = createEventTransformer, exports.createCanvasEventTransformer = createCanvasEventTransformer,
125
125
  exports.registerWindowEventTransformer = registerWindowEventTransformer, exports.registerGlobalEventTransformer = registerGlobalEventTransformer,
126
- exports.transformPointForCanvas = transformPointForCanvas, exports.mapToCanvasPointForCanvas = mapToCanvasPointForCanvas;
127
- //# sourceMappingURL=event-transformer.js.map
126
+ exports.transformPointForCanvas = transformPointForCanvas, exports.mapToCanvasPointForCanvas = mapToCanvasPointForCanvas;
@@ -13,4 +13,4 @@ function resolveContainerBinding(container, serviceIdentifier) {
13
13
  Object.defineProperty(exports, "__esModule", {
14
14
  value: !0
15
15
  }), exports.resolveContainerBinding = void 0, exports.resolveContainerBinding = resolveContainerBinding;
16
- //# sourceMappingURL=explicit-binding.js.map
16
+ //# sourceMappingURL=explicit-binding.js.map
@@ -11,4 +11,4 @@ class Generator {
11
11
  }
12
12
 
13
13
  exports.Generator = Generator, Generator.auto_increment_id = 0;
14
- //# sourceMappingURL=generator.js.map
14
+ //# sourceMappingURL=generator.js.map
@@ -129,4 +129,4 @@ exports.identityMat4 = identityMat4, exports.rotateX = rotateX, exports.rotateY
129
129
  exports.rotateZ = rotateZ, exports.translate = translate, exports.mat3Tomat4 = mat3Tomat4,
130
130
  exports.multiplyMat4Mat3 = multiplyMat4Mat3, exports.scaleMat4 = scaleMat4, exports.multiplyMat4Mat4 = multiplyMat4Mat4,
131
131
  exports.lookAt = lookAt, exports.ortho = ortho, exports.transformMat4 = transformMat4;
132
- //# sourceMappingURL=matrix.js.map
132
+ //# sourceMappingURL=matrix.js.map
@@ -200,4 +200,4 @@ exports.cubicSubdivide = cubicSubdivide, exports.alignSubpath = alignSubpath, ex
200
200
  exports.findBestMorphingRotation = findBestMorphingRotation, exports.alignBezierCurves = alignBezierCurves,
201
201
  exports.pathToBezierCurves = pathToBezierCurves, exports.applyTransformOnBezierCurves = applyTransformOnBezierCurves,
202
202
  exports.bezierCurversToPath = bezierCurversToPath;
203
- //# sourceMappingURL=morphing-utils.js.map
203
+ //# sourceMappingURL=morphing-utils.js.map
@@ -61,4 +61,4 @@ exports.enumCommandMap = {
61
61
  Q: 7,
62
62
  R: 8
63
63
  }, exports.parseSvgPath = parseSvgPath;
64
- //# sourceMappingURL=path-svg.js.map
64
+ //# sourceMappingURL=path-svg.js.map
@@ -34,4 +34,4 @@ class PerformanceRAF {
34
34
  }
35
35
 
36
36
  exports.PerformanceRAF = PerformanceRAF;
37
- //# sourceMappingURL=performance-raf.js.map
37
+ //# sourceMappingURL=performance-raf.js.map
@@ -41,8 +41,8 @@ function getProportionPoint(point, segment, length, dx, dy) {
41
41
  };
42
42
  }
43
43
 
44
+ //# sourceMappingURL=polygon.js.map
44
45
  Object.defineProperty(exports, "__esModule", {
45
46
  value: !0
46
47
  }), exports.drawRoundedPolygon = exports.drawPolygon = void 0, exports.drawPolygon = drawPolygon,
47
- exports.drawRoundedPolygon = drawRoundedPolygon;
48
- //# sourceMappingURL=polygon.js.map
48
+ exports.drawRoundedPolygon = drawRoundedPolygon;
@@ -81,4 +81,4 @@ class AppContext {
81
81
  }
82
82
 
83
83
  exports.AppContext = AppContext;
84
- //# sourceMappingURL=app-context.js.map
84
+ //# sourceMappingURL=app-context.js.map
@@ -41,4 +41,4 @@ function createBrowserApp(options = {}) {
41
41
  }
42
42
 
43
43
  exports.BrowserEntry = BrowserEntry, exports.createBrowserApp = createBrowserApp;
44
- //# sourceMappingURL=browser.js.map
44
+ //# sourceMappingURL=browser.js.map
@@ -29,4 +29,4 @@ Object.defineProperty(exports, "createApp", {
29
29
  return browser_1.createBrowserApp;
30
30
  }
31
31
  });
32
- //# sourceMappingURL=index.js.map
32
+ //# sourceMappingURL=index.js.map
@@ -17,4 +17,4 @@ function createMiniappApp(options = {}) {
17
17
  }
18
18
 
19
19
  exports.MiniappEntry = MiniappEntry, exports.createMiniappApp = createMiniappApp;
20
- //# sourceMappingURL=miniapp.js.map
20
+ //# sourceMappingURL=miniapp.js.map
@@ -17,4 +17,4 @@ function createNodeApp(options = {}) {
17
17
  }
18
18
 
19
19
  exports.NodeEntry = NodeEntry, exports.createNodeApp = createNodeApp;
20
- //# sourceMappingURL=node.js.map
20
+ //# sourceMappingURL=node.js.map
@@ -108,4 +108,4 @@ exports.getRuntimeInstallerGlobal = getRuntimeInstallerGlobal, exports.configure
108
108
  exports.installRuntimeGraphicRenderersToApp = installRuntimeGraphicRenderersToApp,
109
109
  exports.installRuntimeDrawContributionsToApp = installRuntimeDrawContributionsToApp,
110
110
  exports.installRuntimePickersToApp = installRuntimePickersToApp;
111
- //# sourceMappingURL=runtime-installer.js.map
111
+ //# sourceMappingURL=runtime-installer.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- //# sourceMappingURL=types.js.map
6
+ //# sourceMappingURL=types.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.WILDCARD = void 0, exports.WILDCARD = "*";
6
- //# sourceMappingURL=constant.js.map
6
+ //# sourceMappingURL=constant.js.map
@@ -299,4 +299,4 @@ class EventManager {
299
299
  }
300
300
 
301
301
  exports.EventManager = EventManager;
302
- //# sourceMappingURL=event-manager.js.map
302
+ //# sourceMappingURL=event-manager.js.map
@@ -218,4 +218,4 @@ class EventSystem {
218
218
  }
219
219
 
220
220
  exports.EventSystem = EventSystem;
221
- //# sourceMappingURL=event-system.js.map
221
+ //# sourceMappingURL=event-system.js.map
@@ -18,4 +18,4 @@ exports.EventTarget = {
18
18
  return this.dispatchEvent(new federated_event_1.CustomEvent(eventName, object));
19
19
  }
20
20
  };
21
- //# sourceMappingURL=event-target.js.map
21
+ //# sourceMappingURL=event-target.js.map
@@ -20,4 +20,5 @@ Object.defineProperty(exports, "__esModule", {
20
20
  }), __exportStar(require("./federated-event"), exports), __exportStar(require("./event-manager"), exports),
21
21
  __exportStar(require("./event-target"), exports), __exportStar(require("./event-system"), exports),
22
22
  __exportStar(require("../interface/event"), exports), __exportStar(require("./util"), exports),
23
- __exportStar(require("./constant"), exports);
23
+ __exportStar(require("./constant"), exports);
24
+ //# sourceMappingURL=index.js.map
package/cjs/event/util.js CHANGED
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.clock = void 0, exports.clock = "object" == typeof performance && performance.now ? performance : Date;
6
- //# sourceMappingURL=util.js.map
6
+ //# sourceMappingURL=util.js.map
@@ -20,4 +20,4 @@ class GraphicFactory {
20
20
  }
21
21
 
22
22
  exports.GraphicFactory = GraphicFactory;
23
- //# sourceMappingURL=graphic-factory.js.map
23
+ //# sourceMappingURL=graphic-factory.js.map
@@ -19,4 +19,4 @@ Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), __exportStar(require("./types"), exports), __exportStar(require("./stage-factory"), exports),
21
21
  __exportStar(require("./layer-factory"), exports), __exportStar(require("./graphic-factory"), exports);
22
- //# sourceMappingURL=index.js.map
22
+ //# sourceMappingURL=index.js.map
@@ -16,4 +16,4 @@ class LayerFactory {
16
16
  }
17
17
 
18
18
  exports.LayerFactory = LayerFactory;
19
- //# sourceMappingURL=layer-factory.js.map
19
+ //# sourceMappingURL=layer-factory.js.map
@@ -17,4 +17,4 @@ class StageFactory {
17
17
  }
18
18
 
19
19
  exports.StageFactory = StageFactory;
20
- //# sourceMappingURL=stage-factory.js.map
20
+ //# sourceMappingURL=stage-factory.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- //# sourceMappingURL=types.js.map
6
+ //# sourceMappingURL=types.js.map
@@ -1,4 +1,4 @@
1
- import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';
1
+ import type { IAABBBoundsLike, IPointLike } from '@visactor/vutils';
2
2
  import type { ICanvasLike } from './canvas';
3
3
  import type { IEventElement } from './common';
4
4
  import type { IContribution } from './contribution';
@@ -76,11 +76,15 @@ export interface IEnvContribution extends IContribution<IGlobal>, Omit<IEventEle
76
76
  copyToClipBoard: (text: string) => Promise<void>;
77
77
  }
78
78
  export type IMiniAppEnvParams = {
79
- domref?: Dict<any>;
80
79
  force?: boolean;
81
- canvasIdLists?: (string | number)[];
82
- freeCanvasIdx?: string | number;
83
80
  taro?: any;
81
+ canvasFactory?: (options: {
82
+ id?: string;
83
+ width: number;
84
+ height: number;
85
+ dpr: number;
86
+ offscreen: boolean;
87
+ }) => any;
84
88
  pixelRatio?: number;
85
89
  [key: string]: any;
86
90
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/global.ts"],"names":[],"mappings":"","file":"global.js","sourcesContent":["import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICanvasLike } from './canvas';\nimport type { IEventElement } from './common';\nimport type { IContribution } from './contribution';\nimport type { ISyncHook } from './sync-hook';\nimport type { PerformanceRAF } from '../common/performance-raf';\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\n// 环境定义\nexport type EnvType = 'browser' | 'feishu' | 'tt' | 'taro' | 'node' | 'native' | 'lynx' | 'wx' | 'harmony';\n\n// 创建canvas需要的参数\nexport interface ICreateCanvasParams {\n id?: string;\n // 像素宽\n width?: number;\n // 像素高\n height?: number;\n dpr?: number;\n}\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\nexport interface IEnvContribution\n extends IContribution<IGlobal>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n type: EnvType;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 开始配置环境,相当于init\n configure: (global: IGlobal, ...p: any) => void;\n\n // 创建销毁\n createCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n releaseCanvas: (canvas: ICanvasLike | string | any) => void;\n\n getNativeAABBBounds: (dom: string | HTMLElement | any) => IAABBBoundsLike;\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n // 设备信息\n getDevicePixelRatio: () => number;\n\n // 通用接口\n getRequestAnimationFrame: () => (callback: FrameRequestCallback) => number;\n getCancelAnimationFrame: () => (h: number) => void;\n\n // DOM接口\n getElementById?: (str: string) => HTMLElement | null;\n getRootElement?: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument?: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint?: (event: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n // @since 0.21.3\n /**\n * 加载字体,参数对应Font类\n * @param font 字体名\n * @param source 数据源\n * @param descriptors 其他描述\n * @returns\n */\n loadFont: (\n font: string,\n source: string | any,\n descriptors?: FontFaceDescriptors\n ) => Promise<{\n loadState: 'success' | 'fail';\n }>;\n\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n}\n\nexport type IMiniAppEnvParams = {\n /** dom 容器对象 */\n domref?: Dict<any>;\n /**\n * 强行设置env,如果env重复设置也设置\n */\n force?: boolean;\n /**\n * 可用的canvas列表\n */\n canvasIdLists?: (string | number)[];\n /**\n * 表示可以自由使用的canvas索引\n */\n freeCanvasIdx?: string | number;\n /** taro 环境使用 */\n taro?: any;\n pixelRatio?: number;\n [key: string]: any;\n};\n\nexport interface IEnvParamsMap {\n readonly taro: IMiniAppEnvParams;\n readonly feishu: IMiniAppEnvParams;\n readonly tt: IMiniAppEnvParams;\n readonly browser: any;\n readonly node: any;\n readonly native: any;\n readonly lynx: any;\n readonly wx: any;\n readonly harmony: any;\n}\n\nexport type CreateDOMParamsType = {\n tagName?: string;\n width?: number;\n height?: number;\n style?: string | Record<string, any>;\n parent?: string | HTMLElement;\n};\nexport interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n env: EnvType;\n\n // 设备的dpr\n devicePixelRatio: number;\n\n // 当设置env的时候被调用\n hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n // 设置env的时候传入的参数\n // node环境需要传入整个node-canvas包\n // 小程序环境需要传入小程序要用到的参数\n envParams?: any;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;\n setActiveEnvContribution: (contribution: IEnvContribution) => void;\n createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n releaseCanvas: (canvas: HTMLCanvasElement | string | any) => void;\n setEventListenerTransformer: (transformer: (event: Event) => Event) => void;\n\n /**\n * 获取环境中最大动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n isChrome: () => boolean;\n isSafari: () => boolean;\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n\n /**\n * 获取环境中最大静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n /* 浏览器环境 - dom tree */\n getElementById: (str: string) => HTMLElement | null;\n getRootElement: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n /**\n * 测量文字的方法\n */\n measureTextMethod: 'native' | 'simple' | 'quick';\n\n getRequestAnimationFrame: () => null | ((callback: FrameRequestCallback) => number);\n getCancelAnimationFrame: () => null | ((h: number) => void);\n getSpecifiedRequestAnimationFrame: (id: number) => (callback: FrameRequestCallback) => number;\n getSpecifiedCancelAnimationFrame: (id: number) => (h: number) => void;\n getSpecifiedPerformanceRAF: (id: number) => PerformanceRAF;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n isImageAnonymous: boolean;\n}\n"]}
1
+ {"version":3,"sources":["../src/interface/global.ts"],"names":[],"mappings":"","file":"global.js","sourcesContent":["import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICanvasLike } from './canvas';\nimport type { IEventElement } from './common';\nimport type { IContribution } from './contribution';\nimport type { ISyncHook } from './sync-hook';\nimport type { PerformanceRAF } from '../common/performance-raf';\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\n// 环境定义\nexport type EnvType = 'browser' | 'feishu' | 'tt' | 'taro' | 'node' | 'native' | 'lynx' | 'wx' | 'harmony';\n\n// 创建canvas需要的参数\nexport interface ICreateCanvasParams {\n id?: string;\n // 像素宽\n width?: number;\n // 像素高\n height?: number;\n dpr?: number;\n}\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\nexport interface IEnvContribution\n extends IContribution<IGlobal>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n type: EnvType;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 开始配置环境,相当于init\n configure: (global: IGlobal, ...p: any) => void;\n\n // 创建销毁\n createCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n releaseCanvas: (canvas: ICanvasLike | string | any) => void;\n\n getNativeAABBBounds: (dom: string | HTMLElement | any) => IAABBBoundsLike;\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n // 设备信息\n getDevicePixelRatio: () => number;\n\n // 通用接口\n getRequestAnimationFrame: () => (callback: FrameRequestCallback) => number;\n getCancelAnimationFrame: () => (h: number) => void;\n\n // DOM接口\n getElementById?: (str: string) => HTMLElement | null;\n getRootElement?: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument?: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint?: (event: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n // @since 0.21.3\n /**\n * 加载字体,参数对应Font类\n * @param font 字体名\n * @param source 数据源\n * @param descriptors 其他描述\n * @returns\n */\n loadFont: (\n font: string,\n source: string | any,\n descriptors?: FontFaceDescriptors\n ) => Promise<{\n loadState: 'success' | 'fail';\n }>;\n\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n}\n\nexport type IMiniAppEnvParams = {\n /**\n * 强行设置env,如果env重复设置也设置\n */\n force?: boolean;\n /** taro 环境使用 */\n taro?: any;\n /** app 级 canvas 工厂,必须能为该 app 下任意 stage canvas 参数创建宿主 canvas */\n canvasFactory?: (options: { id?: string; width: number; height: number; dpr: number; offscreen: boolean }) => any;\n pixelRatio?: number;\n [key: string]: any;\n};\n\nexport interface IEnvParamsMap {\n readonly taro: IMiniAppEnvParams;\n readonly feishu: IMiniAppEnvParams;\n readonly tt: IMiniAppEnvParams;\n readonly browser: any;\n readonly node: any;\n readonly native: any;\n readonly lynx: any;\n readonly wx: any;\n readonly harmony: any;\n}\n\nexport type CreateDOMParamsType = {\n tagName?: string;\n width?: number;\n height?: number;\n style?: string | Record<string, any>;\n parent?: string | HTMLElement;\n};\nexport interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n env: EnvType;\n\n // 设备的dpr\n devicePixelRatio: number;\n\n // 当设置env的时候被调用\n hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n // 设置env的时候传入的参数\n // node环境需要传入整个node-canvas包\n // 小程序环境需要传入小程序要用到的参数\n envParams?: any;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;\n setActiveEnvContribution: (contribution: IEnvContribution) => void;\n createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n releaseCanvas: (canvas: HTMLCanvasElement | string | any) => void;\n setEventListenerTransformer: (transformer: (event: Event) => Event) => void;\n\n /**\n * 获取环境中最大动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n isChrome: () => boolean;\n isSafari: () => boolean;\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n\n /**\n * 获取环境中最大静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n /* 浏览器环境 - dom tree */\n getElementById: (str: string) => HTMLElement | null;\n getRootElement: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n /**\n * 测量文字的方法\n */\n measureTextMethod: 'native' | 'simple' | 'quick';\n\n getRequestAnimationFrame: () => null | ((callback: FrameRequestCallback) => number);\n getCancelAnimationFrame: () => null | ((h: number) => void);\n getSpecifiedRequestAnimationFrame: (id: number) => (callback: FrameRequestCallback) => number;\n getSpecifiedCancelAnimationFrame: (id: number) => (h: number) => void;\n getSpecifiedPerformanceRAF: (id: number) => PerformanceRAF;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n isImageAnonymous: boolean;\n}\n"]}
@@ -1,4 +1,3 @@
1
1
  export const CanvasFactory = Symbol.for("CanvasFactory");
2
2
 
3
- export const Context2dFactory = Symbol.for("Context2dFactory");
4
- //# sourceMappingURL=constants.js.map
3
+ export const Context2dFactory = Symbol.for("Context2dFactory");
@@ -205,4 +205,5 @@ export class EmptyContext2d {
205
205
  release(...params) {
206
206
  this.stack.forEach((m => matrixAllocate.free(m))), this.stack.length = 0;
207
207
  }
208
- }
208
+ }
209
+ //# sourceMappingURL=empty-context.js.map
@@ -175,4 +175,4 @@ export default (function(Reflect) {
175
175
  }), previous && previous(key, value);
176
176
  })), Reflect;
177
177
  }({}));
178
- //# sourceMappingURL=Reflect-metadata.js.map
178
+ //# sourceMappingURL=Reflect-metadata.js.map
@@ -37,4 +37,4 @@ export function quadPointAt(p0, p1, p2, t) {
37
37
  export function quadLength(p0, p1, p2, iterationCount) {
38
38
  return snapLength([ p0.x, p1.x, p2.x ], [ p0.y, p1.y, p2.y ]);
39
39
  }
40
- //# sourceMappingURL=bezier-utils.js.map
40
+ //# sourceMappingURL=bezier-utils.js.map
@@ -50,4 +50,4 @@ export class BoundsContext {
50
50
  }
51
51
  release(...params) {}
52
52
  }
53
- //# sourceMappingURL=bounds-context.js.map
53
+ //# sourceMappingURL=bounds-context.js.map
@@ -52,4 +52,4 @@ function createConicGradient(context, color, x, y, w, h) {
52
52
  canvasGradient.addColorStop(stop.offset, stop.color);
53
53
  })), canvasGradient.GetPattern ? canvasGradient.GetPattern(w + x, h + y, undefined) : canvasGradient;
54
54
  }
55
- //# sourceMappingURL=canvas-utils.js.map
55
+ //# sourceMappingURL=canvas-utils.js.map
@@ -238,4 +238,4 @@ export class GradientParser {
238
238
  };
239
239
  }
240
240
  }
241
- //# sourceMappingURL=color-utils.js.map
241
+ //# sourceMappingURL=color-utils.js.map
@@ -40,4 +40,4 @@ export class ContributionStore {
40
40
  }
41
41
 
42
42
  ContributionStore.store = new Map;
43
- //# sourceMappingURL=contribution-provider.js.map
43
+ //# sourceMappingURL=contribution-provider.js.map
@@ -373,4 +373,4 @@ function scale(current, sX, sY) {
373
373
  temp[7] = sY * current[7]; else if ("h" === c || "H" === c) temp[1] = sX * current[1]; else if ("v" === c || "V" === c) temp[1] = sY * current[1]; else for (let i = 1, n = current.length; i < n; ++i) temp[i] = (i % 2 == 1 ? sX : sY) * current[i];
374
374
  return temp;
375
375
  }
376
- //# sourceMappingURL=custom-path2d.js.map
376
+ //# sourceMappingURL=custom-path2d.js.map
package/es/common/diff.js CHANGED
@@ -9,4 +9,4 @@ export function diff(oldAttrs, newAttrs, getAttr) {
9
9
  }
10
10
  return diffObj;
11
11
  }
12
- //# sourceMappingURL=diff.js.map
12
+ //# sourceMappingURL=diff.js.map
@@ -51,4 +51,4 @@ export var BaseRenderContributionTime;
51
51
  BaseRenderContributionTime[BaseRenderContributionTime.beforeFillStroke = 0] = "beforeFillStroke",
52
52
  BaseRenderContributionTime[BaseRenderContributionTime.afterFillStroke = 1] = "afterFillStroke";
53
53
  }(BaseRenderContributionTime || (BaseRenderContributionTime = {}));
54
- //# sourceMappingURL=enums.js.map
54
+ //# sourceMappingURL=enums.js.map
@@ -71,4 +71,4 @@ export class EventListenerManager {
71
71
  throw new Error("_nativeDispatchEvent must be implemented by derived classes");
72
72
  }
73
73
  }
74
- //# sourceMappingURL=event-listener-manager.js.map
74
+ //# sourceMappingURL=event-listener-manager.js.map
@@ -113,5 +113,4 @@ export function mapToCanvasPointForCanvas(nativeEvent) {
113
113
  x: nativeEvent._canvasX || 0,
114
114
  y: nativeEvent._canvasY || 0
115
115
  };
116
- }
117
- //# sourceMappingURL=event-transformer.js.map
116
+ }
@@ -7,4 +7,4 @@ export function resolveContainerBinding(container, serviceIdentifier) {
7
7
  if (null == instance) throw new Error(`No binding found for ${describeServiceIdentifier(serviceIdentifier)}.`);
8
8
  return instance;
9
9
  }
10
- //# sourceMappingURL=explicit-binding.js.map
10
+ //# sourceMappingURL=explicit-binding.js.map
@@ -5,4 +5,4 @@ export class Generator {
5
5
  }
6
6
 
7
7
  Generator.auto_increment_id = 0;
8
- //# sourceMappingURL=generator.js.map
8
+ //# sourceMappingURL=generator.js.map
@@ -118,4 +118,4 @@ export function transformMat4(out, a, m) {
118
118
  return w = w || 1, out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w, out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w,
119
119
  out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w, out;
120
120
  }
121
- //# sourceMappingURL=matrix.js.map
121
+ //# sourceMappingURL=matrix.js.map
@@ -189,4 +189,4 @@ export function bezierCurversToPath(bezierCurves) {
189
189
  }
190
190
  return path;
191
191
  }
192
- //# sourceMappingURL=morphing-utils.js.map
192
+ //# sourceMappingURL=morphing-utils.js.map
@@ -55,4 +55,4 @@ export function parseSvgPath(str) {
55
55
  } else result.push(currCommandData);
56
56
  return result;
57
57
  }
58
- //# sourceMappingURL=path-svg.js.map
58
+ //# sourceMappingURL=path-svg.js.map
@@ -26,4 +26,4 @@ export class PerformanceRAF {
26
26
  }));
27
27
  }
28
28
  }
29
- //# sourceMappingURL=performance-raf.js.map
29
+ //# sourceMappingURL=performance-raf.js.map
@@ -38,4 +38,4 @@ function getProportionPoint(point, segment, length, dx, dy) {
38
38
  y: point.y - dy * factor
39
39
  };
40
40
  }
41
- //# sourceMappingURL=polygon.js.map
41
+ //# sourceMappingURL=polygon.js.map
@@ -83,4 +83,4 @@ export class AppContext {
83
83
  };
84
84
  }
85
85
  }
86
- //# sourceMappingURL=app-context.js.map
86
+ //# sourceMappingURL=app-context.js.map
@@ -33,4 +33,4 @@ export class BrowserEntry {
33
33
  export function createBrowserApp(options = {}) {
34
34
  return new BrowserEntry(options);
35
35
  }
36
- //# sourceMappingURL=browser.js.map
36
+ //# sourceMappingURL=browser.js.map
@@ -11,4 +11,4 @@ export * from "./miniapp";
11
11
  export * from "./runtime-installer";
12
12
 
13
13
  export { createBrowserApp as createApp } from "./browser";
14
- //# sourceMappingURL=index.js.map
14
+ //# sourceMappingURL=index.js.map
@@ -9,4 +9,4 @@ export class MiniappEntry extends BrowserEntry {
9
9
  export function createMiniappApp(options = {}) {
10
10
  return new MiniappEntry(options);
11
11
  }
12
- //# sourceMappingURL=miniapp.js.map
12
+ //# sourceMappingURL=miniapp.js.map
@@ -9,4 +9,4 @@ export class NodeEntry extends BrowserEntry {
9
9
  export function createNodeApp(options = {}) {
10
10
  return new NodeEntry(options);
11
11
  }
12
- //# sourceMappingURL=node.js.map
12
+ //# sourceMappingURL=node.js.map
@@ -127,4 +127,4 @@ export function installRuntimePickersToApp(app, serviceIdentifier) {
127
127
  const pickers = bindingContext.getAll(serviceIdentifier);
128
128
  app.registry.picker.clear(), registerRuntimeEntries(((key, picker) => app.registry.picker.register(key, picker)), pickers, "runtime-picker");
129
129
  }
130
- //# sourceMappingURL=runtime-installer.js.map
130
+ //# sourceMappingURL=runtime-installer.js.map
@@ -1,2 +1,2 @@
1
1
  export { };
2
- //# sourceMappingURL=types.js.map
2
+ //# sourceMappingURL=types.js.map
@@ -1,2 +1,2 @@
1
1
  export const WILDCARD = "*";
2
- //# sourceMappingURL=constant.js.map
2
+ //# sourceMappingURL=constant.js.map
@@ -299,4 +299,4 @@ export class EventManager {
299
299
  this.mappingTable = null, this.mappingState = null, this.cursorTarget = null;
300
300
  }
301
301
  }
302
- //# sourceMappingURL=event-manager.js.map
302
+ //# sourceMappingURL=event-manager.js.map
@@ -212,4 +212,4 @@ export class EventSystem {
212
212
  this.manager.pauseNotify = !1;
213
213
  }
214
214
  }
215
- //# sourceMappingURL=event-system.js.map
215
+ //# sourceMappingURL=event-system.js.map
@@ -12,4 +12,4 @@ export const EventTarget = {
12
12
  return this.dispatchEvent(new CustomEvent(eventName, object));
13
13
  }
14
14
  };
15
- //# sourceMappingURL=event-target.js.map
15
+ //# sourceMappingURL=event-target.js.map
package/es/event/index.js CHANGED
@@ -10,4 +10,5 @@ export * from "../interface/event";
10
10
 
11
11
  export * from "./util";
12
12
 
13
- export * from "./constant";
13
+ export * from "./constant";
14
+ //# sourceMappingURL=index.js.map
package/es/event/util.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export const clock = "object" == typeof performance && performance.now ? performance : Date;
2
- //# sourceMappingURL=util.js.map
2
+ //# sourceMappingURL=util.js.map
@@ -12,4 +12,4 @@ export class GraphicFactory {
12
12
  this.registry.set(type, ctor);
13
13
  }
14
14
  }
15
- //# sourceMappingURL=graphic-factory.js.map
15
+ //# sourceMappingURL=graphic-factory.js.map
@@ -5,4 +5,4 @@ export * from "./stage-factory";
5
5
  export * from "./layer-factory";
6
6
 
7
7
  export * from "./graphic-factory";
8
- //# sourceMappingURL=index.js.map
8
+ //# sourceMappingURL=index.js.map
@@ -8,4 +8,4 @@ export class LayerFactory {
8
8
  return new this.LayerCtor(stage, global, window, params);
9
9
  }
10
10
  }
11
- //# sourceMappingURL=layer-factory.js.map
11
+ //# sourceMappingURL=layer-factory.js.map
@@ -9,4 +9,4 @@ export class StageFactory {
9
9
  return new this.StageCtor(params, null === (_a = this.depsFactory) || void 0 === _a ? void 0 : _a.call(this));
10
10
  }
11
11
  }
12
- //# sourceMappingURL=stage-factory.js.map
12
+ //# sourceMappingURL=stage-factory.js.map
@@ -1,2 +1,2 @@
1
1
  export { };
2
- //# sourceMappingURL=types.js.map
2
+ //# sourceMappingURL=types.js.map
@@ -1,4 +1,4 @@
1
- import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';
1
+ import type { IAABBBoundsLike, IPointLike } from '@visactor/vutils';
2
2
  import type { ICanvasLike } from './canvas';
3
3
  import type { IEventElement } from './common';
4
4
  import type { IContribution } from './contribution';
@@ -76,11 +76,15 @@ export interface IEnvContribution extends IContribution<IGlobal>, Omit<IEventEle
76
76
  copyToClipBoard: (text: string) => Promise<void>;
77
77
  }
78
78
  export type IMiniAppEnvParams = {
79
- domref?: Dict<any>;
80
79
  force?: boolean;
81
- canvasIdLists?: (string | number)[];
82
- freeCanvasIdx?: string | number;
83
80
  taro?: any;
81
+ canvasFactory?: (options: {
82
+ id?: string;
83
+ width: number;
84
+ height: number;
85
+ dpr: number;
86
+ offscreen: boolean;
87
+ }) => any;
84
88
  pixelRatio?: number;
85
89
  [key: string]: any;
86
90
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interface/global.ts"],"names":[],"mappings":"","file":"global.js","sourcesContent":["import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICanvasLike } from './canvas';\nimport type { IEventElement } from './common';\nimport type { IContribution } from './contribution';\nimport type { ISyncHook } from './sync-hook';\nimport type { PerformanceRAF } from '../common/performance-raf';\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\n// 环境定义\nexport type EnvType = 'browser' | 'feishu' | 'tt' | 'taro' | 'node' | 'native' | 'lynx' | 'wx' | 'harmony';\n\n// 创建canvas需要的参数\nexport interface ICreateCanvasParams {\n id?: string;\n // 像素宽\n width?: number;\n // 像素高\n height?: number;\n dpr?: number;\n}\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\nexport interface IEnvContribution\n extends IContribution<IGlobal>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n type: EnvType;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 开始配置环境,相当于init\n configure: (global: IGlobal, ...p: any) => void;\n\n // 创建销毁\n createCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n releaseCanvas: (canvas: ICanvasLike | string | any) => void;\n\n getNativeAABBBounds: (dom: string | HTMLElement | any) => IAABBBoundsLike;\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n // 设备信息\n getDevicePixelRatio: () => number;\n\n // 通用接口\n getRequestAnimationFrame: () => (callback: FrameRequestCallback) => number;\n getCancelAnimationFrame: () => (h: number) => void;\n\n // DOM接口\n getElementById?: (str: string) => HTMLElement | null;\n getRootElement?: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument?: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint?: (event: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n // @since 0.21.3\n /**\n * 加载字体,参数对应Font类\n * @param font 字体名\n * @param source 数据源\n * @param descriptors 其他描述\n * @returns\n */\n loadFont: (\n font: string,\n source: string | any,\n descriptors?: FontFaceDescriptors\n ) => Promise<{\n loadState: 'success' | 'fail';\n }>;\n\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n}\n\nexport type IMiniAppEnvParams = {\n /** dom 容器对象 */\n domref?: Dict<any>;\n /**\n * 强行设置env,如果env重复设置也设置\n */\n force?: boolean;\n /**\n * 可用的canvas列表\n */\n canvasIdLists?: (string | number)[];\n /**\n * 表示可以自由使用的canvas索引\n */\n freeCanvasIdx?: string | number;\n /** taro 环境使用 */\n taro?: any;\n pixelRatio?: number;\n [key: string]: any;\n};\n\nexport interface IEnvParamsMap {\n readonly taro: IMiniAppEnvParams;\n readonly feishu: IMiniAppEnvParams;\n readonly tt: IMiniAppEnvParams;\n readonly browser: any;\n readonly node: any;\n readonly native: any;\n readonly lynx: any;\n readonly wx: any;\n readonly harmony: any;\n}\n\nexport type CreateDOMParamsType = {\n tagName?: string;\n width?: number;\n height?: number;\n style?: string | Record<string, any>;\n parent?: string | HTMLElement;\n};\nexport interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n env: EnvType;\n\n // 设备的dpr\n devicePixelRatio: number;\n\n // 当设置env的时候被调用\n hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n // 设置env的时候传入的参数\n // node环境需要传入整个node-canvas包\n // 小程序环境需要传入小程序要用到的参数\n envParams?: any;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;\n setActiveEnvContribution: (contribution: IEnvContribution) => void;\n createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n releaseCanvas: (canvas: HTMLCanvasElement | string | any) => void;\n setEventListenerTransformer: (transformer: (event: Event) => Event) => void;\n\n /**\n * 获取环境中最大动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n isChrome: () => boolean;\n isSafari: () => boolean;\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n\n /**\n * 获取环境中最大静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n /* 浏览器环境 - dom tree */\n getElementById: (str: string) => HTMLElement | null;\n getRootElement: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n /**\n * 测量文字的方法\n */\n measureTextMethod: 'native' | 'simple' | 'quick';\n\n getRequestAnimationFrame: () => null | ((callback: FrameRequestCallback) => number);\n getCancelAnimationFrame: () => null | ((h: number) => void);\n getSpecifiedRequestAnimationFrame: (id: number) => (callback: FrameRequestCallback) => number;\n getSpecifiedCancelAnimationFrame: (id: number) => (h: number) => void;\n getSpecifiedPerformanceRAF: (id: number) => PerformanceRAF;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n isImageAnonymous: boolean;\n}\n"]}
1
+ {"version":3,"sources":["../src/interface/global.ts"],"names":[],"mappings":"","file":"global.js","sourcesContent":["import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICanvasLike } from './canvas';\nimport type { IEventElement } from './common';\nimport type { IContribution } from './contribution';\nimport type { ISyncHook } from './sync-hook';\nimport type { PerformanceRAF } from '../common/performance-raf';\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\n// 环境定义\nexport type EnvType = 'browser' | 'feishu' | 'tt' | 'taro' | 'node' | 'native' | 'lynx' | 'wx' | 'harmony';\n\n// 创建canvas需要的参数\nexport interface ICreateCanvasParams {\n id?: string;\n // 像素宽\n width?: number;\n // 像素高\n height?: number;\n dpr?: number;\n}\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\nexport interface IEnvContribution\n extends IContribution<IGlobal>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n type: EnvType;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 开始配置环境,相当于init\n configure: (global: IGlobal, ...p: any) => void;\n\n // 创建销毁\n createCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n releaseCanvas: (canvas: ICanvasLike | string | any) => void;\n\n getNativeAABBBounds: (dom: string | HTMLElement | any) => IAABBBoundsLike;\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n // 设备信息\n getDevicePixelRatio: () => number;\n\n // 通用接口\n getRequestAnimationFrame: () => (callback: FrameRequestCallback) => number;\n getCancelAnimationFrame: () => (h: number) => void;\n\n // DOM接口\n getElementById?: (str: string) => HTMLElement | null;\n getRootElement?: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument?: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint?: (event: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n // @since 0.21.3\n /**\n * 加载字体,参数对应Font类\n * @param font 字体名\n * @param source 数据源\n * @param descriptors 其他描述\n * @returns\n */\n loadFont: (\n font: string,\n source: string | any,\n descriptors?: FontFaceDescriptors\n ) => Promise<{\n loadState: 'success' | 'fail';\n }>;\n\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n}\n\nexport type IMiniAppEnvParams = {\n /**\n * 强行设置env,如果env重复设置也设置\n */\n force?: boolean;\n /** taro 环境使用 */\n taro?: any;\n /** app 级 canvas 工厂,必须能为该 app 下任意 stage canvas 参数创建宿主 canvas */\n canvasFactory?: (options: { id?: string; width: number; height: number; dpr: number; offscreen: boolean }) => any;\n pixelRatio?: number;\n [key: string]: any;\n};\n\nexport interface IEnvParamsMap {\n readonly taro: IMiniAppEnvParams;\n readonly feishu: IMiniAppEnvParams;\n readonly tt: IMiniAppEnvParams;\n readonly browser: any;\n readonly node: any;\n readonly native: any;\n readonly lynx: any;\n readonly wx: any;\n readonly harmony: any;\n}\n\nexport type CreateDOMParamsType = {\n tagName?: string;\n width?: number;\n height?: number;\n style?: string | Record<string, any>;\n parent?: string | HTMLElement;\n};\nexport interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n env: EnvType;\n\n // 设备的dpr\n devicePixelRatio: number;\n\n // 当设置env的时候被调用\n hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n // 设置env的时候传入的参数\n // node环境需要传入整个node-canvas包\n // 小程序环境需要传入小程序要用到的参数\n envParams?: any;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;\n setActiveEnvContribution: (contribution: IEnvContribution) => void;\n createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n releaseCanvas: (canvas: HTMLCanvasElement | string | any) => void;\n setEventListenerTransformer: (transformer: (event: Event) => Event) => void;\n\n /**\n * 获取环境中最大动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n isChrome: () => boolean;\n isSafari: () => boolean;\n isMacOS: () => boolean;\n copyToClipBoard: (text: string) => Promise<void>;\n\n /**\n * 获取环境中最大静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n /* 浏览器环境 - dom tree */\n getElementById: (str: string) => HTMLElement | null;\n getRootElement: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n /**\n * 测量文字的方法\n */\n measureTextMethod: 'native' | 'simple' | 'quick';\n\n getRequestAnimationFrame: () => null | ((callback: FrameRequestCallback) => number);\n getCancelAnimationFrame: () => null | ((h: number) => void);\n getSpecifiedRequestAnimationFrame: (id: number) => (callback: FrameRequestCallback) => number;\n getSpecifiedCancelAnimationFrame: (id: number) => (h: number) => void;\n getSpecifiedPerformanceRAF: (id: number) => PerformanceRAF;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n updateDom: (dom: HTMLElement, params: CreateDOMParamsType) => boolean;\n\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n isImageAnonymous: boolean;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vrender-core",
3
- "version": "1.1.0-alpha.22",
3
+ "version": "1.1.0-alpha.23",
4
4
  "description": "",
5
5
  "sideEffects": [
6
6
  "./src/modules.ts",