@visactor/vrender-kits 1.1.4-alpha.1 → 1.1.4-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/env/contributions/browser-contribution.js +1 -1
- package/cjs/env/contributions/lynx-contribution.d.ts +5 -1
- package/cjs/env/contributions/lynx-contribution.js +10 -8
- package/cjs/env/contributions/lynx-contribution.js.map +1 -1
- package/cjs/event/extension/drag.js +1 -1
- package/cjs/graphic/Lottie.js +2 -1
- package/cjs/installers/app.js +1 -2
- package/dist/index.es.js +18 -7
- package/es/env/contributions/browser-contribution.js +1 -1
- package/es/env/contributions/lynx-contribution.d.ts +5 -1
- package/es/env/contributions/lynx-contribution.js +10 -8
- package/es/env/contributions/lynx-contribution.js.map +1 -1
- package/es/event/extension/drag.js +1 -1
- package/es/graphic/Lottie.js +2 -1
- package/es/installers/app.js +1 -2
- package/package.json +3 -3
|
@@ -12,6 +12,8 @@ type LynxRuntime = Partial<{
|
|
|
12
12
|
createCanvasNG: (id?: string) => any;
|
|
13
13
|
createImage: (id: string) => any;
|
|
14
14
|
createOffscreenCanvas: () => any;
|
|
15
|
+
requestAnimationFrame: (callback: FrameRequestCallback) => number;
|
|
16
|
+
cancelAnimationFrame: (handle: number) => void;
|
|
15
17
|
krypton: LynxKryptonRuntime;
|
|
16
18
|
}>;
|
|
17
19
|
type LynxCanvasFactoryOptions = {
|
|
@@ -37,6 +39,8 @@ export declare class LynxEnvContribution extends BaseEnvContribution implements
|
|
|
37
39
|
canvasIdx: number;
|
|
38
40
|
private lynxRuntime?;
|
|
39
41
|
private lynxEnvParams?;
|
|
42
|
+
private requestAnimationFrame;
|
|
43
|
+
private cancelAnimationFrame;
|
|
40
44
|
constructor();
|
|
41
45
|
configure(service: IGlobal, params?: LynxEnvParams): void;
|
|
42
46
|
getDynamicCanvasCount(): number;
|
|
@@ -54,7 +58,7 @@ export declare class LynxEnvContribution extends BaseEnvContribution implements
|
|
|
54
58
|
releaseCanvas(canvas: ICanvasLike | string): void;
|
|
55
59
|
getDevicePixelRatio(): number;
|
|
56
60
|
getRequestAnimationFrame(): (callback: FrameRequestCallback) => number;
|
|
57
|
-
getCancelAnimationFrame(): (
|
|
61
|
+
getCancelAnimationFrame(): (handle: number) => void;
|
|
58
62
|
mapToCanvasPoint(event: any): any;
|
|
59
63
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
60
64
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
@@ -48,6 +48,8 @@ function getLynxRuntime(params) {
|
|
|
48
48
|
return null !== (_b = null !== (_a = null == params ? void 0 : params.lynx) && void 0 !== _a ? _a : null == params ? void 0 : params.runtime) && void 0 !== _b ? _b : getGlobalLynxRuntime();
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
const requestAnimationFrameBasedSTO = callback => vrender_core_1.rafBasedSto.call(callback), cancelAnimationFrameBasedSTO = handle => vrender_core_1.rafBasedSto.clear(handle);
|
|
52
|
+
|
|
51
53
|
function getLynxPixelRatio(params, runtime) {
|
|
52
54
|
var _a, _b, _c, _d, _e;
|
|
53
55
|
return null !== (_e = null !== (_d = null !== (_a = null == params ? void 0 : params.pixelRatio) && void 0 !== _a ? _a : null === (_c = null === (_b = null == runtime ? void 0 : runtime.getSystemInfoSync) || void 0 === _b ? void 0 : _b.call(runtime)) || void 0 === _c ? void 0 : _c.pixelRatio) && void 0 !== _d ? _d : getGlobalSystemPixelRatio()) && void 0 !== _e ? _e : 1;
|
|
@@ -130,7 +132,8 @@ exports.createImageElement = createImageElement;
|
|
|
130
132
|
class LynxEnvContribution extends vrender_core_1.BaseEnvContribution {
|
|
131
133
|
constructor() {
|
|
132
134
|
super(), this.type = "lynx", this.supportEvent = !0, this.canvasMap = new Map, this.freeCanvasList = [],
|
|
133
|
-
this.canvasIdx = 0, this.
|
|
135
|
+
this.canvasIdx = 0, this.requestAnimationFrame = requestAnimationFrameBasedSTO,
|
|
136
|
+
this.cancelAnimationFrame = cancelAnimationFrameBasedSTO, this.supportsTouchEvents = !0;
|
|
134
137
|
try {
|
|
135
138
|
this.supportsPointerEvents = !!globalThis.PointerEvent, this.supportsMouseEvents = !!globalThis.MouseEvent;
|
|
136
139
|
} catch (err) {
|
|
@@ -139,8 +142,11 @@ class LynxEnvContribution extends vrender_core_1.BaseEnvContribution {
|
|
|
139
142
|
this.applyStyles = !0;
|
|
140
143
|
}
|
|
141
144
|
configure(service, params = {}) {
|
|
145
|
+
var _a, _b;
|
|
142
146
|
service.env === this.type && (service.setActiveEnvContribution(this), this.lynxEnvParams = params,
|
|
143
|
-
this.lynxRuntime = getLynxRuntime(params))
|
|
147
|
+
this.lynxRuntime = getLynxRuntime(params), "function" == typeof (null === (_a = this.lynxRuntime) || void 0 === _a ? void 0 : _a.requestAnimationFrame) && "function" == typeof (null === (_b = this.lynxRuntime) || void 0 === _b ? void 0 : _b.cancelAnimationFrame) ? (this.requestAnimationFrame = this.lynxRuntime.requestAnimationFrame.bind(this.lynxRuntime),
|
|
148
|
+
this.cancelAnimationFrame = this.lynxRuntime.cancelAnimationFrame.bind(this.lynxRuntime)) : (this.requestAnimationFrame = requestAnimationFrameBasedSTO,
|
|
149
|
+
this.cancelAnimationFrame = cancelAnimationFrameBasedSTO));
|
|
144
150
|
}
|
|
145
151
|
getDynamicCanvasCount() {
|
|
146
152
|
return this.freeCanvasList.length;
|
|
@@ -182,14 +188,10 @@ class LynxEnvContribution extends vrender_core_1.BaseEnvContribution {
|
|
|
182
188
|
return getLynxPixelRatio(void 0, this.lynxRuntime);
|
|
183
189
|
}
|
|
184
190
|
getRequestAnimationFrame() {
|
|
185
|
-
return
|
|
186
|
-
return vrender_core_1.rafBasedSto.call(callback);
|
|
187
|
-
};
|
|
191
|
+
return this.requestAnimationFrame;
|
|
188
192
|
}
|
|
189
193
|
getCancelAnimationFrame() {
|
|
190
|
-
return
|
|
191
|
-
vrender_core_1.rafBasedSto.clear(h);
|
|
192
|
-
};
|
|
194
|
+
return this.cancelAnimationFrame;
|
|
193
195
|
}
|
|
194
196
|
mapToCanvasPoint(event) {
|
|
195
197
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/lynx-contribution.ts"],"names":[],"mappings":"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","file":"lynx-contribution.js","sourcesContent":["import {\n BaseEnvContribution,\n rafBasedSto,\n type EnvType,\n type ICanvasLike,\n type ICreateCanvasParams,\n type IEnvContribution,\n type IGlobal,\n type ILynxCanvas\n} from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport { CanvasWrapEnableWH } from './canvas-wrap';\n\ndeclare const lynx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id?: string) => any;\n createImage: (id: string) => any;\n createOffscreenCanvas: () => any;\n krypton?: {\n createCanvas?: (id: string) => any;\n createCanvasNG?: () => any;\n CanvasElement?: new (name: string) => any;\n };\n};\ndeclare const SystemInfo: {\n pixelRatio: number;\n};\n\ntype LynxKryptonRuntime = Partial<{\n createCanvas: (id: string) => any;\n createCanvasNG: () => any;\n CanvasElement: new (name: string) => any;\n}>;\n\ntype LynxRuntime = Partial<{\n getSystemInfoSync: () => { pixelRatio?: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id?: string) => any;\n createImage: (id: string) => any;\n createOffscreenCanvas: () => any;\n krypton: LynxKryptonRuntime;\n}>;\n\ntype LynxCanvasFactoryOptions = {\n id: string;\n width: number;\n height: number;\n dpr: number;\n offscreen: boolean;\n};\n\ntype LynxCanvasFactory = (options: LynxCanvasFactoryOptions) => any;\n\ntype LynxEnvParams = {\n pixelRatio?: number;\n lynx?: LynxRuntime;\n runtime?: LynxRuntime;\n canvasFactory?: LynxCanvasFactory;\n};\n\nconst LYNX_CANVAS_BRIDGE_ERROR =\n 'Lynx canvas bridge is unavailable. VRender Lynx env requires envParams.canvasFactory ' +\n 'or a Lynx runtime that exposes createCanvasNG/createCanvas/createOffscreenCanvas/krypton canvas APIs.';\nconst LYNX_CANVAS_SIZE_ERROR =\n 'Lynx canvas size is unavailable. Pass stage width/height when creating a Lynx stage canvas.';\n\nfunction isValidCoordinate(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction pickCoordinate(...values: unknown[]): number | undefined {\n for (let i = 0; i < values.length; i++) {\n if (isValidCoordinate(values[i])) {\n return values[i] as number;\n }\n }\n return undefined;\n}\n\nfunction getPrimaryTouch(event: any) {\n return event?.changedTouches?.[0] ?? event?.touches?.[0];\n}\n\nfunction getLynxEventPoint(event: any) {\n const touch = getPrimaryTouch(event);\n const x = pickCoordinate(\n event?.x,\n event?.offsetX,\n event?.clientX,\n event?.pageX,\n touch?.x,\n touch?.offsetX,\n touch?.clientX,\n touch?.pageX\n );\n const y = pickCoordinate(\n event?.y,\n event?.offsetY,\n event?.clientY,\n event?.pageY,\n touch?.y,\n touch?.offsetY,\n touch?.clientY,\n touch?.pageY\n );\n\n return x == null || y == null ? null : { x, y };\n}\n\nfunction getGlobalLynxRuntime(): LynxRuntime | undefined {\n try {\n return typeof lynx !== 'undefined' ? lynx : undefined;\n } catch (err) {\n return undefined;\n }\n}\n\nfunction getGlobalSystemPixelRatio(): number | undefined {\n try {\n return typeof SystemInfo !== 'undefined' ? SystemInfo.pixelRatio : undefined;\n } catch (err) {\n return undefined;\n }\n}\n\nfunction getLynxRuntime(params?: LynxEnvParams): LynxRuntime | undefined {\n return params?.lynx ?? params?.runtime ?? getGlobalLynxRuntime();\n}\n\nfunction getLynxPixelRatio(params?: LynxEnvParams, runtime?: LynxRuntime): number {\n return params?.pixelRatio ?? runtime?.getSystemInfoSync?.()?.pixelRatio ?? getGlobalSystemPixelRatio() ?? 1;\n}\n\nfunction attachLynxCanvasToView(canvas: any, id: string) {\n canvas?.attachToCanvasView?.(id);\n return canvas;\n}\n\nfunction createBoundLynxCanvas(id: string, runtime?: LynxRuntime) {\n if (typeof runtime?.krypton?.createCanvas === 'function') {\n const canvas = runtime.krypton.createCanvas(id);\n if (canvas) {\n return canvas;\n }\n }\n\n if (typeof runtime?.createCanvasNG === 'function') {\n const canvas = runtime.createCanvasNG(id);\n if (canvas) {\n return attachLynxCanvasToView(canvas, id);\n }\n }\n\n if (typeof runtime?.krypton?.createCanvasNG === 'function') {\n const canvas = runtime.krypton.createCanvasNG();\n if (canvas) {\n return attachLynxCanvasToView(canvas, id);\n }\n }\n\n if (typeof runtime?.krypton?.CanvasElement === 'function') {\n return new runtime.krypton.CanvasElement(id);\n }\n\n if (typeof runtime?.createCanvas === 'function') {\n const canvas = runtime.createCanvas(id);\n if (canvas) {\n return canvas;\n }\n }\n\n return null;\n}\n\nfunction getCanvasSize(width?: number, height?: number) {\n if (!isValidCoordinate(width) || !isValidCoordinate(height)) {\n throw new Error(LYNX_CANVAS_SIZE_ERROR);\n }\n return { width, height };\n}\n\nfunction wrapLynxNativeCanvas(nativeCanvas: any, id: string, width: number, height: number, dpr: number) {\n nativeCanvas.width = width * dpr;\n nativeCanvas.height = height * dpr;\n\n const ctx = nativeCanvas.getContext('2d');\n return new CanvasWrapEnableWH(nativeCanvas, ctx, dpr, width, height, id);\n}\n\nfunction createLynxNativeCanvas(\n id: string,\n width: number,\n height: number,\n dpr: number,\n offscreen: boolean,\n params: LynxEnvParams,\n runtime?: LynxRuntime\n) {\n if (params.canvasFactory) {\n return params.canvasFactory({\n id,\n width,\n height,\n dpr,\n offscreen\n });\n }\n\n if (offscreen) {\n if (typeof runtime?.createOffscreenCanvas === 'function') {\n return runtime.createOffscreenCanvas();\n }\n } else {\n const canvas = createBoundLynxCanvas(id, runtime);\n if (canvas) {\n return canvas;\n }\n }\n\n throw new Error(LYNX_CANVAS_BRIDGE_ERROR);\n}\n\nexport function createImageElement(\n src: string,\n isSvg: boolean = false,\n runtime: LynxRuntime | undefined = getGlobalLynxRuntime()\n): Promise<HTMLImageElement> {\n if (isSvg) {\n return Promise.reject();\n }\n if (typeof runtime?.createImage !== 'function') {\n return Promise.reject(new Error('Lynx image bridge is unavailable.'));\n }\n const img = runtime.createImage(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\nexport class LynxEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'lynx';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ILynxCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ILynxCanvas[] = [];\n canvasIdx: number = 0;\n private lynxRuntime?: LynxRuntime;\n private lynxEnvParams?: LynxEnvParams;\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: LynxEnvParams = {}) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n this.lynxEnvParams = params;\n this.lynxRuntime = getLynxRuntime(params);\n\n // loadFeishuContributions();\n }\n }\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return 9999;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false, this.lynxRuntime);\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 // Lynx 不支持 DOMParser 和 URL.createObjectURL,无法解析 svg 字符串,可以通过 url 使用 svg 资源\n return Promise.resolve({\n data: null,\n loadState: 'fail'\n });\n }\n\n createCanvas(params: ICreateCanvasParams): ILynxCanvas {\n if (params.id != null) {\n const id = String(params.id);\n const existing = this.canvasMap.get(id);\n if (existing) {\n return existing;\n }\n const envParams = this.lynxEnvParams ?? {};\n const runtime = getLynxRuntime(envParams);\n const dpr = params.dpr ?? getLynxPixelRatio(envParams, runtime);\n const size = getCanvasSize(params.width, params.height);\n const nativeCanvas = createLynxNativeCanvas(id, size.width, size.height, dpr, false, envParams, runtime);\n const canvas = wrapLynxNativeCanvas(nativeCanvas, id, size.width, size.height, dpr);\n this.canvasMap.set(id, canvas);\n return canvas;\n }\n\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n if (result) {\n return result;\n }\n\n const envParams = this.lynxEnvParams ?? {};\n const runtime = getLynxRuntime(envParams);\n const dpr = params.dpr ?? getLynxPixelRatio(envParams, runtime);\n const size = getCanvasSize(params.width, params.height);\n const id = Math.random().toString();\n const nativeCanvas = createLynxNativeCanvas(id, size.width, size.height, dpr, true, envParams, runtime);\n const canvas = wrapLynxNativeCanvas(nativeCanvas, id, size.width, size.height, dpr);\n this.canvasMap.set(id, canvas);\n this.freeCanvasList.push(canvas);\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return getLynxPixelRatio(undefined, this.lynxRuntime);\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 return function (callback: FrameRequestCallback) {\n return rafBasedSto.call(callback);\n } as any;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return (h: number) => {\n rafBasedSto.clear(h);\n };\n }\n\n mapToCanvasPoint(event: any) {\n return getLynxEventPoint(event) ?? event;\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"]}
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/lynx-contribution.ts"],"names":[],"mappings":"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","file":"lynx-contribution.js","sourcesContent":["import {\n BaseEnvContribution,\n rafBasedSto,\n type EnvType,\n type ICanvasLike,\n type ICreateCanvasParams,\n type IEnvContribution,\n type IGlobal,\n type ILynxCanvas\n} from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport { CanvasWrapEnableWH } from './canvas-wrap';\n\ndeclare const lynx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id?: string) => any;\n createImage: (id: string) => any;\n createOffscreenCanvas: () => any;\n krypton?: {\n createCanvas?: (id: string) => any;\n createCanvasNG?: () => any;\n CanvasElement?: new (name: string) => any;\n };\n};\ndeclare const SystemInfo: {\n pixelRatio: number;\n};\n\ntype LynxKryptonRuntime = Partial<{\n createCanvas: (id: string) => any;\n createCanvasNG: () => any;\n CanvasElement: new (name: string) => any;\n}>;\n\ntype LynxRuntime = Partial<{\n getSystemInfoSync: () => { pixelRatio?: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id?: string) => any;\n createImage: (id: string) => any;\n createOffscreenCanvas: () => any;\n requestAnimationFrame: (callback: FrameRequestCallback) => number;\n cancelAnimationFrame: (handle: number) => void;\n krypton: LynxKryptonRuntime;\n}>;\n\ntype LynxCanvasFactoryOptions = {\n id: string;\n width: number;\n height: number;\n dpr: number;\n offscreen: boolean;\n};\n\ntype LynxCanvasFactory = (options: LynxCanvasFactoryOptions) => any;\n\ntype LynxEnvParams = {\n pixelRatio?: number;\n lynx?: LynxRuntime;\n runtime?: LynxRuntime;\n canvasFactory?: LynxCanvasFactory;\n};\n\nconst LYNX_CANVAS_BRIDGE_ERROR =\n 'Lynx canvas bridge is unavailable. VRender Lynx env requires envParams.canvasFactory ' +\n 'or a Lynx runtime that exposes createCanvasNG/createCanvas/createOffscreenCanvas/krypton canvas APIs.';\nconst LYNX_CANVAS_SIZE_ERROR =\n 'Lynx canvas size is unavailable. Pass stage width/height when creating a Lynx stage canvas.';\n\nfunction isValidCoordinate(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction pickCoordinate(...values: unknown[]): number | undefined {\n for (let i = 0; i < values.length; i++) {\n if (isValidCoordinate(values[i])) {\n return values[i] as number;\n }\n }\n return undefined;\n}\n\nfunction getPrimaryTouch(event: any) {\n return event?.changedTouches?.[0] ?? event?.touches?.[0];\n}\n\nfunction getLynxEventPoint(event: any) {\n const touch = getPrimaryTouch(event);\n const x = pickCoordinate(\n event?.x,\n event?.offsetX,\n event?.clientX,\n event?.pageX,\n touch?.x,\n touch?.offsetX,\n touch?.clientX,\n touch?.pageX\n );\n const y = pickCoordinate(\n event?.y,\n event?.offsetY,\n event?.clientY,\n event?.pageY,\n touch?.y,\n touch?.offsetY,\n touch?.clientY,\n touch?.pageY\n );\n\n return x == null || y == null ? null : { x, y };\n}\n\nfunction getGlobalLynxRuntime(): LynxRuntime | undefined {\n try {\n return typeof lynx !== 'undefined' ? lynx : undefined;\n } catch (err) {\n return undefined;\n }\n}\n\nfunction getGlobalSystemPixelRatio(): number | undefined {\n try {\n return typeof SystemInfo !== 'undefined' ? SystemInfo.pixelRatio : undefined;\n } catch (err) {\n return undefined;\n }\n}\n\nfunction getLynxRuntime(params?: LynxEnvParams): LynxRuntime | undefined {\n return params?.lynx ?? params?.runtime ?? getGlobalLynxRuntime();\n}\n\nconst requestAnimationFrameBasedSTO = (callback: FrameRequestCallback): number => rafBasedSto.call(callback);\nconst cancelAnimationFrameBasedSTO = (handle: number): void => rafBasedSto.clear(handle);\n\nfunction getLynxPixelRatio(params?: LynxEnvParams, runtime?: LynxRuntime): number {\n return params?.pixelRatio ?? runtime?.getSystemInfoSync?.()?.pixelRatio ?? getGlobalSystemPixelRatio() ?? 1;\n}\n\nfunction attachLynxCanvasToView(canvas: any, id: string) {\n canvas?.attachToCanvasView?.(id);\n return canvas;\n}\n\nfunction createBoundLynxCanvas(id: string, runtime?: LynxRuntime) {\n if (typeof runtime?.krypton?.createCanvas === 'function') {\n const canvas = runtime.krypton.createCanvas(id);\n if (canvas) {\n return canvas;\n }\n }\n\n if (typeof runtime?.createCanvasNG === 'function') {\n const canvas = runtime.createCanvasNG(id);\n if (canvas) {\n return attachLynxCanvasToView(canvas, id);\n }\n }\n\n if (typeof runtime?.krypton?.createCanvasNG === 'function') {\n const canvas = runtime.krypton.createCanvasNG();\n if (canvas) {\n return attachLynxCanvasToView(canvas, id);\n }\n }\n\n if (typeof runtime?.krypton?.CanvasElement === 'function') {\n return new runtime.krypton.CanvasElement(id);\n }\n\n if (typeof runtime?.createCanvas === 'function') {\n const canvas = runtime.createCanvas(id);\n if (canvas) {\n return canvas;\n }\n }\n\n return null;\n}\n\nfunction getCanvasSize(width?: number, height?: number) {\n if (!isValidCoordinate(width) || !isValidCoordinate(height)) {\n throw new Error(LYNX_CANVAS_SIZE_ERROR);\n }\n return { width, height };\n}\n\nfunction wrapLynxNativeCanvas(nativeCanvas: any, id: string, width: number, height: number, dpr: number) {\n nativeCanvas.width = width * dpr;\n nativeCanvas.height = height * dpr;\n\n const ctx = nativeCanvas.getContext('2d');\n return new CanvasWrapEnableWH(nativeCanvas, ctx, dpr, width, height, id);\n}\n\nfunction createLynxNativeCanvas(\n id: string,\n width: number,\n height: number,\n dpr: number,\n offscreen: boolean,\n params: LynxEnvParams,\n runtime?: LynxRuntime\n) {\n if (params.canvasFactory) {\n return params.canvasFactory({\n id,\n width,\n height,\n dpr,\n offscreen\n });\n }\n\n if (offscreen) {\n if (typeof runtime?.createOffscreenCanvas === 'function') {\n return runtime.createOffscreenCanvas();\n }\n } else {\n const canvas = createBoundLynxCanvas(id, runtime);\n if (canvas) {\n return canvas;\n }\n }\n\n throw new Error(LYNX_CANVAS_BRIDGE_ERROR);\n}\n\nexport function createImageElement(\n src: string,\n isSvg: boolean = false,\n runtime: LynxRuntime | undefined = getGlobalLynxRuntime()\n): Promise<HTMLImageElement> {\n if (isSvg) {\n return Promise.reject();\n }\n if (typeof runtime?.createImage !== 'function') {\n return Promise.reject(new Error('Lynx image bridge is unavailable.'));\n }\n const img = runtime.createImage(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\nexport class LynxEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'lynx';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ILynxCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ILynxCanvas[] = [];\n canvasIdx: number = 0;\n private lynxRuntime?: LynxRuntime;\n private lynxEnvParams?: LynxEnvParams;\n private requestAnimationFrame = requestAnimationFrameBasedSTO;\n private cancelAnimationFrame = cancelAnimationFrameBasedSTO;\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: LynxEnvParams = {}) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n this.lynxEnvParams = params;\n this.lynxRuntime = getLynxRuntime(params);\n\n if (\n typeof this.lynxRuntime?.requestAnimationFrame === 'function' &&\n typeof this.lynxRuntime?.cancelAnimationFrame === 'function'\n ) {\n this.requestAnimationFrame = this.lynxRuntime.requestAnimationFrame.bind(this.lynxRuntime);\n this.cancelAnimationFrame = this.lynxRuntime.cancelAnimationFrame.bind(this.lynxRuntime);\n } else {\n this.requestAnimationFrame = requestAnimationFrameBasedSTO;\n this.cancelAnimationFrame = cancelAnimationFrameBasedSTO;\n }\n\n // loadFeishuContributions();\n }\n }\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return 9999;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false, this.lynxRuntime);\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 // Lynx 不支持 DOMParser 和 URL.createObjectURL,无法解析 svg 字符串,可以通过 url 使用 svg 资源\n return Promise.resolve({\n data: null,\n loadState: 'fail'\n });\n }\n\n createCanvas(params: ICreateCanvasParams): ILynxCanvas {\n if (params.id != null) {\n const id = String(params.id);\n const existing = this.canvasMap.get(id);\n if (existing) {\n return existing;\n }\n const envParams = this.lynxEnvParams ?? {};\n const runtime = getLynxRuntime(envParams);\n const dpr = params.dpr ?? getLynxPixelRatio(envParams, runtime);\n const size = getCanvasSize(params.width, params.height);\n const nativeCanvas = createLynxNativeCanvas(id, size.width, size.height, dpr, false, envParams, runtime);\n const canvas = wrapLynxNativeCanvas(nativeCanvas, id, size.width, size.height, dpr);\n this.canvasMap.set(id, canvas);\n return canvas;\n }\n\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n if (result) {\n return result;\n }\n\n const envParams = this.lynxEnvParams ?? {};\n const runtime = getLynxRuntime(envParams);\n const dpr = params.dpr ?? getLynxPixelRatio(envParams, runtime);\n const size = getCanvasSize(params.width, params.height);\n const id = Math.random().toString();\n const nativeCanvas = createLynxNativeCanvas(id, size.width, size.height, dpr, true, envParams, runtime);\n const canvas = wrapLynxNativeCanvas(nativeCanvas, id, size.width, size.height, dpr);\n this.canvasMap.set(id, canvas);\n this.freeCanvasList.push(canvas);\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return getLynxPixelRatio(undefined, this.lynxRuntime);\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return this.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (handle: number) => void {\n return this.cancelAnimationFrame;\n }\n\n mapToCanvasPoint(event: any) {\n return getLynxEventPoint(event) ?? event;\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"]}
|
package/cjs/graphic/Lottie.js
CHANGED
package/cjs/installers/app.js
CHANGED
|
@@ -212,5 +212,4 @@ exports.installTaroEnvToApp = installTaroEnvToApp, exports.installFeishuEnvToApp
|
|
|
212
212
|
exports.installTTEnvToApp = installTTEnvToApp, exports.installWxEnvToApp = installWxEnvToApp,
|
|
213
213
|
exports.installLynxEnvToApp = installLynxEnvToApp, exports.installHarmonyEnvToApp = installHarmonyEnvToApp,
|
|
214
214
|
exports.installDefaultGraphicsToApp = installDefaultGraphicsToApp, exports.installBrowserPickersToApp = installBrowserPickersToApp,
|
|
215
|
-
exports.installNodePickersToApp = installNodePickersToApp, exports.installMathPickersToApp = installMathPickersToApp;
|
|
216
|
-
//# sourceMappingURL=app.js.map
|
|
215
|
+
exports.installNodePickersToApp = installNodePickersToApp, exports.installMathPickersToApp = installMathPickersToApp;
|
package/dist/index.es.js
CHANGED
|
@@ -4496,13 +4496,14 @@ function applyFillStyle(ctx, character, b) {
|
|
|
4496
4496
|
}) : fillStyle, setTextStyle(ctx, character);
|
|
4497
4497
|
}
|
|
4498
4498
|
function applyStrokeStyle(ctx, character) {
|
|
4499
|
+
var _a, _b;
|
|
4499
4500
|
const strokeStyle = character && character.stroke || defaultFormatting.stroke;
|
|
4500
4501
|
if (!strokeStyle) return void (ctx.globalAlpha = 0);
|
|
4501
4502
|
const {
|
|
4502
4503
|
strokeOpacity = 1,
|
|
4503
4504
|
opacity = 1
|
|
4504
4505
|
} = character;
|
|
4505
|
-
ctx.globalAlpha = strokeOpacity * opacity, ctx.lineWidth = character && "number" == typeof character.lineWidth ? character.lineWidth : 1, ctx.strokeStyle = strokeStyle, setTextStyle(ctx, character);
|
|
4506
|
+
ctx.globalAlpha = strokeOpacity * opacity, ctx.lineWidth = character && "number" == typeof character.lineWidth ? character.lineWidth : 1, ctx.setLineDash(null !== (_a = character.lineDash) && void 0 !== _a ? _a : []), ctx.lineDashOffset = null !== (_b = character.lineDashOffset) && void 0 !== _b ? _b : 0, ctx.strokeStyle = strokeStyle, setTextStyle(ctx, character);
|
|
4506
4507
|
}
|
|
4507
4508
|
function getStrByWithCanvas(desc, width, character, guessIndex, needTestLetter) {
|
|
4508
4509
|
if (desc.length <= 1) return 0;
|
|
@@ -22805,6 +22806,8 @@ function getLynxRuntime(params) {
|
|
|
22805
22806
|
var _a, _b;
|
|
22806
22807
|
return (_b = (_a = params === null || params === void 0 ? void 0 : params.lynx) !== null && _a !== void 0 ? _a : params === null || params === void 0 ? void 0 : params.runtime) !== null && _b !== void 0 ? _b : getGlobalLynxRuntime();
|
|
22807
22808
|
}
|
|
22809
|
+
const requestAnimationFrameBasedSTO = (callback) => rafBasedSto.call(callback);
|
|
22810
|
+
const cancelAnimationFrameBasedSTO = (handle) => rafBasedSto.clear(handle);
|
|
22808
22811
|
function getLynxPixelRatio(params, runtime) {
|
|
22809
22812
|
var _a, _b, _c, _d, _e;
|
|
22810
22813
|
return (_e = (_d = (_a = params === null || params === void 0 ? void 0 : params.pixelRatio) !== null && _a !== void 0 ? _a : (_c = (_b = runtime === null || runtime === void 0 ? void 0 : runtime.getSystemInfoSync) === null || _b === void 0 ? void 0 : _b.call(runtime)) === null || _c === void 0 ? void 0 : _c.pixelRatio) !== null && _d !== void 0 ? _d : getGlobalSystemPixelRatio()) !== null && _e !== void 0 ? _e : 1;
|
|
@@ -22906,6 +22909,8 @@ class LynxEnvContribution extends BaseEnvContribution {
|
|
|
22906
22909
|
this.canvasMap = new Map();
|
|
22907
22910
|
this.freeCanvasList = [];
|
|
22908
22911
|
this.canvasIdx = 0;
|
|
22912
|
+
this.requestAnimationFrame = requestAnimationFrameBasedSTO;
|
|
22913
|
+
this.cancelAnimationFrame = cancelAnimationFrameBasedSTO;
|
|
22909
22914
|
this.supportsTouchEvents = true;
|
|
22910
22915
|
try {
|
|
22911
22916
|
this.supportsPointerEvents = !!globalThis.PointerEvent;
|
|
@@ -22918,10 +22923,20 @@ class LynxEnvContribution extends BaseEnvContribution {
|
|
|
22918
22923
|
this.applyStyles = true;
|
|
22919
22924
|
}
|
|
22920
22925
|
configure(service, params = {}) {
|
|
22926
|
+
var _a, _b;
|
|
22921
22927
|
if (service.env === this.type) {
|
|
22922
22928
|
service.setActiveEnvContribution(this);
|
|
22923
22929
|
this.lynxEnvParams = params;
|
|
22924
22930
|
this.lynxRuntime = getLynxRuntime(params);
|
|
22931
|
+
if (typeof ((_a = this.lynxRuntime) === null || _a === void 0 ? void 0 : _a.requestAnimationFrame) === 'function' &&
|
|
22932
|
+
typeof ((_b = this.lynxRuntime) === null || _b === void 0 ? void 0 : _b.cancelAnimationFrame) === 'function') {
|
|
22933
|
+
this.requestAnimationFrame = this.lynxRuntime.requestAnimationFrame.bind(this.lynxRuntime);
|
|
22934
|
+
this.cancelAnimationFrame = this.lynxRuntime.cancelAnimationFrame.bind(this.lynxRuntime);
|
|
22935
|
+
}
|
|
22936
|
+
else {
|
|
22937
|
+
this.requestAnimationFrame = requestAnimationFrameBasedSTO;
|
|
22938
|
+
this.cancelAnimationFrame = cancelAnimationFrameBasedSTO;
|
|
22939
|
+
}
|
|
22925
22940
|
}
|
|
22926
22941
|
}
|
|
22927
22942
|
getDynamicCanvasCount() {
|
|
@@ -22995,14 +23010,10 @@ class LynxEnvContribution extends BaseEnvContribution {
|
|
|
22995
23010
|
return getLynxPixelRatio(undefined, this.lynxRuntime);
|
|
22996
23011
|
}
|
|
22997
23012
|
getRequestAnimationFrame() {
|
|
22998
|
-
return
|
|
22999
|
-
return rafBasedSto.call(callback);
|
|
23000
|
-
};
|
|
23013
|
+
return this.requestAnimationFrame;
|
|
23001
23014
|
}
|
|
23002
23015
|
getCancelAnimationFrame() {
|
|
23003
|
-
return
|
|
23004
|
-
rafBasedSto.clear(h);
|
|
23005
|
-
};
|
|
23016
|
+
return this.cancelAnimationFrame;
|
|
23006
23017
|
}
|
|
23007
23018
|
mapToCanvasPoint(event) {
|
|
23008
23019
|
var _a;
|
|
@@ -242,4 +242,4 @@ export class BrowserEnvContribution extends BaseEnvContribution {
|
|
|
242
242
|
return navigator.clipboard.writeText(text).then((() => {})).catch((err => {}));
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
|
-
//# sourceMappingURL=browser-contribution.js.map
|
|
245
|
+
//# sourceMappingURL=browser-contribution.js.map
|
|
@@ -12,6 +12,8 @@ type LynxRuntime = Partial<{
|
|
|
12
12
|
createCanvasNG: (id?: string) => any;
|
|
13
13
|
createImage: (id: string) => any;
|
|
14
14
|
createOffscreenCanvas: () => any;
|
|
15
|
+
requestAnimationFrame: (callback: FrameRequestCallback) => number;
|
|
16
|
+
cancelAnimationFrame: (handle: number) => void;
|
|
15
17
|
krypton: LynxKryptonRuntime;
|
|
16
18
|
}>;
|
|
17
19
|
type LynxCanvasFactoryOptions = {
|
|
@@ -37,6 +39,8 @@ export declare class LynxEnvContribution extends BaseEnvContribution implements
|
|
|
37
39
|
canvasIdx: number;
|
|
38
40
|
private lynxRuntime?;
|
|
39
41
|
private lynxEnvParams?;
|
|
42
|
+
private requestAnimationFrame;
|
|
43
|
+
private cancelAnimationFrame;
|
|
40
44
|
constructor();
|
|
41
45
|
configure(service: IGlobal, params?: LynxEnvParams): void;
|
|
42
46
|
getDynamicCanvasCount(): number;
|
|
@@ -54,7 +58,7 @@ export declare class LynxEnvContribution extends BaseEnvContribution implements
|
|
|
54
58
|
releaseCanvas(canvas: ICanvasLike | string): void;
|
|
55
59
|
getDevicePixelRatio(): number;
|
|
56
60
|
getRequestAnimationFrame(): (callback: FrameRequestCallback) => number;
|
|
57
|
-
getCancelAnimationFrame(): (
|
|
61
|
+
getCancelAnimationFrame(): (handle: number) => void;
|
|
58
62
|
mapToCanvasPoint(event: any): any;
|
|
59
63
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
60
64
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
@@ -46,6 +46,8 @@ function getLynxRuntime(params) {
|
|
|
46
46
|
return null !== (_b = null !== (_a = null == params ? void 0 : params.lynx) && void 0 !== _a ? _a : null == params ? void 0 : params.runtime) && void 0 !== _b ? _b : getGlobalLynxRuntime();
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
const requestAnimationFrameBasedSTO = callback => rafBasedSto.call(callback), cancelAnimationFrameBasedSTO = handle => rafBasedSto.clear(handle);
|
|
50
|
+
|
|
49
51
|
function getLynxPixelRatio(params, runtime) {
|
|
50
52
|
var _a, _b, _c, _d, _e;
|
|
51
53
|
return null !== (_e = null !== (_d = null !== (_a = null == params ? void 0 : params.pixelRatio) && void 0 !== _a ? _a : null === (_c = null === (_b = null == runtime ? void 0 : runtime.getSystemInfoSync) || void 0 === _b ? void 0 : _b.call(runtime)) || void 0 === _c ? void 0 : _c.pixelRatio) && void 0 !== _d ? _d : getGlobalSystemPixelRatio()) && void 0 !== _e ? _e : 1;
|
|
@@ -126,7 +128,8 @@ export function createImageElement(src, isSvg = !1, runtime = getGlobalLynxRunti
|
|
|
126
128
|
export class LynxEnvContribution extends BaseEnvContribution {
|
|
127
129
|
constructor() {
|
|
128
130
|
super(), this.type = "lynx", this.supportEvent = !0, this.canvasMap = new Map, this.freeCanvasList = [],
|
|
129
|
-
this.canvasIdx = 0, this.
|
|
131
|
+
this.canvasIdx = 0, this.requestAnimationFrame = requestAnimationFrameBasedSTO,
|
|
132
|
+
this.cancelAnimationFrame = cancelAnimationFrameBasedSTO, this.supportsTouchEvents = !0;
|
|
130
133
|
try {
|
|
131
134
|
this.supportsPointerEvents = !!globalThis.PointerEvent, this.supportsMouseEvents = !!globalThis.MouseEvent;
|
|
132
135
|
} catch (err) {
|
|
@@ -135,8 +138,11 @@ export class LynxEnvContribution extends BaseEnvContribution {
|
|
|
135
138
|
this.applyStyles = !0;
|
|
136
139
|
}
|
|
137
140
|
configure(service, params = {}) {
|
|
141
|
+
var _a, _b;
|
|
138
142
|
service.env === this.type && (service.setActiveEnvContribution(this), this.lynxEnvParams = params,
|
|
139
|
-
this.lynxRuntime = getLynxRuntime(params))
|
|
143
|
+
this.lynxRuntime = getLynxRuntime(params), "function" == typeof (null === (_a = this.lynxRuntime) || void 0 === _a ? void 0 : _a.requestAnimationFrame) && "function" == typeof (null === (_b = this.lynxRuntime) || void 0 === _b ? void 0 : _b.cancelAnimationFrame) ? (this.requestAnimationFrame = this.lynxRuntime.requestAnimationFrame.bind(this.lynxRuntime),
|
|
144
|
+
this.cancelAnimationFrame = this.lynxRuntime.cancelAnimationFrame.bind(this.lynxRuntime)) : (this.requestAnimationFrame = requestAnimationFrameBasedSTO,
|
|
145
|
+
this.cancelAnimationFrame = cancelAnimationFrameBasedSTO));
|
|
140
146
|
}
|
|
141
147
|
getDynamicCanvasCount() {
|
|
142
148
|
return this.freeCanvasList.length;
|
|
@@ -178,14 +184,10 @@ export class LynxEnvContribution extends BaseEnvContribution {
|
|
|
178
184
|
return getLynxPixelRatio(void 0, this.lynxRuntime);
|
|
179
185
|
}
|
|
180
186
|
getRequestAnimationFrame() {
|
|
181
|
-
return
|
|
182
|
-
return rafBasedSto.call(callback);
|
|
183
|
-
};
|
|
187
|
+
return this.requestAnimationFrame;
|
|
184
188
|
}
|
|
185
189
|
getCancelAnimationFrame() {
|
|
186
|
-
return
|
|
187
|
-
rafBasedSto.clear(h);
|
|
188
|
-
};
|
|
190
|
+
return this.cancelAnimationFrame;
|
|
189
191
|
}
|
|
190
192
|
mapToCanvasPoint(event) {
|
|
191
193
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env/contributions/lynx-contribution.ts"],"names":[],"mappings":"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","file":"lynx-contribution.js","sourcesContent":["import {\n BaseEnvContribution,\n rafBasedSto,\n type EnvType,\n type ICanvasLike,\n type ICreateCanvasParams,\n type IEnvContribution,\n type IGlobal,\n type ILynxCanvas\n} from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport { CanvasWrapEnableWH } from './canvas-wrap';\n\ndeclare const lynx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id?: string) => any;\n createImage: (id: string) => any;\n createOffscreenCanvas: () => any;\n krypton?: {\n createCanvas?: (id: string) => any;\n createCanvasNG?: () => any;\n CanvasElement?: new (name: string) => any;\n };\n};\ndeclare const SystemInfo: {\n pixelRatio: number;\n};\n\ntype LynxKryptonRuntime = Partial<{\n createCanvas: (id: string) => any;\n createCanvasNG: () => any;\n CanvasElement: new (name: string) => any;\n}>;\n\ntype LynxRuntime = Partial<{\n getSystemInfoSync: () => { pixelRatio?: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id?: string) => any;\n createImage: (id: string) => any;\n createOffscreenCanvas: () => any;\n krypton: LynxKryptonRuntime;\n}>;\n\ntype LynxCanvasFactoryOptions = {\n id: string;\n width: number;\n height: number;\n dpr: number;\n offscreen: boolean;\n};\n\ntype LynxCanvasFactory = (options: LynxCanvasFactoryOptions) => any;\n\ntype LynxEnvParams = {\n pixelRatio?: number;\n lynx?: LynxRuntime;\n runtime?: LynxRuntime;\n canvasFactory?: LynxCanvasFactory;\n};\n\nconst LYNX_CANVAS_BRIDGE_ERROR =\n 'Lynx canvas bridge is unavailable. VRender Lynx env requires envParams.canvasFactory ' +\n 'or a Lynx runtime that exposes createCanvasNG/createCanvas/createOffscreenCanvas/krypton canvas APIs.';\nconst LYNX_CANVAS_SIZE_ERROR =\n 'Lynx canvas size is unavailable. Pass stage width/height when creating a Lynx stage canvas.';\n\nfunction isValidCoordinate(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction pickCoordinate(...values: unknown[]): number | undefined {\n for (let i = 0; i < values.length; i++) {\n if (isValidCoordinate(values[i])) {\n return values[i] as number;\n }\n }\n return undefined;\n}\n\nfunction getPrimaryTouch(event: any) {\n return event?.changedTouches?.[0] ?? event?.touches?.[0];\n}\n\nfunction getLynxEventPoint(event: any) {\n const touch = getPrimaryTouch(event);\n const x = pickCoordinate(\n event?.x,\n event?.offsetX,\n event?.clientX,\n event?.pageX,\n touch?.x,\n touch?.offsetX,\n touch?.clientX,\n touch?.pageX\n );\n const y = pickCoordinate(\n event?.y,\n event?.offsetY,\n event?.clientY,\n event?.pageY,\n touch?.y,\n touch?.offsetY,\n touch?.clientY,\n touch?.pageY\n );\n\n return x == null || y == null ? null : { x, y };\n}\n\nfunction getGlobalLynxRuntime(): LynxRuntime | undefined {\n try {\n return typeof lynx !== 'undefined' ? lynx : undefined;\n } catch (err) {\n return undefined;\n }\n}\n\nfunction getGlobalSystemPixelRatio(): number | undefined {\n try {\n return typeof SystemInfo !== 'undefined' ? SystemInfo.pixelRatio : undefined;\n } catch (err) {\n return undefined;\n }\n}\n\nfunction getLynxRuntime(params?: LynxEnvParams): LynxRuntime | undefined {\n return params?.lynx ?? params?.runtime ?? getGlobalLynxRuntime();\n}\n\nfunction getLynxPixelRatio(params?: LynxEnvParams, runtime?: LynxRuntime): number {\n return params?.pixelRatio ?? runtime?.getSystemInfoSync?.()?.pixelRatio ?? getGlobalSystemPixelRatio() ?? 1;\n}\n\nfunction attachLynxCanvasToView(canvas: any, id: string) {\n canvas?.attachToCanvasView?.(id);\n return canvas;\n}\n\nfunction createBoundLynxCanvas(id: string, runtime?: LynxRuntime) {\n if (typeof runtime?.krypton?.createCanvas === 'function') {\n const canvas = runtime.krypton.createCanvas(id);\n if (canvas) {\n return canvas;\n }\n }\n\n if (typeof runtime?.createCanvasNG === 'function') {\n const canvas = runtime.createCanvasNG(id);\n if (canvas) {\n return attachLynxCanvasToView(canvas, id);\n }\n }\n\n if (typeof runtime?.krypton?.createCanvasNG === 'function') {\n const canvas = runtime.krypton.createCanvasNG();\n if (canvas) {\n return attachLynxCanvasToView(canvas, id);\n }\n }\n\n if (typeof runtime?.krypton?.CanvasElement === 'function') {\n return new runtime.krypton.CanvasElement(id);\n }\n\n if (typeof runtime?.createCanvas === 'function') {\n const canvas = runtime.createCanvas(id);\n if (canvas) {\n return canvas;\n }\n }\n\n return null;\n}\n\nfunction getCanvasSize(width?: number, height?: number) {\n if (!isValidCoordinate(width) || !isValidCoordinate(height)) {\n throw new Error(LYNX_CANVAS_SIZE_ERROR);\n }\n return { width, height };\n}\n\nfunction wrapLynxNativeCanvas(nativeCanvas: any, id: string, width: number, height: number, dpr: number) {\n nativeCanvas.width = width * dpr;\n nativeCanvas.height = height * dpr;\n\n const ctx = nativeCanvas.getContext('2d');\n return new CanvasWrapEnableWH(nativeCanvas, ctx, dpr, width, height, id);\n}\n\nfunction createLynxNativeCanvas(\n id: string,\n width: number,\n height: number,\n dpr: number,\n offscreen: boolean,\n params: LynxEnvParams,\n runtime?: LynxRuntime\n) {\n if (params.canvasFactory) {\n return params.canvasFactory({\n id,\n width,\n height,\n dpr,\n offscreen\n });\n }\n\n if (offscreen) {\n if (typeof runtime?.createOffscreenCanvas === 'function') {\n return runtime.createOffscreenCanvas();\n }\n } else {\n const canvas = createBoundLynxCanvas(id, runtime);\n if (canvas) {\n return canvas;\n }\n }\n\n throw new Error(LYNX_CANVAS_BRIDGE_ERROR);\n}\n\nexport function createImageElement(\n src: string,\n isSvg: boolean = false,\n runtime: LynxRuntime | undefined = getGlobalLynxRuntime()\n): Promise<HTMLImageElement> {\n if (isSvg) {\n return Promise.reject();\n }\n if (typeof runtime?.createImage !== 'function') {\n return Promise.reject(new Error('Lynx image bridge is unavailable.'));\n }\n const img = runtime.createImage(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\nexport class LynxEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'lynx';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ILynxCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ILynxCanvas[] = [];\n canvasIdx: number = 0;\n private lynxRuntime?: LynxRuntime;\n private lynxEnvParams?: LynxEnvParams;\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: LynxEnvParams = {}) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n this.lynxEnvParams = params;\n this.lynxRuntime = getLynxRuntime(params);\n\n // loadFeishuContributions();\n }\n }\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return 9999;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false, this.lynxRuntime);\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 // Lynx 不支持 DOMParser 和 URL.createObjectURL,无法解析 svg 字符串,可以通过 url 使用 svg 资源\n return Promise.resolve({\n data: null,\n loadState: 'fail'\n });\n }\n\n createCanvas(params: ICreateCanvasParams): ILynxCanvas {\n if (params.id != null) {\n const id = String(params.id);\n const existing = this.canvasMap.get(id);\n if (existing) {\n return existing;\n }\n const envParams = this.lynxEnvParams ?? {};\n const runtime = getLynxRuntime(envParams);\n const dpr = params.dpr ?? getLynxPixelRatio(envParams, runtime);\n const size = getCanvasSize(params.width, params.height);\n const nativeCanvas = createLynxNativeCanvas(id, size.width, size.height, dpr, false, envParams, runtime);\n const canvas = wrapLynxNativeCanvas(nativeCanvas, id, size.width, size.height, dpr);\n this.canvasMap.set(id, canvas);\n return canvas;\n }\n\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n if (result) {\n return result;\n }\n\n const envParams = this.lynxEnvParams ?? {};\n const runtime = getLynxRuntime(envParams);\n const dpr = params.dpr ?? getLynxPixelRatio(envParams, runtime);\n const size = getCanvasSize(params.width, params.height);\n const id = Math.random().toString();\n const nativeCanvas = createLynxNativeCanvas(id, size.width, size.height, dpr, true, envParams, runtime);\n const canvas = wrapLynxNativeCanvas(nativeCanvas, id, size.width, size.height, dpr);\n this.canvasMap.set(id, canvas);\n this.freeCanvasList.push(canvas);\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return getLynxPixelRatio(undefined, this.lynxRuntime);\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 return function (callback: FrameRequestCallback) {\n return rafBasedSto.call(callback);\n } as any;\n }\n\n getCancelAnimationFrame(): (h: number) => void {\n return (h: number) => {\n rafBasedSto.clear(h);\n };\n }\n\n mapToCanvasPoint(event: any) {\n return getLynxEventPoint(event) ?? event;\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"]}
|
|
1
|
+
{"version":3,"sources":["../src/env/contributions/lynx-contribution.ts"],"names":[],"mappings":"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","file":"lynx-contribution.js","sourcesContent":["import {\n BaseEnvContribution,\n rafBasedSto,\n type EnvType,\n type ICanvasLike,\n type ICreateCanvasParams,\n type IEnvContribution,\n type IGlobal,\n type ILynxCanvas\n} from '@visactor/vrender-core';\n// import { loadFeishuContributions } from '../../../kits';\nimport { CanvasWrapEnableWH } from './canvas-wrap';\n\ndeclare const lynx: {\n getSystemInfoSync: () => { pixelRatio: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id?: string) => any;\n createImage: (id: string) => any;\n createOffscreenCanvas: () => any;\n krypton?: {\n createCanvas?: (id: string) => any;\n createCanvasNG?: () => any;\n CanvasElement?: new (name: string) => any;\n };\n};\ndeclare const SystemInfo: {\n pixelRatio: number;\n};\n\ntype LynxKryptonRuntime = Partial<{\n createCanvas: (id: string) => any;\n createCanvasNG: () => any;\n CanvasElement: new (name: string) => any;\n}>;\n\ntype LynxRuntime = Partial<{\n getSystemInfoSync: () => { pixelRatio?: number };\n createCanvas: (id: string) => any;\n createCanvasNG: (id?: string) => any;\n createImage: (id: string) => any;\n createOffscreenCanvas: () => any;\n requestAnimationFrame: (callback: FrameRequestCallback) => number;\n cancelAnimationFrame: (handle: number) => void;\n krypton: LynxKryptonRuntime;\n}>;\n\ntype LynxCanvasFactoryOptions = {\n id: string;\n width: number;\n height: number;\n dpr: number;\n offscreen: boolean;\n};\n\ntype LynxCanvasFactory = (options: LynxCanvasFactoryOptions) => any;\n\ntype LynxEnvParams = {\n pixelRatio?: number;\n lynx?: LynxRuntime;\n runtime?: LynxRuntime;\n canvasFactory?: LynxCanvasFactory;\n};\n\nconst LYNX_CANVAS_BRIDGE_ERROR =\n 'Lynx canvas bridge is unavailable. VRender Lynx env requires envParams.canvasFactory ' +\n 'or a Lynx runtime that exposes createCanvasNG/createCanvas/createOffscreenCanvas/krypton canvas APIs.';\nconst LYNX_CANVAS_SIZE_ERROR =\n 'Lynx canvas size is unavailable. Pass stage width/height when creating a Lynx stage canvas.';\n\nfunction isValidCoordinate(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction pickCoordinate(...values: unknown[]): number | undefined {\n for (let i = 0; i < values.length; i++) {\n if (isValidCoordinate(values[i])) {\n return values[i] as number;\n }\n }\n return undefined;\n}\n\nfunction getPrimaryTouch(event: any) {\n return event?.changedTouches?.[0] ?? event?.touches?.[0];\n}\n\nfunction getLynxEventPoint(event: any) {\n const touch = getPrimaryTouch(event);\n const x = pickCoordinate(\n event?.x,\n event?.offsetX,\n event?.clientX,\n event?.pageX,\n touch?.x,\n touch?.offsetX,\n touch?.clientX,\n touch?.pageX\n );\n const y = pickCoordinate(\n event?.y,\n event?.offsetY,\n event?.clientY,\n event?.pageY,\n touch?.y,\n touch?.offsetY,\n touch?.clientY,\n touch?.pageY\n );\n\n return x == null || y == null ? null : { x, y };\n}\n\nfunction getGlobalLynxRuntime(): LynxRuntime | undefined {\n try {\n return typeof lynx !== 'undefined' ? lynx : undefined;\n } catch (err) {\n return undefined;\n }\n}\n\nfunction getGlobalSystemPixelRatio(): number | undefined {\n try {\n return typeof SystemInfo !== 'undefined' ? SystemInfo.pixelRatio : undefined;\n } catch (err) {\n return undefined;\n }\n}\n\nfunction getLynxRuntime(params?: LynxEnvParams): LynxRuntime | undefined {\n return params?.lynx ?? params?.runtime ?? getGlobalLynxRuntime();\n}\n\nconst requestAnimationFrameBasedSTO = (callback: FrameRequestCallback): number => rafBasedSto.call(callback);\nconst cancelAnimationFrameBasedSTO = (handle: number): void => rafBasedSto.clear(handle);\n\nfunction getLynxPixelRatio(params?: LynxEnvParams, runtime?: LynxRuntime): number {\n return params?.pixelRatio ?? runtime?.getSystemInfoSync?.()?.pixelRatio ?? getGlobalSystemPixelRatio() ?? 1;\n}\n\nfunction attachLynxCanvasToView(canvas: any, id: string) {\n canvas?.attachToCanvasView?.(id);\n return canvas;\n}\n\nfunction createBoundLynxCanvas(id: string, runtime?: LynxRuntime) {\n if (typeof runtime?.krypton?.createCanvas === 'function') {\n const canvas = runtime.krypton.createCanvas(id);\n if (canvas) {\n return canvas;\n }\n }\n\n if (typeof runtime?.createCanvasNG === 'function') {\n const canvas = runtime.createCanvasNG(id);\n if (canvas) {\n return attachLynxCanvasToView(canvas, id);\n }\n }\n\n if (typeof runtime?.krypton?.createCanvasNG === 'function') {\n const canvas = runtime.krypton.createCanvasNG();\n if (canvas) {\n return attachLynxCanvasToView(canvas, id);\n }\n }\n\n if (typeof runtime?.krypton?.CanvasElement === 'function') {\n return new runtime.krypton.CanvasElement(id);\n }\n\n if (typeof runtime?.createCanvas === 'function') {\n const canvas = runtime.createCanvas(id);\n if (canvas) {\n return canvas;\n }\n }\n\n return null;\n}\n\nfunction getCanvasSize(width?: number, height?: number) {\n if (!isValidCoordinate(width) || !isValidCoordinate(height)) {\n throw new Error(LYNX_CANVAS_SIZE_ERROR);\n }\n return { width, height };\n}\n\nfunction wrapLynxNativeCanvas(nativeCanvas: any, id: string, width: number, height: number, dpr: number) {\n nativeCanvas.width = width * dpr;\n nativeCanvas.height = height * dpr;\n\n const ctx = nativeCanvas.getContext('2d');\n return new CanvasWrapEnableWH(nativeCanvas, ctx, dpr, width, height, id);\n}\n\nfunction createLynxNativeCanvas(\n id: string,\n width: number,\n height: number,\n dpr: number,\n offscreen: boolean,\n params: LynxEnvParams,\n runtime?: LynxRuntime\n) {\n if (params.canvasFactory) {\n return params.canvasFactory({\n id,\n width,\n height,\n dpr,\n offscreen\n });\n }\n\n if (offscreen) {\n if (typeof runtime?.createOffscreenCanvas === 'function') {\n return runtime.createOffscreenCanvas();\n }\n } else {\n const canvas = createBoundLynxCanvas(id, runtime);\n if (canvas) {\n return canvas;\n }\n }\n\n throw new Error(LYNX_CANVAS_BRIDGE_ERROR);\n}\n\nexport function createImageElement(\n src: string,\n isSvg: boolean = false,\n runtime: LynxRuntime | undefined = getGlobalLynxRuntime()\n): Promise<HTMLImageElement> {\n if (isSvg) {\n return Promise.reject();\n }\n if (typeof runtime?.createImage !== 'function') {\n return Promise.reject(new Error('Lynx image bridge is unavailable.'));\n }\n const img = runtime.createImage(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\nexport class LynxEnvContribution extends BaseEnvContribution implements IEnvContribution {\n type: EnvType = 'lynx';\n supportEvent: boolean = true;\n // 所有添加进来的canvas\n canvasMap: Map<string, ILynxCanvas> = new Map();\n // 所有可用的canvasList\n freeCanvasList: ILynxCanvas[] = [];\n canvasIdx: number = 0;\n private lynxRuntime?: LynxRuntime;\n private lynxEnvParams?: LynxEnvParams;\n private requestAnimationFrame = requestAnimationFrameBasedSTO;\n private cancelAnimationFrame = cancelAnimationFrameBasedSTO;\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: LynxEnvParams = {}) {\n if (service.env === this.type) {\n service.setActiveEnvContribution(this);\n this.lynxEnvParams = params;\n this.lynxRuntime = getLynxRuntime(params);\n\n if (\n typeof this.lynxRuntime?.requestAnimationFrame === 'function' &&\n typeof this.lynxRuntime?.cancelAnimationFrame === 'function'\n ) {\n this.requestAnimationFrame = this.lynxRuntime.requestAnimationFrame.bind(this.lynxRuntime);\n this.cancelAnimationFrame = this.lynxRuntime.cancelAnimationFrame.bind(this.lynxRuntime);\n } else {\n this.requestAnimationFrame = requestAnimationFrameBasedSTO;\n this.cancelAnimationFrame = cancelAnimationFrameBasedSTO;\n }\n\n // loadFeishuContributions();\n }\n }\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount(): number {\n return this.freeCanvasList.length;\n }\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount(): number {\n return 9999;\n }\n\n loadImage(url: string): Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }> {\n const imagePromise = createImageElement(url, false, this.lynxRuntime);\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 // Lynx 不支持 DOMParser 和 URL.createObjectURL,无法解析 svg 字符串,可以通过 url 使用 svg 资源\n return Promise.resolve({\n data: null,\n loadState: 'fail'\n });\n }\n\n createCanvas(params: ICreateCanvasParams): ILynxCanvas {\n if (params.id != null) {\n const id = String(params.id);\n const existing = this.canvasMap.get(id);\n if (existing) {\n return existing;\n }\n const envParams = this.lynxEnvParams ?? {};\n const runtime = getLynxRuntime(envParams);\n const dpr = params.dpr ?? getLynxPixelRatio(envParams, runtime);\n const size = getCanvasSize(params.width, params.height);\n const nativeCanvas = createLynxNativeCanvas(id, size.width, size.height, dpr, false, envParams, runtime);\n const canvas = wrapLynxNativeCanvas(nativeCanvas, id, size.width, size.height, dpr);\n this.canvasMap.set(id, canvas);\n return canvas;\n }\n\n const result = this.freeCanvasList[this.canvasIdx] || this.freeCanvasList[this.freeCanvasList.length - 1];\n this.canvasIdx++;\n if (result) {\n return result;\n }\n\n const envParams = this.lynxEnvParams ?? {};\n const runtime = getLynxRuntime(envParams);\n const dpr = params.dpr ?? getLynxPixelRatio(envParams, runtime);\n const size = getCanvasSize(params.width, params.height);\n const id = Math.random().toString();\n const nativeCanvas = createLynxNativeCanvas(id, size.width, size.height, dpr, true, envParams, runtime);\n const canvas = wrapLynxNativeCanvas(nativeCanvas, id, size.width, size.height, dpr);\n this.canvasMap.set(id, canvas);\n this.freeCanvasList.push(canvas);\n return canvas;\n }\n\n createOffscreenCanvas(params: ICreateCanvasParams) {\n return;\n }\n\n releaseCanvas(canvas: ICanvasLike | string) {\n return;\n }\n\n getDevicePixelRatio(): number {\n return getLynxPixelRatio(undefined, this.lynxRuntime);\n }\n\n getRequestAnimationFrame(): (callback: FrameRequestCallback) => number {\n return this.requestAnimationFrame;\n }\n\n getCancelAnimationFrame(): (handle: number) => void {\n return this.cancelAnimationFrame;\n }\n\n mapToCanvasPoint(event: any) {\n return getLynxEventPoint(event) ?? event;\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"]}
|
package/es/graphic/Lottie.js
CHANGED
package/es/installers/app.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vrender-kits",
|
|
3
|
-
"version": "1.1.4-alpha.
|
|
3
|
+
"version": "1.1.4-alpha.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "cjs/index-node.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@visactor/vutils": "~1.0.12",
|
|
47
|
-
"@visactor/vrender-core": "1.1.4-alpha.
|
|
47
|
+
"@visactor/vrender-core": "1.1.4-alpha.3",
|
|
48
48
|
"@resvg/resvg-js": "2.4.1",
|
|
49
49
|
"roughjs": "4.6.6",
|
|
50
50
|
"gifuct-js": "2.1.2",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
"vite": "3.2.6",
|
|
70
70
|
"typescript": "4.9.5",
|
|
71
71
|
"cross-env": "^7.0.3",
|
|
72
|
-
"@internal/eslint-config": "0.0.1",
|
|
73
72
|
"@internal/bundler": "0.0.1",
|
|
73
|
+
"@internal/eslint-config": "0.0.1",
|
|
74
74
|
"@internal/ts-config": "0.0.1"
|
|
75
75
|
},
|
|
76
76
|
"keywords": [
|