@visactor/vrender-kits 1.1.4-alpha.2 → 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.
@@ -247,4 +247,4 @@ class BrowserEnvContribution extends vrender_core_1.BaseEnvContribution {
247
247
  }
248
248
 
249
249
  exports.BrowserEnvContribution = BrowserEnvContribution;
250
- //# sourceMappingURL=browser-contribution.js.map
250
+ //# 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(): (h: number) => void;
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.supportsTouchEvents = !0;
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 function(callback) {
186
- return vrender_core_1.rafBasedSto.call(callback);
187
- };
191
+ return this.requestAnimationFrame;
188
192
  }
189
193
  getCancelAnimationFrame() {
190
- return h => {
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"]}
@@ -51,4 +51,4 @@ class DragNDrop {
51
51
  }
52
52
 
53
53
  exports.DragNDrop = DragNDrop;
54
- //# sourceMappingURL=drag.js.map
54
+ //# sourceMappingURL=drag.js.map
@@ -58,4 +58,5 @@ function createLottie(attributes) {
58
58
  }
59
59
 
60
60
  exports.Lottie = Lottie, Lottie.NOWORK_ANIMATE_ATTR = vrender_core_1.NOWORK_ANIMATE_ATTR,
61
- exports.createLottie = createLottie;
61
+ exports.createLottie = createLottie;
62
+ //# sourceMappingURL=Lottie.js.map
@@ -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
@@ -6287,7 +6287,7 @@ class Node extends EventEmitter {
6287
6287
  constructor() {
6288
6288
  super(), this._uid = Generator.GenAutoIncrementId(), this._firstChild = null, this._lastChild = null, this.parent = null, this._count = 1;
6289
6289
  }
6290
- onParentSharedStateTreeChanged(_stage, _layer, _inheritedSharedStateScope) {}
6290
+ onParentSharedStateTreeChanged(_stage, _layer) {}
6291
6291
  forEachChildren(cb, reverse = !1) {
6292
6292
  if (reverse) {
6293
6293
  let child = this._lastChild,
@@ -8209,8 +8209,6 @@ class StateEngine {
8209
8209
  this.graphic === graphic && this.baseAttributes === baseAttributes || this.invalidateResolverCache(), this.graphic = graphic, this.baseAttributes = baseAttributes;
8210
8210
  }
8211
8211
  applyStates(stateNames) {
8212
- const singleStaticStateResult = this.tryApplySingleStaticState(stateNames);
8213
- if (singleStaticStateResult) return singleStaticStateResult;
8214
8212
  const uniqueStates = Array.from(new Set(stateNames)),
8215
8213
  sortedStates = this.sortStates(uniqueStates),
8216
8214
  adjudicated = this.adjudicate(sortedStates),
@@ -8225,19 +8223,6 @@ class StateEngine {
8225
8223
  suppressed: [...this._suppressed]
8226
8224
  };
8227
8225
  }
8228
- tryApplySingleStaticState(stateNames) {
8229
- if (1 !== stateNames.length || "shallow" !== this.mergeMode) return;
8230
- const stateName = stateNames[0],
8231
- definition = this.compiledDefinitions.get(stateName);
8232
- if (definition && (definition.hasResolver || definition.exclude.size || definition.suppress.size)) return;
8233
- const changed = 1 !== this._activeStates.length || this._activeStates[0] !== stateName || 1 !== this._effectiveStates.length || this._effectiveStates[0] !== stateName || 0 !== this._suppressed.length;
8234
- return this._activeStates = [stateName], this._effectiveStates = [stateName], this._suppressed = [], !changed && this.resolverCacheValid || (this.resolverPatchCache.clear(), this.resolverCacheKey = stateName, this.resolverCacheValid = !0, this._resolvedPatch = (null == definition ? void 0 : definition.patch) ? cloneValue(definition.patch) : {}), {
8235
- changed: changed,
8236
- activeStates: [...this._activeStates],
8237
- effectiveStates: [...this._effectiveStates],
8238
- suppressed: []
8239
- };
8240
- }
8241
8226
  addState(stateName, keepCurrentStates) {
8242
8227
  if (this._activeStates.includes(stateName) && (keepCurrentStates || 1 === this._activeStates.length)) return {
8243
8228
  changed: !1,
@@ -8650,17 +8635,14 @@ class GraphicImpl extends Node {
8650
8635
  }
8651
8636
  return null === (_a = this.stage) || void 0 === _a ? void 0 : _a.rootSharedStateScope;
8652
8637
  }
8653
- syncSharedStateScopeBinding(nextScope, markDirty = !0) {
8638
+ syncSharedStateScopeBindingFromTree(markDirty = !0) {
8654
8639
  var _a;
8640
+ const nextScope = this.resolveBoundSharedStateScope();
8655
8641
  return this.boundSharedStateScope === nextScope ? (this.syncSharedStateActiveRegistrations(), !1) : (this.boundSharedStateScope = nextScope, this.boundSharedStateRevision = void 0, this.compiledStateDefinitions = void 0, this.compiledStateDefinitionsCacheKey = void 0, this.stateEngine = void 0, this.stateEngineCompiledDefinitions = void 0, this.syncSharedStateActiveRegistrations(), markDirty && (null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) && this.markSharedStateDirty(), !0);
8656
8642
  }
8657
- syncSharedStateScopeBindingFromTree(markDirty = !0, inheritedSharedStateScope) {
8658
- const nextScope = void 0 === inheritedSharedStateScope ? this.resolveBoundSharedStateScope() : null != inheritedSharedStateScope ? inheritedSharedStateScope : void 0;
8659
- return this.syncSharedStateScopeBinding(nextScope, markDirty);
8660
- }
8661
- syncSharedStateScopeBindingOnTreeChange(markDirty = !0, inheritedSharedStateScope) {
8643
+ syncSharedStateScopeBindingOnTreeChange(markDirty = !0) {
8662
8644
  var _a, _b;
8663
- return !!((null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || this.boundSharedStateScope || (null === (_b = this.registeredActiveScopes) || void 0 === _b ? void 0 : _b.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingFromTree(markDirty, inheritedSharedStateScope);
8645
+ return !!((null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || this.boundSharedStateScope || (null === (_b = this.registeredActiveScopes) || void 0 === _b ? void 0 : _b.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingFromTree(markDirty);
8664
8646
  }
8665
8647
  syncSharedStateActiveRegistrations() {
8666
8648
  var _a;
@@ -8668,7 +8650,6 @@ class GraphicImpl extends Node {
8668
8650
  if (!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || !this.boundSharedStateScope) return (null == previousScopes ? void 0 : previousScopes.size) && (previousScopes.forEach(scope => {
8669
8651
  scope.subtreeActiveDescendants.delete(this);
8670
8652
  }), previousScopes.clear()), void (this.registeredActiveScopes = void 0);
8671
- if ((null == previousScopes ? void 0 : previousScopes.size) && this.isSharedStateScopeChainRegistered(previousScopes)) return;
8672
8653
  const nextScopes = new Set(collectSharedStateScopeChain(this.boundSharedStateScope));
8673
8654
  null == previousScopes || previousScopes.forEach(scope => {
8674
8655
  nextScopes.has(scope) || scope.subtreeActiveDescendants.delete(this);
@@ -8676,15 +8657,6 @@ class GraphicImpl extends Node {
8676
8657
  scope.subtreeActiveDescendants.add(this);
8677
8658
  }), this.registeredActiveScopes = nextScopes;
8678
8659
  }
8679
- isSharedStateScopeChainRegistered(previousScopes) {
8680
- let scope = this.boundSharedStateScope,
8681
- scopeCount = 0;
8682
- for (; scope;) {
8683
- if (!previousScopes.has(scope)) return !1;
8684
- scopeCount += 1, scope = scope.parentScope;
8685
- }
8686
- return scopeCount === previousScopes.size;
8687
- }
8688
8660
  clearSharedStateActiveRegistrations() {
8689
8661
  const previousScopes = this.registeredActiveScopes;
8690
8662
  previousScopes && (previousScopes.forEach(scope => {
@@ -8694,8 +8666,8 @@ class GraphicImpl extends Node {
8694
8666
  markSharedStateDirty() {
8695
8667
  this.sharedStateDirty = !0, enqueueGraphicSharedStateRefresh(this.stage, this), scheduleStageSharedStateRefresh(this.stage);
8696
8668
  }
8697
- onParentSharedStateTreeChanged(stage, layer, inheritedSharedStateScope) {
8698
- this.stage === stage && this.layer === layer ? this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope) : this.setStage(stage, layer, inheritedSharedStateScope);
8669
+ onParentSharedStateTreeChanged(stage, layer) {
8670
+ this.stage === stage && this.layer === layer ? this.syncSharedStateScopeBindingOnTreeChange() : this.setStage(stage, layer);
8699
8671
  }
8700
8672
  refreshSharedStateBeforeRender() {
8701
8673
  var _a;
@@ -9346,10 +9318,6 @@ class GraphicImpl extends Node {
9346
9318
  var _a;
9347
9319
  return null === (_a = this.states) || void 0 === _a ? void 0 : _a[stateName];
9348
9320
  }
9349
- setStateDefinitionsWithCompiled(definitions, compiledDefinitions) {
9350
- var _a;
9351
- this.states = definitions, this.localStateDefinitionsSource !== definitions && (this.localStateDefinitionsSource = definitions, this.localStateDefinitionsVersion = (null !== (_a = this.localStateDefinitionsVersion) && void 0 !== _a ? _a : 0) + 1), this.compiledStateDefinitions = compiledDefinitions, this.compiledStateDefinitionsCacheKey = `local:${this.localStateDefinitionsVersion}`;
9352
- }
9353
9321
  getStateResolveBaseAttrs() {
9354
9322
  var _a;
9355
9323
  return null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : this.attribute;
@@ -9543,10 +9511,8 @@ class GraphicImpl extends Node {
9543
9511
  transition.changed && this.useStates(transition.states, hasAnimation);
9544
9512
  }
9545
9513
  addState(stateName, keepCurrentStates, hasAnimation) {
9546
- const currentStates = this.currentStates;
9547
- if ((null == currentStates ? void 0 : currentStates.includes(stateName)) && (keepCurrentStates || 1 === currentStates.length)) return;
9548
- const nextStates = keepCurrentStates && (null == currentStates ? void 0 : currentStates.length) ? currentStates.concat([stateName]) : [stateName];
9549
- this.useStates(nextStates, hasAnimation);
9514
+ const transition = this.resolveAddStateTransition(stateName, keepCurrentStates);
9515
+ transition.changed && this.useStates(transition.states, hasAnimation);
9550
9516
  }
9551
9517
  setStates(states, options) {
9552
9518
  var _a, _b, _c;
@@ -9699,12 +9665,12 @@ class GraphicImpl extends Node {
9699
9665
  this._globalTransMatrix.translate(scrollX, scrollY);
9700
9666
  }
9701
9667
  }
9702
- setStage(stage, layer, inheritedSharedStateScope) {
9668
+ setStage(stage, layer) {
9703
9669
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
9704
9670
  const graphicService = null !== (_c = null !== (_a = null == stage ? void 0 : stage.graphicService) && void 0 !== _a ? _a : null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application.graphicService,
9705
9671
  previousStage = this.stage;
9706
9672
  if (this.stage !== stage || this.layer !== layer) {
9707
- if (this.stage = stage, this.layer = layer, ((null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length) || this.boundSharedStateScope || (null === (_e = this.registeredActiveScopes) || void 0 === _e ? void 0 : _e.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope), this.setStageToShadowRoot(stage, layer), this.mayHaveTrackedAnimates() && this.hasAnyTrackedAnimate()) {
9673
+ if (this.stage = stage, this.layer = layer, ((null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length) || this.boundSharedStateScope || (null === (_e = this.registeredActiveScopes) || void 0 === _e ? void 0 : _e.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0), this.setStageToShadowRoot(stage, layer), this.mayHaveTrackedAnimates() && this.hasAnyTrackedAnimate()) {
9708
9674
  const previousTimeline = null === (_f = null == previousStage ? void 0 : previousStage.getTimeline) || void 0 === _f ? void 0 : _f.call(previousStage),
9709
9675
  nextTimeline = null === (_g = null == stage ? void 0 : stage.getTimeline) || void 0 === _g ? void 0 : _g.call(stage),
9710
9676
  detachedStageAnimates = [];
@@ -9721,7 +9687,7 @@ class GraphicImpl extends Node {
9721
9687
  }
9722
9688
  return this._onSetStage && this._onSetStage(this, stage, layer), void (null === (_h = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _h || _h.call(graphicService, this, stage));
9723
9689
  }
9724
- ((null === (_j = this.currentStates) || void 0 === _j ? void 0 : _j.length) || this.boundSharedStateScope || (null === (_k = this.registeredActiveScopes) || void 0 === _k ? void 0 : _k.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope);
9690
+ ((null === (_j = this.currentStates) || void 0 === _j ? void 0 : _j.length) || this.boundSharedStateScope || (null === (_k = this.registeredActiveScopes) || void 0 === _k ? void 0 : _k.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0);
9725
9691
  }
9726
9692
  detachStageForRelease() {
9727
9693
  var _a, _b, _c;
@@ -10110,17 +10076,17 @@ class Group extends Graphic {
10110
10076
  }
10111
10077
  incrementalAppendChild(node) {
10112
10078
  const data = super.appendChild(node);
10113
- return data && this.shouldSyncChildSharedStateTreeBinding(data) && this.syncChildSharedStateTreeBinding(data), this.addUpdateBoundTag(), this.getGraphicService().onAddIncremental(node, this, this.stage), data;
10079
+ return data && this.syncChildSharedStateTreeBinding(data), this.addUpdateBoundTag(), this.getGraphicService().onAddIncremental(node, this, this.stage), data;
10114
10080
  }
10115
10081
  incrementalClearChild() {
10116
10082
  super.removeAllChild(), this.addUpdateBoundTag(), this.getGraphicService().onClearIncremental(this, this.stage);
10117
10083
  }
10118
10084
  _updateChildToStage(child) {
10119
- return child && this.shouldSyncChildSharedStateTreeBinding(child) && this.syncChildSharedStateTreeBinding(child), this.addUpdateBoundTag(), child;
10085
+ return child && this.syncChildSharedStateTreeBinding(child), this.addUpdateBoundTag(), child;
10120
10086
  }
10121
10087
  appendChild(node, addStage = !0) {
10122
10088
  const data = super.appendChild(node);
10123
- return data && addStage && this.shouldSyncChildSharedStateTreeBinding(data) && this.syncChildSharedStateTreeBinding(data), this.addUpdateBoundTag(), data;
10089
+ return data && addStage && this.syncChildSharedStateTreeBinding(data), this.addUpdateBoundTag(), data;
10124
10090
  }
10125
10091
  insertBefore(newNode, referenceNode) {
10126
10092
  return this._updateChildToStage(super.insertBefore(newNode, referenceNode));
@@ -10143,13 +10109,13 @@ class Group extends Graphic {
10143
10109
  child.setStage(null, null);
10144
10110
  }), this.addUpdateBoundTag();
10145
10111
  }
10146
- setStage(stage, layer, inheritedSharedStateScope) {
10112
+ setStage(stage, layer) {
10147
10113
  var _a, _b, _c, _d, _e, _f;
10148
10114
  const graphicService = null !== (_c = null !== (_a = null == stage ? void 0 : stage.graphicService) && void 0 !== _a ? _a : null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application.graphicService,
10149
10115
  needsSharedStateTreeSync = this.hasSharedStateDefinitions() || this.sharedStateScope || (null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length) || this.boundSharedStateScope || (null === (_e = this.registeredActiveScopes) || void 0 === _e ? void 0 : _e.size) || this.sharedStateDirty;
10150
- if (this.stage !== stage) return this.stage = stage, this.layer = layer, needsSharedStateTreeSync && (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope)), this.setStageToShadowRoot(stage, layer), this._onSetStage && this._onSetStage(this, stage, layer), null === (_f = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _f || _f.call(graphicService, this, stage), void this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope);
10116
+ if (this.stage !== stage) return this.stage = stage, this.layer = layer, needsSharedStateTreeSync && (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0)), this.setStageToShadowRoot(stage, layer), this._onSetStage && this._onSetStage(this, stage, layer), null === (_f = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _f || _f.call(graphicService, this, stage), void this.notifyChildrenSharedStateTreeChanged();
10151
10117
  const layerChanged = this.layer !== layer;
10152
- layerChanged && (this.layer = layer), needsSharedStateTreeSync ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope), this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope)) : layerChanged && this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope);
10118
+ layerChanged && (this.layer = layer), needsSharedStateTreeSync ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0), this.notifyChildrenSharedStateTreeChanged()) : layerChanged && this.notifyChildrenSharedStateTreeChanged();
10153
10119
  }
10154
10120
  addUpdatePositionTag() {
10155
10121
  super.addUpdatePositionTag(), this.forEachChildren(g => {
@@ -10208,29 +10174,17 @@ class Group extends Graphic {
10208
10174
  hasSharedStateDefinitions() {
10209
10175
  return !!this._sharedStateDefinitions && Object.keys(this._sharedStateDefinitions).length > 0;
10210
10176
  }
10211
- resolveChildSharedStateScope(inheritedSharedStateScope) {
10212
- var _a;
10213
- return this.sharedStateScope ? this.sharedStateScope : void 0 !== inheritedSharedStateScope ? inheritedSharedStateScope : null !== (_a = this.resolveBoundSharedStateScope()) && void 0 !== _a ? _a : null;
10214
- }
10215
- notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope) {
10216
- const childSharedStateScope = this.resolveChildSharedStateScope(inheritedSharedStateScope);
10177
+ notifyChildrenSharedStateTreeChanged() {
10217
10178
  this.forEachChildren(item => {
10218
- this.setStageToChild(item, childSharedStateScope);
10179
+ this.syncChildSharedStateTreeBinding(item);
10219
10180
  });
10220
10181
  }
10221
- shouldSyncChildSharedStateTreeBinding(child) {
10222
- return !(!this.stage && !this.layer) || child.onParentSharedStateTreeChanged !== Graphic.prototype.onParentSharedStateTreeChanged && child.onParentSharedStateTreeChanged !== Group.prototype.onParentSharedStateTreeChanged;
10223
- }
10224
- setStageToChild(child, inheritedSharedStateScope) {
10225
- const graphic = child;
10226
- "function" != typeof graphic.setStage || child.onParentSharedStateTreeChanged !== Graphic.prototype.onParentSharedStateTreeChanged && child.onParentSharedStateTreeChanged !== Group.prototype.onParentSharedStateTreeChanged || graphic.stage === this.stage && graphic.layer === this.layer ? child.onParentSharedStateTreeChanged(this.stage, this.layer, inheritedSharedStateScope) : graphic.setStage(this.stage, this.layer, inheritedSharedStateScope);
10182
+ syncChildSharedStateTreeBinding(child) {
10183
+ child.onParentSharedStateTreeChanged(this.stage, this.layer);
10227
10184
  }
10228
- syncChildSharedStateTreeBinding(child, inheritedSharedStateScope) {
10229
- void 0 === inheritedSharedStateScope && (inheritedSharedStateScope = this.resolveChildSharedStateScope()), this.setStageToChild(child, inheritedSharedStateScope);
10230
- }
10231
- onParentSharedStateTreeChanged(stage, layer, inheritedSharedStateScope) {
10185
+ onParentSharedStateTreeChanged(stage, layer) {
10232
10186
  var _a;
10233
- this.stage === stage && this.layer === layer ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length), inheritedSharedStateScope), this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope)) : this.setStage(stage, layer, inheritedSharedStateScope);
10187
+ this.stage === stage && this.layer === layer ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length)), this.notifyChildrenSharedStateTreeChanged()) : this.setStage(stage, layer);
10234
10188
  }
10235
10189
  }
10236
10190
  Group.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
@@ -13604,8 +13558,8 @@ class RichText extends Graphic {
13604
13558
  clone() {
13605
13559
  return new RichText(Object.assign({}, this.attribute));
13606
13560
  }
13607
- setStage(stage, layer, inheritedSharedStateScope) {
13608
- super.setStage(stage, layer, inheritedSharedStateScope);
13561
+ setStage(stage, layer) {
13562
+ super.setStage(stage, layer);
13609
13563
  this.getFrameCache().icons.forEach(icon => {
13610
13564
  icon.setStage(stage, layer);
13611
13565
  });
@@ -22852,6 +22806,8 @@ function getLynxRuntime(params) {
22852
22806
  var _a, _b;
22853
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();
22854
22808
  }
22809
+ const requestAnimationFrameBasedSTO = (callback) => rafBasedSto.call(callback);
22810
+ const cancelAnimationFrameBasedSTO = (handle) => rafBasedSto.clear(handle);
22855
22811
  function getLynxPixelRatio(params, runtime) {
22856
22812
  var _a, _b, _c, _d, _e;
22857
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;
@@ -22953,6 +22909,8 @@ class LynxEnvContribution extends BaseEnvContribution {
22953
22909
  this.canvasMap = new Map();
22954
22910
  this.freeCanvasList = [];
22955
22911
  this.canvasIdx = 0;
22912
+ this.requestAnimationFrame = requestAnimationFrameBasedSTO;
22913
+ this.cancelAnimationFrame = cancelAnimationFrameBasedSTO;
22956
22914
  this.supportsTouchEvents = true;
22957
22915
  try {
22958
22916
  this.supportsPointerEvents = !!globalThis.PointerEvent;
@@ -22965,10 +22923,20 @@ class LynxEnvContribution extends BaseEnvContribution {
22965
22923
  this.applyStyles = true;
22966
22924
  }
22967
22925
  configure(service, params = {}) {
22926
+ var _a, _b;
22968
22927
  if (service.env === this.type) {
22969
22928
  service.setActiveEnvContribution(this);
22970
22929
  this.lynxEnvParams = params;
22971
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
+ }
22972
22940
  }
22973
22941
  }
22974
22942
  getDynamicCanvasCount() {
@@ -23042,14 +23010,10 @@ class LynxEnvContribution extends BaseEnvContribution {
23042
23010
  return getLynxPixelRatio(undefined, this.lynxRuntime);
23043
23011
  }
23044
23012
  getRequestAnimationFrame() {
23045
- return function (callback) {
23046
- return rafBasedSto.call(callback);
23047
- };
23013
+ return this.requestAnimationFrame;
23048
23014
  }
23049
23015
  getCancelAnimationFrame() {
23050
- return (h) => {
23051
- rafBasedSto.clear(h);
23052
- };
23016
+ return this.cancelAnimationFrame;
23053
23017
  }
23054
23018
  mapToCanvasPoint(event) {
23055
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(): (h: number) => void;
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.supportsTouchEvents = !0;
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 function(callback) {
182
- return rafBasedSto.call(callback);
183
- };
187
+ return this.requestAnimationFrame;
184
188
  }
185
189
  getCancelAnimationFrame() {
186
- return h => {
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"]}
@@ -43,4 +43,4 @@ export class DragNDrop {
43
43
  this.removeEvents(), this.rootNode = null;
44
44
  }
45
45
  }
46
- //# sourceMappingURL=drag.js.map
46
+ //# sourceMappingURL=drag.js.map
@@ -49,4 +49,5 @@ Lottie.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
49
49
 
50
50
  export function createLottie(attributes) {
51
51
  return new Lottie(attributes);
52
- }
52
+ }
53
+ //# sourceMappingURL=Lottie.js.map
@@ -302,5 +302,4 @@ export function installNodePickersToApp(app) {
302
302
 
303
303
  export function installMathPickersToApp(app) {
304
304
  installNodePickersToApp(app);
305
- }
306
- //# sourceMappingURL=app.js.map
305
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vrender-kits",
3
- "version": "1.1.4-alpha.2",
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.2",
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,9 +69,9 @@
69
69
  "vite": "3.2.6",
70
70
  "typescript": "4.9.5",
71
71
  "cross-env": "^7.0.3",
72
- "@internal/ts-config": "0.0.1",
73
72
  "@internal/bundler": "0.0.1",
74
- "@internal/eslint-config": "0.0.1"
73
+ "@internal/eslint-config": "0.0.1",
74
+ "@internal/ts-config": "0.0.1"
75
75
  },
76
76
  "keywords": [
77
77
  "VisActor",